diff options
Diffstat (limited to 'common/xstring.h')
-rw-r--r-- | common/xstring.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/common/xstring.h b/common/xstring.h new file mode 100644 index 0000000..3be4116 --- /dev/null +++ b/common/xstring.h @@ -0,0 +1,70 @@ +/* + * AUTHOR + * N. Nielsen + * + * VERSION + * 2.1.2b + * + * LICENSE + * This software is in the public domain. + * + * The software is provided "as is", without warranty of any kind, + * express or implied, including but not limited to the warranties + * of merchantability, fitness for a particular purpose, and + * noninfringement. In no event shall the author(s) be liable for any + * claim, damages, or other liability, whether in an action of + * contract, tort, or otherwise, arising from, out of, or in connection + * with the software or the use or other dealings in the software. + * + * SUPPORT + * Send bug reports to: <nielsen@memberwebs.com> + */ + +#ifndef __XSTRING_H__ +#define __XSTRING_H__ + +#include <stdarg.h> + +/* Insert bytes at a memory location */ +void memins(void* buff, size_t cbuff, const void* ins, size_t cins); + +/* Insert string into a string */ +#define strins(buff, ins) \ + memins((byte*)buff, strlen(buff) + 1, (byte*)ins, strlen(ins)) + +/* Replace a number of bytes with other bytes at a memory location */ +void* memrep(void* buff, size_t len, size_t cold, const void* ins, size_t cnew); + +/* Replace a number of chars with a string */ +#define strrep(s, cold, ins) \ + (char*)memrep(s, sizeof(char) * (strlen(s) + 1), cold, ins, strlen(ins)) +#define strnrep(s, cold, ins, cins) \ + (char*)memrep(s, sizeof(char) * (strlen(s) + 1), cold, ins, cins) + +/* Reserve memory in a string. (NOTE: buff must be allocated with malloc) */ +#define strrsrv(buff, cnt) \ + (buff = (char*)realloc(buff, sizeof(char) * ((cnt) + 1))) + + + +/* Get the length of a null terminated string array */ +size_t starlen(const char* array); + +/* Get the end of a null terminated string array */ +char* starend(const char* array); + +/* Add a string to the end of a null terminated string array */ +char* starnadd(char** parray, const char* str, size_t len); +#define staradd(parray, str) \ + starnadd(parray, str, strlen(str)) + +/* Get next value in a null terminated string array */ +const char* starnext(const char* prev); + +/* Clear a null terminated string array */ +#define starclr(arr) \ + (arr[0] = arr[1] = 0) + + + +#endif //__XSTRING_H__
\ No newline at end of file |