For one thing, it annoys me that the hyphenation language code for
English is wrong.  For another, it annoys me that no effort is made to
determine groff's locale from the system.

Please see https://savannah.gnu.org/bugs/?59814 .

Attaching patch here as well for interest.

I don't intend to merge this before I fry another fish that's been in my
freezer for a long time--"quiet" variants of the .so and .mso (possibly
.soq and .msoq or .soquiet and .msoquiet) that produce no diagnostic
message if a file open fails due to permissions or non-existence
problems (EACCES or ENOENT--I'd still throw a diagnostic error on
other errnos).  Comments on this are welcome as well.

Regards,
Branden
commit 4eb1e209c8ebac3c1c62b7a51ce031ed7a6baffb
Author:     G. Branden Robinson <[email protected]>
AuthorDate: Mon Jan 4 17:53:05 2021 +1100
Commit:     G. Branden Robinson <[email protected]>
CommitDate: Mon Jan 4 18:01:00 2021 +1100

    tmac/troffrc: Derive groff locale from system.
    
    Determine the groff locale (default input language) using the system
    locale.  Determine the groff locale from the environment if possible.
    Try LC_ALL first, then LANG.  "C" means English (en).
    
    Unrecognized locales are ignored, and groff falls back to English.
    
    Those who want groff's default locale to differ from LC_ALL/LANG should
    edit this troffrc to source the appropriate groff locale macro file
    (cs.tmac, de.tmac, den.tmac, fr.tmac, ja.tmac, sv.tmac, zh.tmac).
    
    Also wrap a long line.

diff --git a/tmac/troffrc b/tmac/troffrc
index c562676b..a5bf85a0 100644
--- a/tmac/troffrc
+++ b/tmac/troffrc
@@ -31,7 +31,8 @@
 .do if d troffrc!\*[.T] \
 .	do mso \*[troffrc!\*[.T]]
 .do rm troffrc!ps troffrc!Xps troffrc!dvi troffrc!X75 troffrc!X75-12 \
-troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html troffrc!pdf
+troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html \
+troffrc!pdf
 .
 .\" Test whether we work under EBCDIC and map the no-breakable space
 .\" character accordingly.
@@ -40,12 +41,26 @@ troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html troffrc!pdf
 .el \
 .	do tr \[char65]\~
 .
-.\" Set the hyphenation language to English.
-.do hla en
 .
-.\" Load hyphenation patterns and exceptions.
-.do hpf hyphen.en
-.do hpfa hyphenex.en
+.\" Determine the groff locale from the environment if possible.  Try
+.\" LC_ALL first, then LANG.  "C" means English (en).
+.do ds troffrc!language \V[LC_ALL]
+.do if '\*[troffrc!language]'' \{\
+.	do ds troffrc!language \V[LANG]
+.	do if '\*[troffrc!language]'' \
+.		do ds troffrc!language C
+.\}
+.do if '\*[troffrc!language]'C' \
+.	do ds troffrc!language en
+.\" XXX: Consider not merging this until we have a "quiet" version of
+.\" .mso (and .so).
+.do mso \*[troffrc!language].tmac
+.do rm troffrc!language
+.\" If the configured system locale has no groff localization, fall back
+.\" to English.
+.do if '\*[locale]'' \
+.	mso en.tmac
+.
 .
 .\" Handle paper formats.
 .do mso papersize.tmac

commit 306296344b2910f20579baa6db6eef1a8a4a3e0f
Author:     G. Branden Robinson <[email protected]>
AuthorDate: Mon Jan 4 17:44:57 2021 +1100
Commit:     G. Branden Robinson <[email protected]>
CommitDate: Mon Jan 4 17:44:57 2021 +1100

    tmac/en.tmac: Add English localization file.

diff --git a/tmac/en.tmac b/tmac/en.tmac
new file mode 100644
index 00000000..6aae40db
--- /dev/null
+++ b/tmac/en.tmac
@@ -0,0 +1,38 @@
+.\" English localization for groff
+.\"
+.\" Copyright (C) 2021 Free Software Foundation, Inc.
+.\"
+.\" This file is part of groff.
+.\"
+.\" groff is free software; you can redistribute it and/or modify it
+.\" under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" groff is distributed in the hope that it will be useful, but WITHOUT
+.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+.\" or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+.\" License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program.  If not, see
+.\" <http://www.gnu.org/licenses/>.
+.\"
+.\" Please send comments to [email protected].
+.
+.ds locale english\"
+.
+.\" Set the hyphenation language to English.
+.do hla en
+.
+.\" Load hyphenation patterns and exceptions.
+.do hpf hyphen.en
+.do hpfa hyphenex.en
+.
+.
+.\" Local Variables:
+.\" mode: nroff
+.\" coding: latin-1
+.\" fill-column: 72
+.\" End:
+.\" vim: set filetype=groff textwidth=72:

commit e24e939d3518b069b034d9fcd1c25ea97ddc771f
Author:     G. Branden Robinson <[email protected]>
AuthorDate: Mon Jan 4 17:10:20 2021 +1100
Commit:     G. Branden Robinson <[email protected]>
CommitDate: Mon Jan 4 17:11:51 2021 +1100

    [troffrc]: Change hyphenation language us to en.
    
    The first-order determinant of hyphenation points is language, not
    territory.  Use ISO 639 2-letter language codes for hyphenation and
    exception patterns instead of ISO 3166 2-letter territory codes.

diff --git a/tmac/troffrc b/tmac/troffrc
index 2b2975d0..c562676b 100644
--- a/tmac/troffrc
+++ b/tmac/troffrc
@@ -40,12 +40,12 @@ troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html troffrc!pdf
 .el \
 .	do tr \[char65]\~
 .
-.\" Set the hyphenation language to 'us'.
-.do hla us
+.\" Set the hyphenation language to English.
+.do hla en
 .
 .\" Load hyphenation patterns and exceptions.
-.do hpf hyphen.us
-.do hpfa hyphenex.us
+.do hpf hyphen.en
+.do hpfa hyphenex.en
 .
 .\" Handle paper formats.
 .do mso papersize.tmac

commit fde7035d02490c1c055c01718a6645f8b225ed5e
Author:     G. Branden Robinson <[email protected]>
AuthorDate: Mon Jan 4 16:59:03 2021 +1100
Commit:     G. Branden Robinson <[email protected]>
CommitDate: Mon Jan 4 17:11:41 2021 +1100

    tmac: Rename *.us to *.en.
    
    The first-order determinant of hyphenation points is language, not
    territory.  Use ISO 639 2-letter language codes for hyphenation and
    exception patterns instead of ISO 3166 2-letter territory codes.

diff --git a/tmac/hyphen.us b/tmac/hyphen.en
similarity index 100%
rename from tmac/hyphen.us
rename to tmac/hyphen.en
diff --git a/tmac/hyphenex.us b/tmac/hyphenex.en
similarity index 100%
rename from tmac/hyphenex.us
rename to tmac/hyphenex.en

Attachment: signature.asc
Description: PGP signature

Reply via email to