summaryrefslogtreecommitdiff
path: root/udev_utils_string.c
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@suse.de>2006-08-24 09:03:15 +0200
committerKay Sievers <kay.sievers@suse.de>2006-08-24 09:03:15 +0200
commitcea61f5c0303d7e2f0886688e789c091d7e4b9e2 (patch)
treefb2ac17552f7f48d595270facc0ea7381a068029 /udev_utils_string.c
parent34bb5d057c99fa433392e0d5c17f604c8c111381 (diff)
use fnmatch() instead of our own pattern match code
Diffstat (limited to 'udev_utils_string.c')
-rw-r--r--udev_utils_string.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/udev_utils_string.c b/udev_utils_string.c
index 5aebfed523..225e198587 100644
--- a/udev_utils_string.c
+++ b/udev_utils_string.c
@@ -32,59 +32,6 @@
#include "udev.h"
-/* compare string with pattern (like fnmatch(), supports * ? [0-9] [!A-Z]) */
-int strcmp_pattern(const char *p, const char *s)
-{
- if (s[0] == '\0') {
- while (p[0] == '*')
- p++;
- return (p[0] != '\0');
- }
- switch (p[0]) {
- case '[':
- {
- int not = 0;
- p++;
- if (p[0] == '!') {
- not = 1;
- p++;
- }
- while ((p[0] != '\0') && (p[0] != ']')) {
- int match = 0;
- if (p[1] == '-') {
- if ((s[0] >= p[0]) && (s[0] <= p[2]))
- match = 1;
- p += 3;
- } else {
- match = (p[0] == s[0]);
- p++;
- }
- if (match ^ not) {
- while ((p[0] != '\0') && (p[0] != ']'))
- p++;
- if (p[0] == ']')
- return strcmp_pattern(p+1, s+1);
- }
- }
- }
- break;
- case '*':
- if (strcmp_pattern(p, s+1))
- return strcmp_pattern(p+1, s);
- return 0;
- case '\0':
- if (s[0] == '\0') {
- return 0;
- }
- break;
- default:
- if ((p[0] == s[0]) || (p[0] == '?'))
- return strcmp_pattern(p+1, s+1);
- break;
- }
- return 1;
-}
-
int string_is_true(const char *str)
{
if (strcasecmp(str, "true") == 0)