diff options
Diffstat (limited to 'contrib/less/screen.c')
-rw-r--r-- | contrib/less/screen.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/contrib/less/screen.c b/contrib/less/screen.c index 399ffc3..e217b86 100644 --- a/contrib/less/screen.c +++ b/contrib/less/screen.c @@ -626,7 +626,25 @@ ltget_env(capname) char *capname; { char name[16]; + char *s; + s = lgetenv("LESS_TERMCAP_DEBUG"); + if (s != NULL && *s != '\0') + { + struct env { struct env *next; char *name; char *value; }; + static struct env *envs = NULL; + struct env *p; + for (p = envs; p != NULL; p = p->next) + if (strcmp(p->name, capname) == 0) + return p->value; + p = (struct env *) ecalloc(1, sizeof(struct env)); + p->name = save(capname); + p->value = (char *) ecalloc(strlen(capname)+3, sizeof(char)); + sprintf(p->value, "<%s>", capname); + p->next = envs; + envs = p; + return p->value; + } strcpy(name, "LESS_TERMCAP_"); strcat(name, capname); return (lgetenv(name)); |