summaryrefslogtreecommitdiffstats
path: root/eqn_html.c
Commit message (Collapse)AuthorAgeFilesLines
* The header file "html.h" uses enum roff_tok,Ingo Schwarze2019-03-171-0/+1
| | | | | | so "roff.h" must be included before it. Diff from bcallah@ tweaked by me; he found the bug by compiling with pcc.
* Cleanup, no functional change:Ingo Schwarze2018-12-131-0/+1
| | | | | | No need to expose the eqn(7) syntax tree data structures everywhere. Move them to their own include file, "eqn.h". While here, delete the unused enum eqn_pilet.
* do not print <math class="eqn"><mrow></mrow></math> for empty .EQ;Ingo Schwarze2017-07-141-0/+3
| | | | issue reported by bentley@
* 1. Eliminate struct eqn, instead use the existing membersIngo Schwarze2017-07-081-2/+2
| | | | | | of struct roff_node which is allocated for each equation anyway. 2. Do not keep a list of equation parsers, one parser is enough. Minus fifty lines of code, no functional change.
* The EQN_LISTONE box type is pointless.Ingo Schwarze2017-07-051-3/+6
| | | | | | Simplify by just using EQN_LIST with expectargs = 1. Noticed while investigating a bug report from bentley@. No functional change.
* Consistently treat character escape sequences as operators,Ingo Schwarze2017-06-231-8/+14
| | | | | | | | not as letters, even if their names contain letters. This is certainly not perfect, but code to recognize that \(*a is not an operator but a letter would need a huge table, or Unicode character property support, which won't happen at this time.
* Write text boxes as <mi>, <mn>, or <mo> as appropriate,Ingo Schwarze2017-06-231-3/+49
| | | | | and write fontstyle or fontweight attributes where required. Missing features reported by bentley@.
* KNF: remove parentheses from switch case labels; no binary changeIngo Schwarze2017-06-201-8/+8
|
* Simplify the usage of print_otag() by making it accept a variableIngo Schwarze2017-01-171-34/+28
| | | | | | | | | | number of arguments. Delete struct htmlpair and all the PAIR_*() macros. Delete enum htmlattr, handle that in print_otag() instead. Minus 190 lines of code; no functional change except better ordering of attributes (class before style) in three cases.
* Improve error handling in the eqn(7) parser.Ingo Schwarze2014-10-121-4/+8
| | | | | | | | | | | | | | | | | | | Get rid of the first fatal error, MANDOCERR_EQNSYNT. In eqn(7), there is no need to be bug-compatible with groff, so there is no need to abondon the whole equation in case of a syntax error. In particular: * Skip "back", "delim", "down", "fwd", "gfont", "gsize", "left", "right", "size", and "up" without arguments. * Skip "gsize" and "size" with a non-numeric argument. * Skip closing delimiters that are not open. * Skip "above" outside piles. * For diacritic marks and binary operators without a left operand, default to an empty box. * Let piles and matrices take one argument rather than insisting on a braced list. Let HTML output handle that, too. * When rewinding, if the root box is guaranteed to match the termination condition, no error handling is needed.
* Drop trailing whitespace, adjust a few indentations,Ingo Schwarze2014-10-101-9/+9
| | | | and update Copyright year while here; no code change.
* Re-write of eqn(7) parser and MathML output.Kristaps Dzonsons2014-10-101-144/+111
| | | | | | | | | | This adds parser-level support for the grammar described by the eqn second-edition technical paper, "Typesetting Mathematics — User's Guide" (Kernighan, Cherry). The reason for this re-write is the grouping rules, which were not possible given the existing implementation. The re-write has also considerably simplified the HTML (and, if it ever is completed, terminal) front-end.
* Change "to" and "from" commands to use munder, mover, and munderover.Kristaps Dzonsons2014-09-281-4/+7
|
* Crudely accomodate for matrices by way of adjacent tables. We don't do thisKristaps Dzonsons2014-09-281-0/+9
| | | | | nicely right now because eqn uses column ordering. Also add from/to support and to support.
* Support a decent subset of eqn(7) in MathML.Kristaps Dzonsons2014-09-281-26/+154
| | | | | | | | | | | | | | | | | This has basic support for positions (under, sup, sub, sub/sup) and piles. It *does not* support right-left grouping (among many other things), e.g., a sub b over c sub d Which it will interpret, for the time being, as a sub { b over { c sub d } } instead of { a sub b } over { c sub d } However, left-right grouping works fine.
* Get rid of HAVE_CONFIG_H, it is always defined; idea from libnbcompat.Ingo Schwarze2014-08-101-2/+2
| | | | | | Include <sys/types.h> where needed, it does not belong in config.h. Remove <stdio.h> from config.h; if it is missing somewhere, it should be added, but i cannot find a *.c file where it is missing.
* KNF: case (FOO): -> case FOO:, remove /* LINTED */ and /* ARGSUSED */,Ingo Schwarze2014-04-201-4/+4
| | | | | remove trailing whitespace and blanks before tabs, improve some indenting; no functional change
* Tuned the initial eqn output, making it completely simple. ThisKristaps Dzonsons2011-07-241-29/+21
| | | | completes a full initial eqn system, so I'm tagging a release on it.
* Flip on equation printing for -T[x]html.Kristaps Dzonsons2011-07-231-0/+89