diff options
| author | Po Lu | 2023-07-09 08:40:38 +0800 |
|---|---|---|
| committer | Po Lu | 2023-07-09 08:40:38 +0800 |
| commit | f812d92f67a28f49823ff8414bb9bcfb3eb82676 (patch) | |
| tree | 08e7d08347f56cf16be643e83de8de3199bcde7d /src | |
| parent | a36207574ac436fd8871639388cc6400069bb9bb (diff) | |
| parent | 9c282faf26eb517532508d466270b7b97d436c70 (diff) | |
| download | emacs-f812d92f67a28f49823ff8414bb9bcfb3eb82676.tar.gz emacs-f812d92f67a28f49823ff8414bb9bcfb3eb82676.zip | |
Merge remote-tracking branch 'origin/master' into feature/android
Diffstat (limited to 'src')
| -rw-r--r-- | src/coding.c | 13 | ||||
| -rw-r--r-- | src/data.c | 4 | ||||
| -rw-r--r-- | src/indent.c | 37 | ||||
| -rw-r--r-- | src/lisp.h | 6 | ||||
| -rw-r--r-- | src/minibuf.c | 7 | ||||
| -rw-r--r-- | src/search.c | 51 | ||||
| -rw-r--r-- | src/treesit.c | 20 |
7 files changed, 84 insertions, 54 deletions
diff --git a/src/coding.c b/src/coding.c index 96c3827c326..b7f4120dc8d 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -11473,7 +11473,18 @@ usage: (define-coding-system-internal ...) */) | |||
| 11473 | 11473 | ||
| 11474 | DEFUN ("coding-system-put", Fcoding_system_put, Scoding_system_put, | 11474 | DEFUN ("coding-system-put", Fcoding_system_put, Scoding_system_put, |
| 11475 | 3, 3, 0, | 11475 | 3, 3, 0, |
| 11476 | doc: /* Change value in CODING-SYSTEM's property list PROP to VAL. */) | 11476 | doc: /* Change value of CODING-SYSTEM's property PROP to VAL. |
| 11477 | |||
| 11478 | The following properties, if set by this function, override the values | ||
| 11479 | of the corresponding attributes set by `define-coding-system': | ||
| 11480 | |||
| 11481 | `:mnemonic', `:default-char', `:ascii-compatible-p' | ||
| 11482 | `:decode-translation-table', `:encode-translation-table', | ||
| 11483 | `:post-read-conversion', `:pre-write-conversion' | ||
| 11484 | |||
| 11485 | See `define-coding-system' for the description of these properties. | ||
| 11486 | See `coding-system-get' and `coding-system-plist' for accessing the | ||
| 11487 | property list of a coding-system. */) | ||
| 11477 | (Lisp_Object coding_system, Lisp_Object prop, Lisp_Object val) | 11488 | (Lisp_Object coding_system, Lisp_Object prop, Lisp_Object val) |
| 11478 | { | 11489 | { |
| 11479 | Lisp_Object spec, attrs; | 11490 | Lisp_Object spec, attrs; |
diff --git a/src/data.c b/src/data.c index 9d7e7effdcd..6de8e0cf1a1 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -269,10 +269,11 @@ for example, (type-of 1) returns `integer'. */) | |||
| 269 | return Qtreesit_compiled_query; | 269 | return Qtreesit_compiled_query; |
| 270 | case PVEC_SQLITE: | 270 | case PVEC_SQLITE: |
| 271 | return Qsqlite; | 271 | return Qsqlite; |
| 272 | case PVEC_SUB_CHAR_TABLE: | ||
| 273 | return Qsub_char_table; | ||
| 272 | /* "Impossible" cases. */ | 274 | /* "Impossible" cases. */ |
| 273 | case PVEC_MISC_PTR: | 275 | case PVEC_MISC_PTR: |
| 274 | case PVEC_OTHER: | 276 | case PVEC_OTHER: |
| 275 | case PVEC_SUB_CHAR_TABLE: | ||
| 276 | case PVEC_FREE: ; | 277 | case PVEC_FREE: ; |
| 277 | } | 278 | } |
| 278 | emacs_abort (); | 279 | emacs_abort (); |
| @@ -4215,6 +4216,7 @@ syms_of_data (void) | |||
| 4215 | DEFSYM (Qvector, "vector"); | 4216 | DEFSYM (Qvector, "vector"); |
| 4216 | DEFSYM (Qrecord, "record"); | 4217 | DEFSYM (Qrecord, "record"); |
| 4217 | DEFSYM (Qchar_table, "char-table"); | 4218 | DEFSYM (Qchar_table, "char-table"); |
| 4219 | DEFSYM (Qsub_char_table, "sub-char-table"); | ||
| 4218 | DEFSYM (Qbool_vector, "bool-vector"); | 4220 | DEFSYM (Qbool_vector, "bool-vector"); |
| 4219 | DEFSYM (Qhash_table, "hash-table"); | 4221 | DEFSYM (Qhash_table, "hash-table"); |
| 4220 | DEFSYM (Qthread, "thread"); | 4222 | DEFSYM (Qthread, "thread"); |
diff --git a/src/indent.c b/src/indent.c index c3cbc49c81b..eda85f2e94d 100644 --- a/src/indent.c +++ b/src/indent.c | |||
| @@ -2149,21 +2149,33 @@ If LINES is negative, this means moving up. | |||
| 2149 | This function is an ordinary cursor motion function | 2149 | This function is an ordinary cursor motion function |
| 2150 | which calculates the new position based on how text would be displayed. | 2150 | which calculates the new position based on how text would be displayed. |
| 2151 | The new position may be the start of a line, | 2151 | The new position may be the start of a line, |
| 2152 | or just the start of a continuation line. | 2152 | or the start of a continuation line, |
| 2153 | or the start of the visible portion of a horizontally-scrolled line. | ||
| 2154 | |||
| 2153 | The function returns number of screen lines moved over; | 2155 | The function returns number of screen lines moved over; |
| 2154 | that usually equals LINES, but may be closer to zero | 2156 | that usually equals LINES, but may be closer to zero if |
| 2155 | if beginning or end of buffer was reached. | 2157 | beginning or end of buffer was reached. |
| 2156 | 2158 | ||
| 2157 | The optional second argument WINDOW specifies the window to use for | 2159 | The optional second argument WINDOW specifies the window to use for |
| 2158 | parameters such as width, horizontal scrolling, and so on. | 2160 | parameters such as width, horizontal scrolling, and so on. |
| 2159 | The default is to use the selected window's parameters. | 2161 | The default is to use the selected window's parameters. |
| 2160 | 2162 | ||
| 2163 | If LINES is zero, point will move to the first visible character on | ||
| 2164 | the current screen line. | ||
| 2165 | |||
| 2161 | LINES can optionally take the form (COLS . LINES), in which case the | 2166 | LINES can optionally take the form (COLS . LINES), in which case the |
| 2162 | motion will not stop at the start of a screen line but COLS column | 2167 | motion will stop at the COLSth column from the visual start of the |
| 2163 | from the visual start of the line (if such exists on that line, that | 2168 | line (if such column exists on that line, that is). If the line is |
| 2164 | is). If the line is scrolled horizontally, COLS is interpreted | 2169 | scrolled horizontally, COLS is interpreted visually, i.e., as addition |
| 2165 | visually, i.e., as addition to the columns of text beyond the left | 2170 | to the columns of text beyond the left edge of the window. |
| 2166 | edge of the window. | 2171 | If LINES is a cons cell, its car COLS can be a float, which allows |
| 2172 | specifying an accurate position of point on a screen line that mixes | ||
| 2173 | fonts or uses variable-pitch font: COLS is interpreted in units of the | ||
| 2174 | canonical character width, and is internally converted to pixel units; | ||
| 2175 | point will then stop at the position closest to that pixel coordinate. | ||
| 2176 | The cdr of the cons, LINES, must be an integer; if it is zero, this | ||
| 2177 | function moves point horizontally in the current screen line, to the | ||
| 2178 | position specified by COLS. | ||
| 2167 | 2179 | ||
| 2168 | The optional third argument CUR-COL specifies the horizontal | 2180 | The optional third argument CUR-COL specifies the horizontal |
| 2169 | window-relative coordinate of point, in units of frame's canonical | 2181 | window-relative coordinate of point, in units of frame's canonical |
| @@ -2171,11 +2183,10 @@ character width, where the function is invoked. If this argument is | |||
| 2171 | omitted or nil, the function will determine the point coordinate by | 2183 | omitted or nil, the function will determine the point coordinate by |
| 2172 | going back to the beginning of the line. | 2184 | going back to the beginning of the line. |
| 2173 | 2185 | ||
| 2174 | `vertical-motion' always uses the current buffer, | 2186 | `vertical-motion' always uses the current buffer, regardless of which |
| 2175 | regardless of which buffer is displayed in WINDOW. | 2187 | buffer is displayed in WINDOW. This is consistent with other cursor |
| 2176 | This is consistent with other cursor motion functions | 2188 | motion functions and makes it possible to use `vertical-motion' in any |
| 2177 | and makes it possible to use `vertical-motion' in any buffer, | 2189 | buffer, whether or not it is currently displayed in some window. */) |
| 2178 | whether or not it is currently displayed in some window. */) | ||
| 2179 | (Lisp_Object lines, Lisp_Object window, Lisp_Object cur_col) | 2190 | (Lisp_Object lines, Lisp_Object window, Lisp_Object cur_col) |
| 2180 | { | 2191 | { |
| 2181 | struct it it; | 2192 | struct it it; |
diff --git a/src/lisp.h b/src/lisp.h index 83029b8a7f0..9a4cdec2815 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -2016,9 +2016,7 @@ ASCII_CHAR_P (intmax_t c) | |||
| 2016 | range of characters. A sub-char-table is like a vector, but with | 2016 | range of characters. A sub-char-table is like a vector, but with |
| 2017 | two integer fields between the header and Lisp data, which means | 2017 | two integer fields between the header and Lisp data, which means |
| 2018 | that it has to be marked with some precautions (see mark_char_table | 2018 | that it has to be marked with some precautions (see mark_char_table |
| 2019 | in alloc.c). A sub-char-table appears only in an element of a | 2019 | in alloc.c). A sub-char-table appears in an element of a char-table. */ |
| 2020 | char-table, and there's no way to access it directly from a Lisp | ||
| 2021 | program. */ | ||
| 2022 | 2020 | ||
| 2023 | enum CHARTAB_SIZE_BITS | 2021 | enum CHARTAB_SIZE_BITS |
| 2024 | { | 2022 | { |
| @@ -4815,7 +4813,7 @@ extern ptrdiff_t find_before_next_newline (ptrdiff_t, ptrdiff_t, | |||
| 4815 | ptrdiff_t, ptrdiff_t *); | 4813 | ptrdiff_t, ptrdiff_t *); |
| 4816 | extern EMACS_INT search_buffer (Lisp_Object, ptrdiff_t, ptrdiff_t, | 4814 | extern EMACS_INT search_buffer (Lisp_Object, ptrdiff_t, ptrdiff_t, |
| 4817 | ptrdiff_t, ptrdiff_t, EMACS_INT, | 4815 | ptrdiff_t, ptrdiff_t, EMACS_INT, |
| 4818 | int, Lisp_Object, Lisp_Object, bool); | 4816 | bool, Lisp_Object, Lisp_Object, bool); |
| 4819 | extern void syms_of_search (void); | 4817 | extern void syms_of_search (void); |
| 4820 | extern void clear_regexp_cache (void); | 4818 | extern void clear_regexp_cache (void); |
| 4821 | 4819 | ||
diff --git a/src/minibuf.c b/src/minibuf.c index 6e54d8c3ba5..58adde1bf66 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -2471,7 +2471,12 @@ The basic completion functions only consider a completion acceptable | |||
| 2471 | if it matches all regular expressions in this list, with | 2471 | if it matches all regular expressions in this list, with |
| 2472 | `case-fold-search' bound to the value of `completion-ignore-case'. | 2472 | `case-fold-search' bound to the value of `completion-ignore-case'. |
| 2473 | See Info node `(elisp)Basic Completion', for a description of these | 2473 | See Info node `(elisp)Basic Completion', for a description of these |
| 2474 | functions. */); | 2474 | functions. |
| 2475 | |||
| 2476 | Do not set this variable to a non-nil value globally, as that is not | ||
| 2477 | safe and will probably cause errors in completion commands. This | ||
| 2478 | variable should be only let-bound to non-nil values around calls to | ||
| 2479 | basic completion functions like `try-completion' and `all-completions'. */); | ||
| 2475 | Vcompletion_regexp_list = Qnil; | 2480 | Vcompletion_regexp_list = Qnil; |
| 2476 | 2481 | ||
| 2477 | DEFVAR_BOOL ("minibuffer-allow-text-properties", | 2482 | DEFVAR_BOOL ("minibuffer-allow-text-properties", |
diff --git a/src/search.c b/src/search.c index 0bb52c03eef..122d6166637 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -1027,7 +1027,7 @@ find_before_next_newline (ptrdiff_t from, ptrdiff_t to, | |||
| 1027 | 1027 | ||
| 1028 | static Lisp_Object | 1028 | static Lisp_Object |
| 1029 | search_command (Lisp_Object string, Lisp_Object bound, Lisp_Object noerror, | 1029 | search_command (Lisp_Object string, Lisp_Object bound, Lisp_Object noerror, |
| 1030 | Lisp_Object count, int direction, int RE, bool posix) | 1030 | Lisp_Object count, int direction, bool RE, bool posix) |
| 1031 | { | 1031 | { |
| 1032 | EMACS_INT np; | 1032 | EMACS_INT np; |
| 1033 | EMACS_INT lim; | 1033 | EMACS_INT lim; |
| @@ -1130,21 +1130,6 @@ trivial_regexp_p (Lisp_Object regexp) | |||
| 1130 | return 1; | 1130 | return 1; |
| 1131 | } | 1131 | } |
| 1132 | 1132 | ||
| 1133 | /* Search for the n'th occurrence of STRING in the current buffer, | ||
| 1134 | starting at position POS and stopping at position LIM, | ||
| 1135 | treating STRING as a literal string if RE is false or as | ||
| 1136 | a regular expression if RE is true. | ||
| 1137 | |||
| 1138 | If N is positive, searching is forward and LIM must be greater than POS. | ||
| 1139 | If N is negative, searching is backward and LIM must be less than POS. | ||
| 1140 | |||
| 1141 | Returns -x if x occurrences remain to be found (x > 0), | ||
| 1142 | or else the position at the beginning of the Nth occurrence | ||
| 1143 | (if searching backward) or the end (if searching forward). | ||
| 1144 | |||
| 1145 | POSIX is nonzero if we want full backtracking (POSIX style) | ||
| 1146 | for this pattern. 0 means backtrack only enough to get a valid match. */ | ||
| 1147 | |||
| 1148 | #define TRANSLATE(out, trt, d) \ | 1133 | #define TRANSLATE(out, trt, d) \ |
| 1149 | do \ | 1134 | do \ |
| 1150 | { \ | 1135 | { \ |
| @@ -1308,7 +1293,7 @@ search_buffer_re (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, | |||
| 1308 | static EMACS_INT | 1293 | static EMACS_INT |
| 1309 | search_buffer_non_re (Lisp_Object string, ptrdiff_t pos, | 1294 | search_buffer_non_re (Lisp_Object string, ptrdiff_t pos, |
| 1310 | ptrdiff_t pos_byte, ptrdiff_t lim, ptrdiff_t lim_byte, | 1295 | ptrdiff_t pos_byte, ptrdiff_t lim, ptrdiff_t lim_byte, |
| 1311 | EMACS_INT n, int RE, Lisp_Object trt, Lisp_Object inverse_trt, | 1296 | EMACS_INT n, bool RE, Lisp_Object trt, Lisp_Object inverse_trt, |
| 1312 | bool posix) | 1297 | bool posix) |
| 1313 | { | 1298 | { |
| 1314 | unsigned char *raw_pattern, *pat; | 1299 | unsigned char *raw_pattern, *pat; |
| @@ -1507,10 +1492,28 @@ search_buffer_non_re (Lisp_Object string, ptrdiff_t pos, | |||
| 1507 | return result; | 1492 | return result; |
| 1508 | } | 1493 | } |
| 1509 | 1494 | ||
| 1495 | /* Search for the Nth occurrence of STRING in the current buffer, | ||
| 1496 | from buffer position POS/POS_BYTE until LIM/LIM_BYTE. | ||
| 1497 | |||
| 1498 | If RE, look for matches against the regular expression STRING instead; | ||
| 1499 | if POSIX, enable POSIX style backtracking within that regular | ||
| 1500 | expression. | ||
| 1501 | |||
| 1502 | If N is positive, search forward; in this case, LIM must be greater | ||
| 1503 | than POS. | ||
| 1504 | |||
| 1505 | If N is negative, search backward; LIM must be less than POS. | ||
| 1506 | |||
| 1507 | Return -X if there are X remaining occurrences or matches, | ||
| 1508 | or else the position at the beginning (if N is negative) or the end | ||
| 1509 | (if N is positive) of the Nth occurrence or match against STRING. | ||
| 1510 | |||
| 1511 | Use TRT and INVERSE_TRT as character translation tables. */ | ||
| 1512 | |||
| 1510 | EMACS_INT | 1513 | EMACS_INT |
| 1511 | search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, | 1514 | search_buffer (Lisp_Object string, ptrdiff_t pos, ptrdiff_t pos_byte, |
| 1512 | ptrdiff_t lim, ptrdiff_t lim_byte, EMACS_INT n, | 1515 | ptrdiff_t lim, ptrdiff_t lim_byte, EMACS_INT n, |
| 1513 | int RE, Lisp_Object trt, Lisp_Object inverse_trt, bool posix) | 1516 | bool RE, Lisp_Object trt, Lisp_Object inverse_trt, bool posix) |
| 1514 | { | 1517 | { |
| 1515 | if (running_asynch_code) | 1518 | if (running_asynch_code) |
| 1516 | save_search_regs (); | 1519 | save_search_regs (); |
| @@ -2219,7 +2222,7 @@ Search case-sensitivity is determined by the value of the variable | |||
| 2219 | See also the functions `match-beginning', `match-end' and `replace-match'. */) | 2222 | See also the functions `match-beginning', `match-end' and `replace-match'. */) |
| 2220 | (Lisp_Object string, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) | 2223 | (Lisp_Object string, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) |
| 2221 | { | 2224 | { |
| 2222 | return search_command (string, bound, noerror, count, -1, 0, 0); | 2225 | return search_command (string, bound, noerror, count, -1, false, false); |
| 2223 | } | 2226 | } |
| 2224 | 2227 | ||
| 2225 | DEFUN ("search-forward", Fsearch_forward, Ssearch_forward, 1, 4, "MSearch: ", | 2228 | DEFUN ("search-forward", Fsearch_forward, Ssearch_forward, 1, 4, "MSearch: ", |
| @@ -2244,7 +2247,7 @@ Search case-sensitivity is determined by the value of the variable | |||
| 2244 | See also the functions `match-beginning', `match-end' and `replace-match'. */) | 2247 | See also the functions `match-beginning', `match-end' and `replace-match'. */) |
| 2245 | (Lisp_Object string, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) | 2248 | (Lisp_Object string, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) |
| 2246 | { | 2249 | { |
| 2247 | return search_command (string, bound, noerror, count, 1, 0, 0); | 2250 | return search_command (string, bound, noerror, count, 1, false, false); |
| 2248 | } | 2251 | } |
| 2249 | 2252 | ||
| 2250 | DEFUN ("re-search-backward", Fre_search_backward, Sre_search_backward, 1, 4, | 2253 | DEFUN ("re-search-backward", Fre_search_backward, Sre_search_backward, 1, 4, |
| @@ -2260,7 +2263,7 @@ because REGEXP is still matched in the forward direction. See Info | |||
| 2260 | anchor `(elisp) re-search-backward' for details. */) | 2263 | anchor `(elisp) re-search-backward' for details. */) |
| 2261 | (Lisp_Object regexp, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) | 2264 | (Lisp_Object regexp, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) |
| 2262 | { | 2265 | { |
| 2263 | return search_command (regexp, bound, noerror, count, -1, 1, 0); | 2266 | return search_command (regexp, bound, noerror, count, -1, true, false); |
| 2264 | } | 2267 | } |
| 2265 | 2268 | ||
| 2266 | DEFUN ("re-search-forward", Fre_search_forward, Sre_search_forward, 1, 4, | 2269 | DEFUN ("re-search-forward", Fre_search_forward, Sre_search_forward, 1, 4, |
| @@ -2291,7 +2294,7 @@ See also the functions `match-beginning', `match-end', `match-string', | |||
| 2291 | and `replace-match'. */) | 2294 | and `replace-match'. */) |
| 2292 | (Lisp_Object regexp, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) | 2295 | (Lisp_Object regexp, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) |
| 2293 | { | 2296 | { |
| 2294 | return search_command (regexp, bound, noerror, count, 1, 1, 0); | 2297 | return search_command (regexp, bound, noerror, count, 1, true, false); |
| 2295 | } | 2298 | } |
| 2296 | 2299 | ||
| 2297 | DEFUN ("posix-search-backward", Fposix_search_backward, Sposix_search_backward, 1, 4, | 2300 | DEFUN ("posix-search-backward", Fposix_search_backward, Sposix_search_backward, 1, 4, |
| @@ -2319,7 +2322,7 @@ See also the functions `match-beginning', `match-end', `match-string', | |||
| 2319 | and `replace-match'. */) | 2322 | and `replace-match'. */) |
| 2320 | (Lisp_Object regexp, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) | 2323 | (Lisp_Object regexp, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) |
| 2321 | { | 2324 | { |
| 2322 | return search_command (regexp, bound, noerror, count, -1, 1, 1); | 2325 | return search_command (regexp, bound, noerror, count, -1, true, true); |
| 2323 | } | 2326 | } |
| 2324 | 2327 | ||
| 2325 | DEFUN ("posix-search-forward", Fposix_search_forward, Sposix_search_forward, 1, 4, | 2328 | DEFUN ("posix-search-forward", Fposix_search_forward, Sposix_search_forward, 1, 4, |
| @@ -2347,7 +2350,7 @@ See also the functions `match-beginning', `match-end', `match-string', | |||
| 2347 | and `replace-match'. */) | 2350 | and `replace-match'. */) |
| 2348 | (Lisp_Object regexp, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) | 2351 | (Lisp_Object regexp, Lisp_Object bound, Lisp_Object noerror, Lisp_Object count) |
| 2349 | { | 2352 | { |
| 2350 | return search_command (regexp, bound, noerror, count, 1, 1, 1); | 2353 | return search_command (regexp, bound, noerror, count, 1, true, true); |
| 2351 | } | 2354 | } |
| 2352 | 2355 | ||
| 2353 | DEFUN ("replace-match", Freplace_match, Sreplace_match, 1, 5, 0, | 2356 | DEFUN ("replace-match", Freplace_match, Sreplace_match, 1, 5, 0, |
diff --git a/src/treesit.c b/src/treesit.c index 87aa1eeb377..1f694e47201 100644 --- a/src/treesit.c +++ b/src/treesit.c | |||
| @@ -1649,7 +1649,7 @@ buffer. */) | |||
| 1649 | TSRange *treesit_ranges = xmalloc (sizeof (TSRange) * len); | 1649 | TSRange *treesit_ranges = xmalloc (sizeof (TSRange) * len); |
| 1650 | struct buffer *buffer = XBUFFER (XTS_PARSER (parser)->buffer); | 1650 | struct buffer *buffer = XBUFFER (XTS_PARSER (parser)->buffer); |
| 1651 | 1651 | ||
| 1652 | /* We can use XFUXNUM, XCAR, XCDR freely because we have checked | 1652 | /* We can use XFIXNUM, XCAR, XCDR freely because we have checked |
| 1653 | the input by treesit_check_range_argument. */ | 1653 | the input by treesit_check_range_argument. */ |
| 1654 | 1654 | ||
| 1655 | for (int idx = 0; !NILP (ranges); idx++, ranges = XCDR (ranges)) | 1655 | for (int idx = 0; !NILP (ranges); idx++, ranges = XCDR (ranges)) |
| @@ -2546,10 +2546,10 @@ static bool | |||
| 2546 | treesit_predicate_equal (Lisp_Object args, struct capture_range captures, | 2546 | treesit_predicate_equal (Lisp_Object args, struct capture_range captures, |
| 2547 | Lisp_Object *signal_data) | 2547 | Lisp_Object *signal_data) |
| 2548 | { | 2548 | { |
| 2549 | if (XFIXNUM (Flength (args)) != 2) | 2549 | if (list_length (args) != 2) |
| 2550 | { | 2550 | { |
| 2551 | *signal_data = list2 (build_string ("Predicate `equal' requires " | 2551 | *signal_data = list2 (build_string ("Predicate `equal' requires " |
| 2552 | "two arguments but only given"), | 2552 | "two arguments but got"), |
| 2553 | Flength (args)); | 2553 | Flength (args)); |
| 2554 | return false; | 2554 | return false; |
| 2555 | } | 2555 | } |
| @@ -2581,10 +2581,10 @@ static bool | |||
| 2581 | treesit_predicate_match (Lisp_Object args, struct capture_range captures, | 2581 | treesit_predicate_match (Lisp_Object args, struct capture_range captures, |
| 2582 | Lisp_Object *signal_data) | 2582 | Lisp_Object *signal_data) |
| 2583 | { | 2583 | { |
| 2584 | if (XFIXNUM (Flength (args)) != 2) | 2584 | if (list_length (args) != 2) |
| 2585 | { | 2585 | { |
| 2586 | *signal_data = list2 (build_string ("Predicate `match' requires two " | 2586 | *signal_data = list2 (build_string ("Predicate `match' requires two " |
| 2587 | "arguments but only given"), | 2587 | "arguments but got"), |
| 2588 | Flength (args)); | 2588 | Flength (args)); |
| 2589 | return false; | 2589 | return false; |
| 2590 | } | 2590 | } |
| @@ -2628,7 +2628,7 @@ treesit_predicate_match (Lisp_Object args, struct capture_range captures, | |||
| 2628 | ZV_BYTE = end_byte; | 2628 | ZV_BYTE = end_byte; |
| 2629 | 2629 | ||
| 2630 | ptrdiff_t val = search_buffer (regexp, start_pos, start_byte, | 2630 | ptrdiff_t val = search_buffer (regexp, start_pos, start_byte, |
| 2631 | end_pos, end_byte, 1, 1, Qnil, Qnil, false); | 2631 | end_pos, end_byte, 1, true, Qnil, Qnil, false); |
| 2632 | 2632 | ||
| 2633 | BEGV = old_begv; | 2633 | BEGV = old_begv; |
| 2634 | BEGV_BYTE = old_begv_byte; | 2634 | BEGV_BYTE = old_begv_byte; |
| @@ -2646,11 +2646,11 @@ static bool | |||
| 2646 | treesit_predicate_pred (Lisp_Object args, struct capture_range captures, | 2646 | treesit_predicate_pred (Lisp_Object args, struct capture_range captures, |
| 2647 | Lisp_Object *signal_data) | 2647 | Lisp_Object *signal_data) |
| 2648 | { | 2648 | { |
| 2649 | if (XFIXNUM (Flength (args)) < 2) | 2649 | if (list_length (args) < 2) |
| 2650 | { | 2650 | { |
| 2651 | *signal_data = list2 (build_string ("Predicate `pred' requires " | 2651 | *signal_data = list2 (build_string ("Predicate `pred' requires " |
| 2652 | "at least two arguments, " | 2652 | "at least two arguments, " |
| 2653 | "but was only given"), | 2653 | "but only got"), |
| 2654 | Flength (args)); | 2654 | Flength (args)); |
| 2655 | return false; | 2655 | return false; |
| 2656 | } | 2656 | } |
| @@ -2671,7 +2671,7 @@ treesit_predicate_pred (Lisp_Object args, struct capture_range captures, | |||
| 2671 | return !NILP (CALLN (Fapply, fn, nodes)); | 2671 | return !NILP (CALLN (Fapply, fn, nodes)); |
| 2672 | } | 2672 | } |
| 2673 | 2673 | ||
| 2674 | /* If all predicates in PREDICATES passes, return true; otherwise | 2674 | /* If all predicates in PREDICATES pass, return true; otherwise |
| 2675 | return false. If everything goes fine, don't touch SIGNAL_DATA; if | 2675 | return false. If everything goes fine, don't touch SIGNAL_DATA; if |
| 2676 | error occurs, set it to a suitable signal data. */ | 2676 | error occurs, set it to a suitable signal data. */ |
| 2677 | static bool | 2677 | static bool |
| @@ -2696,7 +2696,7 @@ treesit_eval_predicates (struct capture_range captures, Lisp_Object predicates, | |||
| 2696 | { | 2696 | { |
| 2697 | *signal_data = list3 (build_string ("Invalid predicate"), | 2697 | *signal_data = list3 (build_string ("Invalid predicate"), |
| 2698 | fn, build_string ("Currently Emacs only supports" | 2698 | fn, build_string ("Currently Emacs only supports" |
| 2699 | " equal, match, and pred" | 2699 | " `equal', `match', and `pred'" |
| 2700 | " predicates")); | 2700 | " predicates")); |
| 2701 | pass = false; | 2701 | pass = false; |
| 2702 | } | 2702 | } |