From 6bf20c78f5b69d40bcc4931df93d29198435ab67 Mon Sep 17 00:00:00 2001 From: zakk Date: Fri, 26 Aug 2005 17:39:27 +0000 Subject: newlines fixed git-svn-id: svn://svn.icculus.org/quake3/trunk@6 edf5b092-35ff-0310-97b2-ce42778d08ea --- lcc/src/input.c | 268 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 134 insertions(+), 134 deletions(-) (limited to 'lcc/src/input.c') diff --git a/lcc/src/input.c b/lcc/src/input.c index 2f34420..4f0afc8 100755 --- a/lcc/src/input.c +++ b/lcc/src/input.c @@ -1,134 +1,134 @@ -#include "c.h" - - -static void pragma(void); -static void resynch(void); - -static int bsize; -static unsigned char buffer[MAXLINE+1 + BUFSIZE+1]; -unsigned char *cp; /* current input character */ -char *file; /* current input file name */ -char *firstfile; /* first input file */ -unsigned char *limit; /* points to last character + 1 */ -char *line; /* current line */ -int lineno; /* line number of current line */ - -void nextline(void) { - do { - if (cp >= limit) { - fillbuf(); - if (cp >= limit) - cp = limit; - if (cp == limit) - return; - } else { - lineno++; - for (line = (char *)cp; *cp==' ' || *cp=='\t'; cp++) - ; - if (*cp == '#') { - resynch(); - nextline(); - } - } - } while (*cp == '\n' && cp == limit); -} -void fillbuf(void) { - if (bsize == 0) - return; - if (cp >= limit) - cp = &buffer[MAXLINE+1]; - else - { - int n = limit - cp; - unsigned char *s = &buffer[MAXLINE+1] - n; - assert(s >= buffer); - line = (char *)s - ((char *)cp - line); - while (cp < limit) - *s++ = *cp++; - cp = &buffer[MAXLINE+1] - n; - } - if (feof(stdin)) - bsize = 0; - else - bsize = fread(&buffer[MAXLINE+1], 1, BUFSIZE, stdin); - if (bsize < 0) { - error("read error\n"); - exit(EXIT_FAILURE); - } - limit = &buffer[MAXLINE+1+bsize]; - *limit = '\n'; -} -void input_init(int argc, char *argv[]) { - static int inited; - - if (inited) - return; - inited = 1; - main_init(argc, argv); - limit = cp = &buffer[MAXLINE+1]; - bsize = -1; - lineno = 0; - file = NULL; - fillbuf(); - if (cp >= limit) - cp = limit; - nextline(); -} - -/* pragma - handle #pragma ref id... */ -static void pragma(void) { - if ((t = gettok()) == ID && strcmp(token, "ref") == 0) - for (;;) { - while (*cp == ' ' || *cp == '\t') - cp++; - if (*cp == '\n' || *cp == 0) - break; - if ((t = gettok()) == ID && tsym) { - tsym->ref++; - use(tsym, src); - } - } -} - -/* resynch - set line number/file name in # n [ "file" ] and #pragma ... */ -static void resynch(void) { - for (cp++; *cp == ' ' || *cp == '\t'; ) - cp++; - if (limit - cp < MAXLINE) - fillbuf(); - if (strncmp((char *)cp, "pragma", 6) == 0) { - cp += 6; - pragma(); - } else if (*cp >= '0' && *cp <= '9') { - line: for (lineno = 0; *cp >= '0' && *cp <= '9'; ) - lineno = 10*lineno + *cp++ - '0'; - lineno--; - while (*cp == ' ' || *cp == '\t') - cp++; - if (*cp == '"') { - file = (char *)++cp; - while (*cp && *cp != '"' && *cp != '\n') - cp++; - file = stringn(file, (char *)cp - file); - if (*cp == '\n') - warning("missing \" in preprocessor line\n"); - if (firstfile == 0) - firstfile = file; - } - } else if (strncmp((char *)cp, "line", 4) == 0) { - for (cp += 4; *cp == ' ' || *cp == '\t'; ) - cp++; - if (*cp >= '0' && *cp <= '9') - goto line; - if (Aflag >= 2) - warning("unrecognized control line\n"); - } else if (Aflag >= 2 && *cp != '\n') - warning("unrecognized control line\n"); - while (*cp) - if (*cp++ == '\n') - if (cp == limit + 1) - nextline(); - else - break; -} - +#include "c.h" + + +static void pragma(void); +static void resynch(void); + +static int bsize; +static unsigned char buffer[MAXLINE+1 + BUFSIZE+1]; +unsigned char *cp; /* current input character */ +char *file; /* current input file name */ +char *firstfile; /* first input file */ +unsigned char *limit; /* points to last character + 1 */ +char *line; /* current line */ +int lineno; /* line number of current line */ + +void nextline(void) { + do { + if (cp >= limit) { + fillbuf(); + if (cp >= limit) + cp = limit; + if (cp == limit) + return; + } else { + lineno++; + for (line = (char *)cp; *cp==' ' || *cp=='\t'; cp++) + ; + if (*cp == '#') { + resynch(); + nextline(); + } + } + } while (*cp == '\n' && cp == limit); +} +void fillbuf(void) { + if (bsize == 0) + return; + if (cp >= limit) + cp = &buffer[MAXLINE+1]; + else + { + int n = limit - cp; + unsigned char *s = &buffer[MAXLINE+1] - n; + assert(s >= buffer); + line = (char *)s - ((char *)cp - line); + while (cp < limit) + *s++ = *cp++; + cp = &buffer[MAXLINE+1] - n; + } + if (feof(stdin)) + bsize = 0; + else + bsize = fread(&buffer[MAXLINE+1], 1, BUFSIZE, stdin); + if (bsize < 0) { + error("read error\n"); + exit(EXIT_FAILURE); + } + limit = &buffer[MAXLINE+1+bsize]; + *limit = '\n'; +} +void input_init(int argc, char *argv[]) { + static int inited; + + if (inited) + return; + inited = 1; + main_init(argc, argv); + limit = cp = &buffer[MAXLINE+1]; + bsize = -1; + lineno = 0; + file = NULL; + fillbuf(); + if (cp >= limit) + cp = limit; + nextline(); +} + +/* pragma - handle #pragma ref id... */ +static void pragma(void) { + if ((t = gettok()) == ID && strcmp(token, "ref") == 0) + for (;;) { + while (*cp == ' ' || *cp == '\t') + cp++; + if (*cp == '\n' || *cp == 0) + break; + if ((t = gettok()) == ID && tsym) { + tsym->ref++; + use(tsym, src); + } + } +} + +/* resynch - set line number/file name in # n [ "file" ] and #pragma ... */ +static void resynch(void) { + for (cp++; *cp == ' ' || *cp == '\t'; ) + cp++; + if (limit - cp < MAXLINE) + fillbuf(); + if (strncmp((char *)cp, "pragma", 6) == 0) { + cp += 6; + pragma(); + } else if (*cp >= '0' && *cp <= '9') { + line: for (lineno = 0; *cp >= '0' && *cp <= '9'; ) + lineno = 10*lineno + *cp++ - '0'; + lineno--; + while (*cp == ' ' || *cp == '\t') + cp++; + if (*cp == '"') { + file = (char *)++cp; + while (*cp && *cp != '"' && *cp != '\n') + cp++; + file = stringn(file, (char *)cp - file); + if (*cp == '\n') + warning("missing \" in preprocessor line\n"); + if (firstfile == 0) + firstfile = file; + } + } else if (strncmp((char *)cp, "line", 4) == 0) { + for (cp += 4; *cp == ' ' || *cp == '\t'; ) + cp++; + if (*cp >= '0' && *cp <= '9') + goto line; + if (Aflag >= 2) + warning("unrecognized control line\n"); + } else if (Aflag >= 2 && *cp != '\n') + warning("unrecognized control line\n"); + while (*cp) + if (*cp++ == '\n') + if (cp == limit + 1) + nextline(); + else + break; +} + -- cgit v1.2.3