diff options
author | Ron Yorston <rmy@frippery.org> | 2015-07-19 11:12:29 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2015-07-19 22:34:13 +0200 |
commit | 51aa861843002e92b605be840460e7141d4d86a2 (patch) | |
tree | bf374b3a4748e8e597990f5dd619522f5778c9a7 /miscutils | |
parent | 072fc60f29ee3a4ff38f095a9ef149b2e820c8c0 (diff) | |
download | busybox-w32-51aa861843002e92b605be840460e7141d4d86a2.tar.gz busybox-w32-51aa861843002e92b605be840460e7141d4d86a2.tar.bz2 busybox-w32-51aa861843002e92b605be840460e7141d4d86a2.zip |
less: document -S flag and make it independently configurable
The -S flag, to cause long lines to be truncated, was enabled by
FEATURE_LESS_DASHCMD. This is non-obvious and -S is useful even
if the '-' command isn't enabled.
function old new delta
.rodata 156045 156077 +32
packed_usage 30223 30244 +21
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 53/0) Total: 53 bytes
Signed-off-by: Ron Yorston <rmy@frippery.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils')
-rw-r--r-- | miscutils/less.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/miscutils/less.c b/miscutils/less.c index d5a68d1e1..c1755655a 100644 --- a/miscutils/less.c +++ b/miscutils/less.c | |||
@@ -48,6 +48,14 @@ | |||
48 | //config: help | 48 | //config: help |
49 | //config: The -M/-m flag enables a more sophisticated status line. | 49 | //config: The -M/-m flag enables a more sophisticated status line. |
50 | //config: | 50 | //config: |
51 | //config:config FEATURE_LESS_TRUNCATE | ||
52 | //config: bool "Enable -S" | ||
53 | //config: default y | ||
54 | //config: depends on LESS | ||
55 | //config: help | ||
56 | //config: The -S flag causes long lines to be truncated rather than | ||
57 | //config: wrapped. | ||
58 | //config: | ||
51 | //config:config FEATURE_LESS_MARKS | 59 | //config:config FEATURE_LESS_MARKS |
52 | //config: bool "Enable marks" | 60 | //config: bool "Enable marks" |
53 | //config: default y | 61 | //config: default y |
@@ -98,7 +106,8 @@ | |||
98 | //config: Enables "-N" command. | 106 | //config: Enables "-N" command. |
99 | 107 | ||
100 | //usage:#define less_trivial_usage | 108 | //usage:#define less_trivial_usage |
101 | //usage: "[-E" IF_FEATURE_LESS_REGEXP("I")IF_FEATURE_LESS_FLAGS("Mm") "Nh~] [FILE]..." | 109 | //usage: "[-E" IF_FEATURE_LESS_REGEXP("I")IF_FEATURE_LESS_FLAGS("Mm") |
110 | //usage: "N" IF_FEATURE_LESS_TRUNCATE("S") "h~] [FILE]..." | ||
102 | //usage:#define less_full_usage "\n\n" | 111 | //usage:#define less_full_usage "\n\n" |
103 | //usage: "View FILE (or stdin) one screenful at a time\n" | 112 | //usage: "View FILE (or stdin) one screenful at a time\n" |
104 | //usage: "\n -E Quit once the end of a file is reached" | 113 | //usage: "\n -E Quit once the end of a file is reached" |
@@ -110,6 +119,9 @@ | |||
110 | //usage: "\n and percentage through the file" | 119 | //usage: "\n and percentage through the file" |
111 | //usage: ) | 120 | //usage: ) |
112 | //usage: "\n -N Prefix line number to each line" | 121 | //usage: "\n -N Prefix line number to each line" |
122 | //usage: IF_FEATURE_LESS_TRUNCATE( | ||
123 | //usage: "\n -S Truncate long lines" | ||
124 | //usage: ) | ||
113 | //usage: "\n -~ Suppress ~s displayed past EOF" | 125 | //usage: "\n -~ Suppress ~s displayed past EOF" |
114 | 126 | ||
115 | #include <sched.h> /* sched_yield() */ | 127 | #include <sched.h> /* sched_yield() */ |
@@ -144,7 +156,7 @@ enum { | |||
144 | FLAG_N = 1 << 3, | 156 | FLAG_N = 1 << 3, |
145 | FLAG_TILDE = 1 << 4, | 157 | FLAG_TILDE = 1 << 4, |
146 | FLAG_I = 1 << 5, | 158 | FLAG_I = 1 << 5, |
147 | FLAG_S = (1 << 6) * ENABLE_FEATURE_LESS_DASHCMD, | 159 | FLAG_S = (1 << 6) * ENABLE_FEATURE_LESS_TRUNCATE, |
148 | /* hijack command line options variable for internal state vars */ | 160 | /* hijack command line options variable for internal state vars */ |
149 | LESS_STATE_MATCH_BACKWARDS = 1 << 15, | 161 | LESS_STATE_MATCH_BACKWARDS = 1 << 15, |
150 | }; | 162 | }; |
@@ -820,7 +832,7 @@ static void buffer_print(void) | |||
820 | static void buffer_fill_and_print(void) | 832 | static void buffer_fill_and_print(void) |
821 | { | 833 | { |
822 | unsigned i; | 834 | unsigned i; |
823 | #if ENABLE_FEATURE_LESS_DASHCMD | 835 | #if ENABLE_FEATURE_LESS_TRUNCATE |
824 | int fpos = cur_fline; | 836 | int fpos = cur_fline; |
825 | 837 | ||
826 | if (option_mask32 & FLAG_S) { | 838 | if (option_mask32 & FLAG_S) { |
@@ -1330,10 +1342,12 @@ static void flag_change(void) | |||
1330 | case '~': | 1342 | case '~': |
1331 | option_mask32 ^= FLAG_TILDE; | 1343 | option_mask32 ^= FLAG_TILDE; |
1332 | break; | 1344 | break; |
1345 | #if ENABLE_FEATURE_LESS_TRUNCATE | ||
1333 | case 'S': | 1346 | case 'S': |
1334 | option_mask32 ^= FLAG_S; | 1347 | option_mask32 ^= FLAG_S; |
1335 | buffer_fill_and_print(); | 1348 | buffer_fill_and_print(); |
1336 | break; | 1349 | break; |
1350 | #endif | ||
1337 | #if ENABLE_FEATURE_LESS_LINENUMS | 1351 | #if ENABLE_FEATURE_LESS_LINENUMS |
1338 | case 'N': | 1352 | case 'N': |
1339 | option_mask32 ^= FLAG_N; | 1353 | option_mask32 ^= FLAG_N; |
@@ -1638,7 +1652,7 @@ int less_main(int argc, char **argv) | |||
1638 | * -s: condense many empty lines to one | 1652 | * -s: condense many empty lines to one |
1639 | * (used by some setups for manpage display) | 1653 | * (used by some setups for manpage display) |
1640 | */ | 1654 | */ |
1641 | getopt32(argv, "EMmN~I" IF_FEATURE_LESS_DASHCMD("S") /*ignored:*/"s"); | 1655 | getopt32(argv, "EMmN~I" IF_FEATURE_LESS_TRUNCATE("S") /*ignored:*/"s"); |
1642 | argc -= optind; | 1656 | argc -= optind; |
1643 | argv += optind; | 1657 | argv += optind; |
1644 | num_files = argc; | 1658 | num_files = argc; |