Move strsep() and ascii_isspace() to libcompat.
authorDavid Shaw <dshaw@jabberwocky.com>
Thu, 28 Sep 2006 19:53:17 +0000 (19:53 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Thu, 28 Sep 2006 19:53:17 +0000 (19:53 +0000)
ChangeLog
configure.ac
include/ChangeLog
include/compat.h
include/util.h
keyserver/gpgkeys_ldap.c
util/ChangeLog
util/strgutil.c
util/strsep.c [new file with mode: 0644]

index 3533a2b..232c098 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * configure.ac: Move strsep to AC_REPLACE_FUNCS so it will end up
+       in libcompat.
+
 2006-08-01  Werner Koch  <wk@g10code.com>
 
        Released 1.4.5.
index 6f60184..04ee873 100644 (file)
@@ -891,13 +891,13 @@ AC_CHECK_DECLS(getpagesize)
 AC_FUNC_FSEEKO
 AC_FUNC_VPRINTF
 AC_FUNC_FORK
-AC_CHECK_FUNCS(strerror stpcpy strsep strlwr tcgetattr strtoul mmap)
+AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr strtoul mmap)
 AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times unsetenv getpwnam getpwuid)
 AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
 AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
 AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
 AC_CHECK_FUNCS(fcntl ftruncate)
-AC_REPLACE_FUNCS(mkdtemp timegm isascii memrchr)
+AC_REPLACE_FUNCS(mkdtemp timegm isascii memrchr strsep)
 
 AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])
 
index 0d72a87..c2fdcb1 100644 (file)
@@ -1,5 +1,8 @@
 2006-09-28  David Shaw  <dshaw@jabberwocky.com>
 
+       * compat.h: Move strsep prototype and ascii_isspace macro to from
+       util.h.
+
        * compat.h: New, used for libcompat.a functions.
 
        * util.h: Includes compat.h.
index c1f900a..f971ffa 100644 (file)
@@ -1,6 +1,14 @@
 #ifndef _COMPAT_H_
 #define _COMPAT_H_
 
+/* Note this isn't identical to a C locale isspace() without \f and
+   \v, but works for the purposes used here. */
+#define ascii_isspace(a) ((a)==' ' || (a)=='\n' || (a)=='\r' || (a)=='\t')
+
 int hextobyte( const char *s );
 
+#ifndef HAVE_STRSEP
+char *strsep (char **stringp, const char *delim);
+#endif
+
 #endif /* !_COMPAT_H_ */
index 559d0b9..265bb02 100644 (file)
@@ -206,9 +206,6 @@ char *stpcpy(char *a,const char *b);
 #ifndef HAVE_STRLWR
 char *strlwr(char *a);
 #endif
-#ifndef HAVE_STRSEP
-char *strsep (char **stringp, const char *delim);
-#endif
 #ifndef HAVE_STRCASECMP
 int strcasecmp( const char *, const char *b);
 #endif
@@ -297,10 +294,6 @@ int get_cert(const char *name,size_t max_size,IOBUF *iobuf,
                      *(p) <= 'F'? (*(p)-'A'+10):(*(p)-'a'+10))
 #define xtoi_2(p)   ((xtoi_1(p) * 16) + xtoi_1((p)+1))
 
-/* Note this isn't identical to a C locale isspace() without \f and
-   \v, but works for the purposes used here. */
-#define ascii_isspace(a) ((a)==' ' || (a)=='\n' || (a)=='\r' || (a)=='\t')
-
 /******* RISC OS stuff ***********/
 #ifdef __riscos__
 int riscos_load_module(const char *name, const char * const path[], int fatal);
index cdafe7f..1cc27f4 100644 (file)
@@ -54,7 +54,7 @@
 #include <ldap.h>
 #endif
 
-#include "util.h"
+#include "compat.h"
 #include "keyserver.h"
 #include "ksutil.h"
 
index 671b51b..df84c91 100644 (file)
@@ -1,5 +1,7 @@
 2006-09-28  David Shaw  <dshaw@jabberwocky.com>
 
+       * strgutil.c (strsep): Move to strsep.c for AC_REPLACE_FUNCS.
+
        * Makefile.am: Build libcompat.a for keyserver helpers.  libutil.a
        always contains everything in libcompat.a, so we only need to link
        to one or the other.
index cffdfcf..95cb0f2 100644 (file)
@@ -1158,56 +1158,6 @@ stpcpy(char *a,const char *b)
 }
 #endif
 
-
-#ifndef HAVE_STRSEP
-/* code taken from glibc-2.2.1/sysdeps/generic/strsep.c */
-char *
-strsep (char **stringp, const char *delim)
-{
-  char *begin, *end;
-
-  begin = *stringp;
-  if (begin == NULL)
-    return NULL;
-
-  /* A frequent case is when the delimiter string contains only one
-     character.  Here we don't need to call the expensive `strpbrk'
-     function and instead work using `strchr'.  */
-  if (delim[0] == '\0' || delim[1] == '\0')
-    {
-      char ch = delim[0];
-
-      if (ch == '\0')
-        end = NULL;
-      else
-        {
-          if (*begin == ch)
-            end = begin;
-          else if (*begin == '\0')
-            end = NULL;
-          else
-            end = strchr (begin + 1, ch);
-        }
-    }
-  else
-    /* Find the end of the token.  */
-    end = strpbrk (begin, delim);
-
-  if (end)
-    {
-      /* Terminate the token and set *STRINGP past NUL character.  */
-      *end++ = '\0';
-      *stringp = end;
-    }
-  else
-    /* No more delimiters; this is the last token.  */
-    *stringp = NULL;
-
-  return begin;
-}
-#endif /*HAVE_STRSEP*/
-
-
 #ifndef HAVE_STRLWR
 char *
 strlwr(char *s)
diff --git a/util/strsep.c b/util/strsep.c
new file mode 100644 (file)
index 0000000..b97945f
--- /dev/null
@@ -0,0 +1,48 @@
+#include <config.h>
+#include <string.h>
+
+/* code taken from glibc-2.2.1/sysdeps/generic/strsep.c */
+char *
+strsep2 (char **stringp, const char *delim)
+{
+  char *begin, *end;
+
+  begin = *stringp;
+  if (begin == NULL)
+    return NULL;
+
+  /* A frequent case is when the delimiter string contains only one
+     character.  Here we don't need to call the expensive `strpbrk'
+     function and instead work using `strchr'.  */
+  if (delim[0] == '\0' || delim[1] == '\0')
+    {
+      char ch = delim[0];
+
+      if (ch == '\0')
+        end = NULL;
+      else
+        {
+          if (*begin == ch)
+            end = begin;
+          else if (*begin == '\0')
+            end = NULL;
+          else
+            end = strchr (begin + 1, ch);
+        }
+    }
+  else
+    /* Find the end of the token.  */
+    end = strpbrk (begin, delim);
+
+  if (end)
+    {
+      /* Terminate the token and set *STRINGP past NUL character.  */
+      *end++ = '\0';
+      *stringp = end;
+    }
+  else
+    /* No more delimiters; this is the last token.  */
+    *stringp = NULL;
+
+  return begin;
+}