Mercurial > emacs
comparison src/syntax.c @ 89113:326caaedbfef
(skip_syntaxes): Fix previous change.
| author | Kenichi Handa <handa@m17n.org> |
|---|---|
| date | Wed, 18 Sep 2002 12:14:36 +0000 |
| parents | d9a45a01f9fc |
| children | 099689a1feb6 |
comparison
equal
deleted
inserted
replaced
| 89112:d9a45a01f9fc | 89113:326caaedbfef |
|---|---|
| 1729 if (XINT (lim) > ZV) | 1729 if (XINT (lim) > ZV) |
| 1730 XSETFASTINT (lim, ZV); | 1730 XSETFASTINT (lim, ZV); |
| 1731 if (XINT (lim) < BEGV) | 1731 if (XINT (lim) < BEGV) |
| 1732 XSETFASTINT (lim, BEGV); | 1732 XSETFASTINT (lim, BEGV); |
| 1733 | 1733 |
| 1734 if (forward ? PT >= XFASTINT (lim) : PT <= XFASTINT (lim)) | |
| 1735 return 0; | |
| 1736 | |
| 1734 multibyte = (!NILP (current_buffer->enable_multibyte_characters) | 1737 multibyte = (!NILP (current_buffer->enable_multibyte_characters) |
| 1735 && (lim - PT != CHAR_TO_BYTE (lim) - PT_BYTE)); | 1738 && (lim - PT != CHAR_TO_BYTE (lim) - PT_BYTE)); |
| 1736 | 1739 |
| 1737 bzero (fastmap, sizeof fastmap); | 1740 bzero (fastmap, sizeof fastmap); |
| 1738 | 1741 |
| 1772 SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1); | 1775 SETUP_SYNTAX_TABLE (pos, forwardp ? 1 : -1); |
| 1773 if (forwardp) | 1776 if (forwardp) |
| 1774 { | 1777 { |
| 1775 if (multibyte) | 1778 if (multibyte) |
| 1776 { | 1779 { |
| 1777 if (pos < XINT (lim)) | 1780 while (fastmap[(int) SYNTAX (FETCH_CHAR (pos_byte))]) |
| 1778 while (fastmap[(int) SYNTAX (FETCH_CHAR (pos_byte))]) | 1781 { |
| 1779 { | 1782 /* Since we already checked for multibyteness, |
| 1780 /* Since we already checked for multibyteness, | 1783 avoid using INC_BOTH which checks again. */ |
| 1781 avoid using INC_BOTH which checks again. */ | 1784 INC_POS (pos_byte); |
| 1782 INC_POS (pos_byte); | 1785 pos++; |
| 1783 pos++; | 1786 if (pos >= XINT (lim)) |
| 1784 if (pos >= XINT (lim)) | 1787 break; |
| 1785 break; | 1788 UPDATE_SYNTAX_TABLE_FORWARD (pos); |
| 1786 UPDATE_SYNTAX_TABLE_FORWARD (pos); | 1789 } |
| 1787 } | |
| 1788 } | 1790 } |
| 1789 else | 1791 else |
| 1790 { | 1792 { |
| 1791 while (pos < XINT (lim)) | 1793 while (1) |
| 1792 { | 1794 { |
| 1793 c = FETCH_BYTE (pos_byte); | 1795 c = FETCH_BYTE (pos_byte); |
| 1794 MAKE_CHAR_MULTIBYTE (c); | 1796 MAKE_CHAR_MULTIBYTE (c); |
| 1795 if (! fastmap[(int) SYNTAX (c)]) | 1797 if (! fastmap[(int) SYNTAX (c)]) |
| 1796 break; | 1798 break; |
| 1797 pos++, pos_byte++; | 1799 pos++, pos_byte++; |
| 1800 if (pos >= XINT (lim)) | |
| 1801 break; | |
| 1798 UPDATE_SYNTAX_TABLE_FORWARD (pos); | 1802 UPDATE_SYNTAX_TABLE_FORWARD (pos); |
| 1799 } | 1803 } |
| 1800 } | 1804 } |
| 1801 } | 1805 } |
| 1802 else | 1806 else |
| 1803 { | 1807 { |
| 1804 if (multibyte) | 1808 if (multibyte) |
| 1805 { | 1809 { |
| 1806 while (pos > XINT (lim)) | 1810 while (1) |
| 1807 { | 1811 { |
| 1808 int savepos = pos_byte; | 1812 int savepos = pos_byte; |
| 1809 /* Since we already checked for multibyteness, | 1813 /* Since we already checked for multibyteness, |
| 1810 avoid using DEC_BOTH which checks again. */ | 1814 avoid using DEC_BOTH which checks again. */ |
| 1811 pos--; | 1815 pos--; |
| 1812 DEC_POS (pos_byte); | 1816 DEC_POS (pos_byte); |
| 1817 if (pos <= XINT (lim)) | |
| 1818 break; | |
| 1813 UPDATE_SYNTAX_TABLE_BACKWARD (pos); | 1819 UPDATE_SYNTAX_TABLE_BACKWARD (pos); |
| 1814 if (!fastmap[(int) SYNTAX (FETCH_CHAR (pos_byte))]) | 1820 if (!fastmap[(int) SYNTAX (FETCH_CHAR (pos_byte))]) |
| 1815 { | 1821 { |
| 1816 pos++; | 1822 pos++; |
| 1817 pos_byte = savepos; | 1823 pos_byte = savepos; |
| 1819 } | 1825 } |
| 1820 } | 1826 } |
| 1821 } | 1827 } |
| 1822 else | 1828 else |
| 1823 { | 1829 { |
| 1824 if (pos > XINT (lim)) | 1830 while (1) |
| 1825 while (1) | 1831 { |
| 1826 { | 1832 c = FETCH_BYTE (pos_byte - 1); |
| 1827 c = FETCH_BYTE (pos_byte - 1); | 1833 MAKE_CHAR_MULTIBYTE (c); |
| 1828 MAKE_CHAR_MULTIBYTE (c); | 1834 if (! fastmap[(int) SYNTAX (c)]) |
| 1829 if (! fastmap[(int) SYNTAX (c)]) | 1835 break; |
| 1830 break; | 1836 pos--, pos_byte--; |
| 1831 pos--, pos_byte--; | 1837 if (pos <= XINT (lim)) |
| 1832 if (pos <= XINT (lim)) | 1838 break; |
| 1833 break; | 1839 UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1); |
| 1834 UPDATE_SYNTAX_TABLE_BACKWARD (pos - 1); | 1840 } |
| 1835 } | |
| 1836 } | 1841 } |
| 1837 } | 1842 } |
| 1838 | 1843 |
| 1839 SET_PT_BOTH (pos, pos_byte); | 1844 SET_PT_BOTH (pos, pos_byte); |
| 1840 immediate_quit = 0; | 1845 immediate_quit = 0; |
