Commit 48f4bc1
committed
feat(ls,du,df): add thousands separator support with leading quote
Implement GNU-compatible thousands separator formatting when --block-size
starts with a single quote (e.g., --block-size="'1").
Fixes #9084
Changes:
- Add extract_thousands_separator_flag() to parse_size module
- Add format_with_thousands_separator() with locale support (LC_NUMERIC)
- Integrate into ls, du, and df utilities
- Support environment variables (LS_BLOCK_SIZE, DU_BLOCK_SIZE, etc.)
- Add 12 integration tests, all existing tests pass
Examples:
ls -l --block-size="'1" /bin # Shows: 1,024,000
du --block-size="'1K" /home # Shows: 1,234K
df --block-size="'1" / # Shows: 494,384,795,6481 parent e4f0216 commit 48f4bc1
File tree
12 files changed
+712
-58
lines changed- .vscode/cspell.dictionaries
- src
- uucore/src/lib/features
- format
- parser
- uu
- df
- src
- du/src
- ls/src
- tests/by-util
12 files changed
+712
-58
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
363 | 363 | | |
364 | 364 | | |
365 | 365 | | |
| 366 | + | |
| 367 | + | |
366 | 368 | | |
367 | 369 | | |
368 | 370 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
23 | 29 | | |
24 | 30 | | |
25 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| |||
160 | 162 | | |
161 | 163 | | |
162 | 164 | | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
163 | 172 | | |
164 | 173 | | |
165 | 174 | | |
| |||
191 | 200 | | |
192 | 201 | | |
193 | 202 | | |
194 | | - | |
| 203 | + | |
195 | 204 | | |
196 | 205 | | |
197 | | - | |
| 206 | + | |
| 207 | + | |
198 | 208 | | |
199 | 209 | | |
200 | | - | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
201 | 214 | | |
202 | 215 | | |
203 | 216 | | |
204 | 217 | | |
205 | | - | |
206 | | - | |
207 | | - | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
208 | 227 | | |
209 | | - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
210 | 232 | | |
211 | 233 | | |
212 | 234 | | |
213 | | - | |
| 235 | + | |
214 | 236 | | |
215 | 237 | | |
216 | | - | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
217 | 244 | | |
218 | 245 | | |
219 | 246 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
96 | 99 | | |
97 | 100 | | |
98 | 101 | | |
| |||
160 | 163 | | |
161 | 164 | | |
162 | 165 | | |
163 | | - | |
| 166 | + | |
164 | 167 | | |
165 | 168 | | |
166 | 169 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
266 | 267 | | |
267 | 268 | | |
268 | 269 | | |
269 | | - | |
270 | | - | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
271 | 277 | | |
272 | 278 | | |
273 | 279 | | |
| |||
373 | 379 | | |
374 | 380 | | |
375 | 381 | | |
376 | | - | |
| 382 | + | |
377 | 383 | | |
378 | 384 | | |
379 | 385 | | |
380 | 386 | | |
381 | 387 | | |
382 | | - | |
| 388 | + | |
383 | 389 | | |
384 | 390 | | |
385 | 391 | | |
| |||
642 | 648 | | |
643 | 649 | | |
644 | 650 | | |
645 | | - | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
646 | 655 | | |
647 | 656 | | |
648 | 657 | | |
| |||
722 | 731 | | |
723 | 732 | | |
724 | 733 | | |
725 | | - | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
726 | 738 | | |
727 | 739 | | |
728 | 740 | | |
| |||
748 | 760 | | |
749 | 761 | | |
750 | 762 | | |
751 | | - | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
752 | 767 | | |
753 | 768 | | |
754 | 769 | | |
| |||
775 | 790 | | |
776 | 791 | | |
777 | 792 | | |
778 | | - | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
779 | 797 | | |
780 | 798 | | |
781 | 799 | | |
| |||
801 | 819 | | |
802 | 820 | | |
803 | 821 | | |
804 | | - | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
805 | 826 | | |
806 | 827 | | |
807 | 828 | | |
| |||
903 | 924 | | |
904 | 925 | | |
905 | 926 | | |
906 | | - | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
907 | 931 | | |
908 | 932 | | |
909 | 933 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
33 | 34 | | |
34 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
35 | 38 | | |
36 | 39 | | |
37 | 40 | | |
| |||
91 | 94 | | |
92 | 95 | | |
93 | 96 | | |
| 97 | + | |
94 | 98 | | |
95 | 99 | | |
96 | 100 | | |
| |||
271 | 275 | | |
272 | 276 | | |
273 | 277 | | |
274 | | - | |
| 278 | + | |
275 | 279 | | |
276 | 280 | | |
277 | | - | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
278 | 287 | | |
279 | 288 | | |
280 | 289 | | |
281 | 290 | | |
282 | 291 | | |
283 | 292 | | |
284 | | - | |
| 293 | + | |
285 | 294 | | |
286 | | - | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
287 | 298 | | |
288 | | - | |
289 | | - | |
| 299 | + | |
| 300 | + | |
290 | 301 | | |
291 | | - | |
| 302 | + | |
292 | 303 | | |
293 | | - | |
| 304 | + | |
294 | 305 | | |
295 | 306 | | |
296 | 307 | | |
| |||
874 | 885 | | |
875 | 886 | | |
876 | 887 | | |
877 | | - | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
878 | 894 | | |
879 | 895 | | |
880 | 896 | | |
| |||
1005 | 1021 | | |
1006 | 1022 | | |
1007 | 1023 | | |
1008 | | - | |
1009 | | - | |
| 1024 | + | |
| 1025 | + | |
1010 | 1026 | | |
1011 | | - | |
| 1027 | + | |
1012 | 1028 | | |
1013 | | - | |
| 1029 | + | |
1014 | 1030 | | |
1015 | | - | |
| 1031 | + | |
1016 | 1032 | | |
1017 | | - | |
| 1033 | + | |
1018 | 1034 | | |
1019 | 1035 | | |
1020 | | - | |
| 1036 | + | |
1021 | 1037 | | |
1022 | 1038 | | |
1023 | 1039 | | |
1024 | 1040 | | |
1025 | | - | |
| 1041 | + | |
1026 | 1042 | | |
1027 | 1043 | | |
1028 | 1044 | | |
| |||
1051 | 1067 | | |
1052 | 1068 | | |
1053 | 1069 | | |
| 1070 | + | |
1054 | 1071 | | |
1055 | 1072 | | |
1056 | 1073 | | |
| |||
1508 | 1525 | | |
1509 | 1526 | | |
1510 | 1527 | | |
1511 | | - | |
| 1528 | + | |
1512 | 1529 | | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
1513 | 1534 | | |
1514 | 1535 | | |
0 commit comments