1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-12 14:14:48 +02:00

core: set terminal title using curses emulation of termcap (WIP)

This is work in progress and it does not even compile because of the include of
term.h.
This commit is contained in:
Sébastien Helleu
2023-03-03 07:53:07 +01:00
parent dd65e91a75
commit d9f273c755
2 changed files with 7 additions and 53 deletions
+4 -53
View File
@@ -2568,8 +2568,8 @@ gui_window_set_title (const char *title)
{
char *new_title, *envterm, *envshell, *shell, *shellname;
envterm = getenv ("TERM");
if (!envterm)
/* check if term has status line support */
if (!tgetflag ("hs"))
return;
new_title = (title && title[0]) ?
@@ -2577,57 +2577,8 @@ gui_window_set_title (const char *title)
if (!new_title)
return;
if (strcmp (envterm, "sun-cmd") == 0)
{
printf ("\033]l%s\033\\", new_title);
}
else if (strcmp (envterm, "hpterm") == 0)
{
printf ("\033&f0k%dD%s", (int)(strlen (new_title) + 1), new_title);
}
/* the following terminals support the xterm escape codes */
else if ((strncmp (envterm, "xterm", 5) == 0)
|| (strncmp (envterm, "rxvt", 4) == 0)
|| (strncmp (envterm, "alacritty", 9) == 0)
|| (strcmp (envterm, "Eterm") == 0)
|| (strcmp (envterm, "aixterm") == 0)
|| (strcmp (envterm, "iris-ansi") == 0)
|| (strcmp (envterm, "dtterm") == 0))
{
printf ("\33]0;%s\7", new_title);
}
else if ((strncmp (envterm, "screen", 6) == 0)
|| (strncmp (envterm, "tmux", 4) == 0))
{
if (title && title[0])
{
printf ("\033k%s\033\\", new_title);
}
else
{
envshell = getenv ("SHELL");
if (envshell)
{
shell = strdup (envshell);
if (shell)
{
shellname = basename (shell);
printf ("\033k%s\033\\", (shellname) ? shellname : shell);
free (shell);
}
else
{
printf ("\033k%s\033\\", envterm);
}
}
else
{
printf ("\033k%s\033\\", envterm);
}
}
/* trying to set the title of a backgrounded xterm like terminal */
printf ("\33]0;%s\7", new_title);
}
printf ("%s%s%s", tgetstr ("ts"), new_title, tgetstr ("fs"));
fflush (stdout);
free (new_title);
+3
View File
@@ -28,10 +28,13 @@
#define NCURSES_WIDECHAR 1
#ifdef HAVE_NCURSESW_CURSES_H
#include <ncursesw/ncurses.h>
#include <term.h>
#elif HAVE_NCURSES_H
#include <ncurses.h>
#include <term.h>
#else
#include <curses.h>
#include <term.h>
#endif /* HAVE_NCURSESW_CURSES_H */
#endif /* WEECHAT_HEADLESS */