]> granicus.if.org Git - fribidi/commitdiff
Rever back to our old level setting for BN and explicits. The new method was
authorbehdad <behdad>
Fri, 18 Jun 2004 22:41:39 +0000 (22:41 +0000)
committerbehdad <behdad>
Fri, 18 Jun 2004 22:41:39 +0000 (22:41 +0000)
buggy.  A test case added to capture that.

lib/fribidi-bidi.c
test/Makefile.am
test/test_CapRTL_explicit.input
test/test_CapRTL_explicit.reference

index 96cb575e028446bda39cb6aaa8117ddaea136585..ceabfbbd4809eddf10818f53f28697f3b926646c 100644 (file)
@@ -1,10 +1,10 @@
 /* FriBidi
  * fribidi-bidi.c - bidirectional algorithm
  *
- * $Id: fribidi-bidi.c,v 1.14 2004-06-18 19:21:33 behdad Exp $
+ * $Id: fribidi-bidi.c,v 1.15 2004-06-18 22:41:39 behdad Exp $
  * $Author: behdad $
- * $Date: 2004-06-18 19:21:33 $
- * $Revision: 1.14 $
+ * $Date: 2004-06-18 22:41:39 $
+ * $Revision: 1.15 $
  * $Source: /home/behdad/src/fdo/fribidi/togit/git/../fribidi/fribidi2/lib/fribidi-bidi.c,v $
  *
  * Authors:
@@ -451,26 +451,19 @@ fribidi_get_par_embedding_levels (
                    FRIBIDI_DIR_TO_LEVEL (this_type);
                  PUSH_STATUS;
                }
-
-             /* Set level to the higher level */
-             RL_LEVEL (pp) = level;
            }
          else if (this_type == FRIBIDI_TYPE_PDF)
            {
-             /* Set level to the higher level */
-             RL_LEVEL (pp) = level;
-
              /* 3. Terminating Embeddings and overrides */
              /*   X7. With each PDF, determine the matching embedding or
                 override code. */
              for (i = RL_LEN (pp); i; i--)
                POP_STATUS;
            }
-         else
-           RL_LEVEL (pp) = level;
 
          /* X9. Remove all RLE, LRE, RLO, LRO, PDF, and BN codes. */
          /* Remove element and add it to explicits_list */
+         RL_LEVEL (pp) = FRIBIDI_SENTINEL;
          temp_link.next = pp->next;
          move_node_before (pp, explicits_list);
          pp = &temp_link;
@@ -739,13 +732,12 @@ fribidi_get_par_embedding_levels (
     explicits_list = NULL;
     if UNLIKELY
       (!stat) goto out;
-    /* We don't need this code since we set levels for everything we remove.
+
     p = main_run_list->next;
     if (p != main_run_list && p->level == FRIBIDI_SENTINEL)
       p->level = base_level;
     for_run_list (p, main_run_list) if (p->level == FRIBIDI_SENTINEL)
       p->level = p->prev->level;
-    */
   }
 
 # if DEBUG
@@ -932,7 +924,7 @@ fribidi_reorder_line (
 
     /* L1. Reset the embedding levels of some chars:
            4. any sequence of white space characters at the end of the line.*/
-    for (i = len - 1; i >= 0 &&
+    for (i = off + len - 1; i >= off &&
        FRIBIDI_IS_EXPLICIT_OR_BN_OR_WS (BIDI_TYPE (i)); i--)
       embedding_levels[i] = FRIBIDI_DIR_TO_LEVEL (base_dir);
   }
index 565a5b2d640e55f0054a3fdd16fdff6d3edaf0c5..1f3c8abee898008e88c7ed309e128ec2ba704908 100644 (file)
@@ -19,15 +19,15 @@ EXTRA_DIST =        \
 
 test_%.reference: test_%.input
        testcase="$@" &&        \
-       charset="`echo "$@" | $(SED) 's/_[^_]*$$//;s/.*_//'`" &&        \
-       "$(top_builddir)"/src/fribidi --test --charset "$$charset" "$<" > "$@" || \
+       charset="`echo "$@" | sed 's/_[^_]*$$//;s/.*_//'`" &&   \
+       $(top_builddir)/bin/fribidi --test --charset "$$charset" "$<" > "$@" || \
        ($(RM) "$@"; false)
 
-test.reference:
+references:
        for testcase in "$(srcdir)"/test_*.input; do    \
-               test="`echo "$$testcase"        \
+               test="`echo $$testcase  \
                  | $(SED) 's/\.input$$/.reference/i; s|.*/||;'`" &&    \
-               $(MAKE) "tests/$$test" ||       \
+               $(MAKE) $(AM_MAKEFLAGS) "$(srcdir)/$$test" ||   \
                exit 1; \
        done
 
index 1cbfac21099f8fab361c9e2f609659f9778e15d9..7de582a953fcdce65376c1b50a666f1d93a596db 100644 (file)
@@ -11,3 +11,4 @@ A REAL BIG_l_o BUG!
 a _L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_Rbug
 AN ARABIC _l_o 123-456 NICE ONE!
 AN ARABIC _l _o 123-456 PAIR
+this bug 67_r_o89 catched!
index 37fb9042b2a23f63b1b80448b2df3df621d8331f..c7deb28abc2c335c2ad28451b2ce3fbc8178f09c 100644 (file)
@@ -11,3 +11,4 @@ A REAL BIG_l_o BUG!                 =>                     !GUB GIB LAER A
 a _L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_L_Rbug => a gub
 AN ARABIC _l_o 123-456 NICE ONE!    =>        !ENO ECIN 456-123  CIBARA NA
 AN ARABIC _l _o 123-456 PAIR        =>            RIAP   123-456 CIBARA NA
+this bug 67_r_o89 catched!          => this bug 6789 catched!