summaryrefslogtreecommitdiffstats
path: root/mdoc_action.c
Commit message (Collapse)AuthorAgeFilesLines
* Cache column sizes and char pointer into mdoc_bl. Finally get rid ofKristaps Dzonsons2010-07-041-0/+3
| | | | the loops here and there to track down the MDOC_Column arguments.
* Make struct_bl and struct_bd into pointers. This removes the need to doKristaps Dzonsons2010-07-011-24/+11
| | | | | | | | | | | 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-011-0/+11
| | | | | | | | | | | | 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@
* Downstream maintainers: this removes UGLY! I don't want divergingKristaps Dzonsons2010-06-271-0/+5
| | | | | | | | | 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.
* Churn as I finish email address migration kth.se -> bsd.lv.Kristaps Dzonsons2010-06-191-1/+1
|
* Allow -width for lists to be cached in mdoc_bl. This requires someKristaps Dzonsons2010-06-131-41/+52
| | | | | | trickery because widths may be on-the-fly recalculated. I don't like how these are split between mdoc_action.c and mdoc_validate.c, but for the time being, it'll do.
* Small optimisations in mdoc_action list processing. Cleanups making wayKristaps Dzonsons2010-06-131-37/+35
| | | | for "width" cached argument.
* Cached `Bl -offset' into mdoc_bl. Removed erroneous "-offset defaultsKristaps Dzonsons2010-06-121-41/+1
| | | | | to 6n if no value is specified" and added regression tests for `Bl' testing against the empty -offset argument.
* Cache all of `Bd's resolved arguments into mdoc_bd, which is stashed inKristaps Dzonsons2010-06-121-4/+2
| | | | | | the "data" union in mdoc_node. Allows me to remove some ugly loops in the front-end and duplicate tests in mdoc_action.c. Add a regression test to make sure we're not doing anything bad (more to come).
* Added enum mdoc_disp (similar to enum mdoc_list). Display types are nowKristaps Dzonsons2010-06-121-8/+4
| | | | | | | | | | | only calculated once in mdoc_validate.c. Noted that `Bd -file xxx' is not supported: it now raises a fatal warning. This is noted in mdoc.7. Empty `Bd' now defaults to LIST_ragged, which is not quite what groff does, but close enough (gross just throws away the `Bd' and gets upset when it encounters an `Ed').
* Consolidated list processing to a single loop in mdoc_validate.c. ThisKristaps Dzonsons2010-06-031-58/+4
| | | | | | | | | | relieves having to repeat running over the argument list in mdoc_action.c and mdoc_validate.c. Default to LIST_item for type-less lists (groff technically doesn't do this: it just ignores the `It' lines altogether). Make MANDOC_LISTTYPE be a recoverable error.
* Remove enum mdocargerr from phrase() (unused).Kristaps Dzonsons2010-05-311-0/+1
| | | | | | | | | | | | | | Add `Ta' macro, which is basically a NULL case everywhere but in mdoc_macro.c, where it closes out an existing `It' body scope and opens a new one, then continues parsing as in phrase() (TODO: merge these two?). Fix where scope-breaking was silently just dying instead of printing an error. Fix where trailing `Ta' or tab weren't creating a new MDOC_BODY context. We now support arbitrarily complex `It' contents for `Bl -column'.
* Made `Dt' default to LOCAL and UNKNOWN instead of local and unknown (note case).Kristaps Dzonsons2010-05-301-4/+5
| | | | | | | | Have `Dt' default to UNKNOWN if it's an empty string. Raise a warning if `Dt' title isn't capitalised. Sync'd `Dt' documentation with reality.
* Moved printing of empty word [back] into mdoc_action.c so that it's notKristaps Dzonsons2010-05-291-1/+23
| | | | mirrored across front-ends.
* If a .Bl -tag lacks a -width, skip all non-It macros for the implicitJoerg Sonnenberger2010-05-241-2/+5
| | | | | | calculation. E.g. .Sm can occur as direct child of .Bl. OK schwarze@
* Increase performance by stashing the list type in struct mdoc_node.Kristaps Dzonsons2010-05-171-3/+58
| | | | | | | This will eventually be used so that mdoc_macro can known whether to dump list line arguments into the body (`Bl -column' overflowing). Remove a2list() and arg_listtype() because of this.
* Enable the unified error/warning enumeration in mandoc.h that'sKristaps Dzonsons2010-05-171-21/+45
| | | | | | | | | | | stringified in main.c. Allow `An' to handle an argument and child (with a warning). Allow `Rv' and `Ex' to work without a prior `Nm' as groff does (with a warning). Allow inconsistent column syntax to only raise a warning.
* LIBRARY can also occur in section 9.Kristaps Dzonsons2010-05-151-19/+17
| | | | | | All manual sections (unknown, 3p, 3f, etc.) correctly handled by -mdoc. Useful warning printed if unknown manual section. Checking for manual sections (e.g., LIBRARY) checks only first character, so 3p, 3f, etc. are free.
* "Warn on unknown argument for .At and print it like [new] groff." (patch by ↵Kristaps Dzonsons2010-05-141-5/+17
| | | | | | | Joerg Sonnenberger, ed. Kristaps) Keep short-log of commits in index.sgml. Document compatibility with new/old groff in mdoc.7.
* "Invalid standard argument should be a warning. Just leak it into theKristaps Dzonsons2010-05-141-3/+4
| | | | output." (patch by Joerg Sonnenberger)
* mdoc_atosec -> mdoc_str2sec (consistent with str2 being different from a2).Kristaps Dzonsons2010-05-121-1/+1
| | | | | Changed ordering of sections (EXIT STATUS moved around), argued for by Ulrich Sporlein. Fixed mdoc_str2sec not to use weird structure.
* Lint fixes (type-safety for enums via -cefuh).Kristaps Dzonsons2010-05-081-4/+4
|
* Migrating mdoc_node_free() and mdoc_node_freelist() to use ↵Kristaps Dzonsons2010-04-061-21/+2
| | | | mdoc_node_delete(), which has a more intuitive interface and mirrors libman.
* Fix issue of non-NAME sections triggering "no sections" error, reported by ↵Kristaps Dzonsons2010-04-051-1/+5
| | | | Christian Weisgerber, patched by Ingo Schwarze.
* Macro types enum-ated (enum mdoct) (for easier debugging in gdb of "tok" ↵Kristaps Dzonsons2010-03-311-1/+2
| | | | | | | values). Initial check-in of Ingo Schwarze's patch for Xo/Xc handling (in blocks ifdef'd "UGLY"). Put Oc-close-Op parts into UGLY ifdef blocks.
* Big check-in of compatibility layer. This should work on most major ↵Kristaps Dzonsons2010-01-011-4/+4
| | | | architectures. Thanks to Joerg Sonnenberger.
* Added mandoc_a2time() for proper date conversion.Kristaps Dzonsons2009-11-021-3/+4
| | | | | Fitted TH and Dd handlers to use mandoc_a2time(). Documented date syntax for -man, fixed documentation for -mdoc.
* Using perror() instead of fprintf for failure from library functions.Kristaps Dzonsons2009-10-311-2/+0
|
* Lint fixes.Kristaps Dzonsons2009-10-301-0/+1
| | | | Made realloc puke with fprintf.
* Clean-ups in mdoc_action (using libmandoc.h functions).Kristaps Dzonsons2009-10-291-151/+172
|
* Fix to segfault in ordering Rs blocks (d'oh!).VERSION.1.9.11Kristaps Dzonsons2009-10-261-2/+3
| | | | Version: 1.9.11.
* Full `%U' support.Kristaps Dzonsons2009-10-261-2/+4
| | | | | | | `Lk' display fixed. Renamed arg2xxxx as a2xxxx for consistency. Renamed print_foot to print_man_foot for consistency. Removed default printing of `~' when `Lk' not provided (not sure where I got that from).
* Added `%U' to -mdoc (doesn't render in a nice way yet).Kristaps Dzonsons2009-10-241-0/+1
|
* Added ability to set OS name at compile-time with -DOSNAME="\"foo\"".Kristaps Dzonsons2009-10-221-0/+13
|
* Lint check (noop).Kristaps Dzonsons2009-09-251-0/+1
|
* Fixed segfault in `Rs' empty block.Kristaps Dzonsons2009-09-241-0/+1
|
* Added EBADCHILD error (bad child of parent context).Kristaps Dzonsons2009-09-241-7/+88
| | | | | `Rs' post-checks that all children are proper bibliographic elements. `Rs' correctly re-orders its children as per groff's output (including %C).
* -offset string can now be blank (supplied with 6n as stipulated by ↵Kristaps Dzonsons2009-09-241-11/+48
| | | | mdoc.samples).
* Lintifications.Kristaps Dzonsons2009-09-161-1/+1
|
* Lookup hashes are now static tables, ordered first-level by second ↵Kristaps Dzonsons2009-09-161-1/+1
| | | | character, then randomly along a chain. Improves performance by a small fraction and considerably cleans up hash sources.
* Updated manual structure in mdoc.7.Kristaps Dzonsons2009-08-201-187/+172
| | | | | | Synchronised mdoc.template and mdoc.7 manual structure. `Rv' and `Ex' now accept multiple arguments (-std made standalone, terms as children). `Rv' and `Ex' format correctly in -Tascii (plurals, commas, etc.).
* Made out-of-order prologue macros not cause an error.Kristaps Dzonsons2009-07-261-1/+4
|
* Patches and results of LLVM static analysis (thanks uqs@sporlein.net).Kristaps Dzonsons2009-07-251-1/+0
|
* Added `St -ieee1275-94'.Kristaps Dzonsons2009-07-241-1/+6
| | | | Documented a future `Bd' fixme.
* Added default print of `~' with empty `Pa' (not documented with OpenBSD, but ↵Kristaps Dzonsons2009-07-211-5/+5
| | | | still applicable).
* Added `br' and `sp' macros (requested by joerg@netbsd.org, jmc@openbsd.org).Kristaps Dzonsons2009-07-171-0/+2
|
* Subtle fixes correcting vis count with erroneously-decorated whitespace.Kristaps Dzonsons2009-07-161-15/+0
|
* Removed assertion (disregarded blank literal lines).Kristaps Dzonsons2009-07-151-0/+15
|
* Replacement of `Lb' in mdoc_action.c.Kristaps Dzonsons2009-07-121-1/+32
| | | | | | Added warning against bogus `Lb' (like groff does). Added proper quotes around `Lb' in mdoc_term.c. Moved mdoc_a2lib -> libmdoc (where it belongs).
* Moved mdoc_a2st() out of mdoc.h -> libmdoc.h (replacement in mdoc_action.c).Kristaps Dzonsons2009-07-121-1/+18
| | | | Made bad standards into an error (were a warning).