diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dired.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dired.c b/src/dired.c index d8b9683514f..42391774db8 100644 --- a/src/dired.c +++ b/src/dired.c | |||
| @@ -491,6 +491,7 @@ file_name_completion_stat (dirname, dp, st_addr) | |||
| 491 | { | 491 | { |
| 492 | int len = NAMLEN (dp); | 492 | int len = NAMLEN (dp); |
| 493 | int pos = XSTRING (dirname)->size; | 493 | int pos = XSTRING (dirname)->size; |
| 494 | int value; | ||
| 494 | char *fullname = (char *) alloca (len + pos + 2); | 495 | char *fullname = (char *) alloca (len + pos + 2); |
| 495 | 496 | ||
| 496 | bcopy (XSTRING (dirname)->data, fullname, pos); | 497 | bcopy (XSTRING (dirname)->data, fullname, pos); |
| @@ -503,7 +504,12 @@ file_name_completion_stat (dirname, dp, st_addr) | |||
| 503 | fullname[pos + len] = 0; | 504 | fullname[pos + len] = 0; |
| 504 | 505 | ||
| 505 | #ifdef S_IFLNK | 506 | #ifdef S_IFLNK |
| 506 | return lstat (fullname, st_addr); | 507 | /* We want to return success if a link points to a nonexistent file, |
| 508 | but we want to return the status for what the link points to, | ||
| 509 | in case it is a directory. */ | ||
| 510 | value = lstat (fullname, st_addr); | ||
| 511 | stat (fullname, st_addr); | ||
| 512 | return value; | ||
| 507 | #else | 513 | #else |
| 508 | return stat (fullname, st_addr); | 514 | return stat (fullname, st_addr); |
| 509 | #endif | 515 | #endif |