emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/search.c


From: Kenichi Handa
Subject: [Emacs-diffs] Changes to emacs/src/search.c
Date: Wed, 20 Apr 2005 03:21:47 -0400

Index: emacs/src/search.c
diff -c emacs/src/search.c:1.191 emacs/src/search.c:1.192
*** emacs/src/search.c:1.191    Fri Apr  1 01:05:46 2005
--- emacs/src/search.c  Wed Apr 20 07:21:47 2005
***************
*** 1692,1713 ****
        i = infinity;
        if (! NILP (trt))
        {
!         /* If the byte currently looking at is a head of a character
!            to check case-equivalents, set CH to that character.  An
!            ASCII character and a non-ASCII character matching with
!            CHARSET_BASE are to be checked.  */
          int ch = -1;
  
          if (ASCII_BYTE_P (*ptr) || ! multibyte)
            ch = *ptr;
!         else if (charset_base && CHAR_HEAD_P (*ptr))
            {
!             ch = STRING_CHAR (ptr, pat_end - ptr);
              if (charset_base != (ch & ~CHAR_FIELD3_MASK))
                ch = -1;
            }
  
!         j = *ptr;
          if (i == infinity)
            stride_for_teases = BM_tab[j];
  
--- 1692,1722 ----
        i = infinity;
        if (! NILP (trt))
        {
!         /* If the byte currently looking at is the last of a
!            character to check case-equivalents, set CH to that
!            character.  An ASCII character and a non-ASCII character
!            matching with CHARSET_BASE are to be checked.  */
          int ch = -1;
  
          if (ASCII_BYTE_P (*ptr) || ! multibyte)
            ch = *ptr;
!         else if (charset_base
!                  && (pat_end - ptr) == 1 || CHAR_HEAD_P (ptr[1]))
            {
!             unsigned char *charstart = ptr - 1;
! 
!             while (! (CHAR_HEAD_P (*charstart)))
!               charstart--;
!             ch = STRING_CHAR (charstart, ptr - charstart + 1);
              if (charset_base != (ch & ~CHAR_FIELD3_MASK))
                ch = -1;
            }
  
!         if (ch > 0400)
!           j = ((unsigned char) ch) | 0200;
!         else
!           j = *ptr;
! 
          if (i == infinity)
            stride_for_teases = BM_tab[j];
  
***************
*** 1717,1728 ****
          if (ch >= 0)
            {
              int starting_ch = ch;
!             int starting_j;
  
-             if (ch > 0400)
-               starting_j = ((unsigned char) ch) | 0200;
-             else
-               starting_j = (unsigned char) ch;
              while (1)
                {
                  TRANSLATE (ch, inverse_trt, ch);
--- 1726,1733 ----
          if (ch >= 0)
            {
              int starting_ch = ch;
!             int starting_j = j;
  
              while (1)
                {
                  TRANSLATE (ch, inverse_trt, ch);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]