]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/encoding.scm
* SConstruct: Further development.
[lilypond.git] / scm / encoding.scm
index 310bf150ddbcd3337fcfb21f35892f966ed91222..0bd6fc91466675beb6354505336ecc9626f3a265 100644 (file)
@@ -12,7 +12,7 @@
 
 (define-public (read-encoding-file filename)
   "Read .enc file, return (COMMAND-NAME . VECTOR-OF-SYMBOLS)."
-  (let* ((raw (ly:kpathsea-gulp-file filename))
+  (let* ((raw (ly:gulp-file (ly:kpathsea-expand-path filename)))
         (string (regexp-substitute/global #f "%[^\n]*" raw 'pre "" 'post))
         (command (match:substring
                (string-match "/([^ \t\n\r]*)[ \t\n\r]+[[]" string) 1))
@@ -36,14 +36,14 @@ vector of symbols."
 
     h))
 
-(define-public (reencode-string permutation str)
-  "Apply PERMUTATION, a vector of [0..256) -> char, to STR"
+(define-public (reencode-string mapping str)
+  "Apply MAPPING, a vector of [0..256) -> char, to STR"
   (string-map (lambda (chr)
-               (vector-ref permutation (char->integer chr)))
+               (vector-ref mapping (char->integer chr)))
              str))
 
-(define-public (make-encoding-permutation input-encoding output-encoding)
-  "Contruct a permutation by applying output-encoding after input-encoding "
+(define-public (make-encoding-mapping input-encoding output-encoding)
+  "Contruct a mapping by applying output-encoding after input-encoding "
   (list->vector
    (map
     (lambda (byte)
@@ -75,45 +75,49 @@ vector of symbols."
        
        '(
         ;; teTeX
-        ("TeX typewriter text" . "09fbbfac.enc") ;; cmtt10
-        ("TeX math symbols" . "10037936.enc") ;; cmbsy
-        ("ASCII caps and digits" . "1b6d048e.enc") ;; cminch
-        ("TeX math italic" . "aae443f0.enc")  ;; cmmi10
-        ("TeX extended ASCII" . "d9b29452.enc")
-        ("TeX text" . "f7b6d320.enc")
-        ("TeX text without f-ligatures" . "0ef0afca.enc")
-        ("Extended TeX Font Encoding - Latin" . "tex256.enc")
-        
+        ("TeX-typewriter-text" . "09fbbfac.enc") ;; cmtt10
+        ("TeX-math-symbols" . "10037936.enc") ;; cmbsy
+        ("ASCII-caps-and-digits" . "1b6d048e.enc") ;; cminch
+        ("TeX-math-italic" . "aae443f0.enc")  ;; cmmi10
+        ("TeX-extended-ASCII" . "d9b29452.enc")
+        ("TeX-text" . "cmr.enc")
+        ("TeX-text-without-f-ligatures" . "0ef0afca.enc")
+        ("Extended-TeX-Font-Encoding---Latin" . "tex256.enc")
+        ("AdobeStandardEncoding" . "8a.enc")
+
+        ;; aliases
         ("T1" . "tex256.enc")
-
-        ;; FIXME: find full Adobe; for testing -- almost Adobe:
-        ("adobe" . "ad.enc")
-
-        ("latin1" . "cork.enc")
+        ("adobe" . "8a.enc")
+        ("latin1" . "latin1.enc")
+        ("ec" . "EC.enc")
         
         ;; LilyPond.
-        ("feta braces" . "feta-braces-a.enc")
-        ("feta number" . "feta-nummer10.enc")
-        ("feta music" . "feta20.enc")
-        ("parmesan music" . "parmesan20.enc"))
+        ("fetaBraces" . "feta-braces-a.enc")
+        ("fetaNumber" . "feta-nummer10.enc")
+        ("fetaMusic" . "feta20.enc")
+        ("parmesanMusic" . "parmesan20.enc"))
        ))
 
 (define (get-coding coding-name)
   (let ((entry (assoc-get coding-name coding-alist)))
-    (cons (car entry) (force (cdr entry)))))
+    (if entry (cons (car entry) (force (cdr entry)))
+       (if (equal? coding-name "feta-music")
+           (begin
+             (ly:warn "installation problem: deprecated encoding requested: ~S" coding-name)
+             (exit 1))
+       (let ((fallback "latin1"))
+         (ly:warn "programming error: no such encoding: ~S" coding-name)
+         (ly:warn "programming error: cross thumbs, using: ~S:" fallback)
+         (get-coding fallback))))))
 
 (define-public (get-coding-filename coding-name)
-  (format (current-error-port) "FILENAME: ~S\n" (get-coding coding-name))
   (car (get-coding coding-name)))
 
 (define-public (get-coding-command coding-name)
-  (format (current-error-port) "COMMAND: ~S\n" (get-coding coding-name))
   (cadr (get-coding coding-name)))
 
 (define-public (get-coding-vector coding-name)
-  (format (current-error-port) "VECTOR: ~S\n" (get-coding coding-name))
   (caddr (get-coding coding-name)))
 
 (define-public (get-coding-table coding-name)
-  (format (current-error-port) "TABLE: ~S\n" (get-coding coding-name))
   (cadddr (get-coding coding-name)))