OpenBSD CVS

CVS log for src/usr.bin/mandoc/eqn.c


[BACK] Up to [local] / src / usr.bin / mandoc

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.49 / (download) - annotate - [select for diffs], Mon Dec 26 19:16:02 2022 UTC (16 months, 3 weeks ago) by jmc
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, HEAD
Changes since 1.48: +2 -2 lines
Diff to previous 1.48 (colored)

spelling fixes; from paul tagliamonte
amendments to his diff are noted on tech

Revision 1.48 / (download) - annotate - [select for diffs], Wed Apr 13 20:19:18 2022 UTC (2 years, 1 month ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.47: +15 -11 lines
Diff to previous 1.47 (colored)

To prevent infinite recursion while expanding eqn(7) definitions,
we must not reset the recursion counter when moving beyond the end
of the *previous* expansion, but we may only do so when moving
beyond the rightmost position reached by *any* expansion in the
current equation.  This matters because definitions can nest;
consider:

  .EQ
  define inner "content"
  define outer "inner outer"
  outer
  .EN

This endless loop was found by tb@ using afl(1).

Incidentally, GNU eqn(1) also performs an infinite loop in this
situation and then crashes when memory runs out, but that's not an
excuse for nasty behaviour of mandoc(1).

While here, consistently print the expanded content even when the
expansion is finally truncated.  While that is not likely to help
end-users, it may help authors of eqn(7) code to understand what's
going on.  Besides, it sends a very clear signal that something is
amiss, which was easy to miss in the past unless people
enabled -W error or used -T lint.

Revision 1.47 / (download) - annotate - [select for diffs], Wed Jan 8 12:09:14 2020 UTC (4 years, 4 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.46: +11 -3 lines
Diff to previous 1.46 (colored)

Skip whitespace before tokens, too.
Bug found by bentley@ with input like "delim $$ delim off".

Revision 1.46 / (download) - annotate - [select for diffs], Fri Dec 14 06:33:03 2018 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.45: +2 -3 lines
Diff to previous 1.45 (colored)

Cleanup, no functional change:
Now that message handling is properly encapsulated,
remove struct mparse pointers from four structs (roff, roff_man,
tbl_node, eqn_node) and from the argument lists of five functions
(roff_alloc, roff_man_alloc, mandoc_getarg, tbl_alloc, eqn_alloc).
Except for being passed to the main program as an opaque object,
it now only occurs in read.c, as it should, and not across 15 files
like in the past.

Revision 1.45 / (download) - annotate - [select for diffs], Fri Dec 14 05:17:45 2018 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.44: +30 -30 lines
Diff to previous 1.44 (colored)

Almost mechanical diff to remove the "struct mparse *" argument
from mandoc_msg(), where it is no longer used.
While here, rename mandoc_vmsg() to mandoc_msg() and retire the
old version:  There is really no point in having another function
merely to save "%s" in a few places.
Minus 140 lines of code.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Dec 13 05:13:15 2018 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.43: +14 -4 lines
Diff to previous 1.43 (colored)

Cleanup, no functional change:
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.

Revision 1.43 / (download) - annotate - [select for diffs], Thu Dec 13 03:40:09 2018 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.42: +14 -3 lines
Diff to previous 1.42 (colored)

Cleanup, no functional change:
In libroff.h, nothing was left except the eqn(7) parser interface, which
isn't really part of the roff(7) parser, so rename it to eqn_parse.h.

While here, move struct eqn_def to eqn.c because that's the only
file using it, and let eqn_box_free() and eqn_free() handle NULL.

Revision 1.42 / (download) - annotate - [select for diffs], Wed Dec 12 21:54:30 2018 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.41: +2 -1 lines
Diff to previous 1.41 (colored)

Cleanup, no functional change:
No need to expose the tbl(7) syntax tree data structures everywhere.
Move them to their own include file, "tbl.h", and improve comments.

Revision 1.41 / (download) - annotate - [select for diffs], Sat Jul 15 15:06:31 2017 UTC (6 years, 10 months ago) by bentley
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored)

Print the right character for mathematical overbar.

ok schwarze@

Revision 1.40 / (download) - annotate - [select for diffs], Fri Jul 14 18:18:05 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 (colored)

always give commas their own <mo> element,
suggested by bentley@, improves e.g. glMultMatrix(3)

Revision 1.39 / (download) - annotate - [select for diffs], Sat Jul 8 14:51:01 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.38: +55 -103 lines
Diff to previous 1.38 (colored)

1. Eliminate struct eqn, instead use the existing members
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.

Revision 1.38 / (download) - annotate - [select for diffs], Fri Jul 7 17:15:21 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.37: +11 -13 lines
Diff to previous 1.37 (colored)

simplify the eqn_box_makebinary() function by removing the trivial pos
parameter; also minus two lines of code; no functional change

Revision 1.37 / (download) - annotate - [select for diffs], Thu Jul 6 00:08:52 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.36: +20 -11 lines
Diff to previous 1.36 (colored)

Fix operator precedence according to Brian W. Kernighan and Lorinda
L. Cherry, "Typesetting Mathematics - User's Guide (Second Edition)",
August 15, 1978, paragraph 23; swarm of bugs pointed out by bentley@.

Revision 1.36 / (download) - annotate - [select for diffs], Wed Jul 5 15:03:20 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.35: +11 -8 lines
Diff to previous 1.35 (colored)

The EQN_LISTONE box type is pointless.
Simplify by just using EQN_LIST with expectargs = 1.
Noticed while investigating a bug report from bentley@.
No functional change.

Revision 1.35 / (download) - annotate - [select for diffs], Thu Jun 29 16:30:47 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.34: +2 -2 lines
Diff to previous 1.34 (colored)

Skip whitespace at the beginning of eqn(7) nodes,
in particular ~ and ^ that misrendered;
found by bentley@ in glCopyTexSubImage1D(3); also affected
glAccum(3), glClipPlane(3), glDrawPixels(3), glEvalMesh(3), and others.

Revision 1.34 / (download) - annotate - [select for diffs], Mon Jun 26 19:53:00 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.33: +161 -241 lines
Diff to previous 1.33 (colored)

Complete rewrite of the lexer in a single function with four operation
modes instead of four functions, resulting in considerable
simplification, fifty lines less of code, fifteen fewer automatic
variables, and several bug fixes, for example:

1. The delim control statement consumes exactly two bytes of input,
requires no whitespace after these two bytes, and does not treat
quotes in any special way.
2. If the argument of left, right, gfont, gsize, or size is defined
as an alias, only the first word of the value is used as the
delimiter, font name, or font size.
3. If a back, fwd, down, or up keyword is followed by another keyword
instead of the required number, GNU eqn does nothing useful, but
typically errors out.  So no need to have special handling (with
an ugly goto!) for it in mandoc.

Also getting rid of one pointless static buffer and twelve redundant
calls to strlcpy(3).

Revision 1.33 / (download) - annotate - [select for diffs], Mon Jun 26 11:04:26 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.32: +10 -7 lines
Diff to previous 1.32 (colored)

when splitting a composite word,
do not forget to close the inserted list box

Revision 1.32 / (download) - annotate - [select for diffs], Fri Jun 23 21:04:34 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.31: +20 -2 lines
Diff to previous 1.31 (colored)

splitting a text box sometimes requires wrapping it in a list

Revision 1.31 / (download) - annotate - [select for diffs], Fri Jun 23 00:30:17 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.30: +41 -37 lines
Diff to previous 1.30 (colored)

Simplify font handling:
1. Inherit the font attribute from the parent box, such that iteration
is no longer required to find the current font.
2. For well-known function name tokens, do not insert an EQN_LISTONE
box into the AST; simply set the font attribute of the text box
itself that contains the name.

Also improve word splitting of unquoted strings in default font mode:
3. Split between numbers and punctuation because both will soon get
different HTML markup.
4. Do not split between letters.  With the newly ubiquitious font
attributes, all formatters will be able to figure out what to do
without putting each letter into a separate box.

Revision 1.30 / (download) - annotate - [select for diffs], Thu Jun 22 00:30:06 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.29: +22 -8 lines
Diff to previous 1.29 (colored)

Fix font selection for text boxes in the terminal formatter.
Issue reported by bentley@.

The AST data structure is powerful enough that all required
information can easily be provided in the parser, and no change
of the formatting code is needed.

Revision 1.29 / (download) - annotate - [select for diffs], Wed Jun 21 20:47:46 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.28: +45 -14 lines
Diff to previous 1.28 (colored)

Outside explicit font context, give every letter its own box.
The formatters need this to correctly select fonts.
Missing feature reported by bentley@.

Revision 1.28 / (download) - annotate - [select for diffs], Wed Jun 21 18:37:38 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.27: +11 -12 lines
Diff to previous 1.27 (colored)

quoted words are not parsed for defined keys

Revision 1.27 / (download) - annotate - [select for diffs], Wed Jun 21 18:03:50 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.26: +38 -17 lines
Diff to previous 1.26 (colored)

Recognize well-known functions names (the same that Heirloom recognizes,
which includes those recognized by groff) and wrap them in a roman box
unless they already are in roman context.
Missing feature reported by bentley@.

Revision 1.26 / (download) - annotate - [select for diffs], Tue Jun 20 17:24:09 2017 UTC (6 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.25: +71 -71 lines
Diff to previous 1.25 (colored)

KNF: remove parentheses from switch case labels; no binary change

Revision 1.25 / (download) - annotate - [select for diffs], Sat Mar 11 15:42:03 2017 UTC (7 years, 2 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.24: +8 -3 lines
Diff to previous 1.24 (colored)

Improve detection of recursive eqn(7) "define" statements:
Do not only catch "define key 'key other stuff'",
but also "define key 'other stuff key'".
Fixing infinite loop found by tb@ with afl(1).

Revision 1.24 / (download) - annotate - [select for diffs], Fri Jan 8 00:50:20 2016 UTC (8 years, 4 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

The root of an .EQ tree is always EQN_ROOT, never EQN_LIST,
so delete a redundant NULL check that confused Coverity in CID 1257471;
issue reported by wiz@, patch differs from what christos@ did in NetBSD.
No functional change.

Revision 1.23 / (download) - annotate - [select for diffs], Thu Jan 7 20:18:34 2016 UTC (8 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.22: +2 -1 lines
Diff to previous 1.22 (colored)

Recursive "define" was not detected because "lim" was never
incremented, causing infinite loops.
Fixing CID 1288962.  From christos@ via wiz@, both at NetBSD.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Oct 6 18:30:43 2015 UTC (8 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.21: +21 -21 lines
Diff to previous 1.21 (colored)

modernize style: "return" is not a function; ok cmp(1)

Revision 1.21 / (download) - annotate - [select for diffs], Tue Mar 3 22:22:20 2015 UTC (9 years, 2 months ago) by bentley
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.20: +4 -2 lines
Diff to previous 1.20 (colored)

In eqn, "prime" is equivalent to \(fm, and - is equivalent to \(mi.

ok schwarze@

Revision 1.20 / (download) - annotate - [select for diffs], Wed Jan 28 21:10:28 2015 UTC (9 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.19: +73 -52 lines
Diff to previous 1.19 (colored)

Clean up eqn(7) error handling:
* When "define" fails, do not drop the whole equation.
* Free memory after "undef".
* Use standard mandoc error types instead of rolling our own.
* Delete obfuscating EQN_MSG() macro.
* Add function prototypes while here.

Revision 1.19 / (download) - annotate - [select for diffs], Sat Oct 25 15:05:21 2014 UTC (9 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.18: +4 -2 lines
Diff to previous 1.18 (colored)

Fix a NULL pointer dereference reported
by Theo Buehler <theo at math dot ethz dot ch> on tech@:
Do not attempt to parse empty equations.

Revision 1.18 / (download) - annotate - [select for diffs], Sat Oct 25 14:32:07 2014 UTC (9 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.17: +2 -17 lines
Diff to previous 1.17 (colored)

Report arguments to .EQ as an error, and simplify the code:
* drop trivial wrapper function roff_openeqn()
* drop unused first arg of function eqn_alloc()
* drop usused member "name" of struct eqn_node

Revision 1.17 / (download) - annotate - [select for diffs], Thu Oct 16 01:10:06 2014 UTC (9 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.16: +27 -1 lines
Diff to previous 1.16 (colored)

Implement in-line equations, much needed by Xenocara manuals.
Put the steering into the roff parser rather than into the mdoc
parser such that it works for all macro languages and on both text
and macro lines.
Line breaks and blank characters generated before and after in-line
equations are not perfect yet, but let's do one thing at a time.

Revision 1.16 / (download) - annotate - [select for diffs], Sun Oct 12 20:08:43 2014 UTC (9 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.15: +11 -1 lines
Diff to previous 1.15 (colored)

bugfix: do not parse quoted strings for tokens; fixes glFrustum(3)

Revision 1.15 / (download) - annotate - [select for diffs], Sun Oct 12 19:10:56 2014 UTC (9 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.14: +84 -102 lines
Diff to previous 1.14 (colored)

Improve error handling in the eqn(7) parser.
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.

Revision 1.14 / (download) - annotate - [select for diffs], Fri Oct 10 15:25:06 2014 UTC (9 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.13: +739 -610 lines
Diff to previous 1.13 (colored)

Partial eqn(7) rewrite by kristaps@ in order to get operator precedence right.

Revision 1.13 / (download) - annotate - [select for diffs], Thu Oct 9 15:59:08 2014 UTC (9 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.12: +6 -2 lines
Diff to previous 1.12 (colored)

parse and render "from" and "to" clauses in eqn, and render matrices;
written by kristaps@ during EuroBSDCon

Revision 1.12 / (download) - annotate - [select for diffs], Thu Oct 9 15:21:46 2014 UTC (9 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.11: +24 -6 lines
Diff to previous 1.11 (colored)

parse simultaneous sub- and superscripts
and make the eqn_box list doubly linked;
written by kristaps@ during EuroBSDCon

Revision 1.11 / (download) - annotate - [select for diffs], Sun Jul 6 19:08:56 2014 UTC (9 years, 10 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.10: +2 -2 lines
Diff to previous 1.10 (colored)

Clean up messages related to plain text and to escape sequences.
* Mention invalid escape sequences and string names, and fallbacks.
* Hierarchical naming.

Revision 1.10 / (download) - annotate - [select for diffs], Fri Jul 4 16:11:41 2014 UTC (9 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.9: +3 -2 lines
Diff to previous 1.9 (colored)

Clean up messages regarding excess arguments:
* Downgrade ".Bf -emphasis Em" from FATAL to WARNING.
* Mention the macros, the arguments, and the fallbacks.
* Hierarchical naming.
Also fix the handling of excess .It head arguments in -Tman.

Revision 1.9 / (download) - annotate - [select for diffs], Wed Apr 23 21:06:33 2014 UTC (10 years ago) by schwarze
Branch: MAIN
Changes since 1.8: +3 -3 lines
Diff to previous 1.8 (colored)

Audit malloc(3)/calloc(3)/realloc(3) usage.
* Change eight reallocs to reallocarray to be safe from overflows.
* Change one malloc to reallocarray to be safe from overflows.
* Change one calloc to reallocarray, no zeroing needed.
* Change the order of arguments of three callocs (aesthetical).

Revision 1.8 / (download) - annotate - [select for diffs], Sun Apr 20 19:39:35 2014 UTC (10 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7 (colored)

make sure static buffers for snprintf(3) are large enough
and cast snprintf return value to (void) where they are

Revision 1.7 / (download) - annotate - [select for diffs], Sun Apr 20 16:44:44 2014 UTC (10 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.6: +31 -34 lines
Diff to previous 1.6 (colored)

KNF: case (FOO):  ->  case FOO, remove /* LINTED */ and /* ARGSUSED */,
remove trailing whitespace and blanks before tabs, improve some indenting;
no functional change

Revision 1.6 / (download) - annotate - [select for diffs], Fri Mar 21 22:17:01 2014 UTC (10 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.5: +2 -5 lines
Diff to previous 1.5 (colored)

The files mandoc.c and mandoc.h contained both specialised low-level
functions used for multiple languages (mdoc, man, roff), for example
mandoc_escape(), mandoc_getarg(), mandoc_eos(), and generic auxiliary
functions.  Split the auxiliaries out into their own file and header.
While here, do some #include cleanup.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Sep 18 15:54:48 2011 UTC (12 years, 8 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5, OPENBSD_5_4_BASE, OPENBSD_5_4, OPENBSD_5_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

sync to version 1.11.7 from kristaps@
main new feature: support the roff(7) .tr request
plus various bugfixes and some refactoring

regressions are so minor that it's better to get this in
and fix them in the tree

Revision 1.4 / (download) - annotate - [select for diffs], Sun Sep 18 10:25:28 2011 UTC (12 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.3: +889 -20 lines
Diff to previous 1.3 (colored)

sync to version 1.11.5:
adding an implementation of the eqn(7) language
by kristaps@

So far, only .EQ/.EN blocks are handled, in-line equations are not, and
rendering is not yet very pretty, but the parser is fairly complete.

Revision 1.3 / (download) - annotate - [select for diffs], Sun Apr 24 16:22:02 2011 UTC (13 years ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.2: +1 -2 lines
Diff to previous 1.2 (colored)

Merge version 1.11.1:
Again lots of cleanup and maintenance work by kristaps@.
- simplify error reporting: less function pointers, more mandoc_[v]msg
- main: split document parsing out of main.c into read.c
- roff, mdoc, man: improved recognition of control characters
- roff: better handling of if/else stack overflows
- roff: add some predefined strings for backward compatibility
- mdoc, man: empty sections are not errors
- mdoc: move delimiter handling to libmdoc
- some header restructuring and some minor features and fixes
This merge causes two minor regressions
that i will fix in separate commits right afterwards.

Revision 1.2 / (download) - annotate - [select for diffs], Thu Apr 21 22:59:54 2011 UTC (13 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.1: +2 -1 lines
Diff to previous 1.1 (colored)

Merge version 1.10.10:
lots of cleanup and maintenance work by kristaps@.
- move some main.c globals into struct curparse
- move mandoc_*alloc to mandoc.h such that all code can use them
- make mandoc_isdelim available to formatting frontends
- dissolve mdoc_strings.c, move the code where it is used
- make all error reporting functions void, their return values were useless
- and various minor cleanups and fixes

Revision 1.1 / (download) - annotate - [select for diffs], Mon Mar 21 00:48:02 2011 UTC (13 years, 2 months ago) by schwarze
Branch: MAIN

This file was forgotten when importing the foundation for eqn(7) support.
Written by kristaps@.
Sorry, and thanks to jmc@ for noticing so quickly.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.