* Copyright (c) 1991, 1993
* The Regents of the University of California. All rights reserved.
* %sccs.include.redist.c%
static char sccsid
[] = "@(#)str.c 8.1 (Berkeley) %G%";
* 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
];
register Char
*dst
, *src
;
while ((*dst
++ = *src
++) != '\0')
register Char
*dst
, *src
;
if ((*dst
++ = *src
++) == '\0') {
register Char
*dst
, *src
;
while ((*dst
++ = *src
++) != '\0')
register Char
*dst
, *src
;
if ((*dst
++ = *src
++) == '\0')
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
;
* 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.
n
= p
= (Char
*) xmalloc((size_t) ((p
- s
) * sizeof(Char
)));
while ((*p
++ = *s
++) != '\0')
ep
= (Char
*) xmalloc((size_t)
(((p
- cp
) + (q
- dp
) - 1) * sizeof(Char
)));
for (p
= ep
, q
= cp
; (*p
++ = *q
++) != '\0';)
for (p
--, q
= dp
; (*p
++ = *q
++) != '\0';)
#endif /* SHORT_STRINGS */
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
];
* XXX: Should we worry about QUOTE'd chars?
static char *sdst
= NULL
;
static size_t dstsize
= 0;
n
= ((dp
- cp
) << 2) + 1; /* 4 times + NULL */
sdst
= (char *) (dstsize
?
xrealloc(sdst
, (size_t) n
* sizeof(char)) :
xmalloc((size_t) n
* sizeof(char)));
* XXX: When we are in AsciiOnly we want all characters >= 0200 to
* be encoded, but currently there is no way in vis to do that.
(void) strvis(sdst
, short2str(cp
), VIS_NOSLASH
);