aboutsummaryrefslogtreecommitdiff
path: root/posix/fnmatch_loop.c
diff options
context:
space:
mode:
Diffstat (limited to 'posix/fnmatch_loop.c')
-rw-r--r--posix/fnmatch_loop.c78
1 files changed, 33 insertions, 45 deletions
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index 02a4e90..449e5e0 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -1,5 +1,5 @@
-/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2003,2004,2005
- Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1993,1996,1997,1998,1999,2000,2001,2003,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
@@ -502,31 +502,24 @@ FCT (pattern, string, string_end, no_leading_period, flags)
idx = 0;
elem = hash % table_size;
- if (symb_table[2 * elem] != 0)
+ second = hash % (table_size - 2);
+ while (symb_table[2 * elem] != 0)
{
- second = hash % (table_size - 2) + 1;
-
- do
+ /* First compare the hashing value. */
+ if (symb_table[2 * elem] == hash
+ && c1 == extra[symb_table[2 * elem + 1]]
+ && memcmp (str,
+ &extra[symb_table[2 * elem + 1]
+ + 1], c1) == 0)
{
- /* First compare the hashing value. */
- if (symb_table[2 * elem] == hash
- && (c1
- == extra[symb_table[2 * elem + 1]])
- && memcmp (str,
- &extra[symb_table[2 * elem
- + 1]
- + 1], c1) == 0)
- {
- /* Yep, this is the entry. */
- idx = symb_table[2 * elem + 1];
- idx += 1 + extra[idx];
- break;
- }
-
- /* Next entry. */
- elem += second;
+ /* Yep, this is the entry. */
+ idx = symb_table[2 * elem + 1];
+ idx += 1 + extra[idx];
+ break;
}
- while (symb_table[2 * elem] != 0);
+
+ /* Next entry. */
+ elem += second;
}
if (symb_table[2 * elem] != 0)
@@ -721,30 +714,25 @@ FCT (pattern, string, string_end, no_leading_period, flags)
idx = 0;
elem = hash % table_size;
- if (symb_table[2 * elem] != 0)
+ second = hash % (table_size - 2);
+ while (symb_table[2 * elem] != 0)
{
- second = hash % (table_size - 2) + 1;
-
- do
+ /* First compare the hashing value. */
+ if (symb_table[2 * elem] == hash
+ && (c1
+ == extra[symb_table[2 * elem + 1]])
+ && memcmp (str,
+ &extra[symb_table[2 * elem + 1]
+ + 1], c1) == 0)
{
- /* First compare the hashing value. */
- if (symb_table[2 * elem] == hash
- && (c1
- == extra[symb_table[2 * elem + 1]])
- && memcmp (str,
- &extra[symb_table[2 * elem + 1]
- + 1], c1) == 0)
- {
- /* Yep, this is the entry. */
- idx = symb_table[2 * elem + 1];
- idx += 1 + extra[idx];
- break;
- }
-
- /* Next entry. */
- elem += second;
+ /* Yep, this is the entry. */
+ idx = symb_table[2 * elem + 1];
+ idx += 1 + extra[idx];
+ break;
}
- while (symb_table[2 * elem] != 0);
+
+ /* Next entry. */
+ elem += second;
}
if (symb_table[2 * elem] != 0)