diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/global.cc | 8 | ||||
-rw-r--r-- | src/report.h | 17 |
2 files changed, 23 insertions, 2 deletions
diff --git a/src/global.cc b/src/global.cc index 19cab1c8..6c8cc547 100644 --- a/src/global.cc +++ b/src/global.cc @@ -418,8 +418,14 @@ void global_scope_t::normalize_report_options(const string& verb) report_t& rep(report()); - if (! rep.HANDLED(no_color)) +#ifdef HAVE_ISATTY + if (! rep.HANDLED(no_color) && isatty(STDOUT_FILENO)) rep.HANDLER(color).on_only(string("?normalize")); + if (rep.HANDLED(color) && ! isatty(STDOUT_FILENO)) + rep.HANDLER(color).off(); + if (rep.HANDLED(pager_) && ! isatty(STDOUT_FILENO)) + rep.HANDLER(pager_).off(); +#endif // jww (2009-02-09): These globals are a hack, but hard to avoid. item_t::use_effective_date = (rep.HANDLED(effective) && diff --git a/src/report.h b/src/report.h index 294af19a..22008af6 100644 --- a/src/report.h +++ b/src/report.h @@ -630,10 +630,11 @@ public: OPTION(report_t, output_); // -o +#ifdef HAVE_ISATTY OPTION__ (report_t, pager_, CTOR(report_t, pager_) { - if (! std::getenv("PAGER")) { + if (! std::getenv("PAGER") && isatty(STDOUT_FILENO)) { bool have_less = false; if (exists(path("/opt/local/bin/less")) || exists(path("/usr/local/bin/less")) || @@ -654,6 +655,20 @@ public: else option_t<report_t>::on_with(whence, text); }); +#else // HAVE_ISATTY + OPTION__ + (report_t, pager_, + CTOR(report_t, pager_) { + } + virtual void on_with(const optional<string>& whence, const value_t& text) { + string cmd(text.to_string()); + if (cmd == "" || cmd == "false" || cmd == "off" || + cmd == "none" || cmd == "no" || cmd == "disable") + option_t<report_t>::off(); + else + option_t<report_t>::on_with(whence, text); + }); +#endif // HAVE_ISATTY OPTION(report_t, payee_as_account); |