From 79e828c998e7a3121c563fc95c461f61b8047e0c Mon Sep 17 00:00:00 2001 From: eugeni Date: Sat, 7 Apr 2007 13:32:51 +0000 Subject: Fix lost hard linebreaks in libass by repeating the loop when both soft and hard linebreaks are about to be added. Original message: http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2007-April/050876.html Patch by Jindrich Makovicka /makovick gmail com/ git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22931 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libass/ass_render.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libass/ass_render.c') diff --git a/libass/ass_render.c b/libass/ass_render.c index 4532cab971..a757c2d4da 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -1385,6 +1385,11 @@ static void wrap_lines_smart(int max_text_width) if (cur->symbol == ' ') last_space = i; + + // make sure the hard linebreak is not forgotten when + // there was a new soft linebreak just inserted + if (cur->symbol == '\n' && break_type == 1) + i--; } #define DIFF(x,y) (((x) < (y)) ? (y - x) : (x - y)) exit = 0; -- cgit v1.2.3