diff options
Diffstat (limited to 'src/sysdep.c')
-rw-r--r-- | src/sysdep.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/sysdep.c b/src/sysdep.c index 6ef3d88c5c8..14db0fd26d0 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -488,7 +488,8 @@ sys_subshell (void) int pid; struct save_signal saved_handlers[5]; Lisp_Object dir; - unsigned char * IF_LINT (volatile) str = 0; + unsigned char *volatile str_volatile = 0; + unsigned char *str; int len; saved_handlers[0].code = SIGINT; @@ -512,7 +513,7 @@ sys_subshell (void) goto xyzzy; dir = expand_and_dir_to_file (Funhandled_file_name_directory (dir), Qnil); - str = (unsigned char *) alloca (SCHARS (dir) + 2); + str_volatile = str = (unsigned char *) alloca (SCHARS (dir) + 2); len = SCHARS (dir); memcpy (str, SDATA (dir), len); if (str[len - 1] != '/') str[len++] = '/'; @@ -544,6 +545,7 @@ sys_subshell (void) sh = "sh"; /* Use our buffer's default directory for the subshell. */ + str = str_volatile; if (str && chdir ((char *) str) != 0) { #ifndef DOS_NT |