aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2009-10-17 04:18:31 +0000
committerChong Yidong2009-10-17 04:18:31 +0000
commit67d3ffe4989e99079a69e1f7358b758c14cb519a (patch)
treeef5228be15780a5eae1d81245c0b136e1101e123
parent2df48a87291564f460b159f94f622f88f6c40bfb (diff)
downloademacs-67d3ffe4989e99079a69e1f7358b758c14cb519a.tar.gz
emacs-67d3ffe4989e99079a69e1f7358b758c14cb519a.zip
* cedet/srecode/srt.el:
* cedet/srecode/compile.el: * cedet/semantic/mru-bookmark.el: * cedet/semantic/debug.el: * cedet/semantic/complete.el: * cedet/semantic/analyze.el: Require CL when compiling. * cedet/semantic/scope.el (semantic-analyze-scoped-inherited-tag-map): Wrap calculation of tmpscope so that the regular scope will continue to work. * cedet/semantic/idle.el (semantic-idle-tag-highlight): Use semantic-idle-summary-highlight-face as the highlighting. * emacs-lisp/eieio-base.el (eieio-persistent-save): If buffer contains multibyte characters, choose first applicable coding system automatically. * cedet/ede/project-am.el (project-run-target): New method. (project-run-target): New method. * cedet/ede.el (ede-target): Add run target menu item. (ede-project, ede-minor-keymap): Add ede-run-target binding. (ede-run-target): New function. (ede-target::project-run-target): New method. * cedet/ede/proj.el (project-run-target): New method. * cedet/ede/proj-shared.el (ede-gcc-libtool-shared-compiler) (ede-g++-libtool-shared-compiler): Remove SHELL. Remove COMMANDS. Add :rules. (ede-proj-target-makefile-shared-object): Only libtool compilers now available. Add linkers for libtool. (ede-cc-linker-libtool, ede-g++-linker-libtool): New. (ede-proj-makefile-target-name): Always use .la extension. * cedet/ede/proj-prog.el (project-run-target): New method. * cedet/ede/proj-obj.el (ede-cc-linker): Rename from ede-gcc-linker. (ede-g++-linker): Change Change link lines. * cedet/ede/pmake.el (ede-pmake-insert-variable-shared): When searching for old variables, go to the end of the buffer and search backward from there. (ede-proj-makefile-automake-insert-subdirs) (ede-proj-makefile-automake-insert-extradist): New methods. (ede-proj-makefile-create): Use them. * cedet/ede/pconf.el (ede-proj-configure-test-required-file): Force FILE to expand to the current target. Use file-exists-p to check that it exists. * cedet/ede/linux.el (ede-linux-version): Don't call "head". (ede-linux-load): Wrap dir in file-name-as-directory. Set :version slot. * cedet/ede/files.el (ede-get-locator-object): When enabling locate, do so on "top". * cedet/ede/emacs.el (ede-emacs-file-existing): Wrap "dir" in file-name-as-directory during compare. (ede-emacs-version): Return Emacs/XEmacs differentiator. Get version number from different places. Don't call egrep. (ede-emacs-load): Set :version slot. Call file-name-as-directory to set the directory. * cedet/ede/shell.el: New file. * cedet/inversion.el (inversion-decoders): Allow for stray . in alpha/beta variants.
-rw-r--r--lisp/ChangeLog76
-rw-r--r--lisp/cedet/ede.el16
-rw-r--r--lisp/cedet/ede/emacs.el56
-rw-r--r--lisp/cedet/ede/files.el2
-rw-r--r--lisp/cedet/ede/linux.el7
-rw-r--r--lisp/cedet/ede/pconf.el32
-rw-r--r--lisp/cedet/ede/pmake.el21
-rw-r--r--lisp/cedet/ede/proj-comp.el1
-rw-r--r--lisp/cedet/ede/proj-misc.el1
-rw-r--r--lisp/cedet/ede/proj-obj.el9
-rw-r--r--lisp/cedet/ede/proj-prog.el23
-rw-r--r--lisp/cedet/ede/proj-shared.el74
-rw-r--r--lisp/cedet/ede/proj.el4
-rw-r--r--lisp/cedet/ede/project-am.el16
-rw-r--r--lisp/cedet/ede/shell.el83
-rw-r--r--lisp/cedet/ede/speedbar.el2
-rw-r--r--lisp/cedet/inversion.el6
-rw-r--r--lisp/cedet/semantic/analyze.el1
-rw-r--r--lisp/cedet/semantic/complete.el1
-rw-r--r--lisp/cedet/semantic/debug.el1
-rw-r--r--lisp/cedet/semantic/idle.el2
-rw-r--r--lisp/cedet/semantic/mru-bookmark.el1
-rw-r--r--lisp/cedet/semantic/scope.el45
-rw-r--r--lisp/cedet/srecode/compile.el1
-rw-r--r--lisp/cedet/srecode/dictionary.el1
-rw-r--r--lisp/cedet/srecode/srt.el1
-rw-r--r--lisp/emacs-lisp/eieio-base.el6
27 files changed, 407 insertions, 82 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 0fcfead46e3..bb119085989 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,79 @@
12009-10-17 Chong Yidong <cyd@stupidchicken.com>
2
3 * cedet/srecode/srt.el:
4 * cedet/srecode/compile.el:
5 * cedet/semantic/mru-bookmark.el:
6 * cedet/semantic/debug.el:
7 * cedet/semantic/complete.el:
8 * cedet/semantic/analyze.el: Require CL when compiling.
9
102009-10-17 Eric Ludlam <zappo@gnu.org>
11
12 * cedet/semantic/scope.el
13 (semantic-analyze-scoped-inherited-tag-map): Wrap calculation of
14 tmpscope so that the regular scope will continue to work.
15
16 * cedet/semantic/idle.el (semantic-idle-tag-highlight): Use
17 semantic-idle-summary-highlight-face as the highlighting.
18
19 * emacs-lisp/eieio-base.el (eieio-persistent-save): If buffer
20 contains multibyte characters, choose first applicable coding
21 system automatically.
22
23 * cedet/ede/project-am.el (project-run-target): New method.
24 (project-run-target): New method.
25
26 * cedet/ede.el (ede-target): Add run target menu item.
27 (ede-project, ede-minor-keymap): Add ede-run-target binding.
28 (ede-run-target): New function.
29 (ede-target::project-run-target): New method.
30
31 * cedet/ede/proj.el (project-run-target): New method.
32
33 * cedet/ede/proj-shared.el (ede-gcc-libtool-shared-compiler)
34 (ede-g++-libtool-shared-compiler): Remove SHELL. Remove COMMANDS.
35 Add :rules.
36 (ede-proj-target-makefile-shared-object): Only libtool compilers
37 now available. Add linkers for libtool.
38 (ede-cc-linker-libtool, ede-g++-linker-libtool): New.
39 (ede-proj-makefile-target-name): Always use .la extension.
40
41 * cedet/ede/proj-prog.el (project-run-target): New method.
42
43 * cedet/ede/proj-obj.el (ede-cc-linker): Rename from
44 ede-gcc-linker.
45 (ede-g++-linker): Change Change link lines.
46
47 * cedet/ede/pmake.el (ede-pmake-insert-variable-shared): When
48 searching for old variables, go to the end of the buffer and
49 search backward from there.
50 (ede-proj-makefile-automake-insert-subdirs)
51 (ede-proj-makefile-automake-insert-extradist): New methods.
52 (ede-proj-makefile-create): Use them.
53
54 * cedet/ede/pconf.el (ede-proj-configure-test-required-file):
55 Force FILE to expand to the current target. Use file-exists-p to
56 check that it exists.
57
58 * cedet/ede/linux.el (ede-linux-version): Don't call "head".
59 (ede-linux-load): Wrap dir in file-name-as-directory. Set
60 :version slot.
61
62 * cedet/ede/files.el (ede-get-locator-object): When enabling
63 locate, do so on "top".
64
65 * cedet/ede/emacs.el (ede-emacs-file-existing): Wrap "dir" in
66 file-name-as-directory during compare.
67 (ede-emacs-version): Return Emacs/XEmacs differentiator. Get
68 version number from different places. Don't call egrep.
69 (ede-emacs-load): Set :version slot. Call file-name-as-directory
70 to set the directory.
71
72 * cedet/ede/shell.el: New file.
73
74 * cedet/inversion.el (inversion-decoders): Allow for stray . in
75 alpha/beta variants.
76
12009-10-17 Stefan Monnier <monnier@iro.umontreal.ca> 772009-10-17 Stefan Monnier <monnier@iro.umontreal.ca>
2 78
3 * international/mule-cmds.el (select-safe-coding-system): If the file 79 * international/mule-cmds.el (select-safe-coding-system): If the file
diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
index 03abf93704e..3d05202e7aa 100644
--- a/lisp/cedet/ede.el
+++ b/lisp/cedet/ede.el
@@ -239,6 +239,9 @@ which files this object is interested in."
239 (and ede-object 239 (and ede-object
240 (obj-of-class-p ede-object ede-target)) ] 240 (obj-of-class-p ede-object ede-target)) ]
241 ) 241 )
242 [ "Run target" ede-run-target
243 (and ede-object
244 (obj-of-class-p ede-object ede-target)) ]
242 :documentation "Menu specialized to this type of target." 245 :documentation "Menu specialized to this type of target."
243 :accessor ede-object-menu) 246 :accessor ede-object-menu)
244 ) 247 )
@@ -373,7 +376,8 @@ and target specific elements such as build variables.")
373 :group (settings) 376 :group (settings)
374 :documentation "Project local variables") 377 :documentation "Project local variables")
375 (keybindings :allocation :class 378 (keybindings :allocation :class
376 :initform (("D" . ede-debug-target)) 379 :initform (("D" . ede-debug-target)
380 ("R" . ede-run-target))
377 :documentation "Keybindings specialized to this type of target." 381 :documentation "Keybindings specialized to this type of target."
378 :accessor ede-object-keybindings) 382 :accessor ede-object-keybindings)
379 (menu :allocation :class 383 (menu :allocation :class
@@ -565,6 +569,7 @@ Argument LIST-O-O is the list of objects to choose from."
565 (define-key pmap "c" 'ede-compile-target) 569 (define-key pmap "c" 'ede-compile-target)
566 (define-key pmap "\C-c" 'ede-compile-selected) 570 (define-key pmap "\C-c" 'ede-compile-selected)
567 (define-key pmap "D" 'ede-debug-target) 571 (define-key pmap "D" 'ede-debug-target)
572 (define-key pmap "R" 'ede-run-target)
568 ;; bind our submap into map 573 ;; bind our submap into map
569 (define-key map "\C-c." pmap) 574 (define-key map "\C-c." pmap)
570 map) 575 map)
@@ -1142,6 +1147,11 @@ Optional argument FORCE forces the file to be removed without asking."
1142 (interactive) 1147 (interactive)
1143 (ede-invoke-method 'project-debug-target)) 1148 (ede-invoke-method 'project-debug-target))
1144 1149
1150(defun ede-run-target ()
1151 "Debug the current buffer's assocated target."
1152 (interactive)
1153 (ede-invoke-method 'project-run-target))
1154
1145(defun ede-make-dist () 1155(defun ede-make-dist ()
1146 "Create a distribution from the current project." 1156 "Create a distribution from the current project."
1147 (interactive) 1157 (interactive)
@@ -1381,6 +1391,10 @@ Argument COMMAND is the command to use for compiling the target."
1381 "Run the current project target OBJ in a debugger." 1391 "Run the current project target OBJ in a debugger."
1382 (error "debug-target not supported by %s" (object-name obj))) 1392 (error "debug-target not supported by %s" (object-name obj)))
1383 1393
1394(defmethod project-run-target ((obj ede-target))
1395 "Run the current project target OBJ."
1396 (error "run-target not supported by %s" (object-name obj)))
1397
1384(defmethod project-make-dist ((this ede-project)) 1398(defmethod project-make-dist ((this ede-project))
1385 "Build a distribution for the project based on THIS project." 1399 "Build a distribution for the project based on THIS project."
1386 (error "Make-dist not supported by %s" (object-name this))) 1400 (error "Make-dist not supported by %s" (object-name this)))
diff --git a/lisp/cedet/ede/emacs.el b/lisp/cedet/ede/emacs.el
index edd499eb2b2..a38e6a0ef0d 100644
--- a/lisp/cedet/ede/emacs.el
+++ b/lisp/cedet/ede/emacs.el
@@ -48,7 +48,8 @@ DIR is the directory to search from."
48 (ans nil)) 48 (ans nil))
49 (while (and projs (not ans)) 49 (while (and projs (not ans))
50 (let ((root (ede-project-root-directory (car projs)))) 50 (let ((root (ede-project-root-directory (car projs))))
51 (when (string-match (concat "^" (regexp-quote root)) dir) 51 (when (string-match (concat "^" (regexp-quote root))
52 (file-name-as-directory dir))
52 (setq ans (car projs)))) 53 (setq ans (car projs))))
53 (setq projs (cdr projs))) 54 (setq projs (cdr projs)))
54 ans)) 55 ans))
@@ -70,19 +71,44 @@ DIR is the directory to search from."
70 base)))))) 71 base))))))
71 72
72(defun ede-emacs-version (dir) 73(defun ede-emacs-version (dir)
73 "Find the Emacs version for the Emacs src in DIR." 74 "Find the Emacs version for the Emacs src in DIR.
74 (let ((buff (get-buffer-create " *emacs-query*"))) 75Return a tuple of ( EMACSNAME . VERSION )."
76 (let ((buff (get-buffer-create " *emacs-query*"))
77 (emacs "Emacs")
78 (ver ""))
75 (save-excursion 79 (save-excursion
76 (set-buffer buff) 80 (set-buffer buff)
77 (erase-buffer) 81 (erase-buffer)
78 (setq default-directory (file-name-as-directory dir)) 82 (setq default-directory (file-name-as-directory dir))
79 (call-process "egrep" nil buff nil "-n" "-e" "^version=" "Makefile") 83 ;(call-process "egrep" nil buff nil "-n" "-e" "^version=" "Makefile")
84 (call-process "egrep" nil buff nil "-n" "-e" "AC_INIT" "configure.in")
80 (goto-char (point-min)) 85 (goto-char (point-min))
81 (re-search-forward "version=\\([0-9.]+\\)") 86 ;(re-search-forward "version=\\([0-9.]+\\)")
82 (prog1 87 (cond
83 (match-string 1) 88 ;; Maybe XEmacs?
84 (kill-buffer buff) 89 ((file-exists-p "version.sh")
85 )))) 90 (setq emacs "XEmacs")
91 (insert-file-contents "version.sh")
92 (goto-char (point-min))
93 (re-search-forward "emacs_major_version=\\([0-9]+\\)
94emacs_minor_version=\\([0-9]+\\)
95emacs_beta_version=\\([0-9]+\\)")
96 (setq ver (concat (match-string 1) "."
97 (match-string 2) "."
98 (match-string 3)))
99 )
100 ;; Insert other Emacs here...
101
102 ;; Vaguely recent version of GNU Emacs?
103 (t
104 (insert-file-contents "configure.in")
105 (goto-char (point-min))
106 (re-search-forward "AC_INIT(emacs,\\s-*\\([0-9.]+\\)\\s-*)")
107 (setq ver (match-string 1))
108 )
109 )
110 ;; Return a tuple
111 (cons emacs ver))))
86 112
87(defclass ede-emacs-project (ede-project eieio-instance-tracker) 113(defclass ede-emacs-project (ede-project eieio-instance-tracker)
88 ((tracking-symbol :initform 'ede-emacs-project-list) 114 ((tracking-symbol :initform 'ede-emacs-project-list)
@@ -97,11 +123,13 @@ Argument DIR is the directory it is created for.
97ROOTPROJ is nil, since there is only one project." 123ROOTPROJ is nil, since there is only one project."
98 (or (ede-emacs-file-existing dir) 124 (or (ede-emacs-file-existing dir)
99 ;; Doesn't already exist, so lets make one. 125 ;; Doesn't already exist, so lets make one.
100 (ede-emacs-project "Emacs" 126 (let* ((vertuple (ede-emacs-version dir)))
101 :name (concat "Emacs" (ede-emacs-version dir)) 127 (ede-emacs-project (car vertuple)
102 :directory dir 128 :name (car vertuple)
103 :file (expand-file-name "src/emacs.c" 129 :version (cdr vertuple)
104 dir)) 130 :directory (file-name-as-directory dir)
131 :file (expand-file-name "src/emacs.c"
132 dir)))
105 (ede-add-project-to-global-list this) 133 (ede-add-project-to-global-list this)
106 ) 134 )
107 ) 135 )
diff --git a/lisp/cedet/ede/files.el b/lisp/cedet/ede/files.el
index 2a886758a2f..980d98b3167 100644
--- a/lisp/cedet/ede/files.el
+++ b/lisp/cedet/ede/files.el
@@ -396,7 +396,7 @@ Get it from the toplevel project. If it doesn't have one, make one."
396 ;; caching values, and for locating things more robustly. 396 ;; caching values, and for locating things more robustly.
397 (let ((top (ede-toplevel proj))) 397 (let ((top (ede-toplevel proj)))
398 (when (not (slot-boundp top 'locate-obj)) 398 (when (not (slot-boundp top 'locate-obj))
399 (ede-enable-locate-on-project this)) 399 (ede-enable-locate-on-project top))
400 (oref top locate-obj) 400 (oref top locate-obj)
401 )) 401 ))
402 402
diff --git a/lisp/cedet/ede/linux.el b/lisp/cedet/ede/linux.el
index 400aaa69977..c80902bf0be 100644
--- a/lisp/cedet/ede/linux.el
+++ b/lisp/cedet/ede/linux.el
@@ -76,7 +76,7 @@ DIR is the directory to search from."
76 (set-buffer buff) 76 (set-buffer buff)
77 (erase-buffer) 77 (erase-buffer)
78 (setq default-directory (file-name-as-directory dir)) 78 (setq default-directory (file-name-as-directory dir))
79 (call-process "head" nil buff nil "-n" "3" "Makefile") 79 (insert-file-contents "Makefile" nil 0 512)
80 (goto-char (point-min)) 80 (goto-char (point-min))
81 (let (major minor sub) 81 (let (major minor sub)
82 (re-search-forward "^VERSION *= *\\([0-9.]+\\)") 82 (re-search-forward "^VERSION *= *\\([0-9.]+\\)")
@@ -104,8 +104,9 @@ ROOTPROJ is nil, since there is only one project."
104 (or (ede-linux-file-existing dir) 104 (or (ede-linux-file-existing dir)
105 ;; Doesn't already exist, so lets make one. 105 ;; Doesn't already exist, so lets make one.
106 (ede-linux-project "Linux" 106 (ede-linux-project "Linux"
107 :name (concat "Linux" (ede-linux-version dir)) 107 :name "Linux"
108 :directory dir 108 :version (ede-linux-version dir)
109 :directory (file-name-as-directory dir)
109 :file (expand-file-name "scripts/ver_linux" 110 :file (expand-file-name "scripts/ver_linux"
110 dir)) 111 dir))
111 (ede-add-project-to-global-list this) 112 (ede-add-project-to-global-list this)
diff --git a/lisp/cedet/ede/pconf.el b/lisp/cedet/ede/pconf.el
index 7544f85405d..216da94096f 100644
--- a/lisp/cedet/ede/pconf.el
+++ b/lisp/cedet/ede/pconf.el
@@ -42,21 +42,22 @@ don't do it. A value of nil means to just do it.")
42 42
43(defmethod ede-proj-configure-test-required-file ((this ede-proj-project) file) 43(defmethod ede-proj-configure-test-required-file ((this ede-proj-project) file)
44 "For project THIS, test that the file FILE exists, or create it." 44 "For project THIS, test that the file FILE exists, or create it."
45 (when (not (ede-expand-filename (ede-toplevel this) file)) 45 (let ((f (ede-expand-filename (ede-toplevel this) file t)))
46 (save-excursion 46 (when (not (file-exists-p f))
47 (find-file (ede-expand-filename (ede-toplevel this) file t)) 47 (save-excursion
48 (cond ((string= file "AUTHORS") 48 (find-file f)
49 (insert (user-full-name) " <" (user-login-name) ">")) 49 (cond ((string= file "AUTHORS")
50 ((string= file "NEWS") 50 (insert (user-full-name) " <" (user-login-name) ">"))
51 (insert "NEWS file for " (ede-name this))) 51 ((string= file "NEWS")
52 (t (insert "\n"))) 52 (insert "NEWS file for " (ede-name this)))
53 (save-buffer) 53 (t (insert "\n")))
54 (when 54 (save-buffer)
55 (and (eq ede-pconf-create-file-query 'ask) 55 (when
56 (not (eq ede-pconf-create-file-query 'never)) 56 (and (eq ede-pconf-create-file-query 'ask)
57 (not (y-or-n-p 57 (not (eq ede-pconf-create-file-query 'never))
58 (format "I had to create the %s file for you. Ok? " file))) 58 (not (y-or-n-p
59 (error "Quit")))))) 59 (format "I had to create the %s file for you. Ok? " file)))
60 (error "Quit")))))))
60 61
61 62
62(defmethod ede-proj-configure-synchronize ((this ede-proj-project)) 63(defmethod ede-proj-configure-synchronize ((this ede-proj-project))
@@ -100,6 +101,7 @@ don't do it. A value of nil means to just do it.")
100 ;; Now save 101 ;; Now save
101 (save-buffer) 102 (save-buffer)
102 (setq postcmd "autoreconf -i;") 103 (setq postcmd "autoreconf -i;")
104
103 ;; Verify a bunch of files that are required by automake. 105 ;; Verify a bunch of files that are required by automake.
104 (ede-proj-configure-test-required-file this "AUTHORS") 106 (ede-proj-configure-test-required-file this "AUTHORS")
105 (ede-proj-configure-test-required-file this "NEWS") 107 (ede-proj-configure-test-required-file this "NEWS")
diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el
index a8b16dce139..6ded4be2834 100644
--- a/lisp/cedet/ede/pmake.el
+++ b/lisp/cedet/ede/pmake.el
@@ -44,6 +44,7 @@
44;; 1) Insert distribution source variables for targets 44;; 1) Insert distribution source variables for targets
45;; 2) Insert user requested rules 45;; 2) Insert user requested rules
46 46
47(eval-when-compile (require 'cl))
47(require 'ede/proj) 48(require 'ede/proj)
48(require 'ede/proj-obj) 49(require 'ede/proj-obj)
49(require 'ede/proj-comp) 50(require 'ede/proj-comp)
@@ -205,6 +206,9 @@ MFILENAME is the makefile to generate."
205 (error "Makefile.in is not supported")) 206 (error "Makefile.in is not supported"))
206 ((eq (oref this makefile-type) 'Makefile.am) 207 ((eq (oref this makefile-type) 'Makefile.am)
207 (require 'ede/pconf) 208 (require 'ede/pconf)
209 ;; Basic vars needed:
210 (ede-proj-makefile-automake-insert-subdirs this)
211 (ede-proj-makefile-automake-insert-extradist this)
208 ;; Distribution variables 212 ;; Distribution variables
209 (let ((targ (if isdist (oref this targets) mt))) 213 (let ((targ (if isdist (oref this targets) mt)))
210 (ede-compiler-begin-unique 214 (ede-compiler-begin-unique
@@ -240,8 +244,11 @@ MFILENAME is the makefile to generate."
240 "Add VARNAME into the current Makefile. 244 "Add VARNAME into the current Makefile.
241Execute BODY in a location where a value can be placed." 245Execute BODY in a location where a value can be placed."
242 `(let ((addcr t) (v ,varname)) 246 `(let ((addcr t) (v ,varname))
243 (if (re-search-backward (concat "^" v "\\s-*=") nil t) 247 (if (save-excursion
248 (goto-char (point-max))
249 (re-search-backward (concat "^" v "\\s-*=") nil t))
244 (progn 250 (progn
251 (goto-char (match-end 0))
245 (ede-pmake-end-of-variable) 252 (ede-pmake-end-of-variable)
246 (if (< (current-column) 40) 253 (if (< (current-column) 40)
247 (if (and (/= (preceding-char) ?=) 254 (if (and (/= (preceding-char) ?=)
@@ -502,6 +509,18 @@ Argument THIS is the target that should insert stuff."
502 (ede-proj-makefile-insert-dist-dependencies this) 509 (ede-proj-makefile-insert-dist-dependencies this)
503 ) 510 )
504 511
512(defmethod ede-proj-makefile-automake-insert-subdirs ((this ede-proj-project))
513 "Insert a SUBDIRS variable for Automake."
514 (proj-comp-insert-variable-once "SUBDIRS"
515 (ede-map-subprojects
516 this (lambda (sproj)
517 (insert " " (ede-subproject-relative-path sproj))
518 ))))
519
520(defmethod ede-proj-makefile-automake-insert-extradist ((this ede-proj-project))
521 "Insert the EXTRADIST variable entries needed for Automake and EDE."
522 (proj-comp-insert-variable-once "EXTRA_DIST" (insert "Project.ede")))
523
505(defmethod ede-proj-makefile-insert-dist-rules ((this ede-proj-project)) 524(defmethod ede-proj-makefile-insert-dist-rules ((this ede-proj-project))
506 "Insert distribution rules for THIS in a Makefile, such as CLEAN and DIST." 525 "Insert distribution rules for THIS in a Makefile, such as CLEAN and DIST."
507 (let ((junk (ede-proj-makefile-garbage-patterns this)) 526 (let ((junk (ede-proj-makefile-garbage-patterns this))
diff --git a/lisp/cedet/ede/proj-comp.el b/lisp/cedet/ede/proj-comp.el
index 376c48f9c10..4d462727281 100644
--- a/lisp/cedet/ede/proj-comp.el
+++ b/lisp/cedet/ede/proj-comp.el
@@ -44,6 +44,7 @@
44;; To write a method that inserts a variable or rule for a compiler 44;; To write a method that inserts a variable or rule for a compiler
45;; based object, wrap the body of your call in `ede-compiler-only-once' 45;; based object, wrap the body of your call in `ede-compiler-only-once'
46 46
47(eval-when-compile (require 'cl))
47(require 'ede) ;source object 48(require 'ede) ;source object
48(require 'ede/autoconf-edit) 49(require 'ede/autoconf-edit)
49 50
diff --git a/lisp/cedet/ede/proj-misc.el b/lisp/cedet/ede/proj-misc.el
index 5907dcd5d47..498e9a43c0f 100644
--- a/lisp/cedet/ede/proj-misc.el
+++ b/lisp/cedet/ede/proj-misc.el
@@ -27,6 +27,7 @@
27;; This misc target lets the user link in custom makefiles to an EDE 27;; This misc target lets the user link in custom makefiles to an EDE
28;; project. 28;; project.
29 29
30(eval-when-compile (require 'cl))
30(require 'ede/pmake) 31(require 'ede/pmake)
31(require 'ede/proj-comp) 32(require 'ede/proj-comp)
32 33
diff --git a/lisp/cedet/ede/proj-obj.el b/lisp/cedet/ede/proj-obj.el
index f3ededad893..85ba47fb47e 100644
--- a/lisp/cedet/ede/proj-obj.el
+++ b/lisp/cedet/ede/proj-obj.el
@@ -26,6 +26,7 @@
26;; Handles a superclass of target types which create object code in 26;; Handles a superclass of target types which create object code in
27;; and EDE Project file. 27;; and EDE Project file.
28 28
29(eval-when-compile (require 'cl))
29(require 'ede/proj) 30(require 'ede/proj)
30(declare-function ede-pmake-varname "ede/pmake") 31(declare-function ede-pmake-varname "ede/pmake")
31 32
@@ -46,7 +47,7 @@
46 ;; fortran or pascal can be added here 47 ;; fortran or pascal can be added here
47 )) 48 ))
48 (availablelinkers :initform (ede-g++-linker 49 (availablelinkers :initform (ede-g++-linker
49 ede-gcc-linker 50 ede-cc-linker
50 ede-gfortran-linker 51 ede-gfortran-linker
51 ede-ld-linker 52 ede-ld-linker
52 ;; Add more linker thingies here. 53 ;; Add more linker thingies here.
@@ -108,10 +109,10 @@ file.")
108 :uselinker t) 109 :uselinker t)
109 "Compiler for C sourcecode.") 110 "Compiler for C sourcecode.")
110 111
111(defvar ede-gcc-linker 112(defvar ede-cc-linker
112 (ede-linker 113 (ede-linker
113 "ede-gcc-linker" 114 "ede-cc-linker"
114 :name "gcc" 115 :name "cc"
115 :sourcetype '(ede-source-c) 116 :sourcetype '(ede-source-c)
116 :variables '(("C_LINK" . "$(CC) $(CFLAGS) $(LDFLAGS) -L.")) 117 :variables '(("C_LINK" . "$(CC) $(CFLAGS) $(LDFLAGS) -L."))
117 :commands '("$(C_LINK) -o $@ $^") 118 :commands '("$(C_LINK) -o $@ $^")
diff --git a/lisp/cedet/ede/proj-prog.el b/lisp/cedet/ede/proj-prog.el
index da99acd6f9d..4b0843e1408 100644
--- a/lisp/cedet/ede/proj-prog.el
+++ b/lisp/cedet/ede/proj-prog.el
@@ -25,9 +25,12 @@
25;; 25;;
26;; Handle building programs from object files in and EDE Project file. 26;; Handle building programs from object files in and EDE Project file.
27 27
28(eval-when-compile (require 'cl))
28(require 'ede/pmake) 29(require 'ede/pmake)
29(require 'ede/proj-obj) 30(require 'ede/proj-obj)
30 31
32(declare-function ede-shell-run-something "ede/shell")
33
31;;; Code: 34;;; Code:
32(defclass ede-proj-target-makefile-program 35(defclass ede-proj-target-makefile-program
33 (ede-proj-target-makefile-objectcode) 36 (ede-proj-target-makefile-objectcode)
@@ -107,6 +110,26 @@ Note: Not currently used. This bug needs to be fixed.")
107 (funcall ede-debug-program-function cmd)) 110 (funcall ede-debug-program-function cmd))
108 (kill-buffer tb)))) 111 (kill-buffer tb))))
109 112
113(defmethod project-run-target ((obj ede-proj-target-makefile-program) &optional command)
114 "Run a program target OBJ.
115Optional COMMAND is the command to run in place of asking the user."
116 (require 'ede/shell)
117 (let ((tb (get-buffer-create " *padt*"))
118 (dd (if (not (string= (oref obj path) ""))
119 (oref obj path)
120 default-directory))
121 (cmd nil))
122 (unwind-protect
123 (progn
124 (set-buffer tb)
125 (setq default-directory dd)
126 (setq cmd (or command
127 (read-from-minibuffer
128 "Run (like this): "
129 (concat "./" (ede-target-name obj)))))
130 (ede-shell-run-something obj cmd)
131 )
132 (kill-buffer tb))))
110 133
111(provide 'ede/proj-prog) 134(provide 'ede/proj-prog)
112 135
diff --git a/lisp/cedet/ede/proj-shared.el b/lisp/cedet/ede/proj-shared.el
index 37aeb723042..2db616cfebf 100644
--- a/lisp/cedet/ede/proj-shared.el
+++ b/lisp/cedet/ede/proj-shared.el
@@ -26,6 +26,7 @@
26;; Tries to deal with libtool and non-libtool situations. 26;; Tries to deal with libtool and non-libtool situations.
27 27
28(require 'ede/pmake) 28(require 'ede/pmake)
29(require 'ede/proj-obj)
29(require 'ede/proj-prog) 30(require 'ede/proj-prog)
30 31
31;;; THIS NEEDS WORK. SEE ede-proj-obj. 32;;; THIS NEEDS WORK. SEE ede-proj-obj.
@@ -33,11 +34,15 @@
33;;; Code: 34;;; Code:
34(defclass ede-proj-target-makefile-shared-object 35(defclass ede-proj-target-makefile-shared-object
35 (ede-proj-target-makefile-program) 36 (ede-proj-target-makefile-program)
36 ((availablecompilers :initform (ede-gcc-shared-compiler 37 ((availablecompilers :initform (ede-gcc-libtool-shared-compiler
37 ede-gcc-libtool-shared-compiler 38 ;;ede-gcc-shared-compiler
38 ede-g++-shared-compiler
39 ede-g++-libtool-shared-compiler 39 ede-g++-libtool-shared-compiler
40 ;;ede-g++-shared-compiler
40 )) 41 ))
42 (availablelinkers :initform (ede-cc-linker-libtool
43 ede-g++-linker-libtool
44 ;; Add more linker thingies here.
45 ))
41 (ldflags :custom (repeat (string :tag "Libtool flag")) 46 (ldflags :custom (repeat (string :tag "Libtool flag"))
42 :documentation 47 :documentation
43 "Additional flags to add when linking this shared library. 48 "Additional flags to add when linking this shared library.
@@ -65,16 +70,37 @@ Use ldlibs to add addition libraries.")
65 (clone ede-gcc-shared-compiler 70 (clone ede-gcc-shared-compiler
66 "ede-c-shared-compiler-libtool" 71 "ede-c-shared-compiler-libtool"
67 :name "libtool" 72 :name "libtool"
68 :variables '(("LIBTOOL" . "$(SHELL) libtool") 73 :variables '(("LIBTOOL" . "libtool")
69 ("LTCOMPILE" . "$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)") 74 ("LTCOMPILE" . "$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)")
70 ("LTLINK" . "$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -L. -o $@") 75 ("LTLINK" . "$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -L. -o $@")
71 ) 76 )
72 :commands '("$(LTLINK) $^" 77 :rules (list (ede-makefile-rule
73 ) 78 "cc-inference-rule-libtool"
79 :target "%.o"
80 :dependencies "%.c"
81 :rules '("@echo '$(LTCOMPILE) -o $@ $<'; \\"
82 "$(LTCOMPILE) -o $@ $<"
83 )
84 ))
74 :autoconf '("AC_PROG_LIBTOOL") 85 :autoconf '("AC_PROG_LIBTOOL")
75 ) 86 )
76 "Compiler for C sourcecode.") 87 "Compiler for C sourcecode.")
77 88
89(defvar ede-cc-linker-libtool
90 (clone ede-cc-linker
91 "ede-cc-linker-libtool"
92 :name "cc shared"
93 ;; Only use this linker when c++ exists.
94 :sourcetype '(ede-source-c++)
95 :variables '(
96 ("LIBTOOL" . "libtool")
97 ("LTLINK" . "$(LIBTOOL) --tag=CPP --mode=link $(CPP) $(CFLAGS) $(LDFLAGS) -L. -o $@")
98 )
99 :commands '("$(LTLINK) -o $@ $^")
100 :autoconf '("AC_PROG_LIBTOOL")
101 :objectextention ".la")
102 "Linker needed for c++ programs.")
103
78(defvar ede-g++-shared-compiler 104(defvar ede-g++-shared-compiler
79 (clone ede-g++-compiler 105 (clone ede-g++-compiler
80 "ede-c++-shared-compiler" 106 "ede-c++-shared-compiler"
@@ -92,16 +118,36 @@ Use ldlibs to add addition libraries.")
92 "ede-c++-shared-compiler-libtool" 118 "ede-c++-shared-compiler-libtool"
93 :name "libtool" 119 :name "libtool"
94 :variables '(("CXX" "g++") 120 :variables '(("CXX" "g++")
95 ("LIBTOOL" . "$(SHELL) libtool") 121 ("LIBTOOL" . "libtool")
96 ("LTCOMPILE" . "$(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)") 122 ("LTCOMPILE" . "$(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)")
97 ("LTLINK" . "$(LIBTOOL) --mode=link $(CXX) $(CFLAGS) $(LDFLAGS) -L. -o $@")
98 ) 123 )
99 :commands '("$(LTLINK) $^" 124 :rules (list (ede-makefile-rule
100 ) 125 "c++-inference-rule-libtool"
126 :target "%.o"
127 :dependencies "%.c"
128 :rules '("@echo '$(LTCOMPILE) -o $@ $<'; \\"
129 "$(LTCOMPILE) -o $@ $<"
130 )
131 ))
101 :autoconf '("AC_PROG_LIBTOOL") 132 :autoconf '("AC_PROG_LIBTOOL")
102 ) 133 )
103 "Compiler for C sourcecode.") 134 "Compiler for C sourcecode.")
104 135
136(defvar ede-g++-linker-libtool
137 (clone ede-g++-linker
138 "ede-g++-linker-libtool"
139 :name "g++"
140 ;; Only use this linker when c++ exists.
141 :sourcetype '(ede-source-c++)
142 :variables '(
143 ("LIBTOOL" . "libtool")
144 ("LTLINK" . "$(LIBTOOL) --tag=CXX --mode=link $(CXX) $(CFLAGS) $(LDFLAGS) -L. -o $@")
145 )
146 :commands '("$(LTLINK) -o $@ $^")
147 :autoconf '("AC_PROG_LIBTOOL")
148 :objectextention ".la")
149 "Linker needed for c++ programs.")
150
105;;; @TODO - C++ versions of the above. 151;;; @TODO - C++ versions of the above.
106 152
107(when nil 153(when nil
@@ -150,11 +196,7 @@ We need to override -program which has an LDADD element."
150 "Return the name of the main target for THIS target." 196 "Return the name of the main target for THIS target."
151 ;; We need some platform gunk to make the .so change to .sl, or .a, 197 ;; We need some platform gunk to make the .so change to .sl, or .a,
152 ;; depending on the platform we are going to compile against. 198 ;; depending on the platform we are going to compile against.
153 (concat "lib" (ede-name this) 199 (concat "lib" (ede-name this) ".la"))
154 (if (eq (oref (ede-target-parent this) makefile-type)
155 'Makefile.am)
156 ".la"
157 ".so")))
158 200
159(defmethod ede-proj-makefile-sourcevar ((this ede-proj-target-makefile-shared-object)) 201(defmethod ede-proj-makefile-sourcevar ((this ede-proj-target-makefile-shared-object))
160 "Return the variable name for THIS's sources." 202 "Return the variable name for THIS's sources."
diff --git a/lisp/cedet/ede/proj.el b/lisp/cedet/ede/proj.el
index bf50fe63608..046567fe831 100644
--- a/lisp/cedet/ede/proj.el
+++ b/lisp/cedet/ede/proj.el
@@ -498,6 +498,10 @@ Optional argument COMMAND is the s the alternate command to use."
498 "Run the current project target OBJ in a debugger." 498 "Run the current project target OBJ in a debugger."
499 (error "Debug-target not supported by %s" (object-name obj))) 499 (error "Debug-target not supported by %s" (object-name obj)))
500 500
501(defmethod project-run-target ((obj ede-proj-target))
502 "Run the current project target OBJ."
503 (error "Run-target not supported by %s" (object-name obj)))
504
501(defmethod ede-proj-makefile-target-name ((this ede-proj-target)) 505(defmethod ede-proj-makefile-target-name ((this ede-proj-target))
502 "Return the name of the main target for THIS target." 506 "Return the name of the main target for THIS target."
503 (ede-name this)) 507 (ede-name this))
diff --git a/lisp/cedet/ede/project-am.el b/lisp/cedet/ede/project-am.el
index 4c480271e0e..50436f214f6 100644
--- a/lisp/cedet/ede/project-am.el
+++ b/lisp/cedet/ede/project-am.el
@@ -392,6 +392,7 @@ Argument COMMAND is the command to use for compiling the target."
392 (cmd nil)) 392 (cmd nil))
393 (unwind-protect 393 (unwind-protect
394 (progn 394 (progn
395 (require 'ede/shell)
395 (set-buffer tb) 396 (set-buffer tb)
396 (setq default-directory dd) 397 (setq default-directory dd)
397 (setq cmd (read-from-minibuffer 398 (setq cmd (read-from-minibuffer
@@ -401,6 +402,21 @@ Argument COMMAND is the command to use for compiling the target."
401 (funcall project-am-debug-target-function cmd)) 402 (funcall project-am-debug-target-function cmd))
402 (kill-buffer tb)))) 403 (kill-buffer tb))))
403 404
405(defmethod project-run-target ((obj project-am-objectcode))
406 "Run the current project target in comint buffer."
407 (let ((tb (get-buffer-create " *padt*"))
408 (dd (oref obj path))
409 (cmd nil))
410 (unwind-protect
411 (progn
412 (set-buffer tb)
413 (setq default-directory dd)
414 (setq cmd (read-from-minibuffer
415 "Run (like this): "
416 (concat (ede-target-name obj))))
417 (ede-shell-run-something obj cmd))
418 (kill-buffer tb))))
419
404(defmethod project-make-dist ((this project-am-target)) 420(defmethod project-make-dist ((this project-am-target))
405 "Run the current project in the debugger." 421 "Run the current project in the debugger."
406 (require 'compile) 422 (require 'compile)
diff --git a/lisp/cedet/ede/shell.el b/lisp/cedet/ede/shell.el
new file mode 100644
index 00000000000..0d05d238e39
--- /dev/null
+++ b/lisp/cedet/ede/shell.el
@@ -0,0 +1,83 @@
1;;; ede/shell.el --- A shell controlled by EDE.
2;;
3;; Copyright (C) 2009 Free Software Foundation, Inc.
4;;
5;; Author: Eric M. Ludlam <eric@siege-engine.com>
6
7;; This file is part of GNU Emacs.
8
9;; GNU Emacs is free software: you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by
11;; the Free Software Foundation, either version 3 of the License, or
12;; (at your option) any later version.
13
14;; GNU Emacs is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;; GNU General Public License for more details.
18
19;; You should have received a copy of the GNU General Public License
20;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
21
22;;; Commentary:
23;;
24;; Run commands through a specialized EDE shell buffer. Commands will
25;; be run as shell commands so users can type in their own thing in
26;; the shells for testing purposes.
27;;
28;; Each thing that EDE wants to use will create a shell to interact with it.
29
30;;; Code:
31
32(require 'ede)
33
34(declare-function comint-send-input "comint")
35
36(defmethod ede-shell-run-something ((target ede-target) command)
37 "Create a shell to run stuff for TARGET.
38COMMAND is a text string representing the thing to be run."
39 (let* ((buff (ede-shell-buffer target))
40 (cp (ede-target-parent target))
41 (dd (oref cp :directory)))
42 ;; Show the new buffer.
43 (when (not (get-buffer-window buff))
44 (switch-to-buffer-other-window buff t))
45 ;; Force a shell into the buffer.
46 (shell buff)
47 (while (eq (point-min) (point))
48 (accept-process-output))
49 ;; Change the default directory
50 (if (not (string= (file-name-as-directory (expand-file-name default-directory))
51 (file-name-as-directory (expand-file-name dd))))
52 ;; Go there.
53 (setq command (concat (concat "cd " dd ";" command))))
54 ;; Run the command itself.
55 (ede-shell-run-command command)
56 ))
57
58(defun ede-shell-run-command (command)
59 "Run the COMMAND in the current shell-buffer."
60 (require 'comint)
61 ;; go to end
62 (goto-char (point-max))
63 ;; Insert the stuff.
64 (goto-char (point-max))
65 (insert command)
66 ;; Send the command.
67 (comint-send-input)
68 )
69
70(defmethod ede-shell-buffer ((target ede-target))
71 "Get the buffer for running shell commands for TARGET."
72 (let ((name (ede-name target)))
73 (get-buffer-create (format "*EDE Shell %s" name))))
74
75(provide 'ede/shell)
76
77;; Local variables:
78;; generated-autoload-file: "loaddefs.el"
79;; generated-autoload-feature: ede/loaddefs
80;; generated-autoload-load-name: "ede/shell"
81;; End:
82
83;;; ede/shell.el ends here
diff --git a/lisp/cedet/ede/speedbar.el b/lisp/cedet/ede/speedbar.el
index 93bb50137c7..cc54128a097 100644
--- a/lisp/cedet/ede/speedbar.el
+++ b/lisp/cedet/ede/speedbar.el
@@ -27,6 +27,8 @@
27;; 27;;
28 28
29;;; Code: 29;;; Code:
30
31(eval-when-compile (require 'cl))
30(require 'speedbar) 32(require 'speedbar)
31(require 'eieio-speedbar) 33(require 'eieio-speedbar)
32(require 'ede) 34(require 'ede)
diff --git a/lisp/cedet/inversion.el b/lisp/cedet/inversion.el
index 271f3d0d2fe..d7e4417d23d 100644
--- a/lisp/cedet/inversion.el
+++ b/lisp/cedet/inversion.el
@@ -80,10 +80,10 @@
80 80
81(defconst inversion-decoders 81(defconst inversion-decoders
82 '( 82 '(
83 (alpha "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*alpha\\([0-9]+\\)?$" 3) 83 (alpha "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*\\.?alpha\\([0-9]+\\)?$" 3)
84 (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*beta\\([0-9]+\\)?$" 3) 84 (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*\\.?beta\\([0-9]+\\)?$" 3)
85 (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*(beta\\([0-9]+\\)?)" 3) 85 (beta "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*(beta\\([0-9]+\\)?)" 3)
86 (prerelease "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*pre\\([0-9]+\\)?$" 3) 86 (prerelease "^\\([0-9]+\\)\\.\\([0-9]+\\)\\s-*\\.?pre\\([0-9]+\\)?$" 3)
87 (full "^\\([0-9]+\\)\\.\\([0-9]+\\)$" 2) 87 (full "^\\([0-9]+\\)\\.\\([0-9]+\\)$" 2)
88 (fullsingle "^\\([0-9]+\\)$" 1) 88 (fullsingle "^\\([0-9]+\\)$" 1)
89 (patch "^\\([0-9]+\\)\\.\\([0-9]+\\) (patch \\([0-9]+\\))" 3) 89 (patch "^\\([0-9]+\\)\\.\\([0-9]+\\) (patch \\([0-9]+\\))" 3)
diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el
index 98c0665f842..a4d5664f226 100644
--- a/lisp/cedet/semantic/analyze.el
+++ b/lisp/cedet/semantic/analyze.el
@@ -64,6 +64,7 @@
64;; constant. These need to be returned as there would be no 64;; constant. These need to be returned as there would be no
65;; other possible completions. 65;; other possible completions.
66 66
67(eval-when-compile (require 'cl))
67(require 'semantic) 68(require 'semantic)
68(require 'semantic/format) 69(require 'semantic/format)
69(require 'semantic/ctxt) 70(require 'semantic/ctxt)
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el
index 6744e2cd336..154defb417a 100644
--- a/lisp/cedet/semantic/complete.el
+++ b/lisp/cedet/semantic/complete.el
@@ -107,6 +107,7 @@
107;; `semantic-complete-inline-tag-engine' will complete text in 107;; `semantic-complete-inline-tag-engine' will complete text in
108;; a buffer. 108;; a buffer.
109 109
110(eval-when-compile (require 'cl))
110(require 'semantic) 111(require 'semantic)
111(require 'eieio-opt) 112(require 'eieio-opt)
112(require 'semantic/analyze) 113(require 'semantic/analyze)
diff --git a/lisp/cedet/semantic/debug.el b/lisp/cedet/semantic/debug.el
index 6d88e9962a8..ac8b4b1314e 100644
--- a/lisp/cedet/semantic/debug.el
+++ b/lisp/cedet/semantic/debug.el
@@ -36,6 +36,7 @@
36;; Each parser must implement the interface and override any methods as needed. 36;; Each parser must implement the interface and override any methods as needed.
37;; 37;;
38 38
39(eval-when-compile (require 'cl))
39(require 'semantic) 40(require 'semantic)
40(require 'eieio) 41(require 'eieio)
41(eval-when-compile (require 'semantic/find)) 42(eval-when-compile (require 'semantic/find))
diff --git a/lisp/cedet/semantic/idle.el b/lisp/cedet/semantic/idle.el
index 83ac3b27e7d..45f804b62a7 100644
--- a/lisp/cedet/semantic/idle.el
+++ b/lisp/cedet/semantic/idle.el
@@ -905,7 +905,7 @@ Call `semantic-symref-hits-in-region' to identify local references."
905 target (lambda (start end prefix) 905 target (lambda (start end prefix)
906 (when (/= start (car Hbounds)) 906 (when (/= start (car Hbounds))
907 (pulse-momentary-highlight-region 907 (pulse-momentary-highlight-region
908 start end)) 908 start end semantic-idle-summary-highlight-face))
909 (semantic-throw-on-input 'symref-highlight) 909 (semantic-throw-on-input 'symref-highlight)
910 ) 910 )
911 (semantic-tag-start tag) 911 (semantic-tag-start tag)
diff --git a/lisp/cedet/semantic/mru-bookmark.el b/lisp/cedet/semantic/mru-bookmark.el
index d57aa194b98..da508a67553 100644
--- a/lisp/cedet/semantic/mru-bookmark.el
+++ b/lisp/cedet/semantic/mru-bookmark.el
@@ -45,6 +45,7 @@
45 45
46;;; Code: 46;;; Code:
47 47
48(eval-when-compile (require 'cl))
48(require 'semantic) 49(require 'semantic)
49(require 'eieio-base) 50(require 'eieio-base)
50(require 'ring) 51(require 'ring)
diff --git a/lisp/cedet/semantic/scope.el b/lisp/cedet/semantic/scope.el
index 99d410a6b3e..b7833e30a5f 100644
--- a/lisp/cedet/semantic/scope.el
+++ b/lisp/cedet/semantic/scope.el
@@ -602,28 +602,29 @@ whose tags can be searched when needed, OR it may be a scope object."
602 ;; for recycling later? Should this become a helpful 602 ;; for recycling later? Should this become a helpful
603 ;; extra routine? 603 ;; extra routine?
604 (when (and parents (semantic-tag-with-position-p type)) 604 (when (and parents (semantic-tag-with-position-p type))
605 ;; If TYPE has a position, go there and get the scope. 605 (save-excursion
606 (semantic-go-to-tag type) 606 ;; If TYPE has a position, go there and get the scope.
607 607 (semantic-go-to-tag type)
608 ;; We need to make a mini scope, and only include the misc bits 608
609 ;; that will help in finding the parent. We don't really need 609 ;; We need to make a mini scope, and only include the misc bits
610 ;; to do any of the stuff related to variables and what-not. 610 ;; that will help in finding the parent. We don't really need
611 (setq tmpscope (semantic-scope-cache "mini")) 611 ;; to do any of the stuff related to variables and what-not.
612 (let* (;; Step 1: 612 (setq tmpscope (semantic-scope-cache "mini"))
613 (scopetypes (semantic-analyze-scoped-types (point))) 613 (let* ( ;; Step 1:
614 (parents (semantic-analyze-scope-nested-tags (point) scopetypes)) 614 (scopetypes (semantic-analyze-scoped-types (point)))
615 ;;(parentinherited (semantic-analyze-scope-lineage-tags parents scopetypes)) 615 (parents (semantic-analyze-scope-nested-tags (point) scopetypes))
616 (lscope nil) 616 ;;(parentinherited (semantic-analyze-scope-lineage-tags parents scopetypes))
617 ) 617 (lscope nil)
618 (oset tmpscope scopetypes scopetypes) 618 )
619 (oset tmpscope parents parents) 619 (oset tmpscope scopetypes scopetypes)
620 ;;(oset tmpscope parentinheritance parentinherited) 620 (oset tmpscope parents parents)
621 621 ;;(oset tmpscope parentinheritance parentinherited)
622 (when (or scopetypes parents) 622
623 (setq lscope (semantic-analyze-scoped-tags scopetypes tmpscope)) 623 (when (or scopetypes parents)
624 (oset tmpscope scope lscope)) 624 (setq lscope (semantic-analyze-scoped-tags scopetypes tmpscope))
625 (oset tmpscope fullscope (append scopetypes lscope parents)) 625 (oset tmpscope scope lscope))
626 )) 626 (oset tmpscope fullscope (append scopetypes lscope parents))
627 )))
627 ;; END creating tmpscope 628 ;; END creating tmpscope
628 629
629 ;; Look up each parent one at a time. 630 ;; Look up each parent one at a time.
diff --git a/lisp/cedet/srecode/compile.el b/lisp/cedet/srecode/compile.el
index 626d8c8d0d0..0e7dfe7d34b 100644
--- a/lisp/cedet/srecode/compile.el
+++ b/lisp/cedet/srecode/compile.el
@@ -31,6 +31,7 @@
31;; The output are a series of EIEIO objects which represent the 31;; The output are a series of EIEIO objects which represent the
32;; templates in a way that could be inserted later. 32;; templates in a way that could be inserted later.
33 33
34(eval-when-compile (require 'cl))
34(require 'semantic) 35(require 'semantic)
35(require 'eieio) 36(require 'eieio)
36(require 'eieio-base) 37(require 'eieio-base)
diff --git a/lisp/cedet/srecode/dictionary.el b/lisp/cedet/srecode/dictionary.el
index 76d6181349c..4536a3e8478 100644
--- a/lisp/cedet/srecode/dictionary.el
+++ b/lisp/cedet/srecode/dictionary.el
@@ -28,6 +28,7 @@
28 28
29;;; CLASSES 29;;; CLASSES
30 30
31(eval-when-compile (require 'cl))
31(require 'eieio) 32(require 'eieio)
32(require 'srecode) 33(require 'srecode)
33(require 'srecode/table) 34(require 'srecode/table)
diff --git a/lisp/cedet/srecode/srt.el b/lisp/cedet/srecode/srt.el
index 045c55bd04f..41d8d8dbe38 100644
--- a/lisp/cedet/srecode/srt.el
+++ b/lisp/cedet/srecode/srt.el
@@ -25,6 +25,7 @@
25 25
26;;; Code: 26;;; Code:
27 27
28(eval-when-compile (require 'cl))
28(require 'eieio) 29(require 'eieio)
29(require 'srecode/dictionary) 30(require 'srecode/dictionary)
30(require 'srecode/insert) 31(require 'srecode/insert)
diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index b530131e72b..f624714f8a6 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -273,7 +273,11 @@ instance."
273 (eieio-persistent-path-relative this file) 273 (eieio-persistent-path-relative this file)
274 (file-name-nondirectory cfn))) 274 (file-name-nondirectory cfn)))
275 (object-write this (oref this file-header-line))) 275 (object-write this (oref this file-header-line)))
276 (let ((backup-inhibited (not (oref this do-backups)))) 276 (let ((backup-inhibited (not (oref this do-backups)))
277 (cs (car (find-coding-systems-region
278 (point-min) (point-max)))))
279 (unless (eq cs 'undecided)
280 (setq buffer-file-coding-system cs))
277 ;; Old way - write file. Leaves message behind. 281 ;; Old way - write file. Leaves message behind.
278 ;;(write-file cfn nil) 282 ;;(write-file cfn nil)
279 283