emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113572: Merge CEDET upstream (rev. 8569)


From: David Engster
Subject: [Emacs-diffs] trunk r113572: Merge CEDET upstream (rev. 8569)
Date: Sat, 27 Jul 2013 21:17:06 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113572 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: David Engster <address@hidden>
branch nick: trunk
timestamp: Sat 2013-07-27 23:13:56 +0200
message:
   Merge CEDET upstream (rev. 8569)
modified:
  lisp/cedet/ChangeLog           changelog-20100919015713-3rbr456yray5m84f-1
  lisp/cedet/semantic/bovine/el.el el.el-20091113204419-o5vbwnq5f7feedwu-11248
  lisp/cedet/semantic/db-el.el   dbel.el-20091113204419-o5vbwnq5f7feedwu-11259
  lisp/cedet/semantic/edit.el    edit.el-20091113204419-o5vbwnq5f7feedwu-11276
=== modified file 'lisp/cedet/ChangeLog'
--- a/lisp/cedet/ChangeLog      2013-07-11 17:18:48 +0000
+++ b/lisp/cedet/ChangeLog      2013-07-27 21:09:43 +0000
@@ -1,3 +1,21 @@
+2013-07-27  Eric Ludlam <address@hidden>
+
+       * lisp/cedet/semantic/edit.el (semantic-edits-splice-remove): Wrap
+       debug message removing middle tag in semantic-edits-verbose-flag
+       check.
+
+2013-07-27  David Engster <address@hidden>
+
+       * semantic/bovine/el.el (semantic/db-el): New require.
+
+       * semantic/db-el.el (semanticdb-normalize-one-tag): It might be
+       that a symbol comes from a file but cannot be found in its table.
+       This happens for instance when a symbol was dynamically created
+       through a macro like `defstruct'.  In this case, return the
+       original tag.
+       (semanticdb-elisp-sym->tag): Deal with autoloaded functions, where
+       the argument list is not available until the file is loaded.
+
 2013-06-25  Stefan Monnier  <address@hidden>
 
        * data-debug.el, cedet-idutils.el: Neuter the "Version:" header.

=== modified file 'lisp/cedet/semantic/bovine/el.el'
--- a/lisp/cedet/semantic/bovine/el.el  2013-07-16 04:39:23 +0000
+++ b/lisp/cedet/semantic/bovine/el.el  2013-07-27 21:09:43 +0000
@@ -25,6 +25,7 @@
 
 (require 'semantic)
 (require 'semantic/bovine)
+(require 'semantic/db-el)
 (require 'find-func)
 
 (require 'semantic/ctxt)

=== modified file 'lisp/cedet/semantic/db-el.el'
--- a/lisp/cedet/semantic/db-el.el      2013-03-21 22:11:03 +0000
+++ b/lisp/cedet/semantic/db-el.el      2013-07-27 21:09:43 +0000
@@ -173,13 +173,17 @@
             (newtags (when tab (semanticdb-find-tags-by-name-method
                                 tab (semantic-tag-name tag))))
             (match nil))
-       ;; Find the best match.
-       (dolist (T newtags)
-         (when (semantic-tag-similar-p T tag)
-           (setq match T)))
-       ;; Backup system.
-       (when (not match)
-           (setq match (car newtags)))
+       ;; We might not have a parsed tag in this file, because it
+       ;; might be generated through a macro like defstruct.
+       (if (null newtags)
+           (setq match tag)
+         ;; Find the best match.
+         (dolist (T newtags)
+           (when (semantic-tag-similar-p T tag)
+             (setq match T)))
+         ;; Backup system.
+         (when (not match)
+           (setq match (car newtags))))
        ;; Return it.
        (when tab (cons tab match))))))
 
@@ -196,15 +200,18 @@
   (when sym
     (cond ((and (eq toktype 'function) (fboundp sym))
           (require 'semantic/bovine/el)
-          (semantic-tag-new-function
-           (symbol-name sym)
-           nil ;; return type
-           (semantic-elisp-desymbolify
-            (help-function-arglist sym)) ;; arg-list
-           :user-visible-flag (condition-case nil
-                                  (interactive-form sym)
-                                (error nil))
-           ))
+          (let ((arglist (help-function-arglist sym)))
+            (when (not (listp arglist))
+              ;; Function might be autoloaded, in which case
+              ;; the arglist is not available yet.
+              (setq arglist nil))
+            (semantic-tag-new-function
+             (symbol-name sym)
+             nil       ;; return type
+             (semantic-elisp-desymbolify arglist)
+             :user-visible-flag (condition-case nil
+                                    (interactive-form sym)
+                                  (error nil)))))
          ((and (eq toktype 'variable) (boundp sym))
           (semantic-tag-new-variable
            (symbol-name sym)

=== modified file 'lisp/cedet/semantic/edit.el'
--- a/lisp/cedet/semantic/edit.el       2013-06-02 13:33:09 +0000
+++ b/lisp/cedet/semantic/edit.el       2013-07-27 21:09:43 +0000
@@ -882,8 +882,9 @@
            ;; reparse
            (semantic-parse-changes-failed "Splice-remove failed.  Empty 
buffer?")
            ))
-      (message "To Remove Middle Tag: (%s)"
-              (semantic-format-tag-name first)))
+      (when semantic-edits-verbose-flag
+       (message "To Remove Middle Tag: (%s)"
+                (semantic-format-tag-name first))))
     ;; Find in the cache the preceding tag
     (while (and cachestart (not (eq first (car (cdr cachestart)))))
       (setq cachestart (cdr cachestart)))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]