From 066ecfcbfb0b7120183338c5382e98c609a9d89a Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 30 Dec 2013 20:28:32 +0100 Subject: common: simplify and optimize string escape parsing This code is shared between input.conf parser and option parser. Until now, the performance didn't really matter. But I want to use this code for JSON parsing too, and since JSON will have to be parsed a lot, it should probably try to avoid realloc'ing too much. This commit moves parsing of C-style escaped strings into a common function, and allows using it in a way realloc can be completely avoided, if the already allocated buffer is large enough. --- common/common.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'common/common.h') diff --git a/common/common.h b/common/common.h index ae2fb8f2d5..7ae18d1b6f 100644 --- a/common/common.h +++ b/common/common.h @@ -76,6 +76,12 @@ bool mp_rect_intersection(struct mp_rect *rc, const struct mp_rect *rc2); char *mp_append_utf8_buffer(char *buffer, uint32_t codepoint); struct bstr; -bool mp_parse_escape(struct bstr *code, char **str); + +void mp_append_utf8_bstr(void *talloc_ctx, struct bstr *buf, uint32_t codepoint); + +bool mp_append_escaped_string_noalloc(void *talloc_ctx, struct bstr *dst, + struct bstr *src); +bool mp_append_escaped_string(void *talloc_ctx, struct bstr *dst, + struct bstr *src); #endif /* MPLAYER_MPCOMMON_H */ -- cgit v1.2.3