diff options
Diffstat (limited to 'src/dired.c')
| -rw-r--r-- | src/dired.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/dired.c b/src/dired.c index 2e11259eef1..3efc87ac844 100644 --- a/src/dired.c +++ b/src/dired.c | |||
| @@ -979,8 +979,16 @@ Elements of the attribute list are: | |||
| 979 | shorter than an int (e.g., `short'), GCC whines about comparison | 979 | shorter than an int (e.g., `short'), GCC whines about comparison |
| 980 | being always false due to limited range of data type. Fix by | 980 | being always false due to limited range of data type. Fix by |
| 981 | copying s.st_uid and s.st_gid into int variables. */ | 981 | copying s.st_uid and s.st_gid into int variables. */ |
| 982 | #ifdef WINDOWSNT | ||
| 983 | /* Windows uses signed short for the uid and gid in the stat structure, | ||
| 984 | but we use an int for getuid (limited to the range 0-60000). | ||
| 985 | So users with uid > 32767 need their uid patched back here. */ | ||
| 986 | uid = (unsigned short) s.st_uid; | ||
| 987 | gid = (unsigned short) s.st_gid; | ||
| 988 | #else | ||
| 982 | uid = s.st_uid; | 989 | uid = s.st_uid; |
| 983 | gid = s.st_gid; | 990 | gid = s.st_gid; |
| 991 | #endif | ||
| 984 | if (NILP (id_format) || EQ (id_format, Qinteger)) | 992 | if (NILP (id_format) || EQ (id_format, Qinteger)) |
| 985 | { | 993 | { |
| 986 | values[2] = make_fixnum_or_float (uid); | 994 | values[2] = make_fixnum_or_float (uid); |