[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 01/03: i18n: rename locale-monetary-digit-grouping to lo
From: |
Mike Gran |
Subject: |
[Guile-commits] 01/03: i18n: rename locale-monetary-digit-grouping to locale-monetary-grouping |
Date: |
Mon, 20 Mar 2017 10:40:17 -0400 (EDT) |
mike121 pushed a commit to branch master
in repository guile.
commit 7e218d35ac96b6a9056aa06f983b3e254b0b9653
Author: Mike Gran <address@hidden>
Date: Mon Mar 20 07:29:47 2017 -0700
i18n: rename locale-monetary-digit-grouping to locale-monetary-grouping
* module/ice-9/i18n.scm (locale-monetary-digit-grouping): renamed to
locale-monetary grouping
(monetary-amount->locale-string): use renamed procedure
* test-suite/tests/i18n.test (%french-locale): add LC_MONETARY
(%french-utf8-locale): add LC_MONETARY
("nl-langinfo et al."): tests for locale-monetary-grouping
---
module/ice-9/i18n.scm | 4 ++--
test-suite/tests/i18n.test | 27 ++++++++++++++++++++++++---
2 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/module/ice-9/i18n.scm b/module/ice-9/i18n.scm
index 969c058..162049c 100644
--- a/module/ice-9/i18n.scm
+++ b/module/ice-9/i18n.scm
@@ -212,7 +212,7 @@
MON_DECIMAL_POINT "")
(define-simple-langinfo-mapping locale-monetary-thousands-separator
MON_THOUSANDS_SEP "")
-(define-simple-langinfo-mapping locale-monetary-digit-grouping
+(define-simple-langinfo-mapping locale-monetary-grouping
MON_GROUPING '())
(define-monetary-langinfo-mapping locale-currency-symbol-precedes-positive?
@@ -387,7 +387,7 @@ locale is used."
(dec (decimal-part
(number-decimal-string (abs amount)
fraction-digits)))
- (grouping (locale-monetary-digit-grouping locale))
+ (grouping (locale-monetary-grouping locale))
(separator (locale-monetary-thousands-separator locale)))
(add-monetary-sign+currency amount
diff --git a/test-suite/tests/i18n.test b/test-suite/tests/i18n.test
index b48f20f..e7447eb 100644
--- a/test-suite/tests/i18n.test
+++ b/test-suite/tests/i18n.test
@@ -117,12 +117,12 @@
(define %french-locale
(false-if-exception
- (make-locale (list LC_CTYPE LC_COLLATE LC_NUMERIC LC_TIME)
+ (make-locale (list LC_CTYPE LC_COLLATE LC_NUMERIC LC_TIME LC_MONETARY)
%french-locale-name)))
(define %french-utf8-locale
(false-if-exception
- (make-locale (list LC_CTYPE LC_COLLATE LC_NUMERIC LC_TIME)
+ (make-locale (list LC_CTYPE LC_COLLATE LC_NUMERIC LC_TIME LC_MONETARY)
%french-utf8-locale-name)))
(define %german-utf8-locale
@@ -482,7 +482,28 @@
(and (string? result)
(string-ci=? result "Tuesday"))))
(lambda ()
- (setlocale LC_ALL "C")))))))
+ (setlocale LC_ALL "C"))))))
+
+ (pass-if "locale-monetary-grouping"
+ ;; In the C locale, there is no rule for grouping of digits
+ ;; of monetary values.
+ (null? (locale-monetary-grouping)))
+
+ (pass-if "locale-monetary-grouping (French)"
+ (under-french-utf8-locale-or-unresolved
+ (lambda ()
+ ;; All systems that have a MON_GROUPING nl_item should know
+ ;; that French monetary values are grouped in 3 digit chunks.
+ ;; Those systems that have no MON_GROUPING nl_item may use the
+ ;; hard-coded default of no grouping.
+ (let ((result (locale-monetary-grouping %french-utf8-locale)))
+ (cond
+ ((null? result)
+ (throw 'unresolved))
+ ((eqv? 3 (false-if-exception (car result)))
+ #t)
+ (else
+ #f)))))))
;;;