Merge branch 'master' into hide-lines

This commit is contained in:
ailin-nemui 2017-11-26 00:31:01 +01:00 committed by GitHub
commit 466d074200
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
72 changed files with 2950 additions and 537 deletions

View file

@ -936,6 +936,26 @@ void gui_entry_set_pos(GUI_ENTRY_REC *entry, int pos)
gui_entry_draw(entry);
}
void gui_entry_set_text_and_pos_bytes(GUI_ENTRY_REC *entry, const char *str, int pos_bytes)
{
int pos;
const char *ptr;
g_return_if_fail(entry != NULL);
gui_entry_set_text(entry, str);
if (entry->utf8) {
g_utf8_validate(str, pos_bytes, &ptr);
pos = g_utf8_pointer_to_offset(str, ptr);
} else if (term_type == TERM_TYPE_BIG5)
pos = strlen_big5((const unsigned char *)str) - strlen_big5((const unsigned char *)(str + pos_bytes));
else
pos = pos_bytes;
gui_entry_set_pos(entry, pos);
}
void gui_entry_move_pos(GUI_ENTRY_REC *entry, int pos)
{
g_return_if_fail(entry != NULL);

View file

@ -50,6 +50,7 @@ void gui_entry_set_utf8(GUI_ENTRY_REC *entry, int utf8);
void gui_entry_set_text(GUI_ENTRY_REC *entry, const char *str);
char *gui_entry_get_text(GUI_ENTRY_REC *entry);
char *gui_entry_get_text_and_pos(GUI_ENTRY_REC *entry, int *pos);
void gui_entry_set_text_and_pos_bytes(GUI_ENTRY_REC *entry, const char *str, int pos_bytes);
void gui_entry_insert_text(GUI_ENTRY_REC *entry, const char *str);
void gui_entry_insert_char(GUI_ENTRY_REC *entry, unichar chr);

View file

@ -530,6 +530,39 @@ static void key_forward_history(void)
g_free(line);
}
static void key_backward_global_history(void)
{
const char *text;
char *line;
line = gui_entry_get_text(active_entry);
text = command_global_history_prev(active_win, line);
gui_entry_set_text(active_entry, text);
g_free(line);
}
static void key_forward_global_history(void)
{
const char *text;
char *line;
line = gui_entry_get_text(active_entry);
text = command_global_history_next(active_win, line);
gui_entry_set_text(active_entry, text);
g_free(line);
}
static void key_erase_history_entry(void)
{
const char *text;
char *line;
line = gui_entry_get_text(active_entry);
text = command_history_delete_current(active_win, line);
gui_entry_set_text(active_entry, text);
g_free(line);
}
static void key_beginning_of_line(void)
{
gui_entry_set_pos(active_entry, 0);
@ -878,8 +911,7 @@ static void key_completion(int erase, int backward)
g_free(text);
if (line != NULL) {
gui_entry_set_text(active_entry, line);
gui_entry_set_pos(active_entry, pos);
gui_entry_set_text_and_pos_bytes(active_entry, line, pos);
g_free(line);
}
}
@ -909,8 +941,7 @@ static void key_check_replaces(void)
g_free(text);
if (line != NULL) {
gui_entry_set_text(active_entry, line);
gui_entry_set_pos(active_entry, pos);
gui_entry_set_text_and_pos_bytes(active_entry, line, pos);
g_free(line);
}
}
@ -1178,6 +1209,8 @@ void gui_readline_init(void)
key_bind("key", NULL, "meta2-5C", "cright", (SIGNAL_FUNC) key_combo);
key_bind("key", NULL, "meta2-1;5D", "cleft", (SIGNAL_FUNC) key_combo);
key_bind("key", NULL, "meta2-1;5C", "cright", (SIGNAL_FUNC) key_combo);
key_bind("key", NULL, "meta2-1;5A", "cup", (SIGNAL_FUNC) key_combo);
key_bind("key", NULL, "meta2-1;5B", "cdown", (SIGNAL_FUNC) key_combo);
key_bind("key", NULL, "meta2-1;3A", "mup", (SIGNAL_FUNC) key_combo);
key_bind("key", NULL, "meta2-1;3B", "mdown", (SIGNAL_FUNC) key_combo);
@ -1219,6 +1252,9 @@ void gui_readline_init(void)
/* history */
key_bind("backward_history", "Go back one line in the history", "up", NULL, (SIGNAL_FUNC) key_backward_history);
key_bind("forward_history", "Go forward one line in the history", "down", NULL, (SIGNAL_FUNC) key_forward_history);
key_bind("backward_global_history", "Go back one line in the global history", "cup", NULL, (SIGNAL_FUNC) key_backward_global_history);
key_bind("forward_global_history", "Go forward one line in the global history", "cdown", NULL, (SIGNAL_FUNC) key_forward_global_history);
key_bind("erase_history_entry", "Erase the currently active entry from the history", NULL, NULL, (SIGNAL_FUNC) key_erase_history_entry);
/* line editing */
key_bind("backspace", "Delete the previous character", "backspace", NULL, (SIGNAL_FUNC) key_backspace);
@ -1312,6 +1348,9 @@ void gui_readline_deinit(void)
key_unbind("backward_history", (SIGNAL_FUNC) key_backward_history);
key_unbind("forward_history", (SIGNAL_FUNC) key_forward_history);
key_unbind("backward_global_history", (SIGNAL_FUNC) key_backward_global_history);
key_unbind("forward_global_history", (SIGNAL_FUNC) key_forward_global_history);
key_unbind("erase_history_entry", (SIGNAL_FUNC) key_erase_history_entry);
key_unbind("backspace", (SIGNAL_FUNC) key_backspace);
key_unbind("delete_character", (SIGNAL_FUNC) key_delete_character);

View file

@ -31,6 +31,7 @@
#include "printtext.h"
#include "fe-common-core.h"
#include "fe-settings.h"
#include "themes.h"
#include "term.h"
@ -79,25 +80,8 @@ static int dirty, full_redraw;
static GMainLoop *main_loop;
int quitting;
static const char *banner_text =
" ___ _\n"
"|_ _|_ _ _____(_)\n"
" | || '_(_-<_-< |\n"
"|___|_| /__/__/_|\n"
"Irssi v" PACKAGE_VERSION " - http://www.irssi.org";
static const char *firsttimer_text =
"- - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"
"Hi there! If this is your first time using Irssi, you\n"
"might want to go to our website and read the startup\n"
"documentation to get you going.\n\n"
"Our community and staff are available to assist you or\n"
"to answer any questions you may have.\n\n"
"Use the /HELP command to get detailed information about\n"
"the available commands.\n"
"- - - - - - - - - - - - - - - - - - - - - - - - - - - -";
static int display_firsttimer = FALSE;
static unsigned int user_settings_changed = 0;
static void sig_exit(void)
@ -105,6 +89,11 @@ static void sig_exit(void)
quitting = TRUE;
}
static void sig_settings_userinfo_changed(gpointer changedp)
{
user_settings_changed = GPOINTER_TO_UINT(changedp);
}
/* redraw irssi's screen.. */
void irssi_redraw(void)
{
@ -161,6 +150,7 @@ static void textui_init(void)
fe_common_irc_init();
theme_register(gui_text_formats);
signal_add("settings userinfo changed", (SIGNAL_FUNC) sig_settings_userinfo_changed);
signal_add_last("gui exit", (SIGNAL_FUNC) sig_exit);
}
@ -199,14 +189,24 @@ static void textui_finish_init(void)
statusbar_redraw(NULL, TRUE);
if (servers == NULL && lookup_servers == NULL) {
printtext(NULL, NULL, MSGLEVEL_CRAP|MSGLEVEL_NO_ACT,
"%s", banner_text);
printformat(NULL, NULL, MSGLEVEL_CRAP|MSGLEVEL_NO_ACT, TXT_IRSSI_BANNER);
}
if (display_firsttimer) {
printtext(NULL, NULL, MSGLEVEL_CRAP|MSGLEVEL_NO_ACT,
"%s", firsttimer_text);
printformat(NULL, NULL, MSGLEVEL_CRAP|MSGLEVEL_NO_ACT, TXT_WELCOME_FIRSTTIME);
}
/* see irc-servers-setup.c:init_userinfo */
if (user_settings_changed)
printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_WELCOME_INIT_SETTINGS);
if (user_settings_changed & USER_SETTINGS_REAL_NAME)
fe_settings_set_print("real_name");
if (user_settings_changed & USER_SETTINGS_USER_NAME)
fe_settings_set_print("user_name");
if (user_settings_changed & USER_SETTINGS_NICK)
fe_settings_set_print("nick");
if (user_settings_changed & USER_SETTINGS_HOSTNAME)
fe_settings_set_print("hostname");
}
static void textui_deinit(void)
@ -222,7 +222,8 @@ static void textui_deinit(void)
fe_perl_deinit();
#endif
dirty_check(); /* one last time to print any quit messages */
dirty_check(); /* one last time to print any quit messages */
signal_remove("settings userinfo changed", (SIGNAL_FUNC) sig_settings_userinfo_changed);
signal_remove("gui exit", (SIGNAL_FUNC) sig_exit);
lastlog_deinit();
@ -259,12 +260,11 @@ static void check_files(void)
}
}
int main(int argc, char **argv)
{
static int version = 0;
static GOptionEntry options[] = {
{ "version", 'v', 0, G_OPTION_ARG_NONE, &version, "Display irssi version", NULL },
{ "version", 'v', 0, G_OPTION_ARG_NONE, &version, "Display Irssi version", NULL },
{ NULL }
};
int loglev;

View file

@ -79,5 +79,26 @@ FORMAT_REC gui_text_formats[] =
{ "paste_warning", "Pasting $0 lines to $1. Press Ctrl-K if you wish to do this or Ctrl-C to cancel.", 2, { 1, 0 } },
{ "paste_prompt", "Hit Ctrl-K to paste, Ctrl-C to abort?", 0 },
/* ---- */
{ NULL, "Welcome", 0 },
{ "irssi_banner",
" ___ _%:"
"|_ _|_ _ _____(_)%:"
" | || '_(_-<_-< |%:"
"|___|_| /__/__/_|%:"
"Irssi v$J - http://www.irssi.org", 0 },
{ "welcome_firsttime",
"- - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"
"Hi there! If this is your first time using Irssi, you%:"
"might want to go to our website and read the startup%:"
"documentation to get you going.%:%:"
"Our community and staff are available to assist you or%:"
"to answer any questions you may have.%:%:"
"Use the /HELP command to get detailed information about%:"
"the available commands.%:"
"- - - - - - - - - - - - - - - - - - - - - - - - - - - -", 0 },
{ "welcome_init_settings", "The following settings were initialized", 0 },
{ NULL, NULL, 0 }
};

View file

@ -53,6 +53,12 @@ enum {
TXT_PASTE_WARNING,
TXT_PASTE_PROMPT,
TXT_FILL_5, /* Welcome */
TXT_IRSSI_BANNER,
TXT_WELCOME_FIRSTTIME,
TXT_WELCOME_INIT_SETTINGS,
TXT_COUNT
};