The new release of StumpWM broken the interactive 'gnew' command. It was fixed upstream [0] and will be part of the next release. 0: https://github.com/stumpwm/stumpwm/pull/538 * gnu/packages/patches/stumpwm-fix-broken-read-one-line.patch: New file. * gnu/packages/lisp.scm (stumpwm)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Register it.
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From a13db62a4da06426cf2eb2376d1a3723b5ee52d5 Mon Sep 17 00:00:00 2001
 | |
| From: Vasily Postnicov <shamaz.mazum@gmail.com>
 | |
| Date: Fri, 14 Dec 2018 20:01:53 +0300
 | |
| Subject: [PATCH] READ-ONE-LINE: Turn COMPLETIONS into a keyword argument
 | |
| 
 | |
| This keeps READ-ONE-line backwards compatible to changes prior
 | |
| dae0422811771d179077b9336618f2b19be85b7b. Currently both
 | |
| ARGUMENT-POP-OR-READ and ARGUMENT-POP-REST-OR-READ are still being
 | |
| called with the previous lambda list. Update the calls to the
 | |
| READ-ONE-LINE that used the 'new' lambda list, COMPLETING-READ and
 | |
| YES-OR-NO-P.
 | |
| 
 | |
| Closes #538
 | |
| ---
 | |
|  input.lisp | 8 ++++++--
 | |
|  1 file changed, 6 insertions(+), 2 deletions(-)
 | |
| 
 | |
| diff --git a/input.lisp b/input.lisp
 | |
| index b698a368..7904b35f 100644
 | |
| --- a/input.lisp
 | |
| +++ b/input.lisp
 | |
| @@ -307,10 +307,13 @@ passed the substring to complete on and is expected to return a list
 | |
|  of matches. If require-match argument is non-nil then the input must
 | |
|  match with an element of the completions."
 | |
|    (check-type completions (or list function symbol))
 | |
| -  (let ((line (read-one-line screen prompt completions :initial-input initial-input :require-match require-match)))
 | |
| +  (let ((line (read-one-line screen prompt
 | |
| +                             :completions completions
 | |
| +                             :initial-input initial-input
 | |
| +                             :require-match require-match)))
 | |
|      (when line (string-trim " " line))))
 | |
|  
 | |
| -(defun read-one-line (screen prompt completions &key (initial-input "") require-match password)
 | |
| +(defun read-one-line (screen prompt &key completions (initial-input "") require-match password)
 | |
|    "Read a line of input through stumpwm and return it. Returns nil if the user aborted."
 | |
|    (let ((*input-last-command* nil)
 | |
|          (*input-completions* completions)
 | |
| @@ -842,6 +845,7 @@ user presses 'y'"
 | |
|  user presses 'yes'"
 | |
|    (loop for line = (read-one-line (current-screen)
 | |
|                                    (format nil "~a(yes or no) " message)
 | |
| +                                  :completions
 | |
|                                    '("yes" "no"))
 | |
|          until (find line '("yes" "no") :test 'string-equal)
 | |
|          do (message "Please answer yes or no")
 |