You mean like this


diff --git a/libavutil/avstring.c b/libavutil/avstring.c
index 4c068f5..8a264c0 100644
--- a/libavutil/avstring.c
+++ b/libavutil/avstring.c
@@ -150,14 +150,26 @@ char *av_get_token(const char **buf, const char *term)
 {
     char *out     = av_malloc(strlen(*buf) + 1);
     char *ret     = out, *end = out;
+    int   p_count = 0;
+    int   speech  = 0;
+
     const char *p = *buf;
     if (!out)
         return NULL;
     p += strspn(p, WHITESPACES);

-    while (*p && !strspn(p, term)) {
+    while (*p && (!strspn(p, term) || p_count)) {
         char c = *p++;
-        if (c == '\\' && *p) {
+        if (c == 0x22) {
+            speech = !speech;
+            *out++ = c;
+        } else if (speech) {
+            *out++ = c;
+        } else if (c == ')') {
+            if( p_count) {
+                p_count--;
+            }
+            *out++ = c;
+        }
+        else if (c == '(') {
+            p_count++;
+            *out++ = c;
+        }
+        else if (c == '\\' && *p) {
             *out++ = *p++;
             end    = out;
         } else if (c == '\'') {

---
BR

Joolz


On 2019-09-17 17:25, Nicolas George wrote:
Julian Gardner (12019-09-17):
Not balanced, can you please give me an example so I can look into the
problem.

I can think of only one case and that would be someone using braces inside a
text field?

Exactly. The function you are proposing to change is meant to parse
strings. Giving it a special case for parentheses is a maintenance and
user-experience nightmare.

Regards,

_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to