[comp.unix.questions] Porting sccs.c to AT&T UNIX V.2.

mark@ria-emh2.army.mil (Mark D. McKamey IM SA) (06/07/89)

Hello,
 
    I am in the process of porting Eric Allman's "sccs.c" - human-oriented
front end to the SCCS system program, to a UNISYS 5000/80 mini, running
AT&T UNIX V.2 Operating System.  I have changed <sys/dir.h> to <sys/ndir.h>,
and also changed "index" to strchr, and "rindex" to strrchr.  Upon compilation
I get the following error message:

	undefined symbol - sys_siglist

    Does anyone have this library routine for AT&T UNIX V.2 ?  If so,
please e-mail me a copy.  Thank You,

Mark D. McKamey
mark@RIA-EMH2.ARMY.MIL

guy@auspex.auspex.com (Guy Harris) (06/09/89)

>    I am in the process of porting Eric Allman's "sccs.c" - human-oriented
>front end to the SCCS system program, to a UNISYS 5000/80 mini, running
>AT&T UNIX V.2 Operating System.  ... Upon compilation
>I get the following error message:
>
>	undefined symbol - sys_siglist
>
>    Does anyone have this library routine for AT&T UNIX V.2 ?

It's not a library routine; it's an array of pointers to "char" that
contain descriptions of signals, indexed by the signal number.

For the benefit of anybody else doing the port, here's a version for S5R3,
based on the 4.3-tahoe version and the S5R3 "sys/signal.h".

For S5R2, you'll probably have to cut some of the entries off, since
NSIG may be smaller. 

For systems other than vanilla AT&T ones, you may either have to 1)
rearrange the list, because signal numbers may be different or 2) add
new entries for added signals. 

For S5R4, you'll have to put the job control signals and SIGWINCH back
:-) - unless, of course, it comes with "sys_siglist"....

/*
 * Copyright (c) 1980 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 */

#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)siglist.c	5.2 (Berkeley) 3/9/86";
#endif LIBC_SCCS and not lint

#include <signal.h>

char	*sys_siglist[NSIG] = {
	"Signal 0",
	"Hangup",			/* SIGHUP */
	"Interrupt",			/* SIGINT */
	"Quit",				/* SIGQUIT */
	"Illegal instruction",		/* SIGILL */
	"Trace/BPT trap",		/* SIGTRAP */
	"IOT trap",			/* SIGIOT */
	"EMT trap",			/* SIGEMT */
	"Floating point exception",	/* SIGFPE */
	"Killed",			/* SIGKILL */
	"Bus error",			/* SIGBUS */
	"Segmentation fault",		/* SIGSEGV */
	"Bad system call",		/* SIGSYS */
	"Broken pipe",			/* SIGPIPE */
	"Alarm clock",			/* SIGALRM */
	"Terminated",			/* SIGTERM */
	"User defined signal 1",	/* SIGUSR1 */
	"User defined signal 2"		/* SIGUSR2 */
	"Child exited",			/* SIGCLD */
	"Power failure",		/* SIGPWR */
	"Window changed",		/* SIGWIND - UNIX PC */
	"Handset/line status change",	/* SIGPHONE - UNIX PC */
	"Pollable event occurred",	/* SIGPOLL */
};