Currently, if a function description spans a line, the resulting info
can look like this:
-- Function: long bfd_canonicalize_reloc
(bfd *abfd, asection *sec, arelent **loc, asymbol **syms); Call the
back end associated with the open BFD ABFD and translate the
external form of the relocation information attached to SEC into
the internal canonical form. Place the table into memory at LOC,
That is, the function prototype runs together with the text in an ugly
way. This patch fixes this by introducing a new primitive, so that
the generated Texinfo can be a bit nicer. Now this output looks like:
-- Function: long bfd_canonicalize_reloc (bfd *abfd, asection *sec,
arelent **loc, asymbol **syms);
Call the back end associated with the open BFD ABFD and translate
the external form of the relocation information attached to SEC
2023-02-17 Tom Tromey <tom@tromey.com>
* doc/doc.str (SYNOPSIS): Use collapse_whitespace.
* doc/chew.c (collapse_whitespace): New function.
(main): Register collapse_whitespace.
+2023-02-17 Tom Tromey <tom@tromey.com>
+
+ * doc/doc.str (SYNOPSIS): Use collapse_whitespace.
+ * doc/chew.c (collapse_whitespace): New function.
+ (main): Register collapse_whitespace.
+
2023-02-07 Tom Tromey <tom@tromey.com>
* bfd.c, cache.c, compress.c, opncls.c: Remove RETURNS from
}
+static void
+collapse_whitespace (void)
+{
+ int last_was_ws = 0;
+ int idx;
+
+ string_type out;
+ init_string (&out);
+
+ for (idx = 0; at (tos, idx) != 0; ++idx)
+ {
+ char c = at (tos, idx);
+ if (isspace (c))
+ {
+ if (!last_was_ws)
+ {
+ catchar (&out, ' ');
+ last_was_ws = 1;
+ }
+ }
+ else
+ {
+ catchar (&out, c);
+ last_was_ws = 0;
+ }
+ }
+
+ pc++;
+ delete_string (tos);
+ *tos = out;
+}
+
static void
indent (void)
{
add_intrinsic ("indent", indent);
add_intrinsic ("print_stack_level", print_stack_level);
add_intrinsic ("strip_trailing_newlines", strip_trailing_newlines);
+ add_intrinsic ("collapse_whitespace", collapse_whitespace);
internal_mode = xmalloc (sizeof (intptr_t));
*internal_mode = 0;
"@deftypefn {Function} " catstr
get_stuff_in_command
kill_bogus_lines
+ collapse_whitespace
indent
catstr
+ "\n" catstr
;
: func