Mercurial > hg > xemacs-beta
annotate modules/common/Makefile.common @ 5634:2014ff433daf
Support hash COLLECTIONs, #'{all,try}-completion{s,}; add #'test-completion
src/ChangeLog addition:
2012-01-01 Aidan Kehoe <kehoea@parhasard.net>
Add #'test-completion, API from GNU.
Accept hash table COLLECTIONs in it and in the other
completion-oriented functions, #'try-completion,
#'all-completions, and those Lisp functions implemented in terms
of them.
* lisp.h: Update the prototype of map_obarray(), making FN
compatible with the FUNCTION argument of elisp_maphash();
* abbrev.c (abbrev_match_mapper):
* abbrev.c (record_symbol):
* doc.c (verify_doc_mapper):
* symbols.c (mapatoms_1):
* symbols.c (apropos_mapper):
Update these mapper functions to reflect the new argument to
map_obarray().
* symbols.c (map_obarray):
Call FN with two arguments, the string name of the symbol, and the
symbol itself, for API (mapper) compatibility with
elisp_maphash().
* minibuf.c (map_completion): New. Map a maphash_function_t across
a non function COLLECTION, as appropriate for #'try-completion and
friends.
* minibuf.c (map_completion_list): New. Map a maphash_function_t
across a pseudo-alist, as appropriate for the completion
functions.
* minibuf.c (ignore_completion_p): PRED needs to be called with
two args if and only if the collection is a hash table. Implement
this.
* minibuf.c (try_completion_mapper): New. The loop body of
#'try-completion, refactored out.
* minibuf.c (Ftry_completion): Use try_completion_mapper(),
map_completion().
* minibuf.c (all_completions_mapper): New. The loop body of
#'all-completions, refactored out.
* minibuf.c (Fall_completions): Use all_completions_mapper(),
map_completion().
* minibuf.c (test_completion_mapper): New. The loop body of
#'test-completion.
* minibuf.c (Ftest_completion): New, API from GNU.
* minibuf.c (syms_of_minibuf): Make Ftest_completion available.
tests/ChangeLog addition:
2012-01-01 Aidan Kehoe <kehoea@parhasard.net>
* automated/completion-tests.el: New.
Test #'try-completion, #'all-completion and #'test-completion with
list, vector and hash-table COLLECTION arguments.
| author | Aidan Kehoe <kehoea@parhasard.net> |
|---|---|
| date | Sun, 01 Jan 2012 15:18:52 +0000 |
| parents | 4aa8ee813265 |
| children | 7b5f88e5b456 |
| rev | line source |
|---|---|
| 1083 | 1 ## Common Makefile section for modules in XEmacs. |
| 2 ## Copyright (C) 2002 Jerry James. | |
| 3062 | 3 ## Copyright (C) 2005 Ben Wing. |
| 1083 | 4 |
| 5 ## This file is part of XEmacs. | |
| 6 | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4879
diff
changeset
|
7 ## XEmacs is free software: you can redistribute it and/or modify it |
| 1083 | 8 ## under the terms of the GNU General Public License as published by the |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4879
diff
changeset
|
9 ## Free Software Foundation, either version 3 of the License, or (at your |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4879
diff
changeset
|
10 ## option) any later version. |
| 1083 | 11 |
| 12 ## XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
| 13 ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| 14 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
| 15 ## for more details. | |
| 16 | |
| 17 ## You should have received a copy of the GNU General Public License | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4879
diff
changeset
|
18 ## along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
| 1083 | 19 |
| 20 ## Synched up with: Not in FSF. | |
| 21 | |
| 22 ## This is more complicated than would normally be the case, as this makefile | |
| 23 ## has been tailored to work both inside and independently of the XEmacs | |
| 24 ## source tree, and to support both module and non-module building inside the | |
| 25 ## source tree. | |
| 26 | |
| 1111 | 27 ## Note: This will be appended to the individual module Makefiles by configure. |
| 28 | |
| 1632 | 29 #define NOT_C_CODE |
| 30 #include "../../src/config.h" | |
| 31 | |
|
5512
4aa8ee813265
Add a DESTDIR variable to all Makefiles, defaulting to the empty string, and
Jerry James <james@xemacs.org>
parents:
5402
diff
changeset
|
32 DESTDIR= |
|
4aa8ee813265
Add a DESTDIR variable to all Makefiles, defaulting to the empty string, and
Jerry James <james@xemacs.org>
parents:
5402
diff
changeset
|
33 |
| 1083 | 34 SHELL=/bin/sh |
| 35 RM=rm -f | |
| 36 PROGNAME=@PROGNAME@ | |
| 2377 | 37 CFLAGS=@XE_CFLAGS@ |
| 1083 | 38 INSTALL=@INSTALL@ |
| 39 version=@version@ | |
| 40 prefix=@prefix@ | |
| 41 exec_prefix=@exec_prefix@ | |
| 42 libdir=@libdir@ | |
| 43 instvardir=@instvardir@ | |
| 44 configuration=@configuration@ | |
| 45 moduledir=@moduledir@ | |
| 46 with_modules=@with_modules@ | |
| 47 | |
| 48 srcdir=@srcdir@ | |
| 49 VPATH=@srcdir@ | |
| 50 | |
| 1522 | 51 SRC_SRCS=$(SRCS:%=@srcdir@/%) |
| 1490 | 52 OBJS=$(SRCS:.c=.o) |
| 53 | |
| 1252 | 54 MODCC=@MOD_CC@ |
| 1083 | 55 MODARCHDIR=@MODARCHDIR@ |
| 56 MAKE_DOCFILE=@MAKE_DOCFILE@ | |
| 57 MODCFLAGS=@MODCFLAGS@ | |
| 58 INSTALLPATH=@INSTALLPATH@ | |
| 59 INSTALL_PROGRAM=@MOD_INSTALL_PROGRAM@ | |
| 60 OBJECT_TO_BUILD=@OBJECT_TO_BUILD@ | |
| 1650 | 61 LIBSTDCPP=@LIBSTDCPP@ |
|
4879
c356806cc933
fix compile errors when --with-msw=no
Ben Wing <ben@xemacs.org>
parents:
3083
diff
changeset
|
62 #ifdef WIN32_ANY |
| 1632 | 63 IMPORT_LIB=../../src/xemacs-import.a |
| 64 #endif | |
| 1083 | 65 |
| 3062 | 66 .PHONY: install |
| 1083 | 67 all: $(OBJECT_TO_BUILD) |
| 68 | |
| 69 .c.o: | |
| 1252 | 70 $(MODCC) $(MODCFLAGS) -c $< |
| 1083 | 71 |
| 1632 | 72 $(MODNAME).ell: $(OBJS) $(MODNAME)_i.o $(IMPORT_LIB) |
| 1489 | 73 $(MODCC) --mode=link --mode=verbose --mod-output=$@ \ |
| 1650 | 74 $(OBJS) $(MODNAME)_i.o $(IMPORT_LIB) $(LDFLAGS) $(LIBSTDCPP) |
| 1083 | 75 |
| 76 $(MODNAME)_i.c: $(SRCS) | |
| 1252 | 77 ELLMAKEDOC=$(MAKE_DOCFILE) $(MODCC) --mode=init --mod-output=$@ \ |
| 1083 | 78 --mod-name=$(MODNAME) --mod-version=$(MODVER) \ |
| 79 --mod-title=$(MODTITLE) $(SRC_SRCS) | |
| 80 | |
| 3062 | 81 .PHONY: mostlyclean clean distclean realclean extraclean |
| 82 .PHONY: distclean-noconfig realclean-noconfig extraclean-noconfig | |
| 83 mostlyclean: | |
| 3083 | 84 -$(RM) $(OBJS) $(MODNAME)_i.* core |
| 3062 | 85 clean: mostlyclean |
| 3083 | 86 -$(RM) $(MODNAME).ell |
| 3062 | 87 distclean-noconfig: clean |
| 3083 | 88 -$(RM) config.* TAGS |
| 3062 | 89 ## This is used in making a distribution. |
| 90 ## Do not use it on development directories! | |
| 91 distclean: distclean-noconfig | |
| 3083 | 92 -$(RM) GNUmakefile Makefile Makefile.in configure |
| 3062 | 93 realclean-noconfig: distclean-noconfig |
| 94 realclean: distclean | |
| 95 extraclean-noconfig: realclean-noconfig | |
| 3083 | 96 -$(RM) *~ \#* |
| 3062 | 97 extraclean: realclean |
| 3083 | 98 -$(RM) *~ \#* |
| 1083 | 99 |
| 100 install: $(OBJECT_TO_BUILD) | |
|
5512
4aa8ee813265
Add a DESTDIR variable to all Makefiles, defaulting to the empty string, and
Jerry James <james@xemacs.org>
parents:
5402
diff
changeset
|
101 $(INSTALL_PROGRAM) $< $(DESTDIR)$(INSTALLPATH) |
| 3062 | 102 |
| 103 ## | |
| 104 ## Local Variables: | |
| 105 ## mode: makefile | |
| 106 ## End: | |
| 107 ## |
