]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix symbolic mode string conversion for s and t
authorAndreas Schwab <schwab@linux-m68k.org>
Sun, 6 Mar 2016 23:20:40 +0000 (00:20 +0100)
committerAndreas Schwab <schwab@linux-m68k.org>
Sun, 6 Mar 2016 23:31:20 +0000 (00:31 +0100)
* lisp/files.el (file-modes-char-to-right): Fix values for ?s and
?t.
(file-modes-symbolic-to-number): Default to a for ts permissions.

lisp/files.el

index 1c4dd25dbfd4c21950114fffc101b7f631c3662c..5cdd3849f19d75b7341c7fe22534571a9d90a93b 100644 (file)
@@ -6795,8 +6795,8 @@ If CHAR is in [Xugo], the value is taken from FROM (or 0 if omitted)."
   (cond ((= char ?r) #o0444)
        ((= char ?w) #o0222)
        ((= char ?x) #o0111)
-       ((= char ?s) #o1000)
-       ((= char ?t) #o6000)
+       ((= char ?s) #o6000)
+       ((= char ?t) #o1000)
        ;; Rights relative to the previous file modes.
        ((= char ?X) (if (= (logand from #o111) 0) 0 #o0111))
        ((= char ?u) (let ((uright (logand #o4700 from)))
@@ -6852,7 +6852,7 @@ as in \"og+rX-w\"."
                                  (mapcar 'file-modes-char-to-who
                                          (match-string 1 modes)))))
              (when (= num-who 0)
-               (setq num-who (default-file-modes)))
+               (setq num-who (logior #o7000 (default-file-modes))))
              (setq num-modes
                    (file-modes-rights-to-number (substring modes (match-end 1))
                                                 num-who num-modes)