aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès2020-08-02 10:52:34 +0200
committerLudovic Courtès2020-08-02 10:53:43 +0200
commitc9dc5ba5fcb9cef8f4a7bb87211e8e90bd87a9fc (patch)
tree34633ba87a2c6d01dc9f3320cf7d3188228e4004
parentbb06dbfcf61e38aadd00fd964ab385f51669b8fc (diff)
downloadskribilo-c9dc5ba5fcb9cef8f4a7bb87211e8e90bd87a9fc.tar.gz
skribilo-c9dc5ba5fcb9cef8f4a7bb87211e8e90bd87a9fc.tar.lz
skribilo-c9dc5ba5fcb9cef8f4a7bb87211e8e90bd87a9fc.zip
lout: Replace more Unicode characters.
* src/guile/skribilo/engine/lout.scm (lout-encoding): Add several diacritics, guillemets, curly quotes, etc.
-rw-r--r--src/guile/skribilo/engine/lout.scm81
1 files changed, 49 insertions, 32 deletions
diff --git a/src/guile/skribilo/engine/lout.scm b/src/guile/skribilo/engine/lout.scm
index 42fe065..bfc60dc 100644
--- a/src/guile/skribilo/engine/lout.scm
+++ b/src/guile/skribilo/engine/lout.scm
@@ -1,8 +1,8 @@
;;; lout.scm -- A Lout engine.
-;;; -*- coding: iso-8859-1 -*-
+;;; -*- coding: utf-8 -*-
;;;
;;; Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-;;; 2012, 2015, 2018, 2020 Ludovic Courts <ludo@gnu.org>
+;;; 2012, 2015, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;;
;;; This file is part of Skribilo.
@@ -85,36 +85,53 @@
;* lout-encoding ... */
;*---------------------------------------------------------------------*/
(define lout-encoding
- `(,@lout-verbatim-encoding
- (#\ "{ @Char ccedilla }")
- (#\ "{ @Char Ccdeilla }")
- (#\ "{ @Char acircumflex }")
- (#\ "{ @Char Acircumflex }")
- (#\ "{ @Char agrave }")
- (#\ "{ @Char Agrave }")
- (#\ "{ @Char eacute }")
- (#\ "{ @Char Eacute }")
- (#\ "{ @Char egrave }")
- (#\ "{ @Char Egrave }")
- (#\ "{ @Char ecircumflex }")
- (#\ "{ @Char Ecircumflex }")
- (#\ "{ @Char ugrave }")
- (#\ "{ @Char Ugrave }")
- (#\ "{ @Char ucircumflex }")
- (#\ "{ @Char Ucircumflex }")
- (#\ "{ @Char oslash }")
- (#\ "{ @Char ocircumflex }")
- (#\ "{ @Char Ocircumflex }")
- (#\ "{ @Char odieresis }")
- (#\ "{ @Char Odieresis }")
- (#\ "{ @Char icircumflex }")
- (#\ "{ @Char Icircumflex }")
- (#\ "{ @Char idieresis }")
- (#\ "{ @Char Idieresis }")
- (#\] "\"]\"")
- (#\[ "\"[\"")
- (#\ "{ @Char guillemotright }")
- (#\ "{ @Char guillemotleft }")))
+ ;; XXX: As of Guile-Reader 0.6.3, characters like #\ç are not properly
+ ;; read. Use strings to work around it.
+ (let-syntax ((chr (lambda (s)
+ (syntax-case s ()
+ ((_ str replacement)
+ #`(list #,(string-ref (syntax->datum #'str) 0)
+ replacement))))))
+ `(,@lout-verbatim-encoding
+ ,@(list (chr "ç" "{ @Char ccedilla }")
+ (chr "Ç" "{ @Char Ccdeilla }")
+ (chr "â" "{ @Char acircumflex }")
+ (chr "Â" "{ @Char Acircumflex }")
+ (chr "à" "{ @Char agrave }")
+ (chr "À" "{ @Char Agrave }")
+ (chr "é" "{ @Char eacute }")
+ (chr "É" "{ @Char Eacute }")
+ (chr "è" "{ @Char egrave }")
+ (chr "È" "{ @Char Egrave }")
+ (chr "ê" "{ @Char ecircumflex }")
+ (chr "Ê" "{ @Char Ecircumflex }")
+ (chr "ù" "{ @Char ugrave }")
+ (chr "Ù" "{ @Char Ugrave }")
+ (chr "û" "{ @Char ucircumflex }")
+ (chr "Û" "{ @Char Ucircumflex }")
+ (chr "ø" "{ @Char oslash }")
+ (chr "ô" "{ @Char ocircumflex }")
+ (chr "Ô" "{ @Char Ocircumflex }")
+ (chr "ö" "{ @Char odieresis }")
+ (chr "Ö" "{ @Char Odieresis }")
+ (chr "î" "{ @Char icircumflex }")
+ (chr "Î" "{ @Char Icircumflex }")
+ (chr "ï" "{ @Char idieresis }")
+ (chr "Ï" "{ @Char Idieresis }")
+ (chr "ă" "{ { { Times Base } @Font @Char \"breve\" } |0.5ro a }")
+ (chr "ș" "{ { @Char \"cedilla\" } |0.5ro s }")
+ (chr "]" "\"]\"")
+ (chr "[" "\"[\"")
+ (chr "»" "{ @Char guillemotright }")
+ (chr "«" "{ @Char guillemotleft }")
+ (chr " " "~") ;no-break space
+ (chr "—" "---")
+ (chr "–" "--")
+ (chr "“" "``")
+ (chr "”" "''")
+ (chr "‘" "`")
+ (chr "’" "'")
+ (chr "…" "...")))))
;; XXX: This is just here for experimental purposes.