Replace most 'neither' words introduced after 2b0ee48ef7
(Fix double negatives used with 'neither', 2023-11-25)
with 'either'.
All changes are to comments only.
Closes#24999.
Even actions/checkout@v3 doesn't work in the container any longer,
because none of JS actions can run on Ubuntu 18.04 which doesn't have a
new enough glibc version any longer, so perform the checkout manually.
Disable ccache for the builds using this OS too for the same reason:
even though we could install ccache itself manually too, we don't have
any easy way to save and restore its cache without this action.
Also disable wxWebRequest tests using httpbin which can't be easily
installed.
The diff to httpbin.sh is best viewed ignoring whitespace-only changes.
(cherry picked from commit 9d1c5b108c)
See #24983.
This commit improves the best locale match algorithm by prioritizing
closer matches and add many new tests verifying that this works as
expected.
In order to do this, new information had to be added to the language
database, which was extended with it and updated to use the latest
Unicode CLDR data and latest Windows 11 locale list.
Further, add a set of scripts for maintaining the language database up
to date and a GitHub workflow `genlangdb.yml` which can be run manually
to regenerate the wxWidgets language-related source and header files
from the underlying Windows and Unicode data. It produces 2 artifacts:
- wxLanguageDatabaseDist.zip allows to easily update the
language-related files in the wxWidgets repository by simply copying
all files.
- the normal workflow log and wxLanguageDatabaseLog.zip allow to check
all temporary files of the regeneration process and to detect
potential issues, before the language-related files are actually
replaced by the new ones.
Finally, fix wxUILocaleImplName::GetPreferredUILanguages: Under Windows
10 and above the Windows API function ::GetUserPreferredUILanguages()
returns only the primary UI language plus US English. Additional
preferred UI languages installed by the user are ignored, so instead of
using this function read the list of user preferred languages from the
Windows registry.
Closes#24855.
We can't do this when targeting ARM because all projects don't have ARM
configurations in them. To add them would require making the same
changes to all the 100+ projects as were done in f825661df1 (Improve
ARM64 support in wxMSW, 2024-06-14) in minimal.vcxproj, which will have
to wait until someone has time to automate it.
By default, UBSAN doesn't stop the program and so the exit code is still
0 even if errors are detected, so set halt_on_error=1 in UBSAN_OPTIONS
to change this.
But also still rerun the tests normally, without halting, to detect all
UB occurrences if there is more than one instance of it.
The latest go-httpbin version uses log/slog library only available
starting from this Go version, so ensure that we have it on our
self-hosted runner used for Mac CI builds.
It would be good to find out which test exactly hangs and, ideally,
understand why does it happen but for now just exclude them as we did
before the CppUnit cleanup in the test.
Selecting multiple items (in wxTreeCtrl with wxTR_MULTIPLE flag) and then
deselecting them by clicking on the current item that is also part of the
selection should deselect everything but the current item without starting
to edit that item.
Exclude UI tests dependent on wxUIActionSimulator (i.e. those added with
WXUISIM_TEST), they were previously ignored under wxOSX anyway.
Also, exclude only LabelEdit testcase instead of the entire TreeCtrlTestCase
when running under Wine.
Decrease kernel entropy to work around incompatibility between ASAN and
the latest kernel as recommended in the discussion of
https://github.com/actions/runner-images/issues/9491
This fixes crashes when running configure tests.
This reverts the actual change of db65742dbc (Remove some files on
GitHub Action runner to free up some space, 2024-03-16), while keeping
the "df" command just in case, as we were not really running out of disk
space and the error messages about it were a red herring.
The real problem will be fixed by the next commit.
The cache is enabled by default but just results in a warning message
when using the action without any actual Go stuff to cache (that we
don't have).
See #23398.
Python version is too fragile and gets constantly broken by the changes
in Python ecosystem, so switch to the hopefully more stable Go version.
Closes#23398.
This can't be done for Ubuntu 18.04 because its libc version is too old
for node20 to run there.
Update version of all the actions we use to use node20 in them too.
Closes#24377.
Previously this was never done, as we couldn't determine if we were
using Cocoa or not at generation time, but we can determine it in the
makefile itself.
Try detecting more warnings that can be useful when building the
library.
Don't use -Wextra with gcc 4.8 which generates several completely
spurious warnings not generated by later compiler versions and which are
not worth fixing/working around.
Only check for the use of NULL in C++ code, not C, for example, where
it still can, and should, be used.
Also allow using "NULL" as part of a larger macro name (where it would
be followed by "_") or at the beginning/end of a string.
wxString is always based on std::[w]string since 2c0c727f49 (Remove wx
own wxStringImpl implementation, 2022-11-16) and all containers use
standard containers by default too now -- and there is a separate
wxUSE_STD_CONTAINERS for this anyhow.
The only remaining use of wxUSE_STL was as the default value for
wxUSE_STD_STRING_CONV_IN_WXSTRING option, but it's not really needed
for this neither, and this option can just be set to 0 by default.
Also add wxUSE_CHAR_CONV_IN_WXSTRING which can now be set to 0 too to
disable all unwanted implicit conversions (even "safe" ones, to wide
strings, in addition to the unsafe ones to narrow strings that could be
already disabled with wxUSE_UNSAFE_WXSTRING_CONV) to allow people who
don't want to have any implicit conversions at all to do it.
Keep --enable-stl configure option for compatibility, but warn if it is
used to tell people that it is not needed any longer.