summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleg Oshmyan <chortos@inbox.lv>2014-05-17 22:39:33 +0100
committerOleg Oshmyan <chortos@inbox.lv>2014-06-06 15:08:16 +0100
commit722fc526e33df96994bd38f4ae7853d20d2e2544 (patch)
tree10d9900b4417da5b09fc8c9f12d21e9fb842dfc7
parent03c66c1dfd283f955d43b63e20ffa5a2f4dce9a8 (diff)
downloadlibass-722fc526e33df96994bd38f4ae7853d20d2e2544.tar.bz2
libass-722fc526e33df96994bd38f4ae7853d20d2e2544.tar.xz
Move (r)skip_spaces to ass_utils
-rw-r--r--libass/ass.c23
-rw-r--r--libass/ass_utils.c25
-rw-r--r--libass/ass_utils.h2
3 files changed, 22 insertions, 28 deletions
diff --git a/libass/ass.c b/libass/ass.c
index 3817134..2389740 100644
--- a/libass/ass.c
+++ b/libass/ass.c
@@ -153,22 +153,6 @@ void ass_free_style(ASS_Track *track, int sid)
// ==============================================================================================
-static void skip_spaces(char **str)
-{
- char *p = *str;
- while ((*p == ' ') || (*p == '\t'))
- ++p;
- *str = p;
-}
-
-static void rskip_spaces(char **str, char *limit)
-{
- char *p = *str;
- while ((p >= limit) && ((*p == ' ') || (*p == '\t')))
- --p;
- *str = p;
-}
-
/**
* \brief Set up default style
* \param style style to edit to defaults
@@ -297,12 +281,7 @@ static char *next_token(char **str)
*p = '\0';
*str = p + 1; // ',' found, str will point to the next char (beginning of the next token)
}
- --p; // end of current token
- rskip_spaces(&p, start);
- if (p < start)
- p = start; // empty token
- else
- ++p; // the first space character, or '\0'
+ rskip_spaces(&p, start); // end of current token: the first space character, or '\0'
*p = '\0';
return start;
}
diff --git a/libass/ass_utils.c b/libass/ass_utils.c
index 5140506..58ee96d 100644
--- a/libass/ass_utils.c
+++ b/libass/ass_utils.c
@@ -89,6 +89,22 @@ void ass_aligned_free(void *ptr)
free(*((void **)ptr - 1));
}
+void skip_spaces(char **str)
+{
+ char *p = *str;
+ while ((*p == ' ') || (*p == '\t'))
+ ++p;
+ *str = p;
+}
+
+void rskip_spaces(char **str, char *limit)
+{
+ char *p = *str;
+ while ((p > limit) && ((p[-1] == ' ') || (p[-1] == '\t')))
+ --p;
+ *str = p;
+}
+
int mystrtoi(char **p, int *res)
{
double temp_res;
@@ -177,8 +193,7 @@ int strtocolor(ASS_Library *library, char **q, uint32_t *res, int hex)
// Return a boolean value for a string
char parse_bool(char *str)
{
- while (*str == ' ' || *str == '\t')
- str++;
+ skip_spaces(&str);
if (!strncasecmp(str, "yes", 3))
return 1;
else if (strtol(str, NULL, 10) > 0)
@@ -188,14 +203,12 @@ char parse_bool(char *str)
int parse_ycbcr_matrix(char *str)
{
- while (*str == ' ' || *str == '\t')
- str++;
+ skip_spaces(&str);
if (*str == '\0')
return YCBCR_DEFAULT;
char *end = str + strlen(str);
- while (end[-1] == ' ' || end[-1] == '\t')
- end--;
+ rskip_spaces(&end, str);
// Trim a local copy of the input that we know is safe to
// modify. The buffer is larger than any valid string + NUL,
diff --git a/libass/ass_utils.h b/libass/ass_utils.h
index 7228b36..7b16ca6 100644
--- a/libass/ass_utils.h
+++ b/libass/ass_utils.h
@@ -52,6 +52,8 @@ int has_avx2(void);
void *ass_aligned_alloc(size_t alignment, size_t size);
void ass_aligned_free(void *ptr);
+void skip_spaces(char **str);
+void rskip_spaces(char **str, char *limit);
int mystrtoi(char **p, int *res);
int mystrtoll(char **p, long long *res);
int mystrtou32(char **p, int base, uint32_t *res);