   /****************************************************************
    Copyright (C) 1986-2000 by

    F6FBB - Jean-Paul ROUBELAT
    6, rue George Sand
    31120 - Roquettes - France
	jpr@f6fbb.org

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    Parts of code have been taken from many other softwares.
    Thanks for the help.
    ****************************************************************/


#ifdef __cplusplus
extern "C"
{
#endif
#ifdef __LINUX__

	extern char *back2slash (char *);
	extern char *get_nextparam(void);
	extern char *getcurdir (int drive, char *str);
	extern char *GetUserInfo(char *call, int *nLen);
	extern char *GetMsgInfo(char *numero, int *nLen);
	extern char *itoa (int, char *, int);
	extern char *ltoa (long, char *, int);
	extern char *MessPath (void);
	extern char *slash2back (char *);
	extern char *ultoa (unsigned long, char *, int);
	extern char *StartForward(int numbbs);
	extern char *StopForward(int numbbs);
	extern char *long_filename(char *path, char *filename);

	extern int call_dll (char *cmd, int mode, char *buffer, int len, char *data);
	extern int call_nbdos (char **cmd, int nb_cmd, int mode, char *log, char *dir, char *data);
	extern int check_passwd (char *call, char *pass);
	extern int default_tty(int com);
	extern int DelUserInfo(char *call);
	extern int end_xfbb_edit (void);
	extern int fnsplit (char *name, char *drive, char *rep, char *base, char *ext);
	extern int fbb_ax25_config_load_ports (void);
	extern int fbb_list (int);
	extern int fbb_nr_config_load_ports (void);
	extern int fbb_rs_config_load_ports (void);
	extern int fbb_statfs (char *filename, struct statfs *buf);
	extern int findfirst (char *rech, struct ffblk *blk, int mask);
	extern int findnext (struct ffblk *blk);
	extern int filter (char *ligne, char *buffer, int len, char *data, char *xdir);
	extern int getdisk (void);
	extern int GetFileNameDialog (char *);
	extern int getftime (int fd, struct ftime *ft);
	extern int GetMsgInfos (bullist * plig, long numero);
	extern int GetUserInfos (char *callsign, info * frec);
	extern int initcom_linux (int com);
	extern int init_pfh (void);
	extern int is_cdir (int chr);
	extern int is_cmd (int voie);
	extern int linux_port (int port, int canal);
	extern int nbcan_linux (void);
	extern int NewUserInfo(char *call);
	extern int play (char *name);
	extern int PutMsgInfo(char *number, char *buf, int nLen);
	extern int PutUserInfo(char *call, char *buf, int nLen);
	extern int random_nb (int num);
	extern int SetMsgInfo (bullist * plig, long numero);
	extern int SetUserInfos (char *callsign, info * frec);
	extern int xfbb_edit (void);

	extern long filelength (int fd);

	extern unsigned long free_disk (int disk);

	extern void add_pfh(bullist *pbul);
	extern void AddMessageList (char *number);
	extern void AddPendingLine (char *call, int priv, int bull, int kb);
	extern void AddUserLang (char *lang);
	extern void AddUserList (char *callsign);
	extern void CloseFbbWindow (int numero);
	extern void CmdCHO(int port, int val);
	extern void CmdScan(int port, int val);
	extern void CompressPosition (int mode, int val, long numero);
	extern void console_inbuf (char *, int len);
	extern void deb_io (void);
	extern void disconnect_channel (int channel, int immediate);
	extern void DisplayResync (int port, int nb);
	extern void dump_core(void);
	extern void exec_cmd (cmdlist * cptr);
	extern void fbb_quit (unsigned retour);
	extern void FbbMem (int);
	extern void FbbRequestMessageList (void);
	extern void FbbRequestUserList (void);
	extern void FbbStatus (char *callsign, char *texte);
	extern void fin_io (void);
	extern void format_ffblk (struct ffblk *blk, struct dirent *dir);
	extern void InfoMessage (int, char *, char *);
	extern void InitText (char *);
	extern void justifie (unsigned char *);
	extern void kill_rzsz (int voie);
	extern void maj_menu_options (void);
	extern void orb_options(void);
	extern void orb_info(int val, char *str);
	extern void orb_pactor_status(int port, int p_status);
	extern void orb_con_list (int channel, char *ligne);
	extern void orb_con_nb (int nb);
	extern void orb_disc (void);
	extern void orb_nb_msg (int priv, int hold, int nbmess);
	extern void orb_status (long lmem, long gmem, long disk1, long disk2);
	extern void orb_write (int channel, char *data, int len, int color, int header);
	extern void pbsv (void);
	extern void randomize (void);
	extern void RequestPendingForward(char *datafile);
	extern void RequestMsgsList(char *datafile);
	extern void RequestUsersList(char *datafile);
	extern void reset_msgs (void);
	extern void set_info_channel(int channel);
	extern void set_win_colors (void);
	extern void ShowError (char *titre, char *info, int lig);
	extern void SpoolLine (int voie, int attr, char *data, int lg);
	extern void sysop_call (char *texte);
	extern void sysop_end (void);
	extern void user_status (int voie);
	extern void win_msg_cons (int priv, int hold);
	extern void win_status (char *txt);
	extern void WinDebug (char *fmt,...);
	extern void window_connect (int numero);
	extern void window_disconnect (int numero);
	extern void window_init (void);
	extern void window_write (int numero, char *data, int len, int color, int header);
	extern void WinMessage (int temps, char *text);
	extern void WinMSleep (unsigned milliseconds);
	extern void WinSleep (unsigned seconds);

#endif

#ifdef __WINDOWS__

	/*
	   Declarations de prototypes specifiques Windows
	 */

	extern void WinDebug (char *fmt,...);

	extern char *win_memo (int);
	extern char *xmodem_str (int voie, char *s);
	extern char *yapp_str (int voie, char *s);
	extern char *abin_str (int voie, char *s);
	extern char *ffwd_str (int voie, char *s);
	extern char *xfwd_str (int voie, char *s);

	extern int call_dll (char *cmd, int mode, char *buffer, int len, char *data);
	extern int call_nbdos (char **cmd, int nb_cmd, int mode, char *log, char *dir, char *data);
	extern int editor_on (void);
	extern int fbb_exec (char *commande);
	extern int fbb_list (void);
	extern int filter (char *ligne, char *buffer, int len, char *data);
	extern int GetCommStatus (int nCid);
	extern int get_win_lig (int numero);
	extern int in_comm (int port, char *buf, int nb);
	extern int initcom_windows (int, int, int, int);
	extern int out_comm (int port, char *buf, int nb);
	extern int tcp_busy (int voie);
	extern int wcprintf (char *format,...);
	extern int win_edit (void);
	extern int win_inittnc (HWND hWnd);
	extern int WindowService (void);
	extern int wputch (char carac);

	extern DWORD dos2rgb (int couleur);

	extern void AddList (int canal, char *callsign);
	extern void AddListFwd (int mode, char *bbs);
	extern void AddMessageList (char *number);
	extern void AddPendingLine (char *call, int priv, int bull, int kb);
	extern void AddUserList (char *callsign);
	extern void AddUserLang (char *langue);
	extern void closecom_windows (int);
	extern void CloseFbbWindow (int numero);
	extern void CompressPosition (int mode, int val, long numero);
	extern void console_inbuf (char *, int len);
	extern void CreateTtyWindow (HWND, HINSTANCE, int, char *, int);
	extern void CreateConsWindow (HWND, HINSTANCE, char *, int);
	extern void CreateCommWindow (HWND, HINSTANCE, int);
	extern void ded_init_tnc (int);
	extern void disconnect_channel (int channel, int immediate);
	extern void DisplayResync (int port, int nb);
	extern void end_win_edit (void);
	extern void EndResync (void);
	extern void fbb_quit (unsigned retour);
	extern void FbbMem (void);
	extern void FbbStatus (char *callsign, char *texte);
	extern void free_socket (int port);
	extern void InfoMessage (int temps, char *text, char *message);
	extern void init_socket (int port);
	extern void InitText (char *text);
	extern void m_libere (void *ptr, unsigned int taille);
	extern void maj_menu_options (void);
	extern void n_cpy (int longueur, char *dest, char *orig);
	extern void read_tnc (void);
	extern void ded_resynchro (int);
	extern void select_con (int voie);
	extern void send_tnc_windows (int, int);
	extern void SendEchoCmd (char *buf, int lg);
	extern void set_option (int);
	extern void set_win_colors (void);
	extern void ShowComm (void);
	extern void ShowError (char *titre, char *text, int val);
	extern void ShowMessage (unsigned int type, char *text);
	extern void SpoolLine (int voie, int attr, char *data, int lg);
	extern void strn_cpy (int longueur, char *dest, char *orig);
	extern void sysop_call (char *texte);
	extern void sysop_end (void);
	extern void user_status (int voie);
	extern void win_cree_bid (HWND);
	extern void win_init_bbs (HWND);
	extern void win_init_admin (HWND hWnd);
	extern void win_copyright (HWND hWnd);
	extern void win_cree_bid (HWND hWnd);
	extern void win_execute (char *buffer);
	extern void win_initialisations (HWND hWndParent, HINSTANCE hInstance, int cmdShow);
	extern void win_initexte (HWND hWnd);
	extern void win_initport (HWND hWnd);
	extern void win_msg_cons (int priv, int hold);
	extern void win_status (char *txt);
	extern void win_time_out (int temps);
	extern void WinDebug (char *fmt,...);
	extern void window_connect (int numero);
	extern void window_disconnect (int numero);
	extern void window_init (void);
	extern void window_write (int numero, char *data, int len, int color, int header);
	extern void WinMessage (int temps, char *text);
	extern void WinMSleep (unsigned milliseconds);
	extern void WinSleep (unsigned seconds);
	extern void WriteConsBuf (char *, int, COLORREF);
	extern void WriteLine (int, char *, int);

#endif

#ifdef __FBBDOS__

	extern int call_dll (char *cmd, int mode, char *buffer, int len, char *data);
	extern void close_win (fen *);
	extern void dump_core (void);
	extern void end_dll (void);
	extern void fen_libere (fen *);
	extern void gettext_info (struct text_info *);
	extern void gettxt (int, int, int, int, void *);
	extern void puttext_info (struct text_info *);
	extern void puttxt (fen *);
	extern void wr_scr (FScreen *, Ligne *, int);
	extern Ligne *sel_scr (FScreen *, int);

#endif

	extern atfwd *attend_fwd (int, uchar, uchar, uchar, int);

	extern bloc_indic *new_bloc_info (void);

/* System timer management */
	extern FbbTimer *add_timer (int, int, void *, void *);
	extern int del_timer (FbbTimer *);

	extern bloc_mess *last_dir (void);
	extern bloc_mess *new_bloc_mess (void);
	extern bloc_mess *prec_dir (bloc_mess *);

	extern bullist *ch_record (bullist *, long, char);

	extern char extind (char *, char *);

	extern char *abin_str (int voie, char *s);
	extern char *alt_variable (char);
	extern char *bbs_via (char *);
	extern char *ch_slash (char *);
	extern char *ch_slash (char *);
	extern char *check_dates (time_t date);
	extern char *comp_bid (char *);
	extern char *copy_name (int, char *);
	extern char *cr_to_lf (char *);
	extern char *cur_theme (int);
	extern char *date (void);
	extern char *date_mbl (long);
	extern char *datheure_mbl (long);
	extern char *dir_date (int);
	extern char *c_disque (char *);
	extern char *d_disque (char *);
	extern char *d_sauve (char *);
	extern char *d_yapp (char *);
	extern char *epure (char *, int);
	extern char *expand (char *);
	extern char *extend_bbs (char *);
	extern char *fbb_fgets (char *, int, FILE *);
	extern char *ffwd_str (int voie, char *s);
	extern char *first_group (void);
	extern char *get_group_info(char *nom, char *buffer);
	extern char *heure_mbl (long);
	extern char *hold_name (long, char *);
	extern char *idnt_fwd (void);
	extern char *k_var (void);
	extern char *lf_to_cr (char *);
	extern char *lfile (char *);
	extern char *ligne (FILE *);
	extern char *local_path (char *);
	extern char *make_header (bullist *, char *);
	extern char *mess_name (char *, long, char *);
	extern char *mk_passwd (char *chaine);
	extern char *mot (char *);
	extern char *new_bloc (int);
	extern char *next_group (void);
	extern char *nom_yapp (void);
	extern char *os (void);
	extern char *pop_date(long date);
	extern char *sel_bloc (int, int);
	extern char *snbgen (void);
	extern char *snbpers (void);
	extern char *snd_passwd (char *);
	extern char *stat_voie (int);
	extern char *strdate (long);
	extern char *strdt (long);
	extern char *strflags (info * frec);
	extern char *strheure (long);
	extern char *strjour (long);
	extern char *strmois (long);
	extern char *sup_ln (char *);
	extern char *task_name (int);
	extern char *temp_name (int, char *);
	extern char *titre_rubrique (int);
	extern char *tot_path (char *, char *);
	extern char *typ_exms (void);
	extern char *variable (char);
	extern char *var_txt (char *);
	extern char *var_crlf (char *);
	extern char *version (void);
	extern char *vir_path (char *);
	extern char *who (char *);
	extern char *xfwd_name (int voie, char *tempname);
	extern char *xfwd_str (int voie, char *s);
	extern char *xmodem_str (int voie, char *s);
	extern char *xuidl(long numero, char *callsign);
	extern char *yapp_str (int voie, char *s);

#ifdef __FBBDOS__
	extern fen *create_win (int, int, int, int);
	extern fen *fen_alloue (unsigned int);
	extern fen *open_win (int, int, int, int, int, char *);
#endif

	extern FILE *cree_mess (long);
	extern FILE *fappend (char *, char *);
	extern FILE *fbb_fopen (char *, char *);
	extern FILE *fsopen (char *, char *);
	extern FILE *ouvre_dirmes (void);
	extern FILE *ouvre_menu_info (void);
	extern FILE *ouvre_mess (unsigned, long, char);
	extern FILE *ouvre_nomenc (void);
	extern FILE *ouvre_sat (void);
	extern FILE *ouvre_stats (void);

	extern float t_compute (void);

	extern ind_noeud *insnoeud (char *, unsigned *);
	extern ind_noeud *cher_noeud (char *);

	extern indicat *get_indic (char *);

	extern int accept_cnx (void);
	extern int ack_suiv (int);
	extern int actif (int);
	extern int addr_check (char *);
	extern int aff_etat (int);
	extern int affich_cond (info *);
	extern int affiche_annonce (void);
	extern int affiche_forward (int);
	extern int affiche_liste_fwd (int);
	extern int affiche_message (void);
	extern int affiche_texte_annonce (void);
	extern int affiche_texte_message (void);
	extern int affnbgen (void);
	extern int affnbmess (void);
	extern int affnbpers (void);
	extern int affniv (int);
	extern int aff_ack (int);
	extern int aff_bbs (char *, char *);
	extern int aff_nbsta (void);
	extern int aff_tell (int, char *);
	extern int aff_yapp (int);
	extern int already_forw (char *, int);
	extern int appel_pg (char *);
	extern int appel_rev_fwd (int);
	extern int appel_serveur (serlist *, bullist *);
	extern int attcurs (void);
	extern int attend_ack (int *);
	extern int attend_caractere (int);
	extern int attprompt (int, int);
	extern int attrib (int);
	extern int attrib_r (int);
	extern int attrib_b (int);
	extern int att_ligne (void);
	extern int att_prompt (void);
	extern int aut_bbs (char *);
	extern int aut_dir (char *, char *);
	extern int aut_ecr (char *, int);
	extern int bin_message (rd_list *);
	extern int bourse_echange (void);
	extern int bpq_appli_nb (void);
	extern int bpq_port (int port, int canal);
	extern int bpq_recv (int, char *);
	extern int bpq_send (int, char *, int);
	extern int bpq_test (char *);
	extern int break_annonce (void);
	extern int busy (char *);
	extern int bye (void);
	extern int car_tnc (int);
	extern int car_tx (int);
	extern int ch_language (int, ind_noeud *, info *);
	extern int chainer_annonce (void);
	extern int chainer_message (void);
	extern int check_dupes (int voie, int nb, char *exped, int tst_priv);
	extern int cherche_enrg_mess (char *, char *);
	extern int cherche_route (bullist *);
	extern int chercher_voie (char *);
	extern int ch_voie (int, int);
	extern int clr_bas_ecran (void);
	extern int clr_ind (void);
	extern int cls (void);
	extern int cls_drv (int port);
	extern int cmd_drv (int, int, char *);
	extern int commande_fwd (void);
	extern int commande_console (int);
	extern int comp_passwd (char *call, char *chaine, time_t pass_time);
	extern int compress_mess (bullist *);
	extern int con_voie (int, char *);
	extern int conference (void);
	extern int connect_console (void);
	extern int connect_fwd (int, Forward *);
	extern int connect_tell (void);
	extern int connect_tnc (void);
	extern int connect_station (int, int, char *);
	extern int consulte_bulletins (void);
	extern int consulte_rubrique (void);
	extern int copie (char *);
	extern int copie_message (long);
	extern int copy_mess (long, char *, char);
	extern int cree_annonce (void);
	extern int cree_fichier (char *);
	extern int cree_instance (void);
	extern int current_task (void);
	extern int date_valide (long, long);
	extern int dec_fwd (char *);
	extern int dec_voie (int);
	extern int defaut (void);
	extern int deja_recu (bullist *, int, int *);
	extern int demande_ack (int);
	extern int depile_prompt (void);
	extern int desel_voie (int);
	extern int desti_tous (char *);
	extern int dir_new (void);
	extern int dir_suite (char *);
	extern int dir_yapp (char *);
	extern int doc (void);
	extern int dpt_ind (char *);
	extern int droit_ok (bullist *, int);
	extern int droits (unsigned int);
	extern int droits_2 (unsigned int);
	extern int drsi_port (int, int);
	extern int hst_port (int, int);
	extern int port_free (int);
	extern int ecrit_fichier (FILE *, char *);
	extern int empile_prompt (int);
	extern int entete_annonce (void);
	extern int entete_liste (void);
	extern int entete_nouv_ann (void);
	extern int entete_tableau_rub (void);
	extern int env_buf (int, char *, int);
	extern int envoi (void);
	extern int envoi_annonce (void);
	extern int envoi_bulletins (void);
	extern int envoi_fwd (int);
	extern int envoi_nouv_ann (void);
	extern int envoyer_annonce (void);
	extern int envoyer_message (void);
	extern int error_fwd (int);
	extern int err_break (void);
	extern int err_new_fwd (int, int);
	extern int err_ouvert (char *);
	extern int err_rep (void);
	extern int export_message (char *);
	extern int fbb_access(char *filename, int mode);
	extern int fbb_close (int);
	extern int fbb_fclose (FILE *);
	extern int fbb_fcloseall (void);
	extern int fbb_fflush (FILE *);
	extern int fbb_fgetc (FILE *);
	extern int fbb_findfirst (char *chemin, struct ffblk *ffblk, int attribut);
	extern int fbb_findnext (struct ffblk *ffblk);
	extern int fbb_fprintf (FILE *, char *,...);
	extern int fbb_fputc (int, FILE *);
	extern int fbb_fputs (char *, FILE *);
	extern int fbb_fread (void *, size_t, size_t, FILE *);
	extern int fbb_free (void *, unsigned int);
	extern int fbb_fscanf (FILE *, char *,...);
	extern int fbb_fwrite (void *, size_t, size_t, FILE *);
	extern int fbb_read (int, void *, unsigned);
	extern int fbb_unlink (char *);
	extern int fbb_write (int, void *, unsigned);
	extern int fbb_stat (char *filename, struct stat *buf);
	extern int fbb_rmdir (char *filename);
#ifdef __LINUX__
	extern int fbb_mkdir (char *filename, int mode);
#else
	extern int fbb_mkdir (char *filename);
#endif
#ifdef FBB_IO
	extern int fbb_open (char *filename, int acces, unsigned mode);
#else
	extern int fbb_open (char *, int,...);
#endif
	extern int fct_arret (int);
	extern int find (char *);
	extern int fin_annonce (int);
	extern int fin_envoi_fwd (int);
	extern int fin_message (int);
	extern int fin_trans (void);
	extern int find_next (struct ffblk *);
	extern int forward_auth (int);
	extern int fwd (void);
	extern int fwd_get (char *);
	extern int fwd_log (void);
	extern int fwd_mask (char *);
	extern int get_data (int);
	extern int get_inbuf (int);
	extern int get_link (int);
	extern int get_message (void);
	extern int get_mess_fwd (char, char *, int, int);
	extern int gmt_heure (long);
	extern int heure (long);
	extern int hiecmp (char *, char *);
	extern int high_memory_type (void);
	extern int hold (bullist *);
	extern int hold_kill (int);
	extern int hold_temp (int, char *, char *, int);
	extern int hupdate (void);
	extern int inbuf_ok (int);
	extern int incindd (void);
	extern int incondit1 (void);
	extern int incondit2 (void);
	extern int incondit3 (void);
	extern int incondit4 (void);
	extern int incondit5 (void);
	extern int incondit6 (void);
	extern int incondit7 (void);
	extern int incondit8 (void);
	extern int incondit9 (void);
	extern int indcmp (char *, char *);
	extern int ind_console (int, char *);
	extern int informations (void);
	extern int ini_bpq (int);
	extern int init_admin (void);
	extern int init_departements (void);
	extern int init_dpt (void);
	extern int init_liste_fwd (int);
	extern int init_liste_instance (void);
	extern int init_liste_rubrique (void);
	extern int init_pile (void);
	extern int init_pointeur (void);
	extern int init_pointeurs (void);
	extern int init_prompt (void);
	extern int init_white_pages (void);
	extern int initannonce (void);
	extern int inittnc (void);
	extern int initcom (void);
	extern int initcom_combios (int);
	extern int ins_liste_bbs (int, char *);
	extern int ins_liste_fwd (int, long, char, char *);
	extern int inslibr (unsigned);
	extern int insmess (unsigned, unsigned, long);
	extern int is_bid (char *);
	extern int is_bpq_monit (void);
	extern int is_dir (char *);
	extern int is_drsi (int);
	extern int is_espace (char *);
	extern int is_held (char *);
	extern int is_pactor (void);
	extern int is_room (void);
	extern int is_route (char *);
	extern int is_serv (char *);
	extern int is_wpupdate (char *);
	extern int iskey (void);
	extern int jour (long);
	extern int nojour (long);
	extern int kam_commande (int, char *);
	extern int kb_vide (void);
	extern int key (void);
	extern int keypressed (void);
	extern int lecture_annonce (void);
	extern int liberer_pile (void);
	extern int libere_buffer (struct typ_cbuf *);
	extern int libere_liste_fwd (int);
	extern int libere_liste_instance (void);
	extern int libere_liste_rubrique (void);
	extern int libere_prompt (void);
	extern int lig_bufi (int);
	extern int list_lc (void);
	extern int liste_bid (void);
	extern int liste_bulletins (void);
	extern int liste_dpt (void);
	extern int liste_message (void);
	extern int liste_rapide (int);
	extern int listind (void);
	extern int list_bul (int);
	extern int lit_ack (int);
	extern int lit_com_fwd (void);
	extern int lit_fenetre (int, char *);
	extern int lit_kbd (void);
	extern int lit_message (int, char *, char *);
	extern int lit_nb_dpt (void);
	extern int lit_port_modem (int);
	extern int lit_qra (void);
	extern int lit_relais (int, int, int);
	extern int lit_txt_pk (int, int);
	extern int littexte (void);
	extern int litvoie (int);
	extern int login (char *);
	extern int mail_out (char *);
	extern int main (int, char **);
	extern int maint_fwd (void);
	extern int maj_rubrique (void);
	extern int maj_with_wp (int);
	extern int mbl_bloc_list (void);
	extern int mbl_dump (void);
	extern int mbl_edit (void);
	extern int mbl_hold (void);
	extern int mbl_jheard (void);
	extern int mbl_kill (void);
	extern int mbl_list (void);
	extern int mbl_mess_read (void);
	extern int mbl_name (void);
	extern int mbl_options (void);
	extern int mbl_print (void);
	extern int mbl_read (int);
	extern int mbl_send (void);
	extern int md_busy (char *, int);
	extern int md_send (int, char *);
	extern int md_speed (int, int);
	extern int menu_rubriques (int);
	extern int menu_wp_search (void);
	extern int menu_yapp (void);
	extern int messagerie (void);
	extern int message_fichier (int, char *, long);
	extern int mess_conn (void);
	extern int mess_decc (void);
	extern int mess_fic (void);
	extern int mess_fin_annonce (void);
	extern int mess_suiv (int);
	extern int min_ok (int);
	extern int mini_edit (void);
	extern int minute (long);
	extern int modem_vide (int);
	extern int modif_condit (void);
	extern int msg_find (char *);
	extern int n_bbs (char *);
	extern int nb_ems_pages (void);
	extern int nbcan_bpq (void);
	extern int nbcan_drsi (void);
	extern int nbcan_hst (void);
	extern int nbgate (void);
	extern int nbl_page (int);
	extern int nbport (void);
	extern int nbull_theme (int);
	extern int no_canal (int);
	extern int no_port (int);
	extern int no_voie (int, int);
	extern int not_in_fb_mess (long, int);
	extern int not_in_xfwd_mess (long numero, int voie);
	extern int nouveau (int);
	extern int nouvelles_annonces (void);
	extern int num_bbs (char *);
	extern int num_voie (char *);
	extern int aff_ok(int);
	extern int opn_drv (int, int);
	extern int out_help (char *);
	extern int outfich (char *);
	extern int outfichs (char *);
	extern int ouvre (void);
	extern int p_cmd (void);
	extern int page (FILE *);
	extern int page_connect (char, FILE *);
	extern int page_doc (void);
	extern int page_dpt (void);
	extern int page_screen (int);
	extern int parcours_arbre (int, int);
	extern int part_file (char *, char *);
	extern int pile_vide (void);
	extern int pk_sonde (int, int, char *, int *);
	extern int pos_voie (int);
	extern int premier_enrg (char *);
	extern int print_fwd(int, unsigned char, unsigned char, unsigned char, int);
	extern int ptctrx (int, char *);
	extern int putxy (int, int, int);
	extern int put_annonce (void);
	extern int put_message (void);
	extern int put_ui (unsigned char *, int, int);
	extern int question (int);
	extern int quick_look (void);
	extern int rcv_drv (int *, int *, int *, char *, int *, ui_header *);
	extern int rcv_titre (void);
	extern int rcv_tnc (int);
	extern int reacheminement (void);
	extern int read_bid (unsigned, char *);
	extern int read_dir (unsigned, bullist *);
	extern int read_exms_string (int, char *);
	extern int read_only (void);
	extern int read_mess (int);
	extern int read_rej (unsigned record, Rej_rec * rej);
	extern int read_voie (unsigned voie, Svoie * pvoie);
	extern int read_wp (unsigned, Wp *);
	extern int rec_tnc (int);
	extern int recherche_message (void);
	extern int recoit (int, int *, char *);
	extern int recoit_pk (int, char *, int *);
	extern int redist (char *);
	extern int ref_ok (void);
	extern int rejet (bullist *);
	extern int rename_temp (int, char *);
	extern int req_cfg (char *);
	extern int retenu (bullist *);
	extern int review (void);
	extern int routage (long);
	extern int route_wp_hier (bullist *);
	extern int route_wp_home (bullist *);
	extern int rui_drv (int, char *, int *, ui_header *);
	extern int saisie_ref (void);
	extern int sauvef (int);
	extern int sauve_bloc (void);
	extern int sauve_fichiers (int);
	extern int scan_com_fwd (void);
	extern int search_bid (char *);
	extern int selection_rubrique (void);
	extern int selection_sat (void);
	extern int sel_option (char *, int *);
	extern int send_annonce (void);
	extern int send_bloc (int);
	extern int send_buf (int);
	extern int send_dos (int, char *, char *);
	extern int send_message (void);
	extern int send_pac (void);
	extern int senddata (unsigned int);
	extern int sendtexte (void);
	extern int snd_drv (int, int, char *, int, Beacon *);
	extern int snd_mess (int, int);
	extern int sortie_defaut (int);
	extern int sta_drv (int, int, void *);
	extern int step_initialisations (int);
	extern int status_message (void);
	extern int strmatch (char *, char *);
	extern int sui_drv (int, char *, Beacon *);
	extern int supp_annonce (void);
	extern int supp_ann_autorisee (void);
	extern int supp_autorisee (void);
	extern int supp_nomess (long, int);
	extern int swapp_bbs (bullist *);
	extern int switch_voie (int);
	extern int test_curseur (void);
	extern int test_date (char *);
	extern int test_desti (void);
	extern int test_forward (int);
	extern int test_heure (char *);
	extern int test_linked (void);
	extern int test_temp (int);
	extern int teste_espace (void);
	extern int teste_flag (int, ind_noeud *, int);
	extern int teste_rep (char *);
	extern int texte (int);
	extern int themes (void);
	extern int tnccar (int);
	extern int tncchr (int);
	extern int tnc_send (int, int, char *);
	extern int tncin (int);
	extern int tncprog (int, char *);
	extern int tps_cnx (void);
	extern int traite_console (void);
	extern int trait_ver (int, int, int);
	extern int tstqra (char *);
	extern int tst_fwd (char *, int, long, int, int *, int, int);
	extern int tst_passwd (char *);
	extern int tst_point (char *);
	extern int typadmin (int);
	extern int type_admin (int);
	extern int user_ok (void);
	extern int val_fwd (char *, int *, int);
	extern int validation (void);
	extern int via_bbs (char *);
	extern int vidbuf (int, int);
	extern int vide (int, int);
	extern int virt_canal (int);
	extern int voie_forward (int);
	extern int what_port (int);
	extern int where_exms_bid (char *);
	extern int wp_server (void);
	extern int wp_service (char *);
	extern int wr_nobul (long);
	extern int write_bid (unsigned, char *);
	extern int write_exms_string (int, char *);
	extern int write_fich (char *, char *, int);
	extern int write_dir (unsigned, bullist *);
	extern int write_mess (unsigned, long);
	extern int write_mess_temp (unsigned, int);
	extern int write_rej (unsigned record, Rej_rec * rej);
	extern int write_voie (unsigned voie, Svoie * pvoie);
	extern int write_temp (char *, int);
	extern int write_temp_bin (int, int);
	extern int write_wp (unsigned, Wp *);


	extern lcall call2l (char *);

	extern long basic_lzhuf (int mode, char *in_f, char *ou_f);
	extern long btime (void);
	extern long cherche_aide (void);
	extern long cherche_nomess (long);
	extern long copy_fic (int, int, char *);
	extern long date_to_pc (int d3, int n3, int y3, int h3, int m3, int s3);
	extern long date_to_time (char *);
	extern long date_to_second (struct tm *);
	extern long decompress (long);
	extern long fbb_filelength (int);
	extern long file_size (char *);
	extern unsigned long free_disk (int);
	extern long hour_to_time (char *);
	extern long lit_chiffre (int);
	extern long lzhuf (desc_huf *);
	extern long maj_date (int, char *);
	extern long msg_fwd_suiv (int, uchar, uchar, uchar, int);
	extern long next_num (void);
	extern long rd_nobul (void);
	extern long saisie_num (void);
	extern long supp_header (FILE *, int);
	extern long tell_exms_string (int);

	extern mess_noeud *findmess (long);

	extern short chdpt (char *);

	extern struct typ_cbuf *alloue_buffer (void);
	extern struct typ_lfwd *cree_bloc_fwd (struct typ_lfwd *ptr);

	extern unsigned chercoord (char *);
	extern unsigned insarbre (bullist *);
	extern unsigned length_dir (void);
	extern unsigned search_wp_record (lcall, int, unsigned);
	extern unsigned xms_free (void);

	extern unsigned char *ansi_to_ibm(unsigned char *buffer, int len);
	extern unsigned char *ibm_to_ansi(unsigned char *buffer, int len);

	unsigned short xendien (unsigned short);
	unsigned long xendienl (unsigned long);

	extern void accueil_modem (void);
	extern void add_heard (int, indicat *);
	extern void add_wp_trace (int val);
	extern void aff_bas (int, int, char *, int);
	extern void aff_chaine (int, int, int, char *);
	extern void aff_date (void);
	extern void aff_event (int, int);
	extern void aff_ind_console (void);
	extern void aff_forward (void);
	extern void aff_freq (void);
	extern void aff_header (int);
	extern void aff_msg_cons (void);
	extern void aff_rep (int);
	extern void aff_stations (void);
	extern void aff_traite (int voie, int val);
	extern void affich_logo (int);
	extern void affich_pg (int);
	extern void affich_serveurs (int);
	extern void affiche_user (info *, int);
	extern void aide_commandes (void);
	extern void alloue_screen (int);
	extern void analyse_idnt (char *);
	extern void analyse_header (int, char *);
	extern void appel_fwd (Forward *, int);
	extern int appel_serveur (serlist *, bullist *);
	extern void bipper (void);
	extern void bin_transfer (void);
	extern void blank_screen (void);
	extern void break_ok (void);
	extern void break_stop (void);
	extern void boot_prg (void);
	extern void broadcast_list (void);
	extern void cancel (char *);
	extern void carac_satel (void);
	extern void ch_bbs (int, char[NBBBS][7]);
	extern void ch_bit (ind_noeud *, info *, unsigned, char);
	extern void ch_call (void);
	extern void ch_info (void);
	extern void ch_niv1 (int);
	extern void ch_niv2 (int);
	extern void ch_niv3 (int);
	extern void change_dir (void);
	extern void change_droits (int);
	extern void change_scr (void);
	extern void check_bin (bullist *, char *);
	extern void chg_mess (unsigned, long);
	extern void choix (void);
	extern void clear_fwd (long);
	extern void clear_histo (void);
	extern void clear_inbuf (int);
	extern void clear_insert (void);
	extern void clear_outbuf (int);
	extern void close_print (void);
	extern void clear_queue (int voie);
	extern void closecom (void);
	extern void clr_bit_fwd (char *, int);
	extern void cmd_err (char *);
	extern void cmd_export (void);
	extern void cmd_import (void);
	extern void commande_dec (void);
	extern void commande_dos (char *);
	extern void commande_tell (void);
	extern void commande_tnc (void);
	extern void commande_visu (void);
	extern void compress_display (int, long, long);
	extern void connect_fen (void);
	extern void connect_log (int, char *);
	extern void connect_modem (int);
	extern void connexion (int);
	extern void console_off (void);
	extern void console_on (void);
	extern void copyright (void);
	extern void cr (void);
	extern void cr_cond (void);
	extern void create_mess (void);
	extern void cree_bid (void);
	extern void cree_dir (int);
	extern void cree_info (void);
	extern void cree_routes (void);
	extern void cree_sat (void);
	extern void cree_stat (void);
	extern void cron (long);
	extern void ctrl_z (void);
	extern void curoff (void);
	extern void curon (void);
	extern void curseur (void);
	extern void cursor (int);
	extern void dde_huf (int, bullist *, int);
	extern void dde_synchro (char *, long, int);
	extern void dde_warning (int);
	extern void dde_wp (void);
	extern void deb_compute (void);
	extern void deb_io (void);
	extern void debug (char *);
	extern void debug_mode (void);
	extern void debug_wp (char *);
	extern void dec (int, int);
	extern void deconnect_modem (int);
	extern void deconnexion (int, int);
	extern void del_copy (int);
	extern void del_file (void);
	extern void del_part (int, char *);
	extern void del_temp (int);
	extern void delete_bid (char *);
	extern void delete_exms_bid (int);
	extern void deroute_clavier (void);
	extern void deroute_erreur (void);
	extern void deroute_ticker (void);
	extern void deroute_tracker (void);
	extern void deroute_next_task (void);
	extern void deroute_vecteurs (void);
	extern void dir (void);
	extern void display_dsz_perf (int voie);
	extern void display_perf (int);
	extern void display_screen (void);
	extern void doc_path (void);
	extern void documentations (void);
	extern void double_fen (void);
	extern void dos (void);
	extern void droits_serv (void);
	extern void du (void);
	extern void dump_exms (void);
	extern void dump_screen (void);
	extern void duplex_tnc (void);
	extern void dv_beginc (void);
	extern void dv_endc (void);
	extern void dv_pause (void);
	extern void dv_test (void);
	extern void e_edit (int);
	extern void ecran_dos (void);
	extern void ega_close (void);
	extern void ega_open (void);
	extern void edit (void);
	extern void ems_ovr (int);
	extern void en_navant_toute (void);
	extern void end_admin (void);
	extern void end_arbre (void);
	extern void end_bbs (void);
	extern void end_beacon (void);
	extern void end_compute (void);
	extern void end_exms (void);
	extern void end_fwd (void);
	extern void end_hold (void);
	extern void end_lzhuf (void);
	extern void end_messages (void);
	extern void end_mini_edit (void);
	extern void end_modem (void);
	extern void end_parts (void);
	extern void end_ports (void);
	extern void end_pg (void);
	extern void end_swap (void);
	extern void end_textes (void);
	extern void end_themes (void);
	extern void end_voies (void);
	extern void end_watchdog (void);
	extern void end_wp (void);
	extern void entete_envoi_fwd (int);
	extern void entete_fwd (int);
	extern void entete_message (void);
	extern void entete_mess_fwd (bullist *, char *);
	extern void entete_saisie (void);
	extern void env_com_pk (int, int, char *);
	extern void env_com_tnc (int, int, char *);
	extern void env_date (void);
	extern void env_message (void);
	extern void envoi_commande (int, int, char *);
	extern void envoie (int, char, char *);
	extern void err_alloc (unsigned);
	extern void err_init (int);
	extern void exec_pg (void);
	extern void exms_overlay (void);
	extern void exped_wp (char *, char *);
	extern void fbb_clrscr (void);
	extern void fbb_error (unsigned, char *, unsigned);
	extern void fbb_except (unsigned, char *, unsigned);
	extern void fbb_log (int, char, char *);
	extern void fbb_printfiles (FILE *);
	extern void fbb_textattr (int);
	extern void fbb_warning (unsigned, char *, unsigned);
	extern void fen_bas (void);
	extern void fen_haut (int);
	extern void ferme (FILE *, int);
	extern void ferme_dir (void);
	extern void ferme_log (void);
	extern void fin_backscroll (void);
	extern void fin_io (void);
	extern void fin_tnc (void);
	extern void finentete (void);
	extern void flush_wp_cache (void);
	extern void force_deconnexion (int, int);
	extern void free_mem (void);
	extern void free_use (void);
	extern void fwd_cpy (recfwd *, bullist *);
	extern void fwd_encours (void);
	extern void fwd_value (char *, char *, char *);
	extern void get_zrpos (int);
	extern void header_wp (long, char *, char *, char *);
	extern void help (char *);
	extern void house_keeping (void);
	extern void hroute_wp (char *);
	extern void import_message (char *);
	extern void in_buf (int, char *, int);
	extern void indic_modem (void);
	extern void ini_champs (int);
	extern void ini_rec (Wpr *);
	extern void init_bbs (void);
	extern void init_bpq_streams (int);
	extern void init_buf_fwd (void);
	extern void init_buf_rej (void);
	extern void init_buf_swap (void);
	extern void init_debug (unsigned int);
	extern void init_etat (void);
	extern void init_exms (void);
	extern void init_exms_bid (FILE *);
	extern void init_fb_mess (int);
	extern void init_hold (void);
	extern void init_info (info *, indicat *);
	extern void init_kb (void);
	extern void init_keyboard (void);
	extern void init_langue (int);
	extern void init_modem (int);
	extern void init_part (void);
	extern void init_print (void);
	extern void init_rec_fwd (int);
	extern void init_recliste (int);
	extern void init_screen (char *, int, int);
	extern void init_semaine (void);
	extern void init_serveur (char *, int);
	extern void init_space (char *, int, int);
	extern void init_task (void);
	extern void init_timout (int);
	extern void init_voie (int);
	extern void init_watchdog(int val);
	extern void init_wp (void);
	extern void init_wp_cache (void);
	extern void initialisations (void);
	extern void initport (void);
	extern void initexte (void);
	extern void inputs (int, int, char *);
	extern void ins_fwd (bullist *);
	extern void ins_iliste (bullist *);
	extern void inscoord (unsigned, info *, ind_noeud *);
	extern void int14real (RSEGS *);
	extern void int86real (int, RSEGS *);
	extern void interruption (int);
	extern void io (void);
	extern void j_list (char);
	extern void k_tasks (void);
	extern void kernel (void);
	extern void kill_message (char *);
	extern void libere (int);
	extern void libere_bid (void);
	extern void libere_bid_exms (void);
	extern void libere_edit (int);
	extern void libere_xems (void);
	extern void libere_label (int);
	extern void libere_route (int);
	extern void libere_serveurs (void);
	extern void libere_tlist (int);
	extern void libere_tnc (typ_pfwd **);
	extern void libere_tread (int);
	extern void libere_ymodem (int, int);
	extern void libere_zones_allouees (int);
	extern void limite_commande (void);
	extern void list (void);
	extern void list_held (void);
	extern void list_messages (int, unsigned, int);
	extern void list_new (char *);
	extern void list_read (int);
	extern void liste_cnx (void);
	extern void liste_indic (void);
	extern void liste_label (void);
	extern void lit_appel (void);
	extern void lit_sat (satel *);
	extern void load_dirmes (void);
	extern void load_themes (void);
	extern void lonlat (char *, double *, double *);
	extern void m_libere (void *, unsigned int);
	extern void mail_in (void);
	extern void maintenance (void);
	extern void maj_fen (void);
	extern void maj_fwd (void);
	extern void maj_niv (int, int, int);
	extern void maj_options (void);
	extern void maj_rec (long, bullist *);
	extern void majinfo (int, int);
	extern void majfich (int);
	extern void make_bid (void);
	extern void make_dir (void);
	extern void mark_fwd (int voie, char mode);
	extern void mark_reverse_bid (bullist *, int, int *);
	extern void marque_obuf (void);
	extern void MD5String (unsigned char *dest, unsigned char *source);
	extern void mbl_disbul (void);
	extern void mbl_emul (void);
	extern void mbl_info (void);
	extern void mbl_passwd (void);
	extern void mbl_stat (void);
	extern void mbl_tell (void);
	extern void md_defaut (int);
	extern void md_echo (int);
	extern void md_inbuf (int, char *, int);
	extern void md_no_echo (int);
	extern void md_reset (int);
	extern void mess_liste (int);
	extern void menu_principal (void);
	extern void menu_sat (void);
	extern void menu_trajec (void);
	extern void mess_warning (char *, char *, char *);
	extern void mod_part (char *, long, char *);
	extern void modem (void);
	extern void modem_no_echo (int);
	extern void modem_start (int);
	extern void modem_stop (int);
	extern void modif_bloc (void);
	extern void modif_satel (void);
	extern void monitor (int, char *, int);
	extern void music (int);
	extern void my_exception (void);
	extern void n_cpy (int, char *, char *);
	extern void new_fwd (void);
	extern void new_label (void);
	extern void nomenclature (void);
	extern void old_part (char *, char *);
	extern void options (void);
	extern void outs (char *, int);
	extern void out (char *, int);
	extern void out_txt (void);
	extern void outsln (char *, int);
	extern void outln (char *, int);
	extern void ouvre_dir (void);
	extern void ouvre_ecran (void);
	extern void ouvre_log (void);
	extern void p_debug (int, char *);
	extern void paclen_change (int, int, char *);
	extern void param_satel (void);
	extern void param_tnc (int, typ_pfwd **, char *);
	extern void part_recu (bullist *, int, int *);
	extern void passwd_change (void);
	extern void passwd_modem (void);
	extern void pk_commande (int, char *);
	extern void pk_ui (int, char *);
	extern void port_log (int, int, char, char *);
	extern void premier_niveau (void);
	extern void print_part (void);
	extern void print_stack (unsigned int, FILE *);
	extern void print_tasks (void);
	extern void prog_modem (void);
	extern void prog_more (int);
	extern void prog_rev_tnc (int);
	extern void program_fwd (int, int, typ_pfwd **, int);
	extern void program_tnc (int, char *);
	extern void programm_indic (int);
	extern void prompt (int, int);
	extern void prompt_dos (void);
	extern void put_mess_fwd (char);
	extern void put_nr (unsigned char *, int, int);
	extern void put_rose (unsigned char *, int, int);
	extern void q_mark (void);
	extern void qraloc (void);
	extern void rcv_rev_fwd (void);
	extern void re_init_modem (int);
	extern void read_heard (void);
	extern void receive_file (void);
	extern void remet_clavier (void);
	extern void remet_erreur (void);
	extern void remet_ticker (void);
	extern void remet_tracker (void);
	extern void remet_next_task (void);
	extern void remet_bloc (int);
	extern void remet_vecteurs (void);
	extern void remove_dir (void);
	extern void retour_appel (void);
	extern void retour_dir (char);
	extern void set_bs (int voie, int val);
	extern void retour_dos (void);
	extern void retour_mbl (void);
	extern void retour_menu (int);
	extern void retour_niveau (void);
	extern void rewind_fwd (void);
	extern void saisie_infos (void);
	extern void scan_fwd (int val);
	extern void seek_exms_string (int, long);
	extern void selcanal (int);
	extern void selvoie (int);
	extern void send_balise (int);
	extern void send_bin_message (void);
	extern void send_binary_mess (void);
	extern void send_copy (void);
	extern void send_file (int);
	extern void send_list(int);
	extern void send_reply (void);
	extern void send_tnc (int, int);
	extern void send_wp_mess (void);
	extern void sendeot (unsigned char);
	extern void set_binary (int, int);
	extern void set_bit_fwd (char *, int);
	extern void set_busy (void);
	extern void set_call (char *, char *, char, int);
	extern void set_link (int, int);
	extern void sleep_ (unsigned int);
	extern void sortie (void);
	extern void sortie_prg (void);
	extern void start_tasks (void);
	extern void stat_conn (void);
	extern void stat_yapp (void);
	extern void statistiques (void);
	extern void status (int);
	extern void stop_scan_fwd (void);
	extern void stop_main_task (void);
	extern void strn_cpy (int, char *, char *);
	extern void sup_fwd (long, int, uchar);
	extern void supp_env_binaire (int);
	extern void supp_fich (FILE *, long);
	extern void supp_mess (long);
	extern void swap_langue (int, int);
	extern void swap_port (char *);
	extern void t_label (void);
	extern void test_buf_fwd (void);
	extern void test_disque (void);
	extern void test_kb (void);
	extern void test_pactor(int);
	extern void tester_masque (void);
	extern void text_conf (int);
	extern void text_cpy (char *, char *);
	extern void tnc_commande (int, char *, int);
	extern void tnc_s (int, int, char *);
	extern void tncout (int, int);
	extern void tncstr (int, char *, int);
	extern void tor_disc (int);
	extern void tor_stop (int);
	extern void tor_start (int);
	extern void trait (int, char *);
	extern void trait_hor (int);
	extern void traite_commande (int, char *, int);
	extern void traite_data (int, char *, int);
	extern void traite_voie (int);
	extern void trajec (void);
	extern void trajecto (void);
	extern void tst_ack (bullist *);
	extern void tst_appel (void);
	extern void tst_exms_bid (bullist *, int, int *);
	extern void tst_serveur (bullist *);
	extern void tst_sysop (char *, long);
	extern void tst_warning (bullist *);
	extern void user_time_out (void);
	extern void valide_themes (unsigned, int, bullist *);
	extern void valmess (bullist *);
	extern void var_cpy (int, char *);
	extern void w_bid (void);
	extern void w_label (char *, char *);
	extern void watchdog(void);
	extern void while_space (void);
	extern void win_message (int, char *);
	extern void winputs (int, int, char *);
	extern void user_wp (info *);
	extern void wp_message (Wpr *);
	extern void wp_read_mess (bullist *);
	extern void wp_search (void);
	extern void wp_upd (Wpr *, int);
	extern void wr_dir (char *, char *);
	extern void wreq_cfg (FILE * fptr);
	extern void write_capture (char *, int len);
	extern void write_error (char *);
	extern void write_heard (void);
	extern void xmodem (void);
	extern void xmodem_mode (int, int);
	extern void xfwd (void);
	extern void yapp (void);
	extern void yapp_message (int);
	extern void zero_tic (void);

	extern void XMSCall (void);

	extern void *m_alloue (unsigned int);

	extern Wps *wp_find (char *, int);

#ifdef __cplusplus
}								/* extern "C" */
#endif
