stumpwm-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[STUMP] [PATCH] Make select-from-menu matching case-sensitive when the u


From: Lionel Flandrin
Subject: [STUMP] [PATCH] Make select-from-menu matching case-sensitive when the user inputs upcase
Date: Mon, 1 Sep 2008 00:19:34 +0200

---
 menu.lisp |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/menu.lisp b/menu.lisp
index 684251f..18f8a24 100644
--- a/menu.lisp
+++ b/menu.lisp
@@ -78,8 +78,8 @@
   (throw :menu-quit nil))
 
 (defun get-input-char (key)
-  "returns t if key is a character suitable for menu
-completion (e.g. not backspace or F9)"
+  "If @var{key} is a character suitable for menu completion (e.g. not
+backspace or F9), return it otherwise return nil"
   (let ((char (xlib:keysym->character *display* (key-keysym key))))
     (if (or (key-mods-p key) (null char)
             (not (characterp char)))
@@ -93,7 +93,8 @@ completion (e.g. not backspace or F9)"
 
 (defun check-menu-complete (menu key-seq)
   "If the use entered a key not mapped in @var{*menu-map}, check if
-  he's trying to type an entry's name"
+  he's trying to type an entry's name. Match is case insensitive as
+  long as the user types lower-case characters."
   (let ((input-char (get-input-char key-seq)))
     (when input-char
       (setf *current-menu-input*
@@ -106,7 +107,10 @@ completion (e.g. not backspace or F9)"
            (cur-elem (car rest-elem) (car rest-elem))
            (cur-elem-name (menu-element-name cur-elem) (menu-element-name 
cur-elem))
            (current-input-length (length *current-menu-input*))
-           (match-regex (ppcre:create-scanner *current-menu-input* 
:case-insensitive-mode t)))
+           (match-regex (ppcre:create-scanner *current-menu-input*
+                                              :case-insensitive-mode
+                                              (string= (string-downcase 
*current-menu-input*)
+                                                       *current-menu-input*))))
           ((not cur-elem))
        (when (and (>= (length cur-elem-name) current-input-length)
                   (ppcre:scan match-regex cur-elem-name))
-- 
1.6.0.1





reply via email to

[Prev in Thread] Current Thread [Next in Thread]