X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/64d8e7fd0e81cc3e89d04a27e30bc96075415f86..3db571c0d71c8d568ff54786606cccad2b138ddc:/lisp/ps-bdf.el diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el index 241f4d9aaa..6cc23f7bf6 100644 --- a/lisp/ps-bdf.el +++ b/lisp/ps-bdf.el @@ -1,11 +1,11 @@ -;;; ps-bdf.el --- BDF font file handler for ps-print. +;;; ps-bdf.el --- BDF font file handler for ps-print -;; Copyright (C) 1998,99,2001 Electrotechnical Laboratory, JAPAN. +;; Copyright (C) 1998, 1999, 2001, 2003 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. ;; Keywords: wp, BDF, font, PostScript -;; Maintainer: Kenichi Handa -;; Time-stamp: <2001/03/05 09:04:32 vinicius> +;; Maintainer: Kenichi Handa +;; Time-stamp: <2003/07/11 21:13:44 vinicius> ;; This file is part of GNU Emacs. @@ -21,8 +21,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -40,15 +40,15 @@ ;;;###autoload (defvar bdf-directory-list - (if (eq system-type 'ms-dos) + (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "*List of directories to search for `BDF' font files. The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") -;; MS-DOS users like to move the binary around after it's built, but -;; the value above is computed at load-up time. -(and (eq system-type 'ms-dos) +;; MS-DOS and MS-Windows users like to move the binary around after +;; it's built, but the value above is computed at load-up time. +(and (memq system-type '(ms-dos windows-nt)) (setq bdf-directory-list (list (expand-file-name "fonts/bdf" installation-directory)))) @@ -102,7 +102,12 @@ If BDFNAME doesn't exist, return nil." (insert-file-contents file-name) buf))))) -(defvar bdf-cache-file (convert-standard-filename "~/.bdfcache.el") +(defvar bdf-cache-file (if (eq system-type 'ms-dos) + ;; convert-standard-filename doesn't + ;; guarantee that the .el extension will be + ;; preserved. + "~/_bdfcache.el" + (convert-standard-filename "~/.bdfcache.el")) "Name of cache file which contains information of `BDF' font files.") (defvar bdf-cache nil @@ -217,7 +222,7 @@ CODE, where N and CODE are in the following relation: (relative-compose 'false) (baseline-offset 0) size - font-bounding-box + font-bounding-box default-char code-range offset-vector) @@ -267,18 +272,20 @@ CODE, where N and CODE are in the following relation: (while (search-forward "\nSTARTCHAR" nil t) (setq offset (line-beginning-position)) (search-forward "\nENCODING") - (setq code (read (current-buffer)) - code0 (lsh code -8) - code1 (logand code 255) - min-code (min min-code code) - max-code (max max-code code) - min-code0 (min min-code0 code0) - max-code0 (max max-code0 code0) - min-code1 (min min-code1 code1) - max-code1 (max max-code1 code1)) - (search-forward "ENDCHAR") - (setq maxlen (max maxlen (- (point) offset)) - glyph-list (cons (cons code offset) glyph-list))) + (setq code (read (current-buffer))) + (if (< code 0) + (search-forward "ENDCHAR") + (setq code0 (lsh code -8) + code1 (logand code 255) + min-code (min min-code code) + max-code (max max-code code) + min-code0 (min min-code0 code0) + max-code0 (max max-code0 code0) + min-code1 (min min-code1 code1) + max-code1 (max max-code1 code1)) + (search-forward "ENDCHAR") + (setq maxlen (max maxlen (- (point) offset)) + glyph-list (cons (cons code offset) glyph-list)))) (setq code-range (vector min-code0 max-code0 min-code1 max-code1 @@ -352,8 +359,11 @@ The value is a list of DWIDTH, BBX, and BITMAP-STRING. DWIDTH is a pixel width of a glyph. BBX is a bounding box of the glyph. BITMAP-STRING is a string representing bits by hexadecimal digits." - (let ((coding-system-for-read 'no-conversion) - dwidth bbx height yoff bitmap-string) + (let* ((coding-system-for-read 'no-conversion) + (bbx (elt (bdf-get-font-info bdfname) 4)) + (dwidth (elt bbx 0)) + (bitmap-string "") + height yoff) (condition-case nil (with-temp-buffer (insert-file-contents bdfname nil offset (+ offset maxlen)) @@ -445,4 +455,5 @@ BITMAP-STRING is a string representing bits by hexadecimal digits." (provide 'ps-bdf) +;;; arch-tag: 9b875ba8-565a-4ecf-acaa-30cee732c898 ;;; ps-bdf.el ends here