00001 #ifndef IOTOOLS_H
00002 #define IOTOOLS_H
00003 #include "xfile.h"
00004 #include "kwdset.h"
00005
00006
00007
00008
00009
00010 void print_err(const char *emsg, const char *errfile, int errln, const char *errfunc, ...);
00011
00012
00013 void print_warning(const char *wmsg, const char *warnfile, int warnln, const char *warnfunc, ...);
00014
00015
00016 void par_print_err(int n,const char *emsg, const char *errfile, int errln, const char *errfunc, ...);
00017
00018
00019 void par_print_err(int n,const char *pname, const char *emsg, const char *errfile, int errln, const char *errfunc, ...);
00020
00021
00022 XFILE *xfopen(const char *name, const char *mode);
00023
00024
00025 int xfclose(XFILE *&f);
00026
00027
00028 long getkwd_sect(XFILE *in,char *lnstr, char *&aptr,char * apar, long detect_allkwd);
00029
00030
00031 char *locate_kwd(char *lnstr,const char *kwd, long ignorecase, long &noc);
00032
00033
00034 long xfdetect_sect(XFILE* f, const kwdset &kwdb, const kwdset &kwde);
00035
00036
00037 void xf_resetsec(XFILE *f);
00038
00039
00040 long xf_setsec(XFILE *f, enumstr sec_alias);
00041
00042
00043 long xf_setsec(XFILE *f, long sec_id);
00044
00045
00046 void xf_copysec(XFILE *f, FILE *out);
00047
00048
00049 int xfscanf(XFILE *in,char *fmt, ...);
00050
00051
00052 long get_modif(const char *fmt, const char *pconv, const char *modif, int modifl);
00053
00054
00055 long proc_new_ln_fmt(XFILE *out, const char *fmt);
00056
00057
00058 void clearcomments(char *lnstr);
00059
00060
00061 long checkfmt(const char *fmt);
00062
00063
00064 long checkint(const char *lnstr);
00065
00066
00067 long checkuint(const char *lnstr);
00068
00069
00070 long checkouint(const char *lnstr);
00071
00072
00073 long checkxuint(const char *lnstr);
00074
00075
00076 long checkreal(const char *lnstr);
00077
00078
00079 long check_asterisk(const char *fmt);
00080
00081
00082 long check_maxlnsize(XFILE *in, long fbr);
00083
00084
00085 void gettypes(char *fmt, char *types, char** ptypes, long nvar);
00086
00087
00088 void getsubfmt(const char *fmt, char *subfmt,long bc);
00089
00090
00091 void getsubfmt(const char *fmt, char *subfmt, char **pconv, long bc);
00092
00093
00094 long checkfmt(const char *fmt);
00095
00096
00097 void clearcomments(char *lnstr);
00098
00099
00100 long isemptystr(const char *lnstr,const char *filter);
00101
00102
00103 void checkfeof(XFILE *in, const char *fmt, long idt, const char *ptype, char *subfmt, char *types, void *apar,
00104 const char *errfile, int errline, const char *errfunc);
00105
00106
00107 void checkeos(XFILE *in,char *fmt, long idt,char *ptype,char *subfmt, char *types, void *apar,
00108 char *errfile, int errline, const char *errfunc);
00109
00110
00111 long check_feof_eos(XFILE *in);
00112
00113
00114 long checkscanferr(XFILE *in, long ret, long reqret, long war, const char *partmsg,
00115 const char *fmt, char *subfmt, long idt, const char *ptype, const char *errfile,
00116 int errline, const char *errfunc);
00117
00118 void cut_str_sec(XFILE *in, char *lnstr);
00119
00120
00121 long getkwd(XFILE *in,char *lnstr, char *&aptr,char *apar, unsigned int &br);
00122
00123
00124 long getenum(const char *lnstr, kwdset *akwdset, int *apar, unsigned int &br, long &war, int handlingr, long ignorecase);
00125
00126
00127 long matchekwd(const char *ekwd, kwdset *akwdset, int *apar, long ignorecase);
00128
00129
00130 long matchekwdint(int *apar, kwdset *akwdset);
00131
00132
00133 long checkenumerr(XFILE *in, long ret, long reqret, long war, kwdset *akwdset,
00134 const char *fmt, char *subfmt, long idt, const char *ptype, const char *errfile,
00135 int errline, const char *errfunc);
00136
00137
00138 const char *strstr(const char *haystack, const char *needle, long ignorecase);
00139 char *strstr(char *haystack, const char *needle, long ignorecase);
00140
00141
00142 char *strstrcis(char *haystack, const char *needle);
00143 const char *strstrcis(const char *haystack, const char *needle);
00144
00145
00146 void skipline(XFILE *in);
00147
00148
00149 char *proc_ord_fmt(XFILE *in, char *fmt, char *fmt_end, char *lnstr, char *&astr);
00150
00151
00152 long skip_space(XFILE *in, char *lnstr, char *&astr);
00153
00154
00155 long check_newline_fmt(char *fmt);
00156
00157
00158 long detect_multln(char *astr);
00159
00160
00161 long a_fmt_skips_whitespaces(char *fmt);
00162
00163
00164 void filename_decomposition (const char *file,char *&path,char *&name,char *&suffix);
00165 #endif