diff options
| author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2008-11-23 12:12:26 +0100 |
|---|---|---|
| committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2008-11-23 12:12:26 +0100 |
| commit | 9fa704d5c067d766df8e7cf9b35fa029b0b6770a (patch) | |
| tree | b6da0b56e127ea454eabfb545ccf015deac7b3ae | |
| parent | ccfc05d59a4192522332128c28b9ef111e06820f (diff) | |
add strsep replacement from glibc
| -rw-r--r-- | src/Makefile.am | 4 | ||||
| -rw-r--r-- | src/pnm.c | 1 | ||||
| -rw-r--r-- | src/pnmcurve.c | 2 | ||||
| -rw-r--r-- | src/pnmcurvedit.cxx | 1 | ||||
| -rw-r--r-- | src/strsep.c | 70 | ||||
| -rw-r--r-- | src/strsep.h | 12 |
6 files changed, 87 insertions, 3 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index e670988..61b860d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -5,7 +5,8 @@ pnmcurvedit_CXXFLAGS=@FLTKCXXFLAGS@ pnmcurve_SOURCES = \ pnmcurve.c \ - pnm.c + pnm.c \ + strsep.c pnmcurvedit_SOURCES = \ CurveEditor.cxx \ @@ -13,4 +14,5 @@ pnmcurvedit_SOURCES = \ noinst_HEADERS = \ pnm.h \ + strsep.h \ CurveEditor.H @@ -1,5 +1,4 @@ /* - * * Copyright 2008 Johannes Hofmann <Johannes.Hofmann@gmx.de> * * This software may be used and distributed according to the terms diff --git a/src/pnmcurve.c b/src/pnmcurve.c index c5e2776..0f3985b 100644 --- a/src/pnmcurve.c +++ b/src/pnmcurve.c @@ -1,5 +1,4 @@ /* - * * Copyright 2008 Johannes Hofmann <Johannes.Hofmann@gmx.de> * * This software may be used and distributed according to the terms @@ -13,6 +12,7 @@ #include <gsl/gsl_spline.h> +#include "strsep.h" #include "pnm.h" typedef struct { diff --git a/src/pnmcurvedit.cxx b/src/pnmcurvedit.cxx index c4918e2..abb4fe3 100644 --- a/src/pnmcurvedit.cxx +++ b/src/pnmcurvedit.cxx @@ -12,6 +12,7 @@ #include <FL/Fl.H> #include <FL/Fl_Double_Window.H> +#include "strsep.h" #include "CurveEditor.H" static CurveEditor *ce; diff --git a/src/strsep.c b/src/strsep.c new file mode 100644 index 0000000..999bd3b --- /dev/null +++ b/src/strsep.c @@ -0,0 +1,70 @@ +/* Copyright (C) 1992, 93, 96, 97, 98, 99, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include "../config.h" + +#ifndef HAVE_STRSEP + +#include "strsep.h" + +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 diff --git a/src/strsep.h b/src/strsep.h new file mode 100644 index 0000000..28295ba --- /dev/null +++ b/src/strsep.h @@ -0,0 +1,12 @@ +/* + * Copyright 2008 Johannes Hofmann <Johannes.Hofmann@gmx.de> + * + * This software may be used and distributed according to the terms + * of the GNU General Public License, incorporated herein by reference. + */ + +#include "../config.h" + +#ifndef HAVE_STRSEP +char * strsep (char **stringp, const char *delim); +#endif |
