Thus named because 'excessive' use of 'quotation marks' in 'ordinary
prose' gouges my eyeballs like Chris Farley's fingers making air quotes
a millimeter from my face.
Stop pointlessly overwriting new CJK font descriptions for grohtml(1)
and grotty(1). Unlike the Latin script descriptions, they aren't
generated from a ".proto" file.
* font/devhtml/devhtml.am (DEVHTMLFONTS): Move CJK font description
files from here...
(DEVHTMLFONTSFILES_CJK): ...to this new macro.
(devhtmlfont_DATA, EXTRA_DIST): Expand `DEVHTMLFONTSFILES_CJK` here.
The latter ensures their presence in the distribution archive.
* font/devutf8/devutf8.am (DEVUTF8FONTS): Move CJK font description
files from here...
(DEVUTF8FONTSFILES_CJK): ...to this new macro.
(devutf8font_DATA, EXTRA_DIST): Expand `DEVUTF8FONTSFILES_CJK` here.
The latter ensures their presence in the distribution archive.
Ship font description files. These are intended as abstractions of
faces to permit consistent naming while permitting customization, just
as with the 12 text typefaces supported across output devices for Latin
scripts in groff (three families of four styles each). These CJK font
descriptions are not organized into groff font families, but are
similar.
CSH: Simplified Chinese, Hei style
CSS: Simplified Chinese, Song style
CTH: Traditional Chinese, Hei style
CTS: Traditional Chinese, Song style
JPG: Japanese, Gothic style
JPM: Japanese, Mincho style
KOG: Korean, Gothic style
KOM: Korean, Mincho style
* font/devdvi/CSH:
* font/devdvi/CSS:
* font/devdvi/CTH:
* font/devdvi/CTS:
* font/devdvi/JPG:
* font/devdvi/JPM:
* font/devdvi/KOG:
* font/devdvi/KOM:
* font/devhtml/CSH:
* font/devhtml/CSS:
* font/devhtml/CTH:
* font/devhtml/CTS:
* font/devhtml/JPG:
* font/devhtml/JPM:
* font/devhtml/KOG:
* font/devhtml/KOM:
* font/devps/CSH:
* font/devps/CSS:
* font/devps/CTH:
* font/devps/CTS:
* font/devps/JPG:
* font/devps/JPM:
* font/devps/KOG:
* font/devps/KOM:
* font/devutf8/CSH:
* font/devutf8/CSS:
* font/devutf8/CTH:
* font/devutf8/CTS:
* font/devutf8/JPG:
* font/devutf8/JPM:
* font/devutf8/KOG:
* font/devutf8/KOM: Ship font descriptions.
* font/devdvi/devdvi.am (DEVDVIFONTFILES):
* font/devhtml/devhtml.am (DEVHTMLFONTS, DEVHTMLFONTFILES):
* font/devdvi/devps.am (DEVPSFONTFILES):
* font/devutf8/devutf8.am (DEVUTF8FONTS, DEVUTF8FONTFILES): Add them.
The test "contrib/hdtbl/examples/test-hdtbl.sh" fails at this commit.
Use a surgical, not a shotgun, approach. Remove stale and/or overbroad
patterns. This way it is easier to detect bitrot and junk in the build
tree, and recognize when changes occur that affect payload or might need
to be reflected in Makefile updates.
Organize the files by "module"--by logically discrete components of the
tree. This makes the internal symmetry of the repository less obscure.
These files' contents reflect an "everything" build on GNU/Linux. Gaps
are expected for platforms with different file naming
conventions--Cygwin, for instance, still names executables with ".exe"
extensions, and may still use ".obj" instead of ".o". Please contribute
similar patterns for your platform.
[build]: Reduce and rationalize in-tree document dependencies. This
eliminates spurious rebuilds of numerous documents (including the
380+-page groff-man-pages collections). It also fixes missing
dependencies when using the build's groff to generate PostScript
documents.
* .gitignore: Drop old name of devpdf stamp file.
* doc/.gitignore: Drop now-unused "example.stamp" file.
* doc/doc.am (PROCESSEDDOCFILES_HTML, PROCESSEDDOCFILES_PDF,
PROCESSEDDOCFILES_TXT): Add new macros grouping targets by the
format/output driver used to produce them, to better organize
dependencies for their generation.
(PROCESSEDDOCFILES): Redefine as simply the expansions of the
foregeoing.
(PROCESSEDFILES_DEPS_HTML, PROCESSEDFILES_DEPS_HTML,
PROCESSEDFILES_DEPS_PDF, PROCESSEDFILES_DEPS_TXT): Add new macros
defining prerequisites for production of the corresponding output
document formats.
($(PROCESSEDDOCFILES_HTML), $(PROCESSEDDOCFILES_PDF),
$(PROCESSEDDOCFILES_PS), $(PROCESSEDDOCFILES_TXT)): Declare the
dependencies using expansions of the foregoing macros.
(MOSTLYCLEANFILES): Drop "doc/automake.pdf", now part of
`PROCESSEDDOCFILES_PDF`.
(doc/automake.pdf): Drop dependencies already supplied by
`PROCESSEDFILES_DEPS_PDF`.
(HTMLDOCFILES): Drop macro. "doc/pic.html" is now in the expansion of
`PROCESSEDDOCFILES_HTML`.
(htmlpic_DATA): Redefine as expansion of `PROCESSEDDOCFILES_HTML`
instead of `HTMLDOCFILES`.
(PROCESSEDEXAMPLEFILES_HTML) [BUILD_HTML]: Define as
"doc/webpage.html", otherwise as empty.
(PROCESSEDEXAMPLEFILES_PS): Contain "doc/webpage.ps" and
"doc/grnexampl.ps".
(PROCESSEDEXAMPLEFILES): Redefine as expansions of
`PROCESSEDEXAMPLEFILES_HTML` and `PROCESSEDEXAMPLEFILES_PS`.
($(PROCESSEDEXAMPLEFILES_HTML), $(PROCESSEDEXAMPLEFILES_PS)): Declare
dependencies using `PROCESSEDFILES_DEPS_HTML` and
`PROCESSEDFILES_DEPS_PS`, respectively.
(nodist_docexamples_DATA): Redefine macro as expansions of now-split
macros `PROCESSEDEXAMPLEFILES_HTML` and `PROCESSEDEXAMPLEFILES_PS`.
(HTMLEXAMPLEFILES): Drop macro. "doc/webpage.html" is now in the
expansion of `PROCESSEDDOCFILES_HTML`.
(nodist_htmlexamples_DATA): Drop macro, no longer needed.
($(PROCESSEDDOCFILES_PS)): Relocated and redefined above.
($(PROCESSEDEXAMPLEFILES) $(PROCESSEDDOCFILES)): Drop overbroad
dependency declarations in favor of the above.
(MOSTLYCLEANFILES, doc/examples.stamp): Drop generation and removal of
unnecessary stamp file.
(doc/pic.html, doc/webpage.html): Add explicit dependency on required
preprocessors. Drop redundant and spurious dependencies.
* font/devhtml/devhtml.am (MOSTLYCLEANFILES, font/devhtml/stamp):
Generate and remove stamp file to enable reliable target dependencies
for build-time generation of HTML documents by groff.
* font/devpdf/devpdf.am (MOSTLYCLEANFILES, font/devpdf/stamp): Rename
stamp file from "font/devpdf/build_font_files".
(font/devpdf/stamp): Drop unnecessary dependency on "afmtodit".
* font/devps/devps.am (MOSTLYCLEANFILES, font/devps/stamp): Generate and
remove stamp file to enable reliable target dependencies for
build-time generation of PostScript documents by groff.
* font/devutf8/devutf8.am (MOSTLYCLEANFILES, font/devutf8/stamp):
Generate and remove stamp file to enable reliable target dependencies
for build-time generation of UTF-8-encoded text documents by groff.
* contrib/hdtbl/hdtbl.am (HDTBLPROCESSEDEXAMPLEFILES): Add dependency on
devps stamp file since the files' target rule generates PostScript
with groff.
* contrib/mom/mom.am ($(MOMPROCESSEDEXAMPLEFILES)): Depend on new name
for devpdf stamp file.
* contrib/sboxes/sboxes.am ($(sboxes_builddir)/msboxes.pdf): Depend on
new name for devpdf stamp file.
Fixes <https://savannah.gnu.org/bugs/?62084>; thanks to Sergei
Trofimovich for the report. Also fixes
<https://savannah.gnu.org/bugs/?62297>; thanks to Bjarni Ingi Gislason
for the report.
Tested with the following script.
#!/bin/sh
set -e
test -d build
cd build
for file in \
contrib/hdtbl/examples/chess_board.ps \
contrib/hdtbl/examples/col_rowspan_colors.ps \
contrib/hdtbl/examples/color_boxes.ps \
contrib/hdtbl/examples/color_nested_tables.ps \
contrib/hdtbl/examples/color_table_cells.ps \
contrib/hdtbl/examples/color_transitions.ps \
contrib/hdtbl/examples/fonts_n.ps \
contrib/hdtbl/examples/fonts_x.ps \
contrib/hdtbl/examples/mixed_pickles.ps \
contrib/hdtbl/examples/rainbow.ps \
contrib/hdtbl/examples/short_reference.ps \
contrib/mom/examples/copyright-chapter.pdf \
contrib/mom/examples/copyright-default.pdf \
contrib/mom/examples/letter.pdf \
contrib/mom/examples/mom-pdf.pdf \
contrib/mom/examples/mon_premier_doc.pdf \
contrib/mom/examples/sample_docs.pdf \
contrib/mom/examples/slide-demo.pdf \
contrib/mom/examples/typesetting.pdf \
contrib/sboxes/msboxes.pdf \
doc/automake.pdf \
doc/grnexmpl.ps \
doc/groff-man-pages.pdf \
doc/groff-man-pages.utf8.txt \
doc/meintro.ps \
doc/meintro_fr.ps \
doc/meref.ps \
doc/ms.ps \
doc/pic.html \
doc/pic.ps \
doc/webpage.ps
do
make -j clean
make -j "$file"
done
* doc/doc.am: Put spaces around (Auto)make variable assignments, for
consistency with the rest of this .am file, and our others.
* font/devpdf/devpdf.am (font/devpdf/build_font_files): Use shell '>'
operator instead of touch(1).
* font/devhtml/devhtml.am (font/devhtml/DESC):
* font/devps/devps.am (font/devps/DESC): Construct target in temporary
file, since doing so is a multi-step process, moving it to the target
name when it is complete and usable by dependencies.
Also fix indentation and trailing whitespace nits.
* tmac/unicode.tmac: Drop. It was originally added in 2005 to suppress
horizontal spacing of glyphs in the range U+0483..9. Its purpose has
wandered over the years; most recently to map the Basic Latin
("ASCII") hyphen-minus, apostrophe, and grave accent to special
characters (and thus ultimately to the General Punctuation block).
But this is unnecessary since the font descriptions for devices with
the `unicode` property can provide this information, and anyone who
wants to alter the mappings can change either font description files,
output device macro files, or troffrc; or add `char` requests to their
macro packages or documents (in decreasing magnitude of ambition).
* tmac/html.tmac:
* tmac/tty.tmac: Stop sourcing unicode.tmac.
* tmac/tmac.am (TMACNORMALFILES): Stop shipping it.
* font/devutf8/NOTES: Drop remarks about mapping of \[a~], \[a^], and
Basic Latin circumflex accent and tilde. Not only do I disagree with
the reasoning (whether these glyphs are "too small" depends on the
font used by the terminal emulator, over which we have no control),
but this mapping happens in a completely different part of the source
tree, src/libs/libgroff/glyphuni.cpp.
* font/devhtml/R.proto:
* font/devutf8/R.proto: Add mappings for the five Basic Latin characters
that map surprisingly (see groff_char(7)) and are not syntactically
significant to troff. Three of these are ported from unicode.tmac.
(html): Don't migrate the hyphen-minus--yet.
* update-copyright.sh: use gnulib's 'update-copyright' script. Pass
this script in directories 'arch', 'contrib', 'font', 'man', 'tmac',
'src' and on a list of extra files.
* FOR-RELEASE: mention this point.
Use gnulib's update-copyright script.
* src/roff/groff/groff.cpp: update the printf displayed when 'groff -v' is invoked.
* FOR-RELEASE: mention this point.
Most users and developers have lexical coloring/syntax highlighting
available these days (cf. 30 years ago).
Leaving them in plain-text files (like READMEs) because these are
generally not machine-parsed (except for changelogs...) and the
indicator may conceivably be useful to novices who stumble across them.
* Break excessively long lines in Automake files where possible.
* Flow copyright notices onto one line per the model in the GNU
Maintainers' Guide.
* Also consistently use four-digit years in copyright notices.
* Migrate comments from `quotes' to 'quotes'.
* Update and parallelize editor aid comments.
Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com>
Fixes half of Savannah #51609 but applies it much more generally.
This is a wide-ranging change, but it makes these notices consistent
with modern copies of the GPLv3 text. (Some of these files are not
GPLv3, but that's where the boilerplate comes from; GPLv2 and LGPLv2.x
used semicolons to separate these clauses instead.)
If the next resync with Autotools regresses some of these, well, that's
a bug in Autotools.
I checked with wc -L, and no file grew its longest line to 81 characters
due to this change.
contrib/hdtbl/hdmisc.tmac-u only:
Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
Blame me for the rest.
Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com>
(install_html, uninstall_sub): Updated.
Introduce Unicode fonts.
* font/devhtml/DESC.proto: Mark as unicode. font/devhtml/R.proto: Remove all
* charset entries that are already
in glyphuni.cpp. font/devutf8/DESC.proto: Mark as unicode.
* font/devutf8/R.proto: Remove all charset entries. src/include/font.h
* (font): New static field `is_unicode'.
Change order of fields. src/libs/libgroff/font.cpp: Include unicode.h.
* (font::font): Update for
changed order of fields. (font::contains, font::get_width, font::get_height,
font::get_depth, font::get_italic_correction,
font::get_left_italic_correction, font::get_subscript_correction,
font::get_character_type, font::get_code,
font::get_special_device_encoding): Handle both the explicitly enumerated
glyphs and use general code for Unicode fonts. (font::load): Make the
charset section optional when the font is declared unicode.
(font::load_desc): Recognize the `unicode' attribute.
* src/libs/libgroff/fontfile.cpp (font::is_unicode): New variable.
Avoid future tense.
* font/devhtml/R.proto: Remove the entity names from the font's
special_encoding_encoding column.
* src/devices/grohtml/post-html.cpp (get_html_entity): New function,
handling the entity names here.
(get_html_translation): Use it. Change return type to 'const
char *'.
(page::add_and_encode): Update, removing a useless cast.
`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.
Add new option `-x' to afmtodit to suppress use of built-in AGL.
* font/devhtml/R.proto, font/devutf8/R.proto: Add `u23AE'.
* font/devps/generate/textmap: Provide entry for `integralex' to
override (old) PUA value of the AGL.
* font/devps/generate/Makefile (SS): Add afmtodit option `-x'.
* font/devps/*: Regenerated.
* src/utils/afmtodit/afmtodit.pl: Add option `-x'.
* src/utils/afmtodit/afmtodit.man, NEWS: Updated.
(html_table::set_linelength): Don't add 1.
(html_table::add_indent): Don't subtract 1.
* tmac/html.tmac: Set default page offset to zero.
Make groff emit ` ' for `\ ' and `\~' if `-Thtml' is used.
* src/roff/troff/node.cc (space_char_hmotion_node::tprint,
unbreakable_space_node::tprint): New functions.
(troff_output_file): Make space_char_hmotion_mode::tprint and
unbreakable_space_node::tprint to friends.
* src/roff/troff/node.h: Updated.
* font/devhtml/R.proto: Add ` ' at position 0xA0 (as defined
in the HTML standard).
Otherwise, the following code
.di xxx
.ps 10
a
.br
.di
x\*[xxx]
produces `x a' instead of `xa'. This is a temporary fix, disabling
font changes in diversions for -Thtml.
* tmac/an-old.tmac (TH, SH): Use `HTML-TAG-NS' instead of
`HTML-TAG'.
(an-do-tag-html): Merge with ...
(an-do-tag): This macro.
Change code slightly to circumvent grohtml bug.
* tmac/troffrc-end: Define dummy for HTML-TAG-NS.
* src/devices/grohtml/html-table.cc (html_table::emit_col,
html_table::is_gap): Round `width' properly.
* tmac/html.tmac: Provide some default layout parameters for
grohtml.
* font/devhtml/DESC.proto: Don't use discrete values for `sizes'
command.
src/devices/grops/ps.cc (ps_printer::do_import): Fix error message.
* tmac/an-old.tmac (BT): Don't call .tl if register `ps4html' is
defined.
to be conform with Unicode 3.0 and newer.
* font/devlj4/generate/text.map: Add `Eu'.
* font/devlj4/generate/special.map: Flip `*e' and `+e'.
* font/devlj4/S: Regenerated.
* man/groff_char.man: Completely rewritten.
* doc/groff.texinfo: Fix description of request and macro arguments.