* Copyright (c) 1991 The Regents of the University of California.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* 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
static char sccsid
[] = "@(#)str.c 5.5 (Berkeley) 6/27/91";
* tc.str.c: Short string package
* This has been a lesson of how to write buggy code!
register Char
**sdst
, **dst
;
for (n
= 0; src
[n
] != NULL
; n
++);
sdst
= dst
= (Char
**) xmalloc((size_t) ((n
+ 1) * sizeof(Char
*)));
for (; *src
!= NULL
; src
++)
register char **sdst
, **dst
;
for (n
= 0; src
[n
] != NULL
; n
++);
sdst
= dst
= (char **) xmalloc((size_t) ((n
+ 1) * sizeof(char *)));
for (; *src
!= NULL
; src
++)
*dst
++ = strsave(short2str(*src
));
static size_t dstsize
= 0;
register Char
*dst
, *edst
;
sdst
= (Char
*) xmalloc((size_t) dstsize
* sizeof(Char
));
*dst
++ = (Char
) ((unsigned char) *src
++);
sdst
= (Char
*) xrealloc((ptr_t
) sdst
,
(size_t) dstsize
* sizeof(Char
));
dst
= &edst
[-MALLOC_INCR
];
static char *sdst
= NULL
;
static size_t dstsize
= 0;
register char *dst
, *edst
;
sdst
= (char *) xmalloc((size_t) dstsize
* sizeof(char));
sdst
= (char *) xrealloc((ptr_t
) sdst
,
(size_t) dstsize
* sizeof(char));
dst
= &edst
[-MALLOC_INCR
];
sdst
= (char *) xrealloc((ptr_t
) sdst
,
(size_t) dstsize
* sizeof(char));
dst
= &edst
[-MALLOC_INCR
];
static char *sdst
= NULL
;
static size_t dstsize
= 0;
register char *dst
, *edst
;
sdst
= (char *) xmalloc((size_t) dstsize
* sizeof(char));
sdst
= (char *) xrealloc((ptr_t
) sdst
,
(size_t) dstsize
* sizeof(char));
dst
= &edst
[-MALLOC_INCR
];
register Char
*dst
, *src
;
register Char
*dst
, *src
;
if ((*dst
++ = *src
++) == '\0') {
register Char
*dst
, *src
;
register Char
*dst
, *src
;
if ((*dst
++ = *src
++) == '\0')
for (n
= 0; *str
++; n
++);
register Char
*str1
, *str2
;
for (; *str1
&& *str1
== *str2
; str1
++, str2
++);
* The following case analysis is necessary so that characters which look
* negative collate low against normal characters but high against the
if (*str1
== '\0' && *str2
== '\0')
register Char
*str1
, *str2
;
if (*str1
== '\0' || *str1
!= *str2
)
* The following case analysis is necessary so that characters which look
* negative collate low against normal characters but high against the
if (*str1
== '\0' && *str2
== '\0')
n
= p
= (Char
*) xmalloc((size_t) ((p
- s
) * sizeof(Char
)));
ep
= (Char
*) xmalloc((size_t)
(((p
- cp
) + (q
- dp
) - 1) * sizeof(Char
)));
for (p
= ep
, q
= cp
; *p
++ = *q
++;);
for (p
--, q
= dp
; *p
++ = *q
++;);
#endif /* SHORT_STRINGS */