On Wed, Jul 9, 2014 at 10:36 AM, Alexandre Julliard <julliard@winehq.org> wrote:
Nikolay Sivov <nsivov@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@winehq.org