gst/subparse/gstsubparse.c: Strip trailing newlines from subtitle text output.
authorTim-Philipp Müller <tim@centricular.net>
Thu, 19 Oct 2006 09:00:21 +0000 (09:00 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Thu, 19 Oct 2006 09:00:21 +0000 (09:00 +0000)
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (strip_trailing_newlines),
(parse_subrip):
Strip trailing newlines from subtitle text output.

ChangeLog
gst/subparse/gstsubparse.c

index 6d73e7c..f6cf285 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-10-19  Tim-Philipp Müller  <tim at centricular dot net>
+
+       * gst/subparse/gstsubparse.c: (strip_trailing_newlines),
+       (parse_subrip):
+         Strip trailing newlines from subtitle text output.
+
 2006-10-18  Tim-Philipp Müller  <tim at centricular dot net>
 
        * gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
index 26409ed..d17be39 100644 (file)
@@ -476,6 +476,20 @@ parse_mdvdsub (ParserState * state, const gchar * line)
   return ret;
 }
 
+static void
+strip_trailing_newlines (gchar * txt)
+{
+  if (txt) {
+    guint len;
+
+    len = strlen (txt);
+    while (len > 1 && txt[len - 1] == '\n') {
+      txt[len - 1] = '\0';
+      --len;
+    }
+  }
+}
+
 /* we want to escape text in general, but retain basic markup like
  * <i></i>, <u></u>, and <b></b>. The easiest and safest way is to
  * just unescape a white list of allowed markups again after
@@ -572,6 +586,7 @@ parse_subrip (ParserState * state, const gchar * line)
         g_string_truncate (state->buf, 0);
         state->state = 0;
         subrip_unescape_formatting (ret);
+        strip_trailing_newlines (ret);
         return ret;
       }
       return NULL;