mirror of
https://github.com/irssi/irssi.git
synced 2026-08-09 20:00:23 +02:00
Merge branch 'master' into hide-lines
This commit is contained in:
commit
466d074200
72 changed files with 2950 additions and 537 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue