summaryrefslogtreecommitdiffstats
path: root/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch
diff options
context:
space:
mode:
Diffstat (limited to 'rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch')
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/.libs/apr_strmatch.obin0 -> 10112 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/Makefile8
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/Makefile.in8
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.c118
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.obin0 -> 10128 bytes
6 files changed, 146 insertions, 0 deletions
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/.libs/apr_strmatch.o b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/.libs/apr_strmatch.o
new file mode 100644
index 00000000..1883ca4e
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/.libs/apr_strmatch.o
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/Makefile b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/Makefile
new file mode 100644
index 00000000..07be58a7
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/Makefile
@@ -0,0 +1,8 @@
+
+
+INCLUDES = -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include/private -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib
+
+TARGETS = apr_strmatch.lo
+
+# bring in rules.mk for standard functionality
+include /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/build/rules.mk
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/Makefile.in b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/Makefile.in
new file mode 100644
index 00000000..27304640
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/Makefile.in
@@ -0,0 +1,8 @@
+VPATH = @srcdir@
+
+INCLUDES = @APRUTIL_PRIV_INCLUDES@ @APR_INCLUDES@ @APRUTIL_INCLUDES@
+
+TARGETS = apr_strmatch.lo
+
+# bring in rules.mk for standard functionality
+@INCLUDE_RULES@
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.c b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.c
new file mode 100644
index 00000000..37364428
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.c
@@ -0,0 +1,118 @@
+/* Copyright 2002-2005 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_strmatch.h"
+#include "apr_lib.h"
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+
+#define NUM_CHARS 256
+
+/*
+ * String searching functions
+ */
+static const char *match_no_op(const apr_strmatch_pattern *this_pattern,
+ const char *s, apr_size_t slen)
+{
+ return s;
+}
+
+static const char *match_boyer_moore_horspool(
+ const apr_strmatch_pattern *this_pattern,
+ const char *s, apr_size_t slen)
+{
+ const char *s_end = s + slen;
+ int *shift = (int *)(this_pattern->context);
+ const char *s_next = s + this_pattern->length - 1;
+ const char *p_start = this_pattern->pattern;
+ const char *p_end = p_start + this_pattern->length - 1;
+ while (s_next < s_end) {
+ const char *s_tmp = s_next;
+ const char *p_tmp = p_end;
+ while (*s_tmp == *p_tmp) {
+ p_tmp--;
+ if (p_tmp < p_start) {
+ return s_tmp;
+ }
+ s_tmp--;
+ }
+ s_next += shift[(int)*((const unsigned char *)s_next)];
+ }
+ return NULL;
+}
+
+static const char *match_boyer_moore_horspool_nocase(
+ const apr_strmatch_pattern *this_pattern,
+ const char *s, apr_size_t slen)
+{
+ const char *s_end = s + slen;
+ int *shift = (int *)(this_pattern->context);
+ const char *s_next = s + this_pattern->length - 1;
+ const char *p_start = this_pattern->pattern;
+ const char *p_end = p_start + this_pattern->length - 1;
+ while (s_next < s_end) {
+ const char *s_tmp = s_next;
+ const char *p_tmp = p_end;
+ while (apr_tolower(*s_tmp) == apr_tolower(*p_tmp)) {
+ p_tmp--;
+ if (p_tmp < p_start) {
+ return s_tmp;
+ }
+ s_tmp--;
+ }
+ s_next += shift[(unsigned char)apr_tolower(*s_next)];
+ }
+ return NULL;
+}
+
+APU_DECLARE(const apr_strmatch_pattern *) apr_strmatch_precompile(
+ apr_pool_t *p, const char *s,
+ int case_sensitive)
+{
+ apr_strmatch_pattern *pattern;
+ apr_size_t i;
+ int *shift;
+
+ pattern = apr_palloc(p, sizeof(*pattern));
+ pattern->pattern = s;
+ pattern->length = strlen(s);
+ if (pattern->length == 0) {
+ pattern->compare = match_no_op;
+ pattern->context = NULL;
+ return pattern;
+ }
+
+ shift = (int *)apr_palloc(p, sizeof(int) * NUM_CHARS);
+ for (i = 0; i < NUM_CHARS; i++) {
+ shift[i] = pattern->length;
+ }
+ if (case_sensitive) {
+ pattern->compare = match_boyer_moore_horspool;
+ for (i = 0; i < pattern->length - 1; i++) {
+ shift[(unsigned char)s[i]] = pattern->length - i - 1;
+ }
+ }
+ else {
+ pattern->compare = match_boyer_moore_horspool_nocase;
+ for (i = 0; i < pattern->length - 1; i++) {
+ shift[(unsigned char)apr_tolower(s[i])] = pattern->length - i - 1;
+ }
+ }
+ pattern->context = shift;
+
+ return pattern;
+}
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.lo b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.lo
new file mode 100644
index 00000000..16e51e05
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.lo
@@ -0,0 +1,12 @@
+# apr_strmatch.lo - a libtool object file
+# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/apr_strmatch.o'
+
+# Name of the non-PIC object.
+non_pic_object='apr_strmatch.o'
+
diff --git a/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.o b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.o
new file mode 100644
index 00000000..d72bcfb9
--- /dev/null
+++ b/rubbos/app/httpd-2.0.64/srclib/apr-util/strmatch/apr_strmatch.o
Binary files differ