projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
user-manual: List wolfSSL as potential dependency
[privoxy.git]
/
ssplit.c
diff --git
a/ssplit.c
b/ssplit.c
index
b0da451
..
ec0f1db
100644
(file)
--- a/
ssplit.c
+++ b/
ssplit.c
@@
-1,12
+1,11
@@
-const char ssplit_rcs[] = "$Id: ssplit.c,v 1.13 2012/03/09 16:23:50 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/ssplit.c,v $
*
* Purpose : A function to split a string at specified delimiters.
*
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/ssplit.c,v $
*
* Purpose : A function to split a string at specified delimiters.
*
- * Copyright : Written by and Copyright (C) 2001
the SourceForg
e
- * Privoxy team. http://www.privoxy.org/
+ * Copyright : Written by and Copyright (C) 2001
-2012 th
e
+ * Privoxy team. http
s
://www.privoxy.org/
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
*
* Based on the Internet Junkbuster originally written
* by and Copyright (C) 1997 Anonymous Coders and
@@
-41,12
+40,6
@@
const char ssplit_rcs[] = "$Id: ssplit.c,v 1.13 2012/03/09 16:23:50 fabiankeil E
#include "ssplit.h"
#include "miscutil.h"
#include "ssplit.h"
#include "miscutil.h"
-const char ssplit_h_rcs[] = SSPLIT_H_VERSION;
-
-/* Define this for lots of debugging information to stdout */
-#undef SSPLIT_VERBOSE
-/* #define SSPLIT_VERBOSE 1 */
-
/*********************************************************************
*
/*********************************************************************
*
@@
-74,6
+67,12
@@
int ssplit(char *str, const char *delim, char *vec[], size_t vec_len)
unsigned char is_delim[256];
unsigned char char_type;
int vec_count = 0;
unsigned char is_delim[256];
unsigned char char_type;
int vec_count = 0;
+ enum char_type {
+ WANTED = 0,
+ SEPARATOR = 1,
+ TERMINATOR = 2,
+ };
+
if (!str)
{
if (!str)
{
@@
-92,23
+91,23
@@
int ssplit(char *str, const char *delim, char *vec[], size_t vec_len)
while (*delim)
{
while (*delim)
{
- is_delim[(unsigned)(unsigned char)*delim++] =
1; /* separator */
+ is_delim[(unsigned)(unsigned char)*delim++] =
SEPARATOR;
}
}
- is_delim[(unsigned)(unsigned char)'\0'] =
2; /* terminator */
- is_delim[(unsigned)(unsigned char)'\n'] =
2; /* terminator */
+ is_delim[(unsigned)(unsigned char)'\0'] =
TERMINATOR;
+ is_delim[(unsigned)(unsigned char)'\n'] =
TERMINATOR;
/* Parse string */
/* Skip leading separators. XXX: Why do they matter? */
/* Parse string */
/* Skip leading separators. XXX: Why do they matter? */
- while (is_delim[(unsigned)(unsigned char)*str] ==
1
)
+ while (is_delim[(unsigned)(unsigned char)*str] ==
SEPARATOR
)
{
str++;
}
/* The first pointer is the beginning of string */
{
str++;
}
/* The first pointer is the beginning of string */
- if (is_delim[(unsigned)(unsigned char)*str] ==
0
)
+ if (is_delim[(unsigned)(unsigned char)*str] ==
WANTED
)
{
/*
* The first character in this field is not a
{
/*
* The first character in this field is not a
@@
-118,12
+117,12
@@
int ssplit(char *str, const char *delim, char *vec[], size_t vec_len)
{
return(-1); /* overflow */
}
{
return(-1); /* overflow */
}
- vec[vec_count++] =
(char *)
str;
+ vec[vec_count++] = str;
}
}
- while ((char_type = is_delim[(unsigned)(unsigned char)*str]) !=
2
)
+ while ((char_type = is_delim[(unsigned)(unsigned char)*str]) !=
TERMINATOR
)
{
{
- if (char_type ==
1
)
+ if (char_type ==
SEPARATOR
)
{
/* the char is a separator */
{
/* the char is a separator */
@@
-131,7
+130,7
@@
int ssplit(char *str, const char *delim, char *vec[], size_t vec_len)
*str++ = '\0';
/* Check if we want to save this field */
*str++ = '\0';
/* Check if we want to save this field */
- if (is_delim[(unsigned)(unsigned char)*str] ==
0
)
+ if (is_delim[(unsigned)(unsigned char)*str] ==
WANTED
)
{
/*
* The first character in this field is not a
{
/*
* The first character in this field is not a
@@
-141,7
+140,7
@@
int ssplit(char *str, const char *delim, char *vec[], size_t vec_len)
{
return(-1); /* overflow */
}
{
return(-1); /* overflow */
}
- vec[vec_count++] =
(char *)
str;
+ vec[vec_count++] = str;
}
}
else
}
}
else
@@
-149,18
+148,8
@@
int ssplit(char *str, const char *delim, char *vec[], size_t vec_len)
str++;
}
}
str++;
}
}
- *str = '\0'; /* null terminate the substring */
-
-#ifdef SSPLIT_VERBOSE
- {
- int i;
- printf("dump %d strings\n", vec_count);
- for (i = 0; i < vec_count; i++)
- {
- printf("%d '%s'\n", i, vec[i]);
- }
- }
-#endif /* def SSPLIT_VERBOSE */
+ /* null terminate the substring */
+ *str = '\0';
return(vec_count);
}
return(vec_count);
}