pdfgrep [ITA]
Marco Atzeri
marco.atzeri@gmail.com
Mon May 17 06:28:34 GMT 2021
On 17.05.2021 07:00, Jason Pyeron wrote:
>> -----Original Message-----
>> From: Marco Atzeri
>> Sent: Sunday, May 9, 2021 4:05 PM
>>
>> On 09.05.2021 21:54, Marco Atzeri wrote:
>>> On 09.05.2021 20:22, Jason Pyeron wrote:
>>>
>>
>>>
>>> $ ./pdfgrep.exe --help
>>> terminate called after throwing an instance of 'std::runtime_error'
>>> what(): locale::facet::_S_create_c_locale name not valid
>>> Aborted (core dumped)
>>>
>>> Same for your binary
>>>
>>
>> it seems the program does not like a locale different from C
>>
>> $ LC_ALL=C bin/pdfgrep.exe
>> Usage: bin/pdfgrep [OPTION]... PATTERN FILE...
>>
>> See 'bin/pdfgrep --help' for more information
>>
>> $ LC_ALL="en_US.UTF-8" bin/pdfgrep.exe
>> terminate called after throwing an instance of 'std::runtime_error'
>> what(): locale::facet::_S_create_c_locale name not valid
>> Aborted (core dumped)
>
> Tracking upstream at: https://gitlab.com/pdfgrep/pdfgrep/-/issues/50
>
> Bug introduced between v1.4.1 and v2.0 in commit 3eb727125f119e1fbc19ba67449838c3f91cd9f6
> Author: Hans-Peter Deifel
> Date: Tue Jun 21 16:56:30 2016 +0200
>
> Set locale to user preferred one
>
> This enables some unicode awareness in regcomp/regexec if the user has
> set a UTF-8 loacle.
>
>
> Specifically the change was the addition of:
>
> locale::global(locale(""));
>
also the simple example on
https://en.cppreference.com/w/cpp/locale/locale
$ cat test-locale.cpp
#include <iostream>
#include <locale>
int main()
{
std::wcout << "User-preferred locale setting is " <<
std::locale("").name().c_str() << '\n';
// on startup, the global locale is the "C" locale
std::wcout << 1000.01 << '\n';
// replace the C++ global locale as well as the C locale with the
user-preferred locale
std::locale::global(std::locale(""));
// use the new global locale for future wide character output
std::wcout.imbue(std::locale());
// output the same number again
std::wcout << 1000.01 << '\n';
}
./test-locale.exe
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
Aborted (core dumped)
so or the standard is changed or Cygwin implementation has an issue
Regards
Marco
More information about the Cygwin-apps
mailing list