#include "str.h"
int item_was_mod(void);
char *xov_expire_status(void);
int xidle_sorted(int grp, int *upto);
void xidle_do(void);
void xidle_sort(int grp);
int xidle_sort_block(int grp, int *block);
int item_super(char *mid) ;
int set_ignorecontrol(int x);
char *xidle_status(void);
int item_isascii(String *xitem);
void item_setheader(int x, char *grp);
void item_setchan(int c);
void item_freecache(int grp, int num);
String *item_head_cheat(int group, int num, char *gnum);
String *item_body_cheat(int group, int num, char *gnum);
int item_delete_all(int c,int g, int num);
int item_delete_range(int chan, int g, int from, int to);
int item_cancel(int c,int g, int num);
void xov_total_clear(void);
int xov_total_get(void);
void item_test_xover(int chan);
void item_setimport(int x) ;
int item_iscrosspost(void);
void item_stopfeeds(int t);
int item_read_check_group(int grp);
char *get_aheadraw(String *sitem, char *head);
void item_set_xreplic(int x);
int item_exists(int group, int num);
void item_xover_close(void);
void diskuse_flush(void);
char *item_xover_status(void);
char *item_getahead_x(int grp, int n, int xfield, int getnext);
void item_speed_test(int x);
void diskuse_write(void);
int item_isxover(char *hdr);
char *item_speed(void);
int xcache_init(void);
int xcache_hash(int g, int n);
String *item_body_size(int group, int num, int from, int from_len, int *total_len);
int item_expire_xover(int grp);
void item_xover_fmt(int chan);
void sort_xover(int grp);


String *xcache_get(int g, int n);
void xcache_store(int g, int n, String *x);
double xcache_hitrate(void);
void xcache_forget(int g, int n);


void item_setaddlost(int x);
char *item_addlost(String *head, char *msgid, int maingrp, int mainnum);
int head_replace(String *item,String *newhead);
int item_clearcache();
char *item_getahead(int group, int num, char *wanted);
void item_purgelost(int group, int range, int *ngood, int *nbad);
String *item_gettext(int offset, int len);
String *item_xref(char *header, int r1, int r2)  ;
String *item_head(int group, int num);
String *item_body(int group, int num);
int item_open(int group,int num);
int item_suck(String *item);
int item_save(int group, int num, String *sitem);
String *xover_make(String *sitem, int num);
char *get_ahead(String *sitem, char *head);
char *get_head(char *s);
String *item_xover(int grp, int num, int getnext);
int item_kill(int grp, int num);
void diskuse_add(int x);
void diskuse_set(int x);
int diskuse_get(void);




int item_kill(int g, int n);
int item_purge(void);
void item_purgedo(int g, int num);
int kill_cmp(const void *aa, const void *bb);
int kill_max(void);
void dalloc(void **x, int n);

int item_purgestart(int group, int num);
int item_purgeclose(int group, int num);
int item_purgewrite(int group, int num, String *shead, String *sbody, int islink) ;

int item_findfirst(int group, int first, int last);
int item_findnum(int group, int *first, int *last);
void item_flush(void);
void cache_flush_one(int nxt);
int cache_open(char *fname, char *iname);
int item_delete(int g, int n);
int item_tryagain(void);
void item_init(void);
void item_fileonly(void);
int item_speed_reset(void);
