home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / cawf407.zip / src / error.c < prev    next >
C/C++ Source or Header  |  1993-12-28  |  2KB  |  94 lines

  1. /*
  2.  *    error.c - error handling functions for cawf(1)
  3.  */
  4.  
  5. /*
  6.  *    Copyright (c) 1991 Purdue University Research Foundation,
  7.  *    West Lafayette, Indiana 47907.  All rights reserved.
  8.  *
  9.  *    Written by Victor A. Abell <abe@mace.cc.purdue.edu>,  Purdue
  10.  *    University Computing Center.  Not derived from licensed software;
  11.  *    derived from awf(1) by Henry Spencer of the University of Toronto.
  12.  *
  13.  *    Permission is granted to anyone to use this software for any
  14.  *    purpose on any computer system, and to alter it and redistribute
  15.  *    it freely, subject to the following restrictions:
  16.  *
  17.  *    1. The author is not responsible for any consequences of use of
  18.  *       this software, even if they arise from flaws in it.
  19.  *
  20.  *    2. The origin of this software must not be misrepresented, either
  21.  *       by explicit claim or by omission.  Credits must appear in the
  22.  *       documentation.
  23.  *
  24.  *    3. Altered versions must be plainly marked as such, and must not
  25.  *       be misrepresented as being the original software.  Credits must
  26.  *       appear in the documentation.
  27.  *
  28.  *    4. This notice may not be removed or altered.
  29.  */
  30.  
  31. #include "cawf.h"
  32.  
  33.  
  34. /*
  35.  * Error(t, l, s1, s2) - issue error message
  36.  */
  37.  
  38. void
  39. Error(t, l, s1, s2)
  40.     int t;                /* type: WARN or FATAL */
  41.     int l;                /* LINE: display Line[] */
  42.     char *s1, *s2;            /* optional text */
  43. {
  44.     if (l == LINE)
  45.         (void) fprintf(Efs, "%s: (%s, %d):%s%s - %s\n",
  46.             Pname,
  47.             Inname,
  48.             NR,
  49.             (s1 == NULL) ? "" : s1,
  50.             (s2 == NULL) ? "" : s2,
  51.             Line);
  52.     else
  53.         (void) fprintf(Efs, "%s:%s%s\n",
  54.             Pname,
  55.             (s1 == NULL) ? "" : s1,
  56.             (s2 == NULL) ? "" : s2);
  57.     if (t == FATAL)
  58.         exit(1);
  59.     Err = 1;
  60.     return;
  61. }
  62.  
  63.  
  64. /*
  65.  * Error3(len, word, sarg, narg) - process error in pass3
  66.  */
  67.  
  68. void
  69. Error3(len, word, sarg, narg, msg)
  70.     int len;            /* length (negative is special */
  71.         char *word;            /* word */
  72.         char *sarg;            /* string argument */
  73.         int narg;                       /* numeric argument */
  74.     char *msg;            /* message */
  75. {
  76.     if (len == MESSAGE) {
  77.         (void) fprintf(Efs, "%s: (%s, %d) %s\n",
  78.             Pname,
  79.             (word == NULL) ? "<none>" : word,
  80.             narg,
  81.             (sarg == NULL) ? "<none>" : sarg);
  82.         return;
  83.     }
  84.     (void) fprintf(Efs,
  85.         "%s: pass3, len=%d, word=\"%s\", sarg=\"%s\", narg=%d%s%s\n",
  86.         Pname, len,
  87.         (word == NULL) ? "" : word,
  88.         (sarg == NULL) ? "" : sarg,
  89.         narg,
  90.         (msg == NULL) ? "" : " - ",
  91.         (msg == NULL) ? "" : msg);
  92.     Err = 1;
  93. }
  94.