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>
|
2006-08-01 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
Released 1.4.5.
|
Released 1.4.5.
|
||||||
|
@ -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>])
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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_ */
|
||||||
|
@ -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);
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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
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