diff options
author | Marius Vollmer <mvo@zagadka.de> | 2005-12-06 22:35:05 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2005-12-06 22:35:05 +0000 |
commit | d9c36d2a6f76b3c7acd29e324bee7f4e9da00075 (patch) | |
tree | 8d0897f374a46ca8a2469a58686b6b8606dde62e | |
parent | 08f489c98bed402dd196f85cdce231ae72abf9b7 (diff) | |
download | guile-d9c36d2a6f76b3c7acd29e324bee7f4e9da00075.tar.gz |
(scm_find_executable): Compile fix -- fgetc returns an
unsigned char cast to an int, or -1 for EOS.
-rw-r--r-- | libguile/ChangeLog | 7 | ||||
-rw-r--r-- | libguile/script.c | 9 |
2 files changed, 13 insertions, 3 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 242ca3935..68fb26f57 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,10 @@ +2005-12-07 Marius Vollmer <mvo@zagadka.de> + + From Andy Wingo. + + * script.c (scm_find_executable): Compile fix -- fgetc returns an + unsigned char cast to an int, or -1 for EOS. + 2005-12-06 Marius Vollmer <mvo@zagadka.de> * srfi-4.h, srfi-4.c, srfi-4.i.c (take_uvec): Make BASE pointer diff --git a/libguile/script.c b/libguile/script.c index a5e8b0af2..4a50ee233 100644 --- a/libguile/script.c +++ b/libguile/script.c @@ -120,7 +120,7 @@ char * scm_find_executable (const char *name) { char tbuf[MAXPATHLEN]; - int i = 0; + int i = 0, c; FILE *f; /* fprintf(stderr, "s_f_e checking access %s ->%d\n", name, access(name, X_OK)); fflush(stderr); */ @@ -132,16 +132,19 @@ scm_find_executable (const char *name) if ((fgetc (f) == '#') && (fgetc (f) == '!')) { while (1) - switch (tbuf[i++] = fgetc (f)) + switch (c = fgetc (f)) { case /*WHITE_SPACES */ ' ': case '\t': case '\r': case '\f': case EOF: - tbuf[--i] = 0; + tbuf[i] = 0; fclose (f); return scm_cat_path (0L, tbuf, 0L); + default: + tbuf[i++] = c; + break; } } fclose (f); |