Mercurial > emacs
annotate lisp/ps-bdf.el @ 96000:f2d08191aec7
(font_check_object): Delete it.
(font_clear_cache): Check if a font-object is alive.
(font_open_entity): Likewise. Set FONT_OBJLST_INDEX of a
font-object to nil.
(font_close_object): Don't check FONT_CLOSE_OBJECT.
(font_at): Don't call font_check_object.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 16 Jun 2008 07:32:04 +0000 |
parents | ee5932bf781d |
children | 53921407de01 |
rev | line source |
---|---|
38436
b174db545cfd
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38240
diff
changeset
|
1 ;;; ps-bdf.el --- BDF font file handler for ps-print |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
2 |
79721 | 3 ;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 |
74544 | 4 ;; Free Software Foundation, Inc. |
79721 | 5 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, |
6 ;; 2008 | |
67658 | 7 ;; National Institute of Advanced Industrial Science and Technology (AIST) |
8 ;; Registration Number H14PRO021 | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
9 |
89530 | 10 ;; Copyright (C) 2003 |
11 ;; National Institute of Advanced Industrial Science and Technology (AIST) | |
12 ;; Registration Number H13PRO009 | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
13 |
26116 | 14 ;; Keywords: wp, BDF, font, PostScript |
74327
78c65b1a07f6
Fix maintainer email. Emacs 20/21 compatibility.
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents:
68651
diff
changeset
|
15 ;; Maintainer: Kenichi Handa <handa@m17n.org> |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
16 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
17 ;; This file is part of GNU Emacs. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
18 |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
19 ;; GNU Emacs is free software: you can redistribute it and/or modify |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
20 ;; it under the terms of the GNU General Public License as published by |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
21 ;; the Free Software Foundation, either version 3 of the License, or |
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
22 ;; (at your option) any later version. |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
23 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
24 ;; GNU Emacs is distributed in the hope that it will be useful, |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
25 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
26 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
27 ;; GNU General Public License for more details. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
28 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
29 ;; You should have received a copy of the GNU General Public License |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93975
diff
changeset
|
30 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
31 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
32 ;;; Commentary: |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
33 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
34 ;; Functions for getting bitmap information from X's BDF font file are |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
35 ;; provided. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
36 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
37 ;;; Code: |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
38 |
37136
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
39 (eval-and-compile |
90736
ef1369583937
Split XEmacs/Emacs definitions and sample setup code into separate files
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents:
90735
diff
changeset
|
40 (require 'ps-mule)) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
41 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
42 ;;;###autoload |
24449
2428731823fd
(bdf-directory-list): Different value for ms-dos.
Eli Zaretskii <eliz@gnu.org>
parents:
24416
diff
changeset
|
43 (defvar bdf-directory-list |
51875
5488bfe4b6be
copyright line fix & bdf-directory-list init fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents:
49597
diff
changeset
|
44 (if (memq system-type '(ms-dos windows-nt)) |
24450
60d1fad41645
(bdf-directory-list): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
24449
diff
changeset
|
45 (list (expand-file-name "fonts/bdf" installation-directory)) |
24449
2428731823fd
(bdf-directory-list): Different value for ms-dos.
Eli Zaretskii <eliz@gnu.org>
parents:
24416
diff
changeset
|
46 '("/usr/local/share/emacs/fonts/bdf")) |
24416
3d446442b6a0
(bdf-directory-list): Initialize it to '("/usr/local/share/emacs/fonts/bdf").
Kenichi Handa <handa@m17n.org>
parents:
24087
diff
changeset
|
47 "*List of directories to search for `BDF' font files. |
24467 | 48 The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
49 |
38236
ec872cb65bc3
(bdf-directory-list): Use the value relative to
Eli Zaretskii <eliz@gnu.org>
parents:
37136
diff
changeset
|
50 ;; MS-DOS and MS-Windows users like to move the binary around after |
ec872cb65bc3
(bdf-directory-list): Use the value relative to
Eli Zaretskii <eliz@gnu.org>
parents:
37136
diff
changeset
|
51 ;; it's built, but the value above is computed at load-up time. |
51875
5488bfe4b6be
copyright line fix & bdf-directory-list init fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents:
49597
diff
changeset
|
52 (and (memq system-type '(ms-dos windows-nt)) |
24450
60d1fad41645
(bdf-directory-list): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
24449
diff
changeset
|
53 (setq bdf-directory-list |
60d1fad41645
(bdf-directory-list): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
24449
diff
changeset
|
54 (list (expand-file-name "fonts/bdf" installation-directory)))) |
60d1fad41645
(bdf-directory-list): Fix last change.
Eli Zaretskii <eliz@gnu.org>
parents:
24449
diff
changeset
|
55 |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
56 (defun bdf-expand-file-name (bdfname) |
37136
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
57 "Return an absolute path name of a `BDF' font file BDFNAME. |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
58 It searches directories listed in the variable `bdf-directory-list' |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
59 for BDFNAME." |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
60 (if (file-name-absolute-p bdfname) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
61 (and (file-readable-p bdfname) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
62 bdfname) |
89530 | 63 (catch 'tag |
64 (dolist (dir bdf-directory-list) | |
65 (let ((absolute-path (expand-file-name bdfname dir))) | |
66 (if (file-readable-p absolute-path) | |
67 (throw 'tag absolute-path))))))) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
68 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
69 (defsubst bdf-file-mod-time (filename) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
70 "Return modification time of FILENAME. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
71 The value is a list of two integers, the first integer has high-order |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
72 16 bits, the second has low 16 bits." |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
73 (nth 5 (file-attributes filename))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
74 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
75 (defun bdf-file-newer-than-time (filename mod-time) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
76 "Return non-nil if and only if FILENAME is newer than MOD-TIME. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
77 MOD-TIME is a modification time as a list of two integers, the first |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
78 integer has high-order 16 bits, the second has low 16 bits." |
89530 | 79 (let* ((new-mod-time (bdf-file-mod-time filename)) |
80 (new-time (car new-mod-time)) | |
81 (time (car mod-time))) | |
82 (or (> new-time time) | |
83 (and (= new-time time) | |
84 (> (nth 1 new-mod-time) (nth 1 mod-time)))))) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
85 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
86 (defun bdf-find-file (bdfname) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
87 "Return a buffer visiting a bdf file BDFNAME. |
89530 | 88 BDFNAME must be an absolute file name. |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
89 If BDFNAME doesn't exist, return nil." |
89530 | 90 (and (file-readable-p bdfname) |
91 (let ((buf (generate-new-buffer " *bdf-work*")) | |
92 (coding-system-for-read 'no-conversion)) | |
93 (save-excursion | |
94 (set-buffer buf) | |
95 (insert-file-contents bdfname) | |
96 buf)))) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
97 |
39307
9861030de063
(bdf-cache-file) <ms-dos>: Use _bdfcache.el, since
Eli Zaretskii <eliz@gnu.org>
parents:
38436
diff
changeset
|
98 (defvar bdf-cache-file (if (eq system-type 'ms-dos) |
9861030de063
(bdf-cache-file) <ms-dos>: Use _bdfcache.el, since
Eli Zaretskii <eliz@gnu.org>
parents:
38436
diff
changeset
|
99 ;; convert-standard-filename doesn't |
9861030de063
(bdf-cache-file) <ms-dos>: Use _bdfcache.el, since
Eli Zaretskii <eliz@gnu.org>
parents:
38436
diff
changeset
|
100 ;; guarantee that the .el extension will be |
9861030de063
(bdf-cache-file) <ms-dos>: Use _bdfcache.el, since
Eli Zaretskii <eliz@gnu.org>
parents:
38436
diff
changeset
|
101 ;; preserved. |
9861030de063
(bdf-cache-file) <ms-dos>: Use _bdfcache.el, since
Eli Zaretskii <eliz@gnu.org>
parents:
38436
diff
changeset
|
102 "~/_bdfcache.el" |
9861030de063
(bdf-cache-file) <ms-dos>: Use _bdfcache.el, since
Eli Zaretskii <eliz@gnu.org>
parents:
38436
diff
changeset
|
103 (convert-standard-filename "~/.bdfcache.el")) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
104 "Name of cache file which contains information of `BDF' font files.") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
105 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
106 (defvar bdf-cache nil |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
107 "Cached information of `BDF' font files. It is a list of FONT-INFO. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
108 FONT-INFO is a list of the following format: |
89530 | 109 (ABSOLUTE-FILE-NAME MOD-TIME SIZE FONT-BOUNDING-BOX |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
110 RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
111 See the documentation of the function `bdf-read-font-info' for more detail.") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
112 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
113 (defun bdf-read-cache () |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
114 "Return a cached information about `BDF' font files from a cache file. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
115 The variable `bdf-cache-file' holds the cache file name. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
116 If the cache file is not readable, this return nil." |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
117 (setq bdf-cache nil) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
118 (condition-case nil |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
119 (and (file-readable-p bdf-cache-file) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
120 (progn |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
121 (load-file bdf-cache-file) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
122 (if (listp bdf-cache) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
123 bdf-cache |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
124 (setq bdf-cache nil)))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
125 (error nil))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
126 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
127 (defun bdf-write-cache () |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
128 "Write out cached information of `BDF' font file to a file. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
129 The variable `bdf-cache-file' holds the cache file name. |
37136
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
130 The file is written if and only if the file already exists and writable." |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
131 (and bdf-cache |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
132 (file-exists-p bdf-cache-file) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
133 (file-writable-p bdf-cache-file) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
134 (write-region (format "(setq bdf-cache '%S)\n" bdf-cache) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
135 nil bdf-cache-file))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
136 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
137 (defun bdf-set-cache (font-info) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
138 "Cache FONT-INFO as information about one `BDF' font file. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
139 FONT-INFO is a list of the following format: |
89530 | 140 (ABSOLUTE-FILE-NAME MOD-TIME SIZE FONT-BOUNDING-BOX |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
141 RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
142 See the documentation of the function `bdf-read-font-info' for more detail." |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
143 (let ((slot (assoc (car font-info) bdf-cache))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
144 (if slot |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
145 (setcdr slot (cdr font-info)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
146 (setq bdf-cache (cons font-info bdf-cache))))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
147 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
148 (defun bdf-initialize () |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
149 "Initialize `bdf' library." |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
150 (and (bdf-read-cache) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
151 (add-hook 'kill-emacs-hook 'bdf-write-cache))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
152 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
153 (defun bdf-compact-code (code code-range) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
154 (if (or (< code (aref code-range 4)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
155 (> code (aref code-range 5))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
156 (setq code (aref code-range 6))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
157 (+ (* (- (lsh code -8) (aref code-range 0)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
158 (1+ (- (aref code-range 3) (aref code-range 2)))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
159 (- (logand code 255) (aref code-range 2)))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
160 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
161 (defun bdf-expand-code (code code-range) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
162 (let ((code0-range (1+ (- (aref code-range 3) (aref code-range 2))))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
163 (+ (* (+ (/ code code0-range) (aref code-range 0)) 256) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
164 (+ (% code code0-range) (aref code-range 2))))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
165 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
166 (defun bdf-search-and-read (match limit) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
167 (goto-char (point-min)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
168 (and (search-forward match limit t) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
169 (progn |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
170 (goto-char (match-end 0)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
171 (read (current-buffer))))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
172 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
173 (defun bdf-read-font-info (bdfname) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
174 "Read `BDF' font file BDFNAME and return information (FONT-INFO) of the file. |
89530 | 175 BDFNAME must be an absolute file name. |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
176 FONT-INFO is a list of the following format: |
89530 | 177 (BDFFILE MOD-TIME FONT-BOUNDING-BOX |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
178 RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
179 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
180 MOD-TIME is last modification time as a list of two integers, the |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
181 first integer has high-order 16 bits, the second has low 16 bits. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
182 |
89530 | 183 SIZE is a size of the font on 72 dpi device. This value is got |
184 from SIZE record of the font. | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
185 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
186 FONT-BOUNDING-BOX is the font bounding box as a list of four integers, |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
187 BBX-WIDTH, BBX-HEIGHT, BBX-XOFF, and BBX-YOFF. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
188 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
189 RELATIVE-COMPOSE is an integer value of the font's property |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
190 `_MULE_RELATIVE_COMPOSE'. If the font doesn't have this property, the |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
191 value is 0. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
192 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
193 BASELINE-OFFSET is an integer value of the font's property |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
194 `_MULE_BASELINE_OFFSET'. If the font doesn't have this property, the |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
195 value is 0. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
196 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
197 CODE-RANGE is a vector of minimum 1st byte, maximum 1st byte, minimum |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
198 2nd byte, maximum 2nd byte, minimum code, maximum code, and default |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
199 code. For 1-byte fonts, the first two elements are 0. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
200 |
37136
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
201 MAXLEN is a maximum bytes of one glyph information in the font file. |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
202 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
203 OFFSET-VECTOR is a vector of a file position which starts bitmap data |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
204 of the glyph in the font file. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
205 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
206 Nth element of OFFSET-VECTOR is a file position for the glyph of code |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
207 CODE, where N and CODE are in the following relation: |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
208 (bdf-compact-code CODE) => N, (bdf-expand-code N) => CODE" |
89530 | 209 (let* ((buf (bdf-find-file bdfname)) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
210 (maxlen 0) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
211 (relative-compose 'false) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
212 (baseline-offset 0) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
213 size |
89530 | 214 dpi |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
39346
diff
changeset
|
215 font-bounding-box |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
216 default-char |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
217 code-range |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
218 offset-vector) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
219 (if buf |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
220 (message "Reading %s..." bdfname) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
221 (error "BDF file %s doesn't exist" bdfname)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
222 (unwind-protect |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
223 (save-excursion |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
224 (set-buffer buf) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
225 (goto-char (point-min)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
226 (search-forward "\nFONTBOUNDINGBOX") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
227 (setq font-bounding-box |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
228 (vector (read (current-buffer)) (read (current-buffer)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
229 (read (current-buffer)) (read (current-buffer)))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
230 ;; The following kludgy code is to avoid bugs of fonts |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
231 ;; jiskan16.bdf and jiskan24.bdf distributed with X. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
232 ;; They contain wrong FONTBOUNDINGBOX. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
233 (and (> (aref font-bounding-box 3) 0) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
234 (string-match "jiskan\\(16\\|24\\)" bdfname) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
235 (aset font-bounding-box 3 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
236 (- (aref font-bounding-box 3)))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
237 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
238 (goto-char (point-min)) |
89530 | 239 (search-forward "\nFONT ") |
240 (if (looking-at "-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-\\([0-9]+\\)") | |
91429
dca6485ff374
(bdf-read-font-info): Use string-to-number rather than string-to-int.
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
241 (setq size (string-to-number (match-string 1))) |
89530 | 242 (search-forward "\nSIZE ") |
243 (setq size (read (current-buffer))) | |
93559
ab068ffc7048
Fix comment typo.
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents:
91429
diff
changeset
|
244 ;; The following kludgy code is to avoid bugs of several |
89530 | 245 ;; fonts which have wrong SIZE record. |
246 (and (string-match "jiskan" bdfname) | |
247 (<= size (/ (aref font-bounding-box 1) 3)) | |
248 (setq size (aref font-bounding-box 1))) | |
249 (setq dpi (read (current-buffer))) | |
250 (if (and (> dpi 0) (/= dpi 72)) | |
251 (setq size (/ (* size dpi) 72)))) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
252 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
253 (setq default-char (bdf-search-and-read "\nDEFAULT_CHAR" nil)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
254 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
255 (search-forward "\nSTARTCHAR") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
256 (forward-line -1) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
257 (let ((limit (point))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
258 (setq relative-compose |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
259 (or (bdf-search-and-read "\n_MULE_RELATIVE_COMPOSE" limit) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
260 'false) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
261 baseline-offset |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
262 (or (bdf-search-and-read "\n_MULE_BASELINE_OFFSET" limit) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
263 0))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
264 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
265 (let ((min-code0 256) (min-code1 256) (min-code 65536) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
266 (max-code0 0) (max-code1 0) (max-code 0) |
37136
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
267 glyph glyph-list code0 code1 code offset) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
268 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
269 (while (search-forward "\nSTARTCHAR" nil t) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
270 (setq offset (line-beginning-position)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
271 (search-forward "\nENCODING") |
64645
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
272 (setq code (read (current-buffer))) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
273 (if (< code 0) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
274 (search-forward "ENDCHAR") |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
275 (setq code0 (lsh code -8) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
276 code1 (logand code 255) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
277 min-code (min min-code code) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
278 max-code (max max-code code) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
279 min-code0 (min min-code0 code0) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
280 max-code0 (max max-code0 code0) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
281 min-code1 (min min-code1 code1) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
282 max-code1 (max max-code1 code1)) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
283 (search-forward "ENDCHAR") |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
284 (setq maxlen (max maxlen (- (point) offset)) |
e4b9a37feb33
(bdf-read-font-info): Ignore glyphs whose ENCODING is
Kenichi Handa <handa@m17n.org>
parents:
64091
diff
changeset
|
285 glyph-list (cons (cons code offset) glyph-list)))) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
286 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
287 (setq code-range |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
288 (vector min-code0 max-code0 min-code1 max-code1 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
289 min-code max-code (or default-char min-code)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
290 offset-vector |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
291 (make-vector (1+ (bdf-compact-code max-code code-range)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
292 nil)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
293 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
294 (while glyph-list |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
295 (setq glyph (car glyph-list) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
296 glyph-list (cdr glyph-list)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
297 (aset offset-vector |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
298 (bdf-compact-code (car glyph) code-range) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
299 (cdr glyph))))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
300 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
301 (kill-buffer buf)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
302 (message "Reading %s...done" bdfname) |
89530 | 303 (list bdfname (bdf-file-mod-time bdfname) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
304 size font-bounding-box relative-compose baseline-offset |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
305 code-range maxlen offset-vector))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
306 |
89530 | 307 (defsubst bdf-info-absolute-path (font-info) (nth 0 font-info)) |
308 (defsubst bdf-info-mod-time (font-info) (nth 1 font-info)) | |
309 (defsubst bdf-info-size (font-info) (nth 2 font-info)) | |
310 (defsubst bdf-info-font-bounding-box (font-info) (nth 3 font-info)) | |
311 (defsubst bdf-info-relative-compose (font-info) (nth 4 font-info)) | |
312 (defsubst bdf-info-baseline-offset (font-info) (nth 5 font-info)) | |
313 (defsubst bdf-info-code-range (font-info) (nth 6 font-info)) | |
314 (defsubst bdf-info-maxlen (font-info) (nth 7 font-info)) | |
315 (defsubst bdf-info-offset-vector (font-info) (nth 8 font-info)) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
316 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
317 (defun bdf-get-font-info (bdfname) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
318 "Return information about `BDF' font file BDFNAME. |
89530 | 319 BDFNAME must be an absolute file name. |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
320 The value FONT-INFO is a list of the following format: |
89530 | 321 (BDFNAME MOD-TIME SIZE FONT-BOUNDING-BOX |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
322 RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
323 See the documentation of the function `bdf-read-font-info' for more detail." |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
324 (or bdf-cache |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
325 (bdf-read-cache)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
326 (let ((font-info (assoc bdfname bdf-cache))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
327 (if (or (not font-info) |
89530 | 328 (not (file-readable-p bdfname)) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
329 (bdf-file-newer-than-time bdfname (bdf-info-mod-time font-info))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
330 (progn |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
331 (setq font-info (bdf-read-font-info bdfname)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
332 (bdf-set-cache font-info))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
333 font-info)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
334 |
89530 | 335 (defun bdf-read-bitmap (bdfname offset maxlen relative-compose) |
37136
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
336 "Read `BDF' font file BDFNAME to get bitmap data at file position OFFSET. |
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
337 BDFNAME is an absolute path name of the font file. |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
338 MAXLEN specifies how many bytes we should read at least. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
339 The value is a list of DWIDTH, BBX, and BITMAP-STRING. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
340 DWIDTH is a pixel width of a glyph. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
341 BBX is a bounding box of the glyph. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
342 BITMAP-STRING is a string representing bits by hexadecimal digits." |
39346
aa9501b93334
(bdf-read-bitmap): Initialize returned values to
Gerd Moellmann <gerd@gnu.org>
parents:
39307
diff
changeset
|
343 (let* ((coding-system-for-read 'no-conversion) |
89530 | 344 (bbx (bdf-info-font-bounding-box (bdf-get-font-info bdfname))) |
39346
aa9501b93334
(bdf-read-bitmap): Initialize returned values to
Gerd Moellmann <gerd@gnu.org>
parents:
39307
diff
changeset
|
345 (dwidth (elt bbx 0)) |
aa9501b93334
(bdf-read-bitmap): Initialize returned values to
Gerd Moellmann <gerd@gnu.org>
parents:
39307
diff
changeset
|
346 (bitmap-string "") |
aa9501b93334
(bdf-read-bitmap): Initialize returned values to
Gerd Moellmann <gerd@gnu.org>
parents:
39307
diff
changeset
|
347 height yoff) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
348 (condition-case nil |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
349 (with-temp-buffer |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
350 (insert-file-contents bdfname nil offset (+ offset maxlen)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
351 (goto-char (point-min)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
352 (search-forward "\nDWIDTH") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
353 (setq dwidth (read (current-buffer))) |
89530 | 354 (if (= dwidth 0) |
355 (setq dwidth 0.1)) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
356 (goto-char (point-min)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
357 (search-forward "\nBBX") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
358 (setq bbx (vector (read (current-buffer)) (read (current-buffer)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
359 (read (current-buffer)) (read (current-buffer))) |
37136
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
360 height (aref bbx 1) |
422bd2e720f2
XEmacs compatibility. Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
34313
diff
changeset
|
361 yoff (aref bbx 3)) |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
362 (search-forward "\nBITMAP") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
363 (forward-line 1) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
364 (delete-region (point-min) (point)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
365 (and (looking-at "\\(0+\n\\)+") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
366 (progn |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
367 (setq height (- height (count-lines (point) (match-end 0)))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
368 (delete-region (point) (match-end 0)))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
369 (or (looking-at "ENDCHAR") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
370 (progn |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
371 (search-forward "ENDCHAR" nil 'move) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
372 (forward-line -1) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
373 (while (looking-at "0+$") |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
374 (setq yoff (1+ yoff) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
375 height (1- height)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
376 (forward-line -1)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
377 (forward-line 1))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
378 (aset bbx 1 height) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
379 (aset bbx 3 yoff) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
380 (delete-region (point) (point-max)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
381 (goto-char (point-min)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
382 (while (not (eobp)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
383 (end-of-line) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
384 (delete-char 1)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
385 (setq bitmap-string (buffer-string))) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
386 (error nil)) |
89530 | 387 (vector dwidth (aref bbx 0) (aref bbx 1) (aref bbx 2) (aref bbx 3) |
388 (concat "<" bitmap-string ">") | |
389 (or relative-compose 'false)))) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
390 |
89530 | 391 (defun bdf-get-bitmap (bdfname code) |
392 "Return bitmap information of glyph of CODE in `BDF' font file BDFNAME. | |
393 CODE is an encoding number of glyph in the file. | |
394 The value is a list (DWIDTH BBX BITMAP-STRING). | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
395 DWIDTH is a pixel width of a glyph. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
396 BBX is a bounding box of the glyph. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
397 BITMAP-STRING is a string representing bits by hexadecimal digits." |
89530 | 398 (let* ((info (bdf-get-font-info bdfname)) |
399 (maxlen (bdf-info-maxlen info)) | |
400 (code-range (bdf-info-code-range info)) | |
401 (offset-vector (bdf-info-offset-vector info))) | |
402 (bdf-read-bitmap bdfname | |
403 (aref offset-vector (bdf-compact-code code code-range)) | |
404 maxlen (bdf-info-relative-compose info)))) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
405 |
89530 | 406 ;;; Interface to ps-mule.el |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
407 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
408 ;; Called from ps-mule-init-external-library. |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
409 (defun bdf-generate-prologue () |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
410 (or bdf-cache |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
411 (bdf-initialize)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
412 (ps-mule-generate-bitmap-prologue)) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
413 |
89530 | 414 ;; Called from ps-mule-check-font. |
415 (defun bdf-check-font (font-spec) | |
416 (let ((font-name-list (ps-mule-font-spec-name font-spec))) | |
417 (ps-mule-font-spec-set-name | |
418 font-spec | |
419 (if (stringp font-name-list) | |
420 (bdf-expand-file-name font-name-list) | |
421 (catch 'tag | |
422 (dolist (font-name font-name-list) | |
423 (setq font-name (bdf-expand-file-name font-name)) | |
424 (if font-name | |
425 (throw 'tag font-name)))))))) | |
426 | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
427 ;; Called from ps-mule-generate-font. |
89530 | 428 (defun bdf-generate-font (font-spec) |
429 (let ((info (bdf-get-font-info (ps-mule-font-spec-name font-spec)))) | |
430 (ps-mule-font-spec-set-extra | |
431 font-spec (bdf-info-absolute-path info)) | |
432 (ps-mule-generate-bitmap-font font-spec | |
433 (bdf-info-size info) | |
434 (bdf-info-relative-compose info) | |
435 (bdf-info-baseline-offset info) | |
436 (bdf-info-font-bounding-box info)))) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
437 |
89530 | 438 ;; Called from ps-mule-generate-glyph. |
439 (defun bdf-generate-glyph (font-spec char) | |
440 (let ((font-name (ps-mule-font-spec-extra font-spec)) | |
441 (code (ps-mule-encode-char char font-spec))) | |
442 (ps-mule-generate-bitmap-glyph font-spec char code | |
443 (bdf-get-bitmap font-name code)))) | |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
444 |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
445 (provide 'ps-bdf) |
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
446 |
93975
1e3a407766b9
Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
93559
diff
changeset
|
447 ;; arch-tag: 9b875ba8-565a-4ecf-acaa-30cee732c898 |
23896
c0c441b28347
File name changed from bdf.el. Provide ps-bdf
Kenichi Handa <handa@m17n.org>
parents:
23895
diff
changeset
|
448 ;;; ps-bdf.el ends here |