Mercurial > hg > xemacs-beta
view src/s/netbsd.h @ 4407:4ee73bbe4f8e
Always use boyer_moore in ASCII or Latin-1 buffers with ASCII search strings.
2007-12-26 Aidan Kehoe <kehoea@parhasard.net>
* casetab.c:
Extend and correct some case table documentation.
* search.c (search_buffer):
Correct a bug where only the first entry for a character in the
case equivalence table was examined in determining if the
Boyer-Moore search algorithm is appropriate.
If there are case mappings outside of the charset and row of the
characters specified in the search string, those case mappings can
be safely ignored (and Boyer-Moore search can be used) if we know
from the buffer statistics that the corresponding characters cannot
occur.
* search.c (boyer_moore):
Assert that we haven't been passed a string with varying
characters sets or rows within character sets. That's what
simple_search is for.
In the very rare event that a character in the search string has a
canonical case mapping that is not in the same character set and
row, don't try to search for the canonical character, search for
some other character that is in the the desired character set and
row. Assert that the case table isn't corrupt.
Do not search for any character case mappings that cannot possibly
occur in the buffer, given the buffer metadata about its
contents.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Wed, 26 Dec 2007 17:30:16 +0100 |
parents | 14227e8a3f1f |
children | 2a8a04f73c15 861f2601a38b |
line wrap: on
line source
/* Synched up with: FSF 19.31. */ /* s/ file for netbsd system. */ /* Get most of the stuff from bsd4.3 */ #include "bsd4-3.h" #undef BSD #ifndef NOT_C_CODE #include <sys/param.h> #include <sys/exec.h> #endif /* C_CODE */ /* For mem-limits.h. */ #define BSD4_2 #undef KERNEL_FILE #undef LDAV_SYMBOL #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) #define A_TEXT_OFFSET(x) (sizeof (struct exec)) #define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr)) #define LIBS_DEBUG /* -lutil is not needed for NetBSD >0.9. */ /* #define LIBS_SYSTEM -lutil */ /* XEmacs change */ #define LIBS_TERMCAP "-ltermcap" #define NEED_ERRNO #if 0 /* mrb */ #ifndef NO_SHARED_LIBS /* These definitions should work for either dynamic or static linking, whichever is the default for `cc -nostdlib'. */ /* but they probably don't, and life's too short - jrg@doc.ic.ac.uk ask for no shared libs if you have 0.9 */ /* mrb -- ORDINARY_LINK works just fine... */ #define LD_SWITCH_SYSTEM "-e start" #define START_FILES "pre-crt0.o /usr/lib/crt0.o" #define RUN_TIME_REMAP #else #define START_FILES "crt0.o" #endif /* not NO_SHARED_LIBS */ #endif /* 0 - mrb */ #define HAVE_TEXT_START /* No need to define `start_of_text'. */ #define ORDINARY_LINK /* As of this writing (Netbsd 1.5 was just released), Netbsd is converting from a.out to elf - x86 and Sparc are using ELF. But we're clever and let the compiler tell us which one to use. */ #ifdef __ELF__ #define UNEXEC "unexelf.o" #else #define UNEXEC "unexfreebsd.o" /* ironic, considering history of unexfreebsd */ #endif #if 0 /* Try to make this work for both 0.9 and >0.9. */ #define N_PAGSIZ(x) __LDPGSZ #define N_BSSADDR(x) (N_ALIGN(x, N_DATADDR(x)+x.a_data)) /* #define N_TRELOFF(x) N_RELOFF(x) */ /* the 1.0 way.. */ #endif /* 0 */ #define N_RELOFF(x) N_TRELOFF(x) #define NO_MATHERR #define AMPERSAND_FULL_NAME