aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKarl Heuer1996-07-07 22:36:38 +0000
committerKarl Heuer1996-07-07 22:36:38 +0000
commit34ead71a13152314bf149fbd185cd29b89ae5cb0 (patch)
treebf49f019a6be78e0543e2c5e55faf0ce45d230be /src
parentac8da9507a7de118d02daf69f81ce30ae0b4345d (diff)
downloademacs-34ead71a13152314bf149fbd185cd29b89ae5cb0.tar.gz
emacs-34ead71a13152314bf149fbd185cd29b89ae5cb0.zip
(Fcopy_file): Use st_ino under DJGPP v2 and later to
prevent copying file into itself. (check_executable): DJGPP v2 `stat' doesn't need to be augmented in case of executable files. (Ffile_modes): Use `stat' results as is in DJGPP v2 and later.
Diffstat (limited to 'src')
-rw-r--r--src/fileio.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/fileio.c b/src/fileio.c
index 6f99f002cad..d1e4a09da6d 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2078,7 +2078,7 @@ A prefix arg makes KEEP-TIME non-nil.")
2078 copyable by us. */ 2078 copyable by us. */
2079 input_file_statable_p = (fstat (ifd, &st) >= 0); 2079 input_file_statable_p = (fstat (ifd, &st) >= 0);
2080 2080
2081#ifndef MSDOS 2081#if !defined (MSDOS) || __DJGPP__ > 1
2082 if (out_st.st_mode != 0 2082 if (out_st.st_mode != 0
2083 && st.st_dev == out_st.st_dev && st.st_ino == out_st.st_ino) 2083 && st.st_dev == out_st.st_dev && st.st_ino == out_st.st_ino)
2084 { 2084 {
@@ -2534,7 +2534,7 @@ check_executable (filename)
2534 struct stat st; 2534 struct stat st;
2535 if (stat (filename, &st) < 0) 2535 if (stat (filename, &st) < 0)
2536 return 0; 2536 return 0;
2537#ifdef WINDOWSNT 2537#if defined (WINDOWSNT) || (defined (MSDOS) && __DJGPP__ > 1)
2538 return ((st.st_mode & S_IEXEC) != 0); 2538 return ((st.st_mode & S_IEXEC) != 0);
2539#else 2539#else
2540 return (S_ISREG (st.st_mode) 2540 return (S_ISREG (st.st_mode)
@@ -2840,10 +2840,10 @@ DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 1, 0,
2840 2840
2841 if (stat (XSTRING (absname)->data, &st) < 0) 2841 if (stat (XSTRING (absname)->data, &st) < 0)
2842 return Qnil; 2842 return Qnil;
2843#ifdef MSDOS 2843#if defined (MSDOS) && __DJGPP__ < 2
2844 if (check_executable (XSTRING (absname)->data)) 2844 if (check_executable (XSTRING (absname)->data))
2845 st.st_mode |= S_IEXEC; 2845 st.st_mode |= S_IEXEC;
2846#endif /* MSDOS */ 2846#endif /* MSDOS && __DJGPP__ < 2 */
2847 2847
2848 return make_number (st.st_mode & 07777); 2848 return make_number (st.st_mode & 07777);
2849} 2849}