diff options
| author | Stefan Monnier | 2015-01-08 16:03:04 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2015-01-08 16:03:04 -0500 |
| commit | a749f1c648f2b9bf1a0b0b10e2da4c1c4e3d431d (patch) | |
| tree | 91bdfc947ac2c6618bace6524cada16e2c5599cf /lisp/cedet/ede | |
| parent | 5fbd17e369ca30a47ab8a2eda0b2f2ea9b690bb4 (diff) | |
| parent | 6a67b20ddd458d71a1d63746504d91b1acea9b2b (diff) | |
| download | emacs-a749f1c648f2b9bf1a0b0b10e2da4c1c4e3d431d.tar.gz emacs-a749f1c648f2b9bf1a0b0b10e2da4c1c4e3d431d.zip | |
Shrink EIEIO object header. Move generics to eieio-generic.el.
Diffstat (limited to 'lisp/cedet/ede')
| -rw-r--r-- | lisp/cedet/ede/base.el | 21 | ||||
| -rw-r--r-- | lisp/cedet/ede/custom.el | 4 | ||||
| -rw-r--r-- | lisp/cedet/ede/proj.el | 2 | ||||
| -rw-r--r-- | lisp/cedet/ede/project-am.el | 8 | ||||
| -rw-r--r-- | lisp/cedet/ede/speedbar.el | 8 |
5 files changed, 24 insertions, 19 deletions
diff --git a/lisp/cedet/ede/base.el b/lisp/cedet/ede/base.el index 9f4fa45ff3a..ce7857b53a3 100644 --- a/lisp/cedet/ede/base.el +++ b/lisp/cedet/ede/base.el | |||
| @@ -159,6 +159,9 @@ and querying them will cause the actual project to get loaded.") | |||
| 159 | ;; Projects can also affect how EDE works, by changing what appears in | 159 | ;; Projects can also affect how EDE works, by changing what appears in |
| 160 | ;; the EDE menu, or how some keys are bound. | 160 | ;; the EDE menu, or how some keys are bound. |
| 161 | ;; | 161 | ;; |
| 162 | (unless (fboundp 'ede-target-list-p) | ||
| 163 | (cl-deftype ede-target-list () '(list-of ede-target))) | ||
| 164 | |||
| 162 | (defclass ede-project (ede-project-placeholder) | 165 | (defclass ede-project (ede-project-placeholder) |
| 163 | ((subproj :initform nil | 166 | ((subproj :initform nil |
| 164 | :type list | 167 | :type list |
| @@ -287,16 +290,18 @@ All specific project types must derive from this project." | |||
| 287 | ;; | 290 | ;; |
| 288 | (defmacro ede-with-projectfile (obj &rest forms) | 291 | (defmacro ede-with-projectfile (obj &rest forms) |
| 289 | "For the project in which OBJ resides, execute FORMS." | 292 | "For the project in which OBJ resides, execute FORMS." |
| 290 | `(save-window-excursion | 293 | (declare (indent 1)) |
| 291 | (let* ((pf (if (obj-of-class-p ,obj ede-target) | 294 | (unless (symbolp obj) |
| 292 | (ede-target-parent ,obj) | 295 | (message "Beware! ede-with-projectfile's first arg is copied: %S" obj)) |
| 293 | ,obj)) | 296 | `(let* ((pf (if (obj-of-class-p ,obj 'ede-target) |
| 294 | (dbka (get-file-buffer (oref pf file)))) | 297 | (ede-target-parent ,obj) |
| 295 | (if (not dbka) (find-file (oref pf file)) | 298 | ,obj)) |
| 296 | (switch-to-buffer dbka)) | 299 | (dbka (get-file-buffer (oref pf file)))) |
| 300 | (with-current-buffer | ||
| 301 | (if (not dbka) (find-file-noselect (oref pf file)) | ||
| 302 | dbka) | ||
| 297 | ,@forms | 303 | ,@forms |
| 298 | (if (not dbka) (kill-buffer (current-buffer)))))) | 304 | (if (not dbka) (kill-buffer (current-buffer)))))) |
| 299 | (put 'ede-with-projectfile 'lisp-indent-function 1) | ||
| 300 | 305 | ||
| 301 | ;;; The EDE persistent cache. | 306 | ;;; The EDE persistent cache. |
| 302 | ;; | 307 | ;; |
diff --git a/lisp/cedet/ede/custom.el b/lisp/cedet/ede/custom.el index 3cc3a48c27a..a39b4880283 100644 --- a/lisp/cedet/ede/custom.el +++ b/lisp/cedet/ede/custom.el | |||
| @@ -61,7 +61,7 @@ | |||
| 61 | "Edit fields of the current target through EIEIO & Custom." | 61 | "Edit fields of the current target through EIEIO & Custom." |
| 62 | (interactive) | 62 | (interactive) |
| 63 | (require 'eieio-custom) | 63 | (require 'eieio-custom) |
| 64 | (if (not (obj-of-class-p ede-object ede-target)) | 64 | (if (not (obj-of-class-p ede-object 'ede-target)) |
| 65 | (error "Current file is not part of a target")) | 65 | (error "Current file is not part of a target")) |
| 66 | (ede-customize-target ede-object)) | 66 | (ede-customize-target ede-object)) |
| 67 | 67 | ||
| @@ -72,7 +72,7 @@ | |||
| 72 | "Edit fields of the current target through EIEIO & Custom. | 72 | "Edit fields of the current target through EIEIO & Custom. |
| 73 | OBJ is the target object to customize." | 73 | OBJ is the target object to customize." |
| 74 | (require 'eieio-custom) | 74 | (require 'eieio-custom) |
| 75 | (if (and obj (not (obj-of-class-p obj ede-target))) | 75 | (if (and obj (not (obj-of-class-p obj 'ede-target))) |
| 76 | (error "No logical target to customize")) | 76 | (error "No logical target to customize")) |
| 77 | (ede-customize obj)) | 77 | (ede-customize obj)) |
| 78 | 78 | ||
diff --git a/lisp/cedet/ede/proj.el b/lisp/cedet/ede/proj.el index 1ea16570467..fd789b3857d 100644 --- a/lisp/cedet/ede/proj.el +++ b/lisp/cedet/ede/proj.el | |||
| @@ -297,7 +297,7 @@ for the tree being read in. If ROOTPROJ is nil, then assume that | |||
| 297 | the PROJECT being read in is the root project." | 297 | the PROJECT being read in is the root project." |
| 298 | (save-excursion | 298 | (save-excursion |
| 299 | (let ((ret (eieio-persistent-read (concat project "Project.ede") | 299 | (let ((ret (eieio-persistent-read (concat project "Project.ede") |
| 300 | ede-proj-project)) | 300 | 'ede-proj-project)) |
| 301 | (subdirs (directory-files project nil "[^.].*" nil))) | 301 | (subdirs (directory-files project nil "[^.].*" nil))) |
| 302 | (if (not (object-of-class-p ret 'ede-proj-project)) | 302 | (if (not (object-of-class-p ret 'ede-proj-project)) |
| 303 | (error "Corrupt project file")) | 303 | (error "Corrupt project file")) |
diff --git a/lisp/cedet/ede/project-am.el b/lisp/cedet/ede/project-am.el index 75fd195105f..d0ca8091c90 100644 --- a/lisp/cedet/ede/project-am.el +++ b/lisp/cedet/ede/project-am.el | |||
| @@ -853,13 +853,13 @@ Argument FILE is the file to extract the end directory name from." | |||
| 853 | (defun project-am-preferred-target-type (file) | 853 | (defun project-am-preferred-target-type (file) |
| 854 | "For FILE, return the preferred type for that file." | 854 | "For FILE, return the preferred type for that file." |
| 855 | (cond ((string-match "\\.texi?\\(nfo\\)$" file) | 855 | (cond ((string-match "\\.texi?\\(nfo\\)$" file) |
| 856 | project-am-texinfo) | 856 | 'project-am-texinfo) |
| 857 | ((string-match "\\.[0-9]$" file) | 857 | ((string-match "\\.[0-9]$" file) |
| 858 | project-am-man) | 858 | 'project-am-man) |
| 859 | ((string-match "\\.el$" file) | 859 | ((string-match "\\.el$" file) |
| 860 | project-am-lisp) | 860 | 'project-am-lisp) |
| 861 | (t | 861 | (t |
| 862 | project-am-program))) | 862 | 'project-am-program))) |
| 863 | 863 | ||
| 864 | (defmethod ede-buffer-header-file((this project-am-objectcode) buffer) | 864 | (defmethod ede-buffer-header-file((this project-am-objectcode) buffer) |
| 865 | "There are no default header files." | 865 | "There are no default header files." |
diff --git a/lisp/cedet/ede/speedbar.el b/lisp/cedet/ede/speedbar.el index fc26ec948a2..e08562a3738 100644 --- a/lisp/cedet/ede/speedbar.el +++ b/lisp/cedet/ede/speedbar.el | |||
| @@ -121,9 +121,9 @@ Argument DIR is the directory from which to derive the list of objects." | |||
| 121 | (let ((obj (eieio-speedbar-find-nearest-object))) | 121 | (let ((obj (eieio-speedbar-find-nearest-object))) |
| 122 | (if (not (eieio-object-p obj)) | 122 | (if (not (eieio-object-p obj)) |
| 123 | nil | 123 | nil |
| 124 | (cond ((obj-of-class-p obj ede-project) | 124 | (cond ((obj-of-class-p obj 'ede-project) |
| 125 | (project-compile-project obj)) | 125 | (project-compile-project obj)) |
| 126 | ((obj-of-class-p obj ede-target) | 126 | ((obj-of-class-p obj 'ede-target) |
| 127 | (project-compile-target obj)) | 127 | (project-compile-target obj)) |
| 128 | (t (error "Error in speedbar structure")))))) | 128 | (t (error "Error in speedbar structure")))))) |
| 129 | 129 | ||
| @@ -133,9 +133,9 @@ Argument DIR is the directory from which to derive the list of objects." | |||
| 133 | (let ((obj (eieio-speedbar-find-nearest-object))) | 133 | (let ((obj (eieio-speedbar-find-nearest-object))) |
| 134 | (if (not (eieio-object-p obj)) | 134 | (if (not (eieio-object-p obj)) |
| 135 | (error "Error in speedbar or ede structure") | 135 | (error "Error in speedbar or ede structure") |
| 136 | (if (obj-of-class-p obj ede-target) | 136 | (if (obj-of-class-p obj 'ede-target) |
| 137 | (setq obj (ede-target-parent obj))) | 137 | (setq obj (ede-target-parent obj))) |
| 138 | (if (obj-of-class-p obj ede-project) | 138 | (if (obj-of-class-p obj 'ede-project) |
| 139 | obj | 139 | obj |
| 140 | (error "Error in speedbar or ede structure"))))) | 140 | (error "Error in speedbar or ede structure"))))) |
| 141 | 141 | ||