diff options
| author | Kenichi Handa | 2002-09-18 12:14:36 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2002-09-18 12:14:36 +0000 |
| commit | 8c6e735bfb70b777db18b9f05c40ed1e0f479fee (patch) | |
| tree | b90582b7cc6f76bdda07b61fec593af62cf4e9c0 /src/syntax.c | |
| parent | 1498173f7eb02ae80be8a07de49bf98d45330888 (diff) | |
| download | emacs-8c6e735bfb70b777db18b9f05c40ed1e0f479fee.tar.gz emacs-8c6e735bfb70b777db18b9f05c40ed1e0f479fee.zip | |
(skip_syntaxes): Fix previous change.
Diffstat (limited to 'src/syntax.c')
| -rw-r--r-- | src/syntax.c | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/src/syntax.c b/src/syntax.c index e16d8bc45ec..de0ef9078cf 100644 --- a/src/syntax.c +++ b/src/syntax.c | |||
| @@ -1731,6 +1731,9 @@ skip_syntaxes (forwardp, string, lim) | |||
| 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 | ||
| @@ -1774,27 +1777,28 @@ skip_syntaxes (forwardp, string, lim) | |||
| 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 | } |
| @@ -1803,13 +1807,15 @@ skip_syntaxes (forwardp, string, lim) | |||
| 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 | { |
| @@ -1821,18 +1827,17 @@ skip_syntaxes (forwardp, string, lim) | |||
| 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 | ||