home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / NEWS / RADIANCE / SRC / COMMON / ERROR.C < prev    next >
C/C++ Source or Header  |  1993-10-07  |  1KB  |  62 lines

  1. /* Copyright (c) 1991 Regents of the University of California */
  2.  
  3. #ifndef lint
  4. static char SCCSid[] = "@(#)error.c 2.1 11/12/91 LBL";
  5. #endif
  6.  
  7. /*
  8.  *  error.c - standard error reporting function
  9.  */
  10.  
  11. #include  "standard.h"
  12.  
  13. extern char  *sys_errlist[];    /* system error list */
  14. extern int  sys_nerr;        /* number of system errors */
  15.  
  16. char  errmsg[128];        /* global error message buffer */
  17.  
  18.  
  19. error(etype, emsg)        /* report error, quit if necessary */
  20. int  etype;
  21. char  *emsg;
  22. {
  23.     switch (etype) {
  24.     case WARNING:
  25.         wputs("warning - ");
  26.         wputs(emsg);
  27.         wputs("\n");
  28.         return;
  29.     case COMMAND:
  30.         cputs(emsg);
  31.         cputs("\n");
  32.         return;
  33.     case USER:
  34.         eputs("fatal - ");
  35.         eputs(emsg);
  36.         eputs("\n");
  37.         quit(1);
  38.     case INTERNAL:
  39.         eputs("internal - ");
  40.         eputs(emsg);
  41.         eputs("\n");
  42.         quit(1);
  43.     case SYSTEM:
  44.         eputs("system - ");
  45.         eputs(emsg);
  46.         if (errno > 0) {
  47.             eputs(": ");
  48.             if (errno <= sys_nerr)
  49.                 eputs(sys_errlist[errno]);
  50.             else
  51.                 eputs("Unknown error");
  52.         }
  53.         eputs("\n");
  54.         quit(2);
  55.     case CONSISTENCY:
  56.         eputs("consistency - ");
  57.         eputs(emsg);
  58.         eputs("\n");
  59.         abort();
  60.     }
  61. }
  62.