changeset 82193:6037be8575c3

(customize-read-group): New fun. (customize-group-other-window, customize-face-other-window): Prompt before delegating to customize-(group|face). Bind pop-up-windows rather than use the other-window argument. (customize-group, customize-face): Prompt from the interactive spec. Remove args `prompt-for-group' and `other-window'.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 28 Jul 2007 20:03:40 +0000
parents 5800574abbcb
children 06241457c4f0
files lisp/ChangeLog lisp/cus-edit.el
diffstat 2 files changed, 54 insertions(+), 58 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Jul 28 19:57:23 2007 +0000
+++ b/lisp/ChangeLog	Sat Jul 28 20:03:40 2007 +0000
@@ -1,5 +1,12 @@
 2007-07-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* cus-edit.el (customize-read-group): New fun.
+	(customize-group-other-window, customize-face-other-window):
+	Prompt before delegating to customize-(group|face).
+	Bind pop-up-windows rather than use the other-window argument.
+	(customize-group, customize-face): Prompt from the interactive spec.
+	Remove args `prompt-for-group' and `other-window'.
+
 	* emacs-lisp/advice.el (ad-interactive-form): Re-introduce.
 	(ad-body-forms, ad-advised-interactive-form): Revert this part of
 	last change.
--- a/lisp/cus-edit.el	Sat Jul 28 19:57:23 2007 +0000
+++ b/lisp/cus-edit.el	Sat Jul 28 20:03:40 2007 +0000
@@ -141,9 +141,9 @@
 
 (require 'cus-face)
 (require 'wid-edit)
-(eval-when-compile
-  (defvar custom-versions-load-alist)	; from cus-load
-  (defvar recentf-exclude))		; from recentf.el
+
+(defvar custom-versions-load-alist)	; from cus-load
+(defvar recentf-exclude)		; from recentf.el
 
 (condition-case nil
     (require 'cus-load)
@@ -1032,22 +1032,20 @@
 			  t nil nil (if group (symbol-name major-mode))))))))
   (customize-group (custom-group-of-mode mode)))
 
+(defun customize-read-group ()
+  (let ((completion-ignore-case t))
+    (completing-read "Customize group (default emacs): "
+                     obarray
+                     (lambda (symbol)
+                       (or (and (get symbol 'custom-loads)
+                                (not (get symbol 'custom-autoload)))
+                           (get symbol 'custom-group)))
+                     t)))
 
 ;;;###autoload
-(defun customize-group (&optional group prompt-for-group other-window)
+(defun customize-group (&optional group)
   "Customize GROUP, which must be a customization group."
-  (interactive)
-  (and (null group)
-       (or prompt-for-group (called-interactively-p))
-       (let ((completion-ignore-case t))
-	 (setq group
-	       (completing-read "Customize group (default emacs): "
-				obarray
-				(lambda (symbol)
-				  (or (and (get symbol 'custom-loads)
-					   (not (get symbol 'custom-autoload)))
-				      (get symbol 'custom-group)))
-				t))))
+  (interactive (list (customize-read-group)))
   (when (stringp group)
     (if (string-equal "" group)
 	(setq group 'emacs)
@@ -1055,25 +1053,21 @@
   (let ((name (format "*Customize Group: %s*"
 		      (custom-unlispify-tag-name group))))
     (if (get-buffer name)
-	(if other-window
-	    (let ((pop-up-windows t)
-		  (same-window-buffer-names nil)
-		  (same-window-regexps nil))
-	      (pop-to-buffer name))
-	  (pop-to-buffer name))
-      (funcall (if other-window
-		   'custom-buffer-create-other-window
-		 'custom-buffer-create)
-	       (list (list group 'custom-group))
-	       name
-	       (concat " for group "
-		       (custom-unlispify-tag-name group))))))
+        (pop-to-buffer name)
+      (custom-buffer-create
+       (list (list group 'custom-group))
+       name
+       (concat " for group "
+               (custom-unlispify-tag-name group))))))
 
 ;;;###autoload
 (defun customize-group-other-window (&optional group)
   "Customize GROUP, which must be a customization group, in another window."
-  (interactive)
-  (customize-group group t t))
+  (interactive (list (customize-read-group)))
+  (let ((pop-up-windows t)
+        (same-window-buffer-names nil)
+        (same-window-regexps nil))
+    (customize-group group)))
 
 ;;;###autoload
 (defalias 'customize-variable 'customize-option)
@@ -1254,41 +1248,33 @@
 	     (< minor1 minor2)))))
 
 ;;;###autoload
-(defun customize-face (&optional face prompt-for-face other-window)
+(defun customize-face (&optional face)
   "Customize FACE, which should be a face name or nil.
 If FACE is nil, customize all faces.  If FACE is actually a
 face-alias, customize the face it is aliased to.
 
 Interactively, when point is on text which has a face specified,
 suggest to customize that face, if it's customizable."
-  (interactive)
-  (and (null face)
-       (or prompt-for-face (called-interactively-p))
-       (setq face (read-face-name "Customize face" "all faces" t)))
+  (interactive (list (read-face-name "Customize face" "all faces" t)))
   (if (member face '(nil ""))
       (setq face (face-list)))
   (if (and (listp face) (null (cdr face)))
       (setq face (car face)))
-  (let ((create-buffer-fn (if other-window
-			      'custom-buffer-create-other-window
-			    'custom-buffer-create)))
-    (if (listp face)
-	(funcall create-buffer-fn
-		 (custom-sort-items
-		  (mapcar (lambda (s)
-			    (list s 'custom-face))
-			  face)
-		  t nil)
-		 "*Customize Faces*")
-      ;; If FACE is actually an alias, customize the face it is aliased to.
-      (if (get face 'face-alias)
-	  (setq face (get face 'face-alias)))
-      (unless (facep face)
-	(error "Invalid face %S" face))
-      (funcall create-buffer-fn
-	       (list (list face 'custom-face))
-	       (format "*Customize Face: %s*"
-		       (custom-unlispify-tag-name face))))))
+  (if (listp face)
+      (custom-buffer-create
+       (custom-sort-items
+        (mapcar (lambda (s) (list s 'custom-face)) face)
+        t nil)
+       "*Customize Faces*")
+    ;; If FACE is actually an alias, customize the face it is aliased to.
+    (if (get face 'face-alias)
+        (setq face (get face 'face-alias)))
+    (unless (facep face)
+      (error "Invalid face %S" face))
+    (custom-buffer-create
+     (list (list face 'custom-face))
+     (format "*Customize Face: %s*"
+             (custom-unlispify-tag-name face)))))
 
 ;;;###autoload
 (defun customize-face-other-window (&optional face)
@@ -1297,8 +1283,11 @@
 
 Interactively, when point is on text which has a face specified,
 suggest to customize that face, if it's customizable."
-  (interactive)
-  (customize-face face t t))
+  (interactive (list (read-face-name "Customize face" "all faces" t)))
+  (let ((pop-up-windows t)
+        (same-window-buffer-names nil)
+        (same-window-regexps nil))
+    (customize-face face)))
 
 (defalias 'customize-customized 'customize-unsaved)