]> xenbits.xensource.com Git - libvirt.git/commitdiff
Use gnulib's c-ctype.h, not <ctype.h>.
authorJim Meyering <meyering@redhat.com>
Fri, 9 May 2008 13:50:14 +0000 (13:50 +0000)
committerJim Meyering <meyering@redhat.com>
Fri, 9 May 2008 13:50:14 +0000 (13:50 +0000)
# Convert uses of isspace to c_isspace, isdigit to c_isdigit, etc.
re=$(man isspace|grep is.....,.is|sed 's/ -.*//' \
  |tr -s ', \n' \||sed 's/^|//;s/|$//')
git grep -l -E "$re"|grep -Ev 'Chan|gnulib' \
  |xargs perl -pi -e 's/\b('"$re"')\b/c_$1/g'
# Remove all uses of to_uchar
git grep -l to_uchar|xargs perl -pi -e 's/to_uchar\((.*?)\)/$1/g'
* src/util.h (to_uchar): Remove definition.
(TOLOWER): Remove definition.
(__virMacAddrCompare): Use c_tolower, not TOLOWER.
Globally:
  Where needed, change <ctype.h> to <c-ctype.h>.
  Remove unnecessary inclusion of <ctype.h>.
Ensure the global changes are never needed again:
* Makefile.maint (sc_avoid_ctype_macros): Prohibit use of ctype
macros.   Recommend c-ctype.h instead.
(sc_prohibit_c_ctype_without_use): New rule.
(sc_prohibit_ctype_h): New rule.  Disallow use of <ctype.h>.

13 files changed:
ChangeLog
Makefile.maint
qemud/remote.c
src/buf.c
src/nodeinfo.c
src/openvz_driver.c
src/qemu_driver.c
src/sexpr.c
src/stats_linux.c
src/util.c
src/util.h
src/virsh.c
src/xend_internal.c

index b23d5f265dc4be78516f5ea7149757f06c522964..38d86468e3a0e571acda4501caf8f72e893803a7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,25 @@
 Fri May  9 15:45:39 CEST 2008 Jim Meyering <meyering@redhat.com>
 
+       Use gnulib's c-ctype.h, not <ctype.h>.
+       # Convert uses of isspace to c_isspace, isdigit to c_isdigit, etc.
+       re=$(man isspace|grep is.....,.is|sed 's/ -.*//' \
+         |tr -s ', \n' \||sed 's/^|//;s/|$//')
+       git grep -l -E "$re"|grep -Ev 'Chan|gnulib' \
+         |xargs perl -pi -e 's/\b('"$re"')\b/c_$1/g'
+       # Remove all uses of to_uchar
+       git grep -l to_uchar|xargs perl -pi -e 's/to_uchar\((.*?)\)/$1/g'
+       * src/util.h (to_uchar): Remove definition.
+       (TOLOWER): Remove definition.
+       (__virMacAddrCompare): Use c_tolower, not TOLOWER.
+       Globally:
+         Where needed, change <ctype.h> to <c-ctype.h>.
+         Remove unnecessary inclusion of <ctype.h>.
+       Ensure the global changes are never needed again:
+       * Makefile.maint (sc_avoid_ctype_macros): Prohibit use of ctype
+       macros.   Recommend c-ctype.h instead.
+       (sc_prohibit_c_ctype_without_use): New rule.
+       (sc_prohibit_ctype_h): New rule.  Disallow use of <ctype.h>.
+
        Prepare to use gnulib's c-type module.
        * bootstrap: Move module list into separate variable w/less syntax.
        (modules): Add c-ctype.
index bab8e1d069b26ad15de7d9d02a0055f222c02c81..0f79ed78d376711c813375ac8f0a0e70c73b417e 100644 (file)
@@ -157,6 +157,16 @@ sc_prohibit_quotearg_without_use:
 sc_prohibit_quote_without_use:
        @h='"quote.h"' re='\<quote(_n)? *\(' $(_header_without_use)
 
+# Prohibit the inclusion of c-ctype.h without an actual use.
+sc_prohibit_c_ctype_without_use:
+       @h='[<"]c-ctype.h[">]' re='\<c_($(ctype_re)) *\(' $(_header_without_use)
+
+# Prohibit the inclusion of <ctype.h>.
+sc_prohibit_ctype_h:
+       @grep -E '^# *include  *<ctype\.h>' $$($(VC_LIST_EXCEPT)) &&    \
+         { echo "$(ME): don't use ctype.h; instead, use c-ctype.h"     \
+               1>&2; exit 1; } || :
+
 sc_obsolete_symbols:
        @grep -nE '\<(HAVE''_FCNTL_H|O''_NDELAY)\>'                     \
             $$($(VC_LIST_EXCEPT)) &&                                   \
@@ -305,10 +315,10 @@ sc_TAB_in_indentation:
 ctype_re = isalnum|isalpha|isascii|isblank|iscntrl|isdigit|isgraph|islower\
 |isprint|ispunct|isspace|isupper|isxdigit|tolower|toupper
 
-sc_risky_ctype_macros:
+sc_avoid_ctype_macros:
        @grep -E '\b($(ctype_re)) *\(' /dev/null                        \
-            $$($(VC_LIST_EXCEPT)) | grep -v to_uchar &&                \
-         { echo '$(ME): found ctype macro use without to_uchar'        \
+            $$($(VC_LIST_EXCEPT)) &&                                   \
+         { echo "$(ME): don't use ctype macros (use c-ctype.h)"        \
                1>&2; exit 1; } || :
 
 # Match lines like the following, but where there is only one space
index e249529f5d7b2ede1e93e84149b7da06700f1672..22dd86e918de5cc72a40d16f7efa8314716fb08c 100644 (file)
@@ -41,7 +41,6 @@
 #include <syslog.h>
 #include <string.h>
 #include <errno.h>
-#include <ctype.h>
 #include <fnmatch.h>
 
 #ifdef HAVE_POLKIT
index 2e17fbbf919ae6ee6a1b4a7fb8610861dc90f536..b56a9c18d845f7b5fe9fa9418f3aa7b25b50df75 100644 (file)
--- a/src/buf.c
+++ b/src/buf.c
@@ -1,7 +1,7 @@
 /*
  * buf.c: buffers for libvirt
  *
- * Copyright (C) 2005-2007 Red Hat, Inc.
+ * Copyright (C) 2005-2008 Red Hat, Inc.
  *
  * See COPYING.LIB for the License of this software
  *
@@ -16,7 +16,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdarg.h>
-#include <ctype.h>
 
 #define __VIR_BUFFER_C__
 
index c1e80138c9e085e2260ff79f1407cd9fd0e9cfab..e227c69e9de6fe2a1959b5b79ad74a7625cc8f0f 100644 (file)
@@ -27,7 +27,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <ctype.h>
+#include <c-ctype.h>
 
 #ifdef HAVE_SYS_UTSNAME_H
 #include <sys/utsname.h>
@@ -59,7 +59,7 @@ int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo, virNodeInfoPtr n
         char *buf = line;
         if (STREQLEN(buf, "processor", 9)) { /* aka a single logical CPU */
             buf += 9;
-            while (*buf && isspace(to_uchar(*buf)))
+            while (*buf && c_isspace(*buf))
                 buf++;
             if (*buf != ':') {
                 __virRaiseError(conn, NULL, NULL, 0, VIR_ERR_INTERNAL_ERROR,
@@ -72,7 +72,7 @@ int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo, virNodeInfoPtr n
             char *p;
             unsigned int ui;
             buf += 9;
-            while (*buf && isspace(to_uchar(*buf)))
+            while (*buf && c_isspace(*buf))
                 buf++;
             if (*buf != ':' || !buf[1]) {
                 __virRaiseError(conn, NULL, NULL, 0, VIR_ERR_INTERNAL_ERROR,
@@ -82,13 +82,13 @@ int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo, virNodeInfoPtr n
             }
             if (virStrToLong_ui(buf+1, &p, 10, &ui) == 0
                 /* Accept trailing fractional part.  */
-                && (*p == '\0' || *p == '.' || isspace(to_uchar(*p))))
+                && (*p == '\0' || *p == '.' || c_isspace(*p)))
                 nodeinfo->mhz = ui;
         } else if (STREQLEN(buf, "cpu cores", 9)) { /* aka cores */
             char *p;
             unsigned int id;
             buf += 9;
-            while (*buf && isspace(to_uchar(*buf)))
+            while (*buf && c_isspace(*buf))
                 buf++;
             if (*buf != ':' || !buf[1]) {
                 __virRaiseError(conn, NULL, NULL, 0, VIR_ERR_INTERNAL_ERROR,
@@ -97,7 +97,7 @@ int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo, virNodeInfoPtr n
                 return -1;
             }
             if (virStrToLong_ui(buf+1, &p, 10, &id) == 0
-                && (*p == '\0' || isspace(to_uchar(*p)))
+                && (*p == '\0' || c_isspace(*p))
                 && id > nodeinfo->cores)
                 nodeinfo->cores = id;
         }
index 0bae4fd97752ad2e290afc6f66a2160ad8d84e90..22c898aea350f93d44a8edd6e8075ac8de64fde7 100644 (file)
@@ -45,7 +45,6 @@
 #include <fcntl.h>
 #include <signal.h>
 #include <paths.h>
-#include <ctype.h>
 #include <pwd.h>
 #include <stdio.h>
 #include <sys/wait.h>
index cf52a0701c03dbeddc75502477ea09831871fdf6..10868c1b268b00ade02ef4076092fe3211cc5bd5 100644 (file)
@@ -41,7 +41,7 @@
 #include <fcntl.h>
 #include <signal.h>
 #include <paths.h>
-#include <ctype.h>
+#include <c-ctype.h>
 #include <pwd.h>
 #include <stdio.h>
 #include <sys/wait.h>
@@ -519,7 +519,7 @@ static int qemudExtractMonitorPath(const char *haystack,
      */
     tmp = path;
     while (*tmp) {
-        if (isspace(to_uchar(*tmp))) {
+        if (c_isspace(*tmp)) {
             *tmp = '\0';
             *offset += (sizeof(needle)-1) + strlen(path);
             return 0;
index 4cb4edf26873fcb30d1c7b8ee21732554af509ad..85b289c86a9b821e532df27c4a6a289a4314a83f 100644 (file)
@@ -15,7 +15,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <ctype.h>
+#include <c-ctype.h>
 #include <errno.h>
 
 #include "internal.h"
@@ -358,7 +358,7 @@ _string2sexpr(const char *buffer, size_t * end)
         } else {
             start = ptr;
 
-            while (*ptr && !isspace(to_uchar(*ptr))
+            while (*ptr && !c_isspace(*ptr)
                    && *ptr != ')' && *ptr != '(') {
                 ptr++;
             }
index e84e24ff3e395951098d8a103b5f9e99088edf58..cb647feb0925c74c8abad695c717930f4c7828e2 100644 (file)
@@ -18,7 +18,7 @@
 #include <fcntl.h>
 #include <string.h>
 #include <unistd.h>
-#include <ctype.h>
+#include <c-ctype.h>
 
 #ifdef WITH_XEN
 #include <xs.h>
@@ -262,7 +262,7 @@ xenLinuxDomainDeviceID(virConnectPtr conn, int domid, const char *path)
         }
 
         if (path[4] != '\0') {
-            if (!isdigit(to_uchar(path[4])) || path[4] == '0' ||
+            if (!c_isdigit(path[4]) || path[4] == '0' ||
                 virStrToLong_i(path+4, NULL, 10, &part) < 0 ||
                 part < 1 || part > 15) {
                 statsErrorFunc (conn, VIR_ERR_INVALID_ARG, __FUNCTION__,
@@ -306,7 +306,7 @@ xenLinuxDomainDeviceID(virConnectPtr conn, int domid, const char *path)
             } else {
                 p = path + 3;
             }
-            if (p && (!isdigit(to_uchar(*p)) || *p == '0' ||
+            if (p && (!c_isdigit(*p) || *p == '0' ||
                       virStrToLong_i(p, NULL, 10, &part) < 0 ||
                       part < 1 || part > 15)) {
                 statsErrorFunc (conn, VIR_ERR_INVALID_ARG, __FUNCTION__,
@@ -332,7 +332,7 @@ xenLinuxDomainDeviceID(virConnectPtr conn, int domid, const char *path)
         }
 
         if (path[3] != '\0') {
-            if (!isdigit(to_uchar(path[3])) || path[3] == '0' ||
+            if (!c_isdigit(path[3]) || path[3] == '0' ||
                 virStrToLong_i(path+3, NULL, 10, &part) < 0 ||
                 part < 1 || part > 63) {
                 statsErrorFunc (conn, VIR_ERR_INVALID_ARG, __FUNCTION__,
index 4cef6d23c76ca8e81024623eb8a13c74b2bad419..f354a48e0edc4f449e718c9b46d6ae05e5a06c8f 100644 (file)
@@ -37,7 +37,7 @@
 #include <sys/wait.h>
 #endif
 #include <string.h>
-#include <ctype.h>
+#include <c-ctype.h>
 
 #ifdef HAVE_PATHS_H
 #include <paths.h>
@@ -57,9 +57,6 @@
 
 #define MAX_ERROR_LEN   1024
 
-#define TOLOWER(Ch) (isupper (to_uchar(Ch)) \
-                    ? tolower (to_uchar (Ch)) : (to_uchar (Ch)))
-
 #define virLog(msg...) fprintf(stderr, msg)
 
 #ifndef PROXY
@@ -705,12 +702,12 @@ __virMacAddrCompare (const char *p, const char *q)
 {
     unsigned char c, d;
     do {
-        while (*p == '0' && isxdigit (to_uchar(p[1])))
+        while (*p == '0' && c_isxdigit (p[1]))
             ++p;
-        while (*q == '0' && isxdigit (to_uchar(q[1])))
+        while (*q == '0' && c_isxdigit (q[1]))
             ++q;
-        c = TOLOWER (*p);
-        d = TOLOWER (*q);
+        c = c_tolower (*p);
+        d = c_tolower (*q);
 
         if (c == 0 || d == 0)
             break;
@@ -750,7 +747,7 @@ virParseMacAddr(const char* str, unsigned char *addr)
         /* This is solely to avoid accepting the leading
          * space or "+" that strtoul would otherwise accept.
          */
-        if (!isxdigit(to_uchar(*str)))
+        if (!c_isxdigit(*str))
             break;
 
         result = strtoul(str, &end_ptr, 16);
index af68bc85807ba5b603fb999628fcf0ba433020ac..25165046821efdebcb854862a5ed7256c5a66a3f 100644 (file)
 #include "internal.h"
 #include "util-lib.h"
 
-/* Convert a possibly-signed character to an unsigned character.  This is
-   a bit safer than casting to unsigned char, since it catches some type
-   errors that the cast doesn't.  */
-static inline unsigned char to_uchar (char ch) { return ch; }
-
 int virExec(virConnectPtr conn, char **argv, int *retpid,
             int infd, int *outfd, int *errfd);
 int virExecNonBlock(virConnectPtr conn, char **argv, int *retpid,
index 00dbda8976aac3a66660122b9b3db022288f703e..5a35f36f721af9e9bd33259f95a5efe8003807d5 100644 (file)
@@ -26,7 +26,7 @@
 #include <getopt.h>
 #include <sys/types.h>
 #include <sys/time.h>
-#include <ctype.h>
+#include <c-ctype.h>
 #include <fcntl.h>
 #include <locale.h>
 #include <time.h>
@@ -1763,7 +1763,7 @@ cmdVcpupin(vshControl * ctl, vshCmd * cmd)
     for (i = 0; cpulist[i]; i++) {
         switch (state) {
         case expect_num:
-          if (!isdigit (to_uchar(cpulist[i]))) {
+          if (!c_isdigit (cpulist[i])) {
                 vshError( ctl, FALSE, _("cpulist: %s: Invalid format. Expecting digit at position %d (near '%c')."), cpulist, i, cpulist[i]);
                 virDomainFree (dom);
                 return FALSE;
@@ -1773,7 +1773,7 @@ cmdVcpupin(vshControl * ctl, vshCmd * cmd)
         case expect_num_or_comma:
             if (cpulist[i] == ',')
                 state = expect_num;
-            else if (!isdigit (to_uchar(cpulist[i]))) {
+            else if (!c_isdigit (cpulist[i])) {
                 vshError(ctl, FALSE, _("cpulist: %s: Invalid format. Expecting digit or comma at position %d (near '%c')."), cpulist, i, cpulist[i]);
                 virDomainFree (dom);
                 return FALSE;
@@ -5673,7 +5673,7 @@ vshCommandGetToken(vshControl * ctl, char *str, char **end, char **res)
 
         if (tk == VSH_TK_NONE) {
             if (*p == '-' && *(p + 1) == '-' && *(p + 2)
-                && isalnum(to_uchar(*(p + 2)))) {
+                && c_isalnum(*(p + 2))) {
                 tk = VSH_TK_OPTION;
                 p += 2;
             } else {
index 0c9f5bcb9f41aa05ac528f58f04d85afc483a2f0..e96415963bc58b1cbfdcdf93d2cc7f8126cf2988 100644 (file)
@@ -30,7 +30,6 @@
 #include <arpa/inet.h>
 #include <netdb.h>
 #include <libxml/uri.h>
-#include <ctype.h>
 #include <errno.h>
 
 #include "libvirt/libvirt.h"