From c2d2a2629bb23a3cae6ecefcf36c2f011f3165a8 Mon Sep 17 00:00:00 2001 From: Philippe Brochard Date: Mon, 7 Mar 2011 23:36:55 +0100 Subject: [PATCH] src/clfswm-info.lisp (show-config-variable); src/clfswm-autodoc.lisp (produce-configuration-variables): Use the new defconfig method. --- ChangeLog | 6 ++++++ src/clfswm-autodoc.lisp | 18 +++++++++--------- src/clfswm-configuration.lisp | 5 +---- src/clfswm-info.lisp | 9 +++++---- src/tools.lisp | 3 +++ 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5927e3a..d48f9ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2011-03-07 Philippe Brochard + * src/clfswm-info.lisp (show-config-variable): Use the new + defconfig method. + + * src/clfswm-autodoc.lisp (produce-configuration-variables): Use + the new defconfig method. + * src/clfswm-configuration.lisp (create-configuration-menu): Change the config system with a more lispy one and a less string based one: (defconfig name value group doc). diff --git a/src/clfswm-autodoc.lisp b/src/clfswm-autodoc.lisp index 6ca8afe..40bb66f 100644 --- a/src/clfswm-autodoc.lisp +++ b/src/clfswm-autodoc.lisp @@ -304,18 +304,18 @@ or
CLFSWM> (produce-all-docs)")))) (format t " done~%")) -;;; Configuration variables (defun produce-configuration-variables (stream &optional (group t)) (format stream " * CLFSWM Configuration variables *~%") (format stream " ------------------------------~2%") - (format stream " <= ~A =>~2%" (if (equal group t) "" group)) - (with-all-internal-symbols (symbol :clfswm) - (when (and (is-config-p symbol) - (or (equal group t) - (string-equal group (config-group symbol)))) - (format stream "~A = ~S~%~A~%" symbol (symbol-value symbol) - (config-documentation symbol)))) - (format stream "~2& Those variables can be changed in clfswm. + (format stream " <= ~A =>~2%" (if (equal group t) "" + (config-group->string group))) + (maphash (lambda (key val) + (when (or (equal group t) + (equal group (configvar-group val))) + (format stream "~A = ~S~%~A~%" key (symbol-value key) + (documentation key 'variable)))) + *config-var-table*) + (format stream "~2& Those variables can be changed in clfswm. Maybe you'll need to restart clfswm to take care of new values~2%")) diff --git a/src/clfswm-configuration.lisp b/src/clfswm-configuration.lisp index 2f7aa8f..932ae8f 100644 --- a/src/clfswm-configuration.lisp +++ b/src/clfswm-configuration.lisp @@ -129,9 +129,6 @@ (defun group->menu (group) (intern (string-upcase (format nil "conf-~A" group)) :clfswm)) -(defun group-name (group) - (format nil "~:(~A~) Group" (substitute #\Space #\- (string group)))) - (defun query-conf-value (var string original) (labels ((warn-wrong-type (result original) (if (equal (simple-type-of result) (simple-type-of original)) @@ -179,7 +176,7 @@ (loop for group in all-groups for i from 0 do (let ((menu (group->menu group))) - (add-sub-menu 'configuration-menu (number->char i) menu (group-name group)) + (add-sub-menu 'configuration-menu (number->char i) menu (config-group->string group)) (loop for var in all-variables with j = -1 do (when (equal (second var) group) diff --git a/src/clfswm-info.lisp b/src/clfswm-info.lisp index df4af2f..9520d72 100644 --- a/src/clfswm-info.lisp +++ b/src/clfswm-info.lisp @@ -537,9 +537,10 @@ Pass the :no-producing-doc symbol to remove the producing doc" "Show all configurable variables" (let ((all-groups nil) (result nil)) - (with-all-internal-symbols (symbol :clfswm) - (when (is-config-p symbol) - (pushnew (config-group symbol) all-groups :test #'string-equal))) + (maphash (lambda (key val) + (declare (ignore key)) + (pushnew (configvar-group val) all-groups :test #'equal)) + *config-var-table*) (labels ((rec () (setf result nil) (info-mode-menu (loop :for group :in all-groups @@ -548,7 +549,7 @@ Pass the :no-producing-doc symbol to remove the producing doc" (let ((group group)) (lambda () (setf result group))) - group))) + (config-group->string group)))) (when result (info-mode (configuration-variable-colorize-line (split-string (append-newline-space diff --git a/src/tools.lisp b/src/tools.lisp index 6ed90c7..725aa5c 100644 --- a/src/tools.lisp +++ b/src/tools.lisp @@ -32,6 +32,7 @@ :awhen :aif :defconfig :*config-var-table* :configvar-value :configvar-group :config-default-value + :config-group->string :find-in-hash :nfuncall :pfuncall @@ -143,6 +144,8 @@ (when config (configvar-value config)))) +(defun config-group->string (group) + (format nil "~:(~A group~)" (substitute #\Space #\- (string group)))) -- 2.11.4.GIT