summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Added TODO to sanitise `Nm' blocks such that HEAD optionally containsKristaps Dzonsons2010-07-021-0/+4
| | | | only a TEXT element consisting of the name.
* Implemented -Thtml bits for handling `Nm' blocks.Kristaps Dzonsons2010-07-021-8/+61
|
* Remove my own dumb FIXME and mark a static function defn as static.Kristaps Dzonsons2010-07-011-3/+2
|
* Make struct_bl and struct_bd into pointers. This removes the need to doKristaps Dzonsons2010-07-017-118/+132
| | | | | | | | | | | copying on internals after modification. Even more importantly, if an ENDBODY token is provided, it would have been impossible for post-change copying of the data to take place in the BLOCK. This allows it to happen by dint of pointers. Also did some bikeshedding in mdoc_term.c: checking against enum type and explicitly casting to the "post" function to void. This is for my own readability.
* In the mdoc(7) parser, inspect roff registers early such that all partsIngo Schwarze2010-07-014-15/+34
| | | | | | | | | | | | of the parser can use the resulting cues. In particular, this allows to use .nr nS to force SYNOPSIS-style .Nm indentation outside the SYNOPSIS as needed by ifconfig(8). To actually make this useable, .Pp must rewind .Nm, or the rest of the section would end up indented. Implement a quick hack for now, a generic solution can be designed later. ok kristaps@ and tested by sobrado@
* Prevent validator from puking on ENDBODY `Bl' nodes.Kristaps Dzonsons2010-07-011-0/+2
|
* Correct handling of trailing punctuation in MDOC_DELIM blk_full HEADs.Ingo Schwarze2010-07-011-0/+3
| | | | | | | The bug was uncovered by SYNOPSIS .Nm as this happened to be the first block with this particular combination of properties. Found the hard way by kristaps@ in NetBSD gcc-contrib(1), fix by me.
* Improve .Nm indentation in the SYNOPSIS;Ingo Schwarze2010-07-015-16/+127
| | | | | | | kristaps@ will do the missing HTML part soon. "looks nicer" jmc@ "seems perfect to me" sobrado@ "slap it in" kristaps@
* More reality-checks for the p->end type.Kristaps Dzonsons2010-07-012-3/+3
|
* p->end is an enum: treat it as such.Kristaps Dzonsons2010-07-011-2/+2
|
* First, I'm defaulting to 11-point font, which renders much nicer (theKristaps Dzonsons2010-07-012-16/+51
| | | | | | | | | | | "Internet" vaguely suggests using 11- or 9-Point for serifed fonts). This verified on GNU/Linux, Mac OSX, Windows, and OpenBSD. Noted in mandoc.1. Then added a3, a4, a5, letter, legal, and custom page dimensions. These seem to be the main players. Noted in mandoc.1. Lintified the casting.
* "Tweak previous": "badly nested" becomes badly-nested, some typosKristaps Dzonsons2010-07-011-17/+24
| | | | corrected, and a bit of clarity for my own sake.
* remove a couple of issues that have been fixedIngo Schwarze2010-06-301-27/+1
|
* Now using Times AFM provided by Dillo. Verified on OpenBSD by me and Mac OSXKristaps Dzonsons2010-06-302-272/+272
| | | | by M. Deksters.
* improve error reporting:Ingo Schwarze2010-06-302-33/+53
| | | | | | | | | * avoid error exit code after mere warnings * add ERROR: and FATAL: to messages when appropriate * sort the code in mmsg() to make it easier on the eye * make the mandocerrs[] list easier to maintain * update a few comments in mandoc.h ok kristaps@
* Correct dimensions for DocumentMedia. Noted by schwarze@, as gv(1) wasKristaps Dzonsons2010-06-301-5/+4
| | | | puking on input.
* Embedding Charter proportional-width glyphs. Nice-looking output.Kristaps Dzonsons2010-06-301-288/+288
|
* PostScript can now handle scaled glyph sizes (see "scale" in structKristaps Dzonsons2010-06-302-17/+28
| | | | termp_ps) to arbitrarily scale font. Tested with 10 (default), 12, 14.
* Pushed normalisation of scaling units into term_hspan().Kristaps Dzonsons2010-06-304-20/+13
|
* Move term_hspan() calculation into the output devices, where it belongs.Kristaps Dzonsons2010-06-304-47/+124
|
* Push paper calculation out of getsubopt() loop. Make all points be AFMKristaps Dzonsons2010-06-302-30/+31
| | | | glyph units to make positioning more precise.
* Closing of full blocks (Bd Bf Bk Bl It Fo Nd Rs Sh Ss) may never beIngo Schwarze2010-06-301-3/+42
| | | | | | | | | | delayed: It must either succeed right away or fail outright. As noticed by Kristaps, neglecting to fail properly when required could make invalid input screw up the syntax tree and ultimately trigger assertions in other, unrelated parts of the program. This fix tested by and OK by kristaps@. While here, comment the rather tricky function rew_dohalt(). This function will probably need more tweaks later on.
* let's not forget the remaining badly nested block issue,Ingo Schwarze2010-06-291-0/+3
| | | | even though there are no more urgent problems
* fix a typo in the function declaration;Ingo Schwarze2010-06-291-1/+1
| | | | | seems like gcc3 didn't catch it :-( thanks to thib@ and kristaps@ for reporting
* Considerably simplify block rewind rules; no functional change intended.Ingo Schwarze2010-06-291-206/+69
| | | | | | | | | | * Let rew_alt() always succeed, obsoleting tons of case statements. * Merge rew_dobreak() into rew_dohalt(). * Encode all rewinding cases uniformly in terms of "enum rew". Required because i'm too dumb to get SYNOPSIS .Nm rewinding right without cleaning this up first. "get it in" kristaps@
* Support for badly nested blocks, written around the time ofIngo Schwarze2010-06-298-86/+320
| | | | | | | | | | | | | | | | | | | | | | | | | the Rostock mandoc hackathon and tested and polished since, supporting constructs like: .Ao Bo Ac Bc (exp breaking exp) .Aq Bo eol Bc (imp breaking exp) .Ao Bq Ac eol (exp breaking imp) .Ao Bo So Bc Ac Sc (double break, inner before outer) .Ao Bo So Ac Bc Sc (double break, outer before inner) .Ao Bo Ac So Bc Sc (broken breaker) .Ao Bo So Bc Do Ac Sc Dc (broken double breaker) There are still two known issues which are tricky: 1) Breaking two identical explicit blocks (Ao Bo Bo Ac or Aq Bo Bo eol) fails outright, triggering a bogus syntax error. 2) Breaking a block by two identical explicit blocks (Ao Ao Bo Ac Ac Bc or Ao Ao Bq Ac Ac eol) still has a minor rendering error left: "<ao1 <ao2 [bo ac2> ac1> bc]>" should not have the final ">". We can fix these later in the tree, let's not grow this diff too large. "get it in" kristaps@
* Inter-release tag.VERSION.1.10.3Kristaps Dzonsons2010-06-291-2/+2
|
* Remove some incorrect data from mandoc.1 (that of non-macro lines andKristaps Dzonsons2010-06-291-140/+106
| | | | | | spacing, which is for mdoc.7/man.7 anyway). Also document -Opage=xxx and push the per-output options into the output subsections. Makes the manual shorter and more readable.
* Add in -Opaper=xxx support for -Tps postscript. This doesn't have anyKristaps Dzonsons2010-06-293-3/+25
| | | | | | functional changes beyond the getsubopt() parse in term_ps.c. If you want to test this (it only does -Opaper=a4 and -Opaper=letter; adding more is trivial), make sure you specify (e.g.) -sPAPERSIZE=a4 to gs(1).
* Give -Tps better PostScript hinting. Note that we're using Adobe-3.0Kristaps Dzonsons2010-06-293-28/+73
| | | | | constructs. Push the stupid CPP defines for page boundaries and margins into proper variables. Give enum termfont a proper TERMFONT__MAX.
* Clean-up of variable-width glyph support. Adds no new code; onlyKristaps Dzonsons2010-06-283-25/+29
| | | | | restructured to make a bit more readable. Also removed an unused entry in the PS engine structure.
* This enables variable glyph-width output. The checkin will be followedKristaps Dzonsons2010-06-282-26/+27
| | | | | | by a [functionless] clean-up in term_ps.c, but this makes the appropriate changes to "enable" initial proportional-width functionality in term.c and fixes some areas of term_ps.c that were causing errors.
* Notes: this must be done later. \b in the input will cause havoc.Kristaps Dzonsons2010-06-282-0/+10
|
* Initial encoding of glyph widths. From /usr/X11R6/lib/X11/fonts/Type1.Kristaps Dzonsons2010-06-281-14/+341
| | | | These continues proportional-width glyph encoding.
* Tiny commit clarifying flushln() documentation as to what refers toKristaps Dzonsons2010-06-281-3/+4
| | | | | visual screen output and what's an array index (getting closer to variable-width fonting).
* minor .Bk fixes:Ingo Schwarze2010-06-272-6/+16
| | | | | | | | * do not print invalid arguments verbatim (no groffs prints them, either) * do not trigger TERMP_PREKEEP twice * do not die from invlid arguments (groff won't die, either) * continue to ignore even valid arguments (just like groff) ok kristaps@ on the previous version, before removing my last bug ;)
* remove .Bk which is doneIngo Schwarze2010-06-271-8/+12
| | | | while here, add .ds as a desideratum
* Allow registers to be unset. Implement and document the `.nr nS val'.Kristaps Dzonsons2010-06-275-13/+41
|
* Following clue-stick applied by schwarze@, back out const-ness of regsetKristaps Dzonsons2010-06-2711-23/+38
| | | | | | | | | passed in to libmdoc and libman. Fix mdoc.3 and man.3 EXAMPLE sections to include regset. Add MDOC_SYNPRETTY flag cueing front-end to nicely format certain values as if SEC_SYNOPSIS were the current section.
* Downstream maintainers: this removes UGLY! I don't want divergingKristaps Dzonsons2010-06-2716-121/+111
| | | | | | | | | functionality and UGLY works quite well thanks to schwarze@'s careful attention. This also backs out function-prototype changes for struct regset, instead stuffing a pointer to the regset directly into struct mdoc/man/roff.
* Document .Bk and .Ek; reminded by kristaps@.Ingo Schwarze2010-06-271-0/+21
|
* Basic implementation of .Bk/.Ek; from OpenBSD.Ingo Schwarze2010-06-273-3/+30
| | | | OK and one stylistic tweak by kristaps@.
* Mechanical diff allowing the const struct regset to propogate throughKristaps Dzonsons2010-06-266-40/+67
| | | | libman and libmdoc.
* Churn-ish check-in getting mdoc_parseln() and man_parseln() to accept aKristaps Dzonsons2010-06-2616-14/+35
| | | | const struct regset pointer. No functionality.
* First step of adding register support. This is inspired by a significantKristaps Dzonsons2010-06-268-13/+162
| | | | | | patch by schwarze@. This commit adds support to libroff parsing `nr' into register set defined in regs.h. This will propogate into libmdoc and libman in later commits.
* Remove "pt" from struct roffsu, as CSS (the only reason it was there) isKristaps Dzonsons2010-06-255-12/+9
| | | | | unclear about which units accept floats/integers, which leads me to assume that it handles either and rounds as appropriate.
* Allow OpenBSD's nroff to process mandoc.1 without puking on long `It'Kristaps Dzonsons2010-06-251-6/+10
| | | | lines.
* Initial chunks for variable-width fonts. Pushes all width calculationsKristaps Dzonsons2010-06-256-85/+133
| | | | | | | | in mdoc_term.c and man_term.c down into term.c. This is still not implemented in term.c, although stubs for width calculations are in place. From now on, offset, rmargin, and other layout variables are abstract screen widths. They will resolve to the the familiar values for -Tascii but -Tps will eventually use points instead of chars.
* Fix slipped in after tag: install PS files with installwww.VERSION.1.10.2Kristaps Dzonsons2010-06-191-1/+1
|
* Churn as I finish email address migration kth.se -> bsd.lv.Kristaps Dzonsons2010-06-1945-45/+45
|