summaryrefslogtreecommitdiff
path: root/src/preproc/html
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright year.wl2009-01-054-4/+5
|
* * */*: Update GPL2 to GPL3.wl2009-01-044-14/+12
|
* * src/preproc/html/pre-html.cpp (usage): Don't describe options butwl2008-01-191-16/+9
| | | | | | | | | | mention that it should never be called stand-alone. * tmac/groff_www.man, doc/groff.texinfo, man/groff_font.man, man/groff_tmac.man, man/groff_out.man, README, README.MinGW, src/roff/groff/groff.man: Mention -Txhtml. * man/groff_font.man, man/groff_tmac.man, man/roff.man: Revised.
* * doc/groff.texinfo: Document new .O register and add crosswl2007-09-191-54/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | reference entries. * NEWS: Updated. * src/devices/grohtml/grohtml.man: Document new -V and -y options. * src/devices/grohtml/html-table.cpp: Add support for XHTML 1.1. (html_table:: emit_colspan, html_table::emit_td): New methods. (html_table::emit_col): Use html_table::emit_td. (html_table::emit_table_header): Use html_table::emit_colspan if dialect xhtml is specified. (html_table::finish_row): Updated. * src/devices/grohtml/html-table.h (html_table): Declare emit_colspan, emit_td. * src/devices/grohtml/html-text.cpp: Modified tags to comply with xhtml if this dialect was requested. * src/devices/grohtml/html-text.h (html_dialect): New enumeration. (html_text): Add new variable `dialect'. * src/devices/grohtml/post-html.cpp: Modify header tags to be XHTML compliant. (valid_flag, groff_sig, dialect): New global variables. (html_printer::handle_valid_flag, html_printer::do_math, html_printer::write_html_anchor, html_printer::write_xhtml_anchor, html_printer::do_math, html_printer::handle_valid_flag): New methods. (html_printer::emit_line, html_printer::emit_raw, html_printer::do_check_center, html_printer::write_title, write_rule, html_printer::writeHeadMetaStyle, generate_img_src, html_printer::begin_page): Altered to be XHTML compliant. (html_printer::write_header): Updated. (html_printer::troff_tag): Call do_math. (html_printer::insert_split_file, html_printer::do_file_components, html_printer::write_navigation): Create XHTML file components if necessary and also produces a groff signature if requested. (~html_printer): Call writeHeadMetaStyle at appropriate places depending upon html_dialect. (html_printer::special): Handle new tags `html<?p>' and `math<?p>'. (main): Added options -x, -V, and -y. (usage): Updated. * src/preproc/eqn/box.cpp: Create a distinction between the MathML device and the XHTML device. (do_text): Issue a newline at the end of the equation if XHTML was specified. (box::top_level): Prefix the output of an equation by the .MATHML macro. (output_string): Suppress \n if XHTML was specified. * src/preproc/eqn/main.cpp (xhtml): New global flag. (inline_equation): Skip leading spaces after inline equation for XHTML device. (main): Set `xhtml' flag if `-Tmathml:xhtml' is specified. * src/preproc/eqn/eqn.h (xhtml): New external flag. * src/preproc/eqn/text.cpp (entity_table): Fix typo. * src/preproc/html/pre-html.cpp (html_dialect): New enumeration. (dialect, eqn_flag): New global variables. (html_system): Improve debugging support. (alterDeviceTo): Test for -Txhtml when altering device to the image device and reset to -Txhtml. (addZ): Renamed to... (addArg): This. Introducea a general parameter. (print_args): New debugging function. (char_buffer::run_output_filter): Use print_args and addArg rather than addZ. (char_buffer::do_html, char_buffer::do_image): Add -rxhtml=1 command line parameter as an argument to the html generation of text when xhtml is needed. Include -e on the command line if mathml is required. (scanArguments): Allow -e, -V, -y and -x options. -V, -y are handled by the back end. -e sets `eqn_flag'. -x determines HTML dialect. * src/roff/groff/groff.cpp (possible_command): New method `clear_name'. (main): Set eflag if -e is present on command line. Set is_xhtml if -Txhtml is present. Pass `-x x' to the HTML pre and post processors. Pass `-e' to the HTML pre processor if required. Pass `-Tmathml:xhtml' to eqn if XHTML is requested. * src/roff/troff/input.cpp (init_input_requests): Introduce new number register `\n[.O]'. * tmac/s.tmac: (LP): Use .nop for semantic sugar. (cov*ab-init) reformat. (@EQ): Use EQN-HTML-IMAGE and friends rather than HTML-IMAGE. (CHECK-FOOTER-AND-KEEP): Define FS, FE such that they use <cite></cite> for the html device rather than generate images for footnotes. * tmac/troffrc-end: Define EQN-HTML-IMAGE, EQN-HTML-IMAGE-END, EQN-HTML-IMAGE-RIGHT, EQN-HTML-IMAGE-LEFT, EQN-HTML-IMAGE-INLINE, EQN-HTML-DO-IMAGE, EQN-HTML-IMAGE-END as null strings. * tmac/www.tmac: (HTML<?p>): New macro. (MATH<?p>): New macro. (IMG, PIMG, MPIMG, HR): Use XHTML compliant syntax. (www-emit-ltag): New macro. (www-push-li): Updated. (ULS): Ensure that tags are balanced in order by use of www-emit-ltag. (ULE): Likewise: Use www-emit-ltag and shut down paragraphs in order. (OLS, OLE, DLS, DLE): Ditto. <global>: Define EQ and EN to EQN-HTML-IMAGE and EQN-HTML-IMAGE-END respectively. (www-li-ul, www-li-ol, www-li-dl): Updated. (EQN-HTML-IMAGE, EQN-HTML-IMAGE-RIGHT, EQN-HTML-IMAGE-LEFT, EQN-HTML-IMAGE-INLINE, EQN-HTML-DO-IMAGE, EQN-HTML-IMAGE-END, MATHML): New macros.
* Insignificant note in pre-html.h that refered to old .cc file.sinuhe2006-06-272-36/+39
|
* Another try to update getopt files. This time we add a dummywl2005-06-161-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gettext.h file to satisfy the dependency. * 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/gettext.h: Dummy file which just defines a gettext() macro. * src/include/groff-getopt.h: Updated. * src/include/Makefile.sub (HDRS): Add getopt_int.h and gettext.h. * src/libs/libdriver/input.cpp (IntArray): Remove superfluous `const' keywords in return value. * src/preproc/html/pushback.cpp (pushBackBuffer::~pushBackBuffer): Remove redundant variable `old'. (pushBackBuffer::skipToNewline): Remove redundant variable `ch'. * src/preproc/tbl/main.cpp (process_table): Remove redundant variable `c'. Fix more friend name injection problems since modern C++ compilers fail otherwise. We simply provide (global) declarations for all functions declared as friends. This is not really necessary but doesn't harm. * src/preproc/eqn/lex.cpp: Provide declarations for get_char, peek_char, and get_location. * src/preproc/refer/ref.h: Provide declarations for compare_reference, same_reference, same_year, same_date, same_author_last_name, and same_author_name. * src/roff/troff/div.h: Provide declarations for do_divert and page_offset. * src/roff/troff/env.h: Provide declarations for title_length, space_size, fill, no_fill, adjust, no_adjust, center, right_justify, vertical_spacing, post_vertical_spacing, line_spacing, line_length, indent, temporary_indent, do_underline, do_input_trap, set_tabs, margin_character, no_number, number_lines, leader_character, tab_character, hyphenate_request, no_hyphenate, hyphen_line_max_request, hyphenation_space_request, hyphenation_margin_request, line_width, tabs_save, tabs_restore, line_tabs_request, widow_control_request, and do_divert. * src/roff/troff/input.cpp: Provide declaration for chop_macro. * src/roff/troff/node.cpp: Provide declarations for class tfont_spec. Provide declaration for make_tfont.
* * contrib/pdfmark/Makefile.sub (.ms.pdf): Use `--stylesheet', notwl2005-05-281-0/+1
| | | | | | | | | | | `--style'. * src/devices/grolbp/lbp.cpp, src/devices/grolbp/lbp.h: Remove redundant semicolons. * src/preproc/eqn/Makefile.sub, src/preproc/html/Makefile.sub, src/preproc/soelim/Makefile.sub, src/preproc/tbl/Makefile.sub: Define `MLIB'. Some compilers need this for linking with libgroff.
* * All affected files: Update postal address of FSF.wl2005-05-264-4/+4
|
* Add option -S grohtml to determine the file split level.wl2004-11-231-24/+36
| | | | | | | | | | | | | | | * src/devices/grohtml/post-html.cpp (split_level): New global variable. (html_header::determine_header_level): Use split_level. (main): Handle `-S' command line option. Sort options. * src/preproc/html/pre-html.cpp (scanArguments): Updated. * src/devices/grohtml/grohtml.man: Document it. Sort options. * NEWS: Document it.
* * src/roff/troff/request.h (macro): Make `p' public.wl2004-10-121-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New variable `is_a_diversion'. New member function `is_diversion'. * src/devices/grohtml/html.h (simple_output): New member function `force_nl'. * src/devices/grohtml/html-table.cpp (tabs::compatible): Fix computation of `total'. (tabs::check_init): New function. (html_table::emit_table_header): Emit style data. (html_table::insert_column): Improved. * src/devices/grohtml/html-table.h: Updated. * src/devices/grohtml/html-text.cpp (html_text::html_text): Initialize `start_space' with TRUE. (html_text::end_tag, html_start_tag): Fix `P_TAG' and `PRE_TAG' cases. (html_text::flush_text): Set `start_space' flag. (html_text::uses_indent, html_text::remove_para_space, html_text::get_alignment): New functions. (html_text::push_para): Updated. (html_text::do_para): Check for empty argument. Don't set `space_emitted'. (html_text::do_space, html_text::emit_space): Updated. * src/devices/grohtml/html-text.h (tag_definition): New variable `really_issued'. (html_text): New member function `uses_indent', `remove_para_space', `get_alignment'. * src/devices/grohtml/output.cpp (simple_output::force_nl): New function. (simple_output:nl): Always emit `\n'. * src/devices/grohtml/post-html.cpp: Include `string.h'. (BASE_POINT_SIZE): Removed. (base_point_size, head_info): New global variables. (text_glob): New member functions `is_ll', `is_tl', `is_eo_tl', `is_eo_h'. (text_glob::is_nf, text_glob::is_fi): Handle `.fi 0' and `.fi 1' tags, respectively. (page::add_and_encode): Pass additional parameter for tag flag. (assert_pos): New structure. (assert_state): New class. (html_printer): Remove `indentation', `prev_indent'. Add variables `troff_indent', `device_indent', `temp_indent'. Add variables `seen_indent', `next_indent', `seen_pageoffset', `next_pageoffset', `seen_linelenght', `next_linelength', `seen_center', `next_center', `seen_space', `seen_break', `as'. Add member functions `do_check_center', `do_space', `do_head', `get_troff_indent', `restore_troff_indent', `handle_assertion', `handle_state_assertion', `do_end_para', `set_char_and_width'. Change argument to `do_fill' to `char *'. Update constructor. (html_printer::emit_raw): Call `shutdown_table'. Use new functions. (html_printer::do_center): Simplified. (html_printer::do_title): Improved. (html_printer::write_header): Emit one more newline. Use new functions. (html_printer::do_heading, html_printer::do_indent, html_printer::do_eol, html_printer::do_tab_ts, html_printer::do_tab, html_printer::do_tab0, html_printer::calc_po_in, html_printer::next_horiz_pos, html_printer::remove_courier_tabs, html_printer::insert_tab0_foreach_tab, html_printer::begin_page): Updated. (html_printer::do_linelength, html_printer::do_pageoffset, html_printer::do_indentation, html_printer::do_tempindent, html_printer::do_tab_te): Simplified. (html_printer::do_pointsize): Check whether point size is really associated a `.tl' tag. (html_printer::do_break): Rewritten. (html_printer::troff_tag): Improved. (html_printer::flush_globs): Updated. (html_printer::lookahead_for_tables): Handle `is_br'. Use new functions. (html_printer::set_char): Check `sbuf_style.f'. (html_printer::write_navigation): Use string comparison. (html_printer::~html_printer): Emit `head_info'. (html_printer::special): Rewritten. (get_str, make_val): New functions. (main): New option `s' to set the base point size. * src/preproc/html/pre-html.cpp (scanArguments): Handle option `s'.
* * src/include/font.h (font): New member functionwl2004-10-081-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | `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.
* * src/preproc/html/pre-html.cpp (make_message): Make it work forwlemb2004-05-091-3/+1
| | | | | snprintf versions which don't conform to ANSI C 99 (this is, counting the string's trailing null byte in the return value).
* * src/devices/grolbp/lbp.h, src/preproc/grn/gprint.h,wlemb2004-04-172-16/+16
| | | | | | | | | | | | | | | | | | | | | | | src/preproc/grn/hgraph.cpp, src/preproc/grn/hpoint.cpp, src/preproc/html/pushback.cpp, src/preproc/html/pushback.h: Use `double' instead of `float' everywhere. * src/preproc/grn/main.cpp: Use `double' instead of `float' everywhere. (main): Add return value. * src/preproc/grn/hdb.cpp: Use `double' instead of `float' everywhere. Update all user functions. * src/include/search.h, src/include/ptable.h, src/include/printer.h, src/preproc/eqn/box.h, src/preproc/pic/object.h, src/preproc/refer/refer.h, src/preproc/tbl/table.h, src/preproc/tbl/table.cpp, src/roff/troff/env.h, src/roff/troff/div.h, src/roff/troff/token.h, src/roff/troff/node.h, src/roff/troff/input.cpp, src/roff/troff/request.h, src/roff/troff/node.cpp: Don't mix `struct' and `class' in forward declarations. * src/utils/indxbib/signal.c: Include stdlib.h.
* * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),wlemb2004-04-082-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-291-50/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'.
* * src/libs/libgroff/quotearg.c: New file, providing proper argumentwlemb2004-02-221-11/+28
| | | | | | | | | | | | | | | | | | | 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/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,wlemb2003-12-021-15/+34
| | | | | | | | | | | | 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/preproc/html/pre-html.cpp (write_upto_newline): Don't usewlemb2003-10-171-476/+633
| | | | | | | | | | | | | | | | | | | | | | | | | | | `(*t)->next' without testing validity of `*t'. (usage): Make it more readable. Make html device run under both MS-DOS and Win32. * src/preproc/html/pre-html.cpp (MAY_FORK_CHILD_PROCESS, MAY_SPAWN_ASYNCHRONOUS_CHILD): New macros to control whether spawn or fork+exec has to be used, and whether parent must sleep until the child process terminates. Used in `char_buffer::run_output_filter'. (copyofstdoutfd): Removed. (char_buffer): Replace `write_file_html' and `write_file_troff' member functions with `emit_troff_output' and `run_output_filter'. The latter (DEVICE_FORMAT, HTML_OUTPUT_FILTER, IMAGE_OUTPUT_FILTER): New macros. (replaceFd): Replaced with... (set_redirection): New auxiliary function. (waitForChild): Replaced with... (save_and_redirect): New auxiliary function for. (char_buffer::do_html, char_buffer::do_image): Simplified, using new functions.
* * src/preproc/html/pre-html.cpp (TRANSPARENT): Don't use colourwlemb2003-07-211-1/+3
| | | | | names but RGB values directly. Otherwise pnmtopng depends on an external file `rgb.txt' which maps colour names to values.
* Make grotty work on platforms which have unsigned char as thewlemb2003-07-071-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | default for char. Based on a patch by Thomas Klausner <wiz@netbsd.org>. * src/devices/grotty/tty.cpp (schar): New typedef. Updated calls to declare_ptable and implement_ptable. (glyph): Use schar for back_color_idx and fore_color_idx. (tty_printer): Use schar for curr_fore_idx and curr_back_idx. (tty_printer::tty_color, tty_printer::tty_printer, tty_printer::color_to_idx, tty_printer::put_color): Updated. * src/roff/nroff/nroff.sh: Add option -d for completeness. * src/roff/nroff/nroff.man: Updated. * NEWS, tmac/groff_www.man: Updated. * doc/Makefile.sub: Updated. Implement support for multiple HTML output files. * src/preproc/html/pre-html.cpp (scanArguments): Dummy handling for -j command line option. * src/devices/grohtml/post-html.cpp (job_name, multiple_files): New global variables. (file): New fields `new_output_file', `require_links', `output_file_name'. (file::file): Updated. (files::set_file_name, files::set_links_required, files::are_links_required, files::is_new_output_file, files::file_name, files::next_file_name): New functions. (header_desc): New fields `no_of_level_one_headings', `header_filename'. (header_desc::header_desc): Updated. (header_desc::write_headings): Handle multiple files. (html_printer::write_header): Save file name in which header occurs. (html_printer::determine_header_level): Possibly split files on level one headings. (html_printer::do_links, html_printer::troff_tag): Updated. (html_printer::insert_split_file, html_printer::do_job_name, html_printer::emit_link, html_printer::write_navigation, html_printer::do_file_components): New functions. (html_printer::~html_printer): Handle multiple files. (main): Handle command line option `-j'. * src/devices/grohtml/grohtml.man: Updated. * doc/Makefile.sub (pic.html), doc/Makefile.in (pic.html): New rule which splits file. * tmac/www.tmac (JOBNAME): New macro. * tmac/s.tmac (SH-NO-TAG): New macro. (@SH): Call SH-NO-TAG. (@NH): Updated.
* * src/devices/grohtml/post-html.cpp (text_glob::text_glob):wlemb2003-04-163-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `const' to second argument. (html_printer::add_table_end): Add `const' to argument. * src/devices/grohtml/html-text.cpp (html_text::issue_tag): Add `const' to arguments. * src/devices/grohtml/html-text.h: Updated. * src/devices/grolbp/charset.h (symset): Use `unsigned char'. * src/devices/grolbp/lbp.h (lbpputc): Use `unsigned char' for argument. * src/devices/grotty/tty.cpp (tty_printer::make_rgb_string): Use cast for integer constant. * src/preproc/html/pre-html.cpp (image_device): Use `const'. (writeNbytes): Add `const' to first argument. (writeString): Add `const' to argument. (char_buffer::can_see): Add `const' to third argument. * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Add `const' to argument. * src/preproc/html/pushback.h: Updated. * src/preproc/soelim/soelim.cpp (include_list): Add `const'. (include_path_append): Add `const' to argument. (do_file): Updated. * src/roff/troff/uniglyph.cpp (unicode_to_glyph_list): Use `const' for `value'. (unicode_to_glyph_init::unicode_to_glyph_init): Updated. * src/roff/troff/uniuni.cpp (unicode_decompose_list): Use `const' for `value'. (unicode_decompose_init::unicode_decompose_init): Updated. * src/roff/troff/glyphuni.cpp (glyph_to_unicode_list): Use `const' for `value'. (glyph_to_unicode_init::glyph_to_unicode_init): Updated. * src/roff/troff/input.cc (process_startup_file): Add `const' to argument.
* Renamed all `*.cc' files to `*.cpp'.wlemb2003-04-154-3/+3
| | | | Updated all configuration files, makefiles, and documentation.
* * src/devices/grotty/tty.cc (tty_printer::make_rgb_string): Avoidwlemb2003-02-161-4/+9
| | | | | | | | | | | | | | | | | | | null-bytes in created string. * src/roff/troff/input.cc (lookup_color, interpolate_macro, alias_macro, lookup_request): Improve warning messages. * src/roff/troff/node.cc (suppress_node::tprint): Use `strsave', not `strdup'. Free `last_image_filename'. * src/preproc/html/pre-html.cc (char_block::char_block): Initialize `buffer'. (imageList::createPage, imageList::createImage): Use `free', not `a_delete'. (imageItem::~imageItem): Free `imageName'. (addRegDef): Use `strsave', not `strdup'. (get_resolution): Free `pathp'.
* * doc/Makefile.in (.texinfo.html): Add -I switch.wlemb2002-09-061-49/+5
| | | | | | | | | | | | | | | * doc/groff.texinfo: Add @ifnottex block for top node to make translation to HTML work. * src/preproc/html/pre-html.cc (LETTER_LENGTH): Removed. (get_papersize, determine_vertical_offset): Removed. (char_buffer::do_image): Always specify letter size. (main): Updated. (imageList::createPage): Use -dDEVICEHEIGHTPOINTS instead of -sPAPERSIZE. * doc/groff.texinfo, tmac/groff_man.man: Improve documentation of default indentation.
* * src/preproc/html/pre-html.cc (imageList::createPage): Usewlemb2002-09-041-0/+2
| | | | | | | -sPAPERSIZE for gs. (generateImages): Clean up push-back buffer. * doc/groff.texinfo: Minor fixes.
* * src/preproc/html/pre-html.cc (DEFAULT_LINE_LENGTH): New macro.wlemb2002-08-271-18/+54
| | | | | | | | | | | | | | | | | | (MAX_WIDTH, A4_LENGTH, A4_OFFSET, LETTER_OFFSET): Removed. (gsPaper): Removed. (determine_vertical_offset): Use LETTER_LENGTH. (createPage): Moved to ... (imageList::createPage): This. Call gs with -dDEVICEWIDTHPOINTS to avoid cropping. (imageList::getMaxX): New function. (createImage): Moved to ... (imageList::createImage): This. (imageList::createImages): New function. (generateImages): Read `maxx' directly. Updated. (scanArguments): Don't specify `gsPaper' for `-o'. (makeTempFiles): Call `xtmpfile' with the last argument set to `TRUE'.
* * src/include/nonposix.h (mkdir, WAIT, creat) [_MSC_VER]: Define.wlemb2002-08-242-1/+2
| | | | | | | | (WAIT, _WAIT_CHILD) [!_MSC_VER]: Define. * src/preproc/html/pre-html.cc (waitForChild): Use WAIT. * src/preproc/html/pushback.cc: Include nonposix.h. * src/roff/groff/pipeline.c: Define strcasecmp and strncasecmp conditionally.
* Use OBJEXT for the object file extension.wlemb2002-08-231-1/+1
| | | | | | | | * 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)/.
* * doc/groff.texinfo: Document `papersize' keyword.wlemb2002-07-241-5/+6
| | | | | | | | | | | * 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.
* * aclocal.m4 (GROFF_PAGE): Don't use `prefix' directly since itwlemb2002-06-051-17/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Change syntax of \O: \O[0] suppresses output, \O[1] enables outputwlemb2002-05-221-94/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if at outer level; at start-up we are at outer level. * src/roff/troff/input.cc (do_suppress): Implement it. Simplify \O[3]. Add option -p to show progress information. pre-grohtml will now render only one page at a time, reducing the size of needed disk resources enormously. * src/preproc/html/pre-html.cc (imagePageStem): Replaced with... (imagePageName): New global variable. (psPageName, show_progress, currentPageNo): New global variables. (html_system): Close saved stderr and stdout handles. (write_end_image): Accept a parameter to control \O escape. (write_start_image): Adapted to new \O meaning. (char_buffer::write_upto_newline): Updated. (createAllPages): Replaced with... (createPage): This new function to create a single page for images. It uses `psselect' from the psutils package. (removeAllPages): Removed. (createImage): Updated. Handle progress display. (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Removed. (scanArguments): Add option -p. (makeTempFiles): Updated to create temp files for psPageName and imagePageName. (removeTempFiles): Removed. (main): Updated. * src/devices/grohtml/post-html.cc (header_desc::write_headings, html_printer::write_header): Append `\0' to `buffer'. (html_printer::do_eol): Depend on `current_paragraph->emitted_text'. (main): Handle -p. * src/devices/grohtml/html-text.cc (html_text::dump_stack_element): Handle `text_emitted'. (html_text::table_is_void): Slightly rewritten. (stop): New external symbol. (html_text::do_push) [DEBUGGING]: Use it and simplify. (html_text::shutdown): Call `dump_stack'. (html_text::do_space): Rewritten. * src/devices/grohtml/grohtml.man: Document -p and the need of `psselect'. * tmac/www.tmac (DC, HTML-DO-IMAGE, HTML-IMAGE-END): Updated to new \O syntax. Call \O[0] if `ps4html' is active. * tmac/s.tmac (@EQ, @EN): Handle html better. (@TS, TE): Ditto. * tmac/html.tmac: Don't use black for background colour. * src/roff/troff/node.cc: Include `div.h'. (troff_output_file::really_print_line): Don't use `is_on'. (troff_output_file::word_marker, troff_output_file::flush_tbuf troff_output_file::check_charinfo, troff_output_file::put_char_width, troff_output_file::put_char, troff_output_file::determine_line_limits, troff_output_file::draw, real_output_file::begin_page, glyph_color_node::tprintf, fill_color_node::tprint, hline_node::tprint, vline_node::tprint): Use `is_on'. (troff_output_file::really_on): Call `do_motion'. (suppress_node::tprint): Use `get_page_number' instead of `%' register. Call `reset_output_registers' conditionally on `is_on'. * doc/groff.texinfo: Document new syntax of \O. * NEWS, man/groff_diff.man: Updated.
* * doc/fdl.texi: New file.wlemb2002-05-022-2/+3
| | | | | | | | | | | | | | | | | | | * doc/groff.texinfo: Include it. Define and use @copying. Starting with separating glyph, symbol, and character. * Makefile.in (EXEEXT): Set it. * src/*/Makefile.sub (PROG): Add $(EXEEXT) for all non-script programs. * src/include/nonposix.h: Define GS_NAME. * src/preproc/html/pre-html.cc (createAllPages): Use GS_NAME. Some preliminary changes for EMX support under OS/2. * src/preproc/pic/main.cc (main), src/roff/groff/pipeline.c: Add __EMX__ similar to __MSDOS__. * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Use `unlink'.
* * doc/groff.texinfo: More fixes.wlemb2002-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * src/include/color.h: Decorate with `const'. Use `size_t'. Include `stddef.h'. * src/libs/libgroff.color.cc: Decorate with `const'. Use `size_t'. (color::color): Initialize members. * src/libs/libdriver/input.cc (parse_D_command): Handle `f' command according to the documentation. * man/groff_out.man: Updated. Minor fixes. * src/preproc/html/pre-html.cc (write_start_image): Remove redundant output. * tmac/www.tmac (DC, HTML-DO-IMAGE): Ditto. * src/devices/grohtml/post-html.cc (page::add_and_encode): Using \C'hy' caused an assertion failure. * src/roff/troff/env.cc (environment::environment): Initialize `emitted_node'. (environment::copy): Handle `ignore_next_eol' and `emitted_node'.
* * doc/Makefile (clean): Add *.eps.wlemb2002-02-171-122/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (MEMACROS): Removed. (TFLAG): New variable. (TROFF): Use it. Add -ww. (GROFF): Use TFLAG, FFLAG, -U, -p, -e, -t, and -ww. (.me.dit): Fixed. (.ms.html, .ms.ascii, .ms.ps, homepage.html): Simplify. * tmac/www.tmac: Use dummy diversion while resetting and disabling `.tl'. * tmac/e.tmac: Inserted some more `\"' to remove warnings if used unstripped. * src/roff/troff/troff.man: Fix order of parameter description. * NEWS: Updated. Simplify image handling for grohtml. Fix <p> bug. * src/devices/grohtml/html-text.cc (DEBUGGING): Don't undefine but comment out. (html_text::dump_stack): Don't emit newline while debugging. (html_text::do_push) [DEBUGGING]: Print more info. (html_text::check_emit_text): Fix handling of <p>. * src/devices/grohtml/html.h: Updated. * src/devices/grohtml/output.cc (FPUTC, FPUTS, PUTC): New macros, replacing `fputc', `fputs', `putc'. If DEBUGGING is defined, they send its data to stderr also. Update all callers. (simple_output::space_or_newline) [DEBUGGING]: Removed. * src/devices/grohtml/post-html.cc (html_printer::do_links, html_printer::html_printer): Remove `DEBUGGING' conditionals. * src/include/html-strings.h (HTML_IMAGE_{CENTERED,LEFT,RIGHT,END}): Removed. * src/libs/libgroff/htmlhint.cc (is_in_graphic_start, is_inline_image): Removed. (html_begin_suppress, html_end_suppress): Don't take a parameter. (graphic_start, graphic_end): Removed. * src/include/htmlindicate.h: Updated. * src/preproc/html/pre-html.cc (DEBUG_HTML): Removed. (macroset_template): New global variable. (makeFileName): Use `macroset_template'. (write_end_image): Don't take a parameter. Don't emit newline. (write_start_image: Don't emit newline. (char_buffer::write_upto_newline): Updated. (char_buffer::skip_to_newline): Renamed to ... (char_buffer::skip_until_newline): This. Fix code. (char_buffer::write_file_troff, char_buffer::write_file_html): Simplified. (createAllPages, createImage) [DEBUGGING]: Handle `debug' flag. (removeAllPages): Remove `DEBUGGING' conditionals. (addRegDef, dump_args): New functions. (char_buffer::do_html, char_buffer::do_image): Handle `www-image-template' command line variable. Add more debugging code. (addps4html): Removed. (removeTempFiles) [DEBUGGING]: Handle `debug' flag. * src/preproc/eqn/main.cc: Include `ctype.h'. (suppress_html): Removed. (do_file): Updated. (inline_equation): Use `html_begin_suppress' and `html_end_suppress'. * src/preproc/pic/troff.cc: Don't include `htmlindicate.h'. (troff_output::start_picture, troff_output::finish_picture): Updated. * src/preproc/tbl/main.cc: Don't include `htmlindicate.h'. (process_input_file): Updated. * src/roff/troff/div.cc (page_number): Set page number only if the `ps4html' register isn't defined. * src/roff/troff/input.cc (image_no): New external variable. (do_suppress): Use it. * src/roff/troff/node.h (suppress_node::image_id): New member. * src/roff/troff/node.cc (image_no): Remove `static' keyword. (suppress_node::suppress_node): Initialize `image_id' member. (suppress_node::same): Handle `image_id' also. (suppress_node::copy): Updated. (last_image_id): New global variable. (suppress_node::tprint): Use it. * tmac/an-old.tmac (TS, TE, EQ, EN): Use HTML-IMAGE and HTML-IMAGE-END. * tmac/pspic.mac (PSPIC): Fix html support. * tmac/s.tmac (@EQ, @EN, @TS, TE, PS, PE): Ditto. * tmac/www.tmac (www-image-template): Set up. (HTMLINDEX): Renamed to... (HX): This. (BODYCOLOR): Renamed to... (BCL): This. (BACKGROUND): Renamed to... (BGIMG): This. (URL): Change order of parameters for consistency. (MAILTO): Renamed to... (MTO): This. (IMAGE, PNG-IMAGE, MARGIN-PNG-IMAGE): Renamed to... (IMG, PIMG, MPIMG): This. (HTML-H-BEGIN, HTML-H-END): Renamed to... (HnS, HnE): This. (LINKS): Renamed to... (LK): This. (LINE): Renamed to... (HR): This. (NO-AUTO-RULE): Renamed to... (NHR): This. (HTML-TL): Renamed to... (HTL): This. (UL-BEGIN, UL-END): Renamed to... (ULS, ULE): This. (DROPCAP): Renamed to... (DC): This. (TS, TE, EQ, EN): Provide default definitions. (www-make-unique-name): Updated. (HTML-IMAGE-INLINE): Fix typo. * tmac/groff_www.man: Updated. * doc/Makefile (homepage.html): Add option -r to grohtml. Use shortened image name. * doc/groff.texinfo: Updated info on grohtml strings and macros. * doc/homepage.ms: Updated and extended.
* Add two switches -a and -g to control the antialiasing bits forwlemb2002-01-281-17/+54
| | | | | | | | | | | | | | | | | | | | text and graphics, respectively. * src/devices/grohtml/post-html.cc (main): Dummy code for `-a' and `-g'. * src/devices/grohtml/grohtml.man: Document them. * src/preproc/html/pre-html.cc (MIN_ALPHA_BITS, MAX_ALPHA_BITS): New macros. (textAlphaBits, graphicAlphaBits, antiAlias): New global variables. (setupAntiAlias): New function. (createAllPages): Updated. (scanArguments): Handle `-a' and `-g'. (main): Call `setupAntiAlias'. * NEWS: Updated. * doc/groff.texinfo (Def*): Call index function after deffn. * tmac/html.tmac: Call `nroff' request.
* * tmac/www.tmac: Replace\\n[www-html] with \n[www-html] since thewlemb2001-12-301-24/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | device is already known at start-up. Make all names of internal macros/registers/strings lowercase, and prepend `www-'. Other minor changes. * src/roff/troff/troff.man: Add preprocessor string at BOF. Implement option `-b' in grohtml to set the HTML background colour. * src/devices/grohtml/post-html.cc (default_background): New global variable. (html_printer::html_printer): Initialize `background' to `default_background'. (main): Implement option `-b'. (usage): Updated. * src/preproc/html/pre-html.cc (scanArguments): Add dummy handling of `-b' option. * src/devices/grohtml/grohtml.man: Updated. * doc/Makefile (.ms.html): Use `-b'. * tmac/html.tmac: Don't set background color. Add new grohtml tag `.html-tl'. * src/devices/grohtml/post-html.cc (title_desc): Add `with_h1' member variable. (title_desc::title_desc): Updated. (html_printer::troff_tag): Handle `.html-tl'. (html_printer::write_title): Use `with_h1'. * tmac/www.tmac (www-end-nowhere): New auxiliary macro. (HTML-TL): New macro. Add support for unordered lists in HTML. * tmac/www.tmac (www-level): New auxiliary register. (www-level1, www-level2, www-level3): New auxiliary strings. (www-push-level, www-pop-level): New auxiliary macros (UL-BEGIN, UL-END, LI): User macros for unordered lists. Miscellaneous. * src/preproc/html/pre-html.cc (DEFAULT_IMAGE_RES): Increase to 100. (DEFAULT_VERTICAL_OFFSET): Removed. (IMAGE_BOARDER_PIXELS): Set to 0. (A4_LENGTH, A4_OFFSET, LETTER_LENGTH, LETTER_OFFSET): New macros. (vertical_offset): Initialize with 0. (gsPaper): New global variable. (get_resolution): Scan for and return unsigned int. (get_papersize): New function to get paper length from devps/DESC. (determine_vertical_offset): New function. (createAllPages): Produce gray-level images and use proper page length. (createImage): Use `-quiet' option of pnmcrop. (addZ): Fix passing of `-Z'. (scanArguments): Fix handling of `-o'. (main): Call `determine_vertical_offset'. * src/devices/grohtml/post-html.cc (html_printer::draw): Comment out code for `l'. * src/libs/libgroff/tmpfile.cc (add_tmp_file): Fix buffer length. * src/roff/troff/node.cc (troff_output_file::check_charinfo): Handle glyph descenders properly. * doc/homepage.ms: Include `gnubw.eps'. * doc/Makefile (gnubw.eps): New rule. (homepage.html): Depend on `gnubw.eps'.
* * src/preproc/html/pre-html.cc (TROFF_COMMAND): Removed.wlemb2001-12-101-2/+8
| | | | (scanArguments): Use PROG_PREFIX for the name of the troff binary.
* * src/roff/troff/input.cc (get_delim_file_name): Removed since nowlemb2001-12-061-37/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | longer used. * src/devices/grohtml/post-html.cc (html_printer::html_printer): Fix order of initializers. * NEWS: Updated. * doc/groff.texinfo: Fix documentation of \O. * src/devices/grohtml/html-text.cc (html_text::do_indent, html_text::do_table, html_text::do_emittext, html_text::do_para): Use `const' for first argument. (html_text::do_table): Use cast. * src/devices/grohtml/html-text.h: Updated. * src/devices/grohtml/output.cc (simple_output::put_string): Add method for `const string &s'. * src/devices/grohtml/html.h: Updated. * src/devices/grohtml/post-html.cc (MAX_STRING_LENGTH): Removed. (ANCHOR_TEMPLATE): Modified. (manufacture_headings): New global variable to handle `-h' option. (is_subsection): Removed. (char_buffer::add_string): Add `const' to first argument. Protect against invalid string argument. Add method for `const string &s'. (text_glob): Completely redesigned. (page): Use `const' for strings and remove string length variable. (page::add_html): Removed. (page::add_end_encode): New member function. (to_unicode): Moved upwards. (title_desc, header_desc): Updated. (header_desc::write_headings): Updated to new ANCHOR_TEMPLATE definition. (html_printer::is_bold, html_printer::make_bold): New member functions. (html_printer::end_of_line): Updated. (generate_img_src, html_printer::do_auto_image, html_printer::do_title, html_printer::write_header, html_printer::determine_header_level, html_printer::do_heading, html_printer::do_linelength, html_printer::do_pageoffset, html_printer::do_indentation, html_printer::do_tempindent, html_printer::do_indentedparagraph, html_printer::do_break, html_printer::flush_sbuf, get_html_translation, html_printer::begin_page, html_printer::special): Rewritten to get rid of static string length limit. (html_printer::troff_tag): Added `.no-auto-rule'. (html_printer::flush_globs): Small fix. (html_printer::determine_space): Don't compute `space_width'. (html_printer::translate_to_html): Renamed to ... (html_printer::emit_html): This (with updates). (html_printer::write_header): Implement `-h' option. (html_printer::draw): Remove commented-out code. Handle `F' command. (html_printer::add_char_to_sbuf): Removed. (html_printer::add_to_sbuf): Rewritten. (html_printer::sbuf_continuation): Fixed. (html_printer::seen_backwards_escape, reverse, html_printer::remove_last_char_from_sbuf): Removed. (char_translate_to_html, str_translate_to_html): Removed. (html_printer::overstrike): New function member. (html_printer::set_char): Use it. (html_printer::do_body): New function member. (html_printer::~html_printer): Use it. (main): Handle `-h' option. (usage): Updated. * src/devices/grohtml/grohtml.man: Document -h switch. * src/preproc/html/pre-html.cc: Include searchpath.h Replace `POSTSCRIPTRES' macro with `postscriptRes' variable. (get_resolution): New function. (checkImageDir): Use `0777' permissions in mkdir() (write_start_image): Rewritten to use `\O[5...]'. (createImage, generateImages): Updated. (main): Handle `F' and `h' options. Use `get_resolution'. * src/roff/troff/input.cc (begin, end, image): Removed. (do_suppress): Take parameter. Handle modified syntax of `\O'. (token::next): Updated. (init_markup_requests): Removed. (main): Updated. * src/roff/troff/div.h: Add declaration for begin_page(). * tmac/color-html.tmac: Removed. Contents moved to... * tmac/html.tmac: Here. Set background color. * tmac/color.tmac: Removed. Contents moved to... * tmac/ps.tmac: Here. * tmac/www.tmac: Remove the title command when generating images for html. (NO_AUTO_RULE): New macro. (HTML_DO_IMAGE): Use revised `\O' escapes. * tmac/Makefile.sub, tmac/groff_www.man, tmac/troffrc: Updated.
* *** empty log message ***wlemb2001-11-172-0/+386
|
* * man/groff_differences.man: Renamed to ...wlemb2001-11-174-389/+3
| | | | | | | | | | | | | | | | | | * man/groff_diff.man: This. Updated. * man/Makefile.sub, src/roff/troff/troff.man, NEWS: Updated. * src/preproc/html/pushbackbuffer.cc: Renamed to ... * src/preproc/html/pushback.cc: This. Updated. * src/preproc/html/pushbackbuffer.h: Renamed to ... * src/preproc/html/pushback.h: This. * src/preproc/html/Makefile.sub, src/preproc/html/pre-html.cc: Updated. * src/libs/libgroff/htmlindicate.cc: Renamed to ... * src/libs/libgroff/htmlhint.cc: This. * src/libs/libgroff/Makefile.sub: Updated. * tmac/an-old.tmac (an-end): Fix page length.
* * doc/pic.ms: Minor fix.wlemb2001-10-051-1/+1
| | | | | | | | | * src/preproc/html/pre-html.cc (scanArguments): Don't handle `-?' as a valid command line switch. * src/devices/grohtml/post-html.cc (main): Ditto. (usage): Updated. * src/devices/grohtml/grohtml.man: Updated. * src/roff/groff/groff.cc (main): Pass `-v' to predriver also.
* Implementing color support in troff, pic, grops, and grohtml. Thesewlemb2001-10-051-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | changes are based on a major patch provided by Gaius Mulley <gaius@glam.ac.uk>. New request: `defcolor', supporting rgb, cmy, cmyk, and gray definitions with both hex values and fractions. New escapes: \m and \M for drawing and background color, respectively. This corresponds to the troff output commands `m' and `DF'. groff and troff accept command line switch `-c' to disable color output (which is automatically disabled in compatibility mode). New scaling indicator `f' for fractions (1f = 65536u). New conditional operator `m' to test for defined colors with `if' and `ie'. New keywords `color' (or `colour', `colored', `coloured'), `outline' (or `outlined'), and `shaded' added to pic. * src/include/color.h: New file. * src/include/driver.h: Include it. * src/include/printer.h: Include color.h. (environment): New members `col' and `fill'. (printer): Remove `adjust_arc_center' member function. * src/include/Makefile.sub: Updated. * src/libs/libdriver/input.cc (do_file): Initialize `env.col' and `env.fill'. Handle `m' and `DF' troff commands. * src/libs/libgroff/color.cc: New file. * src/libs/libgroff/Makefile.sub: Updated. * src/preproc/html/pre-html.cc (IMAGE_BORDER_PIXELS): Set to 2. (stop): Removed. (createImage): Fix computation of `y2'. Use `pnmcrop' also. (buffer::write_file_html): Remove calls to `stop'. * src/preproc/pic/common.h (common_output): New abstract function members `set_color', `reset_color', `get_last_filled', and `get_outline_color'. * src/preproc/pic/object.h: Add `IS_SHADED' and `IS_OUTLINED'. (object_spec): Add members `shaded' and `outlined'. * src/preproc/pic/output.h (output): `command' is now abstract. New function members `set_color', `reset_color', `get_last_filled', and `get_outline_color'. * src/preproc/pic/lex.cc (lookup_keyword): Recognize `colo[u]r[ed]', `outline[d]', and `shaded'. * src/preproc/pic/object.cc (output::command): Removed. (output::set_location):Moved to output.h. (graphic_object): Add protected members `outline_color' and `color_fill'. Add member functions `set_outline_color', `get_outline_color', and `set_fill_color'. (closed_object): Add member function `set_fill_color'. Add member `color_fill'. (graphic_object::print_text): Use `out->set_color' and `out->reset_color'. (box_object::print, ellipse_object::print, circle_object::print, line_object::print, spline_object::print, arc_object::print): Ditto. (object_spec::make_object): Implement `IS_OUTLINED' and `IS_SHADED'. * src/preproc/pic/pic.y: Add tokens `COLORED', `OUTLINED', and `SHADED', making them `%left'. Add rules `object_spec [SHADED|COLORED|OUTLINED] text'. * src/preproc/pic/tex.cc (tex_output): New dummy function members `set_color', `reset_color', `get_last_filled', and `get_outline_color'. * src/preproc/pic/troff.cc (simple_output): New abstract function members `set_color', `reset_color', and `get_last_filled'. (simple_output::polygon, simple_output::circle, simple_output::ellipse): Use `get_last_filled'. (troff_output): New members `last_filled' and `last_outlined'. New function members `set_color', `reset_color', `get_last_filled', and `get_outline_color'. (troff_output::finish_picture): Use `reset_color'. (troff_output::set_fill): Test `last_filled'. * src/preproc/pic/pic.man: Updated. * src/roff/groff/groff.cc (main): Implement `-c' option. (synopsis, help): Updated. src/roff/groff/groff.man: Updated. * src/roff/troff/troff.h: Include color.h. (warning_type): Add WARN_COLOR. * src/roff/troff/env.h (environment): New members `{cur,prev}_{glyph,fill}_color'. New member functions `get_{prev_,}{glyph,fill}_color'. * src/roff/troff/env.cc: Initialize and implement them. * src/roff/troff/input.cc: New global variable `disable_color_flag'. Replace `NULL' with `0' everywhere for consistency. (lookup_color, default_black, do_glyph_color, do_fill_color, get_color_element, read_rgb, read_cmy, read_cmyk, read_gray, define_color): New functions. (token::next): Implement \M and \m escapes. (do_if_request): Implement `m' operator. (usage): Updated. (main): Implement `-c' option. (init_markup_requests): Add `defcolor' request. (warning_table): Add `color' warning. * src/roff/troff/node.h (glyph_color_node, fill_color_node): New classes. * src/roff/troff/node.cc (troff_output_file): New members `current_{page,glyph}color'. New member functions `put_hex', `glyph_color', and `fill_color'. (glyph_color_node::*, fill_color_node::*): Implement it. * src/roff/troff/number.cc (SCALE_INDICATOR_CHARS): Add `f'. (parse_term): Add support for `f'. * src/roff/troff/troff.man: Updated. * src/devices/grodvi/dvi.cc (draw_dvi_printer::draw): Add dummy entry for `F'. * src/devices/grolbp/lbp.cc (lbp_printer::draw): Ditto. * src/devices/grolj4/lj4.cc (lj4_printer::draw): Ditto. * src/devices/grohtml/html-text.h (HTML_TAG): Add COLOR_TAG. (tag_definition): Use `void *' for arg1. (html_text): New member functions `do_color' and `done_color'. Use `void *' for second parameter of `push_para' member function. New `push_para' member function with a single parameter. Use `char *' for parameter of `issue_table_begin' member funtion. New `issue_color_begin' member function. * src/devices/grohtml/html-text.cc (html_text::end_tag): Handle COLOR_TAG. (html_text::issue_color_begin): New function. (html_text::issue_table_begin): Use `char *' for parameter. (html_text::start_tag, html_text::shutdown, html_text::check_emit_text): Updated. (html_text::push_para): Use `void *' for second parameter. Add same function with only one parameter. (html_text::do_*): Updated. (html_text::do_color, html_text::done_color): New functions. * src/devices/grohtml/post-html.cc (style): New member `col'. Mew member `style' with 6 parameters. (style::style, style::operator==): Updated. (html_printer::do_font): Use it. (html_printer::draw): Add dummy entry for `F'. (html_printer::set_char): Updated. * src/devices/grohtml/grohtml.man: Updated. * src/devices/grops/ps.cc (ps_output::put_float): Use `%g' to have trailing zeroes removed. (ps_printer): New members `sbuf_color', `fill_color', and `output_color'. Removed member `fill'. New member function `set_color'. (ps_printer::ps_printer, ps_printer::set_char): Updated. (ps_printer::flush_sbuf, ps_printer::set_line_thickness, ps_printer::fill_path, ps_printer::draw): Use `set_color'. * tmac/color-html.tmac, tmac/color.tmac: New files. * tmac/troffrc: Include them. * tmac/www.tmac (URL, FTP, MAILTO): Use blue color. * tmac/Makefile.sub: Updated. * NEWS, doc/groff.texinfo, doc/pic.ms, man/groff_out.man, man/groff.man: Updated. * font/devps/prologue.ps: Define FC and CO functions. Fix incorrect cropping of images and incorrect handling of special characters. Fix handling of file names in \O. * src/include/geometry.h: New file. * src/libs/libgroff/geometry.cc: New file. * src/libs/libdriver/printer.cc (printer::adjust_arc_center): Moved to `geometry.cc'. * src/roff/troff/input.cc (get_delim_file_name): Fixed problem with initial spaces. (do_suppress): Updated. * src/roff/troff/node.cc: Include geometry.h. (troff_output_file::flush_tbuf): Fixed parameters to `check_output_limits'. (troff_output_file::check_charinfo): Ditto. (troff_output_file::determine_line_limits): Add support for `Da' and `Dl' commands. * src/devices/grohtml/post-html.cc (str_translate_to_html): Add new parameter `is_special' to decode special characters from escape sequences. (html_printer::do_title, html_printer::do_heading, html_printer::do_indentedparagraph, html_printer::translate_to_html, html_printer::special): Updated. * Makefile.sub (DISTCLEANFILES): Add stamp-h. Fix entry for config.h. * test-groff (GROFF_BIN_PATH): Add $builddir/roff/groff. * tmac/troffrc: Translate nonbreakable space character to `\~'. * src/preproc/eqn/eqn.man: Document -d command line option.
* Use a config.h file.wlemb2001-08-192-5/+4
| | | | | | | | | | | | | | | | | | | | * src/include/lib.h: Include config.h. * All C files: Ditto (if necessary). * All C++ source and header files: Include lib.h first (if necessary). * src/include/config.hin: New file (autogenerated by autoheader). * stamp-h.in: New file. * configure.ac: Updated. * aclocal.m4: Add third parameters to AC_DEFINE macros. (GROFF_ARRAY_DELETE): Simplified. * Makefile.sub (DISTCLEANFILES): Updated. Added targets for remaking config.status, config.hin, config.h, stamp-h.in, and stamp-h. * configure: Regenerated. * NEWS: Updated.
* * src/preproc/pic/pic.y (format_number): Use do_sprintf().wlemb2001-08-181-137/+0
| | | | | | | | | | | | | | | (do_sprintf): Use snprintf(). * src/libs/snprintf/*: Added an snprintf module written by Mark Martinec. * src/libs/libgroff/Makefile.sub: Updated. * configure.ac: Add test for snprintf(). * Makefile.in: Updated. * configure: Regenerated. * src/preproc/html/pre-html.cc (make_message): Reactivate code which uses snprintf().
* * src/preproc/html/pushbackbuffer.cc (pushBackBuffer::readNumber):wlemb2001-07-281-11/+6
| | | | Simplified.
* * aclocal.m4 (GROFF_PAGE): Add `AC_DEFINE(PAGEA4)'.wlemb2001-07-251-2/+6
| | | | | | | | | * src/preproc/html/pre-html.cc: Use it for DEFAULT_VERTICAL_OFFSET. * Makefile.in: Comment updated. * configure: Regenerated. * src/preproc/html/pre-html.cc (TRANSPARENT): Use `white' as colour name instead of number.
* * src/libs/libgroff/tmpname.cc: New file, defining get_tempname().wlemb2001-07-201-23/+4
| | | | | | | | | | | | | | | | | | | | | | | | * src/libs/libgroff/mkstemp.cc: New file. * src/libs/libgroff/mksdir.cc: New file. * src/libs/libgroff/tmpfile.cc [HAVE_MKSTEMP_PROTO]: Removed. (xtmpfile) [!HAVE_MKSTEMP]: Removed. * src/libs/libgroff/Makefile.sub: Updated. * src/include/lib.h: Add mksdir() prototype. * src/include/posix.h: Define S_IXUSR if not yet defined. * src/preproc/html/pre-html.cc (MAX_RETRIES): Removed. (createAllPages): Use mksdir() instead of current code. * src/utils/indxbib/indxbib.cc [HAVE_MKSTEMP_PROTO]: Removed. (main): [!HAVE_MKSTEMP]: Removed. * aclocal.m4 (GROFF_MKSTEMP): Updated to use new mkstemp.cc file. (GROFF_INTTYPES_H, GROFF_UNSIGNED_LONG_LONG, GROFF_UINTMAX_T): New macros. * configure.ac: Add tests for stdint.h, sys/time.h, and gettimeofday(). Call new GROFF_xxx macros. * configure: Regenerated. * Makefile.in: Comments updated.
* * src/preproc/html/pre-html.cc (scanArguments): Use getopt_long()wlemb2001-07-201-28/+46
| | | | | | | | | | instead of current code. * src/devices/grohtml/post-html.cc (main): Handle `-d' option. * src/roff/groff/groff.cc (possible_command::insert_args): New function. (main): Use it for predriver handling instead of insert_arg(). * src/include/posix.h: Define S_IWUSR if not yet defined.
* Added .cvsignore fileswlemb2001-07-191-0/+2
|
* Replace call to `troff' with `groff -Z' to make it aware ofwlemb2001-07-171-26/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | GROFF_BIN_PATH. * src/preproc/html/pre-html.cc (TROFF_COMMAND): New macro. (troff_command, command_prefix): Removed. (alterDeviceTo): Use groff. (addZ): New function. (char_buffer::do_html): Use it. (scanArguments): Use TROFF_COMMAND. (findPrefix): Removed. (main): Updated. * src/roff/groff/groff.cc (main): Handle zflag for preprocessors. * doc/pic.ms: Documentation fixes. Replace atexit() with global destructor. * src/libs/libgroff/tmpfile.cc (xtmpfile_list): Add constructor. (xtmpfile_list_init): New global structure to deallocate xtmpfile_list on exit. Its destructor inherits most code from remove_tmp_files(). (remove_tmp_files): Deleted. (add_tmp_file): Simplified.