~ruther/guix-local

89d02b98f90995b8c070ca1041a85711983584c7 — Ludovic Courtès 12 years ago 5282181
ui: define-diagnostic: Don't mark `_' and `N_' as literals.

* guix/ui.scm (define-diagnostic): Use `free-identifier=?' to compare
  the user's input with `_' and `N-".  This should fix builds with Guile 2.1.
  Reported by Cojocaru Alexandru <xojoc@gmx.com>.
1 files changed, 7 insertions(+), 5 deletions(-)

M guix/ui.scm
M guix/ui.scm => guix/ui.scm +7 -5
@@ 77,17 77,19 @@ messages."
      (define (augmented-format-string fmt)
        (string-append "~:[~*~;guix ~a: ~]~a" (syntax->datum fmt)))

      (syntax-case x (N_ _)                    ; these are literals, yeah...
        ((name (_ fmt) args (... ...))
         (string? (syntax->datum #'fmt))
      (syntax-case x ()
        ((name (underscore fmt) args (... ...))
         (and (string? (syntax->datum #'fmt))
              (free-identifier=? #'underscore #'_))
         (with-syntax ((fmt*   (augmented-format-string #'fmt))
                       (prefix (datum->syntax x prefix)))
           #'(format (guix-warning-port) (gettext fmt*)
                     (program-name) (program-name) prefix
                     args (... ...))))
        ((name (N_ singular plural n) args (... ...))
        ((name (N-underscore singular plural n) args (... ...))
         (and (string? (syntax->datum #'singular))
              (string? (syntax->datum #'plural)))
              (string? (syntax->datum #'plural))
              (free-identifier=? #'N-underscore #'N_))
         (with-syntax ((s      (augmented-format-string #'singular))
                       (p      (augmented-format-string #'plural))
                       (prefix (datum->syntax x prefix)))