* font/devps/generate/symbolsl.afm: Delete. We were no longer shipping
it in our distribution archive, instead supplying a more recently
generated version of this file from the parent directory,
"font/devps".
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.
* font/devps/generate/text.map: Drop all mappings of symbolic/
mathematical/unstyled Greek special characters `*[A-Za-z]` to
PostScript glyph names. As noted above, such mappings are not
appropriate for text fonts, which (typically) have multiple styles
available.
* font/devps/AB:
* font/devps/ABI:
* font/devps/AI:
* font/devps/AR:
* font/devps/BMB:
* font/devps/BMBI:
* font/devps/BMI:
* font/devps/BMR:
* font/devps/CB:
* font/devps/CBI:
* font/devps/CI:
* font/devps/CR:
* font/devps/HB:
* font/devps/HBI:
* font/devps/HI:
* font/devps/HNB:
* font/devps/HNBI:
* font/devps/HNI:
* font/devps/HNR:
* font/devps/HR:
* font/devps/NB:
* font/devps/NBI:
* font/devps/NI:
* font/devps/NR:
* font/devps/PB:
* font/devps/PBI:
* font/devps/PI:
* font/devps/PR:
* font/devps/TB:
* font/devps/TBI:
* font/devps/TI:
* font/devps/TR:
* font/devps/ZCMI: Replace/rename entry for `*m` glyph to `mc`, removing
`mc` as an alias thereof; annotate the corresponding code point as
U+00B5, not U+03BC. The micro sign (groff: \[mc]) is a styled glyph
often found in text faces. `*m` is an unstyled, but traditionally
slanted, lowercase Greek mu used overwhelmingly in mathematical or
scientific typesetting contexts. It is not appropriate for setting
the modern Greek language.
* font/devps/generate/symbol.map:
* font/devps/generate/text.map: Remove spurious mappings of groff's
`\[mc]` to PostScript's `mu`. This prevents afmtodit(1) from
resurrecting the aforementioned problem, though for unrelated reasons
we don't regenerate the font description files for grops(1) when
building groff--we should, someday. (Among other manual changes, we
added kerning pairs; see Savannah #58897.)
* font/devdvi/devdvi.am (font/devdvi/DESC):
* font/devlbp/devlbp.am (font/devlbp/DESC):
* font/devlj4/devlj4.am (font/devlj4/DESC):
* font/devpdf/devpdf.am (font/devpdf/DESC): When constructing file by
stages, write to the target name suffixed with `.tmp`, then move it
into place once it is complete.
* font/devpdf/devpdf.am (font/devpdf/DESC):
* font/devps/devps.am (font/devps/DESC): Replace hard-coded directory
name with output of `dirname` command on Make's `$@` internal
variable.
* font/devpdf/devpdf.am (font/devpdf/DESC): Replace hard-coded target
name with Make's `$@` internal variable.
Write any desired paper format to generated DESC files.
* font/devdvi/devdvi.am (font/devdvi/DESC):
* font/devlbp/devlbp.am (font/devlbp/DESC):
* font/devlj4/devlj4.am (font/devlj4/DESC):
* font/devpdf/devpdf.am (font/devpdf/DESC):
* font/devps/devps.am (font/devps/DESC): Write the "configure"d paper
format to generated device description files, instead of only ever
"a4" or "letter".
* NEWS: Add item.
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.
* font/devps/ZD: Regenerate using updated dingbats.map.
Fixes <https://savannah.gnu.org/bugs/?63018>. Thanks to Deri James and
Dave Kemper for (extensive) consultation.
afmtodit complains.
afmtodit: warning: you are not allowed to map the PostScript character 'space'
afmtodit: warning: you are not allowed to map the PostScript character 'space'
(It'd be nice if afmtodit identified the file name and line number it
was complaining about...)
No changes to font description data relative to Werner's commit
7a7ef828ef, 19 May 2010.
This reverts Deri's commit 98b0c1db4, 12 April, but only temporarily in
effect. The reason is to prove the foregoing equivalence.
See <https://savannah.gnu.org/bugs/?63018>.
* src/devices/grops: Add comment field to the font files
which specifies the UTF-16 code for the character.
* utils/afmtodit/afmtodit.pl: Add comment field holding the
UTF-16 code.
* man/groff_font.5.man: Document use of comment field to hold
UTF-16 code.
* src/devices/gropdf/gropdf.pl: Extract UTF-16 code from font
comment field (rather than a new field). And tweak to pdf
parser.
* font/devps/generate/Makefile (zapfdr.afm): Fix typo in dependency
name. Problem introduced by me in commit 2566b64e0b, 13 March 2022,
which claimed "[s]hould not cause regressions because the Make targets
invoked are never called during a build (they are isolates that you
have to manually name on the command line)." Thus was fortune's
hostage claimed. Apparently OpenSUSE uses this Makefile as part of
its "ghostscript-fonts-grops" package build. (Fair enough--we _do_
ship it.)
Longer term I still think it would be a good idea to have a more general
tool, probably a shell script, to manage groff font description file
updates.
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]: Refactor generation of "freeeuro.pfa" to make more economical
use of existing infrastructure, per a suggestion from Deri James. This
also puts the file where gropdf's "download" file can find it when
running it in a separate build directory. We use it to generate
"groff-man-pages.pdf".
* font/devps/freeeuro.pfa: Rename this...
* font/devps/freeeuro.ps: ...to this. We can now use the suffix rule
that also applies to "symbolsl.ps" and "zapfdr.ps".
* font/devps/devps.am (DEVPSFONTFILES): Move "freeeuro.pfa" from here...
(DEVPSFONTFILES_GENERATED): ...to here.
(EXTRA_DIST): Ship the "new" "freeeuro.ps" file.
This restores the embedding of this font in the groff_char(7) man page
in "groff-man-pages.pdf".
* font/devps/psstrip.sed: Stop stripping comment lines, in general
instead of preserving only ones that use the form in the Document
Structuring Coventions. This way we won't strip copyright notices,
like Werner Lemberg's in the FreeEuro font. Thanks to Deri James for
pointing this out.
[build]: Name and place PS->groff glyph name maps consistently.
* font/devps/symbolmap: Rename from this...
* font/devps/generate/symbol.map: ...to this.
* font/devpdf/devpdf.am (font/devpdf/map/symbolmap): Rename target...
(font/devpdf/map/symbol.map): ...to this.
(font/devpdf/map/symbol.map): Copy "devps" version of file from its
new location in the "generate" subdirectory.
* font/devpdf/Foundry.in: Reflect rename.
* font/devps/generate/Makefile (symbolmap): Rename target...
($(srcdir)/symbol.map): ...to this.
* font/devps/devps.am (DEVPSGENFILES, EXTRA_DIST):
* font/devps/generate/Makefile (S, EURO $(SPECIALFONTS), clean):
* src/utils/afmtodit/afmtodit.1.man: Reflect rename and relocation.
* font/devps/S:
* font/devps/symbolmap: Drop excess mapping of `*U` special character.
groff maps it to the Adobe Glyph List name 'Upsilon1'. (The AGL
'Upsilon' is a homoglyph of the Latin capital 'Y'.)
* PROBLEMS: De-document build-time warning, now resolved.
[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.
Checkpoint work in progress. Should not cause regressions because the
Make targets invoked are never called during a build (they are isolates
that you have to manually name on the command line).
* font/devps/devps.am: Rename targets.
(fonts):
(devps_fonts): Rename these...
(maintainer-font-descriptions):
(devps_font-descriptions): ...to these. Add comments explaining what
they're for and why they aren't used in a build.
* font/devps/generate/Makefile: Add `outdir` variable to store
destination directory of font description files, and update all
targets that write artifacts to use this directory. This makes the
targets "phony", which I don't regard as a problem since the generated
artifacts are kept under source control, and this isn't really a
user-facing script (even though it gets installed). I think there is
a good chance that this will become a shell script, because to avoid
regressions we need to generate the font descriptions using both the
229-glyph and 314-glyph versions of the Adobe fonts' AFM files (so
that we get wider glyph coverage _and_ more kerning pair data) and we
need to add kerning information for the ellipsis (Savannah #59907).
(symbolsl.afm): Revise generation process to be sensitive to failure.
* font/devps/symbolsl.afm: New file.
* font/devps/devps.am (EXTRA_DIST): We have long shipped "symbol.afm"
with the distribution archive--I don't see why we don't ship
"symbolsl.afm" and "zapfdr.afm" as well (metrics for `SS`, the slanted
symbol font, and ZDR, reversed Zapf Dingbats). Like the Type 1 font
descriptions themselves, this file is updated only in "maintainer
mode", not as part of the build. Moreover, these fonts are not part
of the PostScript level 2 base 35 fonts so their AFM files are
unlikely to be readily available elsewhere.
* font/devdvi/EX:
* font/devdvi/MI:
* font/devdvi/S:
* font/devdvi/SA:
* font/devps/EURO: Add `spacewidth` directive to font description files
we ship that were missing it. We use the same values that libgroff
would have computed, so there should be no visible difference.
Commit 87edb525, from 2003, added character U+2026 (HORIZONTAL ELLIPSIS)
to most base groff fonts, but there has been no kerning information for
this character. To produce consistent typography, it should be kerned
the same way as the period, which is in 818 kern pairs across all the
devps fonts.
Apply the following shell command to the groff description files
of the PostScript fonts.
for file in font/devps/*[A-Z]
do sed -Ei\~ 's/(.*)(^| )\. (.*)/&\n\1\2u2026 \3/' $file
done
* font/devps/AB:
* font/devps/ABI:
* font/devps/AI:
* font/devps/AR:
* font/devps/BMB:
* font/devps/BMBI:
* font/devps/BMI:
* font/devps/BMR:
* font/devps/HB:
* font/devps/HBI:
* font/devps/HI:
* font/devps/HNB:
* font/devps/HNBI:
* font/devps/HNI:
* font/devps/HNR:
* font/devps/HR:
* font/devps/NB:
* font/devps/NBI:
* font/devps/NI:
* font/devps/NR:
* font/devps/PB:
* font/devps/PBI:
* font/devps/PI:
* font/devps/PR:
* font/devps/TB:
* font/devps/TBI:
* font/devps/TI:
* font/devps/TR:
* font/devps/ZCMI: Apply above script.
Fixes <https://savannah.gnu.org/bugs/?58897>. However, this will need
to be done again if afmtodit is used to regenerate the above files, or
afmtodit will need to be modified to add this kerning information
itself.
* 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.
These are always invoked by the build system (either in-tree or via
the installed Makefiles) using the necessary program, so the #!
lines were unnecessary. They were harmless except that they caused
Debian's `lintian` tool to complain about installed non-executable
scripts.
* font/devlj4/generate/special.awk: Remove #! line.
* font/devps/generate/symbol.sed: Likewise.
* 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>