2 // RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System
3 // ERROR.C - Error Handling
4 // Copyright (C) 199x Landon Dyer, 2011 Reboot and Friends
5 // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
6 // Source utilised with the kind permission of Landon Dyer
13 int errcnt; // Error count
14 char * err_fname; // Name of error message file
16 static const char nl[] = "\n";
17 static long unused; // For supressing 'write' warnings
21 // Report error if not at EOL
29 sprintf(msg, "syntax error. expected EOL, found $%X ('%c')", *tok, *tok);
38 // Cannot create a file
40 void cantcreat(const char * fn)
42 printf("cannot create: '%s'\n", fn);
48 // Setup for error message
49 // o Create error listing file (if necessary)
50 // o Set current filename
56 // This seems like it's unnecessary, as token.c seems to take care of this all by itself.
57 // Can restore if it's really needed. If not, into the bit bucket it goes. :-)
60 if (err_fname != NULL)
62 strcpy(fnbuf, err_fname);
65 strcpy(fnbuf, firstfname);
69 if ((err_fd = open(fnbuf, _OPEN_FLAGS, _PERM_MODE)) < 0)
78 // Display error message
80 int error(const char * s)
90 sprintf(buf, "%s %d: Error: %s%s", curfname, curlineno, s, nl);
94 unused = write(err_fd, buf, length);
105 int errors(const char * s, char * s1)
116 sprintf(buf1, "%s %d: Error: %s%s", curfname, curlineno, buf, nl);
119 unused = write(err_fd, buf1, (LONG)strlen(buf1));
130 int warn(const char * s)
139 sprintf(buf, "%s %d: Warning: %s%s", curfname, curlineno, s, nl);
142 unused = write(err_fd, buf, (LONG)strlen(buf));
152 int warns(const char * s, char * s1)
163 sprintf(buf1, "%s %d: Warning: %s%s", curfname, curlineno, buf, nl);
166 unused = write(err_fd, buf1, (LONG)strlen(buf1));
176 int warni(const char * s, unsigned i)
187 sprintf(buf1, "%s %d: Warning: %s%s", curfname, curlineno, buf, nl);
190 unused = write(err_fd, buf1, (LONG)strlen(buf1));
200 int fatal(const char * s)
209 sprintf(buf, "%s %d: Fatal: %s%s", curfname, curlineno, s, nl);
212 unused = write(err_fd, buf, (LONG)strlen(buf));
225 sprintf(buf, "%s %d: Internal Error Number %d%s", curfname, curlineno, n, nl);
231 unused = write(err_fd, buf, (LONG)strlen(buf));