diff options
| author | John Spencer <maillist-busybox@barfooze.de> | 2014-01-22 15:31:10 +0100 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2014-01-22 15:31:10 +0100 |
| commit | ff6506131152ee383685047c19bc420ed4de030e (patch) | |
| tree | f872068afcac7358bd3ecc9130b03d9496cdf0c5 | |
| parent | 731f59617582d24ea5bd613e2a5448fd4027a3aa (diff) | |
| download | busybox-w32-ff6506131152ee383685047c19bc420ed4de030e.tar.gz busybox-w32-ff6506131152ee383685047c19bc420ed4de030e.tar.bz2 busybox-w32-ff6506131152ee383685047c19bc420ed4de030e.zip | |
man: parse "DEFINE pager" in config
function old new delta
man_main 789 844 +55
Signed-off-by: John Spencer <maillist-busybox@barfooze.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| -rw-r--r-- | miscutils/man.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/miscutils/man.c b/miscutils/man.c index d3e832bd7..51baceb16 100644 --- a/miscutils/man.c +++ b/miscutils/man.c | |||
| @@ -150,7 +150,7 @@ int man_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |||
| 150 | int man_main(int argc UNUSED_PARAM, char **argv) | 150 | int man_main(int argc UNUSED_PARAM, char **argv) |
| 151 | { | 151 | { |
| 152 | parser_t *parser; | 152 | parser_t *parser; |
| 153 | const char *pager; | 153 | const char *pager = ENABLE_LESS ? "less" : "more"; |
| 154 | char **man_path_list; | 154 | char **man_path_list; |
| 155 | char *sec_list; | 155 | char *sec_list; |
| 156 | char *cur_path, *cur_sect; | 156 | char *cur_path, *cur_sect; |
| @@ -171,12 +171,6 @@ int man_main(int argc UNUSED_PARAM, char **argv) | |||
| 171 | man_path_list[0] = (char*)"/usr/man"; | 171 | man_path_list[0] = (char*)"/usr/man"; |
| 172 | else | 172 | else |
| 173 | count_mp++; | 173 | count_mp++; |
| 174 | pager = getenv("MANPAGER"); | ||
| 175 | if (!pager) { | ||
| 176 | pager = getenv("PAGER"); | ||
| 177 | if (!pager) | ||
| 178 | pager = "more"; | ||
| 179 | } | ||
| 180 | 174 | ||
| 181 | /* Parse man.conf[ig] or man_db.conf */ | 175 | /* Parse man.conf[ig] or man_db.conf */ |
| 182 | /* man version 1.6f uses man.config */ | 176 | /* man version 1.6f uses man.config */ |
| @@ -190,6 +184,11 @@ int man_main(int argc UNUSED_PARAM, char **argv) | |||
| 190 | while (config_read(parser, token, 2, 0, "# \t", PARSE_NORMAL)) { | 184 | while (config_read(parser, token, 2, 0, "# \t", PARSE_NORMAL)) { |
| 191 | if (!token[1]) | 185 | if (!token[1]) |
| 192 | continue; | 186 | continue; |
| 187 | if (strcmp("DEFINE", token[0]) == 0) { | ||
| 188 | if (strncmp("pager", token[1], 5) == 0) { | ||
| 189 | pager = xstrdup(skip_whitespace(token[1]) + 5); | ||
| 190 | } | ||
| 191 | } else | ||
| 193 | if (strcmp("MANDATORY_MANPATH"+10, token[0]) == 0 /* "MANPATH"? */ | 192 | if (strcmp("MANDATORY_MANPATH"+10, token[0]) == 0 /* "MANPATH"? */ |
| 194 | || strcmp("MANDATORY_MANPATH", token[0]) == 0 | 193 | || strcmp("MANDATORY_MANPATH", token[0]) == 0 |
| 195 | ) { | 194 | ) { |
| @@ -230,6 +229,15 @@ int man_main(int argc UNUSED_PARAM, char **argv) | |||
| 230 | } | 229 | } |
| 231 | config_close(parser); | 230 | config_close(parser); |
| 232 | 231 | ||
| 232 | { | ||
| 233 | /* environment overrides setting from man.config */ | ||
| 234 | char *env_pager = getenv("MANPAGER"); | ||
| 235 | if (!env_pager) | ||
| 236 | env_pager = getenv("PAGER"); | ||
| 237 | if (env_pager) | ||
| 238 | pager = env_pager; | ||
| 239 | } | ||
| 240 | |||
| 233 | not_found = 0; | 241 | not_found = 0; |
| 234 | do { /* for each argv[] */ | 242 | do { /* for each argv[] */ |
| 235 | int found = 0; | 243 | int found = 0; |
