Follow-up Comment #15, bug #66392 (group groff):

At 2025-02-01T11:29:08-0500, Dave wrote:
> Follow-up Comment #14, bug #66392 (group groff):
> [comment #13 comment #13:]
>> meeting your expectations would make `.hla` the only predefined
>> register, I think, that would automatically come and go from
>> existence as one changed environments.
>
> I did consider (but didn't write down, so you'd have no way of knowing
> that) that this might make \n[.hla] an outlier among predefined
> registers.  And I could see that being enough of a design wart to want
> to avoid it.  However...
>
>> What other predefined registers do you perform existence checks
>> on, and under what circumstances?
>
> True, the situation's never come up before.  But .hla is sort of an outlier
> in
> this regard anyway: any other predefined register I can think of always has a
> meaningful value.

Until this (1.24) development cycle, `.m` and `.M` didn't, necessarily.

Now they always interpolate _something_.

> For most (maybe all) of them, a value of 0 doesn't correspond to
> "undefined," but to "off" or an actual measurement of 0.  Are there
> any other predefined registers that track a thing that simply might
> not be set at all?

It wouldn't--he said without looking at the code--be hard to make `.hla`
interpolate "undefined".  It's populated with a data type called
`symbol` and we have "default symbols" in other applications in the
formatter.


src/libs/libgroff/symbol.cpp:symbol default_symbol("default");


That won't rescue your `.if r .hla` idiom, but there might be a better
chance of its meaning being thunderingly obvious to the user.



    _______________________________________________________

Reply to this item at:

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

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

Attachment: signature.asc
Description: PGP signature

Reply via email to