diff options
author | Ulrich Mueller <ulm@gentoo.org> | 2011-10-20 23:44:20 -0700 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2011-10-20 23:44:20 -0700 |
commit | 7e1361d995cba156dd4b14ac4ba236bf90908d46 (patch) | |
tree | dca98db467ce7cffbf3eabd7369be6356b48146a /lisp/tar-mode.el | |
parent | 30fcaf3a28e94241889bdd6e27ae759c4185ad74 (diff) | |
download | emacs-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.el | 12 |
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'." |