summaryrefslogtreecommitdiffstats
path: root/libass/ass_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'libass/ass_utils.c')
-rw-r--r--libass/ass_utils.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/libass/ass_utils.c b/libass/ass_utils.c
index 94edf80..1c0ebdd 100644
--- a/libass/ass_utils.c
+++ b/libass/ass_utils.c
@@ -24,7 +24,7 @@
#include <stdint.h>
#include <inttypes.h>
#include <strings.h>
-#include <limits.h>
+#include <ctype.h>
#include "ass_library.h"
#include "ass.h"
@@ -326,7 +326,7 @@ int parse_ycbcr_matrix(char *str)
return YCBCR_UNKNOWN;
}
-void ass_msg(ASS_Library *priv, int lvl, char *fmt, ...)
+void ass_msg(ASS_Library *priv, int lvl, const char *fmt, ...)
{
va_list va;
va_start(va, fmt);
@@ -334,6 +334,28 @@ void ass_msg(ASS_Library *priv, int lvl, char *fmt, ...)
va_end(va);
}
+/**
+ * Return a string with spaces trimmed at start and end.
+ * \param str input string
+ * \return output string, can be released with free()
+ */
+char *strdup_trimmed(const char *str)
+{
+ int left = 0;
+ int right = strlen(str) - 1;
+ char *out = NULL;
+
+ while (isspace(str[left])) left++;
+ while (right > left && isspace(str[right])) right--;
+
+ out = calloc(1, right-left+2);
+
+ if (out)
+ memcpy(out, str + left, right-left+1);
+
+ return out;
+}
+
unsigned ass_utf8_get_char(char **str)
{
uint8_t *strp = (uint8_t *) * str;