Re: Texinfo 7.2.90 build with mingw.org's MinGW: cleanups in Info
Patrice Dumas <[email protected]>
| Newsgroups | gmane.comp.tex.texinfo.bugs |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Jan 15, 2026 at 02:18:48PM +0200, Eli Zaretskii wrote: > > Date: Thu, 15 Jan 2026 03:24:29 +0100 > > From: Patrice Dumas <[email protected]> > > Cc: [email protected], [email protected] > > > > On Wed, Jan 14, 2026 at 07:04:07PM +0200, Eli Zaretskii wrote: > > > The following problems are with compilation in tta/ > > > > Thanks for the reports and code, it is committed. > > Thanks. > > Here are a few more minor MinGW-related cleanups, which: > > . remove code no longer needed > . move function redirections to where the functions are used > . avoid compiler warnings due to mismatch in function signatures > . return "UTF-8" when the Windows terminal uses UTF-8 encoding This code seems somewhat similar to code in texi2any.c that is used to determine the locale, which, I believe you proposed. It is not exactly the same context, I do not think that we want the translit part, but the UTF-8 part could be relevant. Just before that code, if HAVE_LANGINFO_CODESET is defined, nl_langinfo (CODESET) is used. Now that I look at the code more closely, it could be different as the function used is diferent, GetACP versus GetConsoleOutputCP. The code is currently: #ifdef _WIN32 if (!locale_encoding) { unsigned cp = GetACP (); xasprintf (&locale_encoding, "cp%u", cp); } #endif Should there be a change to that code too? > > --- ./info/pcterm.c~0 2026-01-01 20:44:32.000000000 +0200 > +++ ./info/pcterm.c 2026-01-15 14:12:42.482833700 +0200 > @@ -827,33 +827,26 @@ rpl_nl_langinfo (nl_item item) > if (item == CODESET) > { > static char buf[100]; > + UINT console_cp = GetConsoleOutputCP (); > > - /* We need all the help we can get from GNU libiconv, so we > - request transliteration as well. */ > - sprintf (buf, "CP%u//TRANSLIT", GetConsoleOutputCP ()); > + /* The rest of the code wants to see "UTF-8" and nothing else. */ > + if (console_cp == CP_UTF8) > + memcpy (buf, "UTF-8", sizeof "UTF-8"); > + else if (console_cp == CP_UTF7) > + sprintf (buf, "CP%u", console_cp); > + else > + { > + /* For non-UTF output encoding, we need all the help we can > + get from GNU libiconv, so we request transliteration as > + well. */ > + sprintf (buf, "CP%u//TRANSLIT", console_cp); > + } > return buf; > } > else > return nl_langinfo (item); > }