aboutsummaryrefslogtreecommitdiff
path: root/coreutils/ls.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'busybox' into mergeRon Yorston2025-11-111-2/+1
|\
| * ls: restore functionality of --colorDenys Vlasenko2025-11-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 551bfdb97 (ls: implement -q, fix -w0, reduce startup time) the '--color' option behaves as though the default argument 'always' had been specified. This is due to an explicit short option for '--color' being given, but without specifying that an argument is expected. function old new delta .rodata 106027 106029 +2 Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | ls: restore functionality of --colorRon Yorston2025-09-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | Since upstream commit 551bfdb97 (ls: implement -q, fix -w0, reduce startup time) was merged the '--color' option behaves as though the default argument 'always' had been specified. This is due to an explict short option for '--color' being given, but without specifying that an argument is expected. (GitHub issue #522)
* | ls: add '-g' and '-C' to usage messageRon Yorston2025-08-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | For some reason upstream doesn't include the '-g' option in the usage message for 'ls'. Commit 551bfdb97 (ls: implement -q, fix -w0, reduce startup time) added a description but left it commented out. It didn't add 'g' to the list of options. 'C' appears in the list but its description is commented out. Adds 24-32 bytes. (GitHub issue #517)
* | Merge branch 'busybox' into mergeRon Yorston2025-08-151-79/+167
|\|
| * ls: don't do unnecessary tty operations when called from ftpdDenys Vlasenko2025-08-011-5/+13
| | | | | | | | | | | | | | function old new delta ls_main 660 690 +30 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ls: code shrinkDenys Vlasenko2025-08-011-19/+20
| | | | | | | | | | | | Looks like gcc can figure this out by itself, but let's be explicit Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ls: fix -Q to match GNUDenys Vlasenko2025-08-011-12/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta print_name 137 229 +92 display_files 375 402 +27 c_escape_conv_str00 - 24 +24 display 1476 1485 +9 conv_str 33 - -33 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 3/0 up/down: 152/-33) Total: 119 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ls: lack of -q should not suppress -QDenys Vlasenko2025-07-311-4/+6
| | | | | | | | | | | | | | | | | | | | function old new delta print_name 134 137 +3 display_files 374 375 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 4/0) Total: 4 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ls: implement -q, fix -w0, reduce startup timeDenys Vlasenko2025-07-311-60/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta ls_main 598 660 +62 ls_longopts - 47 +47 G_isatty - 36 +36 print_name 102 134 +32 display_files 358 374 +16 .rodata 105829 105833 +4 vgetopt32 1330 1317 -13 static.ls_longopts 47 - -47 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 4/1 up/down: 197/-60) Total: 137 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2024-06-231-2/+2
|\|
| * ls: do not truncate username/groupname to 8 charsDenys Vlasenko2024-02-251-2/+2
| | | | | | | | | | | | | | function old new delta .rodata 105412 105408 -4 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | ls: support NO_COLOR environment variableRon Yorston2024-01-301-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | If the NO_COLOR environment variable is set and is not empty 'ls' won't output ANSI colour codes. This is an alternative to the existing approach of setting 'LS_COLORS=none'. See https://no-color.org/. Costs 24-32 bytes. (GitHub issue #382)
* | ls: code shrinkRon Yorston2023-06-071-10/+11
| |
* | ls: check whether link is hiddenRon Yorston2023-06-061-0/+17
| | | | | | | | | | | | | | | | | | | | When using 'ls -L' to list the target of a symlink (or equivalent) we must first check whether the link itself is hidden and thus subject to special treatment by the '-a' or '-A' options. Adds 80 bytes. (GitHub issue #331)
* | ls: allow hidden system files to be omittedRon Yorston2023-06-011-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'ls' applet in busybox-w32 treated files with the hidden attribute as though they had a leading '.'. Some such files also have the system attribute set. Since these aren't of much interest to most users and since several of them have long unsightly names there's some advantage in allowing them to be omitted from the listing. Implement this by omitting hidden system files if the '-a' or '-A' option is given twice. Adds 80-88 bytes (GitHub issue #328)
* | win32: only count subdirectories if necessaryRon Yorston2023-01-231-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 7fb95a2a5 (win32: try to get link count for directories) allowed stat(2) to report accurate values of st_nlink for directories. There are only a couple of places in busybox-w32 where these values are required. Disable counting of subdirectories by default and only enable it when necessary. Microsoft kindly provide directories to test edge cases like this: C:/Windows/WinSxS (contains many subdirectories) C:/Windows/WinSxS/Manifests (contains many files) Adds 84-112 bytes.
* | Merge busybox into mergeRon Yorston2022-01-131-3/+10
|\| | | | | | | | | | | | | Fix merge conflicts in coreutils/ls.c and shell/ash.c. Update config files to turn off SHA1_HWACCEL. It uses non-portable assembler.
| * ls: implement ls -sh (human-readable allocated blocks)Denys Vlasenko2022-01-081-3/+10
| | | | | | | | | | | | | | function old new delta display_single 979 1018 +39 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2021-09-211-1/+2
|\|
| * libbb: clarify what bb_mode_string() generatesDenys Vlasenko2021-09-171-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: eliminate a static data array in bb_mode_string()Denys Vlasenko2021-09-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta print_stat 861 869 +8 header_verbose_list_ar 73 77 +4 display_single 975 979 +4 header_verbose_list 237 239 +2 bb_mode_string 124 115 -9 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/1 up/down: 18/-9) Total: 9 bytes text data bss dec hex filename 1043136 559 5052 1048747 1000ab busybox_old 1043153 559 5020 1048732 10009c busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ls: revert last change (short name must be allocated)Denys Vlasenko2021-06-251-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ls: code shrinkDenys Vlasenko2021-06-241-1/+1
| | | | | | | | | | | | | | function old new delta scan_and_display_dirs_recur 576 574 -2 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2021-06-071-13/+17
|\|
| * ls: trim --help textDenys Vlasenko2021-06-051-9/+9
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ls: don't output any colors with TERM=dumbSören Tempel2021-06-041-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The TERM variable is usually set to "dumb" to indicate that the terminal does not support any ANSI escape sequences. Presently, ls does not honor this variable and outputs colors anyhow which results in unreadable output, unless the user explicitly disables colors using `ls --color=never`. The rational behind this change is that ls should "just work" by default, even on dumb terminals. For this reason, this patch adds a check which additionally consults the TERM variable before printing any colors. This is analogous to the existing check for ensuring that standard output is a tty. As such, colors can still be forced with `--color=force`, even if TERM is set to dumb. function old new delta is_TERM_dumb - 40 +40 ls_main 579 598 +19 .rodata 103246 103251 +5 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 2/0 up/down: 64/0) Total: 64 bytes Signed-off-by: Sören Tempel <soeren+git@soeren-tempel.net> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | win32: make readlink(2) implementation unconditionalRon Yorston2021-02-121-2/+0
| | | | | | | | | | | | | | There doesn't seem to be much advantage in having readlink(2) as a configuration option. Making it unconditional reduces divergence from upstream and allows the removal of a check for ENOSYS that's been in busybox-w32 since the start.
* | Merge branch 'busybox' into mergeRon Yorston2021-02-051-1/+1
|\|
| * libbb: introduce and use fputs_stdoutRon Yorston2021-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta fputs_stdout - 12 +12 zxc_vm_process 7237 7230 -7 yes_main 85 78 -7 write_block 380 373 -7 wrapf 305 298 -7 strings_main 437 430 -7 show_bridge 353 346 -7 rev_main 384 377 -7 put_prompt_custom 58 51 -7 put_cur_glyph_and_inc_cursor 168 161 -7 print_numbered_lines 152 145 -7 print_named_ascii 130 123 -7 print_name 135 128 -7 print_login_issue 386 379 -7 print_ascii 208 201 -7 powertop_main 1249 1242 -7 od_main 1789 1782 -7 logread_main 518 511 -7 head_main 804 797 -7 display_process_list 1319 1312 -7 cut_main 1002 995 -7 bb_dump_dump 1550 1543 -7 bb_ask_noecho 393 386 -7 baseNUM_main 702 695 -7 expand_main 755 745 -10 dumpleases_main 497 487 -10 write1 12 - -12 putcsi 37 23 -14 print_login_prompt 55 41 -14 paste_main 525 511 -14 cat_main 440 426 -14 print_it 245 230 -15 print_addrinfo 1188 1171 -17 print_rule 770 750 -20 print_linkinfo 842 822 -20 httpd_main 791 771 -20 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/34 up/down: 12/-341) Total: -329 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | ash, ls: improve support for 'c:path'Ron Yorston2020-08-281-0/+5
| | | | | | | | | | | | | | | | | | | | Revert commit 249f68e3c (win32: append '/' to bare drive name in opendir). Instead add better handling for paths of the form 'c:path' to ls and expmeta() in ash. Adds 64 bytes.
* | ls: allow backslashes to be replaced in displayed pathsfix_backslashRon Yorston2020-08-191-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally 'ls' displays paths exactly as the user enters them: $ ls .//file .//file In busybox-w32 paths using backslash as a separator are displayed in a form that can't be reused as input to the shell: $ ls .\\file .\file Allow backslashes to be replaced with forward slashes if the environment variable BB_FIX_BACKSLASH is set to 1. See GitHub issue #196.
* | ls: treat hidden files as if their names begin with a dotRon Yorston2020-07-091-0/+12
| | | | | | | | | | | | | | On Unix 'ls' treats filenames starting with a dot as hidden and only displays them if the '-a' or '-A' option is given. Extend similar treatment to files with the Windows hidden flag.
* | Merge branch 'busybox' into mergeRon Yorston2019-05-271-1/+1
|\|
| * ls: fix SEGV when --color is used and ENABLE_LS_COLOR=nDenys Vlasenko2019-05-261-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | win32: implement readlink(2)Ron Yorston2019-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | Provide an implementation of readlink(2) based on code from Git for Windows. This version only supports symbolic links, not mount points, as the latter seem to work well enough as-is. With this change the ls and stat applets can display the targets of symbolic links. The readlink applet has been enabled in the default configuration.
* | ls: use correct column width for WIN32 inodesRon Yorston2019-03-041-0/+4
| |
* | win32: make stat(2) fetch additional metadataRon Yorston2019-02-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify the WIN32 implementation of stat(2) to fetch inode number, device id and number of hardlinks. This requires opening a handle to the target file so it will be slower. A number of features can be enabled or start to work: - tar can detect if an archive is being stored in itself; - find can support the -inum and -links options; - ls can display inode numbers; - diff can detect attempts to compare a file with itself; - du has better support for hardlinked files; - cp can detect attempts to copy a file over itself.
* | Merge branch 'busybox' into mergeRon Yorston2019-01-101-2/+2
|\|
| * ls: make -i compatible with coreutils: don't follow symlink by defaultMartijn Dekker2019-01-041-2/+2
| | | | | | | | | | Signed-off-by: Martijn Dekker <martijn@inlv.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2018-10-081-2/+2
|\|
| * unzip: use printable_string() for printing filenamesDenys Vlasenko2018-09-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta unzip_main 2726 2792 +66 printable_string2 - 57 +57 identify 4329 4336 +7 expmeta 659 663 +4 add_interface 99 103 +4 beep_main 286 289 +3 changepath 192 194 +2 builtin_type 115 117 +2 devmem_main 469 470 +1 input_tab 1076 1074 -2 create_J 1821 1819 -2 poplocalvars 314 311 -3 doCommands 2222 2214 -8 do_load 918 902 -16 printable_string 57 9 -48 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 8/6 up/down: 146/-79) Total: 67 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2018-09-101-1/+9
|\|
| * ls: When -h is passed, the total should also be in human unitsLauri Kasanen2018-08-011-1/+9
| | | | | | | | | | Signed-off-by: Lauri Kasanen <cand@gmx.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | ls, stat: don't try to read symlinksRon Yorston2018-04-101-0/+2
| | | | | | | | | | | | | | | | Currently the WIN32 emulation of readlink(2) fails with ENOSYS. This causes ugly error messages in ls and stat. Don't even try calling readlink(2) and skip any code that uses the name it doesn't return.
* | Merge branch 'busybox' into mergeRon Yorston2018-02-131-3/+2
|\|
| * randomconfig fixesDenys Vlasenko2017-12-311-3/+2
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2017-09-271-4/+6
|\|
| * *: use ESC define instead of "\033"; use ESC[m instead of ESC[0mDenys Vlasenko2017-09-131-4/+6
| | | | | | | | | | | | | | | | text data bss dec hex filename 922535 481 6832 929848 e3038 busybox_old 922534 481 6832 929847 e3037 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2017-08-221-30/+31
|\|