]> code.delx.au - gnu-emacs/blobdiff - lisp/ps-bdf.el
Fix quote escaping in ruby-toggle-string-quotes
[gnu-emacs] / lisp / ps-bdf.el
index 3ab884c34d388c15f5e9bacd1ea691e4b5aca39c..bde0bb5e01beb4a2056cb0c7ba572f9e1b702471 100644 (file)
@@ -1,25 +1,25 @@
 ;;; ps-bdf.el --- BDF font file handler for ps-print
 
-;; Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1998-1999, 2001-2016 Free Software Foundation, Inc.
 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-;;   2008
+;;   2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
-
 ;; Copyright (C) 2003
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H13PRO009
 
+;; Author: Kenichi Handa <handa@m17n.org>
+;; (according to ack.texi)
 ;; Keywords: wp, BDF, font, PostScript
-;; Maintainer: Kenichi Handa <handa@m17n.org>
+;; Package: ps-print
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -27,9 +27,7 @@
 ;; GNU General Public License for more details.
 
 ;; 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., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 
 ;;; Code:
 
-(eval-and-compile
-  (require 'ps-mule))
+(require 'ps-mule)
 
 ;;;###autoload
-(defvar bdf-directory-list
+(defcustom bdf-directory-list
   (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\").")
+  "List of directories to search for `BDF' font files.
+The default value is (\"/usr/local/share/emacs/fonts/bdf\")."
+  :type '(repeat :tag "BDF font directory list"
+                (directory :tag "BDF font directory"))
+  :group 'ps-print-miscellany)
 
 ;; 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.
@@ -70,20 +70,15 @@ for BDFNAME."
 
 (defsubst bdf-file-mod-time (filename)
   "Return modification time of FILENAME.
-The value is a list of two integers, the first integer has high-order
-16 bits, the second has low 16 bits."
+The value is a list of integers in the same format as `current-time'."
   (nth 5 (file-attributes filename)))
 
 (defun bdf-file-newer-than-time (filename mod-time)
   "Return non-nil if and only if FILENAME is newer than MOD-TIME.
-MOD-TIME is a modification time as a list of two integers, the first
-integer has high-order 16 bits, the second has low 16 bits."
-  (let* ((new-mod-time (bdf-file-mod-time filename))
-        (new-time (car new-mod-time))
-        (time (car mod-time)))
-    (or (> new-time time)
-       (and (= new-time time)
-            (> (nth 1 new-mod-time) (nth 1 mod-time))))))
+MOD-TIME is a modification time as a list of integers in the same
+format as `current-time'."
+  (let ((new-mod-time (bdf-file-mod-time filename)))
+    (time-less-p mod-time new-mod-time)))
 
 (defun bdf-find-file (bdfname)
   "Return a buffer visiting a bdf file BDFNAME.
@@ -92,17 +87,11 @@ If BDFNAME doesn't exist, return nil."
   (and (file-readable-p bdfname)
        (let ((buf (generate-new-buffer " *bdf-work*"))
             (coding-system-for-read 'no-conversion))
-        (save-excursion
-          (set-buffer buf)
+        (with-current-buffer buf
           (insert-file-contents bdfname)
           buf))))
 
-(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"))
+(defvar bdf-cache-file (locate-user-emacs-file "bdfcache.el" ".bdfcache.el")
   "Name of cache file which contains information of `BDF' font files.")
 
 (defvar bdf-cache nil
@@ -179,8 +168,8 @@ FONT-INFO is a list of the following format:
     (BDFFILE MOD-TIME FONT-BOUNDING-BOX
      RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR)
 
-MOD-TIME is last modification time as a list of two integers, the
-first integer has high-order 16 bits, the second has low 16 bits.
+MOD-TIME is last modification time as a list of integers in the
+same format as `current-time'.
 
 SIZE is a size of the font on 72 dpi device.  This value is got
 from SIZE record of the font.
@@ -222,8 +211,7 @@ CODE, where N and CODE are in the following relation:
        (message "Reading %s..." bdfname)
       (error "BDF file %s doesn't exist" bdfname))
     (unwind-protect
-       (save-excursion
-         (set-buffer buf)
+       (with-current-buffer buf
          (goto-char (point-min))
          (search-forward "\nFONTBOUNDINGBOX")
          (setq font-bounding-box
@@ -240,10 +228,10 @@ CODE, where N and CODE are in the following relation:
          (goto-char (point-min))
          (search-forward "\nFONT ")
          (if (looking-at "-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-\\([0-9]+\\)")
-             (setq size (string-to-int (match-string 1)))
+             (setq size (string-to-number (match-string 1)))
            (search-forward "\nSIZE ")
            (setq size (read (current-buffer)))
-           ;; The following kludgy code is t avoid bugs of several
+           ;; The following kludgy code is to avoid bugs of several
            ;; fonts which have wrong SIZE record.
            (and (string-match "jiskan" bdfname)
                 (<= size (/ (aref font-bounding-box 1) 3))
@@ -446,5 +434,4 @@ 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