[PATCH:xprop 2/2] Add unicode argument to Format_Len_String to reduce code duplication
Peter Hutterer
peter.hutterer at who-t.net
Sun Jan 20 14:24:48 PST 2013
On Sun, Jan 20, 2013 at 01:34:12PM -0800, Alan Coopersmith wrote:
> Allows us to get rid of a second copy of the code that differed only
> in the unicode argument passed on to Format_String.
>
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
for both
Cheers,
Peter
> ---
> xprop.c | 25 ++++++-------------------
> 1 file changed, 6 insertions(+), 19 deletions(-)
>
> diff --git a/xprop.c b/xprop.c
> index 9773ac3..4d2e3c2 100644
> --- a/xprop.c
> +++ b/xprop.c
> @@ -724,7 +724,7 @@ Format_String (const char *string, int unicode)
> }
>
> static const char *
> -Format_Len_String (const char *string, int len)
> +Format_Len_String (const char *string, int len, int unicode)
> {
> char *data;
> const char *result;
> @@ -736,7 +736,7 @@ Format_Len_String (const char *string, int len)
> memcpy(data, string, len);
> data[len] = '\0';
>
> - result = Format_String(data, 0);
> + result = Format_String(data, unicode);
> free(data);
>
> return result;
> @@ -901,7 +901,7 @@ Format_Len_Text (const char *string, int len, Atom encoding)
> *_buf_ptr++ = '\0';
> return _formatting_buffer;
> } else
> - return Format_Len_String(string, len);
> + return Format_Len_String(string, len, 0);
> }
>
> /*
> @@ -1002,7 +1002,7 @@ Format_Len_Unicode (const char *string, int len)
> error = "<Invalid UTF-8 string: Unknown error>"; break;
> }
>
> - result = Format_Len_String(string, len);
> + result = Format_Len_String(string, len, 0);
> /* result is stored in _formatting_buffer, so make a temporary
> copy before we overwrite _formatting_buffer with error */
> data = strdup(result);
> @@ -1016,20 +1016,7 @@ Format_Len_Unicode (const char *string, int len)
> return _formatting_buffer;
> }
>
> - if (!is_utf8_locale())
> - return Format_Len_String(string, len);
> -
> - data = malloc(len+1);
> - if (!data)
> - Fatal_Error("Out of memory!");
> -
> - memcpy(data, string, len);
> - data[len] = '\0';
> -
> - result = Format_String(data, 1);
> - free(data);
> -
> - return result;
> + return Format_Len_String(string, len, is_utf8_locale());
> }
>
> /*
> @@ -1083,7 +1070,7 @@ Format_Thunk (thunk t, char format_char)
>
> switch (format_char) {
> case 's':
> - return Format_Len_String(t.extra_value, (int)t.value);
> + return Format_Len_String(t.extra_value, (int)t.value, 0);
> case 'u':
> return Format_Len_Unicode(t.extra_value, (int)t.value);
> case 't':
> --
> 1.7.9.2
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list