bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #58962] Latin-1 NO-BREAK SPACE does not behave as documented


From: Dave
Subject: [bug #58962] Latin-1 NO-BREAK SPACE does not behave as documented
Date: Sat, 16 Apr 2022 14:22:41 -0400 (EDT)

Follow-up Comment #11, bug #58962 (project groff):

Some history, if anyone is interested:

Commit b04d345e
<http://git.savannah.gnu.org/cgit/groff.git/commit/?id=b04d345e> (which --
dating from September 1992 and reconstructed without granular change control
-- encompasses hundreds of edits, so is not very useful as a specific
reference point) added this text to groff_char(7): "The ISO Latin-1 no-break
space (code 0240 octal) is equivalent to \(space)."

This claim survived (though the wording evolved) in groff_char(7) until 2003,
when commit 48615a44
<http://git.savannah.gnu.org/cgit/groff.git/commit/?id=48615a44> changed "the
ISO Latin-1 no-break space is mapped to `\ ', the escaped space character" to
"the ISO Latin-1 no-break space is mapped to `\~', the stretchable space
character."  This commit made sweeping changes to groff_char(7), and also
affected a couple other files, so nothing about this one particular change
stands out.  But the commit included no concomitant code change that would
alter this mapping, so Werner seemingly thought groff was already handling
Latin-1 character 160 in this manner.

The claim remains in groff_char(7) to the present day, when Branden's
just-referenced commit f9fb11f6
<http://git.savannah.gnu.org/cgit/groff.git/commit/?id=f9fb11f6> made it
true.

The code changes are harder to trace, in part because, as comment #7 mentions,
no code was specifically handling this case.  But that massive September 1992
commit does include a couple of ChangeLog entries of note (though again, with
limited commit history from the time period, no way to map either of these to
specific code changes).

Tue May  5 10:58:39 1992  James Clark  (jjc at jclark)

        * troff/input.c (init_charset_table): Translate 0240 to
        an unbreakable space.


Mon Jun  8 11:43:20 1992  James Clark  (jjc@jclark)

        * troff/input.c (init_charset_table): Don't translate 0240.
        * ps/tmac.ps: Translate char160 to space.
        * dvi/tmac.dvi: Likewise.
        * tty/tmac.tty: Likewise.

So it seems the Latin-1 no-break space was briefly handled in C++ code before
being hustled off to tmac files.  Today it comes full circle and makes it
triumphant return to input.cpp.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?58962>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]