summaryrefslogtreecommitdiff
path: root/lisp/tar-mode.el
diff options
context:
space:
mode:
authorUlrich Mueller <ulm@gentoo.org>2011-10-20 23:44:20 -0700
committerGlenn Morris <rgm@gnu.org>2011-10-20 23:44:20 -0700
commit7e1361d995cba156dd4b14ac4ba236bf90908d46 (patch)
treedca98db467ce7cffbf3eabd7369be6356b48146a /lisp/tar-mode.el
parent30fcaf3a28e94241889bdd6e27ae759c4185ad74 (diff)
downloademacs-7e1361d995cba156dd4b14ac4ba236bf90908d46.tar.gz
tar-grind-file-mode fix.
* lisp/tar-mode.el (tar-grind-file-mode): Fix handling of setuid/setgid, handle sticky bit. Fixes: debbugs:9817
Diffstat (limited to 'lisp/tar-mode.el')
-rw-r--r--lisp/tar-mode.el12
1 files changed, 9 insertions, 3 deletions
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 62171328979..cfa406c2b48 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -404,13 +404,19 @@ MODE should be an integer which is a file mode value."
(string
(if (zerop (logand 256 mode)) ?- ?r)
(if (zerop (logand 128 mode)) ?- ?w)
- (if (zerop (logand 1024 mode)) (if (zerop (logand 64 mode)) ?- ?x) ?s)
+ (if (zerop (logand 2048 mode))
+ (if (zerop (logand 64 mode)) ?- ?x)
+ (if (zerop (logand 64 mode)) ?S ?s))
(if (zerop (logand 32 mode)) ?- ?r)
(if (zerop (logand 16 mode)) ?- ?w)
- (if (zerop (logand 2048 mode)) (if (zerop (logand 8 mode)) ?- ?x) ?s)
+ (if (zerop (logand 1024 mode))
+ (if (zerop (logand 8 mode)) ?- ?x)
+ (if (zerop (logand 8 mode)) ?S ?s))
(if (zerop (logand 4 mode)) ?- ?r)
(if (zerop (logand 2 mode)) ?- ?w)
- (if (zerop (logand 1 mode)) ?- ?x)))
+ (if (zerop (logand 512 mode))
+ (if (zerop (logand 1 mode)) ?- ?x)
+ (if (zerop (logand 1 mode)) ?T ?t))))
(defun tar-header-block-summarize (tar-hblock &optional mod-p)
"Return a line similar to the output of `tar -vtf'."