diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-02-24 19:18:18 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-02-24 19:18:18 +0000 |
commit | b78d1c045facbebd21ea94072b6905e40e0147cf (patch) | |
tree | 953d97430baefc87afd9bceb825bd5d8784e7aaa /miscutils | |
parent | 4f82bdb050024b3475f5371a0612b1fb0fc4c09f (diff) | |
download | busybox-w32-b78d1c045facbebd21ea94072b6905e40e0147cf.tar.gz busybox-w32-b78d1c045facbebd21ea94072b6905e40e0147cf.tar.bz2 busybox-w32-b78d1c045facbebd21ea94072b6905e40e0147cf.zip |
less: shrink
Diffstat (limited to 'miscutils')
-rw-r--r-- | miscutils/less.c | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/miscutils/less.c b/miscutils/less.c index 7351a634d..da595f428 100644 --- a/miscutils/less.c +++ b/miscutils/less.c | |||
@@ -1175,41 +1175,40 @@ static void goto_mark(void) | |||
1175 | static char opp_bracket(char bracket) | 1175 | static char opp_bracket(char bracket) |
1176 | { | 1176 | { |
1177 | switch (bracket) { | 1177 | switch (bracket) { |
1178 | case '{': case '[': | 1178 | case '{': case '[': /* '}' == '{' + 2. Same for '[' */ |
1179 | return bracket + 2; | 1179 | bracket++; |
1180 | case '(': | 1180 | case '(': /* ')' == '(' + 1 */ |
1181 | return ')'; | 1181 | bracket++; |
1182 | case '}': case ']': | 1182 | break; |
1183 | return bracket - 2; | 1183 | case '}': case ']': |
1184 | case ')': | 1184 | bracket--; |
1185 | return '('; | 1185 | case ')': |
1186 | } | 1186 | bracket--; |
1187 | return 0; | 1187 | break; |
1188 | }; | ||
1189 | return bracket; | ||
1188 | } | 1190 | } |
1189 | 1191 | ||
1190 | static void match_right_bracket(char bracket) | 1192 | static void match_right_bracket(char bracket) |
1191 | { | 1193 | { |
1192 | int bracket_line = -1; | ||
1193 | int i; | 1194 | int i; |
1194 | 1195 | ||
1195 | if (strchr(flines[cur_fline], bracket) == NULL) { | 1196 | if (strchr(flines[cur_fline], bracket) == NULL) { |
1196 | print_statusline("No bracket in top line"); | 1197 | print_statusline("No bracket in top line"); |
1197 | return; | 1198 | return; |
1198 | } | 1199 | } |
1200 | bracket = opp_bracket(bracket); | ||
1199 | for (i = cur_fline + 1; i < max_fline; i++) { | 1201 | for (i = cur_fline + 1; i < max_fline; i++) { |
1200 | if (strchr(flines[i], opp_bracket(bracket)) != NULL) { | 1202 | if (strchr(flines[i], bracket) != NULL) { |
1201 | bracket_line = i; | 1203 | buffer_line(i); |
1202 | break; | 1204 | return; |
1203 | } | 1205 | } |
1204 | } | 1206 | } |
1205 | if (bracket_line == -1) | 1207 | print_statusline("No matching bracket found"); |
1206 | print_statusline("No matching bracket found"); | ||
1207 | buffer_line(bracket_line - max_displayed_line); | ||
1208 | } | 1208 | } |
1209 | 1209 | ||
1210 | static void match_left_bracket(char bracket) | 1210 | static void match_left_bracket(char bracket) |
1211 | { | 1211 | { |
1212 | int bracket_line = -1; | ||
1213 | int i; | 1212 | int i; |
1214 | 1213 | ||
1215 | if (strchr(flines[cur_fline + max_displayed_line], bracket) == NULL) { | 1214 | if (strchr(flines[cur_fline + max_displayed_line], bracket) == NULL) { |
@@ -1217,15 +1216,14 @@ static void match_left_bracket(char bracket) | |||
1217 | return; | 1216 | return; |
1218 | } | 1217 | } |
1219 | 1218 | ||
1219 | bracket = opp_bracket(bracket); | ||
1220 | for (i = cur_fline + max_displayed_line; i >= 0; i--) { | 1220 | for (i = cur_fline + max_displayed_line; i >= 0; i--) { |
1221 | if (strchr(flines[i], opp_bracket(bracket)) != NULL) { | 1221 | if (strchr(flines[i], bracket) != NULL) { |
1222 | bracket_line = i; | 1222 | buffer_line(i); |
1223 | break; | 1223 | return; |
1224 | } | 1224 | } |
1225 | } | 1225 | } |
1226 | if (bracket_line == -1) | 1226 | print_statusline("No matching bracket found"); |
1227 | print_statusline("No matching bracket found"); | ||
1228 | buffer_line(bracket_line); | ||
1229 | } | 1227 | } |
1230 | #endif /* FEATURE_LESS_BRACKETS */ | 1228 | #endif /* FEATURE_LESS_BRACKETS */ |
1231 | 1229 | ||