FLAMCLE/P-API
Command Line Executor/Parser Application Programming Interface
|
Go to the documentation of this file.
794 #ifndef INC_CLEPUTL_H
795 #define INC_CLEPUTL_H
814 #ifndef __PRINTF_CHECK__
815 # define __PRINTF_CHECK__(A,B)
819 #define CLEP_DEFAULT_CCSID_ASCII 819 // "ISO8859-1" Latin-1
820 #define CLEP_DEFAULT_CCSID_EBCDIC 1047 // "IBM-1047" Open Systems Latin-1
823 #define SAFE_FREE(x) do { if ((x) != NULL) {free((void*)(x)); (x)=NULL;} } while(0)
837 # define localtime_r(t,s) localtime(t)
840 # define gmtime_r(t,s) gmtime(t)
843 # define asctime_r(s,b) asctime(s)
846 # define ctime_r(t,b) ctime(t)
849 extern char* windowsversionstring(
char** vstr,
size_t* size);
850 extern int win_setenv(
const char* name,
const char* value);
851 extern int win_unsetenv(
const char* name);
852 # define GETENV(name) getenv((name))
853 # define SETENV(name, value) win_setenv((name), (value))
854 # define UNSETENV(name) win_unsetenv((name))
855 #elif defined (__ZOS__) || defined (__ZOS__)
856 # define GETENV(name) __getenv((name))
857 # define SETENV(name, value) setenv((name), (value), 1)
858 # define UNSETENV(name) unsetenv((name))
860 # define GETENV(name) getenv((name))
861 # define SETENV(name, value) setenv((name), (value), 1)
862 # define UNSETENV(name) unsetenv((name))
865 #define isStr(c) (isprint(c) || (c)==C_TLD || (c)==C_DLR || (c)==C_ATS || (c)==C_BSL || (c)==C_CRT || (c)==C_EXC)
866 #define isKyw(c) (isalnum(c) || (c)=='_')
867 #define isCon(c) (isKyw(c) || (c)=='-' || (c)=='/')
869 #define ISDDNAME(p) (strlen(p)>3 && toupper((p)[0])=='D' && toupper((p)[1])=='D' && (p)[2]==':')
870 #define ISPATHNAME(p) (strchr((p),'/')!=NULL)
871 #define ISDSNAME(p) (strlen(p)>2 && toupper((p)[0])=='/' && toupper((p)[1])=='/')
872 #define ISGDGMBR(m) ((m)[0]=='0' || (m)[0]=='+' || (m)[0]=='-')
873 #define ISDDN(c) (isalnum(c) || (c)==C_DLR || (c)==C_HSH || (c)==C_ATS)
875 extern FILE*
fopen_hfq(
const char* name,
const char* mode);
877 extern FILE*
freopen_hfq(
const char* name,
const char* mode, FILE* stream);
884 # define fopen_tmp() tmpfile()
885 # define fclose_tmp(fp) fclose((fp))
886 # define remove_hfq(n) remove(n)
907 #define CLERTC_MAP 12
910 #define CLERTC_SYN 16
913 #define CLERTC_CMD 20
916 #define CLERTC_INI 24
919 #define CLERTC_CFG 28
922 #define CLERTC_TAB 32
925 #define CLERTC_SYS 36
928 #define CLERTC_ACS 40
931 #define CLERTC_ITF 44
934 #define CLERTC_MEM 48
937 #define CLERTC_FAT 64
940 #define CLERTC_MAX 64
944 static inline unsigned int fnvHash(
const unsigned int uiLen,
const unsigned char* pcDat) {
945 unsigned int uiHsh=0x811C9DC5U;
946 const unsigned char* pcEnd=pcDat+uiLen;
948 uiHsh=(((*pcDat) ^ (uiHsh)) * 0x01000193U);
960 extern char*
userid(
const int size,
char* buffer);
969 extern char*
homedir(
const int flag,
const int size,
char* buffer);
993 extern char*
safe_getenv(
const char* name,
char* buffer,
size_t bufsiz);
1001 extern char*
unEscape(
const char* input,
char* output);
1015 extern int printd(
const char* format,...) __PRINTF_CHECK__(1, 2);
1024 extern
int snprintc(
char* buffer,const
size_t size,const
char* format,...) __PRINTF_CHECK__(3, 4);
1034 extern
int srprintc(
char** buffer,
size_t* size,const
size_t expansion,const
char* format,...) __PRINTF_CHECK__(4, 5);
1044 extern
int srprintf(
char** buffer,
size_t* size,const
size_t expansion,const
char* format,...) __PRINTF_CHECK__(4, 5);
1055 extern
void fprintm(FILE* file,const
char* own, const
char* pgm, const
char* bld, const
char* man, const
int cnt);
1068 extern
int snprintm(
char* buffer,
size_t size, const
char* own, const
char* pgm, const
char* bld, const
char* man, const
int cnt);
1083 extern const
char*
prsdstr(const
char** hdl, const
char* str,
int len);
1090 #define strncpy(...) Error: Do not use strncpy! Use strlcpy instead!
1100 extern size_t strlcpy(
char *dest,
const char *src,
size_t n);
1110 extern char*
getenvar(
const char* name,
const size_t length,
const size_t size,
char*
string);
1126 extern char*
dmapstr(
const char*
string,
int method);
1134 extern char*
dmapxml(
const char*
string,
int method);
1150 extern char*
dmapfil(
const char* file,
int method);
1159 extern char*
maplab(
char* label,
int size,
int toUpper);
1167 extern char*
dmaplab(
const char* label,
int method);
1176 extern char*
cpmapfil(
char* dest,
int size,
const char* source);
1194 extern char*
cpmaplab(
char* label,
int size,
const char* templ,
const char* values,
int toUpper);
1203 extern char*
dcpmaplab(
const char* templ,
const char* values,
int method);
1219 extern const char*
mapl2c(
unsigned isEBCDIC);
1227 extern const char*
lng2ccsd(
const char* pcLang,
unsigned isEbcdic);
1234 extern const char*
mapccsid(
const unsigned int uiCcsId);
1253 const unsigned char* bin,
1255 const unsigned int len);
1267 const unsigned int len);
1279 const unsigned int len);
1291 const unsigned int len);
1303 const unsigned int len);
1314 const unsigned int len);
1325 const unsigned int len);
1337 const unsigned int len);
1348 const unsigned int len);
1359 const unsigned int len);
1383 extern int file2str(
void* hdl,
const char* filename,
char** buf,
int* bufsize,
char* errmsg,
const int msgsiz);
1401 extern int arry2str(
char* array[],
const int count,
const char* separ,
const int separLen,
char** out,
int* outlen);
1436 #define CSTIME_BUFSIZ 24
1438 extern char*
cstime(
signed long long t,
char* p);
1513 extern int ebcdic_srprintc(
char** buffer,
size_t* size,
const size_t expansion,
const char* format, ...);
1514 extern int ebcdic_snprintf(
char*
string,
size_t size,
const char* format, ...);
1515 extern int ebcdic_sprintf(
char*
string,
const char* format, ...);
1516 extern int ebcdic_fprintf(FILE* file,
const char* format, ...);
1518 extern char init_char(
char* p);
1519 extern char* init_string(
char* p);
1521 # define HSH_PBRK "\x7B\x4A\x63\xB1\x69"
1522 # define ATS_PBRK "\x7C\xB5\x80\xEC\x44\xAC"
1524 # define C_EXC ((gsDiaChr.exc[0])?gsDiaChr.exc[0]:init_char(gsDiaChr.exc))
1525 # define C_HSH ((gsDiaChr.hsh[0])?gsDiaChr.hsh[0]:init_char(gsDiaChr.hsh))
1526 # define C_DLR ((gsDiaChr.dlr[0])?gsDiaChr.dlr[0]:init_char(gsDiaChr.dlr))
1527 # define C_ATS ((gsDiaChr.ats[0])?gsDiaChr.ats[0]:init_char(gsDiaChr.ats))
1528 # define C_SBO ((gsDiaChr.sbo[0])?gsDiaChr.sbo[0]:init_char(gsDiaChr.sbo))
1529 # define C_BSL ((gsDiaChr.bsl[0])?gsDiaChr.bsl[0]:init_char(gsDiaChr.bsl))
1530 # define C_SBC ((gsDiaChr.sbc[0])?gsDiaChr.sbc[0]:init_char(gsDiaChr.sbc))
1531 # define C_CRT ((gsDiaChr.sbo[0])?gsDiaChr.crt[0]:init_char(gsDiaChr.crt))
1532 # define C_GRV ((gsDiaChr.grv[0])?gsDiaChr.grv[0]:init_char(gsDiaChr.grv))
1533 # define C_CBO ((gsDiaChr.cbo[0])?gsDiaChr.cbo[0]:init_char(gsDiaChr.cbo))
1534 # define C_VBR ((gsDiaChr.vbr[0])?gsDiaChr.vbr[0]:init_char(gsDiaChr.vbr))
1535 # define C_CBC ((gsDiaChr.cbc[0])?gsDiaChr.cbc[0]:init_char(gsDiaChr.cbc))
1536 # define C_TLD ((gsDiaChr.tld[0])?gsDiaChr.tld[0]:init_char(gsDiaChr.tld))
1537 # define S_EXC ((gsDiaChr.exc[0])?gsDiaChr.exc:init_string(gsDiaChr.exc))
1538 # define S_HSH ((gsDiaChr.hsh[0])?gsDiaChr.hsh:init_string(gsDiaChr.hsh))
1539 # define S_DLR ((gsDiaChr.dlr[0])?gsDiaChr.dlr:init_string(gsDiaChr.dlr))
1540 # define S_ATS ((gsDiaChr.ats[0])?gsDiaChr.ats:init_string(gsDiaChr.ats))
1541 # define S_SBO ((gsDiaChr.sbo[0])?gsDiaChr.sbo:init_string(gsDiaChr.sbo))
1542 # define S_BSL ((gsDiaChr.bsl[0])?gsDiaChr.bsl:init_string(gsDiaChr.bsl))
1543 # define S_SBC ((gsDiaChr.sbc[0])?gsDiaChr.sbc:init_string(gsDiaChr.sbc))
1544 # define S_CRT ((gsDiaChr.sbo[0])?gsDiaChr.crt:init_string(gsDiaChr.crt))
1545 # define S_GRV ((gsDiaChr.grv[0])?gsDiaChr.grv:init_string(gsDiaChr.grv))
1546 # define S_CBO ((gsDiaChr.cbo[0])?gsDiaChr.cbo:init_string(gsDiaChr.cbo))
1547 # define S_VBR ((gsDiaChr.vbr[0])?gsDiaChr.vbr:init_string(gsDiaChr.vbr))
1548 # define S_CBC ((gsDiaChr.cbc[0])?gsDiaChr.cbc:init_string(gsDiaChr.cbc))
1549 # define S_TLD ((gsDiaChr.tld[0])?gsDiaChr.tld:init_string(gsDiaChr.tld))
1550 # define S_SVB ((gsDiaChr.svb[0])?gsDiaChr.svb:init_string(gsDiaChr.svb))
1551 # define S_SBS ((gsDiaChr.sbs[0])?gsDiaChr.sbs:init_string(gsDiaChr.sbs))
1552 # define S_IDT ((gsDiaChr.idt[0])?gsDiaChr.idt:init_string(gsDiaChr.idt))
1554 # define esrprintc ebcdic_srprintc
1555 # define esnprintf ebcdic_snprintf
1556 # define esprintf ebcdic_sprintf
1557 # define efprintf ebcdic_fprintf
1561 # define HSH_PBRK "#"
1562 # define ATS_PBRK "@"
1591 # define S_SBS "/\\"
1592 # define S_IDT "--|"
1594 # define esrprintc srprintc
1595 # define esnprintf snprintf
1596 # define esprintf sprintf
1597 # define efprintf fprintf
struct EnVarList TsEnVarList
unsigned int asc2chr(const char *asc, char *chr, const unsigned int len)
int printd(const char *format,...) __PRINTF_CHECK__(1
char * cstime(signed long long t, char *p)
int strxcmp(const int ca, const char *s1, const char *s2, const int n, const int c, const int f)
char exc[4]
Reset list structure of environment variables .
Definition: CLEPUTL.h:1489
void init_diachr(TsDiaChr *psDiaChr, const unsigned int uiCcsId)
char * maplab(char *label, int size, int toUpper)
FILE * fopen_hfq_nowarn(const char *name, const char *mode)
unsigned int ebc2chr(const char *ebc, char *chr, const unsigned int len)
int int int int void fprintm(FILE *file, const char *own, const char *pgm, const char *bld, const char *man, const int cnt)
char * homedir(const int flag, const int size, char *buffer)
int readEnvars(const char *pcFil, FILE *pfOut, FILE *pfErr, TsEnVarList **ppList)
int envarInsert(TsEnVarList **ppList, const char *pcName, const char *pcValue)
char * dmapfil(const char *file, int method)
#define fclose_tmp(fp)
Definition: CLEPUTL.h:885
char dlr[4]
Definition: CLEPUTL.h:1491
#define remove_hfq(n)
Definition: CLEPUTL.h:886
#define fopen_tmp()
Definition: CLEPUTL.h:884
int resetEnvars(TsEnVarList **ppList)
struct EnVarList * psNext
Definition: CLEPUTL.h:831
const char * mapccsid(const unsigned int uiCcsId)
Definition: CLEPUTL.h:825
FILE * freopen_hfq(const char *name, const char *mode, FILE *stream)
char idt[4]
Definition: CLEPUTL.h:1504
char sbc[4]
Definition: CLEPUTL.h:1495
char * dcpmaplab(const char *templ, const char *values, int method)
unsigned int mapcdstr(const char *p)
char hsh[4]
Definition: CLEPUTL.h:1490
unsigned int hex2bin(const char *hex, unsigned char *bin, const unsigned int len)
char * mapfil(char *file, int size)
size_t strlcpy(char *dest, const char *src, size_t n)
void asc_chr(const char *asc, char *chr, const unsigned int len)
char * safe_getenv(const char *name, char *buffer, size_t bufsiz)
char cbo[4]
Definition: CLEPUTL.h:1498
char * dynUnEscape(const char *input)
char vbr[4]
Definition: CLEPUTL.h:1499
const char * mapl2c(unsigned isEBCDIC)
char sbo[4]
Definition: CLEPUTL.h:1493
char * dmaplab(const char *label, int method)
char * userid(const int size, char *buffer)
char * mapstr(char *string, int size)
char * dmapxml(const char *string, int method)
unsigned int chr2asc(const char *chr, char *asc, const unsigned int len)
void chr_asc(const char *chr, char *asc, const unsigned int len)
int arry2str(char *array[], const int count, const char *separ, const int separLen, char **out, int *outlen)
char tld[4]
Definition: CLEPUTL.h:1501
Definition: CLEPUTL.h:1485
char * pcName
Environment variable list .
Definition: CLEPUTL.h:829
int loadEnvars(const unsigned int uiLen, const char *pcBuf, FILE *pfOut, FILE *pfErr, TsEnVarList **ppList)
int file2str(void *hdl, const char *filename, char **buf, int *bufsize, char *errmsg, const int msgsiz)
unsigned int chr2ebc(const char *chr, char *ebc, const unsigned int len)
void ebc_chr(const char *ebc, char *chr, const unsigned int len)
int int int srprintc(char **buffer, size_t *size, const size_t expansion, const char *format,...) __PRINTF_CHECK__(4
unsigned int bin2hex(const unsigned char *bin, char *hex, const unsigned int len)
unsigned int localccsid(void)
const char * prsdstr(const char **hdl, const char *str, int len)
long long getFileSize(const char *name)
char cbc[4]
Definition: CLEPUTL.h:1500
char * dhomedir(const int flag)
char * dmapstr(const char *string, int method)
void chr_ebc(const char *chr, char *ebc, const unsigned int len)
char * dcpmapfil(const char *file)
char bsl[4]
Definition: CLEPUTL.h:1494
char sbs[4]
Definition: CLEPUTL.h:1503
int snprintm(char *buffer, size_t size, const char *own, const char *pgm, const char *bld, const char *man, const int cnt)
char * cpmaplab(char *label, int size, const char *templ, const char *values, int toUpper)
char * unEscape(const char *input, char *output)
char crt[4]
Definition: CLEPUTL.h:1496
char grv[4]
Definition: CLEPUTL.h:1497
char * cpmapfil(char *dest, int size, const char *source)
char ats[4]
Definition: CLEPUTL.h:1492
FILE * fopen_hfq(const char *name, const char *mode)
char svb[4]
Definition: CLEPUTL.h:1502
char * getenvar(const char *name, const size_t length, const size_t size, char *string)
int int int int srprintf(char **buffer, size_t *size, const size_t expansion, const char *format,...) __PRINTF_CHECK__(4
char * pcValue
Definition: CLEPUTL.h:830
const char * lng2ccsd(const char *pcLang, unsigned isEbcdic)
int int snprintc(char *buffer, const size_t size, const char *format,...) __PRINTF_CHECK__(3