comparison src/syntax.c @ 106185:f2cea199b0c4

* character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Remove ignored second argument. All callers changed. * regex.c (STRING_CHAR, STRING_CHAR_AND_LENGTH, RE_STRING_CHAR) (RE_STRING_CHAR_AND_LENGTH): Likewise. * xdisp.c (string_char_and_length): Likewise.
author Andreas Schwab <schwab@linux-m68k.org>
date Sat, 21 Nov 2009 11:52:23 +0000
parents 21bdda3ded62
children 1d1d5d9bd884
comparison
equal deleted inserted replaced
106184:0579465d2619 106185:f2cea199b0c4
909 return Qnil; 909 return Qnil;
910 910
911 if (*p) 911 if (*p)
912 { 912 {
913 int len; 913 int len;
914 int character = (STRING_CHAR_AND_LENGTH 914 int character = STRING_CHAR_AND_LENGTH (p, len);
915 (p, SBYTES (string) - 1, len));
916 XSETINT (match, character); 915 XSETINT (match, character);
917 if (XFASTINT (match) == ' ') 916 if (XFASTINT (match) == ' ')
918 match = Qnil; 917 match = Qnil;
919 p += len; 918 p += len;
920 } 919 }
1586 while (i_byte < size_byte) 1585 while (i_byte < size_byte)
1587 { 1586 {
1588 unsigned char leading_code; 1587 unsigned char leading_code;
1589 1588
1590 leading_code = str[i_byte]; 1589 leading_code = str[i_byte];
1591 c = STRING_CHAR_AND_LENGTH (str + i_byte, size_byte-i_byte, len); 1590 c = STRING_CHAR_AND_LENGTH (str + i_byte, len);
1592 i_byte += len; 1591 i_byte += len;
1593 1592
1594 if (handle_iso_classes && c == '[' 1593 if (handle_iso_classes && c == '['
1595 && i_byte < size_byte 1594 && i_byte < size_byte
1596 && STRING_CHAR (str + i_byte, size_byte - i_byte) == ':') 1595 && STRING_CHAR (str + i_byte) == ':')
1597 { 1596 {
1598 const unsigned char *class_beg = str + i_byte + 1; 1597 const unsigned char *class_beg = str + i_byte + 1;
1599 const unsigned char *class_end = class_beg; 1598 const unsigned char *class_end = class_beg;
1600 const unsigned char *class_limit = str + size_byte - 2; 1599 const unsigned char *class_limit = str + size_byte - 2;
1601 /* Leave room for the null. */ 1600 /* Leave room for the null. */
1631 { 1630 {
1632 if (i_byte == size_byte) 1631 if (i_byte == size_byte)
1633 break; 1632 break;
1634 1633
1635 leading_code = str[i_byte]; 1634 leading_code = str[i_byte];
1636 c = STRING_CHAR_AND_LENGTH (str + i_byte, 1635 c = STRING_CHAR_AND_LENGTH (str + i_byte, len);
1637 size_byte - i_byte, len);
1638 i_byte += len; 1636 i_byte += len;
1639 } 1637 }
1640 /* Treat `-' as range character only if another character 1638 /* Treat `-' as range character only if another character
1641 follows. */ 1639 follows. */
1642 if (i_byte + 1 < size_byte 1640 if (i_byte + 1 < size_byte
1648 /* Skip over the dash. */ 1646 /* Skip over the dash. */
1649 i_byte++; 1647 i_byte++;
1650 1648
1651 /* Get the end of the range. */ 1649 /* Get the end of the range. */
1652 leading_code2 = str[i_byte]; 1650 leading_code2 = str[i_byte];
1653 c2 = STRING_CHAR_AND_LENGTH (str + i_byte, 1651 c2 = STRING_CHAR_AND_LENGTH (str + i_byte, len);
1654 size_byte - i_byte, len);
1655 i_byte += len; 1652 i_byte += len;
1656 1653
1657 if (c2 == '\\' 1654 if (c2 == '\\'
1658 && i_byte < size_byte) 1655 && i_byte < size_byte)
1659 { 1656 {
1660 leading_code2 = str[i_byte]; 1657 leading_code2 = str[i_byte];
1661 c2 =STRING_CHAR_AND_LENGTH (str + i_byte, size_byte-i_byte, len); 1658 c2 =STRING_CHAR_AND_LENGTH (str + i_byte, len);
1662 i_byte += len; 1659 i_byte += len;
1663 } 1660 }
1664 1661
1665 if (c > c2) 1662 if (c > c2)
1666 continue; 1663 continue;
1762 if (p >= endp) 1759 if (p >= endp)
1763 break; 1760 break;
1764 p = GAP_END_ADDR; 1761 p = GAP_END_ADDR;
1765 stop = endp; 1762 stop = endp;
1766 } 1763 }
1767 c = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, nbytes); 1764 c = STRING_CHAR_AND_LENGTH (p, nbytes);
1768 if (! NILP (iso_classes) && in_classes (c, iso_classes)) 1765 if (! NILP (iso_classes) && in_classes (c, iso_classes))
1769 { 1766 {
1770 if (negate) 1767 if (negate)
1771 break; 1768 break;
1772 else 1769 else
1833 p = GPT_ADDR; 1830 p = GPT_ADDR;
1834 stop = endp; 1831 stop = endp;
1835 } 1832 }
1836 prev_p = p; 1833 prev_p = p;
1837 while (--p >= stop && ! CHAR_HEAD_P (*p)); 1834 while (--p >= stop && ! CHAR_HEAD_P (*p));
1838 c = STRING_CHAR (p, MAX_MULTIBYTE_LENGTH); 1835 c = STRING_CHAR (p);
1839 1836
1840 if (! NILP (iso_classes) && in_classes (c, iso_classes)) 1837 if (! NILP (iso_classes) && in_classes (c, iso_classes))
1841 { 1838 {
1842 if (negate) 1839 if (negate)
1843 break; 1840 break;
1987 if (p >= endp) 1984 if (p >= endp)
1988 break; 1985 break;
1989 p = GAP_END_ADDR; 1986 p = GAP_END_ADDR;
1990 stop = endp; 1987 stop = endp;
1991 } 1988 }
1992 c = STRING_CHAR_AND_LENGTH (p, MAX_MULTIBYTE_LENGTH, nbytes); 1989 c = STRING_CHAR_AND_LENGTH (p, nbytes);
1993 if (! fastmap[(int) SYNTAX (c)]) 1990 if (! fastmap[(int) SYNTAX (c)])
1994 break; 1991 break;
1995 p += nbytes, pos++, pos_byte += nbytes; 1992 p += nbytes, pos++, pos_byte += nbytes;
1996 UPDATE_SYNTAX_TABLE_FORWARD (pos); 1993 UPDATE_SYNTAX_TABLE_FORWARD (pos);
1997 } 1994 }
2030 stop = endp; 2027 stop = endp;
2031 } 2028 }
2032 UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1); 2029 UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1);
2033 prev_p = p; 2030 prev_p = p;
2034 while (--p >= stop && ! CHAR_HEAD_P (*p)); 2031 while (--p >= stop && ! CHAR_HEAD_P (*p));
2035 c = STRING_CHAR (p, MAX_MULTIBYTE_LENGTH); 2032 c = STRING_CHAR (p);
2036 if (! fastmap[(int) SYNTAX (c)]) 2033 if (! fastmap[(int) SYNTAX (c)])
2037 break; 2034 break;
2038 pos--, pos_byte -= prev_p - p; 2035 pos--, pos_byte -= prev_p - p;
2039 } 2036 }
2040 } 2037 }