[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 14/20] libxl: include <ctype.h> and introduce CTYPE helper macro



On Fri, 2012-03-16 at 16:26 +0000, Ian Jackson wrote:
> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>

Shouldn't there be a handful of cleanups off the back of this?

Huh, grep suggests only
tools/libxl/xl_cmdimpl.c:        if (!isdigit((uint8_t)p[i])) {
which is not useful in the context of libxl_internal.h

I have a feeling the others I was thinking of are in blktap or something

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

> ---
>  tools/libxl/libxl_internal.h |   20 ++++++++++++++++++++
>  1 files changed, 20 insertions(+), 0 deletions(-)
> 
> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> index 8091ca2..69b6f74 100644
> --- a/tools/libxl/libxl_internal.h
> +++ b/tools/libxl/libxl_internal.h
> @@ -33,6 +33,7 @@
>  #include <stdlib.h>
>  #include <string.h>
>  #include <unistd.h>
> +#include <ctype.h>
>  
>  #include <sys/mman.h>
>  #include <sys/poll.h>
> @@ -1529,6 +1530,25 @@ static inline void libxl__ctx_unlock(libxl_ctx *ctx) {
>      } while(0)
>  
> 
> +/*
> + * int CTYPE(ISFOO, char c);
> + * int CTYPE(toupper, char c);
> + * int CTYPE(tolower, char c);
> + *
> + * This is necessary because passing a simple char to a ctype.h
> + * is forbidden.  ctype.h macros take ints derived from _unsigned_ chars.
> + *
> + * If you have a char which might be EOF then you should already have
> + * it in an int representing an unsigned char, and you can use the
> + * <ctype.h> macros directly.  This generally happens only with values
> + * from fgetc et al.
> + *
> + * For any value known to be a character (eg, anything that came from
> + * a char[]), use CTYPE.
> + */
> +#define CTYPE(isfoo,c) (isfoo((unsigned char)(c)))
> +
> +
>  #endif
>  
>  /*



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.