]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/output-ps.scm (define-fonts): Handle font re-encoding.
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 7 Apr 2004 11:06:08 +0000 (11:06 +0000)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 7 Apr 2004 11:06:08 +0000 (11:06 +0000)
* lily/scaled-font-metric.cc (ly:font-coding-name): New function.

* scm/encoding.scm (get-coding-filename, get-coding-command): New
function.
(coding-alist): Also hold filename, command.
(read-encoding-file): Return symbols.

ChangeLog
lily/scaled-font-metric.cc
scm/encoding.scm
scm/output-ps.scm

index d5b379cacb0d757a0230180cd2d53e5866c98b40..61ed043069ff40f8624b775f6a16a0fc471a20a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2004-04-07  Jan Nieuwenhuizen  <janneke@gnu.org>
 
+       * scm/output-ps.scm (define-fonts): Handle font re-encoding.
+
+       * lily/scaled-font-metric.cc (ly:font-coding-name): New function.
+
        * scm/encoding.scm (get-coding-filename, get-coding-command): New
        function.
        (coding-alist): Also hold filename, command.
index c84b90a2246345fba1a521638a00373d9d9b2c30..f46d22bb679910e84d439d4e35eac7b7c1fa2504 100644 (file)
@@ -254,13 +254,13 @@ Modified_font_metric::text_dimension (String text)
   return b;
 }
 
-
-LY_DEFINE (ly_font_enccoding, "ly:font-encoding", 1 , 0, 0,
-         (SCM font),
+LY_DEFINE (ly_font_encoding, "ly:font-encoding",
+          1, 0, 0,
+          (SCM font),
           "Given the Modified_font_metric @var{font}, return a "
           "list containing (input-coding, output-coding, permutation).")
 {
-  Modified_font_metric * fm
+  Modified_font_metric *fm
     = dynamic_cast<Modified_font_metric*> (unsmob_metrics (font));
   
   SCM_ASSERT_TYPE (fm, font, SCM_ARG1, __FUNCTION__, "Modified_font_metric");
@@ -268,3 +268,15 @@ LY_DEFINE (ly_font_enccoding, "ly:font-encoding", 1 , 0, 0,
                     fm->coding_table_,
                     fm->coding_permutation_);
 }
+
+LY_DEFINE (ly_font_coding_name, "ly:font-coding-name",
+          1, 0, 0,
+          (SCM font),
+          "Return the CODING-NAME of the Modified_font_metric @var{font}.")
+{
+  Modified_font_metric *fm
+    = dynamic_cast<Modified_font_metric*> (unsmob_metrics (font));
+  
+  SCM_ASSERT_TYPE (fm, font, SCM_ARG1, __FUNCTION__, "Modified_font_metric");
+  return scm_makfrom0str (fm->coding_scheme ().to_str0 ());
+}
index 310bf150ddbcd3337fcfb21f35892f966ed91222..870abe3a420f60dc615d352e5249180482e63a3d 100644 (file)
@@ -103,17 +103,13 @@ vector of symbols."
     (cons (car entry) (force (cdr entry)))))
 
 (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)))
index 628700cfabe120fc60fec6711c64552411bfce0a..dfbcf74f171ec9e46986a56bd0183432f2e9ff95 100644 (file)
   (cons (+ (car a) (car b))
        (+ (cdr a) (cdr b))))
 
-;; WIP
-(define font-encoding-alist
-  '(("ecrm12" . "ISOLatin1Encoding")
-    ("ecmb12" . "ISOLatin1Encoding")))
+;;    ("ecmb12" . "ISOLatin1Encoding")))
                 
 (define (ps-encoding text)
   (escape-parentheses text))
     (let* ((command (font-command font))
           (fontname (ly:font-name font))
           (mangled (possibly-mangle-fontname fontname))
-          (encoding (assoc-get fontname font-encoding-alist))
+          ;;(encoding (assoc-get fontname font-encoding-alist))
+          (encoding (ly:font-coding-name font))
           (designsize (ly:font-design-size font))
           (magnification (* (ly:font-magnification font)))
           (ops (ly:paper-lookup paper 'outputscale))
-          (scaling (* ops magnification designsize)) )
+          (scaling (* ops magnification designsize)))
 
       (if
        #f
         (newline)
         (format (current-error-port) "fontname ~S\n" fontname)
         (format (current-error-port) "command ~S\n" command)
+        (format (current-error-port) "encoding ~S\n" encoding)
         (format (current-error-port) "mangled ~S\n" mangled)
         (format (current-error-port) "designsize ~S\n" designsize)
-        (format (current-error-port) "foo-design ~S\n" foo-design)
         (format (current-error-port) "magnification ~S\n" magnification)
         (format (current-error-port) "ops ~S\n" ops)
         (format (current-error-port) "scaling ~S\n" scaling)))
       
-      (if encoding
+      (if (or (equal? encoding "ISOLatin1Encoding")
+             ;; UGH, uhg 
+             (equal? fontname "feta20")
+             (equal? fontname "parmesan20"))
+         (define-font command mangled scaling)
          ;; FIXME: should rather tag encoded font
-         (let ((raw (string-append command "-raw")))
+         (let ((raw (string-append command "-raw"))
+               (vector (get-coding-command encoding))
+               (filename (get-coding-filename encoding)))
            (string-append
+            (ly:kpathsea-gulp-file filename)
             (define-font raw mangled scaling)
-            (reencode-font raw encoding command)))
-         (define-font command mangled scaling))))
+            (reencode-font raw vector command))))))
   
   (apply string-append
         (map (lambda (x) (font-load-command paper x)) font-list)))