diff src/term.c @ 107994:5dc04900cbd7

Mirror continuation indicators for R2L lines; fix face extension on TTY. xdisp.c (extend_face_to_end_of_line): Fix face extension at ZV. term.c (produce_special_glyphs): Mirror the backslash continuation character in R2L lines. xdisp.c (set_cursor_from_row, display_line): Use MATRIX_ROW_CONTINUATION_LINE_P instead of testing value of row->continuation_lines_width. fringe.c (update_window_fringes): For R2L rows, swap the bitmaps of continuation indicators on the fringes.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 17 Apr 2010 15:33:05 +0300
parents a744b1df50bd
children 8ef8b6523597
line wrap: on
line diff
--- a/src/term.c	Sat Apr 17 13:29:40 2010 +0300
+++ b/src/term.c	Sat Apr 17 15:33:05 2010 +0300
@@ -1889,12 +1889,16 @@
 
   if (what == IT_CONTINUATION)
     {
-      /* Continuation glyph.  */
-      SET_GLYPH_FROM_CHAR (glyph, '\\');
+      /* Continuation glyph.  For R2L lines, we mirror it by hand.  */
+      if (it->bidi_it.paragraph_dir == R2L)
+	SET_GLYPH_FROM_CHAR (glyph, '/');
+      else
+	SET_GLYPH_FROM_CHAR (glyph, '\\');
       if (it->dp
 	  && (gc = DISP_CONTINUE_GLYPH (it->dp), GLYPH_CODE_P (gc))
 	  && GLYPH_CODE_CHAR_VALID_P (gc))
 	{
+	  /* FIXME: Should we mirror GC for R2L lines?  */
 	  SET_GLYPH_FROM_GLYPH_CODE (glyph, gc);
 	  spec_glyph_lookup_face (XWINDOW (it->window), &glyph);
 	}
@@ -1907,6 +1911,7 @@
 	  && (gc = DISP_TRUNC_GLYPH (it->dp), GLYPH_CODE_P (gc))
 	  && GLYPH_CODE_CHAR_VALID_P (gc))
 	{
+	  /* FIXME: Should we mirror GC for R2L lines?  */
 	  SET_GLYPH_FROM_GLYPH_CODE (glyph, gc);
 	  spec_glyph_lookup_face (XWINDOW (it->window), &glyph);
 	}