diff options
| author | Chong Yidong <cyd@stupidchicken.com> | 2009-10-03 19:28:05 +0000 |
|---|---|---|
| committer | Chong Yidong <cyd@stupidchicken.com> | 2009-10-03 19:28:05 +0000 |
| commit | e6e267fcba9251bbb7eeb66ca55c08e47c635ab8 (patch) | |
| tree | 91cf36bb9e07372ef8df6bf3d52ec9da8119e05b /lisp/cedet/ede | |
| parent | ed6b01957ea6cc8a51a38e6094c202219b23e86d (diff) | |
| download | emacs-e6e267fcba9251bbb7eeb66ca55c08e47c635ab8.tar.gz | |
* cedet/srecode/srt-mode.el (srecode-template-mode): Doc fix.
* files.el (auto-mode-alist): Add .srt and Project.ede.
* cedet/semantic.el (semantic-mode): Handle
srecode-template-mode-hook as well.
* cedet/srecode/template.el: Remove hook variable.
* cedet/ede/proj-comp.el: Require ede/pmake when compiling.
* cedet/ede.el (ede-target-forms-menu): Don't enable if no
projects exist.
* cedet/srecode/map.el (srecode-map-base-template-dir): Look for
templates in data-directory.
* cedet/ede/srecode.el (ede-srecode-setup): Use default templates
directory.
* cedet/semantic/util-modes.el (semantic-highlight-func-mode): Doc
fix.
* cedet/ede/proj-comp.el (ede-proj-makefile-insert-variables):
Only insert each variable once.
* cedet/ede/pmake.el (ede-pmake-insert-variable-once): New macro.
(ede-pmake-insert-variable-shared): Use it.
* cedet/ede/cpp-root.el (ede-preprocessor-map): Do not deref table
for lexical table iff table is nil.
Diffstat (limited to 'lisp/cedet/ede')
| -rw-r--r-- | lisp/cedet/ede/cpp-root.el | 4 | ||||
| -rw-r--r-- | lisp/cedet/ede/pmake.el | 36 | ||||
| -rw-r--r-- | lisp/cedet/ede/proj-comp.el | 12 | ||||
| -rw-r--r-- | lisp/cedet/ede/srecode.el | 28 |
4 files changed, 39 insertions, 41 deletions
diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el index e1e348ac947..c30df8dbb0d 100644 --- a/lisp/cedet/ede/cpp-root.el +++ b/lisp/cedet/ede/cpp-root.el @@ -491,8 +491,8 @@ Also set up the lexical preprocessor map." (when (not table) (message "Cannot find file %s in project." F)) (when (and table (semanticdb-needs-refresh-p table)) - (semanticdb-refresh-table table)) - (setq spp (append spp (oref table lexical-table))))) + (semanticdb-refresh-table table) + (setq spp (append spp (oref table lexical-table)))))) (oref this spp-files)) spp)) diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el index 4d3f8484ddd..79775429130 100644 --- a/lisp/cedet/ede/pmake.el +++ b/lisp/cedet/ede/pmake.el @@ -240,20 +240,32 @@ MFILENAME is the makefile to generate." "Add VARNAME into the current Makefile. Execute BODY in a location where a value can be placed." `(let ((addcr t) (v ,varname)) - (if (re-search-backward (concat "^" v "\\s-*=") nil t) - (progn - (ede-pmake-end-of-variable) - (if (< (current-column) 40) - (if (and (/= (preceding-char) ?=) - (/= (preceding-char) ? )) - (insert " ")) - (insert "\\\n ")) - (setq addcr nil)) - (insert v "=")) + (if (re-search-backward (concat "^" v "\\s-*=") nil t) + (progn + (ede-pmake-end-of-variable) + (if (< (current-column) 40) + (if (and (/= (preceding-char) ?=) + (/= (preceding-char) ? )) + (insert " ")) + (insert "\\\n ")) + (setq addcr nil)) + (insert v "=")) + ,@body + (if addcr (insert "\n")) + (goto-char (point-max)))) +(put 'ede-pmake-insert-variable-shared 'lisp-indent-function 1) + +(defmacro ede-pmake-insert-variable-once (varname &rest body) + "Add VARNAME into the current Makefile if it doesn't exist. +Execute BODY in a location where a value can be placed." + `(let ((addcr t) (v ,varname)) + (unless (re-search-backward (concat "^" v "\\s-*=") nil t) + (insert v "=") ,@body (if addcr (insert "\n")) - (goto-char (point-max)))) -(put 'ede-pmake-insert-variable-shared 'lisp-indent-function 1) + (goto-char (point-max))) + )) +(put 'ede-pmake-insert-variable-once 'lisp-indent-function 1) ;;; SOURCE VARIABLE NAME CONSTRUCTION diff --git a/lisp/cedet/ede/proj-comp.el b/lisp/cedet/ede/proj-comp.el index 2bda2dd106e..be91c25d5f0 100644 --- a/lisp/cedet/ede/proj-comp.el +++ b/lisp/cedet/ede/proj-comp.el @@ -46,6 +46,7 @@ (require 'ede) ;source object (require 'ede/autoconf-edit) +(eval-when-compile (require 'ede/pmake)) ;;; Types: (defclass ede-compilation-program (eieio-instance-inheritor) @@ -256,12 +257,11 @@ This will prevent rules from creating duplicate variables or rules." (with-slots (variables) this (mapcar (lambda (var) - (insert (car var) "=") - (let ((cd (cdr var))) - (if (listp cd) - (mapc (lambda (c) (insert " " c)) cd) - (insert cd))) - (insert "\n")) + (ede-pmake-insert-variable-once (car var) + (let ((cd (cdr var))) + (if (listp cd) + (mapc (lambda (c) (insert " " c)) cd) + (insert cd))))) variables)))) (defmethod ede-compiler-intermediate-objects-p ((this ede-compiler)) diff --git a/lisp/cedet/ede/srecode.el b/lisp/cedet/ede/srecode.el index 5f64ed3c7d0..0870517a46e 100644 --- a/lisp/cedet/ede/srecode.el +++ b/lisp/cedet/ede/srecode.el @@ -37,27 +37,13 @@ ;;; Code: (defun ede-srecode-setup () - "Update various paths to get SRecode to identify our macros." - (let* ((lib (locate-library "ede.el" t)) - (ededir (file-name-directory lib)) - (tmpdir (file-name-as-directory - (expand-file-name "templates" ededir)))) - (when (not tmpdir) - (error "Unable to location EDE Templates directory")) - - ;; Rig up the map. - (require 'srecode/map) - (require 'srecode/find) - (add-to-list 'srecode-map-load-path tmpdir) - (srecode-map-update-map t) - - ;; We don't call this unless we need it. Load in the templates. - (srecode-load-tables-for-mode 'makefile-mode) - (srecode-load-tables-for-mode 'makefile-mode 'ede) - - ;; @todo - autoconf files. - - )) + "Initialize Srecode for EDE." + (require 'srecode/map) + (require 'srecode/find) + (srecode-map-update-map t) + ;; We don't call this unless we need it. Load in the templates. + (srecode-load-tables-for-mode 'makefile-mode) + (srecode-load-tables-for-mode 'makefile-mode 'ede)) (defmacro ede-srecode-insert-with-dictionary (template &rest forms) "Insert TEMPLATE after executing FORMS with a dictionary. |
