summaryrefslogtreecommitdiffstats
path: root/gl
diff options
context:
space:
mode:
Diffstat (limited to 'gl')
-rw-r--r--gl/Makefile.am11
-rw-r--r--gl/m4/gnulib-cache.m43
-rw-r--r--gl/m4/gnulib-comp.m46
-rw-r--r--gl/m4/strsep.m425
-rw-r--r--gl/strsep.c58
5 files changed, 101 insertions, 2 deletions
diff --git a/gl/Makefile.am b/gl/Makefile.am
index 7954b03..2f5f9c4 100644
--- a/gl/Makefile.am
+++ b/gl/Makefile.am
@@ -9,7 +9,7 @@
9# the same distribution terms as the rest of that program. 9# the same distribution terms as the rest of that program.
10# 10#
11# Generated by gnulib-tool. 11# Generated by gnulib-tool.
12# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-libtool --macro-prefix=gl --no-vc-files base64 crypto/sha1 dirname floorf fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex timegm vasprintf vsnprintf 12# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-libtool --macro-prefix=gl --no-vc-files base64 crypto/sha1 dirname floorf fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex strsep timegm vasprintf vsnprintf
13 13
14AUTOMAKE_OPTIONS = 1.5 gnits 14AUTOMAKE_OPTIONS = 1.5 gnits
15 15
@@ -1367,6 +1367,15 @@ EXTRA_libgnu_a_SOURCES += strnlen.c
1367 1367
1368## end gnulib module strnlen 1368## end gnulib module strnlen
1369 1369
1370## begin gnulib module strsep
1371
1372
1373EXTRA_DIST += strsep.c
1374
1375EXTRA_libgnu_a_SOURCES += strsep.c
1376
1377## end gnulib module strsep
1378
1370## begin gnulib module strstr-simple 1379## begin gnulib module strstr-simple
1371 1380
1372 1381
diff --git a/gl/m4/gnulib-cache.m4 b/gl/m4/gnulib-cache.m4
index 97b1849..f23cb51 100644
--- a/gl/m4/gnulib-cache.m4
+++ b/gl/m4/gnulib-cache.m4
@@ -15,7 +15,7 @@
15 15
16 16
17# Specification in the form of a command-line invocation: 17# Specification in the form of a command-line invocation:
18# gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-libtool --macro-prefix=gl --no-vc-files base64 crypto/sha1 dirname floorf fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex timegm vasprintf vsnprintf 18# gnulib-tool --import --dir=. --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-libtool --macro-prefix=gl --no-vc-files base64 crypto/sha1 dirname floorf fsusage getaddrinfo gethostname getloadavg getopt gettext mountlist regex strsep timegm vasprintf vsnprintf
19 19
20# Specification in the form of a few gnulib-tool.m4 macro invocations: 20# Specification in the form of a few gnulib-tool.m4 macro invocations:
21gl_LOCAL_DIR([]) 21gl_LOCAL_DIR([])
@@ -32,6 +32,7 @@ gl_MODULES([
32 gettext 32 gettext
33 mountlist 33 mountlist
34 regex 34 regex
35 strsep
35 timegm 36 timegm
36 vasprintf 37 vasprintf
37 vsnprintf 38 vsnprintf
diff --git a/gl/m4/gnulib-comp.m4 b/gl/m4/gnulib-comp.m4
index f4031cc..73e6365 100644
--- a/gl/m4/gnulib-comp.m4
+++ b/gl/m4/gnulib-comp.m4
@@ -106,6 +106,7 @@ AC_DEFUN([gl_EARLY],
106 # Code from module string: 106 # Code from module string:
107 # Code from module strndup: 107 # Code from module strndup:
108 # Code from module strnlen: 108 # Code from module strnlen:
109 # Code from module strsep:
109 # Code from module strstr-simple: 110 # Code from module strstr-simple:
110 # Code from module sys_socket: 111 # Code from module sys_socket:
111 # Code from module sys_stat: 112 # Code from module sys_stat:
@@ -327,6 +328,9 @@ AC_DEFUN([gl_INIT],
327 # Code from module strnlen: 328 # Code from module strnlen:
328 gl_FUNC_STRNLEN 329 gl_FUNC_STRNLEN
329 gl_STRING_MODULE_INDICATOR([strnlen]) 330 gl_STRING_MODULE_INDICATOR([strnlen])
331 # Code from module strsep:
332 gl_FUNC_STRSEP
333 gl_STRING_MODULE_INDICATOR([strsep])
330 # Code from module strstr-simple: 334 # Code from module strstr-simple:
331 gl_FUNC_STRSTR_SIMPLE 335 gl_FUNC_STRSTR_SIMPLE
332 gl_STRING_MODULE_INDICATOR([strstr]) 336 gl_STRING_MODULE_INDICATOR([strstr])
@@ -634,6 +638,7 @@ AC_DEFUN([gl_FILE_LIST], [
634 lib/stripslash.c 638 lib/stripslash.c
635 lib/strndup.c 639 lib/strndup.c
636 lib/strnlen.c 640 lib/strnlen.c
641 lib/strsep.c
637 lib/strstr.c 642 lib/strstr.c
638 lib/sys_socket.in.h 643 lib/sys_socket.in.h
639 lib/sys_stat.in.h 644 lib/sys_stat.in.h
@@ -762,6 +767,7 @@ AC_DEFUN([gl_FILE_LIST], [
762 m4/string_h.m4 767 m4/string_h.m4
763 m4/strndup.m4 768 m4/strndup.m4
764 m4/strnlen.m4 769 m4/strnlen.m4
770 m4/strsep.m4
765 m4/strstr.m4 771 m4/strstr.m4
766 m4/sys_socket_h.m4 772 m4/sys_socket_h.m4
767 m4/sys_stat_h.m4 773 m4/sys_stat_h.m4
diff --git a/gl/m4/strsep.m4 b/gl/m4/strsep.m4
new file mode 100644
index 0000000..fb4d396
--- /dev/null
+++ b/gl/m4/strsep.m4
@@ -0,0 +1,25 @@
1# strsep.m4 serial 9
2dnl Copyright (C) 2002, 2003, 2004, 2007, 2009, 2010 Free Software Foundation,
3dnl Inc.
4dnl This file is free software; the Free Software Foundation
5dnl gives unlimited permission to copy and/or distribute it,
6dnl with or without modifications, as long as this notice is preserved.
7
8AC_DEFUN([gl_FUNC_STRSEP],
9[
10 dnl Persuade glibc <string.h> to declare strsep().
11 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
12
13 dnl The strsep() declaration in lib/string.in.h uses 'restrict'.
14 AC_REQUIRE([AC_C_RESTRICT])
15
16 AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
17 AC_REPLACE_FUNCS([strsep])
18 if test $ac_cv_func_strsep = no; then
19 HAVE_STRSEP=0
20 gl_PREREQ_STRSEP
21 fi
22])
23
24# Prerequisites of lib/strsep.c.
25AC_DEFUN([gl_PREREQ_STRSEP], [:])
diff --git a/gl/strsep.c b/gl/strsep.c
new file mode 100644
index 0000000..a2a3ffa
--- /dev/null
+++ b/gl/strsep.c
@@ -0,0 +1,58 @@
1/* Copyright (C) 2004, 2007, 2009, 2010 Free Software Foundation, Inc.
2
3 Written by Yoann Vandoorselaere <yoann@prelude-ids.org>.
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
8 any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
18
19#ifdef HAVE_CONFIG_H
20# include <config.h>
21#endif
22
23/* Specification. */
24#include <string.h>
25
26char *
27strsep (char **stringp, const char *delim)
28{
29 char *start = *stringp;
30 char *ptr;
31
32 if (start == NULL)
33 return NULL;
34
35 /* Optimize the case of no delimiters. */
36 if (delim[0] == '\0')
37 {
38 *stringp = NULL;
39 return start;
40 }
41
42 /* Optimize the case of one delimiter. */
43 if (delim[1] == '\0')
44 ptr = strchr (start, delim[0]);
45 else
46 /* The general case. */
47 ptr = strpbrk (start, delim);
48 if (ptr == NULL)
49 {
50 *stringp = NULL;
51 return start;
52 }
53
54 *ptr = '\0';
55 *stringp = ptr + 1;
56
57 return start;
58}