/* rcstuff.h
*/
/* This software is copyrighted as detailed in the LICENSE file. */
#define TR_ONE ((ART_UNREAD) 1)
#define TR_NONE ((ART_UNREAD) 0)
#define TR_UNSUB ((ART_UNREAD) -1)
/* keep this one as -1, some tests use >= TR_UNSUB */
#define TR_IGNORE ((ART_UNREAD) -2)
#define TR_BOGUS ((ART_UNREAD) -3)
#define TR_JUNK ((ART_UNREAD) -4)
#define NF_SEL 0x01
#define NF_DEL 0x02
#define NF_DELSEL 0x04
#define NF_INCLUDED 0x10
#define NF_UNTHREADED 0x40
#define NF_VISIT 0x80
#define ADDNEW_SUB ':'
#define ADDNEW_UNSUB '!'
#define GNG_RELOC 0x0001
#define GNG_FUZZY 0x0002
EXT HASHTABLE* newsrc_hash INIT(NULL);
struct newsrc {
NEWSRC* next;
DATASRC* datasrc;
char* name; /* the name of the associated newsrc */
char* oldname; /* the backup of the newsrc */
char* newname; /* our working newsrc file */
char* infoname; /* the time/size info file */
char* lockname; /* the lock file we created */
int flags;
};
#define RF_ADD_NEWGROUPS 0x0001
#define RF_ADD_GROUPS 0x0002
#define RF_OPEN 0x0100
#define RF_ACTIVE 0x0200
#define RF_RCCHANGED 0x0400
struct multirc {
NEWSRC* first;
int num;
int flags;
};
#define MF_SEL 0x0001
#define MF_INCLUDED 0x0010
EXT MULTIRC* sel_page_mp;
EXT MULTIRC* sel_next_mp;
#define multirc_ptr(n) ((MULTIRC*)listnum2listitem(multirc_list,(long)(n)))
#define multirc_low() ((MULTIRC*)listnum2listitem(multirc_list,existing_listnum(multirc_list,0L,1)))
#define multirc_high() ((MULTIRC*)listnum2listitem(multirc_list,existing_listnum(multirc_list,multirc_list->high,-1)))
#define multirc_next(p) ((MULTIRC*)next_listitem(multirc_list,(char*)(p)))
#define multirc_prev(p) ((MULTIRC*)prev_listitem(multirc_list,(char*)(p)))
EXT LIST* multirc_list; /* a list of all MULTIRCs */
EXT MULTIRC* multirc; /* the current MULTIRC */
EXT bool paranoid INIT(FALSE); /* did we detect some inconsistency in .newsrc? */
EXT int addnewbydefault INIT(0);
/* DON'T EDIT BELOW THIS LINE OR YOUR CHANGES WILL BE LOST! */
bool rcstuff_init _((void));
NEWSRC* new_newsrc _((char*,char*,char*));
bool use_multirc _((MULTIRC*));
void unuse_multirc _((MULTIRC*));
bool use_next_multirc _((MULTIRC*));
bool use_prev_multirc _((MULTIRC*));
char* multirc_name _((MULTIRC*));
void abandon_ng _((NGDATA*));
bool get_ng _((char*,int));
#ifdef RELOCATE
bool relocate_newsgroup _((NGDATA*,NG_NUM));
#endif
void list_newsgroups _((void));
NGDATA* find_ng _((char*));
void cleanup_newsrc _((NEWSRC*));
void sethash _((NGDATA*));
void checkpoint_newsrcs _((void));
bool write_newsrcs _((MULTIRC*));
void get_old_newsrcs _((MULTIRC*));
syntax highlighted by Code2HTML, v. 0.9.1