Mercurial > emacs
diff lisp/cedet/semantic/tag.el @ 110534:826d60163924
Merge changes from emacs-23 branch.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Thu, 23 Sep 2010 22:10:54 -0400 |
parents | a5ad4f188e19 |
children | 9814473572d4 |
line wrap: on
line diff
--- a/lisp/cedet/semantic/tag.el Fri Sep 24 00:38:10 2010 +0000 +++ b/lisp/cedet/semantic/tag.el Thu Sep 23 22:10:54 2010 -0400 @@ -687,18 +687,24 @@ ;; (defun semantic-tag-deep-copy-one-tag (tag &optional filter) "Make a deep copy of TAG, applying FILTER to each child-tag. -Properties and overlay info are not copied. -FILTER takes TAG as an argument, and should returns a semantic-tag. +No properties are copied except for :filename. +Overlay will be a vector. +FILTER takes TAG as an argument, and should return a `semantic-tag'. It is safe for FILTER to modify the input tag and return it." (when (not filter) (setq filter 'identity)) (when (not (semantic-tag-p tag)) (signal 'wrong-type-argument (list tag 'semantic-tag-p))) - (funcall filter (list (semantic-tag-name tag) - (semantic-tag-class tag) - (semantic--tag-deep-copy-attributes - (semantic-tag-attributes tag) filter) - nil - nil))) + (let ((ol (semantic-tag-overlay tag)) + (fn (semantic-tag-file-name tag))) + (funcall filter (list (semantic-tag-name tag) + (semantic-tag-class tag) + (semantic--tag-deep-copy-attributes + (semantic-tag-attributes tag) filter) + ;; Only copy the filename property + (when fn (list :filename fn)) + ;; Only setup a vector if we had an overlay. + (when ol (vector (semantic-tag-start tag) + (semantic-tag-end tag))))))) (defun semantic--tag-deep-copy-attributes (attrs &optional filter) "Make a deep copy of ATTRS, applying FILTER to each child-tag. @@ -877,7 +883,7 @@ "Return the parent of the function that TAG describes. That is the value of the `:parent' attribute. A function has a parent if it is a method of a class, and if the -function does not appear in body of it's parent class." +function does not appear in body of its parent class." (semantic-tag-named-parent tag)) (defsubst semantic-tag-function-destructor-p (tag)