1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-25 07:28:20 +00:00

(Fmake_symbolic_link, Ffile_accessible_directory_p, Finsert_file_contents,

auto_save_error, Fwrite_region): Fix gcpro problems.
This commit is contained in:
Karl Heuer 1994-08-24 00:35:51 +00:00
parent 3d94e94328
commit 1a04498e87

View File

@ -2076,7 +2076,10 @@ This happens for interactive use with M-x.")
{
unlink (XSTRING (linkname)->data);
if (0 <= symlink (XSTRING (filename)->data, XSTRING (linkname)->data))
return Qnil;
{
UNGCPRO;
return Qnil;
}
}
#ifdef NO_ARG_ARRAY
@ -2380,6 +2383,8 @@ searchable directory.")
Lisp_Object filename;
{
Lisp_Object handler;
int tem;
struct gcpro gcpro1;
/* If the file name has special constructs in it,
call the corresponding file handler. */
@ -2387,11 +2392,13 @@ searchable directory.")
if (!NILP (handler))
return call2 (handler, Qfile_accessible_directory_p, filename);
if (NILP (Ffile_directory_p (filename))
|| NILP (Ffile_executable_p (filename)))
return Qnil;
else
return Qt;
/* Need to gcpro in case the first function call has a handler that
causes filename to be relocated. */
GCPRO1 (filename);
tem = (NILP (Ffile_directory_p (filename))
|| NILP (Ffile_executable_p (filename)));
UNGCPRO;
return tem ? Qnil : Qt;
}
DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 1, 0,
@ -2591,7 +2598,7 @@ and (2) it puts less data in the undo list.")
register int inserted = 0;
register int how_much;
int count = specpdl_ptr - specpdl;
struct gcpro gcpro1, gcpro2;
struct gcpro gcpro1, gcpro2, gcpro3;
Lisp_Object handler, val, insval;
Lisp_Object p;
int total;
@ -2599,7 +2606,7 @@ and (2) it puts less data in the undo list.")
val = Qnil;
p = Qnil;
GCPRO2 (filename, p);
GCPRO3 (filename, val, p);
if (!NILP (current_buffer->read_only))
Fbarf_if_buffer_read_only();
@ -3006,11 +3013,13 @@ to the file, instead of any buffer contents, and END is ignored.")
if (!NILP (start) && !STRINGP (start))
validate_region (&start, &end);
GCPRO2 (filename, visit);
filename = Fexpand_file_name (filename, Qnil);
if (STRINGP (visit))
visit_file = Fexpand_file_name (visit, Qnil);
else
visit_file = filename;
UNGCPRO;
visiting = (EQ (visit, Qt) || STRINGP (visit));
quietly = !NILP (visit);
@ -3263,7 +3272,9 @@ to the file, instead of any buffer contents, and END is ignored.")
/* Discard the unwind protect for close_file_unwind. */
specpdl_ptr = specpdl + count1;
/* Restore the original current buffer. */
GCPRO1 (visit_file);
unbind_to (count);
UNGCPRO;
#ifdef CLASH_DETECTION
if (!auto_saving)
@ -3336,7 +3347,6 @@ build_annotations (start, end)
been dealt with by this function. */
if (current_buffer != given_buffer)
{
Lisp_Object tem;
start = BEGV;
end = ZV;
annotations = Qnil;
@ -3527,14 +3537,12 @@ An argument specifies the modification time value to use\n\
Lisp_Object
auto_save_error ()
{
unsigned char *name = XSTRING (current_buffer->name)->data;
ring_bell ();
message ("Autosaving...error for %s", name);
message ("Autosaving...error for %s", XSTRING (current_buffer->name)->data);
Fsleep_for (make_number (1), Qnil);
message ("Autosaving...error!for %s", name);
message ("Autosaving...error!for %s", XSTRING (current_buffer->name)->data);
Fsleep_for (make_number (1), Qnil);
message ("Autosaving...error for %s", name);
message ("Autosaving...error for %s", XSTRING (current_buffer->name)->data);
Fsleep_for (make_number (1), Qnil);
return Qnil;
}
@ -3588,7 +3596,6 @@ Non-nil second argument means save only current buffer.")
int do_handled_files;
Lisp_Object oquit;
int listdesc;
Lisp_Object lispstream;
int count = specpdl_ptr - specpdl;
int *ptr;