diff options
| author | Po Lu | 2022-01-09 13:30:26 +0000 |
|---|---|---|
| committer | Po Lu | 2022-01-09 13:34:19 +0000 |
| commit | 691015fedbb94c69fd7d5b0fffe9df9715bb0158 (patch) | |
| tree | 92cfa2f3ac9cb9242c8bbdedae0a9266dbb1b31c /src | |
| parent | 54971f5c14fd430208bd456d9f6efcb28b6abe28 (diff) | |
| download | emacs-691015fedbb94c69fd7d5b0fffe9df9715bb0158.tar.gz emacs-691015fedbb94c69fd7d5b0fffe9df9715bb0158.zip | |
Fix filelock.c for Haiku
This was found during the investigation surrounding bug#53136,
but is not directly related.
* src/filelock.c (lock_if_free): Explictly test err against -1
or -2, and reverse sign of system errors on Haiku. (No Haiku
error occupies -1 or -2.)
Diffstat (limited to 'src')
| -rw-r--r-- | src/filelock.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/filelock.c b/src/filelock.c index a213c2b3cae..8453f17cd4b 100644 --- a/src/filelock.c +++ b/src/filelock.c | |||
| @@ -608,7 +608,7 @@ lock_if_free (lock_info_type *clasher, char *lfname) | |||
| 608 | err = current_lock_owner (clasher, lfname); | 608 | err = current_lock_owner (clasher, lfname); |
| 609 | if (err != 0) | 609 | if (err != 0) |
| 610 | { | 610 | { |
| 611 | if (err < 0) | 611 | if (err == -1 || err == -2) |
| 612 | return -2 - err; /* We locked it, or someone else has it. */ | 612 | return -2 - err; /* We locked it, or someone else has it. */ |
| 613 | break; /* current_lock_owner returned strange error. */ | 613 | break; /* current_lock_owner returned strange error. */ |
| 614 | } | 614 | } |
| @@ -616,7 +616,14 @@ lock_if_free (lock_info_type *clasher, char *lfname) | |||
| 616 | /* We deleted a stale lock; try again to lock the file. */ | 616 | /* We deleted a stale lock; try again to lock the file. */ |
| 617 | } | 617 | } |
| 618 | 618 | ||
| 619 | #if !defined HAIKU \ | ||
| 620 | || defined BE_USE_POSITIVE_POSIX_ERRORS | ||
| 619 | return err; | 621 | return err; |
| 622 | #else | ||
| 623 | /* On Haiku, POSIX error values are negative by default, but this | ||
| 624 | code's callers assume that any errno value is positive. */ | ||
| 625 | return -err; | ||
| 626 | #endif | ||
| 620 | } | 627 | } |
| 621 | 628 | ||
| 622 | static Lisp_Object | 629 | static Lisp_Object |