aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-11-01 00:45:03 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2023-11-06 00:46:26 +0100
commitae25cb167bd95db35f73eade278f5f1e8a12c48b (patch)
treedba8c45d5409f9312d566eae75bac1656cfb143d
parentAdd tests for (text markup). (diff)
downloadcalp-ae25cb167bd95db35f73eade278f5f1e8a12c48b.tar.gz
calp-ae25cb167bd95db35f73eade278f5f1e8a12c48b.tar.xz
Forward extra kw args to number->string-{ordinal,cardinal}.
-rw-r--r--module/text/numbers.scm12
-rw-r--r--module/text/numbers/en.scm5
-rw-r--r--module/text/numbers/sv.scm4
3 files changed, 13 insertions, 8 deletions
diff --git a/module/text/numbers.scm b/module/text/numbers.scm
index 78382767..debd7f17 100644
--- a/module/text/numbers.scm
+++ b/module/text/numbers.scm
@@ -1,4 +1,5 @@
(define-module (text numbers)
+ :use-module (srfi srfi-71)
:use-module (srfi srfi-88)
:use-module ((hnh util language) :select (resolve-language))
:export (number->string-cardinal
@@ -16,12 +17,15 @@
proc-symb))
(define* (number->string-cardinal
- n optional: (language (resolve-language)))
- ((get language 'number->string-cardinal) n))
+ n optional: (language (resolve-language))
+ rest: extra-kvs)
+ (apply (get language 'number->string-cardinal) n extra-kvs))
(define* (number->string-ordinal
- n optional: (language (resolve-language)))
- ((get language 'number->string-ordinal) n))
+ n
+ optional: (language (resolve-language))
+ rest: extra-kvs)
+ (apply (get language 'number->string-ordinal) n extra-kvs))
;; TODO change API to allow language, and stop having random extra
;; arguments for implementations.
diff --git a/module/text/numbers/en.scm b/module/text/numbers/en.scm
index 6a5a636d..82e29c87 100644
--- a/module/text/numbers/en.scm
+++ b/module/text/numbers/en.scm
@@ -1,13 +1,14 @@
(define-module (text numbers en)
:use-module (ice-9 format)
+ :use-module (srfi srfi-71)
:export (number->string-cardinal
number->string-ordinal
each-string))
-(define (number->string-cardinal n)
+(define (number->string-cardinal n . _)
(format #f "~r" n))
-(define (number->string-ordinal n)
+(define (number->string-ordinal n . _)
(format #f "~:r" n))
;; Allows extra args to handle eventual local changes.
diff --git a/module/text/numbers/sv.scm b/module/text/numbers/sv.scm
index 1760f622..51a9c4c6 100644
--- a/module/text/numbers/sv.scm
+++ b/module/text/numbers/sv.scm
@@ -20,7 +20,7 @@
[(<= 60 e 65) "dec"]
))
-(define (number->string-cardinal n)
+(define (number->string-cardinal n . _)
(cond [(< n 0) (string-append "minus " (number->string-cardinal (- n)))]
[(= n 0) "noll"]
[(= n 1) "ett"]
@@ -93,7 +93,7 @@
(number->string n))]))
(define* (number->string-ordinal
- n key: a-form?)
+ n key: a-form? allow-other-keys:)
(define a-string (if a-form? "a" "e"))
(cond [(>= -3 n) (format #f "~a sista" (number->string-ordinal (- n)))]
[(= -2 n) "näst sista"]