summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorTill Kamppeter <till.kamppeter@gmail.com>2010-08-10 19:07:55 +0200
committerTill Kamppeter <till.kamppeter@gmail.com>2010-08-10 19:07:55 +0200
commitf14f89b26611aa52c15665850e882a7d0b0d6232 (patch)
tree6f805236601df7947aaa71d7d5e3891e2634244e /util.c
parent283a9086c95c9a3fc94cd807f23244ec965bb55a (diff)
foomatic-filters 4.0.5-0ubuntu1
Diffstat (limited to 'util.c')
-rw-r--r--util.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/util.c b/util.c
index cb9b043..9055648 100644
--- a/util.c
+++ b/util.c
@@ -110,7 +110,7 @@ void strlower(char *dest, size_t destlen, const char *src)
int isempty(const char *string)
{
- return string && string[0] == '\0';
+ return !string || string[0] == '\0';
}
const char * strncpy_omit(char* dest, const char* src, size_t n, int (*omit_func)(int))
@@ -137,6 +137,30 @@ int omit_unprintables(int c) { return c>= '\x00' && c <= '\x1f'; }
int omit_shellescapes(int c) { return strchr(shellescapes, c) != NULL; }
int omit_specialchars(int c) { return omit_unprintables(c) || omit_shellescapes(c); }
int omit_whitespace(int c) { return c == ' ' || c == '\t'; }
+int omit_whitespace_newline(int c) { return omit_whitespace(c) || c == '\n'; }
+
+#ifndef HAVE_STRCASESTR
+char *
+strcasestr (const char *haystack, const char *needle)
+{
+ char *p, *startn = 0, *np = 0;
+
+ for (p = haystack; *p; p++) {
+ if (np) {
+ if (toupper(*p) == toupper(*np)) {
+ if (!*++np)
+ return startn;
+ } else
+ np = 0;
+ } else if (toupper(*p) == toupper(*needle)) {
+ np = needle + 1;
+ startn = p;
+ }
+ }
+
+ return 0;
+}
+#endif
size_t strlcpy(char *dest, const char *src, size_t size)
{
@@ -248,6 +272,9 @@ const char * strncpy_tochar(char *dest, const char *src, size_t max, const char
{
const char *psrc = src;
char *pdest = dest;
+ if (!*psrc) {
+ return NULL;
+ }
while (*psrc && --max > 0 && !strchr(stopchars, *psrc)) {
*pdest = *psrc;
pdest++;