Ver Fonte

feat!: remove --no-icons in favor of --icons=always,auto,never. default is auto

PThorpe92 há 2 anos atrás
pai
commit
37776ec6f3

+ 1 - 2
src/options/file_name.rs

@@ -2,7 +2,6 @@ use crate::options::parser::MatchedFlags;
 use crate::options::vars::{self, Vars};
 use crate::options::{flags, NumberSource, OptionsError};
 
-use super::vars::EZA_ICON_SPACING;
 use crate::output::file_name::{Classify, EmbedHyperlinks, Options, QuoteStyle, ShowIcons};
 
 impl Options {
@@ -70,7 +69,7 @@ impl ShowIcons {
                 Ok(width) => width,
                 Err(e) => {
                     let source = NumberSource::Env(
-                        vars.source(vars::EXA_ICON_SPACING, EZA_ICON_SPACING)
+                        vars.source(vars::EXA_ICON_SPACING, vars::EZA_ICON_SPACING)
                             .unwrap(),
                     );
                     return Err(OptionsError::FailedParse(columns, source, e));

+ 8 - 14
src/options/parser.rs

@@ -198,18 +198,12 @@ impl Args {
                                 return Err(ParseError::NeedsValue { flag, values });
                             }
                         }
-                        // optional arguments must check
-                        TakesValue::Optional(_) => {
-                            if let Some(next_arg) = inputs.peek() {
-                                if is_flag(next_arg) {
-                                    result_flags.push((flag, None));
-                                } else {
-                                    result_flags.push((flag, Some(inputs.next().unwrap())));
-                                }
-                            } else {
-                                result_flags.push((flag, None));
+                        TakesValue::Optional(_) => match inputs.peek() {
+                            Some(next_arg) if is_optional_arg(next_arg) => {
+                                result_flags.push((flag, Some(inputs.next().unwrap())));
                             }
-                        }
+                            _ => result_flags.push((flag, None)),
+                        },
                     }
                 }
             }
@@ -337,12 +331,12 @@ impl Args {
     }
 }
 
-fn is_flag(arg: &OsStr) -> bool {
+fn is_optional_arg(arg: &OsStr) -> bool {
     let bytes = os_str_to_bytes(arg);
     match bytes {
         // The only optional arguments allowed
-        b"always" | b"auto" | b"automatic" | b"never" => false,
-        _ => bytes.starts_with(b"-"),
+        b"always" | b"auto" | b"automatic" | b"never" => true,
+        _ => false,
     }
 }
 

+ 0 - 0
tests/cmd/long_icons_always.stderr


+ 21 - 0
tests/cmd/long_icons_always.stdout

@@ -0,0 +1,21 @@
+.rw-r--r--  0 nixbld  1 Jan  1970  a
+.rw-r--r--  0 nixbld  1 Jan  1970  b
+.rw-r--r--  0 nixbld  1 Jan  1970  c
+.rw-r--r--  0 nixbld  1 Jan  1970  d
+.rw-r--r--  0 nixbld  1 Jan  1970  e
+drwxr-xr-x  - nixbld  1 Jan  1970  exa
+.rw-r--r--  0 nixbld  1 Jan  1970  f
+.rw-r--r--  0 nixbld  1 Jan  1970  g
+.rw-r--r--  0 nixbld  1 Jan  1970  h
+.rw-r--r--  0 nixbld  1 Jan  1970  i
+.rw-r--r--  0 nixbld  1 Jan  1970  image.jpg.img.c.rs.log.png
+.rw-r--r-- 19 nixbld  1 Jan  1970 󰕙 index.svg
+.rw-r--r--  0 nixbld  1 Jan  1970  j
+.rw-r--r--  0 nixbld  1 Jan  1970  k
+.rw-r--r--  0 nixbld  1 Jan  1970  l
+.rw-r--r--  0 nixbld  1 Jan  1970  m
+.rw-r--r--  0 nixbld  1 Jan  1970  n
+.rw-r--r--  0 nixbld  1 Jan  1970  o
+.rw-r--r--  0 nixbld  1 Jan  1970  p
+.rw-r--r--  0 nixbld  1 Jan  1970  q
+drwxr-xr-x  - nixbld  1 Jan  1970  vagrant

+ 2 - 0
tests/cmd/long_icons_always.toml

@@ -0,0 +1,2 @@
+bin.name = "eza"
+args = "tests/itest --long --icons=always"

+ 21 - 21
tests/cmd/long_icons_nix.stdout

@@ -1,21 +1,21 @@
-.rw-r--r--  0 nixbld  1 Jan  1970  a
-.rw-r--r--  0 nixbld  1 Jan  1970  b
-.rw-r--r--  0 nixbld  1 Jan  1970  c
-.rw-r--r--  0 nixbld  1 Jan  1970  d
-.rw-r--r--  0 nixbld  1 Jan  1970  e
-drwxr-xr-x  - nixbld  1 Jan  1970  exa
-.rw-r--r--  0 nixbld  1 Jan  1970  f
-.rw-r--r--  0 nixbld  1 Jan  1970  g
-.rw-r--r--  0 nixbld  1 Jan  1970  h
-.rw-r--r--  0 nixbld  1 Jan  1970  i
-.rw-r--r--  0 nixbld  1 Jan  1970  image.jpg.img.c.rs.log.png
-.rw-r--r-- 19 nixbld  1 Jan  1970  index.svg
-.rw-r--r--  0 nixbld  1 Jan  1970  j
-.rw-r--r--  0 nixbld  1 Jan  1970  k
-.rw-r--r--  0 nixbld  1 Jan  1970  l
-.rw-r--r--  0 nixbld  1 Jan  1970  m
-.rw-r--r--  0 nixbld  1 Jan  1970  n
-.rw-r--r--  0 nixbld  1 Jan  1970  o
-.rw-r--r--  0 nixbld  1 Jan  1970  p
-.rw-r--r--  0 nixbld  1 Jan  1970  q
-drwxr-xr-x  - nixbld  1 Jan  1970  vagrant
+.rw-r--r--  0 nixbld  1 Jan  1970 a
+.rw-r--r--  0 nixbld  1 Jan  1970 b
+.rw-r--r--  0 nixbld  1 Jan  1970 c
+.rw-r--r--  0 nixbld  1 Jan  1970 d
+.rw-r--r--  0 nixbld  1 Jan  1970 e
+drwxr-xr-x  - nixbld  1 Jan  1970 exa
+.rw-r--r--  0 nixbld  1 Jan  1970 f
+.rw-r--r--  0 nixbld  1 Jan  1970 g
+.rw-r--r--  0 nixbld  1 Jan  1970 h
+.rw-r--r--  0 nixbld  1 Jan  1970 i
+.rw-r--r--  0 nixbld  1 Jan  1970 image.jpg.img.c.rs.log.png
+.rw-r--r-- 19 nixbld  1 Jan  1970 index.svg
+.rw-r--r--  0 nixbld  1 Jan  1970 j
+.rw-r--r--  0 nixbld  1 Jan  1970 k
+.rw-r--r--  0 nixbld  1 Jan  1970 l
+.rw-r--r--  0 nixbld  1 Jan  1970 m
+.rw-r--r--  0 nixbld  1 Jan  1970 n
+.rw-r--r--  0 nixbld  1 Jan  1970 o
+.rw-r--r--  0 nixbld  1 Jan  1970 p
+.rw-r--r--  0 nixbld  1 Jan  1970 q
+drwxr-xr-x  - nixbld  1 Jan  1970 vagrant

+ 0 - 1
tests/cmd/non_term_icons.stdout

@@ -1 +0,0 @@
- a   b   c   d   e   exa   f   g   h   i   image.jpg.img.c.rs.log.png  󰕙 index.svg   j   k   l   m   n   o   p   q   vagrant

+ 0 - 2
tests/cmd/non_term_icons.toml

@@ -1,2 +0,0 @@
-bin.name = "eza"
-args = "tests/itest --icons=auto"