aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-01-09 13:30:26 +0000
committerPo Lu2022-01-09 13:34:19 +0000
commit691015fedbb94c69fd7d5b0fffe9df9715bb0158 (patch)
tree92cfa2f3ac9cb9242c8bbdedae0a9266dbb1b31c /src
parent54971f5c14fd430208bd456d9f6efcb28b6abe28 (diff)
downloademacs-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.c9
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
622static Lisp_Object 629static Lisp_Object