|
|
1.1 ! root 1: # include <ingres.h> ! 2: # include <symbol.h> ! 3: # include "IIglobals.h" ! 4: # include <sccs.h> ! 5: ! 6: SCCSID(@(#)IIerror.c 8.1 12/31/84) ! 7: ! 8: ! 9: /* ! 10: ** IIerror -- std. equel error reporting routine. ! 11: ** ! 12: ** IIerror is called either directly by a ! 13: ** routine detecting an error or by ! 14: ** IIrdpipe where INGRES returns an error. ! 15: ** ! 16: ** In the case of an appropriate error, IIerrflag is set to ! 17: ** prevent the reading of the ovqp data pipe. This happens ! 18: ** on errors that happen during retrieves to C vars. ! 19: ** ! 20: ** Errno is the error number: 1??? is an equel error ! 21: ** others are Ingres errors. ! 22: ** ! 23: ** Argc and argv are structured as in Unix main program calls. ! 24: ** ! 25: ** The error is printed if the call (*IIprint_err)() ! 26: ** returns > 0. Otherwise no error message is printed. ! 27: ** The error message that is printed is the one corresponding ! 28: ** to the number returned by (*IIprint_err)(). ! 29: */ ! 30: ! 31: extern IIret_err(); ! 32: int (*IIprint_err)() = IIret_err; ! 33: ! 34: ! 35: IIerror(errno, argc, argv) ! 36: int errno, argc; ! 37: char *argv []; ! 38: { ! 39: register int i; ! 40: ! 41: # ifdef xETR1 ! 42: if (IIdebug > 1) ! 43: printf("ent IIerror : errno %d, argc %d\n", errno, argc); ! 44: # endif ! 45: ! 46: IIerrflag = errno; ! 47: if (!(errno = (*IIprint_err)(errno))) ! 48: { ! 49: # ifdef xETR2 ! 50: if (IIdebug > 1) ! 51: printf("IIerror : IIprint_err returned 0\n"); ! 52: # endif ! 53: /* if must restore printing turned off in IIw_left() ! 54: * or IIw_right(), then do so. ! 55: */ ! 56: if (IIo_print) ! 57: { ! 58: IIprint_err = IIo_print; ! 59: IIo_print = 0; ! 60: } ! 61: return; ! 62: } ! 63: ! 64: if (errno > 2000) ! 65: printf("INGRES ERROR: "); ! 66: else ! 67: printf("EQUEL ERROR: "); ! 68: ! 69: if (!IIp_err(errno, argc, argv)) ! 70: { ! 71: /* couldn't process error in IIp_err() */ ! 72: printf(" %d with parameters:",errno); ! 73: for (i = 0; i < argc; ) ! 74: printf(" %s", argv [i++]); ! 75: printf("\n"); ! 76: } ! 77: if (IIproc_name) ! 78: printf("On file %s line %d.\n", IIproc_name, IIline_no); ! 79: } ! 80: ! 81: /* ! 82: ** IIret_err -- returns its single argument for IIerror. ! 83: ** ! 84: */ ! 85: ! 86: IIret_err(err) ! 87: int err; ! 88: { ! 89: return (err); ! 90: } ! 91: ! 92: /* ! 93: ** IIno_err -- returns 0. Called from IIerror ! 94: ** (through (*IIprint_err)()) ! 95: ** to supress error message printing. ! 96: */ ! 97: ! 98: IIno_err(err) ! 99: int err; ! 100: { ! 101: return (0); ! 102: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.