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:
parent
b17fcc5d51
commit
6f32b4e4d1
@ -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.
|
||||
|
@ -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>])
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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_ */
|
||||
|
@ -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);
|
||||
|
@ -54,7 +54,7 @@
|
||||
#include <ldap.h>
|
||||
#endif
|
||||
|
||||
#include "util.h"
|
||||
#include "compat.h"
|
||||
#include "keyserver.h"
|
||||
#include "ksutil.h"
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
48
util/strsep.c
Normal file
48
util/strsep.c
Normal 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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user