mirror of
git://git.psyced.org/git/psyclpc
synced 2024-08-15 03:20:16 +00:00
47 lines
1.6 KiB
C
47 lines
1.6 KiB
C
#ifndef STRFUNS_H_
|
|
#define STRFUNS_H_ 1
|
|
|
|
#include "driver.h"
|
|
#include "typedefs.h"
|
|
|
|
#include <sys/types.h> /* TODO: Does C99 guarantee u_long in here? */
|
|
|
|
/* --- strbuf_t: extendable stringbuffer ---
|
|
*
|
|
* This buffer type allows to construct a string in small steps.
|
|
*/
|
|
|
|
struct strbuf_s
|
|
{
|
|
u_long alloc_len; /* Allocated size */
|
|
u_long length; /* Used size in the string, excl. trailing \0 */
|
|
char *buf; /* The string */
|
|
};
|
|
|
|
#define MAX_STRBUF_LEN (ULONG_MAX-2) /* Max length of a strbuf text */
|
|
|
|
extern void strbuf_zero(strbuf_t * buf);
|
|
extern void strbuf_free(strbuf_t * buf);
|
|
extern void strbuf_add(strbuf_t *buf, const char * text);
|
|
extern void strbuf_addn(strbuf_t *buf, const char * text, size_t len);
|
|
extern void strbuf_addc(strbuf_t *buf, const char ch);
|
|
extern void strbuf_addf(strbuf_t *buf, const char *format, ...);
|
|
extern void strbuf_send(strbuf_t *buf);
|
|
extern void strbuf_store(strbuf_t *buf, svalue_t *svp);
|
|
extern void strbuf_copy (strbuf_t *buf, char *cbuf);
|
|
#define strbuf_length(sbuf) ((sbuf)->length)
|
|
extern string_t * trim_all_spaces (const string_t * txt);
|
|
extern char * xstrncpy(char * dest, const char * src, size_t num);
|
|
|
|
#ifdef HAS_ICONV
|
|
extern svalue_t * f_convert_charset (svalue_t *sp);
|
|
#endif
|
|
extern string_t * intersect_strings (const string_t * left, const string_t * right, Bool bSubtract);
|
|
extern svalue_t * x_map_string (svalue_t *sp, int num_arg);
|
|
extern svalue_t * x_filter_string (svalue_t *sp, int num_arg);
|
|
|
|
#ifdef USE_JSON
|
|
extern void ldmud_json_walker(svalue_t *key, svalue_t *val, void *parent);
|
|
#endif
|
|
|
|
#endif /* STRFUNS_H_ */
|