Patch by jimmy: Details In 0.8.9 it is not possible to log all activity on a given

server; you must confine the logging to a window or a set of targets. This
patch adds a default "*" target which matches everything on the server,
including NULL items associated with it:


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3282 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2004-08-19 23:34:00 +00:00 committed by cras
commit 924ac8f91f
2 changed files with 24 additions and 3 deletions

View file

@ -246,18 +246,34 @@ void log_write_rec(LOG_REC *log, const char *str, int level)
g_free_not_null(colorstr);
}
static int itemcmp(const char *patt, const char *item)
{
/* returns 0 on match, nonzero otherwise */
if (item == NULL)
return g_strcasecmp(patt, "*") != 0;
for (;*patt != '\0'; patt++, item++)
{
if (*patt == '*')
return 0;
if (*patt != *item)
return 1;
}
return 0;
}
LOG_ITEM_REC *log_item_find(LOG_REC *log, int type, const char *item,
const char *servertag)
{
GSList *tmp;
g_return_val_if_fail(log != NULL, NULL);
g_return_val_if_fail(item != NULL, NULL);
for (tmp = log->items; tmp != NULL; tmp = tmp->next) {
LOG_ITEM_REC *rec = tmp->data;
if (rec->type == type && g_strcasecmp(rec->name, item) == 0 &&
if (rec->type == type && itemcmp(rec->name, item) == 0 &&
(rec->servertag == NULL || (servertag != NULL &&
g_strcasecmp(rec->servertag, servertag) == 0)))
return rec;