diff options
| author | Karl Heuer | 1994-03-16 22:14:23 +0000 |
|---|---|---|
| committer | Karl Heuer | 1994-03-16 22:14:23 +0000 |
| commit | 3ace87e34c93a6b000932510d3bd3b81d4056d20 (patch) | |
| tree | a1fdfc193b83c8fe1886cffbf9e5f46d57bb0b35 /src | |
| parent | a7d40caa145f4f2a7dcb791248fe2e1b05b8cb8f (diff) | |
| download | emacs-3ace87e34c93a6b000932510d3bd3b81d4056d20.tar.gz emacs-3ace87e34c93a6b000932510d3bd3b81d4056d20.zip | |
(Ffile_modes) [MSDOS]: set exec-bit based on file suffix.
Diffstat (limited to 'src')
| -rw-r--r-- | src/fileio.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/fileio.c b/src/fileio.c index 371d44050e9..4f37b392f8d 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -2352,6 +2352,19 @@ DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 1, 0, | |||
| 2352 | 2352 | ||
| 2353 | if (stat (XSTRING (abspath)->data, &st) < 0) | 2353 | if (stat (XSTRING (abspath)->data, &st) < 0) |
| 2354 | return Qnil; | 2354 | return Qnil; |
| 2355 | #ifdef MSDOS | ||
| 2356 | { | ||
| 2357 | int len; | ||
| 2358 | char *suffix; | ||
| 2359 | if (S_ISREG (st.st_mode) | ||
| 2360 | && (len = XSTRING (abspath)->size) >= 5 | ||
| 2361 | && (stricmp ((suffix = XSTRING (abspath)->data + len-4), ".com") == 0 | ||
| 2362 | || stricmp (suffix, ".exe") == 0 | ||
| 2363 | || stricmp (suffix, ".bat") == 0)) | ||
| 2364 | st.st_mode |= S_IEXEC; | ||
| 2365 | } | ||
| 2366 | #endif /* MSDOS */ | ||
| 2367 | |||
| 2355 | return make_number (st.st_mode & 07777); | 2368 | return make_number (st.st_mode & 07777); |
| 2356 | } | 2369 | } |
| 2357 | 2370 | ||