Mercurial > emacs
diff src/search.c @ 46370:40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
SCHARS, SBYTES, STRING_INTERVALS, SREF, SDATA; explicit size_byte references
left unchanged for now.
| author | Ken Raeburn <raeburn@raeburn.org> |
|---|---|
| date | Mon, 15 Jul 2002 00:00:41 +0000 |
| parents | eeec3bb72a1b |
| children | a4697b0a338e |
line wrap: on
line diff
--- a/src/search.c Sun Jul 14 23:54:05 2002 +0000 +++ b/src/search.c Mon Jul 15 00:00:41 2002 +0000 @@ -128,16 +128,16 @@ if (multibyte == STRING_MULTIBYTE (pattern)) { - raw_pattern = (unsigned char *) XSTRING (pattern)->data; - raw_pattern_size = STRING_BYTES (XSTRING (pattern)); + raw_pattern = (unsigned char *) SDATA (pattern); + raw_pattern_size = SBYTES (pattern); } else if (multibyte) { - raw_pattern_size = count_size_as_multibyte (XSTRING (pattern)->data, - XSTRING (pattern)->size); + raw_pattern_size = count_size_as_multibyte (SDATA (pattern), + SCHARS (pattern)); raw_pattern = (unsigned char *) alloca (raw_pattern_size + 1); - copy_text (XSTRING (pattern)->data, raw_pattern, - XSTRING (pattern)->size, 0, 1); + copy_text (SDATA (pattern), raw_pattern, + SCHARS (pattern), 0, 1); } else { @@ -147,10 +147,10 @@ by subtracting nonascii-insert-offset from each non-ASCII char, so that only the multibyte chars which really correspond to the chosen single-byte character set can possibly match. */ - raw_pattern_size = XSTRING (pattern)->size; + raw_pattern_size = SCHARS (pattern); raw_pattern = (unsigned char *) alloca (raw_pattern_size + 1); - copy_text (XSTRING (pattern)->data, raw_pattern, - STRING_BYTES (XSTRING (pattern)), 1, 0); + copy_text (SDATA (pattern), raw_pattern, + SBYTES (pattern), 1, 0); } cp->regexp = Qnil; @@ -217,7 +217,7 @@ should never appear before a non-nil entry. */ if (NILP (cp->regexp)) goto compile_it; - if (XSTRING (cp->regexp)->size == XSTRING (pattern)->size + if (SCHARS (cp->regexp) == SCHARS (pattern) && STRING_MULTIBYTE (cp->regexp) == STRING_MULTIBYTE (pattern) && !NILP (Fstring_equal (cp->regexp, pattern)) && EQ (cp->buf.translate, (! NILP (translate) ? translate : make_number (0))) @@ -372,7 +372,7 @@ pos = 0, pos_byte = 0; else { - int len = XSTRING (string)->size; + int len = SCHARS (string); CHECK_NUMBER (start); pos = XINT (start); @@ -391,9 +391,9 @@ immediate_quit = 1; re_match_object = string; - val = re_search (bufp, (char *) XSTRING (string)->data, - STRING_BYTES (XSTRING (string)), pos_byte, - STRING_BYTES (XSTRING (string)) - pos_byte, + val = re_search (bufp, (char *) SDATA (string), + SBYTES (string), pos_byte, + SBYTES (string) - pos_byte, &search_regs); immediate_quit = 0; last_thing_searched = Qt; @@ -456,9 +456,9 @@ immediate_quit = 1; re_match_object = string; - val = re_search (bufp, (char *) XSTRING (string)->data, - STRING_BYTES (XSTRING (string)), 0, - STRING_BYTES (XSTRING (string)), 0); + val = re_search (bufp, (char *) SDATA (string), + SBYTES (string), 0, + SBYTES (string), 0); immediate_quit = 0; return val; } @@ -939,8 +939,8 @@ trivial_regexp_p (regexp) Lisp_Object regexp; { - int len = STRING_BYTES (XSTRING (regexp)); - unsigned char *s = XSTRING (regexp)->data; + int len = SBYTES (regexp); + unsigned char *s = SDATA (regexp); while (--len >= 0) { switch (*s++) @@ -1011,8 +1011,8 @@ Lisp_Object inverse_trt; int posix; { - int len = XSTRING (string)->size; - int len_byte = STRING_BYTES (XSTRING (string)); + int len = SCHARS (string); + int len_byte = SBYTES (string); register int i; if (running_asynch_code) @@ -1136,7 +1136,7 @@ int raw_pattern_size_byte; unsigned char *patbuf; int multibyte = !NILP (current_buffer->enable_multibyte_characters); - unsigned char *base_pat = XSTRING (string)->data; + unsigned char *base_pat = SDATA (string); int charset_base = -1; int boyer_moore_ok = 1; @@ -1146,19 +1146,19 @@ if (multibyte == STRING_MULTIBYTE (string)) { - raw_pattern = (unsigned char *) XSTRING (string)->data; - raw_pattern_size = XSTRING (string)->size; - raw_pattern_size_byte = STRING_BYTES (XSTRING (string)); + raw_pattern = (unsigned char *) SDATA (string); + raw_pattern_size = SCHARS (string); + raw_pattern_size_byte = SBYTES (string); } else if (multibyte) { - raw_pattern_size = XSTRING (string)->size; + raw_pattern_size = SCHARS (string); raw_pattern_size_byte - = count_size_as_multibyte (XSTRING (string)->data, + = count_size_as_multibyte (SDATA (string), raw_pattern_size); raw_pattern = (unsigned char *) alloca (raw_pattern_size_byte + 1); - copy_text (XSTRING (string)->data, raw_pattern, - XSTRING (string)->size, 0, 1); + copy_text (SDATA (string), raw_pattern, + SCHARS (string), 0, 1); } else { @@ -1168,11 +1168,11 @@ by subtracting nonascii-insert-offset from each non-ASCII char, so that only the multibyte chars which really correspond to the chosen single-byte character set can possibly match. */ - raw_pattern_size = XSTRING (string)->size; - raw_pattern_size_byte = XSTRING (string)->size; + raw_pattern_size = SCHARS (string); + raw_pattern_size_byte = SCHARS (string); raw_pattern = (unsigned char *) alloca (raw_pattern_size + 1); - copy_text (XSTRING (string)->data, raw_pattern, - STRING_BYTES (XSTRING (string)), 1, 0); + copy_text (SDATA (string), raw_pattern, + SBYTES (string), 1, 0); } /* Copy and optionally translate the pattern. */ @@ -1948,8 +1948,8 @@ int adjust; CHECK_STRING (string); - p = XSTRING (string)->data; - len = XSTRING (string)->size; + p = SDATA (string); + len = SCHARS (string); for (i = 0, i_byte = 0; i < len; ) { @@ -1975,12 +1975,12 @@ adjust = - punct_count + 5 * (word_count - 1) + 4; if (STRING_MULTIBYTE (string)) val = make_uninit_multibyte_string (len + adjust, - STRING_BYTES (XSTRING (string)) + SBYTES (string) + adjust); else val = make_uninit_string (len + adjust); - o = XSTRING (val)->data; + o = SDATA (val); *o++ = '\\'; *o++ = 'b'; prev_c = 0; @@ -1994,7 +1994,7 @@ if (SYNTAX (c) == Sword) { - bcopy (&XSTRING (string)->data[i_byte_orig], o, + bcopy (&SREF (string, i_byte_orig), o, i_byte - i_byte_orig); o += i_byte - i_byte_orig; } @@ -2242,7 +2242,7 @@ { if (search_regs.start[sub] < 0 || search_regs.start[sub] > search_regs.end[sub] - || search_regs.end[sub] > XSTRING (string)->size) + || search_regs.end[sub] > SCHARS (string)) args_out_of_range (make_number (search_regs.start[sub]), make_number (search_regs.end[sub])); } @@ -2342,7 +2342,7 @@ /* We build up the substituted string in ACCUM. */ Lisp_Object accum; Lisp_Object middle; - int length = STRING_BYTES (XSTRING (newtext)); + int length = SBYTES (newtext); accum = Qnil; @@ -2434,7 +2434,7 @@ perform substitution on the replacement string. */ if (NILP (literal)) { - int length = STRING_BYTES (XSTRING (newtext)); + int length = SBYTES (newtext); unsigned char *substed; int substed_alloc_size, substed_len; int buf_multibyte = !NILP (current_buffer->enable_multibyte_characters); @@ -2471,7 +2471,7 @@ else { /* Note that we don't have to increment POS. */ - c = XSTRING (newtext)->data[pos_byte++]; + c = SDATA (newtext)[pos_byte++]; if (buf_multibyte) c = unibyte_char_to_multibyte (c); } @@ -2493,7 +2493,7 @@ } else { - c = XSTRING (newtext)->data[pos_byte++]; + c = SREF (newtext, pos_byte++); if (buf_multibyte) c = unibyte_char_to_multibyte (c); } @@ -2558,7 +2558,7 @@ /* Replace the old text with the new in the cleanest possible way. */ replace_range (search_regs.start[sub], search_regs.end[sub], newtext, 1, 0, 1); - newpoint = search_regs.start[sub] + XSTRING (newtext)->size; + newpoint = search_regs.start[sub] + SCHARS (newtext); if (case_action == all_caps) Fupcase_region (make_number (search_regs.start[sub]), @@ -2849,12 +2849,12 @@ CHECK_STRING (string); - temp = (unsigned char *) alloca (STRING_BYTES (XSTRING (string)) * 2); + temp = (unsigned char *) alloca (SBYTES (string) * 2); /* Now copy the data into the new string, inserting escapes. */ - in = XSTRING (string)->data; - end = in + STRING_BYTES (XSTRING (string)); + in = SDATA (string); + end = in + SBYTES (string); out = temp; for (; in != end; in++) @@ -2868,7 +2868,7 @@ } return make_specified_string (temp, - XSTRING (string)->size + backslashes_added, + SCHARS (string) + backslashes_added, out - temp, STRING_MULTIBYTE (string)); }
