The attached patch was contributed by Vassilij. See #1800.

felix
From f48e2f68037d36abd2628605dd8c906c5b106556 Mon Sep 17 00:00:00 2001
From: Vasilij Schneidermann <m...@vasilij.de>
Date: Tue, 1 Nov 2022 20:23:59 +0100
Subject: [PATCH] Split up potentially long echo invocation on win32

Eggs with a very long infostr may trigger the maximum command line
invocation length of 8191 chars. To avoid running into this
limitation, the generated install script now creates an empty file,
then echoes each line into it.

Closes #1800

Signed-off-by: felix <fe...@call-with-current-continuation.org>
---
 egg-compile.scm | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/egg-compile.scm b/egg-compile.scm
index c1f2ceb0..f37b7a9f 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -1139,11 +1139,16 @@ EOF
        (printf #<<EOF
 
 ~a ~a~a
-echo ~a >~a~a~%
+copy /y nul ~a~a~%
+~a
 EOF
                mkdir ddir qdir
-               (string-intersperse (string-split infostr "\n") "^\n\n")
-               ddir dest)))))
+              ddir dest
+              (string-intersperse (map (lambda (line)
+                                         (format "echo ~a >>~a~a"
+                                                 line ddir dest))
+                                       (string-split infostr "\n"))
+                                  "\n"))))))
 
 ;;; some utilities for mangling + quoting
 
-- 
2.28.0

Reply via email to