diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-04-12 12:56:17 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-04-12 14:58:13 +0900 |
commit | 3825662d777ae406136fa7d720b60fe04c6eafd2 (patch) | |
tree | 48431b67750b698badc881c6fb314684578fb4a3 | |
parent | e6551d835febe00fce6c6a3b12c4e394d2a05bd6 (diff) | |
download | ruby-3825662d777ae406136fa7d720b60fe04c6eafd2.tar.gz |
Set up environment variable for pager [Feature #16754]
-rw-r--r-- | ruby.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -1585,6 +1585,12 @@ rb_f_chomp(int argc, VALUE *argv, VALUE _) return str; } +static void +setup_pager_env(void) +{ + if (!getenv("LESS")) ruby_setenv("LESS", "-R"); // Output "raw" control characters. +} + static VALUE process_options(int argc, char **argv, ruby_cmdline_options_t *opt) { @@ -1627,12 +1633,14 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt) close(fds[0]); close(fds[1]); if (pid > 0) { + setup_pager_env(); rb_f_exec(1, &pager); kill(SIGTERM, pid); rb_waitpid(pid, 0, 0); } } #else + setup_pager_env(); VALUE port = rb_io_popen(pager, rb_str_new_lit("w"), Qnil, Qnil); if (!NIL_P(port)) { int oldout = dup(1); |