aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2010-11-06 12:55:44 -0700
committerGlenn Morris2010-11-06 12:55:44 -0700
commite2a9c0bca0dc06975181556767a3b6db8de4e486 (patch)
tree78de9005b4153d313e2131766555a1e1914a7db7
parent4e44448fcd43f825c373f6620203db213196a194 (diff)
downloademacs-e2a9c0bca0dc06975181556767a3b6db8de4e486.tar.gz
emacs-e2a9c0bca0dc06975181556767a3b6db8de4e486.zip
Minor idlwave change.
* lisp/progmodes/idlwave.el (idlwave-routine-entry-compare-twins): (idlwave-study-twins): Prefix dynamic local `class'. (idlwave-routine-twin-compare): Update for above name change.
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/progmodes/idlwave.el30
2 files changed, 20 insertions, 14 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index da40654f0de..aaab0c660c5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,9 @@
12010-11-06 Glenn Morris <rgm@gnu.org> 12010-11-06 Glenn Morris <rgm@gnu.org>
2 2
3 * progmodes/idlwave.el (idlwave-routine-entry-compare-twins):
4 (idlwave-study-twins): Prefix dynamic local `class'.
5 (idlwave-routine-twin-compare): Update for above name change.
6
3 * emacs-lisp/eieio-comp.el (byte-compile-file-form-defmethod): 7 * emacs-lisp/eieio-comp.el (byte-compile-file-form-defmethod):
4 Use boundp tests to silence compiler. Update for changed name of 8 Use boundp tests to silence compiler. Update for changed name of
5 bytecomp-filename variable. 9 bytecomp-filename variable.
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 138357e2dfc..1d779fef45f 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -8828,7 +8828,7 @@ routines, and may have been scanned."
8828 (let* ((entry (car entries)) 8828 (let* ((entry (car entries))
8829 (name (car entry)) ; 8829 (name (car entry)) ;
8830 (type (nth 1 entry)) ; Must be bound for 8830 (type (nth 1 entry)) ; Must be bound for
8831 (class (nth 2 entry)) ; idlwave-routine-twin-compare 8831 (idlwave-twin-class (nth 2 entry)) ; idlwave-routine-twin-compare
8832 (cnt 0) 8832 (cnt 0)
8833 source type type-cons file alist syslibp key) 8833 source type type-cons file alist syslibp key)
8834 (while (setq entry (pop entries)) 8834 (while (setq entry (pop entries))
@@ -8870,7 +8870,6 @@ routines, and may have been scanned."
8870 8870
8871;; FIXME: Dynamically scoped vars need to use the `idlwave-' prefix. 8871;; FIXME: Dynamically scoped vars need to use the `idlwave-' prefix.
8872;; (defvar type) 8872;; (defvar type)
8873;; (defvar class)
8874(defmacro idlwave-xor (a b) 8873(defmacro idlwave-xor (a b)
8875 `(and (or ,a ,b) 8874 `(and (or ,a ,b)
8876 (not (and ,a ,b)))) 8875 (not (and ,a ,b))))
@@ -8903,7 +8902,9 @@ names and path locations."
8903(defun idlwave-routine-entry-compare-twins (a b) 8902(defun idlwave-routine-entry-compare-twins (a b)
8904 "Compare two routine entries, under the assumption that they are twins. 8903 "Compare two routine entries, under the assumption that they are twins.
8905This basically calls `idlwave-routine-twin-compare' with the correct args." 8904This basically calls `idlwave-routine-twin-compare' with the correct args."
8906 (let* ((name (car a)) (type (nth 1 a)) (class (nth 2 a)) ; needed outside 8905 (let* ((name (car a))
8906 (type (nth 1 a))
8907 (idlwave-twin-class (nth 2 a)) ; used in idlwave-routine-twin-compare
8907 (asrc (nth 3 a)) 8908 (asrc (nth 3 a))
8908 (atype (car asrc)) 8909 (atype (car asrc))
8909 (bsrc (nth 3 b)) 8910 (bsrc (nth 3 b))
@@ -8916,18 +8917,16 @@ This basically calls `idlwave-routine-twin-compare' with the correct args."
8916 (list atype afile (list atype))) 8917 (list atype afile (list atype)))
8917 (if (stringp bfile) 8918 (if (stringp bfile)
8918 (list (file-truename bfile) bfile (list btype)) 8919 (list (file-truename bfile) bfile (list btype))
8919 (list btype bfile (list btype)))) 8920 (list btype bfile (list btype))))))
8920 ))
8921 8921
8922;; Bound in idlwave-study-twins,idlwave-routine-entry-compare-twins. 8922;; Bound in idlwave-study-twins,idlwave-routine-entry-compare-twins.
8923;; FIXME: Dynamically scoped vars need to use the `idlwave-' prefix. 8923(defvar idlwave-twin-class)
8924(defvar class)
8925 8924
8926(defun idlwave-routine-twin-compare (a b) 8925(defun idlwave-routine-twin-compare (a b)
8927 "Compare two routine twin entries for sorting. 8926 "Compare two routine twin entries for sorting.
8928In here, A and B are not normal routine info entries, but special 8927In here, A and B are not normal routine info entries, but special
8929lists (KEY FILENAME (TYPES...)). 8928lists (KEY FILENAME (TYPES...)).
8930This expects NAME TYPE CLASS to be bound to the right values." 8929This expects NAME TYPE IDLWAVE-TWIN-CLASS to be bound to the right values."
8931 (let* (;; Dis-assemble entries 8930 (let* (;; Dis-assemble entries
8932 (akey (car a)) (bkey (car b)) 8931 (akey (car a)) (bkey (car b))
8933 (afile (nth 1 a)) (bfile (nth 1 b)) 8932 (afile (nth 1 a)) (bfile (nth 1 b))
@@ -8959,16 +8958,19 @@ This expects NAME TYPE CLASS to be bound to the right values."
8959 ;; Look at file names 8958 ;; Look at file names
8960 (aname (if (stringp afile) (downcase (file-name-nondirectory afile)) "")) 8959 (aname (if (stringp afile) (downcase (file-name-nondirectory afile)) ""))
8961 (bname (if (stringp bfile) (downcase (file-name-nondirectory bfile)) "")) 8960 (bname (if (stringp bfile) (downcase (file-name-nondirectory bfile)) ""))
8962 (fname-re (if class (format "\\`%s__\\(%s\\|define\\)\\.pro\\'" 8961 (fname-re (if idlwave-twin-class
8963 (regexp-quote (downcase class)) 8962 (format "\\`%s__\\(%s\\|define\\)\\.pro\\'"
8964 (regexp-quote (downcase name))) 8963 (regexp-quote (downcase idlwave-twin-class))
8964 (regexp-quote (downcase name)))
8965 (format "\\`%s\\.pro" (regexp-quote (downcase name))))) 8965 (format "\\`%s\\.pro" (regexp-quote (downcase name)))))
8966 ;; Is file name derived from the routine name? 8966 ;; Is file name derived from the routine name?
8967 ;; Method file or class definition file? 8967 ;; Method file or class definition file?
8968 (anamep (string-match fname-re aname)) 8968 (anamep (string-match fname-re aname))
8969 (adefp (and class anamep (string= "define" (match-string 1 aname)))) 8969 (adefp (and idlwave-twin-class anamep
8970 (string= "define" (match-string 1 aname))))
8970 (bnamep (string-match fname-re bname)) 8971 (bnamep (string-match fname-re bname))
8971 (bdefp (and class bnamep (string= "define" (match-string 1 bname))))) 8972 (bdefp (and idlwave-twin-class bnamep
8973 (string= "define" (match-string 1 bname)))))
8972 8974
8973 ;; Now: follow JD's ideas about sorting. Looks really simple now, 8975 ;; Now: follow JD's ideas about sorting. Looks really simple now,
8974 ;; doesn't it? The difficult stuff is hidden above... 8976 ;; doesn't it? The difficult stuff is hidden above...
@@ -8980,7 +8982,7 @@ This expects NAME TYPE CLASS to be bound to the right values."
8980 ((idlwave-xor acompp bcompp) acompp) ; Compiled entries 8982 ((idlwave-xor acompp bcompp) acompp) ; Compiled entries
8981 ((idlwave-xor apathp bpathp) apathp) ; Library before non-library 8983 ((idlwave-xor apathp bpathp) apathp) ; Library before non-library
8982 ((idlwave-xor anamep bnamep) anamep) ; Correct file names first 8984 ((idlwave-xor anamep bnamep) anamep) ; Correct file names first
8983 ((and class anamep bnamep ; both file names match -> 8985 ((and idlwave-twin-class anamep bnamep ; both file names match ->
8984 (idlwave-xor adefp bdefp)) bdefp) ; __define after __method 8986 (idlwave-xor adefp bdefp)) bdefp) ; __define after __method
8985 ((> anpath bnpath) t) ; Who is first on path? 8987 ((> anpath bnpath) t) ; Who is first on path?
8986 (t nil)))) ; Default 8988 (t nil)))) ; Default