Pass window titles through vis(1). <0x20 is dropped anyway by the input state

machine but top-bit-set nonprintables could cause trouble, and they are neater
like this anyway.

Suggested by deraadt a few days ago.
pull/1/head
Nicholas Marriott 2009-06-03 19:33:04 +00:00
parent 655a1aea6c
commit 2faec76afa
2 changed files with 7 additions and 2 deletions

View File

@ -475,7 +475,7 @@ input_state_string_next(u_char ch, struct input_ctx *ictx)
return;
}
if (ch >= 0x20 && ch != 0x7f) {
if (ch >= 0x20) {
if (input_add_string(ictx, ch) != 0)
input_state(ictx, input_state_first);
return;

View File

@ -19,6 +19,7 @@
#include <sys/types.h>
#include <string.h>
#include <vis.h>
#include "tmux.h"
@ -65,8 +66,12 @@ screen_free(struct screen *s)
void
screen_set_title(struct screen *s, const char *title)
{
char tmp[BUFSIZ];
strnvis(tmp, title, sizeof tmp, VIS_OCTAL|VIS_TAB|VIS_NL);
xfree(s->title);
s->title = xstrdup(title);
s->title = xstrdup(tmp);
}
/* Resize screen. */