# HG changeset patch # User Stefan Monnier # Date 1216931277 0 # Node ID 77625aa3eac4f4485a98a98fab653bc096a8cddc # Parent 359d8fb735387b9b53e5c3174a192c1dfaf191cc (struct lisp_parse_state, char_quoted, inc_bytepos) (dec_bytepos, find_defun_start): Use EMACS_INT for buffer positions. diff -r 359d8fb73538 -r 77625aa3eac4 src/ChangeLog --- a/src/ChangeLog Thu Jul 24 20:26:48 2008 +0000 +++ b/src/ChangeLog Thu Jul 24 20:27:57 2008 +0000 @@ -1,5 +1,8 @@ 2008-07-24 Stefan Monnier + * syntax.c (struct lisp_parse_state, char_quoted, inc_bytepos) + (dec_bytepos, find_defun_start): Use EMACS_INT for buffer positions. + * puresize.h (PURESIZE_CHECKING_RATIO): New macro. (PURESIZE): Use it. diff -r 359d8fb73538 -r 77625aa3eac4 src/syntax.c --- a/src/syntax.c Thu Jul 24 20:26:48 2008 +0000 +++ b/src/syntax.c Thu Jul 24 20:27:57 2008 +0000 @@ -65,18 +65,20 @@ struct lisp_parse_state { - int depth; /* Depth at end of parsing. */ - int instring; /* -1 if not within string, else desired terminator. */ - int incomment; /* -1 if in unnestable comment else comment nesting */ - int comstyle; /* comment style a=0, or b=1, or ST_COMMENT_STYLE. */ - int quoted; /* Nonzero if just after an escape char at end of parsing */ - int thislevelstart; /* Char number of most recent start-of-expression at current level */ - int prevlevelstart; /* Char number of start of containing expression */ - int location; /* Char number at which parsing stopped. */ - int mindepth; /* Minimum depth seen while scanning. */ - int comstr_start; /* Position just after last comment/string starter. */ - Lisp_Object levelstarts; /* Char numbers of starts-of-expression - of levels (starting from outermost). */ + int depth; /* Depth at end of parsing. */ + int instring; /* -1 if not within string, else desired terminator. */ + int incomment; /* -1 if in unnestable comment else comment nesting */ + int comstyle; /* comment style a=0, or b=1, or ST_COMMENT_STYLE. */ + int quoted; /* Nonzero if just after an escape char at end of parsing */ + int mindepth; /* Minimum depth seen while scanning. */ + /* Char number of most recent start-of-expression at current level */ + EMACS_INT thislevelstart; + /* Char number of start of containing expression */ + EMACS_INT prevlevelstart; + EMACS_INT location; /* Char number at which parsing stopped. */ + EMACS_INT comstr_start; /* Position of last comment/string starter. */ + Lisp_Object levelstarts; /* Char numbers of starts-of-expression + of levels (starting from outermost). */ }; /* These variables are a cache for finding the start of a defun. @@ -95,10 +97,6 @@ static int find_start_modiff; -static int find_defun_start P_ ((EMACS_INT, EMACS_INT)); -static int back_comment P_ ((EMACS_INT, EMACS_INT, EMACS_INT, int, int, - EMACS_INT *, EMACS_INT *)); -static int char_quoted P_ ((int, int)); static Lisp_Object skip_chars P_ ((int, Lisp_Object, Lisp_Object, int)); static Lisp_Object skip_syntaxes P_ ((int, Lisp_Object, Lisp_Object)); static Lisp_Object scan_lists P_ ((EMACS_INT, EMACS_INT, EMACS_INT, int)); @@ -290,13 +288,12 @@ or after. On return global syntax data is good for lookup at CHARPOS. */ static int -char_quoted (charpos, bytepos) - register int charpos, bytepos; +char_quoted (EMACS_INT charpos, EMACS_INT bytepos) { register enum syntaxcode code; - register int beg = BEGV; + register EMACS_INT beg = BEGV; register int quoted = 0; - int orig = charpos; + EMACS_INT orig = charpos; while (charpos > beg) { @@ -319,9 +316,9 @@ /* Return the bytepos one character after BYTEPOS. We assume that BYTEPOS is not at the end of the buffer. */ -INLINE int +INLINE EMACS_INT inc_bytepos (bytepos) - int bytepos; + EMACS_INT bytepos; { if (NILP (current_buffer->enable_multibyte_characters)) return bytepos + 1; @@ -333,9 +330,9 @@ /* Return the bytepos one character before BYTEPOS. We assume that BYTEPOS is not at the start of the buffer. */ -INLINE int +INLINE EMACS_INT dec_bytepos (bytepos) - int bytepos; + EMACS_INT bytepos; { if (NILP (current_buffer->enable_multibyte_characters)) return bytepos - 1; @@ -358,7 +355,7 @@ valid on return from the subroutine, so the caller should explicitly update the global data. */ -static int +static EMACS_INT find_defun_start (pos, pos_byte) EMACS_INT pos, pos_byte; {