Branch: refs/heads/blead Home: https://github.com/Perl/perl5 Commit: d0ce9562107310d6734205bd9238a7f40c0abdff https://github.com/Perl/perl5/commit/d0ce9562107310d6734205bd9238a7f40c0abdff Author: Karl Williamson <k...@cpan.org> Date: 2023-08-22 (Tue, 22 Aug 2023)
Changed paths: M locale.c Log Message: ----------- locale.c: Change name of macro formal parameter This makes all the definitions of this macro consistent. Commit: ee5d3da4901872afb36e415079bf6bd201750299 https://github.com/Perl/perl5/commit/ee5d3da4901872afb36e415079bf6bd201750299 Author: Karl Williamson <k...@cpan.org> Date: 2023-08-22 (Tue, 22 Aug 2023) Changed paths: M locale_table.h M perl.h Log Message: ----------- Move code from perl.h to locale_table.h This is in preparation for future commits. The layout of the new code is also in preparation for those commits. Commit: 7c6d23b7585d43766478e2f378a12e14b446e695 https://github.com/Perl/perl5/commit/7c6d23b7585d43766478e2f378a12e14b446e695 Author: Karl Williamson <k...@cpan.org> Date: 2023-08-22 (Tue, 22 Aug 2023) Changed paths: M locale.c M locale_table.h M perl.h Log Message: ----------- locale_table.h: Use CTYPE instead of LC_CTYPE, etc locale.c is changed to add 'LC_'. This is in preparation for future commits. Commit: d3966372b48fd82ad40a0ceb1e94698e3400e648 https://github.com/Perl/perl5/commit/d3966372b48fd82ad40a0ceb1e94698e3400e648 Author: Karl Williamson <k...@cpan.org> Date: 2023-08-22 (Tue, 22 Aug 2023) Changed paths: M embed.fnc M embed.h M locale.c M locale_table.h M perl.h M proto.h Log Message: ----------- Fix ignoring locale categories There have long been Configure options like ./Configure -Accflags=-DNO_LOCALE_TIME to tell perl to not pay attention to the LC_TIME category. This feature has never fully worked. This commit fixes it. One problem is that the when the libc does know about LC_TIME, but perl is supposed to ignore that, it didn't have in place the logic to ignore it in many circumstances. This commit creates a boolean array for each locale category known to the platform's libc, indicating whether that category is to be ignored or not by perl. If no category is to be ignored, the array and ancillary code are not compiled, so perl works like it did before this commit. But if one or more categories are to be ignored, the code comes into play. A problem is that such categories really do exist on the platform, and so ignoring them just doesn't work properly. On a platform with positional LC_ALL notation when not all categories have the same locale, LC_ALL legally could look something like C/de_DE/nl_NL/en_GB/zh_TW.UTF-8/he_IL Perl has to be smart enough to know which of those are categories to be ignore. Prior to this commit, it wasn't. In fact, all ignored categories do exist and do have a locale. Those should all be C. Therefore this commit doesn't actually ignore any locales; it instead causes perl to refuse to change such ones away from C. We don't currently have tests for these configurations. I have personally tested a couple hundred different combinations over and over, but that's way too much for CI. Commit: 225d64bc50818556f49e1715049dd980edb1e61f https://github.com/Perl/perl5/commit/225d64bc50818556f49e1715049dd980edb1e61f Author: Karl Williamson <k...@cpan.org> Date: 2023-08-22 (Tue, 22 Aug 2023) Changed paths: M t/loc_tools.pl Log Message: ----------- loc_tools: Handle ignored positional categories The previous commit changes locale.c to adequately handle categories on a system that we have been told to ignore. This commit updates loc_tools to better handle them. Compare: https://github.com/Perl/perl5/compare/6e13fe3b438e...225d64bc5081