[ekg2-devel] ncurses history: Nie wszystko warto pamiętać.
Wiesław Ochmiński
wiechu w wiechu.com
Pon, 18 Lut 2008, 16:28:34 CET
Kłaniam!
Może nie warto zapamiętywać w history kilku kolejnych takich samych linii?
Pozdrawiam,
W.
--
Wiesław Ochmiński, Polska Północna, Malbork.
-------------- następna część ---------
Index: plugins/ncurses/vars-en.txt
===================================================================
--- plugins/ncurses/vars-en.txt (wersja 3796)
+++ plugins/ncurses/vars-en.txt (kopia robocza)
@@ -115,6 +115,12 @@
defines header size displayed on the top of the screen. Maximum value: 5.
+history_savedups
+ type: integer
+ default value: 1
+
+ if set to 0, don't save lines matching the previous history entry
+
kill_irc_window
type: bool
default value: 1
Index: plugins/ncurses/vars-pl.txt
===================================================================
--- plugins/ncurses/vars-pl.txt (wersja 3796)
+++ plugins/ncurses/vars-pl.txt (kopia robocza)
@@ -161,6 +161,13 @@
określa rozmiar nagłówka okna wyświetlanego na górze ekranu.
maksymalna ilość linii to 5.
+history_savedups
+ typ: liczba
+ domyślna wartość: 1
+
+ jeśli ustawiona na 0, to wiersze pasujące do ostatniego wiersza
+ historii nie są wprowadzane do listy historii.
+
kill_irc_window
typ: bool
domyślna wartość: 1
Index: plugins/ncurses/old.h
===================================================================
--- plugins/ncurses/old.h (wersja 3796)
+++ plugins/ncurses/old.h (kopia robocza)
@@ -147,6 +147,7 @@
extern int config_display_transparent;
extern int config_enter_scrolls;
extern int config_header_size;
+extern int config_history_savedups;
extern int config_margin_size;
extern int config_statusbar_size;
extern int config_kill_irc_window;
Index: plugins/ncurses/main.c
===================================================================
--- plugins/ncurses/main.c (wersja 3796)
+++ plugins/ncurses/main.c (kopia robocza)
@@ -50,6 +50,7 @@
int config_enter_scrolls;
int config_header_size;
int config_margin_size;
+int config_history_savedups = 1;
int config_kill_irc_window = 1;
int config_statusbar_size;
int config_lastlog_size;
@@ -519,6 +520,7 @@
config_backlog_size = 1000; /* maksymalny rozmiar backloga */
config_display_transparent = 1; /* czy chcemy przezroczyste tło? */
config_kill_irc_window = 1; /* czy zamykać kanały ircowe przez alt-k? */
+ config_history_savedups = 1; /* save lines matching the previous history entry */
config_statusbar_size = 1;
config_header_size = 0;
config_enter_scrolls = 0;
@@ -672,6 +674,7 @@
variable_add(&ncurses_plugin, ("display_transparent"), VAR_BOOL, 1, &config_display_transparent, ncurses_display_transparent_changed, NULL, NULL);
variable_add(&ncurses_plugin, ("enter_scrolls"), VAR_BOOL, 1, &config_enter_scrolls, NULL, NULL, NULL);
variable_add(&ncurses_plugin, ("header_size"), VAR_INT, 1, &config_header_size, header_statusbar_resize, NULL, NULL);
+ variable_add(&ncurses_plugin, ("history_savedups"), VAR_BOOL, 1, &config_history_savedups, NULL, NULL, NULL);
variable_add(&ncurses_plugin, ("kill_irc_window"), VAR_BOOL, 1, &config_kill_irc_window, NULL, NULL, NULL);
variable_add(&ncurses_plugin, ("margin_size"), VAR_INT, 1, &config_margin_size, NULL, NULL, NULL);
variable_add(&ncurses_plugin, ("statusbar_size"), VAR_INT, 1, &config_statusbar_size, header_statusbar_resize, NULL, NULL);
Index: plugins/ncurses/bindings.c
===================================================================
--- plugins/ncurses/bindings.c (wersja 3796)
+++ plugins/ncurses/bindings.c (kopia robocza)
@@ -267,11 +267,13 @@
}
if (xwcscmp(line, TEXT(""))) {
+ if (config_history_savedups || xwcscmp(line, history[1])) {
if (history[0] != line)
xfree(history[0]);
history[0] = xwcsdup(line);
xfree(history[HISTORY_MAX - 1]);
memmove(&history[1], &history[0], sizeof(history) - sizeof(history[0]));
+ }
} else {
if (config_enter_scrolls)
print("none", "");
Więcej informacji o liście dyskusyjnej ekg2-devel