diff -r 1c859f572d72 -r 240620f46dd7 project_files/frontlib/util/util.h --- a/project_files/frontlib/util/util.h Tue Jun 12 21:10:11 2012 +0200 +++ b/project_files/frontlib/util/util.h Fri Jun 15 19:57:25 2012 +0200 @@ -3,6 +3,7 @@ #include #include +#include /** * Prints a format string to a newly allocated buffer of the required size. @@ -46,6 +47,12 @@ void *flib_calloc(size_t count, size_t elementsize); /** + * Simple realloc wrapper that automatically logs an error if no memory + * is available. Otherwise behaves exactly like realloc. + */ +void *flib_realloc(void *ptr, size_t size); + +/** * Replace all non-alphanumeric and non-ascii bytes with escape * sequences in the form %XX. Does not modify the original string, * but returns a newly allocated one that must be free()d. Returns @@ -56,6 +63,17 @@ char *flib_urlencode(const char *str); /** + * Replace some bytes with escape sequences in the form %XX. + * Does not modify the original string, but returns a newly allocated + * one that must be free()d. + * + * All bytes for which the predicate function returns true are escaped. + * + * Returns null on failure or if null was passed as argument. + */ +char *flib_urlencode_pred(const char *str, bool (*needsEscaping)(char c)); + +/** * Replace escape sequences of the form %XX with their byte values. * Does not modify the original string, but returns a newly allocated * one that must be free()d. Returns null on failure or if null was