diff options
| author | Karoly Lorentey | 2004-11-06 17:52:02 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-11-06 17:52:02 +0000 |
| commit | 65ea79492334e2ef7b5b4e0d23b6f68ba2f4d0bb (patch) | |
| tree | 853cf391ca1abda4f4ccd6fe8e7bb43f7c86ee08 /src/fileio.c | |
| parent | e0bc17abe6979d607e8de4684dddb96e53c60065 (diff) | |
| parent | 392cf16dd0ee9358f8af0cd0d8048b822456bbeb (diff) | |
| download | emacs-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.c | 51 |
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 | ||
| 3370 | DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 1, 0, | 3370 | DEFUN ("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. |
| 3372 | Return 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 | |||
| 5714 | auto_save_1 () | 5715 | auto_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 | ||
| 6184 | DEFUN ("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. | ||
| 6187 | The return value is only relevant for a call to `read-file-name' that happens | ||
| 6188 | before 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 | |||
| 6179 | DEFUN ("read-file-name", Fread_file_name, Sread_file_name, 1, 6, 0, | 6201 | DEFUN ("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. |
| 6181 | Value is not expanded---you must call `expand-file-name' yourself. | 6203 | Value 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); |