]> Dogcows Code - chaz/tar/blobdiff - src/utf8.c
Avoid undefined behavior
[chaz/tar] / src / utf8.c
index 3352cd1a55527a44e0aca51917035db62c5d32ca..c9836d6273f661faae0da85029444a7eac3fbc70 100644 (file)
@@ -1,10 +1,10 @@
 /* Charset handling for GNU tar.
 
 /* Charset handling for GNU tar.
 
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any later
+   Free Software Foundation; either version 3, or (at your option) any later
    version.
 
    This program is distributed in the hope that it will be useful, but
    version.
 
    This program is distributed in the hope that it will be useful, but
@@ -28,7 +28,7 @@
 # define ICONV_CONST
 #endif
 
 # define ICONV_CONST
 #endif
 
-#ifndef HAVE_ICONV 
+#ifndef HAVE_ICONV
 
 # undef iconv_open
 # define iconv_open(tocode, fromcode) ((iconv_t) -1)
 
 # undef iconv_open
 # define iconv_open(tocode, fromcode) ((iconv_t) -1)
@@ -39,7 +39,7 @@
 # undef iconv_close
 # define iconv_close(cd) 0
 
 # undef iconv_close
 # define iconv_close(cd) 0
 
-#endif 
+#endif
 
 
 \f
 
 
 \f
@@ -88,11 +88,10 @@ utf8_convert (bool to_utf, char const *input, char **output)
 \f
 
 bool
 \f
 
 bool
-string_ascii_p (const char *str)
+string_ascii_p (char const *p)
 {
 {
-  const unsigned char *p = (const unsigned char *)str;
   for (; *p; p++)
   for (; *p; p++)
-    if (*p > 127)
+    if (*p & ~0x7f)
       return false;
   return true;
 }
       return false;
   return true;
 }
This page took 0.021853 seconds and 4 git commands to generate.