|
|
| version 1.1.1.1.2.1, 2010/03/02 15:10:19 | version 1.4, 2010/04/16 13:25:27 |
|---|---|
| Line 29 struct tagIOURL { | Line 29 struct tagIOURL { |
| char *url_reserved; | char *url_reserved; |
| }; | }; |
| struct tagIOCmd { | |
| const char *cmd_name; | |
| int (*cmd_func)(void *, FILE *, char **); | |
| const char *cmd_doc; | |
| const char *cmd_help; | |
| char *(*cmd_comp)(const char *, int); | |
| }; | |
| typedef struct tagIOCmd ioCommands_t; | |
| typedef char *io_CompEntry_t(const char *, int); | |
| typedef char **io_Completion_t(const char *, int, int); | |
| // io_GetErrno() Get error code of last operation | // io_GetErrno() Get error code of last operation |
| inline int io_GetErrno(); | inline int io_GetErrno(); |
| // io_GetError() Get error text of last operation | // io_GetError() Get error text of last operation |
| Line 83 int ioRegexGet(const char *csRegex, const char *csData | Line 96 int ioRegexGet(const char *csRegex, const char *csData |
| char *ioRegexReplace(const char *csRegex, const char *csData, const char *csNew); | char *ioRegexReplace(const char *csRegex, const char *csData, const char *csNew); |
| /* | /* |
| * io_Path2File() Parse and make path/filename pair | |
| * @csArgs = Input argument line | |
| * @psPath = Output Path, if ==NULL path not returned | |
| * @pathLen = Size of path array | |
| * @psFile = Output File | |
| * @fileLen = Size of file array | |
| * return: 0 error format; -1 error:: can`t read; >0 ok, number of readed items | |
| */ | |
| inline int io_Path2File(const char * __restrict csArgs, char * __restrict psPath, int pathLen, | |
| char * __restrict psFile, int fileLen); | |
| /* | |
| * io_MakeAV() Parse and make attribute/value pair | |
| * @csArgs = Input argument line | |
| * @csDelim = Delimiter for separate | |
| * @psAttr = Output Attribute | |
| * @attrLen = Size of attribute array | |
| * @psValue = Output Value, if ==NULL this element not present value or not wanted for return | |
| * @valLen = Size of value array | |
| * return: 0 error format; -1 error:: can`t read; >0 ok, number of readed items | |
| */ | |
| inline int io_MakeAV(const char * __restrict csArgs, const char *csDelim, | |
| char * __restrict psAttr, int attrLen, char * __restrict psValue, int valLen); | |
| /* | |
| * io_SizeArray() Parse and calculate size of array | |
| * @csArgs = Input arguments line | |
| * @csDelim = Delimiter(s) for separate | |
| * return: 0 error format; -1 error:: can`t read; >0 ok, number of items | |
| */ | |
| inline int io_SizeArray(const char *csArgs, const char *csDelim); | |
| /* | |
| * io_MakeArray() Parse and make array of arguments values ... | |
| * (input string will be modified! and output array must be free) | |
| * @psArgs = Input arguments line, after execute string is modified!!! | |
| * @csDelim = Delimiter(s) for separate | |
| * @args = Output array of arguments ... (must be free() after procced function!) | |
| * @nargs = Maximum requested count of arguments from input string psArgs | |
| * return: 0 error format; -1 error:: can`t read; >0 ok, number of readed items | |
| */ | |
| inline int io_MakeArray(char * __restrict psArgs, const char *csDelim, | |
| char *** __restrict args, int nargs); | |
| /* | |
| * io_UnquotStr() Remove quots from input text string | |
| * @psLine = Text string | |
| * return: 0 nothing to do; 1 successful unquoted string | |
| */ | |
| inline int io_UnquotStr(unsigned char *psLine); | |
| /* | |
| * io_LTrimStr() Remove left whitespaces from text string | |
| * @psLine = Text string | |
| * return: 0 nothing to do; !=0 Removed bytes | |
| */ | |
| inline int io_LTrimStr(unsigned char *psLine); | |
| /* | |
| * io_RTrimStr() Remove right whitespaces from text string | |
| * @psLine = Text string | |
| * return: 0 nothing to do; !=0 Removed bytes | |
| */ | |
| inline int io_RTrimStr(unsigned char *psLine); | |
| /* | |
| * io_TrimStr() Remove left and right whitespaces from text string | |
| * @psLine = Text string | |
| * return: 0 nothing to do; !=0 Removed bytes | |
| */ | |
| inline int io_TrimStr(unsigned char *psLine); | |
| /* | |
| * io_Char2Hex() Convert from Char string to Hex string | |
| * @psLine = Text string | |
| * @lineLen = Length of Text string | |
| * return: NULL nothing to do or error; !=0 Allocated new converted string(must be free) | |
| */ | |
| inline char *io_Char2Hex(unsigned char *psLine, int lineLen); | |
| /* | |
| * io_Hex2Char() Convert from Hex string to Char string | |
| * @psLine = Text string | |
| * @lineLen = Length of Text string | |
| * return: NULL nothing to do or error; !=0 Allocated new converted string(must be free) | |
| */ | |
| inline char *io_Hex2Char(unsigned char *psLine, int lineLen); | |
| /* | |
| * ioURLGet() Parse and get data from input URL | * ioURLGet() Parse and get data from input URL |
| * @csURL = Input URL line | * @csURL = Input URL line |
| * @url = Output parsed URL | * @url = Output parsed URL |
| Line 90 char *ioRegexReplace(const char *csRegex, const char * | Line 184 char *ioRegexReplace(const char *csRegex, const char * |
| -1 error:: can`t read; >0 ok, up bits for known elements | -1 error:: can`t read; >0 ok, up bits for known elements |
| */ | */ |
| int ioURLGet(const char *csURL, struct tagIOURL *url); | int ioURLGet(const char *csURL, struct tagIOURL *url); |
| /* | |
| * ioURLGetValue() Get value from parsed URL | |
| * @url = Input parsed URL | |
| * @csAttr = Attribute for search | |
| * @psValue = Return value of attribute, if ==NULL only check for existence of attribute | |
| * @valLen = Size of psValue array | |
| * return: 0 error attribute not find; -1 error:: can`t read; >0 ok, find at position | |
| */ | |
| int ioURLGetValue(struct tagIOURL *url, const char *csAttr, char * __restrict psValue, int valLen); | |
| /* | |
| * ioURLGetFile() Get file from parsed URL | |
| * @url = Input parsed URL | |
| * @psValue = Return filename, if not specified file in url path, replace with / | |
| * @valLen = Size of psValue array | |
| * return: -1 error:: can`t read; 0 ok | |
| */ | |
| int ioURLGetFile(struct tagIOURL *url, char * __restrict psValue, int valLen); | |
| /* | |
| * ioCLIComp() Initialize completion CLI features | |
| * @cmdComplete = Completion function | |
| * @cmdEntry = Compentry function | |
| * return: none | |
| */ | |
| inline void ioCLIComp(io_Completion_t *cmdComplete, io_CompEntry_t *cmdEntry); | |
| /* | |
| * ioCLIExec() Execute CLI main loop | |
| * @cmdList = Commands list | |
| * @out = Output handle | |
| * @csPrompt = Prompt text | |
| * return: -1 error, 0 = exit w/^+D, 1 done. | |
| */ | |
| int ioCLIExec(ioCommands_t *cmdList, FILE *out, const char *csPrompt); | |
| /* | |
| * io_Cmd_Unsupported() Builtin helper function for unsupported commands | |
| * @cmds = Commands list | |
| * @out = Output handle | |
| * @args = Parsed arguments array | |
| * return: -1 error, 0 = ok, 1 exit from Cli! | |
| */ | |
| int io_Cmd_Unsupported(void *cmds, FILE *out, char ** __restrict args); | |
| /* | |
| * io_Cmd_Help() Builtin helper function for Help screen | |
| * @cmds = Commands list | |
| * @out = Output handle | |
| * @args = Parsed arguments array | |
| * return: -1 error, 0 = ok | |
| */ | |
| int io_Cmd_Help(void *cmds, FILE *out, char ** __restrict args); | |
| /* | |
| * io_Cmd_Exit() Builtin helper function for Exit from Cli | |
| * @cmds = Commands list | |
| * @out = Output handle | |
| * @args = Parsed arguments array | |
| * return: 1 exit from Cli! | |
| */ | |
| int io_Cmd_Exit(void *cmds, FILE *out, char ** __restrict args); | |
| /* | |
| * io_Make_Comp_Commands - Declare helper function for Commands completion arguments | |
| */ | |
| #define IO_MAKE_COMP_COMMANDS(FUNC, CMDS) \ | |
| char *FUNC(const char *text, int state) \ | |
| { \ | |
| register int i; \ | |
| int len = strlen(text); \ | |
| for (i = state; CMDS[i].cmd_name; i++) { \ | |
| if (strncmp(CMDS[i].cmd_name, "---", 3) && \ | |
| !strncmp(CMDS[i].cmd_name, text, len)) \ | |
| return strdup(CMDS[i].cmd_name); \ | |
| } \ | |
| return NULL; \ | |
| } | |
| /* | |
| * io_Make_Comp_Args - Declare helper function for Arguments completion | |
| */ | |
| #define IO_MAKE_COMP_ARGS(FUNC, ARGS) \ | |
| char *FUNC(const char *text __attribute__((unused)), int state) \ | |
| { \ | |
| while (ARGS[state]) \ | |
| return strdup(ARGS[state]); \ | |
| return NULL; \ | |
| } | |
| /* | |
| * io_Comp_Filename() Builtin helper function for filename completion arguments | |
| * @text = Text line | |
| * @state = Position state | |
| * return: NULL not found filename, != NULL filename | |
| */ | |
| char *io_Comp_Filename(const char *text, int state); | |
| #endif | #endif |