~ubuntu-branches/ubuntu/natty/gnupg2/natty-security

« back to all changes in this revision

Viewing changes to common/strsep.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Urlichs
  • Date: 2005-12-08 22:13:21 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20051208221321-4rvs2vu835iam5wv
Tags: 1.9.19-2
* Convert debian/changelog to UTF-8.
* Put gnupg-agent and gpgsm lintian overrides in the respectively
  right package.  Closes: #335066
* Added debhelper tokens to maintainer scripts.
* xsession fixes:
  o Added host name to gpg-agent PID file name.  Closes: #312717
  o Fixed xsession script to be able to run under zsh.  Closes: #308516
  o Don't run gpg-agent if one is already running.  Closes: #336480
* debian/control:
  o Fixed package description of gpgsm package.  Closes: #299842
  o Added mention of gpg-agent to description of gnupg-agent package.
    Closes: #304355
* Thanks to Peter Eisentraut <petere@debian.org> for all of the above.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* strsep.c - Replacement for strsep().
2
 
 * Copyright (C) 1992, 1993, 1996, 1997, 1998, 1999,
3
 
 *               2004 Free Software Foundation, Inc.
4
 
 *
5
 
 * This file is part of the GNU C Library.
6
 
 *
7
 
 * The GNU C Library is free software; you can redistribute it and/or
8
 
 * modify it under the terms of the GNU Lesser General Public
9
 
 * License as published by the Free Software Foundation; either
10
 
 * version 2.1 of the License, or (at your option) any later version.
11
 
 *
12
 
 * The GNU C Library is distributed in the hope that it will be useful,
13
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 
 * Lesser General Public License for more details.
16
 
 *
17
 
 * You should have received a copy of the GNU Lesser General Public
18
 
 * License along with the GNU C Library; if not, write to the Free
19
 
 * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20
 
 * 02111-1307 USA.  
21
 
 */
22
 
 
23
 
/* Code taken from glibc-2.3.2/sysdeps/generic/strsep.c and slightly
24
 
   modified for use with GnuPG. */
25
 
 
26
 
#ifdef HAVE_CONFIG_H
27
 
#include <config.h>
28
 
#endif
29
 
#include <stdio.h>
30
 
#include <string.h>
31
 
 
32
 
char *
33
 
strsep (char **stringp, const char *delim)
34
 
{
35
 
  char *begin, *end;
36
 
 
37
 
  begin = *stringp;
38
 
  if (begin == NULL)
39
 
    return NULL;
40
 
 
41
 
  /* A frequent case is when the delimiter string contains only one
42
 
     character.  Here we don't need to call the expensive `strpbrk'
43
 
     function and instead work using `strchr'.  */
44
 
  if (delim[0] == '\0' || delim[1] == '\0')
45
 
    {
46
 
      char ch = delim[0];
47
 
 
48
 
      if (ch == '\0')
49
 
        end = NULL;
50
 
      else
51
 
        {
52
 
          if (*begin == ch)
53
 
            end = begin;
54
 
          else if (*begin == '\0')
55
 
            end = NULL;
56
 
          else
57
 
            end = strchr (begin + 1, ch);
58
 
        }
59
 
    }
60
 
  else
61
 
    /* Find the end of the token.  */
62
 
    end = strpbrk (begin, delim);
63
 
 
64
 
  if (end)
65
 
    {
66
 
      /* Terminate the token and set *STRINGP past NUL character.  */
67
 
      *end++ = '\0';
68
 
      *stringp = end;
69
 
    }
70
 
  else
71
 
    /* No more delimiters; this is the last token.  */
72
 
    *stringp = NULL;
73
 
 
74
 
  return begin;
75
 
}
76