- (else (error "unknown unit" (ly:unit)))))
-
-;;; font
-(define-public (font-family font)
- (let ((name (ly:font-name font)))
- (if name
- (regexp-substitute/global #f "^GNU-(.*)-[.0-9]*$" name 'pre 1 'post)
- (begin
- ;;(stderr "font-name: ~S\n" (ly:font-name font))
- ;;(stderr "font-file-name: ~S\n" (ly:font-file-name font))
- (ly:font-file-name font)))))
-
+ (else (ly:error (_ "unknown unit: ~S") (ly:unit)))))
+
+(define-public lily-unit->mm-factor
+ (* 25.4 (/ lily-unit->bigpoint-factor 72)))
+
+;;; FONT may be font smob, or pango font string...
+(define-public (font-name-style font)
+ ;; FIXME: ughr, (ly:font-name) sometimes also has Style appended.
+ (let* ((font-name (ly:font-name font))
+ (full-name (if font-name font-name (ly:font-file-name font)))
+ (name-style (string-split full-name #\-)))
+ ;; FIXME: ughr, barf: feta-alphabet is actually emmentaler
+ (if (string-prefix? "feta-alphabet" full-name)
+ (list "emmentaler"
+ (substring full-name (string-length "feta-alphabet")))
+ (if (not (null? (cdr name-style)))
+ name-style
+ (append name-style '("Regular"))))))
+
+(define-public (modified-font-metric-font-scaling font)
+ (let* ((designsize (ly:font-design-size font))
+ (magnification (* (ly:font-magnification font)))
+ (scaling (* magnification designsize)))
+ (debugf "scaling:~S\n" scaling)
+ (debugf "magnification:~S\n" magnification)
+ (debugf "design:~S\n" designsize)
+ scaling))
+
+(define-public (version-not-seen-message input-file-name)
+ (ly:message
+ (string-append
+ input-file-name ": 0: " (_ "warning: ")
+ (format #f
+ (_ "no \\version statement found, please add~afor future compatibility")
+ (format #f "\n\n\\version ~s\n\n" (lilypond-version))))))
+
+(define-public (old-relative-not-used-message input-file-name)
+ (ly:message
+ (string-append
+ input-file-name ": 0: " (_ "warning: ")
+ (_ "old relative compatibility not used"))))