Changed window->waiting_channels ("servertag name" format) to

bound_items containing WINDOW_BIND_REC structures. If you now use
/SAVEWINDOWS, the item will _always_ be restored to saved window even
if there was already some other item.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1204 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2001-02-10 09:12:53 +00:00 committed by cras
commit ddf6810b0e
5 changed files with 98 additions and 52 deletions

View file

@ -13,6 +13,12 @@ enum {
DATA_LEVEL_HILIGHT
};
typedef struct {
char *servertag;
char *name;
unsigned int sticky:1;
} WINDOW_BIND_REC;
typedef struct {
int refnum;
char *name;
@ -25,7 +31,7 @@ typedef struct {
char *servertag; /* active_server must be either NULL or have this tag (unless there's items in this window) */
int level; /* message level */
GSList *waiting_channels; /* list of "<server tag> <channel>" */
GSList *bound_items; /* list of WINDOW_BIND_RECs */
int lines;
unsigned int sticky_refnum:1;
@ -75,6 +81,14 @@ int windows_refnum_last(void);
GSList *windows_get_sorted(void);
WINDOW_BIND_REC *window_bind_add(WINDOW_REC *window, const char *servertag,
const char *name);
void window_bind_destroy(WINDOW_REC *window, WINDOW_BIND_REC *rec);
WINDOW_BIND_REC *window_bind_find(WINDOW_REC *window, const char *servertag,
const char *name);
void window_bind_remove_unsticky(WINDOW_REC *window);
void windows_init(void);
void windows_deinit(void);