From c0b7206652b2852bc574694e7ba07ba1c2acdc00 Mon Sep 17 00:00:00 2001 From: hongbotian Date: Mon, 30 Nov 2015 03:10:21 -0500 Subject: delete app Change-Id: Id4c572809969ebe89e946e88063eaed262cff3f2 Signed-off-by: hongbotian --- .../srclib/apr/strings/.libs/apr_cpystrn.o | Bin 10920 -> 0 bytes .../srclib/apr/strings/.libs/apr_fnmatch.o | Bin 11120 -> 0 bytes .../srclib/apr/strings/.libs/apr_snprintf.o | Bin 82920 -> 0 bytes .../srclib/apr/strings/.libs/apr_strings.o | Bin 23560 -> 0 bytes .../srclib/apr/strings/.libs/apr_strnatcmp.o | Bin 8976 -> 0 bytes .../srclib/apr/strings/.libs/apr_strtok.o | Bin 4880 -> 0 bytes .../app/httpd-2.0.64/srclib/apr/strings/Makefile | 19 - .../httpd-2.0.64/srclib/apr/strings/Makefile.in | 19 - .../httpd-2.0.64/srclib/apr/strings/apr_cpystrn.c | 317 ----- .../httpd-2.0.64/srclib/apr/strings/apr_cpystrn.lo | 12 - .../httpd-2.0.64/srclib/apr/strings/apr_cpystrn.o | Bin 11928 -> 0 bytes .../httpd-2.0.64/srclib/apr/strings/apr_fnmatch.c | 249 ---- .../httpd-2.0.64/srclib/apr/strings/apr_fnmatch.lo | 12 - .../httpd-2.0.64/srclib/apr/strings/apr_fnmatch.o | Bin 11120 -> 0 bytes .../httpd-2.0.64/srclib/apr/strings/apr_snprintf.c | 1311 -------------------- .../srclib/apr/strings/apr_snprintf.lo | 12 - .../httpd-2.0.64/srclib/apr/strings/apr_snprintf.o | Bin 84056 -> 0 bytes .../httpd-2.0.64/srclib/apr/strings/apr_strings.c | 458 ------- .../httpd-2.0.64/srclib/apr/strings/apr_strings.lo | 12 - .../httpd-2.0.64/srclib/apr/strings/apr_strings.o | Bin 23616 -> 0 bytes .../srclib/apr/strings/apr_strnatcmp.c | 149 --- .../srclib/apr/strings/apr_strnatcmp.lo | 12 - .../srclib/apr/strings/apr_strnatcmp.o | Bin 8920 -> 0 bytes .../httpd-2.0.64/srclib/apr/strings/apr_strtok.c | 56 - .../httpd-2.0.64/srclib/apr/strings/apr_strtok.lo | 12 - .../httpd-2.0.64/srclib/apr/strings/apr_strtok.o | Bin 4832 -> 0 bytes 26 files changed, 2650 deletions(-) delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_cpystrn.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_fnmatch.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_snprintf.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strings.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strnatcmp.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strtok.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/Makefile delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/Makefile.in delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.c delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.lo delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.c delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.lo delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.c delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.lo delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.c delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.lo delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.c delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.lo delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.o delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.c delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.lo delete mode 100644 rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.o (limited to 'rubbos/app/httpd-2.0.64/srclib/apr/strings') diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_cpystrn.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_cpystrn.o deleted file mode 100644 index 1fdff6c6..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_cpystrn.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_fnmatch.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_fnmatch.o deleted file mode 100644 index 099a0e90..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_fnmatch.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_snprintf.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_snprintf.o deleted file mode 100644 index 5f12d9bf..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_snprintf.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strings.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strings.o deleted file mode 100644 index a8b5f40c..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strings.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strnatcmp.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strnatcmp.o deleted file mode 100644 index aceab98d..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strnatcmp.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strtok.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strtok.o deleted file mode 100644 index a772c0f5..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/.libs/apr_strtok.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/Makefile b/rubbos/app/httpd-2.0.64/srclib/apr/strings/Makefile deleted file mode 100644 index 8356451d..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -srcdir = . - - -TARGETS = \ - apr_cpystrn.lo \ - apr_snprintf.lo \ - apr_strnatcmp.lo \ - apr_strings.lo \ - apr_fnmatch.lo \ - apr_strtok.lo - -# bring in rules.mk for standard functionality -include /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/build/apr_rules.mk - -DEFOSDIR=$(INCDIR)/arch/unix -INCDIR=../include -INCLUDES=-I$(INCDIR) -I$(DEFOSDIR) - -# DO NOT REMOVE diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/Makefile.in b/rubbos/app/httpd-2.0.64/srclib/apr/strings/Makefile.in deleted file mode 100644 index aa1e1ee0..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/Makefile.in +++ /dev/null @@ -1,19 +0,0 @@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -TARGETS = \ - apr_cpystrn.lo \ - apr_snprintf.lo \ - apr_strnatcmp.lo \ - apr_strings.lo \ - apr_fnmatch.lo \ - apr_strtok.lo - -# bring in rules.mk for standard functionality -@INCLUDE_RULES@ - -DEFOSDIR=$(INCDIR)/arch/@DEFAULT_OSDIR@ -INCDIR=../include -INCLUDES=-I$(INCDIR) -I$(DEFOSDIR) - -# DO NOT REMOVE diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.c b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.c deleted file mode 100644 index 19eb3905..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.c +++ /dev/null @@ -1,317 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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.h" -#include "apr_strings.h" -#include "apr_private.h" -#include "apr_lib.h" - -#if APR_HAVE_SYS_TYPES_H -#include -#endif -#if APR_HAVE_STRING_H -#include -#endif -#if APR_HAVE_CTYPE_H -#include -#endif - -/* - * Apache's "replacement" for the strncpy() function. We roll our - * own to implement these specific changes: - * (1) strncpy() doesn't always null terminate and we want it to. - * (2) strncpy() null fills, which is bogus, esp. when copy 8byte - * strings into 8k blocks. - * (3) Instead of returning the pointer to the beginning of - * the destination string, we return a pointer to the - * terminating '\0' to allow us to "check" for truncation - * - * apr_cpystrn() follows the same call structure as strncpy(). - */ - -APR_DECLARE(char *) apr_cpystrn(char *dst, const char *src, apr_size_t dst_size) -{ - - char *d, *end; - - if (dst_size == 0) { - return (dst); - } - - d = dst; - end = dst + dst_size - 1; - - for (; d < end; ++d, ++src) { - if (!(*d = *src)) { - return (d); - } - } - - *d = '\0'; /* always null terminate */ - - return (d); -} - - -/* - * This function provides a way to parse a generic argument string - * into a standard argv[] form of argument list. It respects the - * usual "whitespace" and quoteing rules. In the future this could - * be expanded to include support for the apr_call_exec command line - * string processing (including converting '+' to ' ' and doing the - * url processing. It does not currently support this function. - * - * token_context: Context from which pool allocations will occur. - * arg_str: Input argument string for conversion to argv[]. - * argv_out: Output location. This is a pointer to an array - * of pointers to strings (ie. &(char *argv[]). - * This value will be allocated from the contexts - * pool and filled in with copies of the tokens - * found during parsing of the arg_str. - */ -APR_DECLARE(apr_status_t) apr_tokenize_to_argv(const char *arg_str, - char ***argv_out, - apr_pool_t *token_context) -{ - const char *cp; - const char *ct; - char *cleaned, *dirty; - int escaped; - int isquoted, numargs = 0, argnum; - -#define SKIP_WHITESPACE(cp) \ - for ( ; *cp == ' ' || *cp == '\t'; ) { \ - cp++; \ - }; - -#define CHECK_QUOTATION(cp,isquoted) \ - isquoted = 0; \ - if (*cp == '"') { \ - isquoted = 1; \ - cp++; \ - } \ - else if (*cp == '\'') { \ - isquoted = 2; \ - cp++; \ - } - -/* DETERMINE_NEXTSTRING: - * At exit, cp will point to one of the following: NULL, SPACE, TAB or QUOTE. - * NULL implies the argument string has been fully traversed. - */ -#define DETERMINE_NEXTSTRING(cp,isquoted) \ - for ( ; *cp != '\0'; cp++) { \ - if ( (*cp == '\\' && (*(cp+1) == ' ' || *(cp+1) == '\t' || \ - *(cp+1) == '"' || *(cp+1) == '\''))) { \ - cp++; \ - continue; \ - } \ - if ( (!isquoted && (*cp == ' ' || *cp == '\t')) \ - || (isquoted == 1 && *cp == '"') \ - || (isquoted == 2 && *cp == '\'') ) { \ - break; \ - } \ - } - -/* REMOVE_ESCAPE_CHARS: - * Compresses the arg string to remove all of the '\' escape chars. - * The final argv strings should not have any extra escape chars in it. - */ -#define REMOVE_ESCAPE_CHARS(cleaned, dirty, escaped) \ - escaped = 0; \ - while(*dirty) { \ - if (!escaped && *dirty == '\\') { \ - escaped = 1; \ - } \ - else { \ - escaped = 0; \ - *cleaned++ = *dirty; \ - } \ - ++dirty; \ - } \ - *cleaned = 0; /* last line of macro... */ - - cp = arg_str; - SKIP_WHITESPACE(cp); - ct = cp; - - /* This is ugly and expensive, but if anyone wants to figure a - * way to support any number of args without counting and - * allocating, please go ahead and change the code. - * - * Must account for the trailing NULL arg. - */ - numargs = 1; - while (*ct != '\0') { - CHECK_QUOTATION(ct, isquoted); - DETERMINE_NEXTSTRING(ct, isquoted); - if (*ct != '\0') { - ct++; - } - numargs++; - SKIP_WHITESPACE(ct); - } - *argv_out = apr_palloc(token_context, numargs * sizeof(char*)); - - /* determine first argument */ - for (argnum = 0; argnum < (numargs-1); argnum++) { - SKIP_WHITESPACE(cp); - CHECK_QUOTATION(cp, isquoted); - ct = cp; - DETERMINE_NEXTSTRING(cp, isquoted); - cp++; - (*argv_out)[argnum] = apr_palloc(token_context, cp - ct); - apr_cpystrn((*argv_out)[argnum], ct, cp - ct); - cleaned = dirty = (*argv_out)[argnum]; - REMOVE_ESCAPE_CHARS(cleaned, dirty, escaped); - } - (*argv_out)[argnum] = NULL; - - return APR_SUCCESS; -} - -/* Filepath_name_get returns the final element of the pathname. - * Using the current platform's filename syntax. - * "/foo/bar/gum" -> "gum" - * "/foo/bar/gum/" -> "" - * "gum" -> "gum" - * "wi\\n32\\stuff" -> "stuff - * - * Corrected Win32 to accept "a/b\\stuff", "a:stuff" - */ - -APR_DECLARE(const char *) apr_filepath_name_get(const char *pathname) -{ - const char path_separator = '/'; - const char *s = strrchr(pathname, path_separator); - -#ifdef WIN32 - const char path_separator_win = '\\'; - const char drive_separator_win = ':'; - const char *s2 = strrchr(pathname, path_separator_win); - - if (s2 > s) s = s2; - - if (!s) s = strrchr(pathname, drive_separator_win); -#endif - - return s ? ++s : pathname; -} - -/* deprecated */ -APR_DECLARE(const char *) apr_filename_of_pathname(const char *pathname) -{ - return apr_filepath_name_get(pathname); -} - -/* length of dest assumed >= length of src - * collapse in place (src == dest) is legal. - * returns terminating null ptr to dest string. - */ -APR_DECLARE(char *) apr_collapse_spaces(char *dest, const char *src) -{ - while (*src) { - if (!apr_isspace(*src)) - *dest++ = *src; - ++src; - } - *dest = 0; - return (dest); -} - -#if !APR_HAVE_STRDUP -char *strdup(const char *str) -{ - char *sdup; - size_t len = strlen(str) + 1; - - sdup = (char *) malloc(len); - memcpy(sdup, str, len); - - return sdup; -} -#endif - -/* The following two routines were donated for SVR4 by Andreas Vogel */ -#if (!APR_HAVE_STRCASECMP && !APR_HAVE_STRICMP) -int strcasecmp(const char *a, const char *b) -{ - const char *p = a; - const char *q = b; - for (p = a, q = b; *p && *q; p++, q++) { - int diff = apr_tolower(*p) - apr_tolower(*q); - if (diff) - return diff; - } - if (*p) - return 1; /* p was longer than q */ - if (*q) - return -1; /* p was shorter than q */ - return 0; /* Exact match */ -} - -#endif - -#if (!APR_HAVE_STRNCASECMP && !APR_HAVE_STRNICMP) -int strncasecmp(const char *a, const char *b, size_t n) -{ - const char *p = a; - const char *q = b; - - for (p = a, q = b; /*NOTHING */ ; p++, q++) { - int diff; - if (p == a + n) - return 0; /* Match up to n characters */ - if (!(*p && *q)) - return *p - *q; - diff = apr_tolower(*p) - apr_tolower(*q); - if (diff) - return diff; - } - /*NOTREACHED */ -} -#endif - -/* The following routine was donated for UTS21 by dwd@bell-labs.com */ -#if (!APR_HAVE_STRSTR) -char *strstr(char *s1, char *s2) -{ - char *p1, *p2; - if (*s2 == '\0') { - /* an empty s2 */ - return(s1); - } - while((s1 = strchr(s1, *s2)) != NULL) { - /* found first character of s2, see if the rest matches */ - p1 = s1; - p2 = s2; - while (*++p1 == *++p2) { - if (*p1 == '\0') { - /* both strings ended together */ - return(s1); - } - } - if (*p2 == '\0') { - /* second string ended, a match */ - break; - } - /* didn't find a match here, try starting at next character in s1 */ - s1++; - } - return(s1); -} -#endif - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.lo b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.lo deleted file mode 100644 index 85222d14..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.lo +++ /dev/null @@ -1,12 +0,0 @@ -# apr_cpystrn.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_cpystrn.o' - -# Name of the non-PIC object. -non_pic_object='apr_cpystrn.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.o deleted file mode 100644 index bbe1f13e..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_cpystrn.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.c b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.c deleted file mode 100644 index 78b1cb51..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.c +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright (c) 1989, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Guido van Rossum. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)fnmatch.c 8.2 (Berkeley) 4/16/94"; -#endif /* LIBC_SCCS and not lint */ - -/* - * Function fnmatch() as specified in POSIX 1003.2-1992, section B.6. - * Compares a filename or pathname to a pattern. - */ -#ifndef WIN32 -#include "apr_private.h" -#endif -#include "apr_fnmatch.h" -#include "apr_lib.h" -#include -#if APR_HAVE_CTYPE_H -# include -#endif - -#define EOS '\0' - -static const char *rangematch(const char *, int, int); - -APR_DECLARE(apr_status_t) apr_fnmatch(const char *pattern, const char *string, int flags) -{ - const char *stringstart; - char c, test; - - for (stringstart = string;;) { - switch (c = *pattern++) { - case EOS: - return (*string == EOS ? APR_SUCCESS : APR_FNM_NOMATCH); - case '?': - if (*string == EOS) { - return (APR_FNM_NOMATCH); - } - if (*string == '/' && (flags & APR_FNM_PATHNAME)) { - return (APR_FNM_NOMATCH); - } - if (*string == '.' && (flags & APR_FNM_PERIOD) && - (string == stringstart || - ((flags & APR_FNM_PATHNAME) && *(string - 1) == '/'))) { - return (APR_FNM_NOMATCH); - } - ++string; - break; - case '*': - c = *pattern; - /* Collapse multiple stars. */ - while (c == '*') { - c = *++pattern; - } - - if (*string == '.' && (flags & APR_FNM_PERIOD) && - (string == stringstart || - ((flags & APR_FNM_PATHNAME) && *(string - 1) == '/'))) { - return (APR_FNM_NOMATCH); - } - - /* Optimize for pattern with * at end or before /. */ - if (c == EOS) { - if (flags & APR_FNM_PATHNAME) { - return (strchr(string, '/') == NULL ? APR_SUCCESS : APR_FNM_NOMATCH); - } - else { - return (APR_SUCCESS); - } - } - else if (c == '/' && flags & APR_FNM_PATHNAME) { - if ((string = strchr(string, '/')) == NULL) { - return (APR_FNM_NOMATCH); - } - break; - } - - /* General case, use recursion. */ - while ((test = *string) != EOS) { - if (!apr_fnmatch(pattern, string, flags & ~APR_FNM_PERIOD)) { - return (APR_SUCCESS); - } - if (test == '/' && flags & APR_FNM_PATHNAME) { - break; - } - ++string; - } - return (APR_FNM_NOMATCH); - case '[': - if (*string == EOS) { - return (APR_FNM_NOMATCH); - } - if (*string == '/' && flags & APR_FNM_PATHNAME) { - return (APR_FNM_NOMATCH); - } - if (*string == '.' && (flags & APR_FNM_PERIOD) && - (string == stringstart || - ((flags & APR_FNM_PATHNAME) && *(string - 1) == '/'))) { - return (APR_FNM_NOMATCH); - } - if ((pattern = rangematch(pattern, *string, flags)) == NULL) { - return (APR_FNM_NOMATCH); - } - ++string; - break; - case '\\': - if (!(flags & APR_FNM_NOESCAPE)) { - if ((c = *pattern++) == EOS) { - c = '\\'; - --pattern; - } - } - /* FALLTHROUGH */ - default: - if (flags & APR_FNM_CASE_BLIND) { - if (apr_tolower(c) != apr_tolower(*string)) { - return (APR_FNM_NOMATCH); - } - } - else if (c != *string) { - return (APR_FNM_NOMATCH); - } - string++; - break; - } - /* NOTREACHED */ - } -} - -static const char *rangematch(const char *pattern, int test, int flags) -{ - int negate, ok; - char c, c2; - - /* - * A bracket expression starting with an unquoted circumflex - * character produces unspecified results (IEEE 1003.2-1992, - * 3.13.2). This implementation treats it like '!', for - * consistency with the regular expression syntax. - * J.T. Conklin (conklin@ngai.kaleida.com) - */ - if ((negate = (*pattern == '!' || *pattern == '^'))) { - ++pattern; - } - - for (ok = 0; (c = *pattern++) != ']';) { - if (c == '\\' && !(flags & APR_FNM_NOESCAPE)) { - c = *pattern++; - } - if (c == EOS) { - return (NULL); - } - if (*pattern == '-' && (c2 = *(pattern + 1)) != EOS && c2 != ']') { - pattern += 2; - if (c2 == '\\' && !(flags & APR_FNM_NOESCAPE)) { - c2 = *pattern++; - } - if (c2 == EOS) { - return (NULL); - } - if ((c <= test && test <= c2) - || ((flags & APR_FNM_CASE_BLIND) - && ((apr_tolower(c) <= apr_tolower(test)) - && (apr_tolower(test) <= apr_tolower(c2))))) { - ok = 1; - } - } - else if ((c == test) - || ((flags & APR_FNM_CASE_BLIND) - && (apr_tolower(c) == apr_tolower(test)))) { - ok = 1; - } - } - return (ok == negate ? NULL : pattern); -} - - -/* This function is an Apache addition */ -/* return non-zero if pattern has any glob chars in it */ -APR_DECLARE(int) apr_fnmatch_test(const char *pattern) -{ - int nesting; - - nesting = 0; - while (*pattern) { - switch (*pattern) { - case '?': - case '*': - return 1; - - case '\\': - if (*pattern++ == '\0') { - return 0; - } - break; - - case '[': /* '[' is only a glob if it has a matching ']' */ - ++nesting; - break; - - case ']': - if (nesting) { - return 1; - } - break; - } - ++pattern; - } - return 0; -} - -/* Deprecated */ -APR_DECLARE(int) apr_is_fnmatch(const char *pattern) -{ - return apr_fnmatch_test(pattern); -} diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.lo b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.lo deleted file mode 100644 index bdc2f218..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.lo +++ /dev/null @@ -1,12 +0,0 @@ -# apr_fnmatch.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_fnmatch.o' - -# Name of the non-PIC object. -non_pic_object='apr_fnmatch.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.o deleted file mode 100644 index 19e8a057..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_fnmatch.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.c b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.c deleted file mode 100644 index 776890bb..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.c +++ /dev/null @@ -1,1311 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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.h" -#include "apr_private.h" - -#include "apr_lib.h" -#include "apr_strings.h" -#include "apr_network_io.h" -#include "apr_portable.h" -#include -#if APR_HAVE_CTYPE_H -#include -#endif -#if APR_HAVE_NETINET_IN_H -#include -#endif -#if APR_HAVE_SYS_SOCKET_H -#include -#endif -#if APR_HAVE_ARPA_INET_H -#include -#endif -#if APR_HAVE_LIMITS_H -#include -#endif -#if APR_HAVE_STRING_H -#include -#endif - -typedef enum { - NO = 0, YES = 1 -} boolean_e; - -#ifndef FALSE -#define FALSE 0 -#endif -#ifndef TRUE -#define TRUE 1 -#endif -#define NUL '\0' -#define WIDE_INT long - -typedef WIDE_INT wide_int; -typedef unsigned WIDE_INT u_wide_int; -typedef apr_int64_t widest_int; -#ifdef __TANDEM -/* Although Tandem supports "long long" there is no unsigned variant. */ -typedef unsigned long u_widest_int; -#else -typedef apr_uint64_t u_widest_int; -#endif -typedef int bool_int; - -static const char null_string[] = "(null)"; -#define S_NULL ((char *)null_string) -#define S_NULL_LEN 6 - -#define FLOAT_DIGITS 6 -#define EXPONENT_LENGTH 10 - -/* - * NUM_BUF_SIZE is the size of the buffer used for arithmetic conversions - * - * NOTICE: this is a magic number; do not decrease it - */ -#define NUM_BUF_SIZE 512 - -/* - * cvt - IEEE floating point formatting routines. - * Derived from UNIX V7, Copyright(C) Caldera International Inc. - */ - -/* - * apr_ecvt converts to decimal - * the number of digits is specified by ndigit - * decpt is set to the position of the decimal point - * sign is set to 0 for positive, 1 for negative - */ - -#define NDIG 80 - -/* buf must have at least NDIG bytes */ -static char *apr_cvt(double arg, int ndigits, int *decpt, int *sign, - int eflag, char *buf) -{ - register int r2; - double fi, fj; - register char *p, *p1; - - if (ndigits >= NDIG - 1) - ndigits = NDIG - 2; - r2 = 0; - *sign = 0; - p = &buf[0]; - if (arg < 0) { - *sign = 1; - arg = -arg; - } - arg = modf(arg, &fi); - p1 = &buf[NDIG]; - /* - * Do integer part - */ - if (fi != 0) { - p1 = &buf[NDIG]; - while (p1 > &buf[0] && fi != 0) { - fj = modf(fi / 10, &fi); - *--p1 = (int) ((fj + .03) * 10) + '0'; - r2++; - } - while (p1 < &buf[NDIG]) - *p++ = *p1++; - } - else if (arg > 0) { - while ((fj = arg * 10) < 1) { - arg = fj; - r2--; - } - } - p1 = &buf[ndigits]; - if (eflag == 0) - p1 += r2; - if (p1 < &buf[0]) { - *decpt = -ndigits; - buf[0] = '\0'; - return (buf); - } - *decpt = r2; - while (p <= p1 && p < &buf[NDIG]) { - arg *= 10; - arg = modf(arg, &fj); - *p++ = (int) fj + '0'; - } - if (p1 >= &buf[NDIG]) { - buf[NDIG - 1] = '\0'; - return (buf); - } - p = p1; - *p1 += 5; - while (*p1 > '9') { - *p1 = '0'; - if (p1 > buf) - ++ * --p1; - else { - *p1 = '1'; - (*decpt)++; - if (eflag == 0) { - if (p > buf) - *p = '0'; - p++; - } - } - } - *p = '\0'; - return (buf); -} - -static char *apr_ecvt(double arg, int ndigits, int *decpt, int *sign, char *buf) -{ - return (apr_cvt(arg, ndigits, decpt, sign, 1, buf)); -} - -static char *apr_fcvt(double arg, int ndigits, int *decpt, int *sign, char *buf) -{ - return (apr_cvt(arg, ndigits, decpt, sign, 0, buf)); -} - -/* - * apr_gcvt - Floating output conversion to - * minimal length string - */ - -static char *apr_gcvt(double number, int ndigit, char *buf, boolean_e altform) -{ - int sign, decpt; - register char *p1, *p2; - register int i; - char buf1[NDIG]; - - p1 = apr_ecvt(number, ndigit, &decpt, &sign, buf1); - p2 = buf; - if (sign) - *p2++ = '-'; - for (i = ndigit - 1; i > 0 && p1[i] == '0'; i--) - ndigit--; - if ((decpt >= 0 && decpt - ndigit > 4) - || (decpt < 0 && decpt < -3)) { /* use E-style */ - decpt--; - *p2++ = *p1++; - *p2++ = '.'; - for (i = 1; i < ndigit; i++) - *p2++ = *p1++; - *p2++ = 'e'; - if (decpt < 0) { - decpt = -decpt; - *p2++ = '-'; - } - else - *p2++ = '+'; - if (decpt / 100 > 0) - *p2++ = decpt / 100 + '0'; - if (decpt / 10 > 0) - *p2++ = (decpt % 100) / 10 + '0'; - *p2++ = decpt % 10 + '0'; - } - else { - if (decpt <= 0) { - if (*p1 != '0') - *p2++ = '.'; - while (decpt < 0) { - decpt++; - *p2++ = '0'; - } - } - for (i = 1; i <= ndigit; i++) { - *p2++ = *p1++; - if (i == decpt) - *p2++ = '.'; - } - if (ndigit < decpt) { - while (ndigit++ < decpt) - *p2++ = '0'; - *p2++ = '.'; - } - } - if (p2[-1] == '.' && !altform) - p2--; - *p2 = '\0'; - return (buf); -} - -/* - * The INS_CHAR macro inserts a character in the buffer and writes - * the buffer back to disk if necessary - * It uses the char pointers sp and bep: - * sp points to the next available character in the buffer - * bep points to the end-of-buffer+1 - * While using this macro, note that the nextb pointer is NOT updated. - * - * NOTE: Evaluation of the c argument should not have any side-effects - */ -#define INS_CHAR(c, sp, bep, cc) \ -{ \ - if (sp) { \ - if (sp >= bep) { \ - vbuff->curpos = sp; \ - if (flush_func(vbuff)) \ - return -1; \ - sp = vbuff->curpos; \ - bep = vbuff->endpos; \ - } \ - *sp++ = (c); \ - } \ - cc++; \ -} - -#define NUM(c) (c - '0') - -#define STR_TO_DEC(str, num) \ - num = NUM(*str++); \ - while (apr_isdigit(*str)) \ - { \ - num *= 10 ; \ - num += NUM(*str++); \ - } - -/* - * This macro does zero padding so that the precision - * requirement is satisfied. The padding is done by - * adding '0's to the left of the string that is going - * to be printed. We don't allow precision to be large - * enough that we continue past the start of s. - * - * NOTE: this makes use of the magic info that s is - * always based on num_buf with a size of NUM_BUF_SIZE. - */ -#define FIX_PRECISION(adjust, precision, s, s_len) \ - if (adjust) { \ - int p = precision < NUM_BUF_SIZE - 1 ? precision : NUM_BUF_SIZE - 1; \ - while (s_len < p) \ - { \ - *--s = '0'; \ - s_len++; \ - } \ - } - -/* - * Macro that does padding. The padding is done by printing - * the character ch. - */ -#define PAD(width, len, ch) \ -do \ -{ \ - INS_CHAR(ch, sp, bep, cc); \ - width--; \ -} \ -while (width > len) - -/* - * Prefix the character ch to the string str - * Increase length - * Set the has_prefix flag - */ -#define PREFIX(str, length, ch) \ - *--str = ch; \ - length++; \ - has_prefix=YES; - - -/* - * Convert num to its decimal format. - * Return value: - * - a pointer to a string containing the number (no sign) - * - len contains the length of the string - * - is_negative is set to TRUE or FALSE depending on the sign - * of the number (always set to FALSE if is_unsigned is TRUE) - * - * The caller provides a buffer for the string: that is the buf_end argument - * which is a pointer to the END of the buffer + 1 (i.e. if the buffer - * is declared as buf[ 100 ], buf_end should be &buf[ 100 ]) - * - * Note: we have 2 versions. One is used when we need to use quads - * (conv_10_quad), the other when we don't (conv_10). We're assuming the - * latter is faster. - */ -static char *conv_10(register wide_int num, register bool_int is_unsigned, - register bool_int *is_negative, char *buf_end, - register int *len) -{ - register char *p = buf_end; - register u_wide_int magnitude; - - if (is_unsigned) { - magnitude = (u_wide_int) num; - *is_negative = FALSE; - } - else { - *is_negative = (num < 0); - - /* - * On a 2's complement machine, negating the most negative integer - * results in a number that cannot be represented as a signed integer. - * Here is what we do to obtain the number's magnitude: - * a. add 1 to the number - * b. negate it (becomes positive) - * c. convert it to unsigned - * d. add 1 - */ - if (*is_negative) { - wide_int t = num + 1; - - magnitude = ((u_wide_int) -t) + 1; - } - else - magnitude = (u_wide_int) num; - } - - /* - * We use a do-while loop so that we write at least 1 digit - */ - do { - register u_wide_int new_magnitude = magnitude / 10; - - *--p = (char) (magnitude - new_magnitude * 10 + '0'); - magnitude = new_magnitude; - } - while (magnitude); - - *len = buf_end - p; - return (p); -} - -static char *conv_10_quad(widest_int num, register bool_int is_unsigned, - register bool_int *is_negative, char *buf_end, - register int *len) -{ - register char *p = buf_end; - u_widest_int magnitude; - - /* - * We see if we can use the faster non-quad version by checking the - * number against the largest long value it can be. If <=, we - * punt to the quicker version. - */ - if ((num <= ULONG_MAX && is_unsigned) - || (num <= LONG_MAX && num >= LONG_MIN && !is_unsigned)) - return(conv_10( (wide_int)num, is_unsigned, is_negative, - buf_end, len)); - - if (is_unsigned) { - magnitude = (u_widest_int) num; - *is_negative = FALSE; - } - else { - *is_negative = (num < 0); - - /* - * On a 2's complement machine, negating the most negative integer - * results in a number that cannot be represented as a signed integer. - * Here is what we do to obtain the number's magnitude: - * a. add 1 to the number - * b. negate it (becomes positive) - * c. convert it to unsigned - * d. add 1 - */ - if (*is_negative) { - widest_int t = num + 1; - - magnitude = ((u_widest_int) -t) + 1; - } - else - magnitude = (u_widest_int) num; - } - - /* - * We use a do-while loop so that we write at least 1 digit - */ - do { - u_widest_int new_magnitude = magnitude / 10; - - *--p = (char) (magnitude - new_magnitude * 10 + '0'); - magnitude = new_magnitude; - } - while (magnitude); - - *len = buf_end - p; - return (p); -} - - - -static char *conv_in_addr(struct in_addr *ia, char *buf_end, int *len) -{ - unsigned addr = ntohl(ia->s_addr); - char *p = buf_end; - bool_int is_negative; - int sub_len; - - p = conv_10((addr & 0x000000FF) , TRUE, &is_negative, p, &sub_len); - *--p = '.'; - p = conv_10((addr & 0x0000FF00) >> 8, TRUE, &is_negative, p, &sub_len); - *--p = '.'; - p = conv_10((addr & 0x00FF0000) >> 16, TRUE, &is_negative, p, &sub_len); - *--p = '.'; - p = conv_10((addr & 0xFF000000) >> 24, TRUE, &is_negative, p, &sub_len); - - *len = buf_end - p; - return (p); -} - - - -static char *conv_apr_sockaddr(apr_sockaddr_t *sa, char *buf_end, int *len) -{ - char *p = buf_end; - bool_int is_negative; - int sub_len; - char *ipaddr_str; - - p = conv_10(sa->port, TRUE, &is_negative, p, &sub_len); - *--p = ':'; - apr_sockaddr_ip_get(&ipaddr_str, sa); - sub_len = strlen(ipaddr_str); -#if APR_HAVE_IPV6 - if (sa->family == APR_INET6 && - !IN6_IS_ADDR_V4MAPPED(&sa->sa.sin6.sin6_addr)) { - *(p - 1) = ']'; - p -= sub_len + 2; - *p = '['; - memcpy(p + 1, ipaddr_str, sub_len); - } - else -#endif - { - p -= sub_len; - memcpy(p, ipaddr_str, sub_len); - } - - *len = buf_end - p; - return (p); -} - - - -#if APR_HAS_THREADS -static char *conv_os_thread_t(apr_os_thread_t *tid, char *buf_end, int *len) -{ - union { - apr_os_thread_t tid; - apr_uint64_t alignme; - } u; - int is_negative; - - u.tid = *tid; - switch(sizeof(u.tid)) { - case sizeof(apr_int32_t): - return conv_10(*(apr_uint32_t *)&u.tid, TRUE, &is_negative, buf_end, len); - case sizeof(apr_int64_t): - return conv_10_quad(*(apr_uint64_t *)&u.tid, TRUE, &is_negative, buf_end, len); - default: - /* not implemented; stick 0 in the buffer */ - return conv_10(0, TRUE, &is_negative, buf_end, len); - } -} -#endif - - - -/* - * Convert a floating point number to a string formats 'f', 'e' or 'E'. - * The result is placed in buf, and len denotes the length of the string - * The sign is returned in the is_negative argument (and is not placed - * in buf). - */ -static char *conv_fp(register char format, register double num, - boolean_e add_dp, int precision, bool_int *is_negative, - char *buf, int *len) -{ - register char *s = buf; - register char *p; - int decimal_point; - char buf1[NDIG]; - - if (format == 'f') - p = apr_fcvt(num, precision, &decimal_point, is_negative, buf1); - else /* either e or E format */ - p = apr_ecvt(num, precision + 1, &decimal_point, is_negative, buf1); - - /* - * Check for Infinity and NaN - */ - if (apr_isalpha(*p)) { - *len = strlen(p); - memcpy(buf, p, *len + 1); - *is_negative = FALSE; - return (buf); - } - - if (format == 'f') { - if (decimal_point <= 0) { - *s++ = '0'; - if (precision > 0) { - *s++ = '.'; - while (decimal_point++ < 0) - *s++ = '0'; - } - else if (add_dp) - *s++ = '.'; - } - else { - while (decimal_point-- > 0) - *s++ = *p++; - if (precision > 0 || add_dp) - *s++ = '.'; - } - } - else { - *s++ = *p++; - if (precision > 0 || add_dp) - *s++ = '.'; - } - - /* - * copy the rest of p, the NUL is NOT copied - */ - while (*p) - *s++ = *p++; - - if (format != 'f') { - char temp[EXPONENT_LENGTH]; /* for exponent conversion */ - int t_len; - bool_int exponent_is_negative; - - *s++ = format; /* either e or E */ - decimal_point--; - if (decimal_point != 0) { - p = conv_10((wide_int) decimal_point, FALSE, &exponent_is_negative, - &temp[EXPONENT_LENGTH], &t_len); - *s++ = exponent_is_negative ? '-' : '+'; - - /* - * Make sure the exponent has at least 2 digits - */ - if (t_len == 1) - *s++ = '0'; - while (t_len--) - *s++ = *p++; - } - else { - *s++ = '+'; - *s++ = '0'; - *s++ = '0'; - } - } - - *len = s - buf; - return (buf); -} - - -/* - * Convert num to a base X number where X is a power of 2. nbits determines X. - * For example, if nbits is 3, we do base 8 conversion - * Return value: - * a pointer to a string containing the number - * - * The caller provides a buffer for the string: that is the buf_end argument - * which is a pointer to the END of the buffer + 1 (i.e. if the buffer - * is declared as buf[ 100 ], buf_end should be &buf[ 100 ]) - * - * As with conv_10, we have a faster version which is used when - * the number isn't quad size. - */ -static char *conv_p2(register u_wide_int num, register int nbits, - char format, char *buf_end, register int *len) -{ - register int mask = (1 << nbits) - 1; - register char *p = buf_end; - static const char low_digits[] = "0123456789abcdef"; - static const char upper_digits[] = "0123456789ABCDEF"; - register const char *digits = (format == 'X') ? upper_digits : low_digits; - - do { - *--p = digits[num & mask]; - num >>= nbits; - } - while (num); - - *len = buf_end - p; - return (p); -} - -static char *conv_p2_quad(u_widest_int num, register int nbits, - char format, char *buf_end, register int *len) -{ - register int mask = (1 << nbits) - 1; - register char *p = buf_end; - static const char low_digits[] = "0123456789abcdef"; - static const char upper_digits[] = "0123456789ABCDEF"; - register const char *digits = (format == 'X') ? upper_digits : low_digits; - - if (num <= ULONG_MAX) - return(conv_p2((u_wide_int)num, nbits, format, buf_end, len)); - - do { - *--p = digits[num & mask]; - num >>= nbits; - } - while (num); - - *len = buf_end - p; - return (p); -} - - -/* - * Do format conversion placing the output in buffer - */ -APR_DECLARE(int) apr_vformatter(int (*flush_func)(apr_vformatter_buff_t *), - apr_vformatter_buff_t *vbuff, const char *fmt, va_list ap) -{ - register char *sp; - register char *bep; - register int cc = 0; - register int i; - - register char *s = NULL; - char *q; - int s_len; - - register int min_width = 0; - int precision = 0; - enum { - LEFT, RIGHT - } adjust; - char pad_char; - char prefix_char; - - double fp_num; - widest_int i_quad = (widest_int) 0; - u_widest_int ui_quad; - wide_int i_num = (wide_int) 0; - u_wide_int ui_num; - - char num_buf[NUM_BUF_SIZE]; - char char_buf[2]; /* for printing %% and % */ - - enum var_type_enum { - IS_QUAD, IS_LONG, IS_SHORT, IS_INT - }; - enum var_type_enum var_type = IS_INT; - - /* - * Flag variables - */ - boolean_e alternate_form; - boolean_e print_sign; - boolean_e print_blank; - boolean_e adjust_precision; - boolean_e adjust_width; - bool_int is_negative; - - sp = vbuff->curpos; - bep = vbuff->endpos; - - while (*fmt) { - if (*fmt != '%') { - INS_CHAR(*fmt, sp, bep, cc); - } - else { - /* - * Default variable settings - */ - boolean_e print_something = YES; - adjust = RIGHT; - alternate_form = print_sign = print_blank = NO; - pad_char = ' '; - prefix_char = NUL; - - fmt++; - - /* - * Try to avoid checking for flags, width or precision - */ - if (!apr_islower(*fmt)) { - /* - * Recognize flags: -, #, BLANK, + - */ - for (;; fmt++) { - if (*fmt == '-') - adjust = LEFT; - else if (*fmt == '+') - print_sign = YES; - else if (*fmt == '#') - alternate_form = YES; - else if (*fmt == ' ') - print_blank = YES; - else if (*fmt == '0') - pad_char = '0'; - else - break; - } - - /* - * Check if a width was specified - */ - if (apr_isdigit(*fmt)) { - STR_TO_DEC(fmt, min_width); - adjust_width = YES; - } - else if (*fmt == '*') { - min_width = va_arg(ap, int); - fmt++; - adjust_width = YES; - if (min_width < 0) { - adjust = LEFT; - min_width = -min_width; - } - } - else - adjust_width = NO; - - /* - * Check if a precision was specified - */ - if (*fmt == '.') { - adjust_precision = YES; - fmt++; - if (apr_isdigit(*fmt)) { - STR_TO_DEC(fmt, precision); - } - else if (*fmt == '*') { - precision = va_arg(ap, int); - fmt++; - if (precision < 0) - precision = 0; - } - else - precision = 0; - } - else - adjust_precision = NO; - } - else - adjust_precision = adjust_width = NO; - - /* - * Modifier check - */ -#if defined(APR_INT64_T_FMT_LEN) && (APR_INT64_T_FMT_LEN == 3) - if ((*fmt == APR_INT64_T_FMT[0]) && - (fmt[1] == APR_INT64_T_FMT[1])) { -#elif defined(APR_INT64_T_FMT_LEN) && (APR_INT64_T_FMT_LEN == 2) - if (*fmt == APR_INT64_T_FMT[0]) { -#else - if (strncmp(fmt, APR_INT64_T_FMT, - sizeof(APR_INT64_T_FMT) - 2) == 0) { -#endif - /* Need to account for trailing 'd' and null in sizeof() */ - var_type = IS_QUAD; - fmt += (sizeof(APR_INT64_T_FMT) - 2); - } - else if (*fmt == 'q') { - var_type = IS_QUAD; - fmt++; - } - else if (*fmt == 'l') { - var_type = IS_LONG; - fmt++; - } - else if (*fmt == 'h') { - var_type = IS_SHORT; - fmt++; - } - else { - var_type = IS_INT; - } - - /* - * Argument extraction and printing. - * First we determine the argument type. - * Then, we convert the argument to a string. - * On exit from the switch, s points to the string that - * must be printed, s_len has the length of the string - * The precision requirements, if any, are reflected in s_len. - * - * NOTE: pad_char may be set to '0' because of the 0 flag. - * It is reset to ' ' by non-numeric formats - */ - switch (*fmt) { - case 'u': - if (var_type == IS_QUAD) { - i_quad = va_arg(ap, u_widest_int); - s = conv_10_quad(i_quad, 1, &is_negative, - &num_buf[NUM_BUF_SIZE], &s_len); - } - else { - if (var_type == IS_LONG) - i_num = (wide_int) va_arg(ap, u_wide_int); - else if (var_type == IS_SHORT) - i_num = (wide_int) (unsigned short) va_arg(ap, unsigned int); - else - i_num = (wide_int) va_arg(ap, unsigned int); - s = conv_10(i_num, 1, &is_negative, - &num_buf[NUM_BUF_SIZE], &s_len); - } - FIX_PRECISION(adjust_precision, precision, s, s_len); - break; - - case 'd': - case 'i': - if (var_type == IS_QUAD) { - i_quad = va_arg(ap, widest_int); - s = conv_10_quad(i_quad, 0, &is_negative, - &num_buf[NUM_BUF_SIZE], &s_len); - } - else { - if (var_type == IS_LONG) - i_num = (wide_int) va_arg(ap, wide_int); - else if (var_type == IS_SHORT) - i_num = (wide_int) (short) va_arg(ap, int); - else - i_num = (wide_int) va_arg(ap, int); - s = conv_10(i_num, 0, &is_negative, - &num_buf[NUM_BUF_SIZE], &s_len); - } - FIX_PRECISION(adjust_precision, precision, s, s_len); - - if (is_negative) - prefix_char = '-'; - else if (print_sign) - prefix_char = '+'; - else if (print_blank) - prefix_char = ' '; - break; - - - case 'o': - if (var_type == IS_QUAD) { - ui_quad = va_arg(ap, u_widest_int); - s = conv_p2_quad(ui_quad, 3, *fmt, - &num_buf[NUM_BUF_SIZE], &s_len); - } - else { - if (var_type == IS_LONG) - ui_num = (u_wide_int) va_arg(ap, u_wide_int); - else if (var_type == IS_SHORT) - ui_num = (u_wide_int) (unsigned short) va_arg(ap, unsigned int); - else - ui_num = (u_wide_int) va_arg(ap, unsigned int); - s = conv_p2(ui_num, 3, *fmt, - &num_buf[NUM_BUF_SIZE], &s_len); - } - FIX_PRECISION(adjust_precision, precision, s, s_len); - if (alternate_form && *s != '0') { - *--s = '0'; - s_len++; - } - break; - - - case 'x': - case 'X': - if (var_type == IS_QUAD) { - ui_quad = va_arg(ap, u_widest_int); - s = conv_p2_quad(ui_quad, 4, *fmt, - &num_buf[NUM_BUF_SIZE], &s_len); - } - else { - if (var_type == IS_LONG) - ui_num = (u_wide_int) va_arg(ap, u_wide_int); - else if (var_type == IS_SHORT) - ui_num = (u_wide_int) (unsigned short) va_arg(ap, unsigned int); - else - ui_num = (u_wide_int) va_arg(ap, unsigned int); - s = conv_p2(ui_num, 4, *fmt, - &num_buf[NUM_BUF_SIZE], &s_len); - } - FIX_PRECISION(adjust_precision, precision, s, s_len); - if (alternate_form && i_num != 0) { - *--s = *fmt; /* 'x' or 'X' */ - *--s = '0'; - s_len += 2; - } - break; - - - case 's': - s = va_arg(ap, char *); - if (s != NULL) { - if (!adjust_precision) { - s_len = strlen(s); - } - else { - /* From the C library standard in section 7.9.6.1: - * ...if the precision is specified, no more then - * that many characters are written. If the - * precision is not specified or is greater - * than the size of the array, the array shall - * contain a null character. - * - * My reading is is precision is specified and - * is less then or equal to the size of the - * array, no null character is required. So - * we can't do a strlen. - * - * This figures out the length of the string - * up to the precision. Once it's long enough - * for the specified precision, we don't care - * anymore. - * - * NOTE: you must do the length comparison - * before the check for the null character. - * Otherwise, you'll check one beyond the - * last valid character. - */ - const char *walk; - - for (walk = s, s_len = 0; - (s_len < precision) && (*walk != '\0'); - ++walk, ++s_len); - } - } - else { - s = S_NULL; - s_len = S_NULL_LEN; - } - pad_char = ' '; - break; - - - case 'f': - case 'e': - case 'E': - fp_num = va_arg(ap, double); - /* - * We use &num_buf[ 1 ], so that we have room for the sign - */ - s = NULL; -#ifdef HAVE_ISNAN - if (isnan(fp_num)) { - s = "nan"; - s_len = 3; - } -#endif -#ifdef HAVE_ISINF - if (!s && isinf(fp_num)) { - s = "inf"; - s_len = 3; - } -#endif - if (!s) { - s = conv_fp(*fmt, fp_num, alternate_form, - (adjust_precision == NO) ? FLOAT_DIGITS : precision, - &is_negative, &num_buf[1], &s_len); - if (is_negative) - prefix_char = '-'; - else if (print_sign) - prefix_char = '+'; - else if (print_blank) - prefix_char = ' '; - } - break; - - - case 'g': - case 'G': - if (adjust_precision == NO) - precision = FLOAT_DIGITS; - else if (precision == 0) - precision = 1; - /* - * * We use &num_buf[ 1 ], so that we have room for the sign - */ - s = apr_gcvt(va_arg(ap, double), precision, &num_buf[1], - alternate_form); - if (*s == '-') - prefix_char = *s++; - else if (print_sign) - prefix_char = '+'; - else if (print_blank) - prefix_char = ' '; - - s_len = strlen(s); - - if (alternate_form && (q = strchr(s, '.')) == NULL) { - s[s_len++] = '.'; - s[s_len] = '\0'; /* delimit for following strchr() */ - } - if (*fmt == 'G' && (q = strchr(s, 'e')) != NULL) - *q = 'E'; - break; - - - case 'c': - char_buf[0] = (char) (va_arg(ap, int)); - s = &char_buf[0]; - s_len = 1; - pad_char = ' '; - break; - - - case '%': - char_buf[0] = '%'; - s = &char_buf[0]; - s_len = 1; - pad_char = ' '; - break; - - - case 'n': - if (var_type == IS_QUAD) - *(va_arg(ap, widest_int *)) = cc; - else if (var_type == IS_LONG) - *(va_arg(ap, long *)) = cc; - else if (var_type == IS_SHORT) - *(va_arg(ap, short *)) = cc; - else - *(va_arg(ap, int *)) = cc; - print_something = NO; - break; - - /* - * This is where we extend the printf format, with a second - * type specifier - */ - case 'p': - switch(*++fmt) { - /* - * If the pointer size is equal to or smaller than the size - * of the largest unsigned int, we convert the pointer to a - * hex number, otherwise we print "%p" to indicate that we - * don't handle "%p". - */ - case 'p': -#if APR_SIZEOF_VOIDP == 8 - if (sizeof(void *) <= sizeof(u_widest_int)) { - ui_quad = (u_widest_int) va_arg(ap, void *); - s = conv_p2_quad(ui_quad, 4, 'x', - &num_buf[NUM_BUF_SIZE], &s_len); - } -#else - if (sizeof(void *) <= sizeof(u_wide_int)) { - ui_num = (u_wide_int) va_arg(ap, void *); - s = conv_p2(ui_num, 4, 'x', - &num_buf[NUM_BUF_SIZE], &s_len); - } -#endif - else { - s = "%p"; - s_len = 2; - prefix_char = NUL; - } - pad_char = ' '; - break; - - /* print an apr_sockaddr_t as a.b.c.d:port */ - case 'I': - { - apr_sockaddr_t *sa; - - sa = va_arg(ap, apr_sockaddr_t *); - if (sa != NULL) { - s = conv_apr_sockaddr(sa, &num_buf[NUM_BUF_SIZE], &s_len); - if (adjust_precision && precision < s_len) - s_len = precision; - } - else { - s = S_NULL; - s_len = S_NULL_LEN; - } - pad_char = ' '; - } - break; - - /* print a struct in_addr as a.b.c.d */ - case 'A': - { - struct in_addr *ia; - - ia = va_arg(ap, struct in_addr *); - if (ia != NULL) { - s = conv_in_addr(ia, &num_buf[NUM_BUF_SIZE], &s_len); - if (adjust_precision && precision < s_len) - s_len = precision; - } - else { - s = S_NULL; - s_len = S_NULL_LEN; - } - pad_char = ' '; - } - break; - - case 'T': -#if APR_HAS_THREADS - { - apr_os_thread_t *tid; - - tid = va_arg(ap, apr_os_thread_t *); - if (tid != NULL) { - s = conv_os_thread_t(tid, &num_buf[NUM_BUF_SIZE], &s_len); - if (adjust_precision && precision < s_len) - s_len = precision; - } - else { - s = S_NULL; - s_len = S_NULL_LEN; - } - pad_char = ' '; - } -#else - char_buf[0] = '0'; - s = &char_buf[0]; - s_len = 1; - pad_char = ' '; -#endif - break; - - case NUL: - /* if %p ends the string, oh well ignore it */ - continue; - - default: - s = "bogus %p"; - s_len = 8; - prefix_char = NUL; - (void)va_arg(ap, void *); /* skip the bogus argument on the stack */ - break; - } - break; - - case NUL: - /* - * The last character of the format string was %. - * We ignore it. - */ - continue; - - - /* - * The default case is for unrecognized %'s. - * We print % to help the user identify what - * option is not understood. - * This is also useful in case the user wants to pass - * the output of format_converter to another function - * that understands some other % (like syslog). - * Note that we can't point s inside fmt because the - * unknown could be preceded by width etc. - */ - default: - char_buf[0] = '%'; - char_buf[1] = *fmt; - s = char_buf; - s_len = 2; - pad_char = ' '; - break; - } - - if (prefix_char != NUL && s != S_NULL && s != char_buf) { - *--s = prefix_char; - s_len++; - } - - if (adjust_width && adjust == RIGHT && min_width > s_len) { - if (pad_char == '0' && prefix_char != NUL) { - INS_CHAR(*s, sp, bep, cc); - s++; - s_len--; - min_width--; - } - PAD(min_width, s_len, pad_char); - } - - /* - * Print the string s. - */ - if (print_something == YES) { - for (i = s_len; i != 0; i--) { - INS_CHAR(*s, sp, bep, cc); - s++; - } - } - - if (adjust_width && adjust == LEFT && min_width > s_len) - PAD(min_width, s_len, pad_char); - } - fmt++; - } - vbuff->curpos = sp; - - return cc; -} - - -static int snprintf_flush(apr_vformatter_buff_t *vbuff) -{ - /* if the buffer fills we have to abort immediately, there is no way - * to "flush" an apr_snprintf... there's nowhere to flush it to. - */ - return -1; -} - - -APR_DECLARE_NONSTD(int) apr_snprintf(char *buf, apr_size_t len, - const char *format, ...) -{ - int cc; - va_list ap; - apr_vformatter_buff_t vbuff; - - if (len == 0) { - /* NOTE: This is a special case; we just want to return the number - * of chars that would be written (minus \0) if the buffer - * size was infinite. We leverage the fact that INS_CHAR - * just does actual inserts iff the buffer pointer is non-NULL. - * In this case, we don't care what buf is; it can be NULL, since - * we don't touch it at all. - */ - vbuff.curpos = NULL; - vbuff.endpos = NULL; - } else { - /* save one byte for nul terminator */ - vbuff.curpos = buf; - vbuff.endpos = buf + len - 1; - } - va_start(ap, format); - cc = apr_vformatter(snprintf_flush, &vbuff, format, ap); - va_end(ap); - if (len != 0) { - *vbuff.curpos = '\0'; - } - return (cc == -1) ? (int)len : cc; -} - - -APR_DECLARE(int) apr_vsnprintf(char *buf, apr_size_t len, const char *format, - va_list ap) -{ - int cc; - apr_vformatter_buff_t vbuff; - - if (len == 0) { - /* See above note */ - vbuff.curpos = NULL; - vbuff.endpos = NULL; - } else { - /* save one byte for nul terminator */ - vbuff.curpos = buf; - vbuff.endpos = buf + len - 1; - } - cc = apr_vformatter(snprintf_flush, &vbuff, format, ap); - if (len != 0) { - *vbuff.curpos = '\0'; - } - return (cc == -1) ? (int)len : cc; -} diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.lo b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.lo deleted file mode 100644 index 24aa0fc0..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.lo +++ /dev/null @@ -1,12 +0,0 @@ -# apr_snprintf.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_snprintf.o' - -# Name of the non-PIC object. -non_pic_object='apr_snprintf.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.o deleted file mode 100644 index 82b10d9c..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_snprintf.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.c b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.c deleted file mode 100644 index 1927c515..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.c +++ /dev/null @@ -1,458 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ -/* - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "apr.h" -#include "apr_strings.h" -#include "apr_general.h" -#include "apr_private.h" -#include "apr_lib.h" -#define APR_WANT_STDIO -#define APR_WANT_STRFUNC -#include "apr_want.h" - -#ifdef HAVE_STDDEF_H -#include /* NULL */ -#endif - -#ifdef HAVE_STDLIB_H -#include /* strtol and strtoll */ -#endif - -/** this is used to cache lengths in apr_pstrcat */ -#define MAX_SAVED_LENGTHS 6 - -APR_DECLARE(char *) apr_pstrdup(apr_pool_t *a, const char *s) -{ - char *res; - apr_size_t len; - - if (s == NULL) { - return NULL; - } - len = strlen(s) + 1; - res = apr_palloc(a, len); - memcpy(res, s, len); - return res; -} - -APR_DECLARE(char *) apr_pstrndup(apr_pool_t *a, const char *s, apr_size_t n) -{ - char *res; - const char *end; - - if (s == NULL) { - return NULL; - } - end = memchr(s, '\0', n); - if (end != NULL) - n = end - s; - res = apr_palloc(a, n + 1); - memcpy(res, s, n); - res[n] = '\0'; - return res; -} - -APR_DECLARE(char *) apr_pstrmemdup(apr_pool_t *a, const char *s, apr_size_t n) -{ - char *res; - - if (s == NULL) { - return NULL; - } - res = apr_palloc(a, n + 1); - memcpy(res, s, n); - res[n] = '\0'; - return res; -} - -APR_DECLARE(void *) apr_pmemdup(apr_pool_t *a, const void *m, apr_size_t n) -{ - void *res; - - if (m == NULL) - return NULL; - res = apr_palloc(a, n); - memcpy(res, m, n); - return res; -} - -APR_DECLARE_NONSTD(char *) apr_pstrcat(apr_pool_t *a, ...) -{ - char *cp, *argp, *res; - apr_size_t saved_lengths[MAX_SAVED_LENGTHS]; - int nargs = 0; - - /* Pass one --- find length of required string */ - - apr_size_t len = 0; - va_list adummy; - - va_start(adummy, a); - - while ((cp = va_arg(adummy, char *)) != NULL) { - apr_size_t cplen = strlen(cp); - if (nargs < MAX_SAVED_LENGTHS) { - saved_lengths[nargs++] = cplen; - } - len += cplen; - } - - va_end(adummy); - - /* Allocate the required string */ - - res = (char *) apr_palloc(a, len + 1); - cp = res; - - /* Pass two --- copy the argument strings into the result space */ - - va_start(adummy, a); - - nargs = 0; - while ((argp = va_arg(adummy, char *)) != NULL) { - if (nargs < MAX_SAVED_LENGTHS) { - len = saved_lengths[nargs++]; - } - else { - len = strlen(argp); - } - - memcpy(cp, argp, len); - cp += len; - } - - va_end(adummy); - - /* Return the result string */ - - *cp = '\0'; - - return res; -} - -APR_DECLARE(char *) apr_pstrcatv(apr_pool_t *a, const struct iovec *vec, - apr_size_t nvec, apr_size_t *nbytes) -{ - apr_size_t i; - apr_size_t len; - const struct iovec *src; - char *res; - char *dst; - - /* Pass one --- find length of required string */ - len = 0; - src = vec; - for (i = nvec; i; i--) { - len += src->iov_len; - src++; - } - if (nbytes) { - *nbytes = len; - } - - /* Allocate the required string */ - res = (char *) apr_palloc(a, len + 1); - - /* Pass two --- copy the argument strings into the result space */ - src = vec; - dst = res; - for (i = nvec; i; i--) { - memcpy(dst, src->iov_base, src->iov_len); - dst += src->iov_len; - src++; - } - - /* Return the result string */ - *dst = '\0'; - - return res; -} - -#if (!APR_HAVE_MEMCHR) -void *memchr(const void *s, int c, size_t n) -{ - const char *cp; - - for (cp = s; n > 0; n--, cp++) { - if (*cp == c) - return (char *) cp; /* Casting away the const here */ - } - - return NULL; -} -#endif - -#ifndef INT64_MAX -#define INT64_MAX APR_INT64_C(0x7fffffffffffffff) -#endif -#ifndef INT64_MIN -#define INT64_MIN (-APR_INT64_C(0x7fffffffffffffff) - APR_INT64_C(1)) -#endif - -APR_DECLARE(apr_int64_t) apr_strtoi64(const char *nptr, char **endptr, int base) -{ -#if (APR_HAVE_INT64_STRFN) - return APR_INT64_STRFN(nptr, endptr, base); -#else - const char *s; - apr_int64_t acc; - apr_int64_t val; - int neg, any; - char c; - - /* - * Skip white space and pick up leading +/- sign if any. - * If base is 0, allow 0x for hex and 0 for octal, else - * assume decimal; if base is already 16, allow 0x. - */ - s = nptr; - do { - c = *s++; - } while (apr_isspace(c)); - if (c == '-') { - neg = 1; - c = *s++; - } else { - neg = 0; - if (c == '+') - c = *s++; - } - if ((base == 0 || base == 16) && - c == '0' && (*s == 'x' || *s == 'X')) { - c = s[1]; - s += 2; - base = 16; - } - if (base == 0) - base = c == '0' ? 8 : 10; - acc = any = 0; - if (base < 2 || base > 36) { - errno = EINVAL; - if (endptr != NULL) - *endptr = (char *)(any ? s - 1 : nptr); - return acc; - } - - /* The classic bsd implementation requires div/mod operators - * to compute a cutoff. Benchmarking proves that is very, very - * evil to some 32 bit processors. Instead, look for underflow - * in both the mult and add/sub operation. Unlike the bsd impl, - * we also work strictly in a signed int64 word as we haven't - * implemented the unsigned type in win32. - * - * Set 'any' if any `digits' consumed; make it negative to indicate - * overflow. - */ - val = 0; - for ( ; ; c = *s++) { - if (c >= '0' && c <= '9') - c -= '0'; -#if (('Z' - 'A') == 25) - else if (c >= 'A' && c <= 'Z') - c -= 'A' - 10; - else if (c >= 'a' && c <= 'z') - c -= 'a' - 10; -#elif APR_CHARSET_EBCDIC - else if (c >= 'A' && c <= 'I') - c -= 'A' - 10; - else if (c >= 'J' && c <= 'R') - c -= 'J' - 19; - else if (c >= 'S' && c <= 'Z') - c -= 'S' - 28; - else if (c >= 'a' && c <= 'i') - c -= 'a' - 10; - else if (c >= 'j' && c <= 'r') - c -= 'j' - 19; - else if (c >= 's' && c <= 'z') - c -= 'z' - 28; -#else -#error "CANNOT COMPILE apr_strtoi64(), only ASCII and EBCDIC supported" -#endif - else - break; - if (c >= base) - break; - val *= base; - if ( (any < 0) /* already noted an over/under flow - short circuit */ - || (neg && (val > acc || (val -= c) > acc)) /* underflow */ - || (!neg && (val < acc || (val += c) < acc))) { /* overflow */ - any = -1; /* once noted, over/underflows never go away */ -#ifdef APR_STRTOI64_OVERFLOW_IS_BAD_CHAR - break; -#endif - } else { - acc = val; - any = 1; - } - } - - if (any < 0) { - acc = neg ? INT64_MIN : INT64_MAX; - errno = ERANGE; - } else if (!any) { - errno = EINVAL; - } - if (endptr != NULL) - *endptr = (char *)(any ? s - 1 : nptr); - return (acc); -#endif -} - -APR_DECLARE(apr_int64_t) apr_atoi64(const char *buf) -{ - return apr_strtoi64(buf, NULL, 10); -} - -APR_DECLARE(char *) apr_itoa(apr_pool_t *p, int n) -{ - const int BUFFER_SIZE = sizeof(int) * 3 + 2; - char *buf = apr_palloc(p, BUFFER_SIZE); - char *start = buf + BUFFER_SIZE - 1; - int negative; - if (n < 0) { - negative = 1; - n = -n; - } - else { - negative = 0; - } - *start = 0; - do { - *--start = '0' + (n % 10); - n /= 10; - } while (n); - if (negative) { - *--start = '-'; - } - return start; -} - -APR_DECLARE(char *) apr_ltoa(apr_pool_t *p, long n) -{ - const int BUFFER_SIZE = sizeof(long) * 3 + 2; - char *buf = apr_palloc(p, BUFFER_SIZE); - char *start = buf + BUFFER_SIZE - 1; - int negative; - if (n < 0) { - negative = 1; - n = -n; - } - else { - negative = 0; - } - *start = 0; - do { - *--start = (char)('0' + (n % 10)); - n /= 10; - } while (n); - if (negative) { - *--start = '-'; - } - return start; -} - -APR_DECLARE(char *) apr_off_t_toa(apr_pool_t *p, apr_off_t n) -{ - const int BUFFER_SIZE = sizeof(apr_off_t) * 3 + 2; - char *buf = apr_palloc(p, BUFFER_SIZE); - char *start = buf + BUFFER_SIZE - 1; - int negative; - if (n < 0) { - negative = 1; - n = -n; - } - else { - negative = 0; - } - *start = 0; - do { - *--start = '0' + (char)(n % 10); - n /= 10; - } while (n); - if (negative) { - *--start = '-'; - } - return start; -} - -APR_DECLARE(char *) apr_strfsize(apr_off_t size, char *buf) -{ - const char ord[] = "KMGTPE"; - const char *o = ord; - int remain; - - if (size < 0) { - return strcpy(buf, " - "); - } - if (size < 973) { - if (apr_snprintf(buf, 5, "%3d ", (int) size) < 0) - return strcpy(buf, "****"); - return buf; - } - do { - remain = (int)(size & 1023); - size >>= 10; - if (size >= 973) { - ++o; - continue; - } - if (size < 9 || (size == 9 && remain < 973)) { - if ((remain = ((remain * 5) + 256) / 512) >= 10) - ++size, remain = 0; - if (apr_snprintf(buf, 5, "%d.%d%c", (int) size, remain, *o) < 0) - return strcpy(buf, "****"); - return buf; - } - if (remain >= 512) - ++size; - if (apr_snprintf(buf, 5, "%3d%c", (int) size, *o) < 0) - return strcpy(buf, "****"); - return buf; - } while (1); -} - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.lo b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.lo deleted file mode 100644 index 4314698b..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.lo +++ /dev/null @@ -1,12 +0,0 @@ -# apr_strings.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_strings.o' - -# Name of the non-PIC object. -non_pic_object='apr_strings.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.o deleted file mode 100644 index 720cd411..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strings.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.c b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.c deleted file mode 100644 index 0e960e8a..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.c +++ /dev/null @@ -1,149 +0,0 @@ -/* -*- mode: c; c-file-style: "k&r" -*- - - strnatcmp.c -- Perform 'natural order' comparisons of strings in C. - Copyright (C) 2000 by Martin Pool - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#include -#include -#include "apr_strings.h" -#include "apr_lib.h" /* for apr_is*() */ - -#if defined(__GNUC__) -# define UNUSED __attribute__((__unused__)) -#else -# define UNUSED -#endif - -/* based on "strnatcmp.c,v 1.6 2000/04/20 07:30:11 mbp Exp $" */ - -static int -compare_right(char const *a, char const *b) -{ - int bias = 0; - - /* The longest run of digits wins. That aside, the greatest - value wins, but we can't know that it will until we've scanned - both numbers to know that they have the same magnitude, so we - remember it in BIAS. */ - for (;; a++, b++) { - if (!apr_isdigit(*a) && !apr_isdigit(*b)) - break; - else if (!apr_isdigit(*a)) - return -1; - else if (!apr_isdigit(*b)) - return +1; - else if (*a < *b) { - if (!bias) - bias = -1; - } else if (*a > *b) { - if (!bias) - bias = +1; - } else if (!*a && !*b) - break; - } - - return bias; -} - - -static int -compare_left(char const *a, char const *b) -{ - /* Compare two left-aligned numbers: the first to have a - different value wins. */ - for (;; a++, b++) { - if (!apr_isdigit(*a) && !apr_isdigit(*b)) - break; - else if (!apr_isdigit(*a)) - return -1; - else if (!apr_isdigit(*b)) - return +1; - else if (*a < *b) - return -1; - else if (*a > *b) - return +1; - } - - return 0; -} - - -static int strnatcmp0(char const *a, char const *b, int fold_case) -{ - int ai, bi; - char ca, cb; - int fractional, result; - ai = bi = 0; - while (1) { - ca = a[ai]; cb = b[bi]; - - /* skip over leading spaces or zeros */ - while (apr_isspace(ca)) - ca = a[++ai]; - - while (apr_isspace(cb)) - cb = b[++bi]; - - /* process run of digits */ - if (apr_isdigit(ca) && apr_isdigit(cb)) { - fractional = (ca == '0' || cb == '0'); - - if (fractional) { - if ((result = compare_left(a+ai, b+bi)) != 0) - return result; - } else { - if ((result = compare_right(a+ai, b+bi)) != 0) - return result; - } - } - - if (!ca && !cb) { - /* The strings compare the same. Perhaps the caller - will want to call strcmp to break the tie. */ - return 0; - } - - if (fold_case) { - ca = apr_toupper(ca); - cb = apr_toupper(cb); - } - - if (ca < cb) - return -1; - else if (ca > cb) - return +1; - - ++ai; ++bi; - } -} - - - -APR_DECLARE(int) apr_strnatcmp(char const *a, char const *b) -{ - return strnatcmp0(a, b, 0); -} - - -/* Compare, recognizing numeric string and ignoring case. */ -APR_DECLARE(int) apr_strnatcasecmp(char const *a, char const *b) -{ - return strnatcmp0(a, b, 1); -} diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.lo b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.lo deleted file mode 100644 index 1ac1ef2b..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.lo +++ /dev/null @@ -1,12 +0,0 @@ -# apr_strnatcmp.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_strnatcmp.o' - -# Name of the non-PIC object. -non_pic_object='apr_strnatcmp.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.o deleted file mode 100644 index bad4e5c7..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strnatcmp.o and /dev/null differ diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.c b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.c deleted file mode 100644 index 517b319d..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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. - */ - -#ifdef HAVE_STDDEF_H -#include /* for NULL */ -#endif - -#include "apr.h" -#include "apr_strings.h" - -#define APR_WANT_STRFUNC /* for strchr() */ -#include "apr_want.h" - -APR_DECLARE(char *) apr_strtok(char *str, const char *sep, char **last) -{ - char *token; - - if (!str) /* subsequent call */ - str = *last; /* start where we left off */ - - /* skip characters in sep (will terminate at '\0') */ - while (*str && strchr(sep, *str)) - ++str; - - if (!*str) /* no more tokens */ - return NULL; - - token = str; - - /* skip valid token characters to terminate token and - * prepare for the next call (will terminate at '\0) - */ - *last = token + 1; - while (**last && !strchr(sep, **last)) - ++*last; - - if (**last) { - **last = '\0'; - ++*last; - } - - return token; -} diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.lo b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.lo deleted file mode 100644 index d601db21..00000000 --- a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.lo +++ /dev/null @@ -1,12 +0,0 @@ -# apr_strtok.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_strtok.o' - -# Name of the non-PIC object. -non_pic_object='apr_strtok.o' - diff --git a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.o b/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.o deleted file mode 100644 index 2a483101..00000000 Binary files a/rubbos/app/httpd-2.0.64/srclib/apr/strings/apr_strtok.o and /dev/null differ -- cgit 1.2.3-korg