summaryrefslogtreecommitdiff
path: root/src/libs
Commit message (Collapse)AuthorAgeFilesLines
...
* * src/libs/libgroff/maxpathname.cpp: Include stdlib.h.wl2005-05-032-2/+4
| | | | src/libs/libgroff/relocate.cpp: Use path_name_max everywhere.
* Undo getopt changes from 2004-04-30. We don't want a dependencywl2005-05-022-303/+321
| | | | | | | | | | on gettext. * src/include/getopt_int.h: Removed. * src/include/getopt.h, src/include/groff-getopt.h, src/include/Makefile.sub, src/libs/libgroff/getopt.c, src/libs/libgroff/getopt1.c: Revert to previous version.
* AC_TYPE_SIGNAL from current autoconf can fail if CC=g++.wl2005-04-304-325/+317
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * aclocal.m4 (GROFF_TYPE_SIGNAL): New function. * configure.ac: Use GROFF_TYPE_SIGNAL, not AC_TYPE_SIGNAL. * configure, src/include/config.hin: Regenerated. * PROBLEMS: Updated. Update getopt files. * src/include/getopt.h, src/libs/libgroff/getopt.c, src/libs/libgroff/getopt1.c: Updated from GNU libc CVS. * src/include/getopt_int.h: New file (from GNU libc CVS). * src/include/groff-getopt.h: Updated. * src/include/Makefile.sub (HDRS): Add getopt_int.h. * font/devutf8/NOTES: Updated. Bug fix for Win32 relocatable code. Based on a patch from Keith Marshall. * src/libs/libgroff/maxpathname.cpp (PATH_MAX): Test for `_MAX_PATH' also. * src/libs/libgroff/relocate.c (DEBUG): Define it conditionally. (searchpath) [_WIN32]: Use `_fullpath', not `realpath'.
* Add binary relocation support for Windows platforms.wl2005-04-026-16/+329
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/include/Makefile.sub (defs.h): Add `INSTALLPATH'. * src/include/relocate.h, src/libs/libgroff/relocate.cpp: New files. * src/libs/libgroff/searchpath.cpp: Handle `relocate'. (search_path::search_path, search_path::open_file_cautious): Use `relocate'. * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS), src/include/Makefile.sub (HDRS): Updated. * src/devices/grohtml/post-html.cpp: Don't use strdup/free but strsave/a_delete. * src/libs/libgroff/font.cpp: Replace strdup with strsave. * src/libs/libgroff/maxfilename.cpp: Don't include limits.h since lib.h already does it. * src/libs/libgroff/maxpathname.cpp: New file, defining path_name_max. * src/include/lib.h: Add prototype for path_name_max. * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS): Updated. * src/include/nonposix.h (PATH_EXT): New macro.
* * src/libs/libgroff/hypot.c: Renamed to...wl2005-03-182-9/+1
| | | | | | * src/libs/libgroff/hypot.cpp: This. Updated to C++. * src/libs/libgroff/Makefile.sub (CCSRCS, CSRCS): Updated.
* Add workaround for broken hypot() on Interix.wl2005-03-172-0/+50
| | | | | | | | | | | | | | | | * src/libs/libgroff/hypot.c: New wrapper file for `hypot'. * src/libs/libgroff/Makefile.sub (OBJS): Add `hypot.o'. (CSRCS): Add `hypot.c'. * src/include/lib.h: Declare `groff_hypot'. * src/preproc/grn/hgraph.cpp: Don't declare `hypot'. Use `groff_hypot'. * src/preproc/pic/pic.h: Don't declare `hypot'. * src/preproc/pic/object.cpp (hypot): Use `groff_hypot'.
* * src/libs/libdriver/printer.cpp (check_for_output_error): Newwl2005-03-021-3/+52
| | | | | function. It has been introduced to catch peculiar error contexts on MS-Windows platforms.
* * src/libs/libdriver/input.cpp (delete_current_env, do_file):wl2005-01-221-4/+6
| | | | | | | | Reset pointers to zero after deallocation. This fixes a crash if a driver is called with multiple output files. Reported by Ken Chilton <ken@chiltonfamily.org>. * src/devices/grops/grops.man: Add more info on DSC.
* Make `test-groff' work again -- previously, wrong paths have beenwl2004-12-162-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | used. Additionally, it can now be called from anywhere. * test-groff.in: Don't test for groff binary. This is no longer necessary since the proper paths are determined by `configure'. (EXEEXT): Removed. No longer used. (srcdir, builddir): Use values provided by the configure script. (XENVIRONMENT): Updated. * INSTALL: Updated. Make .tag and .taga work for all devices (but only grohtml actually handles them). * src/devices/grohtml/post-html.cpp: s/html-tag/devtag/. (text_glob::is_br, page::add_tag, html_printer::troff_tag, html_printer::handle_assertion): Don't use hard-coded string lengths. (html_printer::lookahead_for_table): Reset `tbl' properly if necessary. (html_printer::devtag): New function, handling `devtag'. (html_printer::special): Don't handle `html-tag'. * src/include/printer.h, src/libs/libdriver/printer.cpp (printer::devtag): New virtual function. * src/libs/libdriver/input.cpp (parse_x_command) <'X'>: Handle `devtag'. * src/roff/troff/env.cpp, src/roff/troff/mtsm.cpp, src/roff/troff/node.cpp: s/html-tag/devtag/. * src/roff/troff/input.cpp (tag, taga): Always call curenv->add_node. * tmac/an-old.tmac, tmac/s.tmac, tmac/troffrc-end: Use DEVTAG* macros instead of HTML-TAG*. * tmac/devtag.tmac: New file, defining the DEVTAG-* macros. * tmac/www.tmac: Load devtag.tmac. Replace HTML-TAG* macros with DEVTAG* macros. (HTML, HTML-NS): Changed definitions. (URL): Use HTML-NS. (HTML-TAG, HTML-TAG-NS, HTML-TAG-NEXT): Removed. * tmac/Makefile.sub (NORMALFILES): Add devtag.tmac.
* * src/include/font.h (font): New member functionwl2004-10-082-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | `get_image_generator'. New variables `unscaled_charwidths' and `image_generator'. * src/libs/libgroff/font.cpp (font::get_width): Always return the character's unscaled width if `font::unscaled_charwidths' is set. (font::get_image_generator): New function. (font::load_desc): Check the `unscaled_charwidths' and `image_generator' keywords. * src/libs/libgroff/fontfile.cpp: Initialize `font::unscaled_charwidths' and `font::image_generator'. * font/devhtml/DESC.proto: s/html/unscaled_charwidths/. * font/devhtml/Makefile.sub (DESC): Set `image_generator' keyword. * man/groff_font.man: Document `unscaled_charwidths' and `image_generator'. * src/preproc/html/pre-html.cpp: Include `device.h'. (image_gen): New global variable. (imageList::createPage): Use `image_gen'. (main): Use `image_generator' keyword.
* Implement two new conditional operators `F <name>' and `S <name>'wlemb2004-06-301-5/+10
| | | | | | | | | | | | | | | | | | | | | | | which check whether <name> is a valid font or style, respectively. * src/libs/libgroff/font.cpp (text_file): Add `silent' member. (text_file::text_file): Updated. (text_file::error): Don't emit message if `silent' is set. (font::load_font): Add optional third argument (which is directly passed to `load'. (font::load): Add optional second argument to check the header of a font only, without emitting warning or error messages. * src/include/font.h (font): Updated. * src/roff/troff/input.cpp (do_if_request): Implement `S' and `F' conditionals. * src/roff/troff/node.cpp (mount_font_no_translate): Add optional fourth argument to check a font without mounting. (check_font, check_style): New functions. * src/roff/troff/node.h: Updated. * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo: Updated.
* * src/libs/libxutil/Makefile.sub (EXTRA_CFLAGS): Define.wlemb2004-06-041-0/+1
|
* Initial revisionwlemb2004-06-014-0/+915
|
* * arch/misc/Makefile.sub (shdeps.sed): Use $(srcdir).wlemb2004-05-283-4/+8
| | | | | | | | | | | | | | | | Fix problems with `friend name injections'. * src/preproc/eqn/box.h (make_mark_box, make_lineup_box, make_script_box), src/roff/troff/div.h (end_diversions), src/roff/troff/env.h (title), input.cpp (process_input_stack): Undo change 2004-04-08. * src/preproc/pic/pic.man, doc/pic.ms: Add example for `command'. * src/libs/libgroff/cset.cpp, src/libs/libgroff/lf.cpp, src/libs/libgroff/color.cpp: Include lib.h.
* * REVISION: Set to 2.wlemb2004-05-161-3/+3
| | | | | | | | | | | * aclocal.m4 (GROFF_STDINT_H): Removed. (GROFF_INTTYPES_H): Define HACE_CC_INTTYPES_H. * configure.ac: Updated. * configure, src/include/config.hin: Regenerated. * src/libs/libgroff/tmpname.cpp: Don't include stdint.h but inttypes.h conditionally.
* * src/include/font.h (font): Use `int' for ch_index.wlemb2004-04-191-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/libs/libgroff/font.cpp (font::alloc_ch_index, font::compact): Updated. * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix compiler warnings. * src/roff/troff/div.cpp (begin_page), src/roff/troff/env.cpp (hyphen_word): Fix compiler warnings. * src/roff/troff/input.cpp (get_char_for_escape_name): Return `char'. Update all callers. (get_delim_number, get_line_arg): Change second argument type to `unsigned char'. (macro_header::copy, token::next, do_define_string, do_define_character, substring_request, asciify_macro, unformat_macro, read_size, non_interpreted_node::interpret, while_request, main: Fix compiler warnings. (read_color_draw_node): Initialize `col'. * src/preproc/tbl/table.cpp (horizontal_span, table_entry): Make `start_col' and `end_col' of type `int'. (vertical_rule): Make `col' of type `int'. * src/preproc/grn/hdb.cpp (DBRead): Protect call to getc with check for EOF. * src/preproc/refer/label.y (uppercase_array, lowercase_array): New arrays. (format_serial): Use them to remove dependency on ASCII. * src/devices/grops/ps.cpp (ps_printer::define_encoding): Fix compiler warning. * src/devices/grops/psrm.cpp (resource_manager::supply_resource): Ditto. * src/devices/grotty/tty.cpp (tty_font::load_tty_font): Fix compiler warnings. (glyph): Change type of `hpos' to `int'. * src/devices/lbp/lbp.cpp (strsep): Removed. Unused. * src/devices/lbp/lbp.h (splinerel): Fix compiler warnings. * src/utils/tfmtodit.cpp (gf::load): Fix compiler warnings. * src/utils/pfbtops/pfbtops.c (get_text): Fix compiler warning.
* * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),wlemb2004-04-0815-91/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list), src/libs/libgroff/uniuni.cpp (unicode_decompose_list), src/preproc/eqn/box.cpp (param_table), src/preproc/grn/hgraph.cpp (polyfill), src/preproc/grn/main.cpp (polyfill), src/preproc/refer/command.cpp (command_table), src/utils/tfmtodit.cpp (lig_table): Don't use anonymous types (which gcc 3.5 doesn't like). Removing many compiler warnings. groff should now compile with a C++ compiler used for C files also. [Simple variable renamings to avoid shadowing aren't logged in detail.] * src/devices/grodvi/dvi.cpp: Some local variable renamings. (draw_dvi_printer::draw) ['c']: Enclose in block. * src/devices/grohtml/post-html.cpp: Some local variable renamings. (page::add_line): Fix typos. * src/devices/grohtml/html-text.cpp: Some local variable renamings. * src/devices/grolbp/lbp.cpp: Don't define _GNU_SOURCE. Some local variable renamings. * src/devices/grolbp/lbp.h: Some local variable renamings. * src/devices/grolj4/lj4.cpp, src/devices/grotty/tty.cpp: Some local variable renamings. * src/libs/libbib/index.cpp (index_search_item_iterator::get_tag): Remove redundant local variable declaration. * src/libs/libbib/map.c (mapread, unmap): Don't use K&R style. Don't use `caddr_t' but `void *'. Enclose functions with `extern "C"' for C++. * src/libs/libdriver/input.cpp (remember_filename, remember_source_filename): Use cast for string constant. * src/libs/libgroff/font.cpp, src/libs/libgroff/fontfile.cpp, src/libs/libgroff/nametoindex.cpp, src/libs/libgroff/paper.cpp, src/libs/libgroff/geometry.cpp: Some local variable renamings. * src/libs/libgroff/iftoa.c, src/libs/libgroff/itoa.c: Don't use K&R style. Enclose functions with `extern "C"' for C++. * src/libs/libgroff/quotearg.c (TRUE,FALSE): Define as macros. (needs_quoting): Return `int'. (quote_arg): Add proper casts to malloc and realloc. * src/libs/libgroff/spawnvp.c: Compile code only for MS-DOS and various MS Windows environments. (spawnvp_wrapper): Add proper cast to malloc. * src/preproc/eqn/box.h: Remove redundant declarations of `make_script_box', `make_mark_box' and `make_lineup_box'. * src/preproc/eqn/eqn.y: Remove redundant declaration of `strsave'. * src/preproc/eqn/script.cpp, src/preproc/eqn/pile.cpp: Some local variable renamings. * src/preproc/grn/hpoint.cpp: Some local variable renamings. * src/preproc/grn/hgraph.cpp: Some local variable renamings. (dx, dy): Renamed functions to... (deltax, deltay): This. * src/preproc/grn/main.cpp: Some local variable renamings. (deffont): Add `const'. (initpic, conv): Use cast for string constant. * src/preproc/html/pre-html.cpp: Some local variable renamings. (makeFileName, alterDeviceTo, addZ): Use cast for string constant. (char_buffer::run_output_filter): Second argument is unused. * src/preproc/html/pushback.cpp: Some local variable renamings. * src/preproc/pic/pic.y: Remove redundant declaration of `do_copy'. * src/preproc/pic/object.cpp: Some local variable renamings. * src/preproc/refer/label.y (lookup_label): Remove redundant declaration of local variable. * src/preproc/soelim.cpp: Remove redundant declaration of `interpret_lf_args'. * src/preproc/tbl/main.cpp: Some local variable renamings. * src/roff/groff/groff.cpp (main): Use cast for string constant. * src/roff/groff/pipeline.c: Enclose declarations of `error', `c_fatal', and `i_to_a' with `extern "C"' for C++. Don't use C++-style comments. * src/roff/troff/env.h: Remove redundant declaration of `title'. * src/roff/troff/node.h, src/roff/troff/env.cpp, src/roff/troff/div.cpp, src/roff/troff/node.cpp: Some local variable renamings. * src/roff/troff/div.h: Remove redundant declaration of `end_diversions'. * src/roff/troff/troff.h: Remove redundant declaration of `cleanup_and_exit' * src/roff/troff/input.cpp: Remove redundant declaration of `handle_first_page_transition' and `process_input_stack'. * src/utils/hpftodit.cpp: Some local variable renamings. * src/utils/indxbib/signal.c: Enclose functions with `extern "C"' for C++. Don't define RETSIGTYPE. * src/utils/indxbib/indxbib.cpp: Some local variable renamings. * src/utils/pfbtops/pfbtops.cpp: Don't use K&R style. (error): Use `const' in argument. (main): Remove redundant declaration of `optind'. Move declaration of `Version_string' to top-level. * PROBLEMS: Document difficulties compiling signal.c if a C++ compiler is used for C. * Makefile.sub (DISTCLEANFILES): Add `test-groff'.
* * src/include/nonposix.h (write, dup, dup2, close) [_MSC_VER]:wlemb2004-02-292-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New macros. * src/roff/groff/pipeline.c: Declare strcasecmp. (run_pipeline) [_WIN32]: Use function name variants which don't start with `_'. Fix stream handling. * src/include/nonposix.h: Fix declaration of `system_shell_name'. Declare `spawnvp_wrapper' and macro definitions of spawnvp only for platforms which use the native Win32 runtime libraries. (FLUSH_INPUT_PIPE) [_UWIN]: Provide non-empty version. * src/libs/libgroff/quotearg.c (QUOTE_ARG_MALLOC_ERROR, QUOTE_ARG_REALLOC_ERROR): Fix string. * src/preproc/html/pre-html.cpp: Remove declaration of `spawnvp_wrapper'. Don't use __MINGW32__. s/DEBUG_FILE/DEBUG_FILE_DIR/. (DEBUG_TEXT, DEBUG_NAME, DEBUG_FILE) [DEBUGGING]: New macros. (OUTPUT_STREAM, PS_OUTPUT_STREAM, REGION_OUTPUT_STREAM): New macros. (char_buffer::run_output_filter) [MAY_FORK_CHILD_PROCESS]: Fix calls to `set_redirection' and `WAIT'. [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Remove unused variable `i' and `j'. Fix calls to `set_redirection' and `save_and_redirect'. (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Fix calls to `set_redirection' and `save_and_redirect'. (usage): Fix message. (makeTempFiles, main): Use `DEBUG_FILE'.
* New files.wlemb2004-02-232-0/+323
|
* * src/libs/libgroff/quotearg.c: New file, providing proper argumentwlemb2004-02-223-4/+8
| | | | | | | | | | | | | | | | | | | quoting for MSVC's spawn* and exec* functions. * src/libs/libgroff/spawnvp.c: New file, providing a wrapper around spawnvp with proper quoting for MSVC. * src/libs/libgroff/assert.cpp (program_name), src/libs/libgroff/new.cpp (program_name): Declare as `extern "C"'. * src/libs/libgroff/Makefile.sub (OBJS, CSRCS): Updated. * src/roff/troff/input.cpp (program_name): Declare as `extern "C"'. * src/include/error.h (program_name): Declare as `extern "C"'. * src/include/nonposix.h [__MSDOS__ ...]: Handle spawnvp. * src/preproc/html/pre-html.cpp [__CYGWIN__ ...]: Declare spawnvp_wrapper. [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Declare i and j.
* * src/libs/libgroff/progname.cpp: Replaced with...wlemb2004-01-262-1/+1
| | | | | * src/libs/libgroff/progname.c: New file. * src/libs/libgroff/Makefile.sub: Updated accordingly.
* Implement string-valued registers \n[.m] and \n[.M] to return thewlemb2004-01-073-2/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | name of the current drawing and background color, respectively. * src/roff/troff/symbol.h: Moved to... * src/include/symbol.h: Here. Small fixes to make it work outside of the `troff' directory. * src/roff/troff/symbol.cpp: Moved to... * src/libs/libgroff/symbol.cpp: Here. Small fixes to make it work outside of the `troff' directory. * src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub (OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS): Updated. * src/include/color.h: Include symbol.h. (color): Add new field `nm'. * src/libs/libgroff/color.cpp (color::color): Updated. * src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp, src/roff/troff/node.cpp, src/roff/troff/number.cpp, src/roff/troff/reg.cpp: Don't include symbol.h. * src/roff/troff/env.cpp: Don't include symbol.h. (environment::get_glyph_color_string, environment_get_fill_color_string): New member functions. (init_env_requests): Handle `.m' and `.M' registers. * src/roff/troff/input.cpp: Don't include symbol.h. (default_symbol): Moved to symbol.cpp/symbol.h. (do_glyph_color, do_fill_color, define_color): Pass symbol name to color constructor. * src/roff/troff/env.h: Updated. * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo: Document new registers.
* * src/libs/libgroff/strcasecmp.c: Updated from gnulib.wlemb2003-12-301-1/+1
|
* Add forgotten `coproduct' symbol (already available for DVI).wlemb2003-12-282-0/+2
| | | | | | | * font/devhtml/R.proto, font/devps/generate/textmap, font/devps/symbolmap, font/devutf8/R.proto, man/groff_char.man, src/libs/libgroff/uniglyph.cc, src/libs/libgroff/glyphuni.cpp: Add U+2210 (\[coproduct]).
* Use path separator character of target platform for compiled-inwlemb2003-12-061-4/+4
| | | | | | | | | | | | default paths. * aclocal.m4 (GROFF_TARGET_PATH_SEPARATOR): New macro. * configure.ac: Use GROFF_TARGET_PATH_SEPARATOR. * configure: Regenerated. * Makefile.in (SEP): Use GROFF_PATH_SEPARATOR. * src/include/nonposix.h (PATH_SEP_CHAR): New definition. Replace `PATH_SEP[0]' with `PATH_SEP_CHAR' everywhere.
* * src/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,wlemb2003-12-025-3/+3078
| | | | | | | | | | | | src/roff/troff/unicode.h, src/roff/troff/uniglyph.cpp, src/roff/troff/uniuni.cpp: Moved to... * src/libs/libgroff/glyphuni.cpp, src/libs/libgroff/unicode.cpp, src/libs/libgroff/unicode.h, src/libs/libgroff/uniglyph.cpp, src/libs/libgroff/uniuni.cpp: Here. * src/include/Makefile.sub.old (HDRS), src/libs/libgroff/Makefile.sub (OBJS, CCSRCS), src/roff/troff/Makefile.sub (HDRS, PBJS, CCSRCS): Updated.
* * src/libs/libgroff/tmpfile.cpp [__MSDOS__, _Win32]wlemb2003-10-211-7/+25
| | | | | | | | | | | | | (WIN32_TMPDIR_ENVVAR, MSDOS_TMPDIR_ENVVAR): New macros, providing default directory names for temporary files. [__MSDOS__, _Win32] (temp_init::temp_init): Use them. * src/roff/groff/pipeline.c [__MSDOS__]: Include stdlib.h. [__MSDOS__] (run_pipeline): Honour environment variables. Don't use `tmpnam' but `tempnam' to work around messy implementation. * README.MinGW: New file.
* * src/roff/groff/groff.cpp (help), src/devices/grops/ps.cpp (usage),wlemb2003-10-131-1/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/roff/troff/input.cc (usage): Updated. * NEWS, doc/groff.texinfo: Updated. * src/libs/libgroff/searchpath.cpp (search_path::open_file_cautious): New function which also handles `-' as stdin and stdout depending on the access mode. * src/include/searchpath.h (search_path): Updated. * src/devices/grops/ps.cpp (main): Handle new `-I' switch. * src/devices/grops/ps.h: Include `searchpath.h'. * src/devices/grops/psrm.cpp (resource_manager::supply_resource): Open resource file with `include_search_path.open_file_cautious'. * src/devices/grops/grops.man: Document new `-I' switch. * src/devices/grodvi/dvi.cpp (main), src/devices/grolbp/lbp.cpp (main), src/devices/grolj4/lj4.cpp (main), src/devices/grotty/tty.cpp (main): Ignore new `-I' switch. * src/preproc/soelim/soelim.cpp (include_list_length, include_list): Replaced with... (include_search_path): New global variable. (include_path_append): Removed. (main): Use `include_search_path.command_line_dir' to handle `-I'. (do_file): Simplify, using new `include_search_path.open_file_cautious'. * src/roff/groff/groff.cpp (print_commands): Accept file handle as parameter. (main): Pass arguments to `-I' to both troff and devices. Improve handling of `-V'. * src/roff/groff/groff.man: Document changes to -I and -V. * src/roff/troff/input.cpp (include_search_path): New global variable. (next_file, source, ps_bbox_request, transparent_file, process_input_file): Use new `include_search_path.open_file_cautious'. (main) Handle `-I' switch. * src/roff/troff/node.cpp (troff_output_file::really_copy_file): Use new `include_search_path.open_file_cautious'. * src/roff/troff/node.h: New extern symbol `include_search_path'. * src/roff/troff/troff.man: Document new `-I' switch.
* Add option -G to .MPIMG to insert a gap between text and the image.wlemb2003-07-231-0/+1
| | | | | | | | | | | | | | | * tmac/www.tmac (www-finish-left-po, www-finish-right-ll, www-finish-left-ll): Updated. (www-image-just, www-image-gap, www-htmlimage-gap): New variables. (MPIMG): Make option -L and -R optional. Implement option -G. * src/devices/grohtml/post-html.cpp (html_printer::do_file_components): Don't use `stdout' as lvalue since it can be a macro. * src/libs/libgroff/strerror.c: Include errno.h to be in sync with the corresponding test in aclocal.m4.
* * aclocal.m4 (GROFF_SYS_ERRLIST): Include stdlib.h for MinGW.wlemb2003-07-211-1/+3
| | | | | | | | * configure, src/include/config.hin: Regenerated. * src/libs/libgroff/strerror.c: Include stdlib.h for MinGW. * PROBLEMS: Add solution for UTF-8 problem with hyphens.
* * src/libs/libgroff/geometry.cpp (check_output_arc_limits):wlemb2003-07-101-161/+54
| | | | Rewritten.
* Renamed all `*.cc' files to `*.cpp'.wlemb2003-04-1542-51/+51
| | | | Updated all configuration files, makefiles, and documentation.
* * contrib/mom/Makefile.sub (GROFFBIN): New variable for groffwlemb2003-04-051-17/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | binary path. (groff_bin_path): Rename to GROFF_BIN_PATH. (GROFF): Use GROFFBIN and GROFF_BIN_PATH. * doc/Makefile.in (TROFFBIN): New variable for troff binary path. (GROFFBIN): New variable for groff binary path. (groff_bin_path): Rename to GROFF_BIN_PATH. (TROFF): Use TROFFBIN. (GROFF): Use GROFFBIN and GROFF_BIN_PATH. * doc/Makefile.sub (GROFFBIN): New variable for groff binary path. (groff_bin_path): Rename to GROFF_BIN_PATH. (GROFF): Use GROFFBIN and GROFF_BIN_PATH. * Makefile.comm (install_dev): Install scripts from DEVSCRIPTS with INSTALL_SCRIPT. (uninstall_dev): Uninstall scripts from DEVSCRIPTS. * Makefile.dev (all): Depend on DEVSCRIPTS. (install_dev): Likewise. * font/devdvi/Makefile.sub (DEVSCRIPTS): New variable to hold scripts. * font/devps/Makefile.sub (DEVSCRIPTS): Likewise. (DEVGENSCRIPTS): New variable to hold generated scripts. * src/libs/libdriver/input.cc (IntArray::operator[], IntArray::get_data): Remove meaningless `const' in return value. * README.CVS: New file.
* Check for stdint.h in C++, not in C.wlemb2003-04-042-5/+5
| | | | | | | | | | | | | | | * aclocal.m4 (GROFF_STDINT_H): New function, * configure.ac: Check for stdint.h with GROFF_STDINT_H instead of AC_CHECK_HEADERS. * configure, src/include/config.hin: Regenerated. * src/libs/libgroff/tmpname.cc: Use HAVE_CC_STDINT_H. * src/libs/libgroff/maxfilename.cc: s/HAVE_LIMITS_H/HAVE_CC_LIMITS_H/. * src/roff/troff/node.cc (unbreakable_space_node::tprint): Don't emit word marker.
* * doc/groff.texinfo: Change dir category to `Typesetting'.wlemb2003-04-041-4/+4
| | | | | | * src/libs/libdriver/printer.cc, src/devices/grotty/tty.cc (*printer::change_color, *printer::change_fill_color): Add missing `const'.
* Make variable `pr' local to libdriver/input.cc. Based on a patchwlemb2003-03-123-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | by Bernd Warken <bwarken@mayn.de>. * src/include/driver.h (pr): Removed. * src/libs/libdriver/input.cc (pr): New global variable. (do_file): Deallocate `pr'. * src/libs/libdriver/printer.cc (pr): Removed. * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc (main): Don't delete `pr'. * tmac/a4.tmac, tmac/composite.tmac: Use `.do'. * tmac/papersize.tmac: New file. * tmac/troffrc: Include `papersize.tmac'. * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'. * tmac/an-old.tmac: Set LT to LL by default. * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man, doc/groff.texinfo: Updated. * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarassing bug which caused all odd iso papers to have wrong dimensions. * src/devices/grops/ps.cc (user_paper_width): New global variable. (main) <'p'>: Set `user_paper_width' also. (ps_printer::media_width, ps_printer::media_height): Use values given with option `-p'.
* * src/libs/libgroff/font.cc (font::load): Fix error message forwlemb2003-03-031-2/+1
| | | | | | | | | | bad character type. * src/devices/grops/grops.man: Improve documentation of the -b flag. * tmac/tty.tmac: Load latin1.tmac for all TTY devices except `ascii' and `cp1047'.
* Add memory management for colors to deallocate unnamed colorswlemb2003-02-153-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | properly. * src/include/color.h (color): New members `free_list' and `next'. New member functions `new' and `delete'. Add deconstructor. * src/libs/libgroff/color.cc: Implement it. * src/libs/libgroff/font.cc (font::add_kern): Use integer cast for array size of new operator. * src/libs/libdriver/input.cc (IntArray::operator[]): Remove redundant comparison. * src/roff/troff/input.cc (word_space_node::reread, hmotion_node::reread): Avoid warning about unused parameter. (reset_output_registers): Remove redundant parameter. (define_color): Undo change 2003-02-12. * src/roff/troff/reg.h: Updated. * src/roff/troff/node.cc (troff_output_file::really_print_line, output_file::put_filename, real_output_file::really_put_filename, ascii_output_file::really_print_line, break_char_node::get_hyphen_list): Avoid warning about unused parameter. (suppress_node::tprint): Updated. * configure.ac: Check declaration for rand() and srand(). * configure: Regenerated. * src/preproc/pic/pic.h: Declare fmod(), rand(), and srand() conditionally. * src/preproc/pic/pic.y: Remove declaration of fmod(), rand(), and srand(). * src/preproc/eqn/delim.cc (delim_table): Add missing initializers to avoid compiler warnings. * src/preproc/grn/hgraph.cc (HGPrintElt): Second parameter is unused. * src/devices/grops/ps.cc (ps_printer::set_char): Last parameter is unused. * src/devices/grops/psrm.cc (skip_possible_newline): Remove first (unused) parameter. Updated all callers. * src/devices/grotty/tty.cc (tty_printer::set_char): Last parameter is unused. * src/devices/grodvi/dvi.cc (dvi_printer::set_char): Ditto. * src/devices/grolj4/lj4.cc (lj4_printer::set_char): Ditto. * src/devices/grohtml/post-html.cc (html_printer::emit_line): Parameter is unused. (html_printer::add_table_end): Define parameter conditionally. * src/devices/grohtml/output.cc (simple_output::special): Parameter is unused. * src/devices/grolbp/lbp.cc: Define _GNU_SOURCE conditionally. (lbp_printer::set_char): Last parameter is unused. * src/utils/indxbib/indxbib.cc (main): Remove redundant comparison.
* New commands \D'Fr ...', \D'Fc ...', etc. for orthogonality.wlemb2003-02-141-11/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make \D'f ...' move horizontally again for backwards compatibility. Replace it with \D'Fg ...' where appropriate to avoid dependency on horizontal resolution. * src/roff/troff/input.cc (do_get_long_name): New function. (get_long_name): Call it. (read_draw_node): Handle `\D'Fx ...' by calling ... (read_color_draw_node): New function. (read_rgb, read_cmy, read_cmyk, read_gray): New optional argument `end'. Pass it to `do_get_long_name' which is used instead of `get_long_name'. * src/libs/libdriver/input.cc (color_from_Df_command): Remove unnecessary value guard. (parse_D_command) <'f'>: Add horizontal shift. * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'. * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto. (FILL_MAX): Removed. * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo: Updated. * src/roff/troff/input.cc (do_name_test, do_expr_test, do_zero_width): Push `\n' if closing delimiter is missing. (token::next) <ESCAPE_NEWLINE>, <'\n'>, <'\ '>: Reset `have_input'. <'F'>: Make \F non-transparent at the beginning of line. (process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE, token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle `have_input'. (define_color): Free color in case of reassignment. * doc/groff.texinfo (@Defesc, @DefescList, @DefescItem, @DefescListEnd): Use @Var, not @var. Fix all calls. * src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo. * src/preproc/pic/object.cc (object_spec::~object_spec): Free `shaded' and `outlined' arrays. (object_spec::object_spec): Initialize `shaded' and `outlined'. (graphic_object::set_fill_color, graphic_object::set_outline_color): Use strsave. (closed_object::set_fill_color): Ditto. * src/preproc/pic/troff.cc (troff_output::set_color): Use strsave instead of strdup. (troff_output::reset_color): Use a_delete instead of free. * src/preproc/pic/main.cc (do_file): Free `out' in case of error.
* Improve error messages for `x F' (and `F') commands.wlemb2003-02-116-44/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/include/error.h: Add declaration for `current_source_filename'. * src/libs/libgroff/filename.cc: Add `current_source_filename'. * src/libs/libgroff/error.cc (do_error_with_file_and_line): Add parameter for source file string. Updated all callers. * src/libs/libdriver/input.cc: Add `current_source_filename'. (remember_source_filename): New function. (parse_x_command <'F'>, do_file <'F'>): Use it. Make grotty not emit warnings about unknown colors more than necessary. * src/devices/grotty/tty.cc: Include `ptable.h'. (TTY_MAX_COLORS): Removed. (DEFAULT_COLOR_IDX): Defined to -1. (glyph): Change `back_color_idx' and `fore_color_idx' to `char'. (tty_printer): Change `curr_back_idx' and `curr_fore_idx' to `char'. Change `tty_colors' to be a ptable. First arg of `put_color' is now `char'. New functions `make_rgb_string' and `tty_color'. (tty_printer::tty_printer): Use `tty_color'. (tty_printer::color_to_idx): Return value is now `char'. Use `tty_color'. * src/include/color.h (color): Add `print_color' member function. * src/libs/libgroff/color.cc (color::print_color): Implement it. Valgrind fixes. * src/devices/grops/ps.cc (ps_printer::define_encoding): Close encoding file. * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Always assume that value has been allocated with `new[]', thus use `a_delete' for deallocation. * src/libs/libdriver/input.cc (get_integer_arg, get_possibly_int_args, parse_x_command, do_file): Use `a_delete' where appropriate. * src/libs/libgroff/new.cc (delete) [!COOKIE_BUG]: Define. * src/libs/libgroff/nametoindex.cc (character_indexer::named_char_index): Use `new <type>[1]'. * src/preproc/eqn/lex.cc (init_table, do_definition): Use `new <type>[1]'. * src/preproc/eqn/text.cc (set_special_char_type): Ditto. (split_text): Use `a_delete'. * src/preproc/pic/pic.y (define_label, define_variable): Use `new <type>[1]'. * src/roff/troff/env.cc (environment::choose_breakpoint): Avoid harmless memory leak. (hyphen_trie::read_patterns_file): Initialize `buf'. * src/roff/troff/node.cc (troff_output_file::troff_output_file): Initialize `current_fill_color'and `current_glyph_color'. * src/roff/troff/glyphuni.cc (glyph_to_unicode_init::glyph_to_unicode_init): Use `new <type>[1]'. * src/roff/troff/uniuni.cc (unicode_decompose_init::unicode_decompose_init): Ditto. * src/roff/troff/uniglyph.cc (unicode_to_glyph_init::unicode_to_glyph_init): Ditto.
* * src/libs/libgroff/strcasecmp.c, src/libs/libgroff/strncasecmp.c:wlemb2003-01-283-0/+70
| | | | | | | | | | | | | | | | New files, copied from gnulib. * src/libs/libgroff/Makefile.sub (CSRCS): Add them. * configure.ac: Updated. * configure: Regenerated. * src/include/config.hin: Regenerated. * src/include/lib.h [!HAVE_STRCASECMP]: Declare strcasecmp. Don't define strcasecmp as strcmp. [!HAVE_STRNCASECMP]: Declare strncasecmp. Dont define strncasecmp as strncmp. * src/roff/groff/pipeline.c [!HAVE_STRCASECMP, !HAVE_STRNCASECMP]: Removed.
* * doc/Makefile.in (webpage.html): Depend on gnu.eps also.wlemb2002-09-101-1/+1
| | | | | | | | | | | | | * src/roff/troff/env.cc (indent): Emit html tag only if break_flag is set. * src/devices/grohtml/post-html.cc (text_glob::is_br_ni): Removed. (text_glob::is_br, html_printer::lookahead_for_tables): Updated. (html_printer::do_tab_ts): Call `emit_table_header' with `FALSE'. * src/devices/grohtml/html-text.cc (html_text::start_tag) <P_TAG, PRE_TAG>: Call `begin' with `FALSE'. * src/libs/libgroff/string.cc (string::extract): Fix position of terminating null byte.
* Add global option `nospaces' to tbl so that leading and trailingwlemb2002-09-081-1/+31
| | | | | | | | | | | | | | | | spaces in data items are ignored. * src/libs/libgroff/string.cc (string::remove_spaces): New member function to remove leading and trailing spaces. * src/include/stringclass.h: Updated. * src/preproc/tbl/table.h (table): Add flag `NOSPACES'. * src/preproc/tbl/main.cc (process_options): Handle `nospaces' option. Fix typo in error messages. (process_data): Implement `nospaces' option. * src/preproc/tbl/tbl.man, NEWS, doc/webpage.ms: Updated.
* * src/include/config.hin: Add `HAVE_ISATTY'.wlemb2002-09-073-2/+5
| | | | | | | | | | * src/libs/libgroff/tmpfile.cc (xtmpfile_list): Drop `const' for `fname' member. * src/libs/libgroff/tmpname.cc: Include `time.h'. * src/libs/libdriver/input.cc (Char): Add `operator==' and `operator!=' for `char'. * doc/groff.texinfo: Replace @ifnottex block for top node with @ifhtml block.
* Use OBJEXT for the object file extension.wlemb2002-08-233-45/+45
| | | | | | | | * Makefile.comm (.SUFFIXES): Add .obj. (.cc.obj, .c.obj): New implicit rules. * Makefile.in (OBJEXT): New variable, initialized from autoconf. (MDEFINES): Add EXEEXT and OBJEXT. * */Makefile.sub: s/.o/.$(OBJEXT)/.
* * src/libs/libdriver/input.cc (Char): Add const to `operator=='.wlemb2002-07-261-3/+6
| | | | Add `operator!='.
* * doc/groff.texinfo: Document `papersize' keyword.wlemb2002-07-241-8/+14
| | | | | | | | | | | * NEWS, man/groff_font.man: Updated. Extend papersize keyword to accept more than a single entry. The first valid will be used. * src/libs/libgroff/font.cc (font::load_desc): Implement it. (font::scan_papersize): Really skip final newline. * src/preproc/html/pre-html.cc (get_papersize): Ditto.
* * contrib/pic2graph/pic2graph.*: Use convert(1).wlemb2002-07-172-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * contrib/eqn2graph/eqn2graph.*: Minor fixes. * tmac/groff_trace.man: New file. * tmac/Makefile.sub: Updated. * NEWS: Updated. * src/roff/groff/groff.man: Add some cross references. * src/roff/troff/input.cc (substring_request): Add warnings for string indices out of range. * font/devdvi/generate/ec.map: Fix typo (`(l' -> `/l'). * font/devdvi/*EC: Regenerated. * man/groff_char.man: Updated and extended. * src/roff/troff/input.cc (length_macro): Renamed to... (length_request): This. Move call of `tok.next()' to the very end, otherwise the register value hasn't been updated yet. (init_input_requests): Updated. * src/roff/troff/input.cc (substring_macro): Renamed to... (substring_request): This. (init_input_requests): Updated. * src/roff/troff/request.h: Updated. * src/roff/grog/grog.sh: Fix typo. * win32-diffs: Updated. Handle `papersize' keyword properly in DESC. * src/libs/libgroff/font.cc (font::scan_papersize): Fix argument type. Updated all callers. * src/libs/libgroff/paper.cc: Add four more paper formats used by grolj4. * src/include/paper.h: Updated. * src/devices/grolbp/lbp.cc: Remove unnecessary semicolons. Other minor C syntax fixes. (papersize, paperlength, paperwidth): Renamed to `user_*'. (lbp_printer): Add `papersize', `paperlength', and `paperwidth' members. (lbp_printer::lbp_printer): Pass three arguments. Set paper dimensions properly. (make_printer, main): Updated. (handle_unknown_desc_command): Fix error messages. (main): Handle papersize keyword in DESC properly. * src/devices/grolj4/lj4.cc (paper_size): Renamed to `user_paper_size'. (lbp_printer::lbp_printer): Pass an argument. Set paper_size properly. (handle_unknown_desc_command): Removed. (make_printer, main): Updated. * src/devices/grolj4/grolj4.man: Minor documentation fix. * man/groff_font.man, NEWS: Updated.
* * src/libs/libgroff/font.cc (font::load_desc): Fix computation ofwlemb2002-06-171-3/+5
| | | | `paperwidth' and `paperlength' for the `papersize' keyword.
* * aclocal.m4 (GROFF_PAGE): Don't use `prefix' directly since itwlemb2002-06-051-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | is not initialized at the time we need it in case `--prefix' hasn't been set. Check for `ac_default_prefix' also. Test for `papersize' keyword also and generalize allowed whitespace. * configure: Regenerated. * font/devps/Makefile.sub (DESC): Use `papersize' instead of `paperlength'. * src/libs/libgroff/Makefile.sub (version, revision): Replaced with... (src_version, src_revision): New variables to avoid overwriting from parent make process. (version.cc): Updated. * contrib/mom/Makefile.sub (groff_bin_dirs): Fix typo (forgotten `src' element). * src/preproc/html/pre-html.cc: Include paper.h and font.h. (linebuf, linebufsize): New global variables. (sys_fatal): Use `fatal' to abort properly. (get_line): New function. (get_resolution): Use it. Improve error messages. (get_papersize): Check `papersize' also. Use `get_line'. Improve error messages.