diff options
Diffstat (limited to 'usr.bin/tset')
-rw-r--r-- | usr.bin/tset/tset.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/usr.bin/tset/tset.c b/usr.bin/tset/tset.c index 7198e96..3cc2a13 100644 --- a/usr.bin/tset/tset.c +++ b/usr.bin/tset/tset.c @@ -180,10 +180,15 @@ main(argc, argv) tcsetattr(STDERR_FILENO, TCSADRAIN, &mode); } - /* Get the terminal name from the entry. */ - p = tcapbuf; - if (p != NULL && *p != ':') { - t = p; + /* + * The termcap file generally has a two-character name first in each + * entry followed by more descriptive names. If we ended up with the + * first one, we switch to the second one for setting or reporting + * information. + */ + p = strpbrk(tcapbuf, "|:"); + if (p != NULL && *p != ':' && !strncmp(ttype, tcapbuf, p - tcapbuf)) { + t = ++p; if (p = strpbrk(p, "|:")) { savech = *p; *p = '\0'; |