* Copyright (c) 1980, 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
[] = "@(#)misc.c 5.13 (Berkeley) 6/27/91";
static int renum
__P((int, int));
return (0); /* Check for nil pointer */
n
= p
= (char *) xmalloc((size_t) ((p
- s
) * sizeof(char)));
xprintf("%s", short2str(*av
));
register Char
**av
= oav
;
(void) blkcpy(blkend(up
), vp
);
register Char
**av
= av0
;
(Char
**) xcalloc((size_t) (blklen(v
) + 1), 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
++;);
register Char
**up
, **vp
;
(Char
**) xcalloc((size_t) (blklen(up
) + blklen(vp
) + 1),
* This routine is called after an error to close up
* any units which may have been left open accidentally.
for (f
= 0; f
< NOFILE
; f
++)
if (f
!= SHIN
&& f
!= SHOUT
&& f
!= SHDIAG
&& f
!= OLDSTD
&&
* Move descriptor i to j.
* If j is -1 then we just want to get i to a safe place,
* i.e. to a unit > 2. This also happens in dcopy.
if (i
== j
|| i
< 0 || j
< 0 && i
> 2)
* Left shift a command argument list, discarding
* the first c arguments. Used in "shift" commands
* as well as by commands like "repeat".
while (*cp
&& Isdigit(*cp
))
Char
**nv
= (Char
**) xcalloc((size_t) (blklen(v
) + 1), sizeof(Char
**));
#endif /* SHORT_STRINGS */
setname(short2str(name
));
stderror(ERR_NAME
| ERR_UNDVAR
);
register Char
*sub
, *str
;