Mercurial > hg > xemacs-beta
diff src/callproc.c @ 116:9f59509498e1 r20-1b10
Import from CVS: tag r20-1b10
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:23:06 +0200 |
parents | fe104dbd9147 |
children | cca96a509cfe |
line wrap: on
line diff
--- a/src/callproc.c Mon Aug 13 09:21:56 2007 +0200 +++ b/src/callproc.c Mon Aug 13 09:23:06 2007 +0200 @@ -190,6 +190,7 @@ char *bufptr = buf; int bufsize = 16384; int speccount = specpdl_depth (); + struct gcpro gcpro1; char **new_argv = (char **) alloca ((max (2, nargs - 2)) * sizeof (char *)); @@ -229,8 +230,8 @@ GCPRO2 (current_dir, path); /* Caller gcprotects args[] */ current_dir = current_buffer->directory; - current_dir = expand_and_dir_to_file - (Funhandled_file_name_directory (current_dir), Qnil); + current_dir = Funhandled_file_name_directory (current_dir); + current_dir = expand_and_dir_to_file (current_dir, Qnil); #if 0 /* I don't know how RMS intends this crock of shit to work, but it breaks everything in the presence of ange-ftp-visited files, so @@ -244,12 +245,17 @@ if (nargs >= 2 && ! NILP (args[1])) { + struct gcpro gcpro1; + GCPRO1 (current_buffer->directory); infile = Fexpand_file_name (args[1], current_buffer->directory); + UNGCPRO; CHECK_STRING (infile); } else infile = build_string (NULL_DEVICE); + GCPRO1 (infile); /* Fexpand_file_name might trash it */ + if (nargs >= 3) { buffer = args[2]; @@ -287,6 +293,8 @@ else buffer = Qnil; + UNGCPRO; + display = ((nargs >= 4) ? args[3] : Qnil); /* From here we assume we won't GC (unless an error is signaled). */