Return to BSD News archive
Newsgroups: comp.bugs.2bsd
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!hobyah.cc.uq.oz.au!bunyip.cc.uq.oz.au!munnari.OZ.AU!news.ecn.uoknor.edu!qns3.qns.com!imci4!newsfeed.internetmci.com!news.kei.com!nntp.coast.net!frankensun.altair.com!wlbr!moe!sms
From: sms@moe.2bsd.com (Steven M. Schultz)
Subject: sys_errlist[] wastes 2kb of D-space [+fix] (#310 2 of 4)
Organization: GTE Government Systems, Westlake Village
Message-ID: <Dp4GHq.G69@moe.2bsd.com>
Date: Sun, 31 Mar 1996 07:51:26 GMT
Lines: 1949
Subject: sys_errlist[] wastes 2kb of D-space [+fix] (#310 2 of 4)
Index: lib/libc/gen/errlst.c+many,many_more 2.11BSD
Description:
The array of system error message strings occupies approximately
2kb of Data space in any program which calls perror(), strerror()
or explicitly references sys_errlist[] or sys_nerr. Since sys_errlist
is initialized data it also occupies ~4 sectors of disk space in
each program's executable disk image.
Repeat-By:
Observation. Or by compiling these test programs and using size(1):
extern char *sys_errlist[];
main() { char *cp; cp = sys_errlist[0]; exit(0); }
cc x.c
size a.out
text data bss dec hex
362 2042 4 2408 968
main() { perror("foo"); exit(0); }
cc y.c
size a.out
text data bss dec hex
3310 2298 4 5668 1624
In both cases the 'data' segment is 100% sys_errlist[]'s contribution.
After applying the updates in this kit the second program's size is:
text data bss dec hex
1008 60 68 1136 470
Fix:
This is #310 (part 2 of 4). This is the first of the three patch
files in the update kit.
Refer to the instructions in #309.
----------------------------cut here---------------------------
*** /usr/include/string.h.old Mon Jan 15 20:29:08 1996
--- /usr/include/string.h Wed Mar 20 22:10:13 1996
***************
*** 3,9 ****
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
! * @(#)string.h 5.1.2 (2.11BSD) 1996/1/15
*/
#include <sys/types.h>
--- 3,9 ----
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
! * @(#)string.h 5.1.3 (2.11BSD) 1996/3/20
*/
#include <sys/types.h>
***************
*** 13,19 ****
#endif
extern char *strcat(), *strncat(), *strcpy(), *strncpy(), *index();
! extern char *rindex(), *strstr();
extern int strcmp(), strncmp(), strcasecmp(), strncasecmp(), strlen();
extern int memcmp();
--- 13,19 ----
#endif
extern char *strcat(), *strncat(), *strcpy(), *strncpy(), *index();
! extern char *rindex(), *strstr(), *syserrlst();
extern int strcmp(), strncmp(), strcasecmp(), strncasecmp(), strlen();
extern int memcmp();
*** /usr/lib/lint/llib-lc.old Tue Mar 26 23:19:20 1996
--- /usr/lib/lint/llib-lc Tue Mar 26 23:32:27 1996
***************
*** 1,4 ****
! /* @(#)llib-lc 1.42 (2.11BSD GTE) 1996/1/27 */
/* LINTLIBRARY */
--- 1,4 ----
! /* @(#)llib-lc 1.43 (2.11BSD GTE) 1996/3/26 */
/* LINTLIBRARY */
***************
*** 387,392 ****
--- 387,393 ----
char * strcpy(a, b) char *a, *b; { return a; }
char * strcpyn(a, b, n) char *a, *b; { return a; }
int strcspn(s, set) char *s, *set; { return(0); }
+ char * strerror(err) int err; { return ((char *)0); }
int strlen(s) char *s; { return(1); }
char * strncat(a, b, n) char *a, *b; { return a;}
int strncmp(a, b, n) char *a, *b; { return(1); }
***************
*** 393,407 ****
char * strncpy(a, b, n) char *a, *b; { return a; }
char * strpbrk(s, brk) char *s, *brk; { return s; }
char * strrchr(s, c) char *s, c; { return s; }
int strspn(s, set) char *s, *set; { return(0); }
char * strtok(s, sep) char *s, *sep; { return s; }
int stty(f, b) struct sgttyb *b; { return(0); }
! swab( f, t, n) char *f, *t; {;}
/* VARARGS2 */
syslog(l, f) char *f; {}
- char * sys_errlist[];
char * sys_siglist[];
- int sys_nerr;
int system(s) char *s; { return(0); }
long tell(f) { return((long)0); }
long telldir( p ) DIR *p; { return 1L; }
--- 394,409 ----
char * strncpy(a, b, n) char *a, *b; { return a; }
char * strpbrk(s, brk) char *s, *brk; { return s; }
char * strrchr(s, c) char *s, c; { return s; }
+ char * strsep(stringp, delim) char **stringp; char *delim; { return(delim); }
int strspn(s, set) char *s, *set; { return(0); }
char * strtok(s, sep) char *s, *sep; { return s; }
int stty(f, b) struct sgttyb *b; { return(0); }
! char * syserrlst(err) int err; { return((char *) 0); }
! char * __errlst(err,path) int err; char *path; { return((char *) 0); }
! int swab( f, t, n) char *f, *t; {;}
/* VARARGS2 */
syslog(l, f) char *f; {}
char * sys_siglist[];
int system(s) char *s; { return(0); }
long tell(f) { return((long)0); }
long telldir( p ) DIR *p; { return 1L; }
*** /usr/src/bin/csh/sh.exec.c.old Sat Aug 31 00:06:43 1991
--- /usr/src/bin/csh/sh.exec.c Wed Mar 20 22:48:27 1996
***************
*** 5,14 ****
*/
#if !defined(lint) && defined(DOSCCS)
! static char *sccsid = "@(#)sh.exec.c 5.2 (Berkeley) 6/6/85";
#endif
#include "sh.h"
#include <sys/dir.h>
/*
--- 5,15 ----
*/
#if !defined(lint) && defined(DOSCCS)
! static char *sccsid = "@(#)sh.exec.c 5.2.1 (2.11BSD) 1996/3/20";
#endif
#include "sh.h"
+ #include <string.h>
#include <sys/dir.h>
/*
***************
*** 195,201 ****
{
register struct varent *v;
register char **vp;
- extern char *sys_errlist[];
char *lastsh[2];
execv(f, t);
--- 196,201 ----
***************
*** 240,246 ****
default:
if (exerr == 0) {
! exerr = sys_errlist[errno];
expath = savestr(f);
}
}
--- 240,246 ----
default:
if (exerr == 0) {
! exerr = syserrlst(errno);
expath = savestr(f);
}
}
*** /usr/src/bin/csh/sh.proc.c.old Sat Aug 31 00:11:22 1991
--- /usr/src/bin/csh/sh.proc.c Wed Mar 20 22:50:07 1996
***************
*** 5,16 ****
*/
#if !defined(lint) && defined(DOSCCS)
! static char *sccsid = "@(#)sh.proc.c 5.5 (Berkeley) 5/13/86";
#endif
#include "sh.h"
#include "sh.dir.h"
#include "sh.proc.h"
#include <sys/wait.h>
#include <sys/ioctl.h>
--- 5,17 ----
*/
#if !defined(lint) && defined(DOSCCS)
! static char *sccsid = "@(#)sh.proc.c 5.5.1 (2.11BSD) 1996/3/20";
#endif
#include "sh.h"
#include "sh.dir.h"
#include "sh.proc.h"
+ #include <string.h>
#include <sys/wait.h>
#include <sys/ioctl.h>
***************
*** 819,825 ****
int pid, err = 0;
long omask;
char *cp;
- extern char *sys_errlist[];
omask = sigmask(SIGCHLD);
if (setintr)
--- 820,825 ----
***************
*** 846,852 ****
}
if (killpg(pp->p_jobid, signum) < 0) {
printf("%s: ", cp);
! printf("%s\n", sys_errlist[errno]);
err++;
}
if (signum == SIGTERM || signum == SIGHUP)
--- 846,852 ----
}
if (killpg(pp->p_jobid, signum) < 0) {
printf("%s: ", cp);
! printf("%s\n", syserrlst(errno));
err++;
}
if (signum == SIGTERM || signum == SIGHUP)
***************
*** 857,863 ****
pid = atoi(cp);
if (kill(pid, signum) < 0) {
printf("%d: ", pid);
! printf("%s\n", sys_errlist[errno]);
err++;
goto cont;
}
--- 857,863 ----
pid = atoi(cp);
if (kill(pid, signum) < 0) {
printf("%d: ", pid);
! printf("%s\n", syserrlst(errno));
err++;
goto cont;
}
*** /usr/src/bin/kill.c.old Sun Feb 8 14:24:52 1987
--- /usr/src/bin/kill.c Thu Mar 21 19:46:33 1996
***************
*** 1,4 ****
! static char *sccsid = "@(#)kill.c 4.4 (Berkeley) 4/20/86";
/*
* kill - send signal to process
*/
--- 1,4 ----
! static char *sccsid = "@(#)kill.c 4.4.1 (2.11BSD) 1996/3/21";
/*
* kill - send signal to process
*/
***************
*** 18,24 ****
{
register signo, pid, res;
int errlev;
- extern char *sys_errlist[];
extern errno;
errlev = 0;
--- 18,23 ----
***************
*** 65,71 ****
goto usage;
res = kill(pid = atoi(*argv), signo);
if (res<0) {
! printf("%u: %s\n", pid, sys_errlist[errno]);
errlev = 1;
}
argc--;
--- 64,70 ----
goto usage;
res = kill(pid = atoi(*argv), signo);
if (res<0) {
! printf("%u: %s\n", pid, strerror(errno));
errlev = 1;
}
argc--;
*** /usr/src/bin/rcp.c.old Tue Sep 5 09:10:53 1989
--- /usr/src/bin/rcp.c Thu Mar 21 19:55:04 1996
***************
*** 15,28 ****
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
! #ifndef lint
char copyright[] =
"@(#) Copyright (c) 1983 The Regents of the University of California.\n\
All rights reserved.\n";
- #endif /* not lint */
! #ifndef lint
! static char sccsid[] = "@(#)rcp.c 5.20 (Berkeley) 5/23/89";
#endif /* not lint */
/*
--- 15,26 ----
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
! #if !defined(lint) && defined(DOSCCS)
char copyright[] =
"@(#) Copyright (c) 1983 The Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)rcp.c 5.20.1 (2.11BSD) 1996/3/21";
#endif /* not lint */
/*
***************
*** 54,60 ****
#endif
extern int errno;
- extern char *sys_errlist[];
struct passwd *pwd;
int errs, pflag, port, rem, userid;
int iamremote, iamrecursive, targetshouldbedirectory;
--- 52,57 ----
***************
*** 356,362 ****
return;
errno = ENOTDIR;
}
! error("rcp: %s: %s.\n", cp, sys_errlist[errno]);
exit(1);
}
--- 353,359 ----
return;
errno = ENOTDIR;
}
! error("rcp: %s: %s.\n", cp, strerror(errno));
exit(1);
}
***************
*** 429,435 ****
for (x = 0; x < argc; x++) {
name = argv[x];
if ((f = open(name, O_RDONLY, 0)) < 0) {
! error("rcp: %s: %s\n", name, sys_errlist[errno]);
continue;
}
if (fstat(f, &stb) < 0)
--- 426,432 ----
for (x = 0; x < argc; x++) {
name = argv[x];
if ((f = open(name, O_RDONLY, 0)) < 0) {
! error("rcp: %s: %s\n", name, strerror(errno));
continue;
}
if (fstat(f, &stb) < 0)
***************
*** 493,499 ****
if (readerr == 0)
(void)write(rem, "", 1);
else
! error("rcp: %s: %s\n", name, sys_errlist[readerr]);
(void)response();
}
}
--- 490,496 ----
if (readerr == 0)
(void)write(rem, "", 1);
else
! error("rcp: %s: %s\n", name, strerror(readerr));
(void)response();
}
}
***************
*** 507,513 ****
char *last, *vect[1], path[MAXPATHLEN];
if (!(d = opendir(name))) {
! error("rcp: %s: %s\n", name, sys_errlist[errno]);
return;
}
last = rindex(name, '/');
--- 504,510 ----
char *last, *vect[1], path[MAXPATHLEN];
if (!(d = opendir(name))) {
! error("rcp: %s: %s\n", name, strerror(errno));
return;
}
last = rindex(name, '/');
***************
*** 737,748 ****
setimes = 0;
if (utimes(np, tv) < 0)
error("rcp: can't set times on %s: %s\n",
! np, sys_errlist[errno]);
}
continue;
}
if ((ofd = open(np, O_WRONLY|O_CREAT, mode)) < 0) {
! bad: error("rcp: %s: %s\n", np, sys_errlist[errno]);
continue;
}
if (exists && pflag)
--- 734,745 ----
setimes = 0;
if (utimes(np, tv) < 0)
error("rcp: can't set times on %s: %s\n",
! np, strerror(errno));
}
continue;
}
if ((ofd = open(np, O_WRONLY|O_CREAT, mode)) < 0) {
! bad: error("rcp: %s: %s\n", np, strerror(errno));
continue;
}
if (exists && pflag)
***************
*** 764,770 ****
j = read(rem, cp, amt);
if (j <= 0) {
error("rcp: %s\n",
! j ? sys_errlist[errno] :
"dropped connection");
exit(1);
}
--- 761,767 ----
j = read(rem, cp, amt);
if (j <= 0) {
error("rcp: %s\n",
! j ? strerror(errno) :
"dropped connection");
exit(1);
}
***************
*** 784,790 ****
wrerr++;
if (ftruncate(ofd, size))
error("rcp: can't truncate %s: %s\n", np,
! sys_errlist[errno]);
(void)close(ofd);
(void)response();
if (setimes) {
--- 781,787 ----
wrerr++;
if (ftruncate(ofd, size))
error("rcp: can't truncate %s: %s\n", np,
! strerror(errno));
(void)close(ofd);
(void)response();
if (setimes) {
***************
*** 791,800 ****
setimes = 0;
if (utimes(np, tv) < 0)
error("rcp: can't set times on %s: %s\n",
! np, sys_errlist[errno]);
}
if (wrerr)
! error("rcp: %s: %s\n", np, sys_errlist[errno]);
else
(void)write(rem, "", 1);
}
--- 788,797 ----
setimes = 0;
if (utimes(np, tv) < 0)
error("rcp: can't set times on %s: %s\n",
! np, strerror(errno));
}
if (wrerr)
! error("rcp: %s: %s\n", np, strerror(errno));
else
(void)write(rem, "", 1);
}
***************
*** 813,819 ****
char *malloc();
if (fstat(fd, &stb) < 0) {
! error("rcp: fstat: %s\n", sys_errlist[errno]);
return(0);
}
size = roundup(stb.st_blksize, blksize);
--- 810,816 ----
char *malloc();
if (fstat(fd, &stb) < 0) {
! error("rcp: fstat: %s\n", strerror(errno));
return(0);
}
size = roundup(stb.st_blksize, blksize);
*** /usr/src/etc/Makefile.old Tue Jan 23 19:30:37 1996
--- /usr/src/etc/Makefile Thu Mar 28 20:28:53 1996
***************
*** 3,9 ****
# All rights reserved. The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
! # @(#)Makefile 5.14.5 (2.11BSD GTE) 1996/1/15
#
DESTDIR=
CFLAGS= -O
--- 3,9 ----
# All rights reserved. The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
! # @(#)Makefile 5.14.6 (2.11BSD GTE) 1996/3/26
#
DESTDIR=
CFLAGS= -O
***************
*** 63,70 ****
install -s ${STD} ${NSTD} ${DESTDIR}/etc
-for i in ${OPTIONAL}; do \
(if [ -f $$i ]; then install -s $$i ${DESTDIR}/etc; fi); done
! -for i in ${SETUID}; do \
! (install -o root -m 4755 -s $$i ${DESTDIR}/etc/$$i); done
-for i in ${KMEM}; do \
(install -g kmem -m 2755 -s $$i ${DESTDIR}/etc/$$i); done
-for i in ${OPERATOR}; do \
--- 63,71 ----
install -s ${STD} ${NSTD} ${DESTDIR}/etc
-for i in ${OPTIONAL}; do \
(if [ -f $$i ]; then install -s $$i ${DESTDIR}/etc; fi); done
! -for i in ${SETUID} x; do \
! (if [ $$i != "x" ]; then install -o root -m 4755 -s $$i \
! ${DESTDIR}/etc/$$i; fi); done
-for i in ${KMEM}; do \
(install -g kmem -m 2755 -s $$i ${DESTDIR}/etc/$$i); done
-for i in ${OPERATOR}; do \
*** /usr/src/etc/ftpd/ftpd.c.old Wed Nov 17 19:30:03 1993
--- /usr/src/etc/ftpd/ftpd.c Fri Mar 22 22:43:24 1996
***************
*** 20,26 ****
"@(#) Copyright (c) 1985, 1988 Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)ftpd.c 5.28.1 (2.11BSD) 11/17/93";
#endif
/*
--- 20,26 ----
"@(#) Copyright (c) 1985, 1988 Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)ftpd.c 5.28.2 (2.11BSD) 1996/3/22";
#endif
/*
***************
*** 67,75 ****
* NOT to be used on this machine.
* Commonly used to disallow uucp.
*/
- extern int errno;
- extern char *sys_errlist[];
- extern int sys_nerr;
extern char *crypt();
extern char version[];
extern char *home; /* pointer to home directory for glob */
--- 67,72 ----
***************
*** 707,713 ****
reply(425, "Can't create data socket (%s,%d): %s.",
inet_ntoa(data_source.sin_addr),
ntohs(data_source.sin_port),
! errno < sys_nerr ? sys_errlist[errno] : "unknown error");
return (NULL);
}
data = fileno(file);
--- 704,710 ----
reply(425, "Can't create data socket (%s,%d): %s.",
inet_ntoa(data_source.sin_addr),
ntohs(data_source.sin_port),
! strerror(errno));
return (NULL);
}
data = fileno(file);
***************
*** 1275,1284 ****
int code;
char *string;
{
! if (errno < sys_nerr)
! reply(code, "%s: %s.", string, sys_errlist[errno]);
! else
! reply(code, "%s: unknown error %d.", string, errno);
}
static char *onefile[] = {
--- 1272,1278 ----
int code;
char *string;
{
! reply(code, "%s: %s.", string, strerror(errno));
}
static char *onefile[] = {
*** /usr/src/etc/rlogind/rlogind.c.old Thu Mar 8 14:07:19 1990
--- /usr/src/etc/rlogind/rlogind.c Fri Mar 22 23:10:27 1996
***************
*** 15,29 ****
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
! #ifndef lint
char copyright[] =
"@(#) Copyright (c) 1983, 1988 The Regents of the University of California.\n\
All rights reserved.\n";
- #endif /* not lint */
! #ifndef lint
! static char sccsid[] = "@(#)rlogind.c 5.22.1.7 (Berkeley) 9/11/89";
! #endif /* not lint */
/*
* remote login server:
--- 15,27 ----
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
! #if !defined(lint) && defined(DOSCCS)
char copyright[] =
"@(#) Copyright (c) 1983, 1988 The Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)rlogind.c 5.22.1.8 (2.11BSD) 1996/3/22";
! #endif
/*
* remote login server:
***************
*** 74,83 ****
#define SUPERUSER(pwd) ((pwd)->pw_uid == 0)
- extern int errno;
int reapchild();
struct passwd *getpwnam(), *pwd;
- char *malloc();
main(argc, argv)
int argc;
--- 72,79 ----
***************
*** 512,524 ****
char *msg;
{
char buf[BUFSIZ];
- extern int sys_nerr;
- extern char *sys_errlist[];
! if ((unsigned)errno < sys_nerr)
! (void) sprintf(buf, "%s: %s", msg, sys_errlist[errno]);
! else
! (void) sprintf(buf, "%s: Error %d", msg, errno);
fatal(f, buf);
}
--- 508,515 ----
char *msg;
{
char buf[BUFSIZ];
! (void) sprintf(buf, "%s: %s", msg, strerror(errno));
fatal(f, buf);
}
*** /usr/src/etc/rmt.c.old Sun Feb 15 20:51:18 1987
--- /usr/src/etc/rmt.c Fri Mar 22 22:58:44 1996
***************
*** 4,18 ****
* specifies the terms and conditions for redistribution.
*/
! #ifndef lint
char copyright[] =
"@(#) Copyright (c) 1983 Regents of the University of California.\n\
All rights reserved.\n";
- #endif not lint
! #ifndef lint
! static char sccsid[] = "@(#)rmt.c 5.2 (Berkeley) 1/7/86";
! #endif not lint
/*
* rmt
--- 4,16 ----
* specifies the terms and conditions for redistribution.
*/
! #if !defined(lint) && defined(DOSCCS)
char copyright[] =
"@(#) Copyright (c) 1983 Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)rmt.c 5.2.1 (2.11BSD) 1996/3/22";
! #endif
/*
* rmt
***************
*** 23,28 ****
--- 21,29 ----
#include <sys/socket.h>
#include <sys/mtio.h>
#include <errno.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
int tape = -1;
***************
*** 33,46 ****
#define SSIZE 64
char device[SSIZE];
char count[SSIZE], mode[SSIZE], pos[SSIZE], op[SSIZE];
-
- extern errno;
- char *sys_errlist[];
char resp[BUFSIZ];
- char *sprintf();
- long lseek();
-
FILE *debug;
#define DEBUG(f) if (debug) fprintf(debug, f)
#define DEBUG1(f,a) if (debug) fprintf(debug, f, a)
--- 34,41 ----
***************
*** 89,95 ****
case 'L':
getstring(count); getstring(pos);
DEBUG2("rmtd: L %s %s\n", count, pos);
! rval = lseek(tape, (long) atoi(count), atoi(pos));
if (rval < 0)
goto ioerror;
goto respond;
--- 84,90 ----
case 'L':
getstring(count); getstring(pos);
DEBUG2("rmtd: L %s %s\n", count, pos);
! rval = lseek(tape, atol(count), atoi(pos));
if (rval < 0)
goto ioerror;
goto respond;
***************
*** 165,172 ****
getstring(bp)
char *bp;
{
! int i;
! char *cp = bp;
for (i = 0; i < SSIZE; i++) {
if (read(0, cp+i, 1) != 1)
--- 160,167 ----
getstring(bp)
char *bp;
{
! register int i;
! register char *cp = bp;
for (i = 0; i < SSIZE; i++) {
if (read(0, cp+i, 1) != 1)
***************
*** 182,194 ****
char *record;
int size;
{
- extern char *malloc();
if (size <= maxrecsize)
return (record);
if (record != 0)
free(record);
! record = malloc(size);
if (record == 0) {
DEBUG("rmtd: cannot allocate buffer space\n");
exit(4);
--- 177,188 ----
char *record;
int size;
{
if (size <= maxrecsize)
return (record);
if (record != 0)
free(record);
! record = (char *)malloc(size);
if (record == 0) {
DEBUG("rmtd: cannot allocate buffer space\n");
exit(4);
***************
*** 204,210 ****
int num;
{
! DEBUG2("rmtd: E %d (%s)\n", num, sys_errlist[num]);
! (void) sprintf(resp, "E%d\n%s\n", num, sys_errlist[num]);
! (void) write(1, resp, strlen (resp));
}
--- 198,204 ----
int num;
{
! DEBUG2("rmtd: E %d (%s)\n", num, strerror(num));
! (void) sprintf(resp, "E%d\n%s\n", num, strerror(num));
! (void) write(1, resp, strlen(resp));
}
*** /usr/src/etc/routed/defs.h.old Mon Jan 10 21:45:10 1994
--- /usr/src/etc/routed/defs.h Fri Mar 22 22:50:11 1996
***************
*** 3,9 ****
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
! * @(#)defs.h 5.3.1 (2.11BSD GTE) 1/1/94
*/
/*
--- 3,9 ----
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
! * @(#)defs.h 5.3.2 (2.11BSD GTE) 1996/3/22
*/
/*
***************
*** 56,62 ****
char **argv0;
struct servent *sp;
- extern char *sys_errlist[];
extern int errno;
char *malloc();
--- 56,61 ----
*** /usr/src/etc/syslogd.c.old Wed Jan 24 22:44:51 1996
--- /usr/src/etc/syslogd.c Fri Mar 22 23:06:26 1996
***************
*** 9,15 ****
"@(#) Copyright (c) 1983 Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)syslogd.c 5.13.2 (2.11BSD GTE) 1996/1/24";
#endif
/*
--- 9,15 ----
"@(#) Copyright (c) 1983 Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)syslogd.c 5.13.3 (2.11BSD GTE) 1996/3/22";
#endif
/*
***************
*** 46,52 ****
#include <ctype.h>
#include <signal.h>
#include <sysexits.h>
! #include <strings.h>
#include <sys/syslog.h>
#include <sys/types.h>
--- 46,52 ----
#include <ctype.h>
#include <signal.h>
#include <sysexits.h>
! #include <string.h>
#include <sys/syslog.h>
#include <sys/types.h>
***************
*** 141,150 ****
int MarkInterval = 20; /* interval between marks in minutes */
int MarkSeq = 0; /* mark sequence number */
- extern int errno, sys_nerr;
- extern char *sys_errlist[];
- extern char *ctime(), *index();
-
main(argc, argv)
int argc;
char **argv;
--- 141,146 ----
***************
*** 755,764 ****
if (errno == 0)
(void) sprintf(buf, "syslogd: %s", type);
- else if ((unsigned) errno > sys_nerr)
- (void) sprintf(buf, "syslogd: %s: error %d", type, errno);
else
! (void) sprintf(buf, "syslogd: %s: %s", type, sys_errlist[errno]);
errno = 0;
dprintf("%s\n", buf);
logmsg(LOG_SYSLOG|LOG_ERR, buf, LocalHostName, ADDDATE);
--- 751,758 ----
if (errno == 0)
(void) sprintf(buf, "syslogd: %s", type);
else
! (void) sprintf(buf, "syslogd: %s: %s", type, strerror(errno));
errno = 0;
dprintf("%s\n", buf);
logmsg(LOG_SYSLOG|LOG_ERR, buf, LocalHostName, ADDDATE);
*** /usr/src/etc/tcpd/percent_m.c.old Wed Dec 28 08:42:37 1994
--- /usr/src/etc/tcpd/percent_m.c Sat Mar 23 22:04:34 1996
***************
*** 4,11 ****
* Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
*/
! #ifndef lint
! static char sccsid[] = "@(#) percent_m.c 1.1 94/12/28 17:42:37";
#endif
#include <stdio.h>
--- 4,11 ----
* Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
*/
! #if !defined(lint) && defined(DOSCCS)
! static char sccsid[] = "@(#) percent_m.c 1.1.1 96/3/23 17:42:37";
#endif
#include <stdio.h>
***************
*** 12,23 ****
#include <errno.h>
#include <string.h>
- extern int errno;
- #ifndef SYS_ERRLIST_DEFINED
- extern char *sys_errlist[];
- extern int sys_nerr;
- #endif
-
#include "mystdarg.h"
char *percent_m(obuf, ibuf)
--- 12,17 ----
***************
*** 29,39 ****
while (*bp = *cp)
if (*cp == '%' && cp[1] == 'm') {
! if (errno < sys_nerr && errno > 0) {
! strcpy(bp, sys_errlist[errno]);
! } else {
! sprintf(bp, "Unknown error %d", errno);
! }
bp += strlen(bp);
cp += 2;
} else {
--- 23,29 ----
while (*bp = *cp)
if (*cp == '%' && cp[1] == 'm') {
! strcpy(bp, strerror(errno));
bp += strlen(bp);
cp += 2;
} else {
*** /usr/src/etc/tcpd/tli-sequent.c.old Wed Dec 28 08:42:51 1994
--- /usr/src/etc/tcpd/tli-sequent.c Sat Mar 23 22:03:24 1996
***************
*** 7,14 ****
* Modified slightly to conform to the new internal interfaces - Wietse
*/
! #ifndef lint
! static char sccsid[] = "@(#) tli-sequent.c 1.1 94/12/28 17:42:51";
#endif
#ifdef TLI_SEQUENT
--- 7,14 ----
* Modified slightly to conform to the new internal interfaces - Wietse
*/
! #if !defined(lint) && defined(DOSCCS)
! static char sccsid[] = "@(#) tli-sequent.c 1.1.1 96/3/23 17:42:51";
#endif
#ifdef TLI_SEQUENT
***************
*** 156,169 ****
} else {
return (t_errlist[t_errno]);
}
! } else {
! if (errno < 0 || errno >= sys_nerr) {
! sprintf(buf, "Unknown UNIX error %d", errno);
! return (buf);
! } else {
! return (sys_errlist[errno]);
! }
! }
}
/* tli_sink - absorb unreceived datagram */
--- 156,163 ----
} else {
return (t_errlist[t_errno]);
}
! } else
! return(strerror(errno));
}
/* tli_sink - absorb unreceived datagram */
*** /usr/src/etc/tcpd/tli.c.old Tue Jan 3 13:26:04 1995
--- /usr/src/etc/tcpd/tli.c Sat Mar 23 22:02:15 1996
***************
*** 14,21 ****
* Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
*/
! #ifndef lint
! static char sccsid[] = "@(#) tli.c 1.14 95/01/03 22:26:03";
#endif
#ifdef TLI
--- 14,21 ----
* Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
*/
! #if !defined(lint) && defined(DOSCCS)
! static char sccsid[] = "@(#) tli.c 1.14.1 96/03/23 22:26:03";
#endif
#ifdef TLI
***************
*** 40,47 ****
extern char *nc_sperror();
extern int errno;
- extern char *sys_errlist[];
- extern int sys_nerr;
extern int t_errno;
extern char *t_errlist[];
extern int t_nerr;
--- 40,45 ----
***************
*** 304,317 ****
} else {
return (t_errlist[t_errno]);
}
! } else {
! if (errno < 0 || errno >= sys_nerr) {
! sprintf(buf, "Unknown UNIX error %d", errno);
! return (buf);
! } else {
! return (sys_errlist[errno]);
! }
! }
}
/* tli_sink - absorb unreceived datagram */
--- 302,309 ----
} else {
return (t_errlist[t_errno]);
}
! } else
! return(strerror(errno));
}
/* tli_sink - absorb unreceived datagram */
*** /usr/src/etc/telnetd.c.old Mon Jan 10 21:54:08 1994
--- /usr/src/etc/telnetd.c Fri Mar 22 23:01:16 1996
***************
*** 9,15 ****
"@(#) Copyright (c) 1983 Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)telnetd.c 5.20.1 (Berkeley) 1/1/94";
#endif
/*
--- 9,15 ----
"@(#) Copyright (c) 1983 Regents of the University of California.\n\
All rights reserved.\n";
! static char sccsid[] = "@(#)telnetd.c 5.20.2 (2.11BSD) 1996/3/22";
#endif
/*
***************
*** 341,349 ****
char *msg;
{
char buf[BUFSIZ];
- extern char *sys_errlist[];
! (void) sprintf(buf, "%s: %s\r\n", msg, sys_errlist[errno]);
fatal(f, buf);
}
--- 341,348 ----
char *msg;
{
char buf[BUFSIZ];
! (void) sprintf(buf, "%s: %s\r\n", msg, strerror(errno));
fatal(f, buf);
}
*** /usr/src/games/hack/Makefile.old Sun Aug 30 13:33:03 1987
--- /usr/src/games/hack/Makefile Thu Mar 21 21:55:13 1996
***************
*** 1,3 ****
--- 1,5 ----
+ # #(@) Makefile 1.1 (2.11BSD) 1996/3/21
+ #
# Hack Overlay Makefile.
# on some systems the termcap library is in -ltermcap
***************
*** 10,19 ****
GAMEUID = daemon
CFLAGS = -O
! # We use a special chopped up version of sys_errlist that has much shorter
! # messages than normal to cut down the size hack's data space.
!
! HACKCSRC = errlst.c\
hack.Decl.c\
hack.apply.c hack.bones.c hack.c hack.cmd.c hack.do.c\
hack.do_name.c hack.do_wear.c hack.dog.c hack.eat.c hack.end.c\
--- 12,18 ----
GAMEUID = daemon
CFLAGS = -O
! HACKCSRC = \
hack.Decl.c\
hack.apply.c hack.bones.c hack.c hack.cmd.c hack.do.c\
hack.do_name.c hack.do_wear.c hack.dog.c hack.eat.c hack.end.c\
***************
*** 44,50 ****
# strings.o must be last in HOBJ since it can change when other files compile.
! HOBJ = errlst.o\
hack.Decl.o hack.apply.o hack.bones.o hack.o hack.cmd.o hack.do.o\
hack.do_name.o hack.do_wear.o hack.dog.o hack.eat.o hack.end.o\
hack.engrave.o hack.fight.o hack.invent.o hack.ioctl.o\
--- 43,49 ----
# strings.o must be last in HOBJ since it can change when other files compile.
! HOBJ = \
hack.Decl.o hack.apply.o hack.bones.o hack.o hack.cmd.o hack.do.o\
hack.do_name.o hack.do_wear.o hack.dog.o hack.eat.o hack.end.o\
hack.engrave.o hack.fight.o hack.invent.o hack.ioctl.o\
***************
*** 70,88 ****
# bytes). The wise and cautious programmer would be well advised to use
# size(1) heavily ...
#
! BASE = errlst.o strings.o hack.monst.o hack.Decl.o\
! hack.invent.o hack.dog.o hack.pri.o hack.mon.o\
hack.engrave.o rnd.o hack.track.o
! OV1 = hack.shk.o hack.topl.o hack.o hack.end.o hack.trap.o hack.ioctl.o
OV2 = hack.do_wear.o hack.main.o hack.eat.o hack.timeout.o hack.vault.o\
hack.wizard.o hack.topl.o hack.tty.o\
hack.do.o hack.search.o alloc.o\
! hack.cmd.o hack.termcap.o hack.unix.o
OV3 = hack.do_name.o hack.fight.o hack.mkobj.o hack.o_init.o hack.mhitu.o\
! hack.makemon.o hack.worn.o hack.rumors.o hack.objnam.o
OV4 = hack.zap.o hack.read.o hack.apply.o hack.potion.o\
hack.options.o hack.pager.o hack.wield.o
--- 69,87 ----
# bytes). The wise and cautious programmer would be well advised to use
# size(1) heavily ...
#
! BASE = strings.o hack.monst.o hack.Decl.o\
! hack.invent.o hack.dog.o hack.mon.o\
hack.engrave.o rnd.o hack.track.o
! OV1 = hack.shk.o hack.topl.o hack.o hack.end.o hack.trap.o
OV2 = hack.do_wear.o hack.main.o hack.eat.o hack.timeout.o hack.vault.o\
hack.wizard.o hack.topl.o hack.tty.o\
hack.do.o hack.search.o alloc.o\
! hack.cmd.o hack.termcap.o hack.unix.o hack.ioctl.o
OV3 = hack.do_name.o hack.fight.o hack.mkobj.o hack.o_init.o hack.mhitu.o\
! hack.makemon.o hack.worn.o hack.rumors.o hack.objnam.o hack.pri.o
OV4 = hack.zap.o hack.read.o hack.apply.o hack.potion.o\
hack.options.o hack.pager.o hack.wield.o
***************
*** 92,98 ****
hack.rip.o hack.bones.o hack.worm.o hack.steal.o hack.version.o
# Crypt *MUST be listed BEFORE $(HOBJ)
! $(GAME): crypt $(HOBJ) Ovmakefile
@echo "Loading ..."
@ld -i -X -x -o $(GAME) /lib/crt0.o $(BASE)\
-Z $(OV1) -Z $(OV2) -Z $(OV3) -Z $(OV4) -Z $(OV5) -Y\
--- 91,97 ----
hack.rip.o hack.bones.o hack.worm.o hack.steal.o hack.version.o
# Crypt *MUST be listed BEFORE $(HOBJ)
! $(GAME): crypt $(HOBJ)
@echo "Loading ..."
@ld -i -X -x -o $(GAME) /lib/crt0.o $(BASE)\
-Z $(OV1) -Z $(OV2) -Z $(OV3) -Z $(OV4) -Z $(OV5) -Y\
***************
*** 112,122 ****
# Crypt is really crufty and slow, but the goal was to get something out the
# door ...
.c.o:
! cc -E $*.c | crypt | xstr -c -
cc -c ${CFLAGS} x.c
mv x.o $*.o
- errlst.o: errlst.c
rnd.o: rnd.c
alloc.o: alloc.c
--- 111,120 ----
# Crypt is really crufty and slow, but the goal was to get something out the
# door ...
.c.o:
! cc -E $*.c | ./crypt | xstr -c -
cc -c ${CFLAGS} x.c
mv x.o $*.o
rnd.o: rnd.c
alloc.o: alloc.c
***************
*** 130,142 ****
cc -o crypt crypt.c
clean:
! rm -f *.o x.c xs.c strings
makedefs: makedefs.c
cc -o makedefs makedefs.c
hack.onames.h: makedefs def.objects.h
! makedefs > hack.onames.h
lint:
# lint cannot have -p here because (i) capitals are meaningful:
--- 128,140 ----
cc -o crypt crypt.c
clean:
! rm -f *.o x.c xs.c strings crypt makedefs
makedefs: makedefs.c
cc -o makedefs makedefs.c
hack.onames.h: makedefs def.objects.h
! ./makedefs > hack.onames.h
lint:
# lint cannot have -p here because (i) capitals are meaningful:
***************
*** 211,227 ****
# DO NOT DELETE THIS LINE
hack.Decl.o: hack.h def.mkroom.h
! cc -E hack.Decl.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.Decl.o
hack.apply.o: hack.h def.edog.h def.mkroom.h
hack.bones.o: hack.h
! cc -E hack.bones.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.bones.o
hack.o: hack.h
hack.cmd.o: hack.h def.func_tab.h
! cc -E hack.cmd.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.cmd.o
hack.do.o: hack.h
--- 209,225 ----
# DO NOT DELETE THIS LINE
hack.Decl.o: hack.h def.mkroom.h
! cc -E hack.Decl.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.Decl.o
hack.apply.o: hack.h def.edog.h def.mkroom.h
hack.bones.o: hack.h
! cc -E hack.bones.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.bones.o
hack.o: hack.h
hack.cmd.o: hack.h def.func_tab.h
! cc -E hack.cmd.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.cmd.o
hack.do.o: hack.h
***************
*** 229,241 ****
hack.do_wear.o: hack.h
hack.dog.o: hack.h hack.mfndpos.h def.edog.h def.mkroom.h
hack.eat.o: hack.h
! cc -E hack.eat.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.eat.o
hack.end.o: hack.h
hack.engrave.o: hack.h
hack.fight.o: hack.h
! cc -E hack.fight.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.fight.o
hack.invent.o: hack.h def.wseg.h
--- 227,239 ----
hack.do_wear.o: hack.h
hack.dog.o: hack.h hack.mfndpos.h def.edog.h def.mkroom.h
hack.eat.o: hack.h
! cc -E hack.eat.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.eat.o
hack.end.o: hack.h
hack.engrave.o: hack.h
hack.fight.o: hack.h
! cc -E hack.fight.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.fight.o
hack.invent.o: hack.h def.wseg.h
***************
*** 242,248 ****
hack.ioctl.o: config.h
hack.lev.o: hack.h def.mkroom.h def.wseg.h
hack.main.o: hack.h
! cc -E hack.main.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.main.o
hack.makemon.o: hack.h
--- 240,246 ----
hack.ioctl.o: config.h
hack.lev.o: hack.h def.mkroom.h def.wseg.h
hack.main.o: hack.h
! cc -E hack.main.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.main.o
hack.makemon.o: hack.h
***************
*** 250,256 ****
hack.mklev.o: hack.h def.mkroom.h
hack.mkmaze.o: hack.h def.mkroom.h
hack.mkobj.o: hack.h
! cc -E hack.mkobj.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.mkobj.o
hack.mkshop.o: hack.h def.mkroom.h def.eshk.h
--- 248,254 ----
hack.mklev.o: hack.h def.mkroom.h
hack.mkmaze.o: hack.h def.mkroom.h
hack.mkobj.o: hack.h
! cc -E hack.mkobj.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.mkobj.o
hack.mkshop.o: hack.h def.mkroom.h def.eshk.h
***************
*** 264,270 ****
hack.pri.o: hack.h def.wseg.h
hack.read.o: hack.h
hack.rip.o: hack.h
! cc -E hack.rip.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.rip.o
hack.rumors.o: config.h
--- 262,268 ----
hack.pri.o: hack.h def.wseg.h
hack.read.o: hack.h
hack.rip.o: hack.h
! cc -E hack.rip.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.rip.o
hack.rumors.o: config.h
***************
*** 278,284 ****
hack.topl.o: hack.h
hack.track.o: hack.h
hack.trap.o: hack.h def.mkroom.h
! cc -E hack.trap.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.trap.o
hack.tty.o: hack.h
--- 276,282 ----
hack.topl.o: hack.h
hack.track.o: hack.h
hack.trap.o: hack.h def.mkroom.h
! cc -E hack.trap.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.trap.o
hack.tty.o: hack.h
***************
*** 287,293 ****
hack.vault.o: hack.h def.mkroom.h
hack.wield.o: hack.h
hack.wizard.o: hack.h
! cc -E hack.wizard.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.wizard.o
hack.worm.o: hack.h def.wseg.h
--- 285,291 ----
hack.vault.o: hack.h def.mkroom.h
hack.wield.o: hack.h
hack.wizard.o: hack.h
! cc -E hack.wizard.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.wizard.o
hack.worm.o: hack.h def.wseg.h
***************
*** 294,300 ****
hack.worn.o: hack.h
hack.zap.o: hack.h
hack.version.o: date.h
! cc -E hack.version.c | crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.version.o
hack.h: config.h def.objclass.h def.monst.h def.gold.h def.trap.h def.obj.h def.flag.h def.rm.h def.permonst.h hack.onames.h
--- 292,298 ----
hack.worn.o: hack.h
hack.zap.o: hack.h
hack.version.o: date.h
! cc -E hack.version.c | ./crypt | sed 's/^# \([0-9]*\)/#line \1/' > x.c
cc -c ${CFLAGS} x.c
mv x.o hack.version.o
hack.h: config.h def.objclass.h def.monst.h def.gold.h def.trap.h def.obj.h def.flag.h def.rm.h def.permonst.h hack.onames.h
*** /usr/src/games/mille/save.c.old Sat Jan 11 11:47:37 1986
--- /usr/src/games/mille/save.c Thu Mar 21 20:03:33 1996
***************
*** 1,4 ****
--- 1,5 ----
#include "mille.h"
+ #include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifndef unctrl
***************
*** 11,30 ****
# endif attron
/*
! * @(#)save.c 1.2 (Berkeley) 3/28/83
*/
typedef struct stat STAT;
! char *ctime();
- int read(), write();
-
/*
* This routine saves the current game for use at a later date
*/
extern int errno;
- extern char *sys_errlist[];
save() {
--- 12,29 ----
# endif attron
/*
! * @(#)save.c 1.3 (2.11BSD) 1996/3/21
*/
typedef struct stat STAT;
! extern char *ctime();
! extern int read(), write();
/*
* This routine saves the current game for use at a later date
*/
extern int errno;
save() {
***************
*** 78,84 ****
return FALSE;
if ((outf = creat(buf, 0644)) < 0) {
! error(sys_errlist[errno]);
return FALSE;
}
mvwaddstr(Score, ERR_Y, ERR_X, buf);
--- 77,83 ----
return FALSE;
if ((outf = creat(buf, 0644)) < 0) {
! error(strerror(errno));
return FALSE;
}
mvwaddstr(Score, ERR_Y, ERR_X, buf);
No differences encountered
*** /usr/src/lib/libc/gen/Makefile.old Fri Feb 23 20:45:36 1996
--- /usr/src/lib/libc/gen/Makefile Wed Mar 20 20:40:13 1996
***************
*** 3,9 ****
# All rights reserved. The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
! # @(#)Makefile 5.7.5 (2.11BSD) 1996/02/23
#
# Several routines have been rewritten in assembly language for the VAX and
# the PDP. If you are not running on a VAX or PDP, you should use the
--- 3,9 ----
# All rights reserved. The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
! # @(#)Makefile 5.7.6 (2.11BSD) 1996/03/20
#
# Several routines have been rewritten in assembly language for the VAX and
# the PDP. If you are not running on a VAX or PDP, you should use the
***************
*** 14,20 ****
CFLAGS= -O ${DEFS}
STDSRC= abort.c alarm.c atoi.c atol.c calloc.c closedir.c crypt.c \
! ctime.c ctype_.c daemon.c devname.c disklabel.c err.c errlst.c \
execvp.c fakcu.c \
fstab.c gcvt.c getenv.c getgrent.c getgrgid.c getgrnam.c getlogin.c \
getpass.c getpwent.c getloadavg.c getmntinfo.c \
--- 14,20 ----
CFLAGS= -O ${DEFS}
STDSRC= abort.c alarm.c atoi.c atol.c calloc.c closedir.c crypt.c \
! ctime.c ctype_.c daemon.c devname.c disklabel.c err.c \
execvp.c fakcu.c \
fstab.c gcvt.c getenv.c getgrent.c getgrgid.c getgrnam.c getlogin.c \
getpass.c getpwent.c getloadavg.c getmntinfo.c \
***************
*** 25,34 ****
setmode.c \
setenv.c seteuid.c setruid.c siglist.c signal.c siginterrupt.c \
sleep.c strcasecmp.c strftime.c swab.c sysctl.c syslog.c system.c \
telldir.c time.c timezone.c ttyname.c ttyslot.c ualarm.c usleep.c \
valloc.c strdup.c strsep.c uname.c wait.c wait3.c waitpid.c
STDOBJ= abort.o alarm.o atoi.o atol.o calloc.o closedir.o crypt.o \
! ctime.o ctype_.o daemon.o devname.o disklabel.o err.o errlst.o \
execvp.o fakcu.o \
fstab.o gcvt.o getenv.o getgrent.o getgrgid.o getgrnam.o getlogin.o \
getpass.o getpwent.o getloadavg.o getmntinfo.o \
--- 25,35 ----
setmode.c \
setenv.c seteuid.c setruid.c siglist.c signal.c siginterrupt.c \
sleep.c strcasecmp.c strftime.c swab.c sysctl.c syslog.c system.c \
+ syserrlst.c \
telldir.c time.c timezone.c ttyname.c ttyslot.c ualarm.c usleep.c \
valloc.c strdup.c strsep.c uname.c wait.c wait3.c waitpid.c
STDOBJ= abort.o alarm.o atoi.o atol.o calloc.o closedir.o crypt.o \
! ctime.o ctype_.o daemon.o devname.o disklabel.o err.o \
execvp.o fakcu.o \
fstab.o gcvt.o getenv.o getgrent.o getgrgid.o getgrnam.o getlogin.o \
getpass.o getpwent.o getloadavg.o getmntinfo.o \
***************
*** 39,44 ****
--- 40,46 ----
setmode.o \
setenv.o seteuid.o setruid.o siglist.o signal.o siginterrupt.o \
sleep.o strcasecmp.o strftime.o swab.o sysctl.o syslog.o system.o \
+ syserrlst.o \
telldir.o time.o timezone.o ttyname.o ttyslot.o ualarm.o usleep.o \
valloc.o strdup.o strsep.o uname.o wait.o wait3.o waitpid.o
***************
*** 108,114 ****
devname.o: /usr/include/fcntl.h /usr/include/sys/types.h /usr/include/paths.h
devname.o: /usr/include/stdio.h
err.o: err.c /usr/include/stdio.h /usr/include/varargs.h
- errlst.o: errlst.c
execvp.o: execvp.c /usr/include/errno.h
fakcu.o: fakcu.c
fstab.o: fstab.c /usr/include/fstab.h /usr/include/stdio.h /usr/include/ctype.h
--- 110,115 ----
***************
*** 161,167 ****
devname.o: /usr/include/fcntl.h /usr/include/sys/types.h /usr/include/paths.h
devname.o: /usr/include/stdio.h
err.o: err.c /usr/include/stdio.h /usr/include/varargs.h
- errlst.o: errlst.c
execvp.o: execvp.c /usr/include/errno.h
fakcu.o: fakcu.c
fstab.o: fstab.c /usr/include/fstab.h /usr/include/stdio.h /usr/include/ctype.h
--- 162,167 ----
*** /usr/src/lib/libc/string/Makefile.old Mon Jan 15 20:19:16 1996
--- /usr/src/lib/libc/string/Makefile Wed Mar 20 22:07:51 1996
***************
*** 1,5 ****
#
! # @(#)Makefile 1.1 (2.11BSD GTE) 1995/1/15
#
# This is the Makefile for the 'string' functions. New routines ported from
# 4.4BSD's libc/string directory go here but existing libc/gen files are
--- 1,5 ----
#
! # @(#)Makefile 1.2 (2.11BSD GTE) 1996/3/20
#
# This is the Makefile for the 'string' functions. New routines ported from
# 4.4BSD's libc/string directory go here but existing libc/gen files are
***************
*** 10,17 ****
CFLAGS= -O ${DEFS}
CC= cc
! SRCS= strcspn.c strpbrk.c strsep.c strspn.c strstr.c strtok.c
! OBJS= strcspn.o strpbrk.o strsep.o strspn.o strstr.o strtok.o
.c.o:
${CC} -p ${CFLAGS} -c $*.c
--- 10,17 ----
CFLAGS= -O ${DEFS}
CC= cc
! SRCS= strcspn.c strpbrk.c strerror.c strsep.c strspn.c strstr.c strtok.c
! OBJS= strcspn.o strpbrk.o strerror.o strsep.o strspn.o strstr.o strtok.o
.c.o:
${CC} -p ${CFLAGS} -c $*.c
*** /usr/src/lib/libkern/Makefile.old Sat Feb 3 20:32:04 1996
--- /usr/src/lib/libkern/Makefile Tue Mar 26 21:14:47 1996
***************
*** 1,5 ****
#
! # @(#)Makefile 1.1 (2.11BSD GTE) 1996/2/3
#
# This is the Makefile for 'libkern.a'. These are the specially compiled
# versions of libc.a routines which the kernel and network use.
--- 1,5 ----
#
! # @(#)Makefile 1.2 (2.11BSD GTE) 1996/3/26
#
# This is the Makefile for 'libkern.a'. These are the specially compiled
# versions of libc.a routines which the kernel and network use.
***************
*** 44,50 ****
depend: ${SRCS}
mkdep ${CFLAGS} ${SRCS}
! install: libkern.a
install -o root -g bin -m 644 libkern.a ${DESTDIR}/usr/lib/libkern.a
ranlib ${DESTDIR}/usr/lib/libkern.a
--- 44,50 ----
depend: ${SRCS}
mkdep ${CFLAGS} ${SRCS}
! install: FRC libkern.a
install -o root -g bin -m 644 libkern.a ${DESTDIR}/usr/lib/libkern.a
ranlib ${DESTDIR}/usr/lib/libkern.a
*** /usr/src/man/man3/Makefile.old Fri Feb 23 20:40:26 1996
--- /usr/src/man/man3/Makefile Thu Mar 28 21:31:08 1996
***************
*** 14,20 ****
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
! # @(#)Makefile 5.4.9 (2.11BSD) 1996/2/23
#
MDIR= /usr/man/cat3
SRCS1= abort.3 abs.3 alarm.3 asinh.3 assert.3 atof.3 bstring.3 byteorder.3 \
--- 14,20 ----
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
! # @(#)Makefile 5.4.10 (2.11BSD) 1996/3/20
#
MDIR= /usr/man/cat3
SRCS1= abort.3 abs.3 alarm.3 asinh.3 assert.3 atof.3 bstring.3 byteorder.3 \
***************
*** 36,41 ****
--- 36,42 ----
strcspn.3 strpbrk.3 strsep.3 strspn.3 strtol.3 strtoul.3 strstr.3 \
swab.3 sysctl.3 syslog.3 \
system.3 termcap.3 time.3 times.3 ttyname.3 ualarm.3 uname.3 ungetc.3 \
+ syserrlst.3 \
usleep.3 utime.3 valloc.3 varargs.3
OBJS1= abort.0 abs.0 alarm.0 asinh.0 assert.0 atof.0 bstring.0 byteorder.0 \
compat-sys5.0 crypt.0 ctime.0 ctype.0 curses.0 dbm.0 daemon.0 \
***************
*** 56,61 ****
--- 57,63 ----
strcspn.0 strpbrk.0 strsep.0 strspn.0 strtol.0 strtoul.0 strstr.0 \
swab.0 sysctl.0 syslog.0 \
system.0 termcap.0 time.0 times.0 ttyname.0 ualarm.0 uname.0 ungetc.0 \
+ syserrlst.0 \
usleep.0 utime.0 valloc.0 varargs.0
REMO1= edata.0 etext.0 j1.0 jn.0 ns_addr.0 ns_ntoa.0 y0.0 y1.0 yn.0 acos.0 \
asin.0 atan.0 atan2.0 atoi.0 atol.0 cos.0 dbm_clearerr.0 dbm_close.0 \
***************
*** 74,85 ****
REMO2= re_comp.0 re_exec.0 scalb.0 setkey.0 space.0 srand.0 tanh.0 \
timezone.0 toascii.0 tolower.0 toupper.0 ltol3.0 _longjmp.0 \
_setjmp.0 acosh.0 alloca.0 atanh.0 cabs.0 calloc.0 ceil.0 \
! closelog.0 errlist.0 fabs.0 fdopen.0 free.0 freopen.0 fscanf.0 \
ftell.0 fwrite.0 index.0 initstate.0 longjmp.0 mkstemp.0 openlog.0 \
realloc.0 remque.0 rewind.0 rindex.0 rint.0 setegid.0 seteuid.0 \
setgid.0 setlogmask.0 setrgid.0 setruid.0 setstate.0 srandom.0 \
sscanf.0 strcat.0 strcmp.0 strcpy.0 strlen.0 strncat.0 strncmp.0 \
! strncpy.0 strcasecmp.0 strncasecmp.0 sys.0 sys_errlist.0 sys_nerr.0 \
sprintf.0 vfprintf.0 vprintf.0 vsprintf.0 alphasort.0 bcmp.0 bcopy.0 \
bzero.0 clearerr.0 feof.0 fflush.0 ffs.0 fileno.0 fprintf.0 gamma.0 \
getdiskbyname.0 isatty.0 moncontrol.0 monstartup.0 setbuffer.0 \
--- 76,88 ----
REMO2= re_comp.0 re_exec.0 scalb.0 setkey.0 space.0 srand.0 tanh.0 \
timezone.0 toascii.0 tolower.0 toupper.0 ltol3.0 _longjmp.0 \
_setjmp.0 acosh.0 alloca.0 atanh.0 cabs.0 calloc.0 ceil.0 \
! closelog.0 fabs.0 fdopen.0 free.0 freopen.0 fscanf.0 \
ftell.0 fwrite.0 index.0 initstate.0 longjmp.0 mkstemp.0 openlog.0 \
realloc.0 remque.0 rewind.0 rindex.0 rint.0 setegid.0 seteuid.0 \
setgid.0 setlogmask.0 setrgid.0 setruid.0 setstate.0 srandom.0 \
sscanf.0 strcat.0 strcmp.0 strcpy.0 strlen.0 strncat.0 strncmp.0 \
! strncpy.0 strcasecmp.0 strncasecmp.0 \
! strerror.0 \
sprintf.0 vfprintf.0 vprintf.0 vsprintf.0 alphasort.0 bcmp.0 bcopy.0 \
bzero.0 clearerr.0 feof.0 fflush.0 ffs.0 fileno.0 fprintf.0 gamma.0 \
getdiskbyname.0 isatty.0 moncontrol.0 monstartup.0 setbuffer.0 \
***************
*** 257,263 ****
ln ${DESTDIR}${MDIR}/malloc.0 ${DESTDIR}${MDIR}/calloc.0
ln ${DESTDIR}${MDIR}/floor.0 ${DESTDIR}${MDIR}/ceil.0
ln ${DESTDIR}${MDIR}/syslog.0 ${DESTDIR}${MDIR}/closelog.0
! ln ${DESTDIR}${MDIR}/perror.0 ${DESTDIR}${MDIR}/errlist.0
ln ${DESTDIR}${MDIR}/floor.0 ${DESTDIR}${MDIR}/fabs.0
ln ${DESTDIR}${MDIR}/fopen.0 ${DESTDIR}${MDIR}/fdopen.0
ln ${DESTDIR}${MDIR}/malloc.0 ${DESTDIR}${MDIR}/free.0
--- 260,266 ----
ln ${DESTDIR}${MDIR}/malloc.0 ${DESTDIR}${MDIR}/calloc.0
ln ${DESTDIR}${MDIR}/floor.0 ${DESTDIR}${MDIR}/ceil.0
ln ${DESTDIR}${MDIR}/syslog.0 ${DESTDIR}${MDIR}/closelog.0
! ln ${DESTDIR}${MDIR}/perror.0 ${DESTDIR}${MDIR}/strerror.0
ln ${DESTDIR}${MDIR}/floor.0 ${DESTDIR}${MDIR}/fabs.0
ln ${DESTDIR}${MDIR}/fopen.0 ${DESTDIR}${MDIR}/fdopen.0
ln ${DESTDIR}${MDIR}/malloc.0 ${DESTDIR}${MDIR}/free.0
***************
*** 293,301 ****
ln ${DESTDIR}${MDIR}/string.0 ${DESTDIR}${MDIR}/strncpy.0
ln ${DESTDIR}${MDIR}/string.0 ${DESTDIR}${MDIR}/strcasecmp.0
ln ${DESTDIR}${MDIR}/string.0 ${DESTDIR}${MDIR}/strncasecmp.0
- ln ${DESTDIR}${MDIR}/perror.0 ${DESTDIR}${MDIR}/sys.0
- ln ${DESTDIR}${MDIR}/perror.0 ${DESTDIR}${MDIR}/sys_errlist.0
- ln ${DESTDIR}${MDIR}/perror.0 ${DESTDIR}${MDIR}/sys_nerr.0
ln ${DESTDIR}${MDIR}/printf.0 ${DESTDIR}${MDIR}/sprintf.0
ln ${DESTDIR}${MDIR}/printf.0 ${DESTDIR}${MDIR}/vfprintf.0
ln ${DESTDIR}${MDIR}/printf.0 ${DESTDIR}${MDIR}/vprintf.0
--- 296,301 ----
*** /usr/src/man/man3/perror.3.old Sun Dec 14 15:07:20 1986
--- /usr/src/man/man3/perror.3 Thu Mar 21 22:29:00 1996
***************
*** 2,48 ****
.\" All rights reserved. The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
! .\" @(#)perror.3 6.1 (Berkeley) 5/15/85
.\"
! .TH PERROR 3 "May 15, 1985"
.UC 4
.SH NAME
! perror, sys_errlist, sys_nerr \- system error messages
.SH SYNOPSIS
.nf
.B perror(s)
.B char *s;
! .PP
! .B int sys_nerr;
! .B char *sys_errlist[];
.fi
.SH DESCRIPTION
! .I Perror
! produces a short error message on the standard error file
! describing the last error encountered during a call
! to the system from a C program.
! First the argument string
! .I s
! is printed, then a colon, then the message and a new-line.
! Most usefully, the argument string is the name
! of the program which incurred the error.
! The error number is taken from the external variable
! .I errno
! (see
! .IR intro (2)),
! which is set when errors occur but not cleared when
! non-erroneous calls are made.
.PP
! To simplify variant formatting of messages, the vector of message strings
! .I sys_errlist
! is provided;
.I errno
! can be used as an index in this table to get the
! message string without the newline.
! .I Sys_nerr
! is the number of messages provided for in the table;
! it should be checked because new error codes may be added to the system before
! they are added to the table.
.SH "SEE ALSO"
intro(2),
! psignal(3)
--- 2,80 ----
.\" All rights reserved. The Berkeley software License Agreement
.\" specifies the terms and conditions for redistribution.
.\"
! .\" @(#)perror.3 6.1.1 (2.11BSD) 1996/3/21
.\"
! .TH PERROR 3 "March 21, 1996"
.UC 4
.SH NAME
! perror, strerror \- system error messages
.SH SYNOPSIS
.nf
.B perror(s)
.B char *s;
! .sp
! .B #include <string.h>
! .sp
! .I char *
! .B strerror(errnum)
! .B int errnum;
.fi
.SH DESCRIPTION
! The
! .B strerror()
! and
! .B perror()
! functions look up the error message string corresponding to an error number.
.PP
! The
! .B strerror()
! function accepts an error number argument
! .I errnum
! and returns a pointer to the corresponding message string.
! .PP
! The
! .B perror()
! function
! finds the error message corresponding to the current value of the
! global variable
.I errno
! (intro(2)) and writes it, followed by a newline, to the standard error
! file descriptor. If the argument
! .I string
! is non-NULL, it is prepended to the message string and separated
! from it by a colon and space (`: ').
! If
! .I string
! is NULL, only the error message string is printed.
! .PP
! If
! .I errnum
! is not a recognized error number, the error message string
! will contain ``Unknown error: '' followed by the error number
! in decimal.
! .PP
! The error messages are stored in a data file now rather than an in memory
! array. See
! .BR syserror (5).
.SH "SEE ALSO"
+ mkerrlst(1),
intro(2),
! psignal(3),
! strerror(3),
! syserror(3),
! syserror(5)
! .SH BUGS
! The
! .BR strerror ()
! function returns its result in a static buffer which may be
! overwritten by subsequent calls.
! .PP
! The array
! .B sys_errlist[]
! and the global
! .B sys_nerr
! are
! .B obsolete
! and should not be used. They have, for the time being, been placed in
! an object library
! .BR liberrlst.a .
*** /usr/src/man/man5/Makefile.old Thu Jan 25 23:41:20 1996
--- /usr/src/man/man5/Makefile Wed Mar 20 20:42:05 1996
***************
*** 14,20 ****
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
! # @(#)Makefile 5.4.2 (2.11BSD GTE) 1996/1/25
#
MDIR= /usr/man/cat5
SRCS= L-devices.5 L-dialcodes.5 L.aliases.5 L.cmds.5 L.sys.5 \
--- 14,20 ----
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
! # @(#)Makefile 5.4.3 (2.11BSD GTE) 1996/3/20
#
MDIR= /usr/man/cat5
SRCS= L-devices.5 L-dialcodes.5 L.aliases.5 L.cmds.5 L.sys.5 \
***************
*** 23,28 ****
--- 23,29 ----
group.5 hosts.5 map3270.5 networks.5 passwd.5 \
phones.5 plot.5 printcap.5 protocols.5 remote.5 resolver.5 \
services.5 shells.5 stack.5 tar.5 termcap.5 tp.5 ttys.5 types.5 \
+ syserrlst.5 \
tzfile.5 utmp.5 uuencode.5 vfont.5 vgrindefs.5
OBJS= L-devices.0 L-dialcodes.0 L.aliases.0 L.cmds.0 L.sys.0 \
USERFILE.0 a.out.0 acct.0 aliases.0 core.0 dbx.0 \
***************
*** 30,35 ****
--- 31,37 ----
group.0 hosts.0 map3270.0 networks.0 passwd.0 \
phones.0 plot.0 printcap.0 protocols.0 remote.0 resolver.0 \
services.0 shells.0 stack.0 tar.0 termcap.0 tp.0 ttys.0 types.0 \
+ syserrlst.0 \
tzfile.0 utmp.0 uuencode.0 vfont.0 vgrindefs.0
.SUFFIXES: .5 .0