diff options
Diffstat (limited to 'contrib/tcsh/tc.str.c')
| -rw-r--r-- | contrib/tcsh/tc.str.c | 427 | 
1 files changed, 0 insertions, 427 deletions
| diff --git a/contrib/tcsh/tc.str.c b/contrib/tcsh/tc.str.c deleted file mode 100644 index 5f58ef9fc026..000000000000 --- a/contrib/tcsh/tc.str.c +++ /dev/null @@ -1,427 +0,0 @@ -/* $Header: /src/pub/tcsh/tc.str.c,v 3.9 1996/04/26 19:21:42 christos Exp $ */ -/* - * tc.str.c: Short string package - * 	     This has been a lesson of how to write buggy code! - */ -/*- - * Copyright (c) 1980, 1991 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 "sh.h" - -RCSID("$Id: tc.str.c,v 3.9 1996/04/26 19:21:42 christos Exp $") - -#define MALLOC_INCR	128 - -#ifdef SHORT_STRINGS -Char  ** -blk2short(src) -    register char **src; -{ -    size_t     n; -    register Char **sdst, **dst; - -    /* -     * Count -     */ -    for (n = 0; src[n] != NULL; n++) -	continue; -    sdst = dst = (Char **) xmalloc((size_t) ((n + 1) * sizeof(Char *))); - -    for (; *src != NULL; src++) -	*dst++ = SAVE(*src); -    *dst = NULL; -    return (sdst); -} - -char  ** -short2blk(src) -    register Char **src; -{ -    size_t     n; -    register char **sdst, **dst; - -    /* -     * Count -     */ -    for (n = 0; src[n] != NULL; n++) -	continue; -    sdst = dst = (char **) xmalloc((size_t) ((n + 1) * sizeof(char *))); - -    for (; *src != NULL; src++) -	*dst++ = strsave(short2str(*src)); -    *dst = NULL; -    return (sdst); -} - -Char   * -str2short(src) -    register const char *src; -{ -    static Char *sdst; -    static size_t dstsize = 0; -    register Char *dst, *edst; - -    if (src == NULL) -	return (NULL); - -    if (sdst == (NULL)) { -	dstsize = MALLOC_INCR; -	sdst = (Char *) xmalloc((size_t) (dstsize * sizeof(Char))); -    } - -    dst = sdst; -    edst = &dst[dstsize]; -    while ((unsigned char) *src) { -	*dst++ = (Char) ((unsigned char) *src++); -	if (dst == edst) { -	    dstsize += MALLOC_INCR; -	    sdst = (Char *) xrealloc((ptr_t) sdst, -				     (size_t) (dstsize * sizeof(Char))); -	    edst = &sdst[dstsize]; -	    dst = &edst[-MALLOC_INCR]; -	} -    } -    *dst = 0; -    return (sdst); -} - -char   * -short2str(src) -    register const Char *src; -{ -    static char *sdst = NULL; -    static size_t dstsize = 0; -    register char *dst, *edst; - -    if (src == NULL) -	return (NULL); - -    if (sdst == NULL) { -	dstsize = MALLOC_INCR; -	sdst = (char *) xmalloc((size_t) (dstsize * sizeof(char))); -    } -    dst = sdst; -    edst = &dst[dstsize]; -    while (*src) { -	*dst++ = (char) *src++; -	if (dst == edst) { -	    dstsize += MALLOC_INCR; -	    sdst = (char *) xrealloc((ptr_t) sdst, -				     (size_t) (dstsize * sizeof(char))); -	    edst = &sdst[dstsize]; -	    dst = &edst[-MALLOC_INCR]; -	} -    } -    *dst = 0; -    return (sdst); -} - -Char   * -s_strcpy(dst, src) -    register Char *dst; -    register const Char *src; -{ -    register Char *sdst; - -    sdst = dst; -    while ((*dst++ = *src++) != '\0') -	continue; -    return (sdst); -} - -Char   * -s_strncpy(dst, src, n) -    register Char *dst; -    register const Char *src; -    register size_t n; -{ -    register Char *sdst; - -    if (n == 0) -	return(dst); - -    sdst = dst; -    do  -	if ((*dst++ = *src++) == '\0') { -	    while (--n != 0) -		*dst++ = '\0'; -	    return(sdst); -	} -    while (--n != 0); -    return (sdst); -} - -Char   * -s_strcat(dst, src) -    register Char *dst; -    register const Char *src; -{ -    register short *sdst; - -    sdst = dst; -    while (*dst++) -	continue; -    --dst; -    while ((*dst++ = *src++) != '\0') -	continue; -    return (sdst); -} - -#ifdef NOTUSED -Char   * -s_strncat(dst, src, n) -    register Char *dst; -    register const Char *src; -    register size_t n; -{ -    register Char *sdst; - -    if (n == 0)  -	return (dst); - -    sdst = dst; - -    while (*dst++) -	continue; -    --dst; - -    do  -	if ((*dst++ = *src++) == '\0') -	    return(sdst); -    while (--n != 0) -	continue; - -    *dst = '\0'; -    return (sdst); -} - -#endif - -Char   * -s_strchr(str, ch) -    register const Char *str; -    int ch; -{ -    do -	if (*str == ch) -	    return ((Char *) str); -    while (*str++); -    return (NULL); -} - -Char   * -s_strrchr(str, ch) -    register const Char *str; -    int ch; -{ -    register const Char *rstr; - -    rstr = NULL; -    do -	if (*str == ch) -	    rstr = str; -    while (*str++); -    return ((Char *) rstr); -} - -size_t -s_strlen(str) -    register const Char *str; -{ -    register size_t n; - -    for (n = 0; *str++; n++) -	continue; -    return (n); -} - -int -s_strcmp(str1, str2) -    register const Char *str1, *str2; -{ -    for (; *str1 && *str1 == *str2; str1++, str2++) -	continue; -    /* -     * The following case analysis is necessary so that characters which look -     * negative collate low against normal characters but high against the -     * end-of-string NUL. -     */ -    if (*str1 == '\0' && *str2 == '\0') -	return (0); -    else if (*str1 == '\0') -	return (-1); -    else if (*str2 == '\0') -	return (1); -    else -	return (*str1 - *str2); -} - -int -s_strncmp(str1, str2, n) -    register const Char *str1, *str2; -    register size_t n; -{ -    if (n == 0) -	return (0); -    do { -	if (*str1 != *str2) { -	    /* -	     * The following case analysis is necessary so that characters  -	     * which look negative collate low against normal characters -	     * but high against the end-of-string NUL. -	     */ -	    if (*str1 == '\0') -		return (-1); -	    else if (*str2 == '\0') -		return (1); -	    else -		return (*str1 - *str2); -	} -        if (*str1 == '\0') -	    return(0); -	str1++, str2++; -    } while (--n != 0); -    return(0); -} - -Char   * -s_strsave(s) -    register const Char *s; -{ -    Char   *n; -    register Char *p; - -    if (s == 0) -	s = STRNULL; -    for (p = (Char *) s; *p++;) -	continue; -    n = p = (Char *) xmalloc((size_t)  -			     ((((const Char *) p) - s) * sizeof(Char))); -    while ((*p++ = *s++) != '\0') -	continue; -    return (n); -} - -Char   * -s_strspl(cp, dp) -    const Char   *cp, *dp; -{ -    Char   *ep; -    register Char *p, *q; - -    if (!cp) -	cp = STRNULL; -    if (!dp) -	dp = STRNULL; -    for (p = (Char *) cp; *p++;) -	continue; -    for (q = (Char *) dp; *q++;) -	continue; -    ep = (Char *) xmalloc((size_t) -			  (((((const Char *) p) - cp) +  -			    (((const Char *) q) - dp) - 1) * sizeof(Char))); -    for (p = ep, q = (Char*) cp; (*p++ = *q++) != '\0';) -	continue; -    for (p--, q = (Char *) dp; (*p++ = *q++) != '\0';) -	continue; -    return (ep); -} - -Char   * -s_strend(cp) -    register const Char *cp; -{ -    if (!cp) -	return ((Char *) cp); -    while (*cp) -	cp++; -    return ((Char *) cp); -} - -Char   * -s_strstr(s, t) -    register const Char *s, *t; -{ -    do { -	register const Char *ss = s; -	register const Char *tt = t; - -	do -	    if (*tt == '\0') -		return ((Char *) s); -	while (*ss++ == *tt++); -    } while (*s++ != '\0'); -    return (NULL); -} - -#endif				/* SHORT_STRINGS */ - -char   * -short2qstr(src) -    register const Char *src; -{ -    static char *sdst = NULL; -    static size_t dstsize = 0; -    register char *dst, *edst; - -    if (src == NULL) -	return (NULL); - -    if (sdst == NULL) { -	dstsize = MALLOC_INCR; -	sdst = (char *) xmalloc((size_t) (dstsize * sizeof(char))); -    } -    dst = sdst; -    edst = &dst[dstsize]; -    while (*src) { -	if (*src & QUOTE) { -	    *dst++ = '\\'; -	    if (dst == edst) { -		dstsize += MALLOC_INCR; -		sdst = (char *) xrealloc((ptr_t) sdst, -					 (size_t) (dstsize * sizeof(char))); -		edst = &sdst[dstsize]; -		dst = &edst[-MALLOC_INCR]; -	    } -	} -	*dst++ = (char) *src++; -	if (dst == edst) { -	    dstsize += MALLOC_INCR; -	    sdst = (char *) xrealloc((ptr_t) sdst, -				     (size_t) (dstsize * sizeof(char))); -	    edst = &sdst[dstsize]; -	    dst = &edst[-MALLOC_INCR]; -	} -    } -    *dst = 0; -    return (sdst); -} | 
