2
* Copyright 1987, 1988, 1989 by MIT Student Information Processing
5
* Permission to use, copy, modify, and distribute this software and
6
* its documentation for any purpose is hereby granted, provided that
7
* the names of M.I.T. and the M.I.T. S.I.P.B. not be used in
8
* advertising or publicity pertaining to distribution of the software
9
* without specific, written prior permission. M.I.T. and the
10
* M.I.T. S.I.P.B. make no representations about the suitability of
11
* this software for any purpose. It is provided "as is" without
12
* express or implied warranty.
18
* I'm assuming that com_err.h includes varargs.h, which it does
19
* (right now). There really ought to be a way for me to include the
20
* file without worrying about whether com_err.h includes it or not,
21
* but varargs.h doesn't define anything that I can use as a flag, and
22
* gcc will lose if I try to include it twice and redefine stuff.
24
#if !defined(__STDC__) || !defined(ibm032) || !defined(NeXT)
25
#define ss_error ss_error_external
29
#include "ss_internal.h"
39
char * ss_name(sci_idx)
42
register char *ret_val;
43
register ss_data *infop;
45
infop = ss_info(sci_idx);
46
if (infop->current_request == (char const *)NULL) {
47
ret_val = malloc((unsigned)
48
(strlen(infop->subsystem_name)+1)
50
if (ret_val == (char *)NULL)
52
strcpy(ret_val, infop->subsystem_name);
57
register char const *cp1;
58
ret_val = malloc((unsigned)sizeof(char) *
59
(strlen(infop->subsystem_name)+
60
strlen(infop->current_request)+
63
cp1 = infop->subsystem_name;
68
cp1 = infop->current_request;
78
void ss_error (int sci_idx, long code, const char * fmt, ...)
80
void ss_error (va_alist)
84
register char *whoami;
91
sci_idx = va_arg (pvar, int);
92
code = va_arg (pvar, long);
93
fmt = va_arg (pvar, char *);
97
whoami = ss_name (sci_idx);
98
com_err_va (whoami, code, fmt, pvar);
103
void ss_perror (sci_idx, code, msg) /* for compatibility */
108
ss_error (sci_idx, code, "%s", msg);