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>.master
parent
5282181d51
commit
89d02b98f9
12
guix/ui.scm
12
guix/ui.scm
|
@ -77,17 +77,19 @@ messages."
|
||||||
(define (augmented-format-string fmt)
|
(define (augmented-format-string fmt)
|
||||||
(string-append "~:[~*~;guix ~a: ~]~a" (syntax->datum fmt)))
|
(string-append "~:[~*~;guix ~a: ~]~a" (syntax->datum fmt)))
|
||||||
|
|
||||||
(syntax-case x (N_ _) ; these are literals, yeah...
|
(syntax-case x ()
|
||||||
((name (_ fmt) args (... ...))
|
((name (underscore fmt) args (... ...))
|
||||||
(string? (syntax->datum #'fmt))
|
(and (string? (syntax->datum #'fmt))
|
||||||
|
(free-identifier=? #'underscore #'_))
|
||||||
(with-syntax ((fmt* (augmented-format-string #'fmt))
|
(with-syntax ((fmt* (augmented-format-string #'fmt))
|
||||||
(prefix (datum->syntax x prefix)))
|
(prefix (datum->syntax x prefix)))
|
||||||
#'(format (guix-warning-port) (gettext fmt*)
|
#'(format (guix-warning-port) (gettext fmt*)
|
||||||
(program-name) (program-name) prefix
|
(program-name) (program-name) prefix
|
||||||
args (... ...))))
|
args (... ...))))
|
||||||
((name (N_ singular plural n) args (... ...))
|
((name (N-underscore singular plural n) args (... ...))
|
||||||
(and (string? (syntax->datum #'singular))
|
(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))
|
(with-syntax ((s (augmented-format-string #'singular))
|
||||||
(p (augmented-format-string #'plural))
|
(p (augmented-format-string #'plural))
|
||||||
(prefix (datum->syntax x prefix)))
|
(prefix (datum->syntax x prefix)))
|
||||||
|
|
Reference in New Issue