Re: kernel32: Partially implement GetGeoInfo() (try2)
Nikolay Sivov <nsivov(a)codeweavers.com> writes:
+ ptr = &geoinfodata[geoid]; + if (!*ptr->iso2W) { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } + + len = get_geoinfo_len(geoid, geotype); + if (!data || !data_len) + return len;
You could check this at the end before copying the string instead of having a duplicate function for the length.
+INT WINAPI GetGeoInfoA(GEOID geoid, GEOTYPE geotype, LPSTR data, int data_len, LANGID lang) +{ + WCHAR buffW[12]; + INT len = 0; + + TRACE("%d %d %p %d %d\n", geoid, geotype, data, data_len, lang); + + if (!data || !data_len) + return GetGeoInfoW(geoid, geotype, NULL, 0, lang);
You can't just return the W length. -- Alexandre Julliard julliard(a)winehq.org
On Wed, Jul 9, 2014 at 10:36 AM, Alexandre Julliard <julliard(a)winehq.org> wrote:
Nikolay Sivov <nsivov(a)codeweavers.com> writes:
+ ptr = &geoinfodata[geoid]; + if (!*ptr->iso2W) { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } + + len = get_geoinfo_len(geoid, geotype); + if (!data || !data_len) + return len;
You could check this at the end before copying the string instead of having a duplicate function for the length.
Ok, I think I understand what you mean.
+INT WINAPI GetGeoInfoA(GEOID geoid, GEOTYPE geotype, LPSTR data, int data_len, LANGID lang) +{ + WCHAR buffW[12]; + INT len = 0; + + TRACE("%d %d %p %d %d\n", geoid, geotype, data, data_len, lang); + + if (!data || !data_len) + return GetGeoInfoW(geoid, geotype, NULL, 0, lang);
You can't just return the W length.
That's true. Length is identical for all types except country names (potentially, I didn't check that) as it's a character length. But yeah, this is dirty. I'll need to W -> A + length check for resulting A string I think. Thanks for commenting.
-- Alexandre Julliard julliard(a)winehq.org
participants (2)
-
Alexandre Julliard -
Nikolay Sivov