mirror of
https://github.com/irssi/irssi.git
synced 2024-11-03 04:27:19 -05:00
Merge pull request #1159 from vague666/fix_cmd_cat_bug
Make sure witem exists in cmd_cat when using -window
This commit is contained in:
commit
70626d86ae
@ -117,7 +117,8 @@ static void cmd_version(char *data)
|
|||||||
/* SYNTAX: CAT [-window] <file> [<seek position>] */
|
/* SYNTAX: CAT [-window] <file> [<seek position>] */
|
||||||
static void cmd_cat(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
|
static void cmd_cat(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
|
||||||
{
|
{
|
||||||
char *fname, *fposstr, *target;
|
char *fname, *fposstr;
|
||||||
|
gboolean target;
|
||||||
GHashTable *optlist;
|
GHashTable *optlist;
|
||||||
void *free_arg;
|
void *free_arg;
|
||||||
int fpos;
|
int fpos;
|
||||||
@ -155,15 +156,18 @@ static void cmd_cat(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
target = g_hash_table_lookup(optlist, "window") != NULL ? item->name : NULL;
|
target = g_hash_table_lookup(optlist, "window") != NULL;
|
||||||
|
|
||||||
g_io_channel_set_encoding(handle, NULL, NULL);
|
g_io_channel_set_encoding(handle, NULL, NULL);
|
||||||
g_io_channel_seek_position(handle, fpos, G_SEEK_SET, NULL);
|
g_io_channel_seek_position(handle, fpos, G_SEEK_SET, NULL);
|
||||||
buf = g_string_sized_new(512);
|
buf = g_string_sized_new(512);
|
||||||
while (g_io_channel_read_line_string(handle, buf, &tpos, NULL) == G_IO_STATUS_NORMAL) {
|
while (g_io_channel_read_line_string(handle, buf, &tpos, NULL) == G_IO_STATUS_NORMAL) {
|
||||||
buf->str[tpos] = '\0';
|
buf->str[tpos] = '\0';
|
||||||
printtext(target != NULL ? server : NULL, target, MSGLEVEL_CLIENTCRAP |
|
if (target)
|
||||||
MSGLEVEL_NEVER, "%s", buf->str);
|
printtext_window(active_win, MSGLEVEL_CLIENTCRAP | MSGLEVEL_NEVER, "%s",
|
||||||
|
buf->str);
|
||||||
|
else
|
||||||
|
printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP | MSGLEVEL_NEVER, "%s", buf->str);
|
||||||
}
|
}
|
||||||
g_string_free(buf, TRUE);
|
g_string_free(buf, TRUE);
|
||||||
cmd_params_free(free_arg);
|
cmd_params_free(free_arg);
|
||||||
|
Loading…
Reference in New Issue
Block a user