[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [STUMP] [PATCH] Make select-from-menu matching case-sensitive when the user inputs upcase,
Lionel Flandrin <=