• R/O
  • HTTP
  • SSH

List of commits


Frequently used words (click to add to your profile)

javac++androidlinuxc#objective-cqt誰得cocoawindowspythonrubyphpgameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwittertestdombtronvb.netdirectxarduinopreviewerゲームエンジン

Demonstration of groff .psbb request handling code, for EPS and PDF input files

修訂. 時間 作者
8ca6d96 master 2021-10-22 22:27:47 Keith Marshall

Clean state map generator files.

* GNUmakefile (clean): Augment commands to remove files...
[*.map]: ...matching this glob reference.

d235cff 2021-10-21 03:13:49 Keith Marshall

Correctly handle lexical scans of nested PDF dictionaries.

* psbblex.l [PDFDICT] ("<<"): Add missing pattern rule; it causes a
recursive push of the nested dictionary scanning state.

71f0d7d 2021-10-21 03:06:09 Keith Marshall

Report PDF context when tracing lexer state pushes.

* psbblex.l [DEBUG] (DEBUG_PUSH_STATE): Redefine in terms of...
(DEBUG_PUSH_NAMED_STATE): ...this new macro; it is also used by...
(DEBUG_PUSH_KEY_STATE): ...this further new macro; use it instead of
DEBUG_PUSH_STATE, to report PDF context at change of lexer state.

9a532c1 2021-10-20 07:48:11 Keith Marshall

Extend debugging diagnostics to report popped lexer state.

* psbblex.l (DEBUG_POP_STATE): New macro; define, and use it
as a debug-enabled diagnostic wrapper, in place of...
(yy_pop_state): ...this.

72ebbc3 2021-10-20 05:52:07 Keith Marshall

Simplify building with debugging diagnostics enabled.

* psbblex.l [DEBUG || DEBUGGING || EBUG || EBUGGING]: Accept...
[-D DEBUG, -D DEBUGGING, -DEBUG, -DEBUGGING]: ...as equivalents, when
specified as compile-time options.

* GNUmakefile (all): Remove dependency on...
(state.map): ...build of this, but preserve it within...
(all-debug): ...this new target; it reproduces original "all", and...
(CPPFLAGS) [-DEBUG]: ...adds this compile-time option.

e2724ea 2021-10-20 04:50:55 Keith Marshall

Provide a prototype for the yylex() replacement function.

* psbb.h (psbb_lex): Declare prototype.

40cace6 2021-10-20 04:42:54 Keith Marshall

Avoid use of yacc-incompatible bison directives.

* psbb.y (%name-prefix): Directive is bison-specific; delete, and...
* GNUmakefile (YFLAGS): ...append corresponding '-p' assignment.

9e8486a 2021-10-20 04:37:52 Keith Marshall

Ignore ".map" files in source directory.

* .hgignore: Remove this unneeded file; delegate to...
* .gitignore: ...this; it is sufficient, when using hg-git.
(*.map): Add glob reference.

e25e11c 2017-10-17 06:06:35 Keith Marshall

Add lexer state mapping for debugging trace logs.

* GNUmakefile (all): New default goal; it amalgamates...
(state.map): ...this new sed filter file target, along with...
(psbb): ...this original target, as default primary build goals.
(psbblex.map, psbblex.map.ls, psbblex.map.lx, psbblex.state.map)
(psbblex.map.l): New intermediate goals; in conjunction with...
(STATE_MAP_SCRIPT): ...this new macro, they are required to
facilitate the building of the final state.map target.
(vpath) [%.in, %.map]: Add $srcdir references.

* psbblex.map.in: New template file, for psbblex.map.l

e975dba 2017-10-16 02:49:02 Keith Marshall

Add support for out-of-source builds.

* GNUmakefile (srcdir): Define it; default is "."
(vpath) [%.l, %.y]: Locate them, by reference to $srcdir
(vpath) [%.c, %.cpp, %.h]: Locate them in $srcdir, or $srcdir/libgroff
(CPPFLAGS): Incrementally add $srcdir and $srcdir/libgroff includes.
(CFLAGS, CXXFLAGS): Remove include path specifications.

7ec0d92 2017-10-11 21:21:13 Keith Marshall

Improve lexer suppression of unmatched content.

* psbblex.l (PDFIGNORE): Actively discard end-of-line markers; revert
to prior state, when detected. Identify dictionary start markers, and
handle by pushing a subsidiary change of lexer state, to...
(PDFDICT): ...this, to ensure properly nested handling, otherwise...
(PDFIGNORE): ...stop at [</>] characters; leave in input queue, and
revert to prior state.

ba17929 2017-10-11 20:46:02 Keith Marshall

Avoid a potential PDFSCANOBJECT lexer overrun.

* psbblex.l: Do not allow the lexer to remain in...
(PDFOBJTYPE): ...this state, when object type is unrecognized, and...
[DEBUGGING]: ...log any unrecognized object type name.

7cf9469 2017-10-11 20:24:05 Keith Marshall

Add DEBUGGING mode "next object" reference logging.

* psbblex.l (PDFSCANOBJECT): Add DEBUG_MSG request, to report the...
(PDFENDOBJ) [DEBUGGING]: ...next object to be scanned, after this.

83e2f88 2017-10-11 20:11:24 Keith Marshall

Add more comprehensive DEBUGGING mode lexer trace logging.

* psbblex.l (RETURN_VALUE): New macro, expanded in terms of...
include the associated yylval result in the token return log message.
(DEBUG_PUSH_STATE) [DEBUGGING]: New macro; it logs the change of lexer
state, when used to wrap calls to yy_push_state().

1088cd3 2017-10-11 19:33:34 Keith Marshall

Support postfix notation for PDFOBJREF parsing.

* psbb.y (psbb): Add an additional grammar rule, to interpret...
(VALUE VALUE 'R' PDFOBJREF): ...this token sequence, augmenting...
(PDFOBJREF VALUE VALUE 'R'): ...this prefix notation.

ca92b4a 2017-10-08 23:30:56 Keith Marshall

Keep optional subdirectories out of SCM control.

* .gitignore .hgignore (dist, build): Add directory references.

a26c0ca 2017-10-08 22:29:39 Keith Marshall

Include GPL licence document, for distribution.

* GPL.v3: New file; it is a verbatim copy of groff's COPYING file.

b9a8bc4 2017-10-08 06:39:47 Keith Marshall

Implement an extended .psbb request handling API.

* psbb.h psbb.y psbblex.l: New files; they implement the API.
* t-psbb.cpp: New file; it implements a test program, emulating the
intended gtroff usage of this API.

* GNUmakefile: New file; it facilitates building the test program,
using GNU make.

* README .gitignore .hgignore: New files.

3e32ddd 2017-10-07 18:53:40 Keith Marshall

Add a printf-alike API entry for libgroff error reporting.

* libgroff/error.h (errprintf): New function; add prototype.
* libgroff/error.cpp (do_error_with_file_and_line): Factor out...
(report_file_and_line, end_error_with_file_and_line): ...this pair of
initial and final fragments, respectively; incorporate them with...
(do_printf_with_file_and_line): ...this new function; hence...
(do_printf, errprintf): ...implement these.

966b625 2017-10-07 02:15:50 Keith Marshall

Initial import of original libgroff.a code.

* libgroff/error.h libgroff/error.cpp libgroff/fatal.cpp
* libgroff/errarg.h libgroff/errarg.cpp libgroff/itoa.c: New files;
all are copied verbatim, from the GNU Troff source code repository.
* libgroff/README: New file.