~ chicken-core (chicken-5) 408bf40824488a07c428d29294f044e1811d7383


commit 408bf40824488a07c428d29294f044e1811d7383
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Sep 16 19:17:53 2020 +0200
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Fri Dec 4 12:14:08 2020 +1300

    Check single-char options when canonicalizing csi's command line, drop obsolete -v option
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/csi.scm b/csi.scm
index 5560024f..dd127352 100644
--- a/csi.scm
+++ b/csi.scm
@@ -926,7 +926,7 @@ EOF
 		 (else (find (cdr ks))) ) ) ) ) )
 
 (define-constant short-options 
-  '(#\k #\s #\v #\h #\D #\e #\i #\R #\b #\n #\q #\w #\- #\I #\p #\P) )
+  '(#\k #\s #\h #\D #\e #\i #\R #\b #\n #\q #\w #\- #\I #\p #\P) )
 
 (define-constant long-options
   '("-ss" "-sx" "-script" "-version" "-help" "--help" "-feature" "-no-feature" "-eval"
@@ -941,6 +941,11 @@ EOF
 	'()
 	(let ((x (car args)))
 	  (cond ((member x '("-s" "-ss" "-script" "-sx" "--")) args)
+                ((and (fx= (##sys#size x) 2)
+                      (char=? #\- (##core#inline "C_subchar" x 0)))
+                 (if (memq (##core#inline "C_subchar" x 1) short-options)
+                     (cons x (loop (cdr args)))
+                     (##sys#error "invalid option" x)))
                 ((and (fx> (##sys#size x) 2)
                        (char=? #\- (##core#inline "C_subchar" x 0))
                        (not (member x long-options)) )
Trap