annotate modules/zlib/Makefile @ 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 abe6d1db359e
children b44930391f7d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 #
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 # Sample makefile for a simple Emacs module.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 # This is slightly more complicated than would normally be the case,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 # as this makefile has been tailored to work in the Emacs source tree.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 # For samples of how to compile modules outside of the source tree
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 # (as would be the case if a user had downloaded a module and wanted
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 # to compile it for use within Emacs), see the samples in the sub-directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 # 'installed'.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 #
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
11 SHELL=/bin/sh
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
12 RM=rm -f
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 CC=../../lib-src/ellcc
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 CFLAGS=-I. -I../../src
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 LD=$(CC) --mode=link
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 MKINIT=$(CC) --mode=init
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 SRCS=zlib.c
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 OBJS=$(SRCS:.c=.o)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 .c.o:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 $(CC) $(CFLAGS) -c $<
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 MODNAME=zlib
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 MODVER=1.0.4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 MODTITLE="ZLIB compression library interface"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 all: $(MODNAME).ell
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 distclean: clean
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 clean:
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 428
diff changeset
33 $(RM) $(MODNAME).ell $(OBJS) zlib_i.o zlib_i.c
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 $(MODNAME).ell: $(OBJS) zlib_i.o
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 $(LD) --mod-output=$@ $(OBJS) zlib_i.o
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 zlib_i.o: zlib_i.c
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 zlib_i.c: $(SRCS)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 ELLMAKEDOC=../../lib-src/make-docfile $(MKINIT) --mod-output=$@ \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 --mod-name=$(MODNAME) --mod-version=$(MODVER) \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 --mod-title=$(MODTITLE) $(SRCS)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43