~ chicken-core (chicken-5) aa4e3d37d64e336650ec22f2ca4976ef0fa7a962


commit aa4e3d37d64e336650ec22f2ca4976ef0fa7a962
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Fri Apr 5 15:56:14 2019 +0200
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Wed Apr 10 20:23:34 2019 +1200

    Allow "csc -debug h" without source file arguments
    
    Fixes #1159
    
    Also, simplify how complex-options are handled, because the
    string->number converted argument was never really used.
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/csc.scm b/csc.scm
index f12c9319..9b192692 100644
--- a/csc.scm
+++ b/csc.scm
@@ -212,6 +212,7 @@
 (define deployed #f)
 (define rpath #f)
 (define ignore-repository #f)
+(define show-debugging-help #f)
 
 (define library-dir
   (if host-mode host-libdir default-libdir))
@@ -566,6 +567,10 @@ EOF
 	   (cond ((null? scheme-files)
 		  (when (and (null? c-files)
 			     (null? object-files))
+		    (when show-debugging-help
+		      (command
+		       (string-intersperse
+			(cons* translator "bogus.scm" translate-options))))
 		    (stop "no source files specified") )
 		  (unless target-filename
 		    (set! target-filename
@@ -712,6 +717,13 @@ EOF
 	       [(|-d1|) (set! rest (cons* "-debug-level" "1" rest))]
 	       [(|-d2|) (set! rest (cons* "-debug-level" "2" rest))]
 	       [(|-d3|) (set! rest (cons* "-debug-level" "3" rest))]
+	       ((-debug)
+		(check s rest)
+		(t-options arg (car rest))
+		(when (memv #\h (string->list (car rest)))
+		  (set! show-debugging-help #t)
+		  (set! translate-only #t))
+		(set! rest (cdr rest)))
 	       [(-dry-run) 
 		(set! verbose #t)
 		(set! dry-run #t)]
@@ -777,12 +789,10 @@ EOF
 		  (set! linking-optimization-options best-linking-optimization-options) )
 		(cond [(assq s shortcuts) => (lambda (a) (set! rest (cons (cadr a) rest)))]
 		      [(memq s simple-options) (t-options arg)]
-		      [(memq s complex-options) 
+		      ((memq s complex-options)
 		       (check s rest)
-		       (let* ((n (car rest))
-			      (ns (string->number n)) )
-			 (t-options arg n)
-			 (set! rest (cdr rest)) ) ]
+		       (t-options arg (car rest))
+		       (set! rest (cdr rest)))
 		      [(and (> (string-length arg) 2) (string=? "-:" (substring arg 0 2)))
 		       (t-options arg) ]
 		      [(and (> (string-length arg) 1)
Trap