commit - ccc5591f8c57a70bbfce32f4a52c7bebd5e1bf92
commit + 21404dd923e07a36badce6c253d4577164b803cd
blob - 08545bc91c7d00e23cbeb6ac8f535c60c7b1cbbf
blob + 2c5fc537453d4a1eee73f043fd3b57c933ad8bb4
--- ChangeLog
+++ ChangeLog
2021-07-15 Omar Polo <op@omarpolo.com>
+ * parse.y (parseconfig): load alternate config file per-TERM
+
* telescope.c (main): added long options --help, --version and -C/--colors
* defaults.h: add hide-pre-closing-line
blob - 31f1b5fae40868d242254fc489b0eb708d611910
blob + 820ae40b332cf15d2358df06dd40e483fb3341d4
--- parse.y
+++ parse.y
static void setattr(char *, char *, char *);
static void add_proxy(char *, char *);
static void bindkey(const char *, const char *, const char *);
+static void do_parseconfig(const char *, int);
%}
yyerror("failed to bind %s %s %s", map, key, cmd);
}
-void
-parseconfig(const char *filename, int fonf)
+static void
+do_parseconfig(const char *filename, int fonf)
{
if ((yyfp = fopen(filename, "r")) == NULL) {
if (fonf)
if (parse_errors)
exit(1);
}
+
+void
+parseconfig(const char *filename, int fonf)
+{
+ char altconf[PATH_MAX], *term;
+
+ /* load the given config file */
+ do_parseconfig(filename, fonf);
+
+ /* then try to load file-TERM */
+
+ if ((term = getenv("TERM")) == NULL)
+ return;
+
+ strlcpy(altconf, filename, sizeof(altconf));
+ strlcat(altconf, "-", sizeof(altconf));
+ strlcat(altconf, term, sizeof(altconf));
+
+ do_parseconfig(altconf, 0);
+}
blob - 425c2efedaa20c040b31f1e62c523f5b06dc0990
blob + 0cef6741dc87c8e1059e0e190c924c947a173e35
--- telescope.1
+++ telescope.1
.Fl c
flag.
.Pp
+.Nm
+will also load a file called
+.Pa config-TERM ,
+where
+.Dq TERM
+is the name of the terminal type
+.Pq i.e. the TERM variable ,
+if available.
+.Pp
The format of the configuration file is fairly flexible.
The current line can be extended over multiple ones using a
backslash