[PATCH 1/5] misc: add xrtrim() - right-trim a string

Peter Hutterer peter.hutterer at who-t.net
Sun Dec 8 17:01:35 PST 2013


On Sat, Dec 07, 2013 at 04:48:46PM +0100, Daniel Martin wrote:
> Signed-off-by: Daniel Martin <consume.noise at gmail.com>
> ---
>  include/misc.h |  1 +
>  os/utils.c     | 16 ++++++++++++++++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/include/misc.h b/include/misc.h
> index 17de710..aab556a 100644
> --- a/include/misc.h
> +++ b/include/misc.h
> @@ -246,6 +246,7 @@ padding_for_int32(const int bytes)
>  }
>  
>  
> +extern int xrtrim(char *str, int str_len);
>  extern char **xstrtokenize(const char *str, const char *separators);
>  extern void FormatInt64(int64_t num, char *string);
>  extern void FormatUInt64(uint64_t num, char *string);
> diff --git a/os/utils.c b/os/utils.c
> index fb20da7..56a1a6d 100644
> --- a/os/utils.c
> +++ b/os/utils.c
> @@ -1943,6 +1943,22 @@ CheckUserAuthorization(void)
>  }
>  
>  /*
> + * Right-trim a string. Returns the string length after trimming.
> + */
> +int
> +xrtrim(char *str, int str_len)

can we divide this into two functions, one with a length argument and one
without? cheap enough to do it now even if your patchset doesn't need it
atm.

> +{
> +    int i = str_len;
> +
> +    while (i > 0 && !isgraph(str[i - 1]))
> +        i--;
> +
> +    str[i] = '\0';
> +
> +    return i;
> +}
> +
> +/*
>   * Tokenize a string into a NULL terminated array of strings. Always returns
>   * an allocated array unless an error occurs.
>   */
> -- 
> 1.8.4.2
> 

fwiw, this is exactly that type of function that the tests in xserver/test/
are useful for (possibly the only thing...) so I'd prefer to see a few tests
just to make sure we don't screw this up in the future.

Cheers,
   Peter


More information about the xorg-devel mailing list