I was told that this issues gives headaches, so I added a short comment
explaining it.

Vivien

>From 93224afab672465f3e8e1a6be00def0d5507bb76 Mon Sep 17 00:00:00 2001
From: Vivien Kraus <[email protected]>
Date: Tue, 2 Nov 2021 18:19:03 +0100
Subject: [PATCH] guile-gi: fix a source code encoding error

* gnu/packages/guile-xyz.scm (guile-gi) [phases]: remove the default dotted
circle from the combining character that is tested in test/string.scm.
---
 gnu/packages/guile-xyz.scm | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 3c93779209..1ef872ffe1 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3145,6 +3145,16 @@ (define-public guile-gi
                   (ice-9 rdelim))
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'remove-dotted-circle-from-combining-character
+           ;; The test/string.scm files contain ◌̀, which is a dotted circle
+           ;; (U+25cc) followed by an upper combining character (U+0300). The
+           ;; old guile 3.0.2 reader incorrectly ignores the dotted circle,
+           ;; and parses it as the combining character alone, but the new
+           ;; guile reader does not.
+           ;; See https://github.com/spk121/guile-gi/issues/112
+           (lambda* _
+             (substitute* "test/string.scm"
+               (("#\\\\◌̀") "#\\x0300"))))
          (add-after 'unpack 'patch-references-to-extension
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((effective (read-line
-- 
2.33.1

Reply via email to