| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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/*: 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.
|
|
|
|
|
|
|
| |
* 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/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/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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Reported by Dorai Sitaram <ds26gte@yahoo.com>
* src/roff/groff/groff.cpp (main): Fix it.
|
|
|
|
|
| |
Reported in
http://lists.gnu.org/archive/html/bug-groff/2010-06/msg00022.html
|
|
|
|
| |
Suggested by Krzysztof Zelechowski <giecrilj@stegny.2a.pl>.
|
|
|
|
|
|
|
| |
Reported by Krzysztof Zelechowski <giecrilj@stegny.2a.pl>
* src/roff/troff/nodes.cpp (troff_output_file::really_put_filename):
Replace `F' command with `x F'.
|
|
|
|
|
|
|
|
| |
Problem reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
* src/roff/troff/input.cpp (init_hpf_code_table): Use `cmlower'.
* doc/groff.texinfo, man/groff_diff.man: Update documentation of
`hpfcode' request.
|
|
|
|
|
|
|
|
| |
* src/roff/troff/env.cpp (environment::make_tag): Use local object.
* src/roff/troff/input.cpp (input_stack::check_end_diversion): Free
`diversion_state' here.
(interpolate_arg): Fix memory leaks.
* src/roff/troff/mtsm.cpp (mtsm::pop_state): Don't free `sp->state'.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem reported by Steve Izma <sizma@golden.net>.
* src/roff/troff/node.cpp
(kern_pair_node::add_discretionary_hyphen): Compute `tf' using the
first node, `n1'. `n2' might be another kerning node, and the
`get_tfont' member function isn't defined then.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reported by Doug McIlroy <doug@cs.dartmouth.edu>.
* src/roff/troff/token.h (token): Add TOKEN_HORIZONTAL_SPACE
enumeration value together with `horizontal_space' member function.
Add `do_overstrike' as a friend.
* src/roff/troff/input.cpp: Use TOKEN_HORIZONTAL_SPACE for \0, \|,
\^, and \h.
Update all affected places.
(do_overstrike): Remove `static' attribute.
Accept all escapes which produce a fixed horizontal space.
|
|
|
|
|
|
|
| |
Reported by Urs Eggli <Urs.Eggli@zuerich.ch>.
* src/roff/troff/node.h (node::~node): Move to...
* src/roff/troff/node.cpp: Here. Free `state' and `push_state'.
|
|
|
|
|
|
|
|
|
|
|
| |
* src/roff/troff/troff.h (warning_type): Add WARN_FILE.
* src/roff/troff/input.cpp (DEFAULT_WARNING_MASK): Include
WARN_FILE.
(warning_table): Add `file' category.
(macro_source): Convert error on missing macro file to a
warning.
* NEWS, doc/groff.texinfo (I/O, Warnings), man/groff_diff.man,
src/roff/troff/troff.man: Document new warning category.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`blm'.
Implement two new number registers, \n[lsn] and \n[lss], which hold
the number of spaces and the horizontal space, respectively, which
would be inserted if the macro registered by `lsm' wasn't called.
* src/roff/troff/input.cpp (leading_spaces_macro_name,
leading_spaces_number, leading_spaces_space): New global
variables.
(leading_spaces_macro): New function.
(process_input_stack) <token::TOKEN_SPACE>: Handle `lsm'.
(init_input_requests): Register `lsm', \n[lsn], and \n[lss].
* NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo
(Leading Spaces Traps): Document new requests and registers.
|
|
|
|
|
| |
to...
(MOSTLYCLEANADD, MOSTLYCLEANNOTSRCDIRADD, MOSTLYCLEANDIRADD): This.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
`m' and `M', respectively.
Sort entries in `switch' block.
* src/preproc/tbl/tbl.man: Updated.
Sort key entries; other minor improvements.
|
|
|
|
|
| |
\O[5] non-transparent w.r.t. beginning-of-line recognition (similar
to the other \O variants).
|
|
|
|
|
|
| |
src/preproc/soelim/soelim.man: Correct documentation of -I switch.
Reported by Larry Kollar.
Other minor formatting issues.
|
|
|
|
|
|
|
|
| |
(problem caused by change on 2008-09-29).
* src/roff/troff/input.cpp (input_iterator, input_stack,
macro_iterator): Add `get_macro_name' member function.
(interpolate_string): Use it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expected. Without the patch,
.de aaa
\\*[bbb]\\
. tm \\$*
..
.de bbb
. shift
..
.aaa 1 2 3
prints `2 3' instead of `1 2 3'.
* src/roff/troff/input.cpp (input_iterator, input_stack,
macro_iterator): Add `get_arg_list' member function.
(macro): Add `is_a_string', `is_string', and `clear_string_flag'
members.
Update constructors and operators.
(arg_list): Add copy constructor.
(macro_iterator): Add optional argument to constructor to indicate
whether arguments shall be inherited from calling macro.
(interpolate_string): If string argument is a macro, push a macro
iterator on the stack.
(do_define_macro): Call clear_string_flag if macro data contains a
newline.
* src/roff/troff/request.h: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
| |
caller. This is useful for `trace.tmac'.
* src/roff/troff/input.cpp (string_iterator): New members
`with_break' and `get_break_flag'.
(string_iterator::string_iterator): Updated.
* doc/groff.texinfo: Improve documentation of \$0 and string syntax
calling of macros.
Document behaviour of \n[.br] within strings.
|