aboutsummaryrefslogtreecommitdiffstats
path: root/src/fileio.c
diff options
context:
space:
mode:
authorKaroly Lorentey2004-11-06 17:52:02 +0000
committerKaroly Lorentey2004-11-06 17:52:02 +0000
commit65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb (patch)
tree853cf391ca1abda4f4ccd6fe8e7bb43f7c86ee08 /src/fileio.c
parente0bc17abe6979d607e8de4684dddb96e53c60065 (diff)
parent392cf16dd0ee9358f8af0cd0d8048b822456bbeb (diff)
downloademacs-65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb.tar.gz
emacs-65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-653 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-654 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-655 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-656 Update from CVS: lisp/man.el (Man-xref-normal-file): Fix help-echo. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-657 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-658 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-659 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-660 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-661 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-662 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-663 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-664 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-665 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-666 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-667 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-668 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-669 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-670 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-671 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-64 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-65 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-66 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-67 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-68 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-264
Diffstat (limited to 'src/fileio.c')
-rw-r--r--src/fileio.c51
1 files changed, 36 insertions, 15 deletions
diff --git a/src/fileio.c b/src/fileio.c
index ece909ea8b3..587f36d537d 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -3368,7 +3368,8 @@ This is the sort of file that holds an ordinary stream of data bytes. */)
3368} 3368}
3369 3369
3370DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 1, 0, 3370DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 1, 0,
3371 doc: /* Return mode bits of file named FILENAME, as an integer. */) 3371 doc: /* Return mode bits of file named FILENAME, as an integer.
3372Return nil, if file does not exist or is not accessible. */)
3372 (filename) 3373 (filename)
3373 Lisp_Object filename; 3374 Lisp_Object filename;
3374{ 3375{
@@ -5714,17 +5715,21 @@ Lisp_Object
5714auto_save_1 () 5715auto_save_1 ()
5715{ 5716{
5716 struct stat st; 5717 struct stat st;
5718 Lisp_Object modes;
5719
5720 auto_save_mode_bits = 0666;
5717 5721
5718 /* Get visited file's mode to become the auto save file's mode. */ 5722 /* Get visited file's mode to become the auto save file's mode. */
5719 if (! NILP (current_buffer->filename) 5723 if (! NILP (current_buffer->filename))
5720 && stat (SDATA (current_buffer->filename), &st) >= 0) 5724 {
5721 /* But make sure we can overwrite it later! */ 5725 if (stat (SDATA (current_buffer->filename), &st) >= 0)
5722 auto_save_mode_bits = st.st_mode | 0600; 5726 /* But make sure we can overwrite it later! */
5723 else if (! NILP (current_buffer->filename)) 5727 auto_save_mode_bits = st.st_mode | 0600;
5724 /* Remote files don't cooperate with stat. */ 5728 else if ((modes = Ffile_modes (current_buffer->filename),
5725 auto_save_mode_bits = XINT (Ffile_modes (current_buffer->filename)) | 0600; 5729 INTEGERP (modes)))
5726 else 5730 /* Remote files don't cooperate with stat. */
5727 auto_save_mode_bits = 0666; 5731 auto_save_mode_bits = XINT (modes) | 0600;
5732 }
5728 5733
5729 return 5734 return
5730 Fwrite_region (Qnil, Qnil, 5735 Fwrite_region (Qnil, Qnil,
@@ -6176,6 +6181,23 @@ DEFUN ("read-file-name-internal", Fread_file_name_internal, Sread_file_name_inte
6176 return Ffile_exists_p (string); 6181 return Ffile_exists_p (string);
6177} 6182}
6178 6183
6184DEFUN ("next-read-file-uses-dialog-p", Fnext_read_file_uses_dialog_p,
6185 Snext_read_file_uses_dialog_p, 0, 0, 0,
6186 doc: /* Return t if a call to `read-file-name' will use a dialog.
6187The return value is only relevant for a call to `read-file-name' that happens
6188before any other event (mouse or keypress) is handeled. */)
6189 ()
6190{
6191#if defined (USE_MOTIF) || defined (HAVE_NTGUI) || defined (USE_GTK) || defined (TARGET_API_MAC_CARBON)
6192 if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event))
6193 && use_dialog_box
6194 && use_file_dialog
6195 && have_menus_p ())
6196 return Qt;
6197#endif
6198 return Qnil;
6199}
6200
6179DEFUN ("read-file-name", Fread_file_name, Sread_file_name, 1, 6, 0, 6201DEFUN ("read-file-name", Fread_file_name, Sread_file_name, 1, 6, 0,
6180 doc: /* Read file name, prompting with PROMPT and completing in directory DIR. 6202 doc: /* Read file name, prompting with PROMPT and completing in directory DIR.
6181Value is not expanded---you must call `expand-file-name' yourself. 6203Value is not expanded---you must call `expand-file-name' yourself.
@@ -6308,10 +6330,7 @@ and `read-file-name-function'. */)
6308 GCPRO2 (insdef, default_filename); 6330 GCPRO2 (insdef, default_filename);
6309 6331
6310#if defined (USE_MOTIF) || defined (HAVE_NTGUI) || defined (USE_GTK) || defined (TARGET_API_MAC_CARBON) 6332#if defined (USE_MOTIF) || defined (HAVE_NTGUI) || defined (USE_GTK) || defined (TARGET_API_MAC_CARBON)
6311 if ((NILP (last_nonmenu_event) || CONSP (last_nonmenu_event)) 6333 if (! NILP (Fnext_read_file_uses_dialog_p ()))
6312 && use_dialog_box
6313 && use_file_dialog
6314 && have_menus_p ())
6315 { 6334 {
6316 /* If DIR contains a file name, split it. */ 6335 /* If DIR contains a file name, split it. */
6317 Lisp_Object file; 6336 Lisp_Object file;
@@ -6323,7 +6342,8 @@ and `read-file-name-function'. */)
6323 } 6342 }
6324 if (!NILP(default_filename)) 6343 if (!NILP(default_filename))
6325 default_filename = Fexpand_file_name (default_filename, dir); 6344 default_filename = Fexpand_file_name (default_filename, dir);
6326 val = Fx_file_dialog (prompt, dir, default_filename, mustmatch); 6345 val = Fx_file_dialog (prompt, dir, default_filename, mustmatch,
6346 EQ (predicate, Qfile_directory_p) ? Qt : Qnil);
6327 add_to_history = 1; 6347 add_to_history = 1;
6328 } 6348 }
6329 else 6349 else
@@ -6695,6 +6715,7 @@ a non-nil value. */);
6695 6715
6696 defsubr (&Sread_file_name_internal); 6716 defsubr (&Sread_file_name_internal);
6697 defsubr (&Sread_file_name); 6717 defsubr (&Sread_file_name);
6718 defsubr (&Snext_read_file_uses_dialog_p);
6698 6719
6699#ifdef unix 6720#ifdef unix
6700 defsubr (&Sunix_sync); 6721 defsubr (&Sunix_sync);