aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2006-09-28 19:53:17 +0000
committerDavid Shaw <[email protected]>2006-09-28 19:53:17 +0000
commit6f32b4e4d1d451daed4ec519ee81ef37c8dc159e (patch)
tree2943cfa3325562df7710accd5ddd8bb73d8524a6
parentPut in the basic wiring (just hextobyte for now) for a libcompat.a that (diff)
downloadgnupg-6f32b4e4d1d451daed4ec519ee81ef37c8dc159e.tar.gz
gnupg-6f32b4e4d1d451daed4ec519ee81ef37c8dc159e.zip
Move strsep() and ascii_isspace() to libcompat.
-rw-r--r--ChangeLog5
-rw-r--r--configure.ac4
-rw-r--r--include/ChangeLog3
-rw-r--r--include/compat.h8
-rw-r--r--include/util.h7
-rw-r--r--keyserver/gpgkeys_ldap.c2
-rw-r--r--util/ChangeLog2
-rw-r--r--util/strgutil.c50
-rw-r--r--util/strsep.c48
9 files changed, 69 insertions, 60 deletions
diff --git a/ChangeLog b/ChangeLog
index 3533a2bc8..232c098b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-28 David Shaw <[email protected]>
+
+ * configure.ac: Move strsep to AC_REPLACE_FUNCS so it will end up
+ in libcompat.
+
2006-08-01 Werner Koch <[email protected]>
Released 1.4.5.
diff --git a/configure.ac b/configure.ac
index 6f601843e..04ee87398 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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>])
diff --git a/include/ChangeLog b/include/ChangeLog
index 0d72a879a..c2fdcb140 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,5 +1,8 @@
2006-09-28 David Shaw <[email protected]>
+ * 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.
diff --git a/include/compat.h b/include/compat.h
index c1f900a9e..f971ffaf7 100644
--- a/include/compat.h
+++ b/include/compat.h
@@ -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_ */
diff --git a/include/util.h b/include/util.h
index 559d0b9a0..265bb02c2 100644
--- a/include/util.h
+++ b/include/util.h
@@ -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);
diff --git a/keyserver/gpgkeys_ldap.c b/keyserver/gpgkeys_ldap.c
index cdafe7fa7..1cc27f452 100644
--- a/keyserver/gpgkeys_ldap.c
+++ b/keyserver/gpgkeys_ldap.c
@@ -54,7 +54,7 @@
#include <ldap.h>
#endif
-#include "util.h"
+#include "compat.h"
#include "keyserver.h"
#include "ksutil.h"
diff --git a/util/ChangeLog b/util/ChangeLog
index 671b51bb0..df84c9112 100644
--- a/util/ChangeLog
+++ b/util/ChangeLog
@@ -1,5 +1,7 @@
2006-09-28 David Shaw <[email protected]>
+ * 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.
diff --git a/util/strgutil.c b/util/strgutil.c
index cffdfcf77..95cb0f274 100644
--- a/util/strgutil.c
+++ b/util/strgutil.c
@@ -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
index 000000000..b97945f78
--- /dev/null
+++ b/util/strsep.c
@@ -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;
+}