diff options
| -rw-r--r-- | inout.c | 8 | ||||
| -rw-r--r-- | lex.c | 13 |
2 files changed, 14 insertions, 7 deletions
| @@ -5,7 +5,7 @@ | |||
| 5 | ** Also provides some predefined lua functions. | 5 | ** Also provides some predefined lua functions. |
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | char *rcs_inout="$Id: inout.c,v 2.69 1997/06/27 22:38:49 roberto Exp roberto $"; | 8 | char *rcs_inout="$Id: inout.c,v 2.70 1997/07/07 21:05:51 roberto Exp roberto $"; |
| 9 | 9 | ||
| 10 | #include <stdio.h> | 10 | #include <stdio.h> |
| 11 | #include <string.h> | 11 | #include <string.h> |
| @@ -71,12 +71,8 @@ int lua_dofile (char *filename) | |||
| 71 | f = freopen(filename, "rb", f); /* set binary mode */ | 71 | f = freopen(filename, "rb", f); /* set binary mode */ |
| 72 | status = lua_doFILE(f, 1); | 72 | status = lua_doFILE(f, 1); |
| 73 | } | 73 | } |
| 74 | else { | 74 | else |
| 75 | if (c == '#') | ||
| 76 | while ((c=fgetc(f)) != '\n' && c != 0) /* skip first line */; | ||
| 77 | ungetc(c, f); | ||
| 78 | status = lua_doFILE(f, 0); | 75 | status = lua_doFILE(f, 0); |
| 79 | } | ||
| 80 | if (f != stdin) | 76 | if (f != stdin) |
| 81 | fclose(f); | 77 | fclose(f); |
| 82 | return status; | 78 | return status; |
| @@ -1,4 +1,4 @@ | |||
| 1 | char *rcs_lex = "$Id: lex.c,v 3.5 1997/06/16 16:50:22 roberto Exp roberto $"; | 1 | char *rcs_lex = "$Id: lex.c,v 3.6 1997/07/01 19:32:41 roberto Exp roberto $"; |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | #include <ctype.h> | 4 | #include <ctype.h> |
| @@ -37,6 +37,16 @@ static struct { | |||
| 37 | static int iflevel; /* level of nested $if's */ | 37 | static int iflevel; /* level of nested $if's */ |
| 38 | 38 | ||
| 39 | 39 | ||
| 40 | |||
| 41 | static void firstline (void) | ||
| 42 | { | ||
| 43 | int c = zgetc(lex_z); | ||
| 44 | if (c == '#') | ||
| 45 | while((c=zgetc(lex_z)) != '\n' && c != EOZ) /* skip first line */; | ||
| 46 | zungetc(lex_z); | ||
| 47 | } | ||
| 48 | |||
| 49 | |||
| 40 | void lua_setinput (ZIO *z) | 50 | void lua_setinput (ZIO *z) |
| 41 | { | 51 | { |
| 42 | current = '\n'; | 52 | current = '\n'; |
| @@ -45,6 +55,7 @@ void lua_setinput (ZIO *z) | |||
| 45 | ifstate[0].skip = 0; | 55 | ifstate[0].skip = 0; |
| 46 | ifstate[0].elsepart = 1; /* to avoid a free $else */ | 56 | ifstate[0].elsepart = 1; /* to avoid a free $else */ |
| 47 | lex_z = z; | 57 | lex_z = z; |
| 58 | firstline(); | ||
| 48 | } | 59 | } |
| 49 | 60 | ||
| 50 | 61 | ||
