Subject: bug#28092: closed (Re: bug#28092: 26.0.50; archive-int-to-mode check S_ISUID, S_ISGID bits in reverse order)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 15 Aug 2017 06:48:02 +0000

Your bug report

#28092: 26.0.50; archive-int-to-mode check S_ISUID, S_ISGID bits in reverse order

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
28092: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28092
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#28092: 26.0.50; archive-int-to-mode check S_ISUID, S_ISGID bits in reverse order
From: Tino Calancha <[email-masked]>
To: [email-masked]
Date: Tue, 15 Aug 2017 15:47:40 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

Tino Calancha <[email-masked]> writes:

> Tags: patch
>
> emacs -Q -l arc-mode
>
> (archive-int-to-mode 2048)
> => "------S---" ; It should be: "---S------"
> (archive-int-to-mode 1024)
> => "---S------" ; It should be: "------S---"
Fixed in master branch as commit
66b75d3f2002459edccd241af57c63b380b192d3
(archive-int-to-mode: Fix order of testing S_ISUID, S_ISGID bits)

Subject: 26.0.50; archive-int-to-mode check S_ISUID, S_ISGID bits in reverse order
From: Tino Calancha <[email-masked]>
To: [email-masked]
Date: Tue, 15 Aug 2017 11:31:25 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

Tags: patch

emacs -Q -l arc-mode

(archive-int-to-mode 2048)
=> "------S---" ; It should be: "---S------"
(archive-int-to-mode 1024)
=> "---S------" ; It should be: "------S---"

--8<-----------------------------cut here---------------start------------->8---
commit 03b830d7ad819118c8b9d4e30cf6da638a579c88
Author: Tino Calancha <[email-masked]>
Date:   Tue Aug 15 11:15:10 2017 +0900

    archive-int-to-mode: Fix order of testing S_ISUID, S_ISGID bits
    
    * lisp/arc-mode.el (archive-int-to-mode):
    Swap order of 2048 with 1024 tests (Bug#28092).
    * test/lisp/arc-mode-tests.el (arc-mode-test-archive-int-to-mode):
    Update test.

diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index bd7548b704..938c143b8e 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -559,13 +559,13 @@ archive-int-to-mode
     (if (zerop (logand   256 mode)) ?- ?r)
     (if (zerop (logand   128 mode)) ?- ?w)
     (if (zerop (logand    64 mode))
-	(if (zerop (logand  1024 mode)) ?- ?S)
-      (if (zerop (logand  1024 mode)) ?x ?s))
+	(if (zerop (logand  2048 mode)) ?- ?S)
+      (if (zerop (logand  2048 mode)) ?x ?s))
     (if (zerop (logand    32 mode)) ?- ?r)
     (if (zerop (logand    16 mode)) ?- ?w)
     (if (zerop (logand     8 mode))
-	(if (zerop (logand  2048 mode)) ?- ?S)
-      (if (zerop (logand  2048 mode)) ?x ?s))
+	(if (zerop (logand  1024 mode)) ?- ?S)
+      (if (zerop (logand  1024 mode)) ?x ?s))
     (if (zerop (logand     4 mode)) ?- ?r)
     (if (zerop (logand     2 mode)) ?- ?w)
     (if (zerop (logand     1 mode)) ?- ?x)))
diff --git a/test/lisp/arc-mode-tests.el b/test/lisp/arc-mode-tests.el
index 04047bab62..c2501e921a 100644
--- a/test/lisp/arc-mode-tests.el
+++ b/test/lisp/arc-mode-tests.el
@@ -27,7 +27,7 @@
                      (cons 420 "-rw-r--r--")
                      (cons 292 "-r--r--r--")
                      (cons 512 "----------")
-                     (cons 1024 "---S------"))))
+                     (cons 1024 "------S---"))))
     (dolist (x alist)
       (should (equal (cdr x) (archive-int-to-mode (car x)))))))
 
--8<-----------------------------cut here---------------end--------------->8---
In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2017-08-15
Repository revision: e88bbd22c5ffb1d6008c0c7e18a36043b0f397dd