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

At 2025-02-03T06:29:31-0500, Deri James wrote:
> Follow-up Comment #22, bug #66392 (group groff):
>> I think a lot of people assume that when they create a new
>> environment, it's a copy of environment 0 already.  But it isn't.
>
> Given that you believe this (and I think you are spot on) I wondered
> why you didn't "solve" the inconsistency by ensuring any new
> environment created is either based on ev 0 or perhaps the previous
> environment on the stack.

The answer is that I didn't _need_ to do that to solve the problem that
presented itself; when you changed environments, the hyphenation mode
could change but the hyphenation language would not, even if the new
hyphenation mode wouldn't work right with the unchanged language.

Your speculative solution adds another design choice to the 2 we had, so
now there are three possibilities.

* Creating a new environment copied from the formatter's default.
* Creating a new environment copied from environment zero.
* Creating a new environment copied from the current environment.

I'm trying to get 1.24.0 toward a release and I am not anxious to
mediate a dispute between advocates of these three positions, each of
which I'm sure thinks their selection is the only obvious one.

Under those circumstances, the first wins because it's the status quo.
(I would not, however, claim that it's the "only obvious one".  Merely
the most inertial.)

Also, the downside to selecting either of the other two is that we
either eliminate the first as a possibility (because the default
environment has no name to which we can refer), or have to introduce a
new request for environment creation.

Hmm, actually I can think of a milder solution.

.ev environment [source-environment]

Since environment names are identifiers, they can't contain spaces, so
they are well-behaved as request arguments.  In the foregoing, the
second argument would be honored only if the first argument doesn't
already exist as an environment.

And this would be backward compatible with the status quo; the default
environment has no name, but that's okay.  If environment "foo" doesn't
already exist:

.ev foo

...would work the same before and after the change.

> This would not affect documents which already use evc after creating a
> new environment, or setup individual elements manually, but would
> behave sanely, as Peter expects.

I'd like to hear back from Peter regarding my reasoning in comment #21.
I'm wondering how much sense it makes to him.

If someone wants to convene an ecumenical council on the groff list to
come up with a universal creed of environment creation, I'd be curious
to see how things shake out.

Maybe we can sort it out for groff 1.25.



    _______________________________________________________

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