summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2001-03-03 18:22:09 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2001-03-03 18:22:09 +0000
commitfcd8810b6ca21551ca3ca9c99a5b18e38c4baca4 (patch)
tree6811e74d1cf64c17937317837cfd4a2ac958d6eb /src
parent88094fa9f28476241c1fb39ca937defe37b60e4f (diff)
downloadirssi-fcd8810b6ca21551ca3ca9c99a5b18e38c4baca4.zip
Removed all beep handling from text printing. If you want to beep just
send "beep" signal. /LAST -clear crashed if window contained only lastlog lines. Some other minor cleanups. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1312 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src')
-rw-r--r--src/fe-common/core/fe-core-commands.c2
-rw-r--r--src/fe-common/core/formats.c9
-rw-r--r--src/fe-common/core/formats.h9
-rw-r--r--src/fe-common/core/printtext.c8
-rw-r--r--src/fe-common/core/printtext.h1
-rw-r--r--src/fe-text/gui-printtext.c8
-rw-r--r--src/fe-text/gui-windows.c26
7 files changed, 30 insertions, 33 deletions
diff --git a/src/fe-common/core/fe-core-commands.c b/src/fe-common/core/fe-core-commands.c
index eb09a274..7b8f7f9b 100644
--- a/src/fe-common/core/fe-core-commands.c
+++ b/src/fe-common/core/fe-core-commands.c
@@ -141,7 +141,7 @@ static void cmd_cat(const char *data)
/* SYNTAX: BEEP */
static void cmd_beep(void)
{
- printbeep();
+ signal_emit("beep", 0);
}
static void sig_stop(void)
diff --git a/src/fe-common/core/formats.c b/src/fe-common/core/formats.c
index 2ef4aad1..43f8f275 100644
--- a/src/fe-common/core/formats.c
+++ b/src/fe-common/core/formats.c
@@ -540,7 +540,7 @@ static char *get_ansi_color(THEME_REC *theme, char *str,
/* reset colors back to default */
fg = theme->default_color;
bg = -1;
- flags &= ~(PRINTFLAG_BEEP|PRINTFLAG_INDENT);
+ flags &= ~PRINTFLAG_INDENT;
break;
case 1:
/* hilight */
@@ -734,17 +734,17 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
if (type == 7) {
/* bell */
if (settings_get_bool("bell_beeps"))
- flags |= PRINTFLAG_BEEP;
+ signal_emit("beep", 0);
}
- if (*str != '\0' || (flags & PRINTFLAG_BEEP)) {
+ if (*str != '\0') {
/* send the text to gui handler */
signal_emit_id(signal_gui_print_text, 6, dest->window,
GINT_TO_POINTER(fgcolor),
GINT_TO_POINTER(bgcolor),
GINT_TO_POINTER(flags), str,
dest->level);
- flags &= ~(PRINTFLAG_BEEP | PRINTFLAG_INDENT);
+ flags &= ~PRINTFLAG_INDENT;
}
if (type == '\n')
@@ -812,7 +812,6 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
break;
case 15:
/* remove all styling */
- flags &= PRINTFLAG_BEEP;
fgcolor = bgcolor = -1;
break;
case 22:
diff --git a/src/fe-common/core/formats.h b/src/fe-common/core/formats.h
index 5d136d2f..16e37326 100644
--- a/src/fe-common/core/formats.h
+++ b/src/fe-common/core/formats.h
@@ -7,11 +7,10 @@
#define PRINTFLAG_BOLD 0x01
#define PRINTFLAG_REVERSE 0x02
#define PRINTFLAG_UNDERLINE 0x04
-#define PRINTFLAG_BEEP 0x08
-#define PRINTFLAG_BLINK 0x10
-#define PRINTFLAG_MIRC_COLOR 0x20
-#define PRINTFLAG_INDENT 0x40
-#define PRINTFLAG_NEWLINE 0x80
+#define PRINTFLAG_BLINK 0x08
+#define PRINTFLAG_MIRC_COLOR 0x10
+#define PRINTFLAG_INDENT 0x20
+#define PRINTFLAG_NEWLINE 0x40
#define MAX_FORMAT_PARAMS 10
#define DEFAULT_FORMAT_ARGLIST_SIZE 200
diff --git a/src/fe-common/core/printtext.c b/src/fe-common/core/printtext.c
index 7b85e2c7..306df289 100644
--- a/src/fe-common/core/printtext.c
+++ b/src/fe-common/core/printtext.c
@@ -45,12 +45,6 @@ static int sending_print_starting;
static void print_line(TEXT_DEST_REC *dest, const char *text);
-void printbeep(void)
-{
- signal_emit_id(signal_gui_print_text, 6, active_win, NULL, NULL,
- GINT_TO_POINTER(PRINTFLAG_BEEP), "", MSGLEVEL_NEVER);
-}
-
static void printformat_module_dest(const char *module, TEXT_DEST_REC *dest,
int formatnum, va_list va)
{
@@ -367,7 +361,7 @@ static void msg_beep_check(SERVER_REC *server, int level)
if (level != 0 && (level & MSGLEVEL_NOHILIGHT) == 0 &&
(beep_msg_level & level) &&
(beep_when_away || (server != NULL && !server->usermode_away))) {
- printbeep();
+ signal_emit("beep", 0);
}
}
diff --git a/src/fe-common/core/printtext.h b/src/fe-common/core/printtext.h
index 125b6f72..14f46564 100644
--- a/src/fe-common/core/printtext.h
+++ b/src/fe-common/core/printtext.h
@@ -13,7 +13,6 @@ void printtext(void *server, const char *target, int level, const char *text, ..
void printtext_string(void *server, const char *target, int level, const char *text);
void printtext_window(WINDOW_REC *window, int level, const char *text, ...);
void printtext_multiline(void *server, const char *target, int level, const char *format, const char *text);
-void printbeep(void);
/* only GUI should call these - used for printing text to somewhere else
than windows */
diff --git a/src/fe-text/gui-printtext.c b/src/fe-text/gui-printtext.c
index 9fbf14b1..6f6dd829 100644
--- a/src/fe-text/gui-printtext.c
+++ b/src/fe-text/gui-printtext.c
@@ -184,6 +184,12 @@ void gui_window_line_remove(WINDOW_REC *window, LINE_REC *line, int redraw)
gui = WINDOW_GUI(window);
+ if (gui->lines->next == NULL) {
+ /* last line in window */
+ gui_window_clear(window);
+ return;
+ }
+
screenchange = g_list_find(gui->startline, line) != NULL;
if (screenchange) gui->ypos -= gui_window_get_linecount(gui, line);
@@ -363,8 +369,6 @@ static void line_add_colors(GUI_WINDOW_REC *gui, int fg, int bg, int flags)
buffer[pos++] = 0;
buffer[pos++] = LINE_CMD_INDENT;
}
- if (flags & PRINTFLAG_BEEP)
- signal_emit("beep", 0);
linebuf_add(gui, (char *) buffer, pos);
diff --git a/src/fe-text/gui-windows.c b/src/fe-text/gui-windows.c
index f791cc9a..d206f62e 100644
--- a/src/fe-text/gui-windows.c
+++ b/src/fe-text/gui-windows.c
@@ -270,7 +270,8 @@ static LINE_CACHE_REC *gui_window_line_cache(GUI_WINDOW_REC *gui,
LINE_CACHE_REC *rec;
LINE_CACHE_SUB_REC *sub;
GSList *lines;
- unsigned char *ptr, *last_space_ptr;
+ unsigned char cmd;
+ char *ptr, *last_space_ptr;
int xpos, pos, indent_pos, last_space, last_color, color;
g_return_val_if_fail(line->text != NULL, NULL);
@@ -282,25 +283,28 @@ static LINE_CACHE_REC *gui_window_line_cache(GUI_WINDOW_REC *gui,
last_space = last_color = 0; last_space_ptr = NULL; sub = NULL;
rec->count = 1; lines = NULL;
- for (ptr = (unsigned char *) line->text;;) {
+ for (ptr = line->text;;) {
if (*ptr == '\0') {
/* command */
ptr++;
- if (*ptr == LINE_CMD_EOL || *ptr == LINE_CMD_FORMAT)
+ cmd = *ptr;
+ ptr++;
+
+ if (cmd == LINE_CMD_EOL || cmd == LINE_CMD_FORMAT)
break;
- if (*ptr == LINE_CMD_CONTINUE) {
- unsigned char *tmp;
+ if (cmd == LINE_CMD_CONTINUE) {
+ char *tmp;
- memcpy(&tmp, ptr+1, sizeof(char *));
+ memcpy(&tmp, ptr, sizeof(char *));
ptr = tmp;
continue;
}
- if ((*ptr & 0x80) == 0) {
+ if ((cmd & 0x80) == 0) {
/* set color */
- color = (color & ATTR_UNDERLINE) | *ptr;
- } else switch (*ptr) {
+ color = (color & ATTR_UNDERLINE) | cmd;
+ } else switch (cmd) {
case LINE_CMD_UNDERLINE:
color ^= ATTR_UNDERLINE;
break;
@@ -320,8 +324,6 @@ static LINE_CACHE_REC *gui_window_line_cache(GUI_WINDOW_REC *gui,
if (xpos < COLS-5) indent_pos = xpos;
break;
}
-
- ptr++;
continue;
}
@@ -347,7 +349,7 @@ static LINE_CACHE_REC *gui_window_line_cache(GUI_WINDOW_REC *gui,
sub->continues = TRUE;
}
- sub->start = (char *) ptr;
+ sub->start = ptr;
sub->indent = xpos;
sub->color = color;