summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove running texy from Synopsis, it screws up mechanical parsing.esr2012-07-071-3/+3
|
* Eliminate running test in Synopsis, it makes mechanical parsing too hard.esr2012-07-071-3/+3
|
* Eliminate running test in Synopsis, it makes mechanical parsing too hard.esr2012-07-071-4/+4
|
* Fix Unicode mapping of Greek stroked and curly phi.wl2012-07-031-3/+3
| | | | | | | | | | Problem reported by Alkis Georgopoulos <alkisg@gmail.com>; see https://bugs.launchpad.net/ubuntu/+source/groff/+bug/1008115 * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Flip values of U+03C6 and U+03D5.
* * src/devices/gropdf/gropdf.pl: When using variable pagewl2012-06-131-0/+1
| | | | | sizes (with \X'papersize ...') ensure final page is correct size.
* Copyright update.wl2012-05-241-2/+2
|
* * src/roff/grog/grog.pl (process): Fix .so handling.wl2012-05-241-5/+21
| | | | This does the same as the previous commit.
* * src/roff/grog/grog.sh: Fix .so handling.wl2012-05-241-2/+3
| | | | | | | | See http://lists.gnu.org/archive/html/bug-groff/2012-05/msg00000.html for the report and the bug fix.
* Typo, found by Denis M. Wilson <dmw@oxytropis.plus.com>.wl2012-05-241-2/+2
|
* * doc/groff.texinfo: Add extra info about `.asciify'.wl2012-05-203-101/+236
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Document new gropdf options -u and -s. * src/devices/gropdf/gropdf.man: Remove references to Type 42 fonts, they do not work in PDFs. Document new option -s which adds `statistics' line to end of PDF file showing number of pages in document. This has always been the default behaviour (to add this line), all other software seems to ignore it as intended, but `gs' sometimes complains, so the default is now to omit the statistics. Document new option -u[cmapfilename] to allow a user ToUnicode CMap instead of gropdf's default. If no `cmapfilename' given then do not include any ToUnicode CMap. * src/devices/gropdf/gropdf.pl <top>: Allow `bundled' flags on command line (i.e. -de = -d -e). Use $RT_SEP as multi path separator, not hard coded `:'. Update all users. New flags -u and -s. Once a custom papersize has been set as \X'papersize x,y' make it sticky so all following pages use custom size. When importing pdf with \X'pdf: pdfpic ...' do not compress objects which are already compressed! This caused problems with PDFs created with ImageMagick, now fixed. (IsText, PutLine, do_t): The troff `u' command can contain a kerning adjustment number, this was not being handled, now fixed. (do_c): The troff `c' command was not being handled correctly, now fixed. (FindChar, RemapChr, do_N): Handle fonts with more than 255 glyphs. ($ucmap): Define CMap ToUnicode to convert ligatures (fl,fi,ff,ffl,ffi) back to individual characters, useful for cut'n'paste and text searching. (LoadFont): Handle it. (ToPoints, GetPoints): Handle `z' unit. (do_x, FixPDFColour, PutHotSpot): Allow Annotation colour to be groff colour, i.e. 0-65535 *3, or #rrggbb, or #rrrrbbbbgggg. (do_p):The papersize width/length in switch -p were reversed, corrected. * src/devices/gropdf/Makefile.sub (gropdf): Use $RT_SEP. Use $fontpath rather than $fontdir (this ensures site-font is included in searches). * tmac/pdf.tmac (PDFBOOKMARK.VIEW, PDFHREF.VIEW, PDFPAGE.Y): Fix strings. (pdfbookmark): Correct handling of bookmark levels. Convert \[em] to hyphen in bookmarks Rather use -N than -T for "named" bookmarks (-T already used for "tag" in pdfmark.tmac) (.pdfclean): New macro which attempts to asciify bookmark text. (.pdfpagename): New wrapper macro for \X'pdf: pagename'. (.pdfswitchtopage): New wrapper macro for \X'pdf: switchtopage'.
* Fix compiler warnings.wl2012-03-104-6/+7
| | | | | | | | | | | | | | | * src/preproc/html/pre-html.cpp (alterDeviceTo): Avoid ambiguous if-else clause. * src/preproc/grn/main.cpp (sccsid): Comment out. * src/roff/troff/number.cpp (parse_expr) <case '*'>: Add cast. * src/devices/xditview/Makefile.sub (EXTRA_CFLAGS): Add `-Dlint' so that unused static ID arrays don't cause a warning. (Some) problems reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
* Update configuration files from `gnulib' and `config' repositories..wl2012-02-266-777/+953
| | | | | | | | | | | | | | | | | | | | | | | This also fixes a problem with `iconv' on Solaris 10, as reported in http://lists.gnu.org/archive/html/bug-groff/2012-02/msg00007.html * configure.ac: Call `gl_LOCALCHARSET. Call `AM_ICONV' as C++. * config.guess, config.rpath, config.sub, install-sh, mkinstalldirs: Updated. * m4/codeset.m4, m4/glib21.m4, m4/iconv.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: Updated. * m4/fcntl-o.m4, m4/localcharset.m4: New files. * Makefile.in: Updated. * src/include/localcharset.h, src/libs/libgroff/config.charset, src/libs/libgroff/localcharset.c: Updated. * aclocal.m4, configure, src/include/config.hin: Regenerated.
* One more aux file.wl2012-02-201-0/+4
|
* Update `gnulib' files.wl2012-02-2050-1851/+4105
| | | | | | | | | | | | | The invocation was gnulib-tool --add-import \ --dir=src/libs/gnulib \ wcwidth Additionally, src/libs/gnulib/configure.ac was adjusted from a `test' run as described in the change from 2010-12-13. * src/libs/gnulib/*: Updated.
* [gropdf] Fixes and omissions.wl2012-02-151-43/+87
| | | | | | | | | | | | * src/devices/gropdf/gropdf.pl (<top>, do_u): Add facility to handle track kerning (.tkf). (do_x, do_p, do_t): If pages are reordered using `pagename' and `switchtopage' keep track of outline bookmarks. (PutHotSpot): Allow user to control size of hotspot bounding box on clickable links by setting PDFHREF.LEADING * tmac/pdf.tmac (PDFHREF.LEADING): Adjust value. (pdf*href): Pass value of PDFHREF.LEADING to gropdf.
* * src/preproc/pic/main.cpp (do_file): Check for invalid characters.wl2012-02-081-1/+5
| | | | Problem reported by Doug McIlroy <doug@cs.dartmouth.edu>.
* * src/preproc/tbl/tbl.man: Improve documentation of `_' and friends.wl2011-11-141-0/+4
|
* Fix compiler warnings.wl2011-10-316-34/+22
| | | | | | | | | | | | | | | * src/preproc/eqn/main.cpp (do_file), src/roff/troff/env.cpp (environment::print_env), src/roff/troff/mtsm.cpp (statem::display_state): Add syntactical sugar. * src/utils/tfmtodit/tfmtodit.cpp (char_info_word): Use `unsigned char' for all members. * src/devices/grohtml/html-text.cpp (html_text::remove_def): Remove unused variable `q'. * src/devices/grohtml/post-html.cpp (html_printer::lookahead_for_tables): Remove unused variable `left' and `seen_text'.
* [gropdf] More minor fixes.wl2011-08-141-0/+2
| | | | | | | | | * font/devpdf/Makefile.sub (MOSTLYCLEANADD): Don't attempt to install 'util/BuildFoundries', only used in 'make'. * src/devices/gropdf/gropdf.pl (<top>, GetType1): Make STDOUT and any font files read to be accessed in binary rather than text mode. Prevents errors when running on systems set up for UTF-8.
* [gropdf] Minor updates and fixes.wl2011-08-102-14/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | * src/devices/gropdf/gropdf.pl: Change command line option `-fy' to `-y' for consistency. Better support for Windows platform. (do_x): Handle keywords `pagename' and `switchtopage'. * doc/groff.texinfo, src/devices/gropdf/gropdf.man: Updated. * font/devpdf/Foundry: Renamed to... * font/devpdf/Foundry.in: This. Add default alias font names. * font/devpdf/util/BuildFoundries.pl: This is now an installation helper script and gets not longer installed. Support alternative font file names (separated with `!'). * font/devpdf/Makefile.sub: Fixes to work with a separate build directory. Font files are now build at `make' time; this makes `test-groff' work with -Tpdf. * font/devpdf/util/Makefile.sub: Removed. * Makefile.in (DEVDIRS, OTHERDIRS, EXTRADIRS): Handle devpdf specially.
* gropdf.pl: Adjust indentation to be in sync with other groff Perl scripts.wl2011-08-041-2127/+2127
|
* Add new output device `gropdf'.wl2011-07-269-12/+4127
| | | | | | | | | | | | | | | | | | | | | | | | | | | * font/devpdf/*: New device files for gropdf. * src/devices/gropdf/*: New device. * Makefile.comm (install_dev, uninstall_dev): Handle more subdirectories. * Makefile.in (DEVDIRS, OTHERDIRS, EXTRADIRS): Add directories related to gropdf. * MANIFEST: Updated. * test-groff.in (GROFF_BIN_PATH): Updated. * tmac/Makefile.sub (NORMALFILES): Updated. * tmac/pdf.tmac: New file. * tmac/troffrc: Updated. * doc/groff.texinfo: Document it. * doc/Makefile.in, doc/Makefile.sub (groff_bin_dirs): Udpated. * doc/pic.ms: Updated. * man/groff_out.man, src/devices/grops/grops.man, src/preproc/pic/pic.man, src/roff/groff/groff.man, src/utils/afmtodit/afmtodit.man, src/utils/pfbtops/pfbtops.man: Updated. * contrib/pdfmark/pdfmark.ms: Updated.
* Improve line numbering support in tbl and with me macros.wl2011-07-201-8/+61
| | | | | | | | | | | | | | | | | * tmac/e.tmac (n1, n2, TH, PS): Implement it. (@h, @n, @o, @t, @k, )b, (c, (q, )q, (l, )l, (f, @q, PE): Updated. * doc/meref.me: Document changes. * src/preproc/tbl/table.cpp (ROW_START_LINE_REG, ROW_SAVE_LINE_REG, ROW_MAX_LINE_REG, REPEATED_NM_SET_MACRO, REPEATED_NM_SUS_MACRO): New macros. (table::init_output): Define REPEATED_NM_SET_MACRO and REPEATED_NM_SUS_MACRO. (table::print_single_hline, table::print_double_hline, table::define_bottom_macro, table::do_row, table::do_top, table::do_bottom): Updated. * doc/webpage.ms: Updated.
* * src/preproc/tbl/tbl.man: Mention trick to get abutting rules.wl2011-07-121-0/+42
|
* Fix clang warnings.wl2011-07-032-6/+5
| | | | | | | * src/libs/libdriver/input.cpp (odd): Use parentheses. * src/roff/troff/mtsm.cpp (state_set::is_in): Fix parentheses; previous code always tested for bit 0.
* Typo.wl2011-04-111-3/+2
|
* Fix compilation issues with gcc 2.95.wl2011-03-301-0/+3
| | | | | * src/roff/troff/input.cpp (my_input_iterator): Define as an alias for `input_iterator' which is predefined by an old libstdc++.
* [troff] Improve error message.wl2011-03-181-2/+5
| | | | | * src/roff/troff/input.cc (token::delimiter): Improve error message. Suggested by Doug McIlroy <doug@cs.dartmouth.edu>.
* Typo.wl2011-02-231-1/+1
|
* More fixes for Savannah bug #32301.wl2011-01-315-5/+5
| | | | | | | * src/devices/grops/Makefile.sub (XLIBS), src/devices/grodvi/Makefile.sub, src/devices/grolj4/Makefile.sub, src/devices/grohtml/Makefile.sub, src/devices/grolbp/Makefile.sub: Add $(LIBGNU).
* * src/preproc/html/Makefile.sub: Add $(LIBGNU).wl2011-01-311-1/+1
|
* * src/preproc/grn/Makefile.sub: Add $(LIBGNU).wl2011-01-311-1/+1
|
* Fix Savannah bug #32301.wl2011-01-311-1/+1
| | | | * src/roff/groff/Makefile.sub (XLIBS): Add $(LIBGNU).
* Update `grog'.wl2011-01-223-71/+20
| | | | | | | * src/roff/grog/{groff.sh,groff.pl}: `groff' now calls `pic' automatically if `grap' or `chem' is used. `chem' has been folded into `groff'. * src/roff/grog/grog.man: Updated.
* Make `groff -G' imply `-p'.wl2011-01-222-1/+13
| | | | | * src/roff/groff/groff.cpp (main): Implement it. * src/roff/groff/groff.man: Updated.
* Integrate `chem' into `groff' (new option -j).wl2011-01-223-12/+23
| | | | | | | | | | * src/roff/groff/groff.cpp (CHEM_INDEX): New constant. (main) ['j']: Add `chem'. (synopsis, help): Updated. * src/roff/troff/pipeline.h (MAX_COMMANDS): Increase to 14. * src/roff/groff/groff.man: Document new command line option. * NEWS: Updated.
* Fix handling of wide characters in no-SGR mode.wl2011-01-201-10/+5
| | | | | | | * src/devices/grotty/tty.cpp (tty_printer::make_underline): Only emit a single backspace in no-SGR mode. less (at least) backspaces over a character at a time. (tty_printer::make_bold): Likewise.
* * src/preproc/pic/pic.man: Add pic manual to `SEE ALSO' section.wl2011-01-191-4/+13
|
* Speed up troff.wl2010-12-261-2/+2
| | | | | | | | | | * src/include/ptable.h (PTABLE): Make hash tables much more sparse by changing `FULL_NUM' from 3 to 1. This increases the allocated memory by about 200kByte (which is nothing today) but assures that there aren't extremely long searches for a free hash slot in case that the hash function doesn't return a free one. Due to the nature of the entries in uniuni.cpp, the used hash function in ptable.cpp is not optimal, but using a sparse array compensates this.
* Replace patch from 2010-12-18 with a much faster implementation.wl2010-12-202-262/+54
| | | | | | | | | | | | | | | | | | | * src/roff/troff/node.h (node): Add virtual function `get_break_code'. * src/roff/troff/node.cpp (inter_char_space_node): Remove class completely. (glyph_node::merge_glyph_node): Restore previous version. (break_char_node): Add `prev_break_code' field and update constructors. (node::get_break_code, break_char_node::get_break_code): Implement. (node::add_char): Pass remaining cflags values. (break_char_node::add_self): Use the logic of the now deleted `inter_char_space_node::add_self' function to insert a space node if necessary.
* Speed up access to cflags values.wl2010-12-202-19/+58
| | | | | | | | | | | | | | | | | | | | | | | We now recompute the cflags values for all charinfo objects if `.class' has been called. * src/roff/troff/charinfo.h: Add external references to `class_flag' and `get_flags'. (charinfo): `get_flags' no longer has a return value. (charinfo::overlaps_horizontally, charinfo::overlaps_vertically, charinfo::can_break_before, charinfo::can_break_after, charinfo::can_break_after, charinfo::ends_sentence, charinfo::transparent,, charinfo:ignore_hcodes, charinfo::prohibit_break_before, charinfo::prohibit_break_after, charinfo::inter_char_space): Call global `get_flags' only if necessary. (charinfo::add_to_class): Set `class_flag'. * src/roff/troff/input.cpp (class_flag): New global flag. (charinfo::charinfo): Call `get_flags' member function. (get_flags): New global function which iterates over all entries in the charinfo dictionary. (charinfo::get_flags): Set `flags' directly.
* Protect `.class' against cyclic nesting.wl2010-12-192-10/+34
| | | | | | | * src/roff/troff/charinfo.h (charinfo::contains): Add optional boolean argument. * src/roff/troff/input.cpp (define_class, charinfo::contains): Check for cyclic nesting.
* Improve CJK support with new values for `.cflags'.wl2010-12-183-19/+286
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces three new values to `.cflags': don't break before character: 128 don't break after character: 256 allow inter-character break: 512 They are handled differently if compared to other cflags values: (1) hcode values are completely ignored (2) similar to kern values, and contrary to the other cflags values, troff looks at pairs of characters to decide whether a break gets inserted A yet-to-be-written patch should add inter-character spacing if those flags are active; currently, only zero-width breakpoints are inserted. * src/roff/troff/charinfo.h (charinfo): Change type of `flags' to `int'. Update callers accordingly. New enum values `DONT_BREAK_BEFORE', `DONT_BREAK_AFTER', and `INTER_CHAR_SPACE'. New member functions `prohibit_break_before', `prohibit_break_after', and `inter_char_space'. * src/roff/troff/input.cpp: Updated. * src/roff/troff/node.cpp (inter_char_space_node): New class similar to kern_pair_node, collecting charinfo entities with the abovementioned cflags values. (break_char_type): Add new enum values. (glyph_node::merge_glyph_node): Handle abovementioned cflags values and emit an `inter_char_space_node' if necessary. * tmac/ja.tmac: Use new cflags values. * doc/groff.texinfo, NEWS, man/groff_diff.man: Document new values.
* Remove compiler warning.wl2010-12-181-1/+1
| | | | | * src/libs/libgroff/relocate.cpp (msw2posixpath): Remove redundant dereferencing.
* Fix compilation problem.wl2010-12-152-8/+8
| | | | | | | | This issue happens with gcc 4.2.4. * src/roff/troff/node.cpp (node::~node): Move to... * src/roff/troff/node.h: Here. This ensures that the inline member function is publicly visible.
* Remove unused code.wl2010-12-152-7/+1
| | | | | * src/roff/troff/node.cpp, src/roff/troff/node.h (space_node::space_node): Remove unused constructor.
* Use enum to increase readability.wl2010-12-151-7/+13
| | | | | * src/roff/troff/node.cpp (break_char_type): New enum. (break_char_node::add_self, node::add_char): Use it.
* Add wide character support to grotty.wl2010-12-1362-23/+24050
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a huge patch, mainly by adding the gnulib infrastructure in a separate directory tree (in `src/libs/gnulib/lib') for its `wcwidth' module. However, the actual changes to native groff source files are just a few lines. * Makefile.comm (INCLUDES): Updated. (LIBGNU): Define. * Makefile.in (NOMAKEDIRS): Updated. (GNULLIBDIRS): Define. (DISTDIRS): Add GNULLIBDIRS. ($LIBDIRS): Depend on GNULLIBDIRS. ($GNULLIBDIRS): New target. * src/libs/libgroff/font.cpp (font::get_width, font::load) [is_unicode]: Use `wcwidth'. * src/roff/troff/Makefile.sub (XLIBS): Add LIBGNU. * src/roff/troff/input.cpp (main): Set LC_CTYPE. * src/devices/grotty/Makefile.sub (XLIBS): Add LIBGNU. * src/devices/grotty/tty.cpp (main): Set LC_CTYPE. * src/libs/gnulib/*: New files. The import was done as follows: . Call gnulib-tool --create-testdir \ --dir=src/libs/gnulib \ wcwidth to get a testbed. . Manually move directories src/libs/gl{lib,m4} to src/libs/{lib,m4}, and do s/gllib/lib/ and s/glm4/m4/ everywhere to `convert' the gnulib testbed to a standard gnulib configuration as maintained by gnulib-tool. . Call gnulib-tool --add-import \ --dir=src/libs/gnulib \ wcwidth to update everything.
* `.class' must not emit empty lines.wl2010-12-131-0/+2
| | | | | * src/roff/troff/input.cpp (define_class): Add missing `skip_line' calls.
* Implement support for character classes.wl2010-12-134-84/+270
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch uses standard C++ headers, contrary to the rest of groff. Ideally, everything in groff should be updated to do the same. * src/include/font.h (glyph_to_unicode): New function. * src/libs/libgroff/font.cpp (glyph_to_unicode): Implement it. (font::contains, font::get_code): Use it. * src/roff/troff/charinfo.h: Include <vector> and <utility>. (charinfo): New members `ranges' and `nested_classes'. New member functions `get_unicode_code' and `get_flags'. New member functions `add_to_class', `is_class', and `contains'. (charinfo::overlaps_horizontally, charinfo::overlaps_vertically, charinfo::can_break_before, charinfo::can_break_after, charinfo::can_break_after, charinfo::ends_sentence, charinfo::transparent,, charinfo:ignore_hcodes): Use `get_flags', which handles character classes also. * src/roff/troff/input.cpp (char_class_dictionary): New global variable. (define_class): New function. (init_input_requests): Register `class'. (charinfo::get_unicode_code, charinfo::get_flags, charinfo::contains): Implement it. * NEWS, doc/groff.texinfo (Character Classes), man/groff_diff.man, man/groff.man: Document it.