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");
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 ());
+}
(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)))
(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)))