changeset 13679:59bb11213d11

correctly display the commas of most hebrew subtitles on the left side of the sentence with fribidi, make the old behaviour optional patch by Shachar Raindel <shacharr <at> gmail.com>
author faust3
date Mon, 18 Oct 2004 20:41:06 +0000
parents dc1facd7c7b0
children 326d3bd9dba6
files DOCS/man/en/mplayer.1 cfg-common.h subreader.c subreader.h
diffstat 4 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1	Mon Oct 18 20:30:07 2004 +0000
+++ b/DOCS/man/en/mplayer.1	Mon Oct 18 20:41:06 2004 +0000
@@ -1290,6 +1290,11 @@
 Turns on flipping subtitles using FriBiDi.
 .
 .TP
+.B \-noflip-hebrew-commas
+Change FriBiDi's assumptions about the placements of commas in subtitles.
+Use this if commas in subtitles are shown at the start of a sentence
+instead of at the end.
+.TP
 .B \-font <path\ to\ font.desc\ file> (OSD only)
 Search for the OSD/\:SUB fonts in an alternative directory (default for normal
 fonts: ~/\:.mplayer/\:font/\:font.desc, default for FreeType fonts:
--- a/cfg-common.h	Mon Oct 18 20:30:07 2004 +0000
+++ b/cfg-common.h	Mon Oct 18 20:41:06 2004 +0000
@@ -219,10 +219,14 @@
 	{"fribidi-charset", &fribidi_charset, CONF_TYPE_STRING, 0, 0, 0, NULL},
 	{"flip-hebrew", &flip_hebrew, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 	{"noflip-hebrew", &flip_hebrew, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+	{"flip-hebrew-commas", &fribidi_flip_commas, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+	{"noflip-hebrew-commas", &fribidi_flip_commas, CONF_TYPE_FLAG, 0, 0, 1, NULL},
 #else 
 	{"fribidi-charset", "MPlayer was compiled without FriBiDi support.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
 	{"flip-hebrew", "MPlayer was compiled without FriBiDi support.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
 	{"noflip-hebrew", "MPlayer was compiled without FriBiDi support.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
+	{"flip-hebrew-commas", "MPlayer was compiled without FriBiDi support.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
+	{"noflip-hebrew-commas", "MPlayer was compiled without FriBiDi support.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
 #endif
 #ifdef USE_ICONV
 	{"subcp", &sub_cp, CONF_TYPE_STRING, 0, 0, 0, NULL},
--- a/subreader.c	Mon Oct 18 20:30:07 2004 +0000
+++ b/subreader.c	Mon Oct 18 20:41:06 2004 +0000
@@ -33,6 +33,7 @@
 #include <fribidi/fribidi.h>
 char *fribidi_charset = NULL;
 int flip_hebrew = 1;
+int fribidi_flip_commas = 0;
 #endif
 
 extern char* dvdsub_lang;
@@ -1208,7 +1209,7 @@
       break;
     }
     len = fribidi_charset_to_unicode (char_set_num, ip, len, logical);
-    base = FRIBIDI_TYPE_ON;
+    base = fribidi_flip_commas?FRIBIDI_TYPE_ON:FRIBIDI_TYPE_L;
     log2vis = fribidi_log2vis (logical, len, &base,
 			       /* output */
 			       visual, NULL, NULL, NULL);
--- a/subreader.h	Mon Oct 18 20:30:07 2004 +0000
+++ b/subreader.h	Mon Oct 18 20:41:06 2004 +0000
@@ -59,6 +59,12 @@
     int sub_errs;
 } sub_data;
 
+#ifdef  USE_FRIBIDI
+extern char *fribidi_charset;
+extern int flip_hebrew;
+extern int fribidi_flip_commas;
+#endif
+
 sub_data* sub_read_file (char *filename, float pts);
 subtitle* subcp_recode1 (subtitle *sub);
 // enca_fd is the file enca uses to determine the codepage.