Update of bug #66919 (group groff):

                 Summary: [troff] .hcode no longer accepts a special character
as a first argument => [troff] .hcode sometimes fails to accept a special
character as a first argument

    _______________________________________________________

Follow-up Comment #4:

[comment #3 comment #3:]
> We seem to be talking totally past each other.

It's our superpower!

> Right, I rapidly blundered into the same frustration.

Happily, after only 5 minutes of frustration I've managed to craft an input
file that shows the behavior change from older groffs (tested on 1.19.2,
1.22.4, and 1.23.0) to current groff.  (Or current as of when this bug was
opened a couple days ago.  I haven't built your latest push.)  The following
has to be encoded via Latin-1 to accommodate .hcode's limitation on accepting
only an 8-bit character as its second argument.

.ll 1n
lanteronial
lanter\[~o]nial
.hcode \[~o] รต
lanter\[~o]nial

I recommend running the file with groff's "-a -Wbreak" options, though any
other output format should also suffice.

Here's the -a output I see in all listed older groffs:

<beginning of page>
lantero<hy>
nial
lanter<~o>nial
lanter<~o><hy>
nial

And here's current groff:

<beginning of page>
lantero<hy>
nial
lanter<~o>nial
lanter<~o>nial

The .hcode that formerly worked can be seen here to not work, based on the
different breaking behavior.  And, notably, changing the first hcode parameter
from the special-character version to the Latin-1 version of the character
_does_ make this match older groff's behavior.

> The assertion in the bug summary is that ".hcode no longer accepts a
> special character as its first argument".

You're right, I failed to qualify the summary with a "sometimes" in light of
your modified example.  Done now.

> How are we to distinguish special characters that are created with a
> default hyphenation code of zero from ones have that a hyphenation code
> of zero assigned to them by copying from an ordinary character that has
> a hyphenation code of zero?

But "reflexive hcode," if you will (that is, ".hcode x x," for any value of x)
is a special case that doesn't assign the hyphenation code of x to x, but
assigns a new, unique hyphenation code to x.  (In some past bug report I
ruminated on the unwisdom of using the same syntax for "reflexive hcode" as
for other hcode assignments, but this is the syntax we've inherited.)


    _______________________________________________________

Reply to this item at:

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

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

Attachment: signature.asc
Description: PGP signature

Reply via email to