home *** CD-ROM | disk | FTP | other *** search
/ The UNIX CD Bookshelf / OREILLY_TUCB_UNIX_CD.iso / upt / examples / SOURCES / TWIN / TWIN. / ierror.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-07-24  |  837 b   |  36 lines

  1. /* ierror.c */
  2. /****************************************
  3. * report error via "ierbuf" and "ierflag"
  4. * Istvan Mohos, 1987 --- in the Public Domain
  5. ****************************************/
  6.  
  7. #define IAMIERROR
  8. #include "i.h"
  9.  
  10. char ierbuf[IHALFK];
  11. int  ierflag;
  12.  
  13. int
  14. ierror (ustr)
  15. char *ustr;
  16. {
  17.     if (errno > 0 && errno < sys_nerr) { /* system error */
  18.         ierflag = -errno;
  19.         if (NULCHARP (ustr))
  20.             strcpy(ierbuf, sys_errlist[errno]);
  21.         else
  22.             sprintf(ierbuf, "%s --- %.*s", sys_errlist[errno],
  23.                 IHALFK - strlen (sys_errlist[errno]) - 6, ustr);
  24.         errno = 0;
  25.         return (ierflag);
  26.     }
  27.  
  28.     ierflag = -sys_nerr; /* user error */
  29.     if (NULCHARP (ustr))
  30.         strcpy (ierbuf, "Error");
  31.     else
  32.         strncpy (ierbuf, ustr, IHALFK-1);
  33.     errno = 0;
  34.     return (ierflag);
  35. }
  36.