diff options
| author | Richard M. Stallman | 1998-05-01 04:51:20 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1998-05-01 04:51:20 +0000 |
| commit | 1e9582d459d99b4137d2dfd41b7c7b47ecaf5cac (patch) | |
| tree | 8aac4116ff8f0c207e99bf0be1b442321074059a /src/search.c | |
| parent | b662c4bc6bc1503dac6cf2c27a3351232204de55 (diff) | |
| download | emacs-1e9582d459d99b4137d2dfd41b7c7b47ecaf5cac.tar.gz emacs-1e9582d459d99b4137d2dfd41b7c7b47ecaf5cac.zip | |
(wordify): Do the second loop by chars, not by bytes.
Diffstat (limited to 'src/search.c')
| -rw-r--r-- | src/search.c | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/src/search.c b/src/search.c index 90155806e24..fc4142ce478 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -1958,18 +1958,35 @@ wordify (string) | |||
| 1958 | o = XSTRING (val)->data; | 1958 | o = XSTRING (val)->data; |
| 1959 | *o++ = '\\'; | 1959 | *o++ = '\\'; |
| 1960 | *o++ = 'b'; | 1960 | *o++ = 'b'; |
| 1961 | prev_c = 0; | ||
| 1961 | 1962 | ||
| 1962 | for (i = 0; i < STRING_BYTES (XSTRING (val)); i++) | 1963 | for (i = 0, i_byte = 0; i < len; ) |
| 1963 | if (SYNTAX (p[i]) == Sword) | 1964 | { |
| 1964 | *o++ = p[i]; | 1965 | int c; |
| 1965 | else if (i > 0 && SYNTAX (p[i-1]) == Sword && --word_count) | 1966 | int i_byte_orig = i_byte; |
| 1966 | { | 1967 | |
| 1967 | *o++ = '\\'; | 1968 | if (STRING_MULTIBYTE (string)) |
| 1968 | *o++ = 'W'; | 1969 | FETCH_STRING_CHAR_ADVANCE (c, string, i, i_byte); |
| 1969 | *o++ = '\\'; | 1970 | else |
| 1970 | *o++ = 'W'; | 1971 | c = XSTRING (string)->data[i++]; |
| 1971 | *o++ = '*'; | 1972 | |
| 1972 | } | 1973 | if (SYNTAX (c) == Sword) |
| 1974 | { | ||
| 1975 | bcopy (&XSTRING (string)->data[i_byte_orig], o, | ||
| 1976 | i_byte - i_byte_orig); | ||
| 1977 | o += i_byte - i_byte_orig; | ||
| 1978 | } | ||
| 1979 | else if (i > 0 && SYNTAX (prev_c) == Sword && --word_count) | ||
| 1980 | { | ||
| 1981 | *o++ = '\\'; | ||
| 1982 | *o++ = 'W'; | ||
| 1983 | *o++ = '\\'; | ||
| 1984 | *o++ = 'W'; | ||
| 1985 | *o++ = '*'; | ||
| 1986 | } | ||
| 1987 | |||
| 1988 | prev_c = c; | ||
| 1989 | } | ||
| 1973 | 1990 | ||
| 1974 | *o++ = '\\'; | 1991 | *o++ = '\\'; |
| 1975 | *o++ = 'b'; | 1992 | *o++ = 'b'; |