NOTE: This patch has been committed.
Should fix the issue François was seeing in 87r7izr6ku.fsf(a)nerim.fr . Eric,
if you have some updated Lisp from when those C core changes were made, now
would be a good time to integrate it. :-)
lisp/ChangeLog addition:
2005-03-01 Aidan Kehoe <kehoea(a)parhasard.net>
General cleanup of references to functions Eric has deleted
and renamed in the C core.
* font.el (x-font-create-object):
xft-xlfd-font-name-p -> xlfd-font-name-p
* font.el (x-font-create-object-xft):
xft-pattern-* -> fc-pattern-*, return the created font.
* font.el (x-font-create-name-xft):
xft* -> fc*
* fontconfig.el (fc-font-name-weight-regular): New.
* fontconfig.el (fc-font-name-weight-mapping):
* fontconfig.el (fc-font-name-weight-mapping-string):
* fontconfig.el (fc-font-name-weight-mapping-string-reverse):
* fontconfig.el (fc-font-name-weight-mapping-reverse):
* fontconfig.el (fc-font-weight-translate-from-symbol):
Add information on the "regular" font weight, taken from
fontconfig.h, which is the weight my local system returns by
default.
XEmacs sjt-xft source patch:
Diff command: cvs -q diff -u
Files affected: lisp/fontconfig.el lisp/font.el
Index: lisp/font.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/font.el,v
retrieving revision 1.15.2.1
diff -u -u -r1.15.2.1 font.el
--- lisp/font.el 2004/11/25 12:44:00 1.15.2.1
+++ lisp/font.el 2005/03/01 13:03:20
@@ -548,7 +548,7 @@
(defun x-font-create-object (fontname &optional device)
"Return a font descriptor object for FONTNAME, appropriate for X devices."
(if (featurep 'xft-fonts)
- (if (xft-xlfd-font-name-p fontname)
+ (if (xlfd-font-name-p fontname)
(x-font-create-object-core fontname device)
(x-font-create-object-xft fontname device))
(x-font-create-object-core fontname device)))
@@ -556,25 +556,20 @@
(defun x-font-create-object-xft (fontname &optional device)
(let* ((name fontname)
(device (or device (default-x-device)))
- (pattern (xft-font-real-pattern name device))
+ (pattern (fc-font-real-pattern name device))
(font-obj (make-font))
- (family (xft-pattern-get-family pattern 0))
- (size (xft-pattern-get-size pattern 0))
- (weight (xft-pattern-get-weight pattern 0))
- (enconding (xft-pattern-get-encoding pattern 0)))
+ (family (fc-pattern-get-family pattern 0))
+ (size (fc-pattern-get-size pattern 0))
+ (weight (fc-pattern-get-weight pattern 0)))
(set-font-family font-obj
- (and (not (equal family 'x-xft-result-no-match))
+ (and (not (equal family 'fc-result-no-match))
family))
(set-font-size font-obj
- (and (not (equal size 'x-xft-result-no-match))
+ (and (not (equal size 'fc-result-no-match))
size))
(set-font-weight font-obj
- (and (not (equal weight 'x-xft-result-no-match))
- (xft-font-weight-translate-from-constant weight)))
-; does not fit into Xft2
-; (set-font-encoding font-obj
-; (and (not (equal enconding 'x-xft-result-no-match))
-; enconding))
+ (and (not (equal weight 'fc-result-no-match))
+ (fc-font-weight-translate-from-constant weight)))
font-obj))
(defun x-font-create-object-core (fontname &optional device)
@@ -685,14 +680,12 @@
(x-font-create-name-core fontobj device)))
(defun x-font-create-name-xft (fontobj &optional device)
- (let* ((pattern (make-xft-pattern)))
+ (let* ((pattern (make-fc-pattern)))
(if (font-family fontobj)
- (xft-pattern-add pattern xft-font-name-property-family
- (font-family fontobj)))
+ (fc-pattern-add-family pattern (font-family fontobj)))
(if (font-size fontobj)
- (xft-pattern-add pattern xft-font-name-property-size
- (font-size fontobj)))
- (xft-name-unparse pattern)))
+ (fc-pattern-add-size pattern (font-size fontobj)))
+ (fc-name-unparse pattern)))
(defun x-font-create-name-core (fontobj &optional device)
"Return a font name constructed from FONTOBJ, appropriate for X devices."
Index: lisp/fontconfig.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/Attic/fontconfig.el,v
retrieving revision 1.1.2.2
diff -u -u -r1.1.2.2 fontconfig.el
--- lisp/fontconfig.el 2005/02/04 16:06:00 1.1.2.2
+++ lisp/fontconfig.el 2005/03/01 13:03:21
@@ -207,6 +207,7 @@
(if pair (cdr pair))))
(defconst fc-font-name-weight-light 0)
+(defconst fc-font-name-weight-regular 80)
(defconst fc-font-name-weight-medium 100)
(defconst fc-font-name-weight-demibold 180)
(defconst fc-font-name-weight-bold 200)
@@ -214,6 +215,7 @@
(defconst fc-font-name-weight-mapping
`((,fc-font-name-weight-light . :light)
+ (,fc-font-name-weight-regular . :regular)
(,fc-font-name-weight-medium . :medium)
(,fc-font-name-weight-demibold . :demibold)
(,fc-font-name-weight-bold . :bold)
@@ -221,6 +223,7 @@
(defconst fc-font-name-weight-mapping-string
`((,fc-font-name-weight-light . "Light")
+ (,fc-font-name-weight-regular . "Regular")
(,fc-font-name-weight-medium . "Medium")
(,fc-font-name-weight-demibold . "Demibold")
(,fc-font-name-weight-bold . "Bold")
@@ -228,6 +231,7 @@
(defconst fc-font-name-weight-mapping-string-reverse
`(("Light" . ,fc-font-name-weight-light)
+ ("Regular" . ,fc-font-name-weight-regular)
("Medium" . ,fc-font-name-weight-medium)
("Demibold" . ,fc-font-name-weight-demibold)
("Bold" . ,fc-font-name-weight-bold)
@@ -235,6 +239,7 @@
(defconst fc-font-name-weight-mapping-reverse
`((:light . ,fc-font-name-weight-light)
+ (:regular . ,fc-font-name-weight-regular)
(:medium . ,fc-font-name-weight-medium)
(:demibold . ,fc-font-name-weight-demibold)
(:bold . ,fc-font-name-weight-bold)
@@ -246,8 +251,8 @@
(if pair (cdr pair))))
(defun fc-font-weight-translate-from-symbol (symbol)
- "Translate SYMBOL (`:light', `:medium', `:demibold', `:bold' or
-`:black') to the corresponding Xft font weight constant."
+ "Translate SYMBOL (`:light', `:regular', `:medium', `:demibold',
+`:bold' or `:black') to the corresponding Xft font weight constant."
(let ((pair (assoc symbol fc-font-name-weight-mapping-reverse)))
(if pair (cdr pair))))
--
“I, for instance, am gung-ho about open source because my family is being
held hostage in Rob Malda’s basement. But who fact-checks me, or Enderle,
when we say something in public? No-one!” -- Danny O’Brien