home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / stg_v4.lzh / errmsg.c < prev    next >
C/C++ Source or Header  |  1994-11-11  |  1KB  |  79 lines

  1. /*
  2.  * char * errmsg(err) - return ptr to errmsg string from /dd/sys/errmsg
  3.  *
  4.  * 92/10/29 StG - initial version
  5. */
  6.  
  7. #include "stglib.h"
  8.  
  9. #ifdef _OSK
  10.  
  11. char err_msg[256];
  12. char err_num[10];
  13.  
  14. char *
  15. errmsg(err)
  16. int err;
  17. {
  18.     int hFile;
  19.     int n;
  20.     char *p;
  21.     char *d;
  22.  
  23.     stringf(err_num,"%03d:%03d",(err&0xFF00)>>8,err&0x00FF);
  24.  
  25.     hFile=open(ERRMSG,O_RDONLY);
  26.     if (hFile==ERR)
  27.         return(err_num);
  28.  
  29.     while (n=readln(hFile,err_msg,256))
  30.     {
  31.         if (n==ERR)
  32.             break;
  33.  
  34.         err_msg[n-1]=0;
  35.  
  36.         if (!strncmp(err_num,err_msg,7))
  37.         {
  38.             close(hFile);
  39.             p=err_msg+7;
  40.             while (*p && *p==' ') p++;
  41.             if (*p=='(')
  42.                 while (*p && *p!=')') p++;
  43.             if (*p==')') p++;
  44.             while (*p && *p==' ') p++;
  45.             if (*p)
  46.             {
  47.                 d=p;
  48.                 while (*d)
  49.                     d++;
  50.                 if (*--d=='.')
  51.                     *d=0;
  52.  
  53.                 return(p);
  54.             }
  55.             break;
  56.         }
  57.     }
  58.     close(hFile);
  59.     return(err_num);
  60.         
  61. }
  62.  
  63. #else
  64.  
  65. extern int sys_nerr;
  66. extern char *sys_errlist[];
  67.  
  68. char *
  69. errmsg(err)
  70. int err;
  71. {
  72.     if (err>=0 && err<=sys_nerr)
  73.         return(sys_errlist[err]);
  74.  
  75.     return("Unknown");
  76. }
  77.  
  78. #endif
  79.