| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
sizes (with \X'papersize ...') ensure final page is correct
size.
|
| |
|
|
|
|
| |
This does the same as the previous commit.
|
|
|
|
|
|
|
|
| |
See
http://lists.gnu.org/archive/html/bug-groff/2012-05/msg00000.html
for the report and the bug fix.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
Problem reported by Doug McIlroy <doug@cs.dartmouth.edu>.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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'.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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/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.
|
| |
|
|
|
|
|
| |
* src/roff/troff/input.cpp (my_input_iterator): Define as an alias
for `input_iterator' which is predefined by an old libstdc++.
|
|
|
|
|
| |
* src/roff/troff/input.cc (token::delimiter): Improve error message.
Suggested by Doug McIlroy <doug@cs.dartmouth.edu>.
|
| |
|
|
|
|
|
|
|
| |
* 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/roff/groff/Makefile.sub (XLIBS): Add $(LIBGNU).
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* src/roff/groff/groff.cpp (main): Implement it.
* src/roff/groff/groff.man: Updated.
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
| |
* 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/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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
* src/roff/troff/charinfo.h (charinfo::contains): Add optional
boolean argument.
* src/roff/troff/input.cpp (define_class, charinfo::contains): Check
for cyclic nesting.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* src/libs/libgroff/relocate.cpp (msw2posixpath): Remove redundant
dereferencing.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* src/roff/troff/node.cpp, src/roff/troff/node.h
(space_node::space_node): Remove unused constructor.
|
|
|
|
|
| |
* src/roff/troff/node.cpp (break_char_type): New enum.
(break_char_node::add_self, node::add_char): Use it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* src/roff/troff/input.cpp (define_class): Add missing `skip_line'
calls.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|