aboutsummaryrefslogtreecommitdiffstats
path: root/src/sysdep.c
diff options
context:
space:
mode:
authorStefan Monnier2011-03-31 00:24:03 -0400
committerStefan Monnier2011-03-31 00:24:03 -0400
commit40d83b412f584cc02e68d4eac8fd5e6eb769e2fe (patch)
treeb56f27a7e6d75a8c1fd27b00179a27b5efea0a32 /src/sysdep.c
parentf488fb6528738131ef41859e1f04125f2e50efce (diff)
parent44f230aa043ebb222aa0876b44d70484d5dd38db (diff)
downloademacs-40d83b412f584cc02e68d4eac8fd5e6eb769e2fe.tar.gz
emacs-40d83b412f584cc02e68d4eac8fd5e6eb769e2fe.zip
Merge from trunk
Diffstat (limited to 'src/sysdep.c')
-rw-r--r--src/sysdep.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index 6ef3d88c5c8..1bb400421f0 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -449,7 +449,7 @@ child_setup_tty (int out)
449struct save_signal 449struct save_signal
450{ 450{
451 int code; 451 int code;
452 SIGTYPE (*handler) (int); 452 void (*handler) (int);
453}; 453};
454 454
455static void save_signal_handlers (struct save_signal *); 455static void save_signal_handlers (struct save_signal *);
@@ -488,7 +488,8 @@ sys_subshell (void)
488 int pid; 488 int pid;
489 struct save_signal saved_handlers[5]; 489 struct save_signal saved_handlers[5];
490 Lisp_Object dir; 490 Lisp_Object dir;
491 unsigned char * IF_LINT (volatile) str = 0; 491 unsigned char *volatile str_volatile = 0;
492 unsigned char *str;
492 int len; 493 int len;
493 494
494 saved_handlers[0].code = SIGINT; 495 saved_handlers[0].code = SIGINT;
@@ -512,7 +513,7 @@ sys_subshell (void)
512 goto xyzzy; 513 goto xyzzy;
513 514
514 dir = expand_and_dir_to_file (Funhandled_file_name_directory (dir), Qnil); 515 dir = expand_and_dir_to_file (Funhandled_file_name_directory (dir), Qnil);
515 str = (unsigned char *) alloca (SCHARS (dir) + 2); 516 str_volatile = str = (unsigned char *) alloca (SCHARS (dir) + 2);
516 len = SCHARS (dir); 517 len = SCHARS (dir);
517 memcpy (str, SDATA (dir), len); 518 memcpy (str, SDATA (dir), len);
518 if (str[len - 1] != '/') str[len++] = '/'; 519 if (str[len - 1] != '/') str[len++] = '/';
@@ -544,6 +545,7 @@ sys_subshell (void)
544 sh = "sh"; 545 sh = "sh";
545 546
546 /* Use our buffer's default directory for the subshell. */ 547 /* Use our buffer's default directory for the subshell. */
548 str = str_volatile;
547 if (str && chdir ((char *) str) != 0) 549 if (str && chdir ((char *) str) != 0)
548 { 550 {
549#ifndef DOS_NT 551#ifndef DOS_NT
@@ -606,7 +608,7 @@ save_signal_handlers (struct save_signal *saved_handlers)
606 while (saved_handlers->code) 608 while (saved_handlers->code)
607 { 609 {
608 saved_handlers->handler 610 saved_handlers->handler
609 = (SIGTYPE (*) (int)) signal (saved_handlers->code, SIG_IGN); 611 = (void (*) (int)) signal (saved_handlers->code, SIG_IGN);
610 saved_handlers++; 612 saved_handlers++;
611 } 613 }
612} 614}