view modules/ChangeLog @ 4697:0d6d0edf1253

lisp beginning-end-of-defun-function Changelog entry hg diff diff -r ecc468b62551 lisp/ChangeLog --- a/lisp/ChangeLog Mon Sep 21 21:40:35 2009 +0200 +++ b/lisp/ChangeLog Tue Sep 22 21:11:51 2009 +0200 @@ -1,3 +1,12 @@ 2009-09-20 Aidan Kehoe <kehoea@parhasa +2009-09-22 Andreas Roehler <andreas.roehler@online.de> + + * lisp.el (beginning-of-defun-raw): + new variable: beginning-of-defun-function, + beginning-of-defun may call FUNCTION determining start position + * lisp.el (end-of-defun): + new variable: end-of-defun-function, + end-of-defun may call FUNCTION determining the end position + ;;;;;;;;;;;;;;;;;;;;;;;; hg diff -p -r 4695 -r 4696 diff -r fee33ab25966 -r ecc468b62551 lisp/lisp.el --- a/lisp/lisp.el Sun Sep 20 23:50:05 2009 +0100 +++ b/lisp/lisp.el Mon Sep 21 21:40:35 2009 +0200 @@ -155,6 +155,21 @@ Negative arg -N means kill N sexps after (interactive "p") (kill-sexp (- (or arg 1)))) + +;; derived stuff from GNU Emacs +(defvar beginning-of-defun-function nil + "If non-nil, function for `beginning-of-defun-raw' to call. +This is used to find the beginning of the defun instead of using the +normal recipe (see `beginning-of-defun'). Modes can define this +if defining `defun-prompt-regexp' is not sufficient to handle the mode's +needs.") + +(defvar end-of-defun-function nil + "If non-nil, function for `end-of-defun' to call. +This is used to find the end of the defun instead of using the normal +recipe (see `end-of-defun'). Modes can define this if the +normal method is not appropriate.") + (defun beginning-of-defun (&optional arg) "Move backward to the beginning of a defun. With argument, do it that many times. Negative arg -N @@ -175,13 +190,17 @@ This is identical to beginning-of-defun, This is identical to beginning-of-defun, except that point does not move to the beginning of the line when `defun-prompt-regexp' is non-nil." (interactive "p") - (and arg (< arg 0) (not (eobp)) (forward-char 1)) - (and (re-search-backward (if defun-prompt-regexp - (concat "^\\s(\\|" - "\\(" defun-prompt-regexp "\\)\\s(") - "^\\s(") - nil 'move (or arg 1)) - (progn (goto-char (1- (match-end 0)))) t)) + ;; (and arg (< arg 0) (not (eobp)) (forward-char 1)) + (unless arg (setq arg 1)) + (cond + (beginning-of-defun-function + (funcall beginning-of-defun-function arg)) + (t (re-search-backward (if defun-prompt-regexp + (concat "^\\s(\\|" + "\\(" defun-prompt-regexp "\\)\\s(") + "^\\s(") + nil 'move (or arg 1)) + (progn (goto-char (1- (match-end 0)))) t))) ;; XEmacs change (optional buffer parameter) (defun buffer-end (arg &optional buffer) @@ -198,6 +217,10 @@ the open-parenthesis that starts a defun ;; XEmacs change (for zmacs regions) (interactive "_p") (if (or (null arg) (= arg 0)) (setq arg 1)) + (if end-of-defun-function + (if (> arg 0) + (dotimes (i arg) + (funcall end-of-defun-function))) (let ((first t)) (while (and (> arg 0) (< (point) (point-max))) (let ((pos (point))) ; XEmacs -- remove unused npos. @@ -229,7 +252,7 @@ the open-parenthesis that starts a defun (if (looking-at "\\s<\\|\n") (forward-line 1))) (goto-char (point-min))))) - (setq arg (1+ arg))))) + (setq arg (1+ arg)))))) (defun mark-defun () "Put mark at end of this defun, point at beginning.
author Andreas Roehler <andreas.roehler@online.de>
date Tue, 22 Sep 2009 21:14:03 +0200
parents 5c427ece884b
children 3a87551bfeb5
line wrap: on
line source

2009-05-18  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.29 "garbanzo" is released.

2008-02-12  Jerry James  <james@xemacs.org>

	* canna/install-sh: Update to latest FSF version.
	* ldap/install-sh: Ditto.
	* postgresql/install-sh: Ditto.
	* sample/external/install-sh: Ditto.
	* sample/internal/install-sh: Ditto.

2007-06-23  Stephen J. Turnbull  <stephen@xemacs.org>

	* canna/canna_api.c (Fcanna_set_bunsetsu):
	(Fcanna_initialize):
	Suppress warnings about loss of precision on amd64.

2007-06-23  Stephen J. Turnbull  <stephen@xemacs.org>

	* ldap/eldap.h: Declare that we use deprecated API.
	Thanks to Mats Lidell <matsl@xemacs.org> for the report & patch:
	<871wgnqunm.fsf@spencer.lidell.homelinux.net>.

2007-05-21  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.28 "fuki" is released.

2007-02-16  Stephen J. Turnbull  <stephen@xemacs.org>

	* canna/canna_api.c: Move CANNA_NEW_WCHAR_AWARE to config.h.
	Clean up ancient cruft for IROHA (Canna v.1) support.

2007-02-08  Adrian Aichner  <adrian@xemacs.org>

	* postgresql/postgresql.c: Update Steve L. Baur's address on his
	request.
	* postgresql/postgresql.h: Ditto.

2006-05-16  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.27 "fiddleheads" is released.

2006-03-31  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.26 "endive" is released.

2006-02-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.25 "eggplant" is released.

2005-12-18  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.24 "dandelion" is released.

2005-11-22  Ben Wing  <ben@xemacs.org>

	* common/Makefile.common (mostlyclean):
	Ignore errors from rm during clean.

2005-11-16  Stephen J. Turnbull  <stephen@xemacs.org>

	* canna/canna_api.c: Small fixes to Mule-ization patch.

2005-11-01  Ben Wing  <ben@xemacs.org>

	* canna/canna_api.c: Mule-ization.

2005-11-13  Ben Wing  <ben@xemacs.org>

	* common/Makefile.common:
	* common/Makefile.common (.PHONY):
	* common/Makefile.common (install):
	Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig.
	Do some refactoring for cleanliness.  Put in some magic cookies in
	comments so this file gets read as a make file by XEmacs.

2005-11-02  Marcus Crestani  <crestani@xemacs.org>

	* canna/.cvsignore: New.

2005-10-26  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.23 "daikon" is released.

2005-10-22  Stephen J. Turnbull  <stephen@xemacs.org>

	Warning elimination:

	* ldap/eldap.c (Fldap_add): Remove declaration of `current', which
	is now declared by EXTERNAL_LIST_LOOP_2.
	(Fldap_modify): Remove redundant variable `gcpro2',

2005-10-25  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c (allocate_pgconn):
	* postgresql/postgresql.c (allocate_pgresult):
	* postgresql/postgresql.h (struct Lisp_PGconn):
	* postgresql/postgresql.h (struct Lisp_PGresult):
	MC-Alloc refactoring.

2005-10-25  Ben Wing  <ben@xemacs.org>

	* ldap/eldap.c (allocate_ldap):
	* ldap/eldap.h (struct Lisp_LDAP):
	MC-Alloc refactoring.

2005-10-21  Stephen J. Turnbull  <stephen@xemacs.org>

	UNDO:
	* canna/canna-api.c:
	* canna/Makefile.in.in (MODNAME,SRCS):
	Rename module from canna_api to canna-api.

2005-10-21  Stephen J. Turnbull  <stephen@xemacs.org>

	* canna/configure: Create and CVS add.

2005-10-04  Stephen J. Turnbull  <stephen@xemacs.org>

	* canna/Makefile.in.in (MODVER): Bump to 0.5.

	* canna/canna-api.c:
	* canna/Makefile.in.in (MODNAME,SRCS):
	Rename module from canna_api to canna-api.

2005-09-22  Stephen J. Turnbull  <stephen@xemacs.org>

	* canna: New module.

	* canna/canna_api.c: Move from $srcdir/src/mule-canna.c.  Add module
	initialization function and some boilerplate.  Change name to
	canna_api to reflect changed role.

	* canna/configure.ac:
	* canna/Makefile.in.in:
	* canna/install-sh:
	Standard module boilerplate, adapted to Canna.

2005-09-14  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.22 "cucumber" is released.

2005-06-09  Craig Lanning  <CraigL@sc.rr.com>

	* ldap/.cvsignore:
	* sample/external/.cvsignore:
	* sample/internal/.cvsignore:
	Added GNUmakefile, Makefile, and Makefile.in

2005-05-28  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.21 "corn" is released.

2005-04-01  Marcus Crestani  <crestani@xemacs.org>

	The new allocator.

	Remove Lcrecords:
	
	* postgresql/postgresql.c (allocate_pgconn): Allocate with new
	allocator.
	* postgresql/postgresql.c (allocate_pgresult): Allocate PGresult
	with new allocator.  
	* postgresql/postgresql.h (struct Lisp_PGconn): Add
        lrecord_header.
	* postgresql/postgresql.h (struct Lisp_PGresult): Add 
	lrecord_header.
	* ldap/eldap.c (allocate_ldap): Allocate with new allocator.
	* ldap/eldap.h (struct Lisp_LDAP): Add lrecord_header.

2005-03-11  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.20 "cilantro" is released.

2005-02-18  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.19 "chives" is released.

2004-11-13  Ben Wing  <ben@xemacs.org>

	* ldap/eldap.c (Fldap_modify):
	Need braces around EXTERNAL_LIST_LOOP_2.

2004-01-28  Stephen J. Turnbull  <stephen@xemacs.org>

	* common/Makefile.common (CFLAGS): Use XE_CFLAGS.

2004-10-27  Ben Wing  <ben@xemacs.org>

	* ldap/eldap.c:
	* ldap/eldap.c (Fldap_open):
	* ldap/eldap.c (Fldap_search_basic):
	* ldap/eldap.c (Fldap_add):
	* ldap/eldap.c (Fldap_modify):
	* ldap/eldap.c (Fldap_delete):
	Mule-ize.
	Use EXTERNAL_LIST_LOOP_2 instead of deleted EXTERNAL_LIST_LOOP.

2004-10-22  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.18 "chestnut" is released.

2004-09-14  Jerry James  <james@xemacs.org>

	* postgresql/postgresql.c:
	* ldap/eldap.c:
	Mark unused parameters with the UNUSED macro.

2004-09-14  Jerry James  <james@xemacs.org>

	* ldap/eldap.c (Fldap_open): Change ldap_passwd to ldap_password
	to eliminate a gcc shadow warning.

2004-09-13  Jerry James  <james@xemacs.org>

	* ldap/eldap.c (signal_ldap_error): Mark as noreturn.

2004-03-22  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.17 "chayote" is released.

2003-09-26  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.16 "celeriac" is released.

2003-09-21  Jerry James  <james@xemacs.org>

	* postgresql/postgresql.c (unload_postgresql): Do not mangle the
	unload function name when compiling with C++.
	* ldap/eldap.c (unload_eldap): Ditto.

2003-09-03  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.15 "celery" is released.

2003-08-28  Jerry James  <james@xemacs.org>

	* common/Makefile.common (LIBSTDCPP): New.
	* common/Makefile.common (.c.o): Use it to avoid undefined symbol
	errors when compiling  modules with g++.

2003-08-18  Jerry James  <james@xemacs.org>

	* postgresql/postgresql.c: Include emodules.h when building a module.
	* ldap/eldap.c: Ditto.
	* common/Makefile.common: Make module makefiles processable by cpp.
	* common/Makefile.common (IMPORT_LIB): New.
	* common/Makefile.common: Use it.

2003-06-11  Jerry James  <james@xemacs.org>

	* common/Makefile.common: The last change re-broke FreeBSD module
	building.  Expand srcdir in SRC_SRCS with configure to fix it.

2003-06-10  Jerry James  <james@xemacs.org>

	* common/Makefile.common: Change GNUish := to =.

2003-06-01  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.14 "cassava" is released.

2003-05-09  Andrew Begel  <abegel@CS.Berkeley.EDU>

	* common/Makefile.common: Move use of srcdir below its definition.
	* sample/internal/Makefile.in.in: Ditto.
	* sample/external/Makefile.in.in: Ditto.

2003-05-20  Jerry James  <james@xemacs.org>

	* sample/internal/Makefile.in.in: Expand $^ for makes that don't
	understand it.
	* sample/external/Makefile.in.in: Ditto.
	* common/Makefile.common: Ditto.

2003-05-10  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.13 "cauliflower" is released.

2003-04-24  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.12 "carrot" is released.

2003-02-16  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.11 "cabbage" is released.

2003-02-07  Jerry James  <james@xemacs.org>

	* ldap/eldap.c: Add unload_eldap prototype to fix warning.

2003-01-30  Robert Pluim  <rpluim@bigfoot.com>

	* Makefile.common: FreeBSD make compatability fixes: expand
	SRC_SRCS immediately, use MODCC rather than CC to prevent
	overriding by top-level makefile.

2003-01-15  Jerry James  <james@eecs.ku.edu>

	* ldap/eldap.c: Apply Ben's postgresql change to LDAP also.

2002-12-16  Ben Wing  <ben@xemacs.org>

	* postgresql/postgresql.c:
	remove ifdef USE_KKCC.

2003-01-04  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.10 "burdock" is released.

2002-11-17  Ben Wing  <ben@xemacs.org>

	* postgresql/Makefile.in.in:
	* postgresql/Makefile.in.in (SRCS):
	* postgresql/Makefile.in.in (SRC_SRCS): Removed.
	* postgresql/Makefile.in.in (OBJS): Removed.
	* postgresql/Makefile.in.in (SHELL): Removed.
	* postgresql/Makefile.in.in (RM): Removed.
	* postgresql/Makefile.in.in (PROGNAME): Removed.
	* postgresql/Makefile.in.in (CFLAGS): Removed.
	* postgresql/Makefile.in.in (INSTALL): Removed.
	* postgresql/Makefile.in.in (version): Removed.
	* postgresql/Makefile.in.in (prefix): Removed.
	* postgresql/Makefile.in.in (exec_prefix): Removed.
	* postgresql/Makefile.in.in (libdir): Removed.
	* postgresql/Makefile.in.in (instvardir): Removed.
	* postgresql/Makefile.in.in (configuration): Removed.
	* postgresql/Makefile.in.in (moduledir): Removed.
	* postgresql/Makefile.in.in (with_modules): Removed.
	* postgresql/Makefile.in.in (srcdir): Removed.
	* postgresql/Makefile.in.in (VPATH): Removed.
	* postgresql/Makefile.in.in (CC): Removed.
	* postgresql/Makefile.in.in (MODARCHDIR): Removed.
	* postgresql/Makefile.in.in (MAKE_DOCFILE): Removed.
	* postgresql/Makefile.in.in (MODCFLAGS): Removed.
	* postgresql/Makefile.in.in (INSTALLPATH): Removed.
	* postgresql/Makefile.in.in (INSTALL_PROGRAM): Removed.
	* postgresql/Makefile.in.in (OBJECT_TO_BUILD): Removed.
	* postgresql/Makefile.in.in (.PHONY): Removed.
	* postgresql/Makefile.in.in (all): Removed.
	* postgresql/Makefile.in.in (.c.o): Removed.
	* postgresql/Makefile.in.in (clean): Removed.
	* postgresql/Makefile.in.in (distclean): Removed.
	* postgresql/Makefile.in.in (install): Removed.
	Move common stuff into modues/common/Makefile.common. (Also
	add extraclean target and a couple of other fixes in that file.)

	* postgresql/configure.ac:
	Extract out common configure stuff into
	modules/common/configure-{pre,post}.ac.

	* postgresql/postgresql.c (WARNING):
	Fix warning.

2002-11-17  Ben Wing  <ben@xemacs.org>

	* ldap/Makefile.in.in:
	* ldap/Makefile.in.in (SRCS):
	* ldap/Makefile.in.in (SRC_SRCS): Removed.
	* ldap/Makefile.in.in (OBJS): Removed.
	* ldap/Makefile.in.in (SHELL): Removed.
	* ldap/Makefile.in.in (RM): Removed.
	* ldap/Makefile.in.in (PROGNAME): Removed.
	* ldap/Makefile.in.in (CFLAGS): Removed.
	* ldap/Makefile.in.in (INSTALL): Removed.
	* ldap/Makefile.in.in (version): Removed.
	* ldap/Makefile.in.in (prefix): Removed.
	* ldap/Makefile.in.in (exec_prefix): Removed.
	* ldap/Makefile.in.in (libdir): Removed.
	* ldap/Makefile.in.in (instvardir): Removed.
	* ldap/Makefile.in.in (configuration): Removed.
	* ldap/Makefile.in.in (moduledir): Removed.
	* ldap/Makefile.in.in (with_modules): Removed.
	* ldap/Makefile.in.in (srcdir): Removed.
	* ldap/Makefile.in.in (VPATH): Removed.
	* ldap/Makefile.in.in (CC): Removed.
	* ldap/Makefile.in.in (MODARCHDIR): Removed.
	* ldap/Makefile.in.in (MAKE_DOCFILE): Removed.
	* ldap/Makefile.in.in (MODCFLAGS): Removed.
	* ldap/Makefile.in.in (INSTALLPATH): Removed.
	* ldap/Makefile.in.in (INSTALL_PROGRAM): Removed.
	* ldap/Makefile.in.in (OBJECT_TO_BUILD): Removed.
	* ldap/Makefile.in.in (.PHONY): Removed.
	* ldap/Makefile.in.in (all): Removed.
	* ldap/Makefile.in.in (.c.o): Removed.
	* ldap/Makefile.in.in (clean): Removed.
	* ldap/Makefile.in.in (distclean): Removed.
	* ldap/Makefile.in.in (install): Removed.
	Move common stuff into modues/common/Makefile.common. (Also
	add extraclean target and a couple of other fixes in that file.)

	* ldap/configure.ac:
	* ldap/configure.ac (have_ldap):
	Extract out common configure stuff into
	modules/common/configure-{pre,post}.ac.

2002-11-17  Ben Wing  <ben@xemacs.org>

	* common/Makefile.common:
	* common/Makefile.common (SHELL):
	Common stuff is here.

2002-09-20  Steve Youngs  <youngs@xemacs.org>

	* postgresql/Makefile.in.in (LDFLAGS): Add @ld_switch_all@ to pick
	up '--site-libraries'.

	* ldap/Makefile.in.in (LDFLAGS): Ditto.

2002-08-08  Jerry James  <james@xemacs.org>

	* auto-autoloads.el: New file containing module autoloads.
	* auto-autoloads.elc: Ditto.
	* README: Update to reflect the new architecture.
	* ldap/configure.ac: New file.
	* ldap/configure: Ditto.
	* ldap/eldap.h: Copy the version from src.
	* ldap/eldap.c: Ditto.  Add autoloads.
	* ldap/eldap.c (unload_eldap): New function to unstaticpro symbols
	defined in this file.
	* ldap/install-sh: New script for independent module building.
	* ldap/Makefile: Remove in favor of autoconf solution.
	* ldap/Makefile.in.in: New file containing the autoconf solution.
	* postgresql: New directory.
	* postgresql/.cvsignore: New file.
	* postgresql/configure.ac: Ditto.
	* postgresql/configure: Ditto.
	* postgresql/install-sh: New script for independent module
	building.
	* postgresql/Makefile.in.in: New file.
	* postgresql/postgresql.h: Copy the version from src.
	* postgresql/postgresql.c: Ditto.  Add autoloads.
	* sample/Makefile: Move to internal and external subdirectories.
	* sample/sample.c: Ditto.
	* sample/external: New directory containing sample external
	modules.
	* sample/external/.cvsignore: New file.
	* sample/external/configure.ac: Ditto.
	* sample/external/install-sh: Ditto.
	* sample/external/Makefile.in.in: New.
	* sample/external/sample.c: Move from next higher directory.
	* sample/internal: New directory containing sample internal
	modules.
	* sample/internal/.cvsignore: New file.
	* sample/internal/configure.ac: Ditto.
	* sample/internal/install-sh: Ditto.
	* sample/internal/Makefile.in.in: New.
	* sample/internal/sample.c: Move from next higher directory.

2002-08-30  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.9 "brussels sprouts" is released.

2002-07-27  Steve Youngs  <youngs@xemacs.org>

	* XEmacs 21.5.8 "broccoli" is released.

2002-07-02  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.7 "broccoflower" is released.

2002-04-05  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.6 "bok choi" is released.

2002-03-12  Ben Wing  <ben@xemacs.org>

	* The Great Mule Merge of March 2002:
	see node by that name in the Internals Manual.

2002-03-05  Stephen J. Turnbull  <stephen@xemacs.org>

	* XEmacs 21.5.5 "beets" is released.

2002-02-14  Sean MacLennan  <seanm@seanm.ca>

	* base64/base64.c - update Bufpos => Charbpos