1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Merge remote-tracking branch 'upstream/master' into exit-title

This commit is contained in:
Will Song 2015-01-03 12:41:42 -06:00
commit 30610f7c48
6 changed files with 52 additions and 15 deletions

View File

@ -8,3 +8,4 @@
- Show or hide and customise roster panel (/roster) - Show or hide and customise roster panel (/roster)
- /account remove - /account remove
- Added default account for /connect - Added default account for /connect
- Additional readline style shortcuts

View File

@ -657,7 +657,6 @@ _get_default_boolean(preference_t pref)
{ {
switch (pref) switch (pref)
{ {
case PREF_TITLEBAR:
case PREF_OTR_WARN: case PREF_OTR_WARN:
case PREF_AUTOAWAY_CHECK: case PREF_AUTOAWAY_CHECK:
case PREF_LOG_ROTATE: case PREF_LOG_ROTATE:

View File

@ -254,6 +254,8 @@ _init(const int disable_tls, char *log_level)
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
// ignore SIGPIPE // ignore SIGPIPE
signal(SIGPIPE, SIG_IGN); signal(SIGPIPE, SIG_IGN);
signal(SIGINT, SIG_IGN);
signal(SIGTSTP, SIG_IGN);
_create_directories(); _create_directories();
log_level_t prof_log_level = log_level_from_string(log_level); log_level_t prof_log_level = log_level_from_string(log_level);
prefs_load(); prefs_load();

View File

@ -1393,15 +1393,23 @@ cons_navigation_help(void)
cons_show(""); cons_show("");
cons_show("Navigation:"); cons_show("Navigation:");
cons_show(""); cons_show("");
cons_show("Alt-1 (F1) : This console window."); cons_show("Alt-1 : This console window.");
cons_show("Alt-2..Alt-0 (F2..F10) : Chat windows."); cons_show("F1 : This console window.");
cons_show("Alt-LEFT : Previous chat window"); cons_show("Alt-2..Alt-0 : Chat windows.");
cons_show("Alt-RIGHT : Next chat window"); cons_show("F2..F10 : Chat windows.");
cons_show("Alt-LEFT, Alt-RIGHT : Previous/next chat window");
cons_show("UP, DOWN : Navigate input history."); cons_show("UP, DOWN : Navigate input history.");
cons_show("LEFT, RIGHT, HOME, END : Move cursor in current input."); cons_show("Ctrl-n, Ctrl-p : Navigate input history.");
cons_show("Ctrl-LEFT, Ctrl-RIGHT : Jump word in input."); cons_show("LEFT, RIGHT, HOME, END : Move cursor.");
cons_show("Ctrl-w, Alt-Backspace : Delete previous word in input."); cons_show("Ctrl-b, Ctrl-f, Ctrl-a, Ctrl-e : Move cursor.");
cons_show("Ctrl-LEFT, Ctrl-RIGHT : Jump word.");
cons_show("Ctrl-w : Delete previous word.");
cons_show("Alt-Backspace : Delete previous word.");
cons_show("Backspace : Delete previous character.");
cons_show("DEL : Delete next character.");
cons_show("Ctrl-d : Delete next character.");
cons_show("ESC : Clear current input."); cons_show("ESC : Clear current input.");
cons_show("Ctrl-u : Delete all previous characters.");
cons_show("TAB : Autocomplete."); cons_show("TAB : Autocomplete.");
cons_show("PAGE UP, PAGE DOWN : Page the main window."); cons_show("PAGE UP, PAGE DOWN : Page the main window.");
cons_show("Shift-UP, Shift-DOWN : Page occupants/roster panel."); cons_show("Shift-UP, Shift-DOWN : Page occupants/roster panel.");

View File

@ -2281,21 +2281,23 @@ _ui_draw_term_title(void)
if (unread != 0) { if (unread != 0) {
snprintf(new_win_title, sizeof(new_win_title), snprintf(new_win_title, sizeof(new_win_title),
"%c]0;%s (%d) - %s%c", '\033', "Profanity", "/bin/echo -n \"%c]0;%s (%d) - %s%c\"", '\033', "Profanity",
unread, jid, '\007'); unread, jid, '\007');
} else { } else {
snprintf(new_win_title, sizeof(new_win_title), snprintf(new_win_title, sizeof(new_win_title),
"%c]0;%s - %s%c", '\033', "Profanity", jid, "/bin/echo -n \"%c]0;%s - %s%c\"", '\033', "Profanity", jid,
'\007'); '\007');
} }
} else { } else {
snprintf(new_win_title, sizeof(new_win_title), "%c]0;%s%c", '\033', snprintf(new_win_title, sizeof(new_win_title), "/bin/echo -n \"%c]0;%s%c\"", '\033',
"Profanity", '\007'); "Profanity", '\007');
} }
if (g_strcmp0(win_title, new_win_title) != 0) { if (g_strcmp0(win_title, new_win_title) != 0) {
// print to x-window title bar // print to x-window title bar
printf("%s", new_win_title); int res = system(new_win_title);
if (res == -1) {
log_error("Error writing terminal window title.");
}
if (win_title != NULL) { if (win_title != NULL) {
free(win_title); free(win_title);
} }

View File

@ -62,6 +62,16 @@
#define _inp_win_update_virtual() pnoutrefresh(inp_win, 0, pad_start, rows-1, 0, rows-1, cols-1) #define _inp_win_update_virtual() pnoutrefresh(inp_win, 0, pad_start, rows-1, 0, rows-1, cols-1)
#define KEY_CTRL_A 0001
#define KEY_CTRL_B 0002
#define KEY_CTRL_D 0004
#define KEY_CTRL_E 0005
#define KEY_CTRL_F 0006
#define KEY_CTRL_N 0016
#define KEY_CTRL_P 0020
#define KEY_CTRL_U 0025
#define KEY_CTRL_W 0027
static WINDOW *inp_win; static WINDOW *inp_win;
static int pad_start = 0; static int pad_start = 0;
static int rows, cols; static int rows, cols;
@ -423,6 +433,7 @@ _handle_edit(int result, const wint_t ch, char *input, int *size)
if (result != KEY_CODE_YES) { if (result != KEY_CODE_YES) {
return 0; return 0;
} }
case KEY_CTRL_D:
if (inp_x == display_size-1) { if (inp_x == display_size-1) {
gchar *start = g_utf8_substring(input, 0, inp_x); gchar *start = g_utf8_substring(input, 0, inp_x);
for (*size = 0; *size < strlen(start); (*size)++) { for (*size = 0; *size < strlen(start); (*size)++) {
@ -459,6 +470,7 @@ _handle_edit(int result, const wint_t ch, char *input, int *size)
if (result != KEY_CODE_YES) { if (result != KEY_CODE_YES) {
return 0; return 0;
} }
case KEY_CTRL_B:
if (inp_x > 0) { if (inp_x > 0) {
wmove(inp_win, 0, inp_x-1); wmove(inp_win, 0, inp_x-1);
@ -474,6 +486,7 @@ _handle_edit(int result, const wint_t ch, char *input, int *size)
if (result != KEY_CODE_YES) { if (result != KEY_CODE_YES) {
return 0; return 0;
} }
case KEY_CTRL_F:
if (inp_x < display_size) { if (inp_x < display_size) {
wmove(inp_win, 0, inp_x+1); wmove(inp_win, 0, inp_x+1);
@ -489,6 +502,7 @@ _handle_edit(int result, const wint_t ch, char *input, int *size)
if (result != KEY_CODE_YES) { if (result != KEY_CODE_YES) {
return 0; return 0;
} }
case KEY_CTRL_P:
prev = cmd_history_previous(input, size); prev = cmd_history_previous(input, size);
if (prev) { if (prev) {
inp_replace_input(input, prev, size); inp_replace_input(input, prev, size);
@ -499,6 +513,7 @@ _handle_edit(int result, const wint_t ch, char *input, int *size)
if (result != KEY_CODE_YES) { if (result != KEY_CODE_YES) {
return 0; return 0;
} }
case KEY_CTRL_N:
next = cmd_history_next(input, size); next = cmd_history_next(input, size);
if (next) { if (next) {
inp_replace_input(input, next, size); inp_replace_input(input, next, size);
@ -513,6 +528,7 @@ _handle_edit(int result, const wint_t ch, char *input, int *size)
if (result != KEY_CODE_YES) { if (result != KEY_CODE_YES) {
return 0; return 0;
} }
case KEY_CTRL_A:
wmove(inp_win, 0, 0); wmove(inp_win, 0, 0);
pad_start = 0; pad_start = 0;
_inp_win_update_virtual(); _inp_win_update_virtual();
@ -522,6 +538,7 @@ _handle_edit(int result, const wint_t ch, char *input, int *size)
if (result != KEY_CODE_YES) { if (result != KEY_CODE_YES) {
return 0; return 0;
} }
case KEY_CTRL_E:
_go_to_end(display_size); _go_to_end(display_size);
return 1; return 1;
@ -535,10 +552,18 @@ _handle_edit(int result, const wint_t ch, char *input, int *size)
} }
return 1; return 1;
case 23: // ctrl-w case KEY_CTRL_W:
_delete_previous_word(input, size); _delete_previous_word(input, size);
return 1; return 1;
break; break;
case KEY_CTRL_U:
while (getcurx(inp_win) > 0) {
_delete_previous_word(input, size);
}
return 1;
break;
default: default:
return 0; return 0;
} }