1: # include   <pipes.h>
   2: # include   <ingres.h>
   3: # include   <aux.h>
   4: # include   <version.h>
   5: # include   "IIglobals.h"
   6: # include   <sccs.h>
   7: 
   8: SCCSID(@(#)IIp_err.c	8.1	12/31/84)
   9: 
  10: 
  11: /*
  12: **  IIp_err
  13: **
  14: **	This routine processes an IIerror call for printout.This involves doing
  15: **	a lookup in the .../files/error? files, where ? is the thous-
  16: **	ands digit of the error number.  The associated error message
  17: **	then goes through parameter substitution and is printed.
  18: **
  19: **	In the current version, the error message is just printed.
  20: */
  21: 
  22: IIp_err(err_num, argc, argv)
  23: int     err_num;
  24: int     argc;
  25: char        **argv;
  26: {
  27:     register char   *p;
  28:     char        buf[512];
  29:     int     i;
  30:     struct iob  iob;
  31:     register char   c;
  32:     extern char *IIerrfilen();
  33:     extern char *IIconcatv();
  34: 
  35:     /* IIfopen the appropriate error file */
  36:     p = buf;
  37:     IIerrfilen(err_num / 1000, p);
  38: 
  39: #	ifdef xETR2
  40:     if (IIdebug > 1)
  41:         printf("IIp_err : with IIerrfilen ret \"%s\"\n", p);
  42: #	endif
  43: 
  44:     if (IIfopen(p, &iob) < 0)
  45:         return (0);
  46: 
  47:     /* read in the code and check for correct */
  48:     for (;;)
  49:     {
  50:         p = buf;
  51:         while ((c = IIgetc(&iob)) != '\t')
  52:         {
  53:             if (c <= 0)
  54:             {
  55:                 if (IIclose(&iob) < 0)
  56:                     IIsyserr("IIp_err: bad close 1");
  57:                 return (0);
  58:             }
  59:             *p++ = c;
  60:         }
  61:         *p = 0;
  62:         if (IIatoi(buf, &i))
  63:             IIsyserr("IIp_err: bad error file %d\n%s",
  64:                 err_num, buf);
  65:         if (i != err_num)
  66:         {
  67:             while ((c = IIgetc(&iob)) != ERRDELIM)
  68:                 if (c <= 0)
  69:                     IIsyserr("IIp_err: format err %d", err_num);
  70:             IIgetc(&iob);   /* throw out the newline */
  71:             continue;
  72:         }
  73: 
  74:         /* got the correct line, print it doing parameter substitution */
  75:         printf("%d: ", err_num);
  76:         for (;;)
  77:         {
  78:             c = IIgetc(&iob);
  79:             if (c <= 0 || c == ERRDELIM)
  80:             {
  81:                 printf("\n");
  82:                  if (IIclose(&iob) < 0)
  83:                     IIsyserr("IIp_err: bad close 2");
  84:                 return (1);
  85:             }
  86:             if (c == '%')
  87:             {
  88:                 c = IIgetc(&iob);
  89:                 for (p = argv[c - '0']; c = *p; p++)
  90:                 {
  91:                     if (c < 040 || c >= 0177)
  92:                         printf("\\%o", c);
  93:                     else
  94:                         putchar(c);
  95:                 }
  96:                 continue;
  97:             }
  98:             putchar(c);
  99:         }
 100:     }
 101: }
 102: 
 103: /*
 104: ** IIerrfilen -- Returns the pathname where the error file can be found
 105: **	into "buf".
 106: **
 107: **	It is assumed that the error number cannot be more than 999.
 108: **	Returned is concat of : IIPathname, "/files/error", VERSION (w/o mod),
 109: **	"_num".
 110: */
 111: 
 112: char *
 113: IIerrfilen(num, buf)
 114: int num;
 115: char    *buf;
 116: {
 117:     register char   *cp;
 118:     char        ver[12];
 119:     extern char *IIconcatv();
 120: 
 121:     IIconcatv(ver, VERSION, 0);
 122: 
 123:     /* now insert the "_X" */
 124:     cp = &ver[IIlength(ver)];
 125:     *cp++ = '_';
 126:     *cp = '\0';
 127:     IIconcatv(ver, ver, IIitos(num), 0);
 128: 
 129: 
 130:     return (IIconcatv(buf, IIPathname, "/files/error", ver, 0));
 131: }

Defined functions

IIerrfilen defined in line 112; used 2 times
IIp_err defined in line 8; used 1 times
Last modified: 1986-04-17
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 986
Valid CSS Valid XHTML 1.0 Strict