| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
From Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 Reuben Thomas <rrt@sc3d.org>.
* man/groff.man: Do it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`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.
|
|
|
|
|
|
|
|
| |
`.F', `.j', `.k', `.L', `.O', `.P', `.R', `opmaxx', `opmaxy',
`opminx', `opminy').
* doc/groff.texinfo: Document missing `.R' register.
Add `.U' to register index.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Minor other updates.
* man/groff_char.man: Minor updates.
* man/groff_diff.man: Better clarification between characters and
glyphs.
|
|
|
|
|
|
|
|
|
|
|
| |
* */*.man: Replace .URL with .UR/.UE (except in groff_www.tmac).
Replace .MTO with .MT/.ME (except in groff_www.tmac).
Insert `\:' in URLs where appropriate.
Don't include www.tmac (except in groff_www.tmac).
* man/groff.man (.ESC[]): Fix font of closing bracket.
(.ESCq): Fix font of closing quote character.
Many other improvements.
|
|
|
|
|
|
|
| |
* man/groff_char.man: Normalize character set names as defined
by IANA. Based on a patch from Axel Kielhorn.
* src/preproc/refer/label.y: Undo change from 2007-09-19.
|
|
|
|
|
|
| |
* doc/groff.texinfo: Ditto.
Remove references to `\@' which isn't a valid escape sequence in
groff.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
show up readily under eyeball inspection but do when the
formatted new version is diffed against an old one.
|
|
|
|
|
| |
with quotes. This will enable us not to rely on the shift
request, which is nonportable.
|
| |
|
|
|
|
| |
nonportable ExecFF macro. The code is simpler without it.
|
|
|
|
| |
inclusion of the www macros.
|
|
|
|
|
| |
a second argument that is pasted to the end of the generated text.
Instead, the end macro takes an argument that does the same thing.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument.
* src/roff/troff/input.h (DOUBLE_QUOTE): New special character.
* src/roff/troff/input.cpp (input_iterator, input_stack,
macro_iterator): Add `space_follows_arg' member function.
(macro_iterator::add_arg): Add parameter to set the `space_follows'
flag.
(arg_list): Add member `space_follows'.
Update constructor and all callers.
(decode_args): Store discarded double quotes.
(interpolate_args): Handle DOUBLE_QUOTE.
Add `\%^' escape.
(get_copy, token::next, composite_glyph_name): Handle DOUBLE_QUOTE.
* tmac/trace.tmac: Trace .nr, .ds, .ds1, .as, .as1.
* docs/groff.texinfo (Parameters), man/groff.man,
man/groff_diff.man, NEWS: Document it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`pnr' and `ptr' to print number registers and traps).
* src/roff/troff/env.h (environment): Add member function print_env.
* src/roff/troff/env.cpp: (environment::print_env): New function to
print a given environment state.
(print_env): New global function to iterate through the
environments, printing each one.
(init_env_requests): Register `pev'.
* doc/groff.texinfo (Debugging), man/groff.man, man/groff_diff.man,
NEWS: Document `pev' request.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fonts.
* src/include/font.h (font): Add member variable `zoom'.
Add member functions `set_zoom' and `get_zoom'.
Remove `static' attribute from `scale' member function.
* src/libs/libgroff/font.cpp (font::font): Updated.
(scale_round): New version with three parameters to handle zoom
factor.
(font::scale, font::get_width): Handle zoom factor.
(font::set_zoom, font::get_zoom): New functions.
(font::load): Handle `zoom' while computing `space_width'.
* src/roff/troff/env.h: Declare `env_get_zoom'.
(environment): Add member function `get_zoom'.
* src/roff/troff/env.cpp (environment::get_zoom): New function.
(init_env_requests): Initialize `.zoom' register.
* src/roff/troff/node.cpp (font_info): New member functions
`set_zoom' and `get_zoom'.
(tfont): New member function `get_zoom'.
(env_get_zoom): New function.
(troff_output_file::set_font): Handle zoom factor.
(font_zoom_request): New function.
(init_node_requests): Initialize `fzoom' request.
* docs/groff.texinfo (Changing Fonts), man/groff.man,
man/groff_diff.man, NEWS: Document `fzoom' request and `.zoom'
register.
* src/roff/troff/TODO: Updated.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
been called as .foo and to 0 if called as 'bar. This is useful for
-mtrace so that requests can be reliably traced too.
* src/roff/troff/input.cpp (input_iterator): Add virtual function
`get_break_flag'.
(macro_iterator): Add `with_break' member and `get_break_flag'
function.
Update constructors.
(input_stack): Add function `get_break_flag'.
(break_flag_reg): New number register class.
(input_init_requests): Register `.br'.
* src/roff/troff/TODO: Updated.
* tmac/trace.tmac: s/!!sp/!!!sp/.
Modify definitions of `de', `de1', `am', and `am1' to use \n[.br].
* docs/groff.texinfo, man/groff.man, man/groff_diff.man, NEWS:
Document it.
|
|
|
|
|
|
|
|
|
|
|
| |
`\X' and `\Y', respectively.
* src/roff/troff/input.cpp (device_request, device_macro_request):
New functions.
(init_input_requests): Register them.
* doc/groff.texinfo, man/groff_diff.man, man/groff.man, NEWS:
Document them.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* doc/groff.texinfo: Fix typos.
(\LEmacro): Get proper mathematical spacing.
* aclocal.m4 (GROFF_APPRESDIR_CHECK): Improve warning message.
* configure: Regenerated with autoconf 2.59b.
|
|
|
|
|
|
|
|
|
|
|
| |
* src/roff/troff/env.cpp (fill_color_change, glyph_color_change):
New functions.
(init_env_requests): Add `fcolor' and `gcolor'.
* src/roff/troff/input.h: Export do_glyph_color and do_fill_color.
* NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
Document new requests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which check whether <name> is a valid font or style, respectively.
* src/libs/libgroff/font.cpp (text_file): Add `silent' member.
(text_file::text_file): Updated.
(text_file::error): Don't emit message if `silent' is set.
(font::load_font): Add optional third argument (which is directly
passed to `load'.
(font::load): Add optional second argument to check the header of
a font only, without emitting warning or error messages.
* src/include/font.h (font): Updated.
* src/roff/troff/input.cpp (do_if_request): Implement `S' and `F'
conditionals.
* src/roff/troff/node.cpp (mount_font_no_translate): Add optional
fourth argument to check a font without mounting.
(check_font, check_style): New functions.
* src/roff/troff/node.h: Updated.
* man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
style name.
* env.cpp (environment::get_style_name_string): New function.
(init_env_requests): Add `.sty' register.
* env.h (environment): Updated.
* node.cpp (font_info): Make `get_style_name' a friend.
(get_style_name): New function.
* node.h: Updated.
* man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Document `.U' register.
* src/roff/troff/env.cpp (environment::mark_last_line)
[WIDOW_CONTROL]: Fix scope of `p' for new C++ compilers.
New read-only register `.U'; it returns 1 in safer mode and 0
otherwise.
* src/roff/troff/input.cpp (init_input_requests): Implement `.U'
register.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
name of the current drawing and background color, respectively.
* src/roff/troff/symbol.h: Moved to...
* src/include/symbol.h: Here.
Small fixes to make it work outside of the `troff' directory.
* src/roff/troff/symbol.cpp: Moved to...
* src/libs/libgroff/symbol.cpp: Here.
Small fixes to make it work outside of the `troff' directory.
* src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub
(OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS):
Updated.
* src/include/color.h: Include symbol.h.
(color): Add new field `nm'.
* src/libs/libgroff/color.cpp (color::color): Updated.
* src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp,
src/roff/troff/node.cpp, src/roff/troff/number.cpp,
src/roff/troff/reg.cpp: Don't include symbol.h.
* src/roff/troff/env.cpp: Don't include symbol.h.
(environment::get_glyph_color_string,
environment_get_fill_color_string): New member functions.
(init_env_requests): Handle `.m' and `.M' registers.
* src/roff/troff/input.cpp: Don't include symbol.h.
(default_symbol): Moved to symbol.cpp/symbol.h.
(do_glyph_color, do_fill_color, define_color): Pass symbol name
to color constructor.
* src/roff/troff/env.h: Updated.
* NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
Document new registers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/roff/troff/input.cc (calling_mode): Remove
CALLING_DISABLE_COMP.
(comp_mode): New enumeration.
(do_define_string, define_string, define_nocomp_string,
append_string, append_nocomp_string): Updated.
(do_define_macro): Add third parameter.
(define_macro, define_nocomp_macro, define_indirect_macro,
append_macro, append_nocomp_macro, append_indirect_macro): Updated.
(define_indirect_nocomp_macro, append_indirect_nocomp_macro): New
functions.
(ignore): Updated.
(init_input_requests): Add `dei1' and `ami1'.
* tmac/trace.tmac: Handle de1 and am1.
(de): Improve tracing message.
(am): Add missing `do'.
(return): Use de1.
* NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
Document new requests.
|
|
|
|
|
|
| |
syntax extensions are used in the particular man page.
* PROBLEMS: Add solutions for SGR problems.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
aren't stretched in a tag (this can fail with unformatted boxes).
Instead, insert a break and go back one line.
* src/roff/troff/input.cc (return_macro_request): If called with
argument pop macro twice. We need this to trace `return'.
* tmac/trace.tmac: Handle `return'.
Fix typos.
* NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
Document.
* tmac/groff_ms.man, doc/groff.texinfo: Improve documentation of
registers `FPS', `FVS', and `FPD'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add register \n[.slant] which returns the value of \S.
* src/roff/troff/env.cc (init_env_requests): Implement.
* NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
Document.
* tmac/html.tmac: Move some of the data into html-end.tmac.
Remove most of the character translations for eqn since html fonts
now cover those characters.
Load www.tmac.
* tmac/html-end.tmac: New file.
* tmac/troffrc: Load html.tmac not www.tmac for -Thtml.
* tmac/troffrc-end: Load html-end.tmac not html.tmac for -Thtml.
* tmac/Makefile.sub (NORMALFILES): Add html-end.tmac.
* man/groff_out.man: Document negative values of `N' if -Thtml is
used.
|
|
|
|
| |
* man/groff.man, man/groff_diff.man, doc/groff.texinfo: Do it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make \D'f ...' move horizontally again for backwards compatibility.
Replace it with \D'Fg ...' where appropriate to avoid dependency
on horizontal resolution.
* src/roff/troff/input.cc (do_get_long_name): New function.
(get_long_name): Call it.
(read_draw_node): Handle `\D'Fx ...' by calling ...
(read_color_draw_node): New function.
(read_rgb, read_cmy, read_cmyk, read_gray): New optional argument
`end'.
Pass it to `do_get_long_name' which is used instead of
`get_long_name'.
* src/libs/libdriver/input.cc (color_from_Df_command): Remove
unnecessary value guard.
(parse_D_command) <'f'>: Add horizontal shift.
* src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'.
* src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
(FILL_MAX): Removed.
* NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
Updated.
* src/roff/troff/input.cc (do_name_test, do_expr_test,
do_zero_width): Push `\n' if closing delimiter is missing.
(token::next) <ESCAPE_NEWLINE>, <'\n'>, <'\ '>: Reset `have_input'.
<'F'>: Make \F non-transparent at the beginning of line.
(process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE,
token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle
`have_input'.
(define_color): Free color in case of reassignment.
* doc/groff.texinfo (@Defesc, @DefescList, @DefescItem,
@DefescListEnd): Use @Var, not @var.
Fix all calls.
* src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo.
* src/preproc/pic/object.cc (object_spec::~object_spec): Free
`shaded' and `outlined' arrays.
(object_spec::object_spec): Initialize `shaded' and `outlined'.
(graphic_object::set_fill_color, graphic_object::set_outline_color):
Use strsave.
(closed_object::set_fill_color): Ditto.
* src/preproc/pic/troff.cc (troff_output::set_color): Use strsave
instead of strdup.
(troff_output::reset_color): Use a_delete instead of free.
* src/preproc/pic/main.cc (do_file): Free `out' in case of error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* font/devdvi/*TC: Regenerated.
* src/roff/troff/div.cc (init_div_requests): Sorted.
* tmac/dvi.tmac: Remove `Ye'.
* tmac/ec.tmac: Remove `Ye'.
Add .rchar entry for `de'.
* man/groff.man, man/groff_diff.man: Document register `.pe'.
* doc/groff.texinfo: Document registers `.pe', `.n', and `.w'.
* NEWS: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
defines a glyph which is searched after the check for fonts declared
with `.special' (and before the check for all mounted special
fonts). `fschar' defines a glyph for a particular font which is
searched after the check for fonts declared with `.fspecial' (and
before the check for fonts declared with `.special'). `rfschar'
removes glyphs defined with `fschar'.
* src/roff/troff/token.h (char_mode): New enum.
Declare do_define_character.
* src/roff/troff/charinfo.h (charinfo): Replace `fallback' with
`mode'.
(charinfo::is_fallback): Updated.
(charinfo::is_special): New method.
* src/roff/troff/input.cc (do_define_character): Add and use
optional second parameter used as a prefix for font-specific glyph
names.
(define_character, define_fallback_character): Updated.
(define_special_character): New function.
(init_input_requests): Add `schar'.
(charinfo::charinfo, charinfo::set_macro): Updated.
* src/roff/troff/node.cc: Include `stringclass.h'.
(make_glyph_node): Handle special glyphs defined with `.schar' and
`.fschar'.
(define_font_special_character, remove_font_special_character): New
functions.
(init_node_requests): Sorted.
Add `fschar' and `rfschar'.
* NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
Document new requests.
* font/devhtml/R.proto, font/devutf8/R.proto: Add `va'.
* tmac/dvi.tmac: Add `va' for CW and CWI (using `.fschar').
|