[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[groff] 07/17: [troff]: Implement new `pcomposite` request.
From: |
G. Branden Robinson |
Subject: |
[groff] 07/17: [troff]: Implement new `pcomposite` request. |
Date: |
Thu, 18 Jan 2024 14:27:49 -0500 (EST) |
gbranden pushed a commit to branch master
in repository groff.
commit e958bb4fc65326dd9cd0d775e96aff15e944795e
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Wed Jan 17 13:49:40 2024 -0600
[troff]: Implement new `pcomposite` request.
* src/roff/troff/input.cpp (report_composite_characters): Add.
(init_input_requests): Wire up `pcomposite` request name to
`report_composite_characters()`.
* doc/groff.texi (Colors, Debugging):
* man/groff.7.man (Request short reference, Debugging):
* man/groff_diff.7.man (New requests, Debugging):
* NEWS: Document it.
---
ChangeLog | 13 +++++++++++++
NEWS | 3 +++
doc/groff.texi | 19 +++++++++++++++++--
man/groff.7.man | 11 +++++++++++
man/groff_diff.7.man | 12 ++++++++++++
src/roff/troff/input.cpp | 18 +++++++++++++++++-
6 files changed, 73 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 709b8ea38..dd2a20d21 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2024-01-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Implement new `pcomposite` request.
+
+ * src/roff/troff/input.cpp (report_composite_characters): Add.
+ (init_input_requests): Wire up `pcomposite` request name to
+ `report_composite_characters()`.
+
+ * doc/groff.texi (Colors, Debugging):
+ * man/groff.7.man (Request short reference, Debugging):
+ * man/groff_diff.7.man (New requests, Debugging):
+ * NEWS: Document it.
+
2024-01-17 G. Branden Robinson <g.branden.robinson@gmail.com>
* src/roff/troff/input.cpp (report_color): Flush standard error
diff --git a/NEWS b/NEWS
index 94b8aa060..290cf8f73 100644
--- a/NEWS
+++ b/NEWS
@@ -31,6 +31,9 @@ o A new request, `pcolor`, reports to the standard error
stream the
fill colors, "default", are not listed since they are immutable and
their details unknown to the formatter.)
+o A new request, `pcomposite`, reports to the standard error stream the
+ current list of defined composite characters.
+
o A new request, `phw`, reports to the standard error stream the current
list of hyphenation exceptions.
diff --git a/doc/groff.texi b/doc/groff.texi
index 6b449b571..888043801 100644
--- a/doc/groff.texi
+++ b/doc/groff.texi
@@ -11073,6 +11073,10 @@ This is a strict rewriting of the special character
name; no check is
performed for the existence of a glyph for either. A set of default
mappings for many accents can be found in the file
@file{composite.tmac}, loaded by the default @file{troffrc} at startup.
+
+You can obtain a report of colors defined by @code{composite} on the
+standard error stream with the @code{pcomposite} request.
+@xref{Debugging}.
@endDefreq
@Defesc {\\N, @code{'}, n, @code{'}}
@@ -16890,8 +16894,9 @@ or for instrumentation while troubleshooting. The
@code{ex} and
exit codes respectively, to halt further processing when continuing
would be fruitless. Examine the state of the formatter with requests
that write lists of defined names (macros, strings, and diversions),
-defined colors, environments, hyphenation exceptions, registers, and
-page location traps to the standard error stream.
+defined colors, composite characters, environments, hyphenation
+exceptions, registers, and page location traps to the standard error
+stream.
@c END Keep parallel with section "Debugging" of groff(7).
@Defreq {lf, line [@Var{file}]}
@@ -16977,6 +16982,16 @@ listed since they are immutable and their details
unknown to the
formatter.
@endDefreq
+@Defreq {pcomposite, }
+@cindex dumping defined composite characters (@code{pcomposite})
+@cindex defined composite characters, dumping (@code{pcomposite})
+@cindex composite characters, defined, dumping (@code{pcomposite})
+@cindex characters, composite, dumping defined (@code{pcomposite})
+Report, to the standard error stream, the list of defined composite
+characters. The ``from'' code point is listed first, followed by its
+``to'' mapping.
+@endDefreq
+
@Defreq {pev, }
@cindex dumping environments (@code{pev})
@cindex environments, dumping (@code{pev})
diff --git a/man/groff.7.man b/man/groff.7.man
index e22ad186f..7e2c977f3 100644
--- a/man/groff.7.man
+++ b/man/groff.7.man
@@ -3849,6 +3849,15 @@ are not listed since they are immutable and their
details unknown to the
formatter.
.
.TPx
+.REQ .pcomposite
+Report,
+to the standard error stream,
+the list of defined composite characters.
+.
+The \[lq]from\[rq] code point is listed first,
+followed by its \[lq]to\[rq] mapping.
+.
+.TPx
.REQ .pev
Report the state of the current environment followed by that of all
other environments to the standard error stream.
@@ -8205,6 +8214,8 @@ and
.RB diversions\[em]( .pm );
defined colors
.RB ( .pcolor );
+composite characters
+.RB ( .pcomposite );
environments
.RB ( .pev );
hyphenation exceptions
diff --git a/man/groff_diff.7.man b/man/groff_diff.7.man
index 4c91466c8..0c323ea5b 100644
--- a/man/groff_diff.7.man
+++ b/man/groff_diff.7.man
@@ -3113,6 +3113,16 @@ formatter.
.
.
.TP
+.B .pcomposite
+Report,
+to the standard error stream,
+the list of defined composite characters.
+.
+The \[lq]from\[rq] code point is listed first,
+followed by its \[lq]to\[rq] mapping.
+.
+.
+.TP
.B .phw
Report,
to the standard error stream,
@@ -5226,6 +5236,8 @@ More aspects of formatter state can be examined with
requests that write
lists of
defined colors
.RB ( pcolor ),
+composite characters
+.RB ( pcomposite ),
environments
.RB ( pev ),
hyphenation exceptions
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 093770bd2..f30022831 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -1,4 +1,4 @@
-/* Copyright (C) 1989-2023 Free Software Foundation, Inc.
+/* Copyright (C) 1989-2024 Free Software Foundation, Inc.
Written by James Clark (jjc@jclark.com)
This file is part of groff.
@@ -4227,6 +4227,21 @@ static symbol composite_glyph_name(symbol nm)
return symbol(gl.contents());
}
+static void report_composite_characters()
+{
+ dictionary_iterator iter(composite_dictionary);
+ symbol key;
+ char *value;
+ while(iter.get(&key, reinterpret_cast<void **>(&value))) {
+ assert(!key.is_null());
+ assert(value != 0 /* nullptr */);
+ const char *k = key.contents();
+ errprint("%1\t%2\n", k, value);
+ }
+ fflush(stderr);
+ skip_line();
+}
+
int trap_sprung_flag = 0;
int postpone_traps_flag = 0;
symbol postponed_trap;
@@ -8631,6 +8646,7 @@ void init_input_requests()
init_request("output", output_request);
init_request("pc", set_page_character);
init_request("pcolor", report_color);
+ init_request("pcomposite", report_composite_characters);
init_request("pi", pipe_output);
init_request("pm", print_macros);
init_request("psbb", ps_bbox_request);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 07/17: [troff]: Implement new `pcomposite` request.,
G. Branden Robinson <=