/**************** txf.h *******************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <jctype.h>
#include <jstring.h>
#include <dos.h>
#include <io.h>
#include <fcntl.h>
#include <math.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <farstr.h>

#define NUL '\0'
#define TAB 0x09
#define RET 0x0A
#define CR  0x0D
#define LF  0x0A
#define TRUE  1
#define FALSE 0

#define MAX_STR 9
#define EX_MAX 300
#define PARA_MAX 3000
#define KFL_MAX 160
#define KQ__MAX 80
#define NP_DEL  4

#ifdef MAIN
int  tmpinfile=-1;
char inputfile[80];		/*	-i	*/
char outputfile[80];	/*	-o	*/
char wcfile[80];		/*	-io	*/
char bakfile[80];		/*	-rb	*/
int  tabsize=8;			/*	-t	*/
int  tabx=0;			/*	-x	tab“WŠJ	*/
int  maxc=76;			/*	-l	*/
int  cent=0;			/*	-c	*/
int  left=-1;			/*	-ml	*/
int  right=-1;			/*	-mr	*/
int  retflg=0;			/*	-r	*/
int  quoteflg=0;		/*	-q	ˆø—p•¶	*/
int  base=-1;			/*	-b	*/
char tfile[2][64];		/*	-d	*/
int  exflg=0;			/*	-e	*/
int  format=1;			/*	-n,-f	*/
int  viewmode=0;		/*	-v	*/
char sep=0x22;			/*	-s	*/
int  removeeofflg=0;	/*	-rz	*/
int  removebakfile=0;	/*	-rb	*/
int  useoldex=0;		/*	-ep,-es	*/
int  setline=0;			/*  -z	*/
int  ishflg = 0;
int  ishline = 0;
int  ishmax = 0;
char *ishptr;
char linestr[8];
char quotemarker[20] = "";
char quoteend[20] = "";
unsigned long starttxf = 0L;
unsigned long endtxf = 0L;
int read_def_flg = 1;
int command_option = 0;

char far *exold[EX_MAX], far *exnew[EX_MAX], far *exattr[EX_MAX];
char far *exptr[EX_MAX], far *exattrptr[EX_MAX];				/*	-e	*/
char far *para[PARA_MAX];
char *kl, *kf, *kq;
char ishchr[80] = "%&')+,?/2456789:;<=>ABCDEFGHIKLNORTUVWXYZ[\\]^abcdefghijklmnpqrstuvxyz|¡£";
char ishhead1[36] = "<<< ^2( use ish^1) [ ^1 lines ] >>>";
char ishhead2[28] = "--- ^2 (12345/12345) ---";
#if 0
char kl[KFL_MAX]="),.>}]¡¤!? ABCDjnp„£vtxzIH@";	/*	-kl	*/
char kf[KFL_MAX]="([{¢imoƒuswy";						/*	-kf	*/
char kq[KQ__MAX]=">„";											/*	-kq	*/
#endif

int quote=0;
char *basedir;
FILE *input,*output;
int outputh, inputh;
signed long fsize;
unsigned int rbufsize = 65530;

long int totalret=0;	/*	used by LCX	*/
long int totalretx=0;	/*	used by LCX	*/
long int totalsize=0;	/*	used by LCX	*/

#if !TXFL

char sfstr[MAX_STR][48]={
	"*:‚¨’m‚ç‚¹            *:ŒfŽ¦”Â      *:“dŽq‰ï‹c",
	"FORUM:","„GO ",
	"| LIB ","LIB:",
	"ID (‰üs‚Ì‚ÝFŽ©•ª‚ÌHP)\r\nF",
	"HP:",
	"ID (‰üs‚Ì‚ÝFŽ©•ª‚ÌƒpƒeƒBƒI)\r\nF",
	"PATIO:"
	};
char *pfstr[MAX_STR] = {
	NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
/*                       0         1         2         3         4         5*/
/*                       0123456789012345678901234567890123456789012345678901234567890 */
char logstr_mes1[30]   ="%%   %%%%% ( %%%)   %%/%%   ";
char logstr_mes2[15]   ="- ^4MES(%%):";
char logstr_mes3[41]   ="%%%/%%%   ***%%%%%  $$$$$$$$$$$$$$$$  ";
char logstr_mes4[42]   ="%%%%%/%%%%% ***%%%%%  $$$$$$$$$$$$$$$$ ";
char logstr_dlib[42]   ="%%%%$ ***%%%%% %%/%%/%% %%%%%%% %%%% * ";
char logstr_wftowns[6] ="  #%";
char logstr_hp[40]     ="%%%  [%%/%%/%% %%:%%]  ***%%%%%      ";
char logstr_mail[44]   ="%% $$$$$$$$$$$$$$$$$  ***%%%%%  %%/%% %%:%%";
char logstr_mail2[56]  ="%% $$$$$$$$$$$$$$$$$  ***%%%%%          %%/%%/%% %%:%%";
char logstr_pcvm[44]   ="%%  -              PCV>***%%%%% %%/%% %%:%%";
char logstr_wide[44]   ="%%  WIDE GATE         ***%%%%%  %%/%% %%:%%";
#if 0
char logstr_ffmtop[22] ="^1/%%[^1]^3(DL%%-%%%";
#endif
char logstr_fravtop[16]="%%/%% DL%% #%%%";
char logstr_ffsutop[72]="%%/%%$$$$$$$$$$$ $$$$$$$$.$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$ ***%%%%% ($%-";

/*

- FFMHOB  MES(20):yŒð —¬zŽ©ŒÈÐ‰î‚ÌêAw–³ß‘‘x‘æ10ŠÙ 92/05/13 -
- FTOWNS1  MES( 7):‚f‚‚‚…‚’f‚“@‚p•‚`(‚Q) 92/05/13 -
20     919 (   5)   05/13   yŒð —¬zŽ©ŒÈÐ‰î‚ÌêAw–³ß‘‘x‘æ10ŠÙ
005/005   XXX00000  ƒnƒ“ƒhƒ‹@@@@  ƒXƒgƒbƒN‰ï‹cŽº‚É‚à
( 3)   92/09/25 23:08
01453/01453 PFG02442  ’†’J@—F•F@@@ ƒeƒXƒgô‚Ä‚·‚Æô
( 2)   92/09/22 22:56

ID (‰üs‚Ì‚ÝFŽ©•ª‚ÌHP)
FPEE01244
ƒpƒXƒ[ƒh
F
20     999 (   0)   05/16   mŒð —¬nŽ©ŒÈÐ‰î‚ÌêAw–³ß‘‘x‘æ10ŠÙ
 250  PFG02442 92/04/05   25408   25 B TXF136E .EXE Ã·½ÄÌ§²Ù Ì«°Ï¯À Ver1.36e
12/12[TOWNS] ‚Ú‚Þ‚Ú‚Þ                 (DL 5-433)
12/08[TOWNS]  ”wŒi‰æƒ‰ƒ“ƒ_ƒ€ƒZƒŒƒNƒ^[     (DL 4-222)
08/31 Tue DL04 #349 ‚Ò[              jI@‚e‚q‚`‚u

120  [92/05/16 21:14]  PEE01244      CATLOG.EXPŽg‚Á‚Ä‚Ý‚Ü‚µ‚½ƒYama-chan
09/22 [DOS”Ä]    XTR150DF.LZH Ã·½Ä®Œ`Â°ÙXTR V1.50d/ÌÙ¾¯Ä MHD00147 (#5- 32)
-------------------------------------------------------------------------------
 6  -              PCV>ZZZ99999 04/01 07:29
    ‘è–¼FPC-VAN‚©‚ç‚ÌƒeƒXƒg‚¾‚æ`‚ñ

PCVAN-Message-Id: #05121046
PCVAN-Date: 93/04/01 07:21:12
-------------------------------------------------------------------------------
 1  -              PCV>ZZZ00000 04/01 15:05
    ‘è–¼FHELLO

PCVAN-Message-Id: #05121811
PCVAN-Date: 93/04/01 12:45:16
-------------------------------------------------------------------------------
 4  WIDE GATE         WID00100  03/22 09:19
    ‘è–¼FMAIL from WIDE for FAPX

Date: Mon, 22 Mar 93 08:56:23 JST
From: nakatani@xxx.fujitsu.or.jp
To: PEE01244@niftyserve.or.jp
Cc: PEA03123@niftyserve.or.jp
-------------------------------------------------------------------------------
*/


long int log_tline=0;
char log_fname[16]="UNKNOWN";
char log_pname[16]="";
char log_idstr[16]="        ";
char log_libstr[4];
int  log_downno;
char log_downname[16]="";
char log_docfile[16]="";
char log_titlestr[48];
char log_resstr[16]="";
char log_resp[12]="        ";
char log_handle[20]="                ";
int  log_hpstyle = 0;
int  log_mesno;
char log_reply[8];
char *log_bufptr;

char filechr[32]={0,0,0,0,0x5f,0x086,0x0ff,0x0c0,0x0ff,0x0ff,0x0ff,0x0e3,0x0ff,
					0x0ff,0x0ff,0x0f6,0,0,0,0,0x03,0x0ff,0x0ff,0x0ff,0x0ff,
					0x0ff,0x0ff,0x0ff,0,0,0,0};

char npcut_front[4]  ={0x1b,0x26,0x36,0x41};
char npcut_tellstr[5]={0x1b,0x26,0x36,0x40,0};
char npcut_nifend[21]={ 0x18,0x1f,0x40,0x40,0x0e,0x20,0x7f,0x7f,0x21,0x4c,
						0x3e,0x44,0x3c,0x40,0x40,0x40,0x40,0x20,0x68,0x40,0};
char npcut_niffirst[9]={0x1b,0x23,0x33,0x1b,0x33,0x1b,0x26,0x32,0};
char npcut_weather[10]={0x1b,0x2d,0x57,0x0e,0x21,0x4c,0x20,0x68,0x40,0};
int weatherflg = 0;
int make_val = 0 ;
#endif

time_t ftime[2];

/* use commandfile */

char far *fbuf;
int fbufsize=0,fbufptr=0;

#endif

extern int  tmpinfile;
extern char inputfile[80];		/*	-i	*/
extern char outputfile[80];	/*	-o	*/
extern char wcfile[80];		/*	-io	*/
extern char bakfile[80];		/*	-rb	*/
extern int  tabsize;			/*	-t	*/
extern int  tabx;			/*	-x	tab“WŠJ	*/
extern int  maxc;			/*	-l	*/
extern int  cent;			/*	-c	*/
extern int  left;			/*	-ml	*/
extern int  right;			/*	-mr	*/
extern int  retflg;			/*	-r	*/
extern int  quoteflg;		/*	-q	ˆø—p•¶	*/
extern int  base;			/*	-b	*/
extern char tfile[2][64];		/*	-d	*/
extern int  exflg;			/*	-e	*/
extern int  format;			/*	-n,-f	*/
extern int  viewmode;		/*	-v	*/
extern char sep;			/*	-s	*/
extern int  removeeofflg;	/*	-rz	*/
extern int  removebakfile;	/*	-rb	*/
extern int  useoldex;		/*	-ep,-es	*/
extern int  setline;		/*  -z	*/
extern int  ishflg;
extern int  ishline;
extern int  ishmax;
extern char *ishptr;
extern char linestr[8];
extern char quotemarker[20];
extern char quoteend[20];
extern unsigned long starttxf;
extern unsigned long endtxf;
extern int read_def_flg;
extern int command_option;

extern char far *exold[], far *exnew[], far *exattr[];
extern char far *exptr[], far *exattrptr[];/*	-e	*/
extern char far *para[];

extern char *kl, *kf, *kq;
extern char ishchr[80];
extern char ishhead1[36];
extern char ishhead2[28];
#if 0
extern char kl[];			/*	-kl	*/
extern char kf[];				/*	-kf	*/
extern char kq[];				/*	-kq	*/
#endif

extern int  quote;
extern char *basedir;
extern FILE *input,*output;
extern int outputh, inputh;
extern signed long fsize;
extern unsigned int rbufsize;

extern long int totalret;	/*	used by LCX	*/
extern long int totalretx;	/*	used by LCX	*/
extern long int totalsize;	/*	used by LCX	*/

#if !TXFL
extern char sfstr[MAX_STR][48];
extern char *pfstr[MAX_STR];
extern char *dlib_bufptr;
extern long int log_tline;
extern char log_fname[16];
extern char log_pname[16];
extern char log_idstr[16];
extern char log_libstr[4];
extern int  log_downno;
extern char log_downname[16];
extern char log_docfile[16];
extern char log_titlestr[48];
extern char log_resstr[16];
extern char log_resp[12];
extern char log_handle[20];
extern int  log_hpstyle;
extern int  log_mesno;
extern char log_reply[8];
extern char *log_bufptr;

extern char logstr_mes1[30];
extern char logstr_mes2[15];
extern char logstr_mes3[41];
extern char logstr_mes4[42];
extern char logstr_dlib[42];
extern char logstr_wftowns[6];
extern char logstr_hp[40];
extern char logstr_mail[44];
extern char logstr_mail2[56];
extern char logstr_pcvm[44];
extern char logstr_wide[44];
extern char logstr_ffmtop[22];
extern char logstr_fravtop[16];
extern char logstr_ffsutop[72];


extern char filechr[32];
extern char npcut_front[4];
extern char npcut_tellstr[5];
extern char npcut_nifend[21];
extern char npcut_niffirst[9];
extern char npcut_weather[10];
extern int  weatherflg;
extern int  make_val;

#endif

extern time_t ftime[2];
extern char far *fbuf;
extern int  fbufsize,fbufptr;

/*  external function */

void logs(void);
void read_def(char *own);
void savemem(char chr);
void read_commandfile(char *commandfile, int level);
void savesw(int base);
int hex(char far *str);
char far *ftrans(char far *form);
int quotechk(char far *ptr);
char *strspc(char *ptr, char find);
char *ktrans(char far *str);
void init_allswitch();
void gettmpfile();
void exchange();
void exchangedriver();
void old_exchange(char far *st1,char far *st2);
void old_exchangedriver();
void mktfilename();
void input_to_output();
void tfileopen(int i);
int wcchk();
void errexit(char *errmes);
void logicerr(char *str);
void credit(char *name);
char *get_filename(char *wildcard);
void lcx (char *lcxinputfile);
void lcxdriver(char far **param);
void logfindstr();
void loginit();
void logdriver(char far **val);
int matchstr(char *form, char far *txtptr);
int linestyle();
void get_forum(int type);
void get_libno(int type);
void get_titlestr();
void meschk(int style);
char *setdataexp(char kind);
void dlibchk(int style);
#if 0
void ffmtopchk();
#endif
void fravtopchk();
void ffsutopchk();
void hpchk();
void mailchk(int style);
void widegatechk();
void setdefault();
void init(char *name);
void txf();
void endoftxf();
int main(int argc, char **argv);
void result();
void make_new_name(char *tellptr);
int findfront();
int findtell(int endflg);
void npcut();
void npcutinit();
void npcutdriver(char far **val);
void setleft();
void setleft0();
int findret(int ox, int iy, char far *rptr);
int putret(int ox, char far *rptr);
int putspace(int num, FILE *file);
/*int putspace(int num, unsigned int handle);*/
int linelen(char far *ptr);
int levelchk(unsigned long int line);
int ishchk(char far *ptr);
void txform(void);
void removeeof();
void case_k(char c, char far *str);
void case_r(char c);
void case_e(char c);
void swchk(int count, char far **val);

char far *buffileopen(int i);
char far *readnext(int val);
/*char *readbefore(int val);*/
long int remainbyte();
void bufclose();
int chktouch(char far *rptr, int iy);
char *nrcpy(char far *fstr);
void showswitch();
