int hist_gotit(char *msgid); char *hist_status(void); int hist_upto(void); int hist_add(char *mid, char *s_posted, char *s_expires, char *grps); void hist_flush(void); void hist_append(char *s); int hist_open(int mode); int hist_open_read(void); int hist_open_write(void); int hist_init(void); void hist_setsize(int x); /* Call this if we are taking a full feed */ void hist_addidx(char *msgid, int offset); int hist_addone(int **hptr, int offset); int hist_find(char *msgid, int *grp, int *num); char *hist_exists(char *msgid); char *hist_line(int h); /* Ugly, reads until EOL */ char *hist_next(void); /*Read the next line, and return NULL on EOF */ char *hist_line2(int h); /* Ugly, reads until two EOL's so it's got a whole record*/ char * hist_after(int date); int hist_date_expires(char *rec); /*Second date, zero if is '-' */ int hist_date_arrived(char *rec); char *hist_groupfirst(char *rec); char *hist_groupnext(void); int hist_groupnextnum(void); char * hist_gname(char *rec, int g); /* Return group and num */ int hist_group(char *s,int n); int hist_num(char *s,int g); int hist_writenew(char *s); void hist_close(void); void hnew_write(char *s); void hnew_close(void); void hnew_idx_add(int a, int b); void hnew_idx_flush(void); int hist_idx_read(int sz); void hist_switch(void); void hist_idx_add(int a, int b); void hist_idx_flush(void); void hist_rebuild(void);