~ chicken-core (chicken-5) f06dc5746cf4b0d15be21a03ccd105206f2589af
commit f06dc5746cf4b0d15be21a03ccd105206f2589af Author: Evan Hanson <evhan@foldling.org> AuthorDate: Fri Apr 27 21:00:41 2018 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Fri Apr 27 21:18:25 2018 +0200 Slightly nicer formatting of generated foreign-lambda* code This puts each string in a foreign-lambda* and foreign-primitive body on its own line (rather than all in one big long line), making it easier to track down errors produced by the C compiler. Closes #1387. Thanks to LemonBoy for the patch. Signed-off-by: felix <felix@call-with-current-continuation.org> diff --git a/core.scm b/core.scm index f94e1e64..ac35785f 100644 --- a/core.scm +++ b/core.scm @@ -1834,7 +1834,7 @@ (define (expand-foreign-lambda* exp callback?) (let* ((rtype (second exp)) (args (third exp)) - (body (apply string-append (cdddr exp))) + (body (string-intersperse (cdddr exp) "\n")) (argtypes (map (lambda (x) (car x)) args)) ;; C identifiers aren't hygienically renamed inside body strings (argnames (map cadr (strip-syntax args)))) @@ -1845,7 +1845,7 @@ (let* ((hasrtype (and (pair? (cddr exp)) (not (string? (caddr exp))))) (rtype (if hasrtype (second exp) 'void)) (args (strip-syntax (if hasrtype (third exp) (second exp)))) - (body (apply string-append (if hasrtype (cdddr exp) (cddr exp)))) + (body (string-intersperse (if hasrtype (cdddr exp) (cddr exp)) "\n")) (argtypes (map (lambda (x) (car x)) args)) ;; C identifiers aren't hygienically renamed inside body strings (argnames (map cadr (strip-syntax args))))Trap