put in better error messages
authorKirk McKusick <mckusic@ucbvax.Berkeley.EDU>
Mon, 8 Jun 1981 15:36:15 +0000 (07:36 -0800)
committerKirk McKusick <mckusic@ucbvax.Berkeley.EDU>
Mon, 8 Jun 1981 15:36:15 +0000 (07:36 -0800)
SCCS-vsn: usr.bin/pascal/libpc/CTTOT.c 1.3
SCCS-vsn: usr.bin/pascal/libpc/ERROR.c 1.7
SCCS-vsn: usr.bin/pascal/libpc/PRED.c 1.3
SCCS-vsn: usr.bin/pascal/libpc/SUCC.c 1.3

usr/src/usr.bin/pascal/libpc/CTTOT.c
usr/src/usr.bin/pascal/libpc/ERROR.c
usr/src/usr.bin/pascal/libpc/PRED.c
usr/src/usr.bin/pascal/libpc/SUCC.c

index d72eb86..f49b983 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-static char sccsid[] = "@(#)CTTOT.c 1.2 %G%";
+static char sccsid[] = "@(#)CTTOT.c 1.3 %G%";
 
 #include "whoami.h"
 #include "h00vars.h"
 
 #include "whoami.h"
 #include "h00vars.h"
@@ -65,12 +65,14 @@ CTTOT(result0, lwrbnd, uprbnd, paircnt, singcnt, data)
        for (cnt = 0; cnt < paircnt; cnt++) {
                upper = *dataptr++ - lowerbnd;
                if (upper < 0 || upper > upperbnd) {
        for (cnt = 0; cnt < paircnt; cnt++) {
                upper = *dataptr++ - lowerbnd;
                if (upper < 0 || upper > upperbnd) {
-                       ERROR(ECTUPR, *--dataptr);
+                       ERROR("Range upper bound of %D out of set bounds\n",
+                               *--dataptr);
                        return;
                }
                lower = *dataptr++ - lowerbnd;
                if (lower < 0 || lower > upperbnd) {
                        return;
                }
                lower = *dataptr++ - lowerbnd;
                if (lower < 0 || lower > upperbnd) {
-                       ERROR(ECTLWR, *--dataptr);
+                       ERROR("Range lower bound of %D out of set bounds\n",
+                               *--dataptr);
                        return;
                }
                if (lower > upper) {
                        return;
                }
                if (lower > upper) {
@@ -96,7 +98,7 @@ CTTOT(result0, lwrbnd, uprbnd, paircnt, singcnt, data)
        for (cnt = 0, cp = (char *)result; cnt < singcnt; cnt++) {
                lower = *dataptr++ - lowerbnd;
                if (lower < 0 || lower > upperbnd) {
        for (cnt = 0, cp = (char *)result; cnt < singcnt; cnt++) {
                lower = *dataptr++ - lowerbnd;
                if (lower < 0 || lower > upperbnd) {
-                       ERROR(ECTSNG, *--dataptr);
+                       ERROR("Value of %D out of set bounds\n", *--dataptr);
                        return;
                }
                cp[ lower >> LG2BITSBYTE ] |= (1 << (lower & MSKBITSBYTE));
                        return;
                }
                cp[ lower >> LG2BITSBYTE ] |= (1 << (lower & MSKBITSBYTE));
index 2160211..c6d7cb3 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-static char sccsid[] = "@(#)ERROR.c 1.6 %G%";
+static char sccsid[] = "@(#)ERROR.c 1.7 %G%";
 
 #include       <stdio.h>
 #include       <signal.h>
 
 #include       <stdio.h>
 #include       <signal.h>
@@ -14,23 +14,24 @@ static char sccsid[] = "@(#)ERROR.c 1.6 %G%";
  * from errdata by the makefile using the editor script make.ed1.
  */
 long
  * from errdata by the makefile using the editor script make.ed1.
  */
 long
-ERROR(errnum, errdata)
+ERROR(msg, d1, d2, d3, d4)
 
 
-       int     errnum;
+       char    *msg;
+       int     d1, d2, d3, d4;
+{
        union cvt {
        union cvt {
+               int     intdat;
                long    longdat;
                char    *strngdat;
                double  dbldat;
        } errdata;
                long    longdat;
                char    *strngdat;
                double  dbldat;
        } errdata;
-{
+
+       errdata.dbldat = 0.0;
+       errdata.intdat = d1;
        PFLUSH();
        PFLUSH();
-       if (_entry[errnum].entryaddr != 0) {
-               (*_entry[errnum].entryaddr)(errdata);
-               return;
-       }
        fputc('\n',stderr);
        SETRACE();
        fputc('\n',stderr);
        SETRACE();
-       switch (errnum) {
+       switch ((int)msg) {
        case ECHR:
                fprintf(stderr, "Argument to chr of %D is out of range\n"
                        ,errdata.longdat);
        case ECHR:
                fprintf(stderr, "Argument to chr of %D is out of range\n"
                        ,errdata.longdat);
@@ -126,18 +127,6 @@ ERROR(errnum, errdata)
        case EOUTOFMEM:
                fputs("Ran out of memory\n",stderr);
                return(0);
        case EOUTOFMEM:
                fputs("Ran out of memory\n",stderr);
                return(0);
-       case ECTLWR:
-               fprintf(stderr, "Range lower bound of %D out of set bounds\n",
-                       errdata.longdat);
-               return(0);
-       case ECTUPR:
-               fprintf(stderr, "Range upper bound of %D out of set bounds\n",
-                       errdata.longdat);
-               return(0);
-       case ECTSNG:
-               fprintf(stderr, "Value of %D out of set bounds\n",
-                       errdata.longdat);
-               return(0);
        case EARGV:
                fprintf(stderr,"Argument to argv of %D is out of range\n"
                        ,errdata.longdat);
        case EARGV:
                fprintf(stderr,"Argument to argv of %D is out of range\n"
                        ,errdata.longdat);
@@ -166,7 +155,7 @@ ERROR(errnum, errdata)
                        errdata.longdat);
                return(errdata.longdat);
        default:
                        errdata.longdat);
                return(errdata.longdat);
        default:
-               fputs("Panic: unknown error\n",stderr);
+               fprintf(stderr, msg, d1, d2, d3, d4);
                return(0);
        }
 }
                return(0);
        }
 }
index 4853590..8315d6d 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-static char sccsid[] = "@(#)PRED.c 1.2 %G%";
+static char sccsid[] = "@(#)PRED.c 1.3 %G%";
 
 #include "h01errs.h"
 
 
 #include "h01errs.h"
 
@@ -11,9 +11,13 @@ PRED(value, lower, upper)
        long    lower;
        long    upper;
 {
        long    lower;
        long    upper;
 {
+       if (value == lower) {
+               ERROR("Cannot take pred of first element of a range\n");
+               return;
+       }
        value--;
        if (value < lower || value > upper) {
        value--;
        if (value < lower || value > upper) {
-               ERROR(ERANGE, value);
+               ERROR("Value of %D is out of range\n", value);
                return;
        }
        return  value;
                return;
        }
        return  value;
index 4ab5dd2..e7368ab 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-static char sccsid[] = "@(#)SUCC.c 1.2 %G%";
+static char sccsid[] = "@(#)SUCC.c 1.3 %G%";
 
 #include "h01errs.h"
 
 
 #include "h01errs.h"
 
@@ -11,9 +11,13 @@ SUCC(value, lower, upper)
        long    lower;
        long    upper;
 {
        long    lower;
        long    upper;
 {
+       if (value == upper) {
+               ERROR("Cannot take succ of last element of a range\n");
+               return;
+       }
        value++;
        if (value < lower || value > upper) {
        value++;
        if (value < lower || value > upper) {
-               ERROR(ERANGE, value);
+               ERROR("Value of %D is out of range\n", value);
                return;
        }
        return  value;
                return;
        }
        return  value;