guile-commits
[Top][All Lists]
Advanced

[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)))))))
 
 
 ;;;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]