ING_DB
This commit is contained in:
parent
86cffae13b
commit
48e77ce172
|
|
@ -0,0 +1,114 @@
|
|||
# include <stdio.h>
|
||||
# include "gen.h"
|
||||
# include "../h/dbs.h"
|
||||
# include "../h/aux.h"
|
||||
|
||||
/*
|
||||
** PROCESS ERROR MESSAGE (Standalone override)
|
||||
**
|
||||
** This routine replaces the "error" routine for use in
|
||||
** standalone routines such as creatdb and printr. Its usage
|
||||
** is identical to that of normal "error".
|
||||
**
|
||||
** This routine is assumed to be called by process five; hence,
|
||||
** all error messages it produces have a 5000 offset.
|
||||
**
|
||||
*/
|
||||
|
||||
# ifdef P8000
|
||||
error(err, msg1, msg2, msg3, msg4, msg5, msg6)
|
||||
# else
|
||||
error(err, msg1)
|
||||
# endif
|
||||
int err;
|
||||
char *msg1;
|
||||
# ifdef P8000
|
||||
char *msg2;
|
||||
char *msg3;
|
||||
char *msg4;
|
||||
char *msg5;
|
||||
char *msg6;
|
||||
# endif
|
||||
{
|
||||
register int c;
|
||||
register char *p;
|
||||
register FILE *iop;
|
||||
register char **pv;
|
||||
short i;
|
||||
# ifdef SETBUF
|
||||
char iob[BUFSIZ];
|
||||
# endif
|
||||
char buf[10];
|
||||
extern char *AAerrfn();
|
||||
# ifdef P8000
|
||||
char *xx[6];
|
||||
|
||||
pv = xx;
|
||||
*pv++ = msg1;
|
||||
*pv++ = msg2;
|
||||
*pv++ = msg3;
|
||||
*pv++ = msg4;
|
||||
*pv++ = msg5;
|
||||
*pv = msg6;
|
||||
pv = xx;
|
||||
# else
|
||||
pv = &msg1;
|
||||
# endif
|
||||
if ((iop = fopen(AAerrfn(5), "r")) == (FILE *) 0)
|
||||
AAsyserr(21052);
|
||||
# ifdef SETBUF
|
||||
setbuf(iop, iob);
|
||||
# endif
|
||||
|
||||
/* read in the code and check for correct */
|
||||
for ( ; ; )
|
||||
{
|
||||
p = buf;
|
||||
while ((c = getc(iop)) != '\t')
|
||||
{
|
||||
if (c <= 0)
|
||||
{
|
||||
/* no code exists, print the first parm */
|
||||
printf("%d: %s\n\n", err, pv[0]);
|
||||
fclose(iop);
|
||||
return (err);
|
||||
}
|
||||
*p++ = c;
|
||||
}
|
||||
*p = 0;
|
||||
if (AA_atoi(buf, &i))
|
||||
AAsyserr(21053, err, buf);
|
||||
if (i != err)
|
||||
{
|
||||
while ((c = getc(iop)) != ERRDELIM)
|
||||
if (c <= 0)
|
||||
AAsyserr(21054, err);
|
||||
getc(iop); /* throw out the newline */
|
||||
continue;
|
||||
}
|
||||
|
||||
/* got the correct line, print it doing parameter substitution */
|
||||
printf("%d: ", err);
|
||||
c = '\n';
|
||||
for ( ; ; )
|
||||
{
|
||||
c = getc(iop);
|
||||
if (c == EOF || c == ERRDELIM)
|
||||
{
|
||||
putchar('\n');
|
||||
fclose(iop);
|
||||
return (err);
|
||||
}
|
||||
if (c == '%')
|
||||
{
|
||||
c = getc(iop);
|
||||
for (p = pv[c - '0']; c = *p; p++)
|
||||
{
|
||||
putchar(c);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
putchar(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue