[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