<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 1, 2022 at 12:21 PM Rob Landley <<a href="mailto:rob@landley.net">rob@landley.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 12/1/22 14:17, Rob Landley wrote:<br>
> Anyway, applied, I should squint at it more after lunch...<br>
<br>
Except:<br>
<br>
  $ ls -Nb | wc<br>
      274     274    4075<br>
  $ ./toybox ls -Nb<br>
  ls: No 'b' with 'N' (see "ls --help")<br>
<br>
It's not [!Nb] it's [-Nb] which means the test setting FLAG_b if we have a tty<br>
should test if (!FLAG(N)) and _what_ is show-control-chars doing:<br>
<br>
       --show-control-chars<br>
              show nongraphic characters as-is (the default, unless program is<br>
              'ls' and output is a terminal)<br></blockquote><div><br></div><div>(warning: sensitive viewers may want to look away now.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
When is program NOT 'ls' in the man page for ls? </blockquote><div><br></div><div>when it's dir(1) for the ex-DOS crowd 🤢</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Meanwhile, upstream debian grew<br>
a new mode and instead of -b is defaulting to that new one, so my torture test<br>
dir looks like:<br>
<br>
  $ ls<br>
   BE    ̡͔O͟N͎E             'one two four'    ̹̭͟ͅON͏̖͖̹LY̘͓<br>
   C̷͉̻A̛̜̜͉n  'one'$'\t''two'  'one two three'   T̹̳H̳eRȨ̮̖̤<br>
  $ ls -b<br>
  BE  C̷͉̻A̛̜̜͉n  ̡͔O͟N͎E  one\ttwo  one\ two\ four  one\ two\ three  ̹̭͟ͅON͏̖͖̹LY̘͓  T̹̳H̳eRȨ̮̖̤<br>
<br>
Which I have been STUDIOUSLY IGNORING since it happened. (I actually hate it,<br>
because it means most big dirty directories that display as a single column<br>
because they have a long name somewhere but ALSO have something with a space in<br>
the name somewhere wind up gratuitously indented one space, and you can't make<br>
it stop without an "alias" to get the old behavior back.)<br></blockquote><div><br></div><div>yeah, that annoyed me when i first saw it. i still don't really understand the motivation either. unless they're just giving me another reason to have toybox higher up my $PATH :-)</div><div><br></div><div>there's also the `--quoting-style=` section of the info page, where there's a bunch of stuff that _sounds_ useful, but i assume based on past experience is likely to be similarly annoying in practice.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Rob<br>
<br>
P.S. the current -b test is tty and if (!FLAG(show_control_chars)) but the<br>
longopt for -q is --hide-control-chars so that technically undoes -q not -b. The<br>
long for -N is --literal and the long for -b is --escape and there's no obvious<br>
relationship between those and it would be REALLY NICE if the man page says that<br>
-b undoes -N and -Q undoes -q except -Q isn't --hide-control-chars it's<br>
--quote-name which is the new nonsense they added and made the default. They<br>
used up the -Q character for something else LONG AFTER adding<br>
--hide-control-chars without a corresponding short opt because gnu.<br></blockquote><div><br></div><div>(as we determined years ago, "this is what happens when 'design' is done by drive-by commits".)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
P.P.S. And I still need to fix the flag generation so there isn't an easily made<br>
mistake requiring too much inside knowledge to avoid making. After lunch.<br>
<br>
P.P.P.S. I _do_ actually have the funky quoting logic under construction in sh.c<br>
because declare -p and friends need it, but I really really really hate this<br>
feature and AESTHETICALLY don't want it to be the default because of the<br>
gratuitous indenting I mentioned earlier. I know they added it because people<br>
don't know how to write shell scripts. And made it the default because people<br>
don't know that they don't know how to write shell scripts. Grrr... I'm gonna<br>
have to do it, aren't I? Dowanna... Sigh.<br>
</blockquote></div></div>