summaryrefslogtreecommitdiff
path: root/dmake/dbug/malloc/string.c
diff options
context:
space:
mode:
Diffstat (limited to 'dmake/dbug/malloc/string.c')
-rw-r--r--dmake/dbug/malloc/string.c533
1 files changed, 0 insertions, 533 deletions
diff --git a/dmake/dbug/malloc/string.c b/dmake/dbug/malloc/string.c
deleted file mode 100644
index 7b92bf07ad1b..000000000000
--- a/dmake/dbug/malloc/string.c
+++ /dev/null
@@ -1,533 +0,0 @@
-/*
- * (c) Copyright 1990 Conor P. Cahill (uunet!virtech!cpcahil).
- * You may copy, distribute, and use this software as long as this
- * copyright statement is not removed.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include "malloc.h"
-
-#ifndef lint
-static
-char rcs_hdr[] = "$Id: string.c,v 1.2 2006-07-25 10:10:03 rt Exp $";
-#endif
-
-int malloc_checking = 0;
-
-char *
-strcat(str1,str2)
- register char * str1;
- register char * str2;
-{
- char * rtn;
- int len;
-
- /*
- * check pointers agains malloc region. The malloc* functions
- * will properly handle the case where a pointer does not
- * point into malloc space.
- */
- malloc_checking = 1;
-
- len = strlen(str2);
- malloc_check_str("strcat", str2);
-
- len += strlen(str1) + 1;
- malloc_checking = 0;
-
- malloc_check_data("strcat", str1, len);
-
- rtn = str1;
-
- while( *str1 )
- {
- str1++;
- }
-
- while( (*str1 = *str2) != '\0' )
- {
- str1++;
- str2++;
- }
-
- return(rtn);
-}
-
-char *
-strdup(str1)
- register char * str1;
-{
- char * malloc();
- char * rtn;
- register char * str2;
-
- malloc_check_str("strdup", str1);
-
- rtn = str2 = malloc((unsigned)strlen(str1)+1);
-
- if( rtn != (char *) 0)
- {
- while( (*str2 = *str1) != '\0' )
- {
- str1++;
- str2++;
- }
- }
-
- return(rtn);
-}
-
-char *
-strncat(str1,str2,len)
- register char * str1;
- register char * str2;
- register int len;
-{
- int len1;
- int len2;
- char * rtn;
-
- malloc_check_strn("strncat", str2, len);
-
- malloc_checking = 1;
-
- len2 = strlen(str2) + 1;
- len1 = strlen(str1);
-
- malloc_checking = 0;
-
-
- if( (len+1) < len2 )
- {
- len1 += len + 1;
- }
- else
- {
- len1 += len2;
- }
- malloc_check_data("strncat", str1, len1);
-
- rtn = str1;
-
- while( *str1 )
- {
- str1++;
- }
-
- while( len-- && ((*str1++ = *str2++) != '\0') )
- {
- }
-
- if( ! len )
- {
- *str1 = '\0';
- }
-
- return(rtn);
-}
-
-int
-strcmp(str1,str2)
- register char * str1;
- register char * str2;
-{
- malloc_check_str("strcmp", str1);
- malloc_check_str("strcmp", str2);
-
- while( *str1 && (*str1 == *str2) )
- {
- str1++;
- str2++;
- }
-
-
- /*
- * in order to deal with the case of a negative last char of either
- * string when the other string has a null
- */
- if( (*str2 == '\0') && (*str1 == '\0') )
- {
- return(0);
- }
- else if( *str2 == '\0' )
- {
- return(1);
- }
- else if( *str1 == '\0' )
- {
- return(-1);
- }
-
- return( *str1 - *str2 );
-}
-
-int
-strncmp(str1,str2,len)
- register char * str1;
- register char * str2;
- register int len;
-{
- malloc_check_strn("strncmp", str1, len);
- malloc_check_strn("strncmp", str2, len);
-
- while( --len >= 0 && *str1 && (*str1 == *str2) )
- {
- str1++;
- str2++;
- }
-
- if( len < 0 )
- {
- return(0);
- }
- /*
- * in order to deal with the case of a negative last char of either
- * string when the other string has a null
- */
- if( (*str2 == '\0') && (*str1 == '\0') )
- {
- return(0);
- }
- else if( *str2 == '\0' )
- {
- return(1);
- }
- else if( *str1 == '\0' )
- {
- return(-1);
- }
-
- return( *str1 - *str2 );
-}
-
-char *
-strcpy(str1,str2)
- register char * str1;
- register char * str2;
-{
- char * rtn;
- int len;
-
- malloc_checking = 1;
- len = strlen(str2) + 1;
- malloc_checking = 0;
-
- malloc_check_data("strcpy", str1, len);
- malloc_check_data("strcpy", str2, len);
-
- rtn = str1;
-
- while( (*str1++ = *str2++) != '\0')
- {
- }
-
- return(rtn);
-}
-
-char *
-strncpy(str1,str2,len)
- register char * str1;
- register char * str2;
- register int len;
-{
- extern int malloc_checking;
- char * rtn;
-
- malloc_check_data("strncpy", str1, len);
- malloc_check_strn("strncpy", str2, len);
-
- rtn = str1;
-
- while((len-- > 0) && (*str1++ = *str2++) != '\0')
- {
- }
- while( (len-- > 0) )
- {
- *str1++ = '\0';
- }
-
- return(rtn);
-}
-
-int
-strlen(str1)
- register char * str1;
-{
- register char * s;
-
- if(! malloc_checking )
- {
- malloc_check_str("strlen", str1);
- }
-
- for( s = str1; *s; s++)
- {
- }
-
- return( s - str1 );
-}
-
-char *
-strchr(str1,c)
- register char * str1;
- register int c;
-{
- malloc_check_str("strchr", str1);
-
- while( *str1 && (*str1 != (char) c) )
- {
- str1++;
- }
-
- if(*str1 != (char) c)
- {
- str1 = (char *) 0;
- }
-
- return(str1);
-}
-
-char *
-strrchr(str1,c)
- register char * str1;
- register int c;
-{
- register char * rtn = (char *) 0;
-
- malloc_check_str("strrchr", str1);
-
- while( *str1 )
- {
- if(*str1 == (char) c )
- {
- rtn = str1;
- }
- str1++;
- }
-
- if( *str1 == (char) c)
- {
- rtn = str1;
- }
-
- return(rtn);
-}
-
-char *
-index(str1,c)
- char * str1;
- char c;
-{
- return( strchr(str1,c) );
-}
-
-char *
-rindex(str1,c)
- char * str1;
- char c;
-{
- return( strrchr(str1,c) );
-}
-
-char *
-strpbrk(str1,str2)
- register char * str1;
- register char * str2;
-{
- register char * tmp;
-
- malloc_check_str("strpbrk", str1);
- malloc_check_str("strpbrk", str2);
-
- while(*str1)
- {
- for( tmp=str2; *tmp && *tmp != *str1; tmp++)
- {
- }
- if( *tmp )
- {
- break;
- }
- str1++;
- }
-
- if( ! *str1 )
- {
- str1 = (char *) 0;
- }
-
- return(str1);
-}
-
-int
-strspn(str1,str2)
- register char * str1;
- register char * str2;
-{
- register char * tmp;
- char * orig = str1;
-
- malloc_check_str("strspn", str1);
- malloc_check_str("strspn", str2);
-
- while(*str1)
- {
- for( tmp=str2; *tmp && *tmp != *str1; tmp++)
- {
- }
- if(! *tmp )
- {
- break;
- }
- str1++;
- }
-
- return( (int) (str1 - orig) );
-}
-
-int
-strcspn(str1,str2)
- register char * str1;
- register char * str2;
-{
- register char * tmp;
- char * orig = str1;
-
- malloc_check_str("strcspn", str1);
- malloc_check_str("strcspn", str2);
-
- while(*str1)
- {
- for( tmp=str2; *tmp && *tmp != *str1; tmp++)
- {
- }
- if( *tmp )
- {
- break;
- }
- str1++;
- }
-
- return( (int) (str1 - orig) );
-}
-
-/*
- * strtok() source taken from that posted to comp.lang.c by Chris Torek
- * in Jan 1990.
- */
-
-/*
- * Copyright (c) 1989 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-/*
- * Get next token from string s (NULL on 2nd, 3rd, etc. calls),
- * where tokens are nonempty strings separated by runs of
- * chars from delim. Writes NULs into s to end tokens. delim need not
- * remain constant from call to call.
- *
- * Modified by cpc: changed variable names to conform with naming
- * conventions used in rest of code. Added malloc pointer
- * check calls.
- */
-char *
-strtok(str1, str2)
- char * str1;
- char * str2;
-{
- static char * last;
- char * strtoken();
-
- if( str1 )
- {
- malloc_check_str("strtok", str1);
- last = str1;
- }
- malloc_check_str("strtok", str2);
-
- return (strtoken(&last, str2, 1));
-}
-
-
-/*
- * Get next token from string *stringp, where tokens are (possibly empty)
- * strings separated by characters from delim. Tokens are separated
- * by exactly one delimiter iff the skip parameter is false; otherwise
- * they are separated by runs of characters from delim, because we
- * skip over any initial `delim' characters.
- *
- * Writes NULs into the string at *stringp to end tokens.
- * delim will usually, but need not, remain constant from call to call.
- * On return, *stringp points past the last NUL written (if there might
- * be further tokens), or is NULL (if there are definitely no more tokens).
- *
- * If *stringp is NULL, strtoken returns NULL.
- */
-char *
-strtoken(stringp, delim, skip)
- register char **stringp;
- register char *delim;
- int skip;
-{
- register char *s;
- register char *spanp;
- register int c, sc;
- char *tok;
-
- if ((s = *stringp) == NULL)
- return (NULL);
-
- if (skip) {
- /*
- * Skip (span) leading delimiters (s += strspn(s, delim)).
- */
- cont:
- c = *s;
- for (spanp = delim; (sc = *spanp++) != 0;) {
- if (c == sc) {
- s++;
- goto cont;
- }
- }
- if (c == 0) { /* no token found */
- *stringp = NULL;
- return (NULL);
- }
- }
-
- /*
- * Scan token (scan for delimiters: s += strcspn(s, delim), sort of).
- * Note that delim must have one NUL; we stop if we see that, too.
- */
- for (tok = s;;) {
- c = *s++;
- spanp = delim;
- do {
- if ((sc = *spanp++) == c) {
- if (c == 0)
- s = NULL;
- else
- s[-1] = 0;
- *stringp = s;
- return (tok);
- }
- } while (sc != 0);
- }
- /* NOTREACHED */
-}
-