From 4c3266310d04d5a5047a6a740280af62afacbf4f Mon Sep 17 00:00:00 2001 From: Benjamin Sago Date: Sat, 16 Jan 2016 12:19:00 -1000 Subject: [PATCH] Fix bug where xattr '@' characters weren't shown The `--long` flag should show the '@' character in the permissions list if that feature has been compiled in, but only the `--extended` flag should actually show their keys, rather than just their presence. --- src/output/details.rs | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/output/details.rs b/src/output/details.rs index d699b81..c292217 100644 --- a/src/output/details.rs +++ b/src/output/details.rs @@ -214,6 +214,7 @@ impl Details { use num_cpus; use scoped_threadpool::Pool; use std::sync::{Arc, Mutex}; + use feature::xattr; let mut pool = Pool::new(num_cpus::get() as u32); let mut file_eggs = Vec::new(); @@ -236,25 +237,21 @@ impl Details { scoped.execute(move || { let mut errors = Vec::new(); - let mut xattrs = Vec::new(); - match file.path.attributes() { - Ok(xs) => { - if self.xattr { - for xattr in xs { - xattrs.push(xattr); - } - } - }, - Err(e) => { - if self.xattr { - errors.push((e, None)); - } - }, - }; + + if xattr::ENABLED { + match file.path.attributes() { + Ok(xs) => xattrs.extend(xs), + Err(e) => errors.push((e, None)), + }; + } let cells = table.cells_for_file(&file, !xattrs.is_empty()); + if !table.opts.xattr { + xattrs.clear(); + } + let mut dir = None; if let Some(r) = self.recurse { -- GitLab