Mercurial > emacs
changeset 103014:3df429718fa4
* thingatpt.el (thing-at-point-bounds-of-list-at-point): New
function (Bug#3027).
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 18 Apr 2009 03:39:28 +0000 |
parents | 31ae0e578b40 |
children | 5c993497b6ee |
files | lisp/ChangeLog lisp/thingatpt.el |
diffstat | 2 files changed, 25 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Apr 18 01:41:53 2009 +0000 +++ b/lisp/ChangeLog Sat Apr 18 03:39:28 2009 +0000 @@ -1,3 +1,8 @@ +2009-04-18 Chong Yidong <cyd@stupidchicken.com> + + * thingatpt.el (thing-at-point-bounds-of-list-at-point): New + function (Bug#3027). + 2009-04-17 Kenichi Handa <handa@m17n.org> * international/uni-decomposition.el: Re-generated.
--- a/lisp/thingatpt.el Sat Apr 18 01:41:53 2009 +0000 +++ b/lisp/thingatpt.el Sat Apr 18 03:39:28 2009 +0000 @@ -188,8 +188,26 @@ ;; Lists -(put 'list 'end-op (lambda () (up-list 1))) -(put 'list 'beginning-op 'backward-sexp) +(put 'list 'bounds-of-thing-at-point 'thing-at-point-bounds-of-list-at-point) + +(defun thing-at-point-bounds-of-list-at-point () + (save-excursion + (let ((opoint (point)) + (beg (condition-case nil + (progn (up-list -1) + (point)) + (error nil)))) + (condition-case nil + (if beg + (progn (forward-sexp) + (cons beg (point))) + ;; Are we are at the beginning of a top-level sexp? + (forward-sexp) + (let ((end (point))) + (backward-sexp) + (if (>= opoint (point)) + (cons opoint end)))) + (error nil))))) ;; Filenames and URLs www.com/foo%32bar