static int pager_command_config(const char *var, const char *value, void *data) { struct pager_config *c = data; if (!prefixcmp(var, "pager.") && !strcmp(var + 6, c->cmd)) c->val = perf_config_bool(var, value); return 0; }
int perf_config_colorbool(const char *var, const char *value, int stdout_is_tty) { if (value) { if (!strcasecmp(value, "never")) return 0; if (!strcasecmp(value, "always")) return 1; if (!strcasecmp(value, "auto")) goto auto_color; } /* Missing or explicit false to turn off colorization */ if (!perf_config_bool(var, value)) return 0; /* any normal truth value defaults to 'auto' */ auto_color: if (stdout_is_tty < 0) stdout_is_tty = isatty(1); if (stdout_is_tty || pager_in_use()) { char *term = getenv("TERM"); if (term && strcmp(term, "dumb")) return 1; } return 0; }
int perf_llvm_config(const char *var, const char *value) { if (!strstarts(var, "llvm.")) return 0; var += sizeof("llvm.") - 1; if (!strcmp(var, "clang-path")) llvm_param.clang_path = strdup(value); else if (!strcmp(var, "clang-bpf-cmd-template")) llvm_param.clang_bpf_cmd_template = strdup(value); else if (!strcmp(var, "clang-opt")) llvm_param.clang_opt = strdup(value); else if (!strcmp(var, "kbuild-dir")) llvm_param.kbuild_dir = strdup(value); else if (!strcmp(var, "kbuild-opts")) llvm_param.kbuild_opts = strdup(value); else if (!strcmp(var, "dump-obj")) llvm_param.dump_obj = !!perf_config_bool(var, value); else if (!strcmp(var, "opts")) llvm_param.opts = strdup(value); else { pr_debug("Invalid LLVM config option: %s\n", value); return -1; } llvm_param.user_set_param = true; return 0; }
int pager_in_use(void) { const char *env; if (spawned_pager) return 1; env = getenv("PERF_PAGER_IN_USE"); return env ? perf_config_bool("PERF_PAGER_IN_USE", env) : 0; }