[PATCH 00/12] Implement new GeoName API and autoset GeoName/ID for the user.

João Diogo Ferreira devilj at outlook.pt
Tue Oct 22 12:43:26 CDT 2019


Hello, hello!

This is a long series of patches, I know. Please bear with me;
while these patches are actually mostly independent, they all build on some
cleaning up I had to do prevent locale.c from looking like chaos.

Here I implement the new GeoName API: four new functions first introduced in
Windows 10 v1709. There's also some fixes to older functions to make them
more conformant to new behaviour introduced by these APIs.

Also, the real crown jewel (imo) is setting the GeoName/ID automatically.
This builds on top of the new API for two reasons:
  * Future-proofing, as I'm not sure Microsoft will introduce more GeoIDs;
  * I couldn't figure out how to implement LOCALE_IGEOID in GetLocaleInfoW() :)
  
Hope these patches are satisfactory.
João Ferreira

João Diogo Craveiro Ferreira (12):
  kernel32: Reorder functions in locale.c.
  kernel32: Handle GEOCLASS_REGION in Get/SetUserGeoID.
  kernel32: Add all missing UN M.49 codes to geoinfo table.
  kernel32: Add new Geo helper functions and constants.
  kernel32: Implement SetUserGeoName(), add helper set_geo_reg().
  kernel32: Implement GetUserDefaultGeoName().
  kernel32: Autoinitialize geographic values when launching any program.
  kernel32: Implement GetGeoInfoEx(), add helper get_geo_info().
  kernel32: Implement EnumSystemGeoNames().
  kernel32: Handle geotypes GEO_ID and GEO_NAME in GetGeoInfoA/W/Ex().
  kernel32: Handle GEOCLASS_ALL in EnumSystemGeoID().
  kernel32/tests: Add tests for the GeoName API and GetUserGeoID().

 dlls/kernel32/kernel32.spec    |   4 +
 dlls/kernel32/kernel_main.c    |   3 +
 dlls/kernel32/kernel_private.h |   1 +
 dlls/kernel32/locale.c         | 785 +++++++++++++++++++++++++++------
 dlls/kernel32/tests/locale.c   | 280 ++++++++++++
 include/winnls.h               |   5 +
 6 files changed, 935 insertions(+), 143 deletions(-)

-- 
2.23.0



More information about the wine-devel mailing list