1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

Move strsep() and ascii_isspace() to libcompat.

This commit is contained in:
David Shaw 2006-09-28 19:53:17 +00:00
parent b17fcc5d51
commit 6f32b4e4d1
9 changed files with 69 additions and 60 deletions

View File

@ -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> 2006-08-01 Werner Koch <wk@g10code.com>
Released 1.4.5. Released 1.4.5.

View File

@ -891,13 +891,13 @@ AC_CHECK_DECLS(getpagesize)
AC_FUNC_FSEEKO AC_FUNC_FSEEKO
AC_FUNC_VPRINTF AC_FUNC_VPRINTF
AC_FUNC_FORK 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(strcasecmp strncasecmp ctermid times unsetenv getpwnam getpwuid)
AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime) AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale) AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo) AC_CHECK_FUNCS(waitpid wait4 sigaction sigprocmask rand pipe stat getaddrinfo)
AC_CHECK_FUNCS(fcntl ftruncate) 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>]) AC_CHECK_TYPES([struct sigaction, sigset_t],,,[#include <signal.h>])

View File

@ -1,5 +1,8 @@
2006-09-28 David Shaw <dshaw@jabberwocky.com> 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. * compat.h: New, used for libcompat.a functions.
* util.h: Includes compat.h. * util.h: Includes compat.h.

View File

@ -1,6 +1,14 @@
#ifndef _COMPAT_H_ #ifndef _COMPAT_H_
#define _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 ); int hextobyte( const char *s );
#ifndef HAVE_STRSEP
char *strsep (char **stringp, const char *delim);
#endif
#endif /* !_COMPAT_H_ */ #endif /* !_COMPAT_H_ */

View File

@ -206,9 +206,6 @@ char *stpcpy(char *a,const char *b);
#ifndef HAVE_STRLWR #ifndef HAVE_STRLWR
char *strlwr(char *a); char *strlwr(char *a);
#endif #endif
#ifndef HAVE_STRSEP
char *strsep (char **stringp, const char *delim);
#endif
#ifndef HAVE_STRCASECMP #ifndef HAVE_STRCASECMP
int strcasecmp( const char *, const char *b); int strcasecmp( const char *, const char *b);
#endif #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)) *(p) <= 'F'? (*(p)-'A'+10):(*(p)-'a'+10))
#define xtoi_2(p) ((xtoi_1(p) * 16) + xtoi_1((p)+1)) #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 ***********/ /******* RISC OS stuff ***********/
#ifdef __riscos__ #ifdef __riscos__
int riscos_load_module(const char *name, const char * const path[], int fatal); int riscos_load_module(const char *name, const char * const path[], int fatal);

View File

@ -54,7 +54,7 @@
#include <ldap.h> #include <ldap.h>
#endif #endif
#include "util.h" #include "compat.h"
#include "keyserver.h" #include "keyserver.h"
#include "ksutil.h" #include "ksutil.h"

View File

@ -1,5 +1,7 @@
2006-09-28 David Shaw <dshaw@jabberwocky.com> 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 * Makefile.am: Build libcompat.a for keyserver helpers. libutil.a
always contains everything in libcompat.a, so we only need to link always contains everything in libcompat.a, so we only need to link
to one or the other. to one or the other.

View File

@ -1158,56 +1158,6 @@ stpcpy(char *a,const char *b)
} }
#endif #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 #ifndef HAVE_STRLWR
char * char *
strlwr(char *s) strlwr(char *s)

48
util/strsep.c Normal file
View File

@ -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;
}