projects
/
sxemacs
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More eliminate silly warnings
[sxemacs]
/
src
/
search.c
diff --git
a/src/search.c
b/src/search.c
index
52271ce
..
ff9f338
100644
(file)
--- a/
src/search.c
+++ b/
src/search.c
@@
-46,9
+46,11
@@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
(!NILP (table) ? TRT_TABLE_OF (table, (Emchar) pos) : pos)
\f
#include "elhash.h"
(!NILP (table) ? TRT_TABLE_OF (table, (Emchar) pos) : pos)
\f
#include "elhash.h"
+/* Make sure these are ALWAYS powers of 2 */
#define REGEXP_CACHE_SIZE 0x80
#define REGEXP_CACHE_HASH_MASK (REGEXP_CACHE_SIZE-1)
#define REGEXP_FASTMAP_SIZE 0400
#define REGEXP_CACHE_SIZE 0x80
#define REGEXP_CACHE_HASH_MASK (REGEXP_CACHE_SIZE-1)
#define REGEXP_FASTMAP_SIZE 0400
+#define REGEXP_FASTMAP_MASK (REGEXP_FASTMAP_SIZE-1)
#define __REGEXP_DEBUG__(args...) fprintf(stderr, "REGEXP " args)
#ifndef REGEXP_DEBUG_FLAG
#define __REGEXP_DEBUG__(args...) fprintf(stderr, "REGEXP " args)
#ifndef REGEXP_DEBUG_FLAG
@@
-333,7
+335,7
@@
compile_pattern(Lisp_Object pattern,
static void
compre_prfun(Lisp_Object obj, Lisp_Object pcfun, int escflag)
{
static void
compre_prfun(Lisp_Object obj, Lisp_Object pcfun, int escflag)
{
- write_fmt_str(pcfun, "#<compiled regexp %lx",
+ write_fmt_str(pcfun, "#<compiled regexp %lx",
(long unsigned int)((COMPRE_GET(obj))->buffer));
if (escflag);
}
(long unsigned int)((COMPRE_GET(obj))->buffer));
if (escflag);
}
@@
-747,7
+749,7
@@
fast_string_match(Lisp_Object regexp, const Bufbyte * nonreloc,
fixup_internal_substring(nonreloc, reloc, offset, &length);
fixup_internal_substring(nonreloc, reloc, offset, &length);
-
+
if (!NILP(reloc)) {
if (no_quit) {
newnonreloc = XSTRING_DATA(reloc);
if (!NILP(reloc)) {
if (no_quit) {
newnonreloc = XSTRING_DATA(reloc);
@@
-764,8
+766,11
@@
fast_string_match(Lisp_Object regexp, const Bufbyte * nonreloc,
return with failure...
*/
return -1;
return with failure...
*/
return -1;
- newnonreloc = alloca(length);
- memcpy((void*)newnonreloc, (void*)XSTRING_DATA(reloc), length);
+ Bufbyte *copy = alloca(length);
+ memcpy((void*)copy,
+ (const void*)XSTRING_DATA(reloc),
+ length);
+ newnonreloc = copy;
}
}
}
}
@@
-1867,9
+1872,9
@@
boyer_moore(struct buffer *buf, Bufbyte * base_pat, Bytecount len,
this_translated = 0;
}
if (ch > REGEXP_FASTMAP_SIZE)
this_translated = 0;
}
if (ch > REGEXP_FASTMAP_SIZE)
- j = ((unsigned char)
ch
| 0200);
+ j = ((unsigned char)
(ch & REGEXP_FASTMAP_MASK)
| 0200);
else
else
- j = (unsigned char)
ch
;
+ j = (unsigned char)
(ch & REGEXP_FASTMAP_MASK)
;
if (i == infinity)
stride_for_teases = BM_tab[j];
if (i == infinity)
stride_for_teases = BM_tab[j];
@@
-1882,9
+1887,9
@@
boyer_moore(struct buffer *buf, Bufbyte * base_pat, Bytecount len,
while (1) {
ch = TRANSLATE(inverse_trt, ch);
if (ch > REGEXP_FASTMAP_SIZE)
while (1) {
ch = TRANSLATE(inverse_trt, ch);
if (ch > REGEXP_FASTMAP_SIZE)
- j = ((unsigned char)
ch
| 0200);
+ j = ((unsigned char)
(ch & REGEXP_FASTMAP_MASK)
| 0200);
else
else
- j = (unsigned char)
ch
;
+ j = (unsigned char)
(ch & REGEXP_FASTMAP_MASK)
;
/* For all the characters that map into CH,
set up simple_translate to map the last byte
/* For all the characters that map into CH,
set up simple_translate to map the last byte