[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/printing.el
From: |
Vinicius Jose Latorre |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/printing.el |
Date: |
Wed, 17 Nov 2004 19:17:31 -0500 |
Index: emacs/lisp/printing.el
diff -c emacs/lisp/printing.el:1.24 emacs/lisp/printing.el:1.25
*** emacs/lisp/printing.el:1.24 Mon Nov 15 19:31:54 2004
--- emacs/lisp/printing.el Thu Nov 18 00:11:32 2004
***************
*** 5,17 ****
;; Author: Vinicius Jose Latorre <address@hidden>
;; Maintainer: Vinicius Jose Latorre <address@hidden>
! ;; Time-stamp: <2004/11/15 17:23:32 vinicius>
;; Keywords: wp, print, PostScript
;; Version: 6.8.3
;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/
(defconst pr-version "6.8.3"
! "printing.el, v 6.8.3 <2004/11/14 vinicius>
Please send all bug fixes and enhancements to
Vinicius Jose Latorre <address@hidden>
--- 5,17 ----
;; Author: Vinicius Jose Latorre <address@hidden>
;; Maintainer: Vinicius Jose Latorre <address@hidden>
! ;; Time-stamp: <2004/11/17 19:27:57 vinicius>
;; Keywords: wp, print, PostScript
;; Version: 6.8.3
;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/
(defconst pr-version "6.8.3"
! "printing.el, v 6.8.3 <2004/11/17 vinicius>
Please send all bug fixes and enhancements to
Vinicius Jose Latorre <address@hidden>
***************
*** 488,494 ****
;; `pr-temp-dir' Specify a directory for temporary files during
;; printing.
;;
! ;; `pr-ps-temp-file' Specify PostScript temporary file name.
;;
;; `pr-file-modes' Specify the file permission bits for newly
;; created files.
--- 488,494 ----
;; `pr-temp-dir' Specify a directory for temporary files during
;; printing.
;;
! ;; `pr-ps-temp-file' Specify PostScript temporary file name prefix.
;;
;; `pr-file-modes' Specify the file permission bits for newly
;; created files.
***************
*** 1003,1071 ****
(error "`printing' requires `ps-print' package version 6.6.4 or later"))
! (eval-and-compile
! (defconst pr-cygwin-system
! (and ps-windows-system (getenv "OSTYPE")
! (string-match "cygwin" (getenv "OSTYPE")))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; To avoid compilation gripes
! (eval-and-compile
! (or (fboundp 'subst-char-in-string)
! (defun subst-char-in-string (fromchar tochar string &optional inplace)
! "Replace FROMCHAR with TOCHAR in STRING each time it occurs.
Unless optional argument INPLACE is non-nil, return a new string."
! (let ((i (length string))
! (newstr (if inplace string (copy-sequence string))))
! (while (> (setq i (1- i)) 0)
! (if (eq (aref newstr i) fromchar)
! (aset newstr i tochar)))
! newstr)))
- ;; GNU Emacs
- (defalias 'pr-e-frame-char-height 'frame-char-height)
- (defalias 'pr-e-frame-char-width 'frame-char-width)
- (defalias 'pr-e-mouse-pixel-position 'mouse-pixel-position)
- ;; XEmacs
- (defalias 'pr-x-add-submenu 'add-submenu)
- (defalias 'pr-x-event-function 'event-function)
- (defalias 'pr-x-event-object 'event-object)
- (defalias 'pr-x-find-menu-item 'find-menu-item)
- (defalias 'pr-x-font-height 'font-height)
- (defalias 'pr-x-font-width 'font-width)
- (defalias 'pr-x-get-popup-menu-response 'get-popup-menu-response)
- (defalias 'pr-x-make-event 'make-event)
- (defalias 'pr-x-misc-user-event-p 'misc-user-event-p)
- (defalias 'pr-x-relabel-menu-item 'relabel-menu-item)
- (defalias 'pr-x-event-x-pixel 'event-x-pixel)
- (defalias 'pr-x-event-y-pixel 'event-y-pixel)
! (cond
! ((eq ps-print-emacs-type 'emacs) ; GNU Emacs
! (defvar deactivate-mark nil)
! (defalias 'pr-f-set-keymap-parents 'set-keymap-parent)
! (defalias 'pr-f-set-keymap-name 'ignore)
! (defalias 'pr-f-read-string 'read-string)
! (defun pr-keep-region-active ()
! (setq deactivate-mark nil)))
!
! ((eq ps-print-emacs-type 'xemacs) ; XEmacs
! (defvar current-menubar nil)
! (defvar current-mouse-event nil)
! (defvar zmacs-region-stays nil)
! (defalias 'pr-f-set-keymap-parents 'set-keymap-parents)
! (defalias 'pr-f-set-keymap-name 'set-keymap-name)
! (defun pr-f-read-string (prompt initial history default)
! (let ((str (read-string prompt initial)))
! (if (and str (not (string= str "")))
! str
! default)))
! (defun pr-keep-region-active ()
! (setq zmacs-region-stays t)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- 1003,1114 ----
(error "`printing' requires `ps-print' package version 6.6.4 or later"))
! (defconst pr-cygwin-system
! (and ps-windows-system (getenv "OSTYPE")
! (string-match "cygwin" (getenv "OSTYPE"))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; To avoid compilation gripes
! (or (fboundp 'easy-menu-intern) ; hacked from easymenu.el
! (defsubst easy-menu-intern (s)
! (if (stringp s) (intern s) s)))
!
!
! (or (fboundp 'subst-char-in-string) ; hacked from subr.el
! (defun subst-char-in-string (fromchar tochar string &optional inplace)
! "Replace FROMCHAR with TOCHAR in STRING each time it occurs.
Unless optional argument INPLACE is non-nil, return a new string."
! (let ((i (length string))
! (newstr (if inplace string (copy-sequence string))))
! (while (> (setq i (1- i)) 0)
! (if (eq (aref newstr i) fromchar)
! (aset newstr i tochar)))
! newstr)))
!
!
! (or (fboundp 'make-temp-file) ; hacked from subr.el
! (defun make-temp-file (prefix &optional dir-flag suffix)
! "Create a temporary file.
! The returned file name (created by appending some random characters at the end
! of PREFIX, and expanding against `temporary-file-directory' if necessary),
! is guaranteed to point to a newly created empty file.
! You can then use `write-region' to write new data into the file.
!
! If DIR-FLAG is non-nil, create a new empty directory instead of a file.
!
! If SUFFIX is non-nil, add that at the end of the file name."
! (let ((umask (default-file-modes))
! file)
! (unwind-protect
! (progn
! ;; Create temp files with strict access rights. It's easy to
! ;; loosen them later, whereas it's impossible to close the
! ;; time-window of loose permissions otherwise.
! (set-default-file-modes ?\700)
! (while (condition-case ()
! (progn
! (setq file
! (make-temp-name
! (expand-file-name prefix
temporary-file-directory)))
! (if suffix
! (setq file (concat file suffix)))
! (if dir-flag
! (make-directory file)
! (write-region "" nil file nil 'silent nil 'excl))
! nil)
! (file-already-exists t))
! ;; the file was somehow created by someone else between
! ;; `make-temp-name' and `write-region', let's try again.
! nil)
! file)
! ;; Reset the umask.
! (set-default-file-modes umask)))))
! ;; GNU Emacs
! (defalias 'pr-e-frame-char-height 'frame-char-height)
! (defalias 'pr-e-frame-char-width 'frame-char-width)
! (defalias 'pr-e-mouse-pixel-position 'mouse-pixel-position)
! ;; XEmacs
! (defalias 'pr-x-add-submenu 'add-submenu)
! (defalias 'pr-x-event-function 'event-function)
! (defalias 'pr-x-event-object 'event-object)
! (defalias 'pr-x-find-menu-item 'find-menu-item)
! (defalias 'pr-x-font-height 'font-height)
! (defalias 'pr-x-font-width 'font-width)
! (defalias 'pr-x-get-popup-menu-response 'get-popup-menu-response)
! (defalias 'pr-x-make-event 'make-event)
! (defalias 'pr-x-misc-user-event-p 'misc-user-event-p)
! (defalias 'pr-x-relabel-menu-item 'relabel-menu-item)
! (defalias 'pr-x-event-x-pixel 'event-x-pixel)
! (defalias 'pr-x-event-y-pixel 'event-y-pixel)
!
! (cond
! ((featurep 'xemacs) ; XEmacs
! (defvar current-menubar nil)
! (defvar current-mouse-event nil)
! (defvar zmacs-region-stays nil)
! (defalias 'pr-f-set-keymap-parents 'set-keymap-parents)
! (defalias 'pr-f-set-keymap-name 'set-keymap-name)
! (defun pr-f-read-string (prompt initial history default)
! (let ((str (read-string prompt initial)))
! (if (and str (not (string= str "")))
! str
! default)))
! (defun pr-keep-region-active ()
! (setq zmacs-region-stays t)))
!
! (t ; GNU Emacs
! (defvar deactivate-mark nil)
! (defalias 'pr-f-set-keymap-parents 'set-keymap-parent)
! (defalias 'pr-f-set-keymap-name 'ignore)
! (defalias 'pr-f-read-string 'read-string)
! (defun pr-keep-region-active ()
! (setq deactivate-mark nil))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
***************
*** 1602,1613 ****
:group 'printing)
! (defcustom pr-ps-temp-file "prspool.ps"
! "*Specify PostScript temporary file name.
See also `pr-temp-dir' and `pr-file-modes'."
:type '(file :tag "PostScript Temporary File Name")
! :version "20"
:group 'printing)
--- 1645,1656 ----
:group 'printing)
! (defcustom pr-ps-temp-file "prspool-"
! "*Specify PostScript temporary file name prefix.
See also `pr-temp-dir' and `pr-file-modes'."
:type '(file :tag "PostScript Temporary File Name")
! :version "21"
:group 'printing)
***************
*** 2203,2212 ****
(defcustom pr-menu-char-height
! (cond ((eq ps-print-emacs-type 'emacs) ; GNU Emacs
! (pr-e-frame-char-height))
! ((eq ps-print-emacs-type 'xemacs) ; XEmacs
! (pr-x-font-height (face-font 'default))))
"*Specify menu char height in pixels.
This variable is used to guess which vertical position should be locked the
--- 2246,2255 ----
(defcustom pr-menu-char-height
! (cond ((featurep 'xemacs) ; XEmacs
! (pr-x-font-height (face-font 'default)))
! (t ; GNU Emacs
! (pr-e-frame-char-height)))
"*Specify menu char height in pixels.
This variable is used to guess which vertical position should be locked the
***************
*** 2219,2228 ****
(defcustom pr-menu-char-width
! (cond ((eq ps-print-emacs-type 'emacs) ; GNU Emacs
! (pr-e-frame-char-width))
! ((eq ps-print-emacs-type 'xemacs) ; XEmacs
! (pr-x-font-width (face-font 'default))))
"*Specify menu char width in pixels.
This variable is used to guess which horizontal position should be locked the
--- 2262,2271 ----
(defcustom pr-menu-char-width
! (cond ((featurep 'xemacs) ; XEmacs
! (pr-x-font-width (face-font 'default)))
! (t ; GNU Emacs
! (pr-e-frame-char-width)))
"*Specify menu char width in pixels.
This variable is used to guess which horizontal position should be locked the
***************
*** 2510,2529 ****
;; Macros
- (defvar pr-interactive-p nil
- "Save the `interactive-p' result value.
-
- It's used by `pr-save-interactive' (which see).")
-
-
- (defmacro pr-save-interactive (&rest body)
- "Save the `interactive-p' result value using `let'.
-
- It uses `pr-interactive-p' var (which see)."
- `(let ((pr-interactive-p (or pr-interactive-p (interactive-p))))
- ,@body))
-
-
(defmacro pr-save-file-modes (&rest body)
"Set temporally file modes to `pr-file-modes'."
`(let ((pr--default-file-modes (default-file-modes))) ; save default
--- 2553,2558 ----
***************
*** 2561,2875 ****
(and pr-print-using-ghostscript (not pr-spool-p)))
! (eval-and-compile
! (defun pr-get-symbol (name)
! (easy-menu-intern name))
! (cond
! ((eq ps-print-emacs-type 'emacs) ; GNU Emacs
! (defun pr-region-active-p ()
! (and pr-auto-region transient-mark-mode mark-active)))
!
! ((eq ps-print-emacs-type 'xemacs) ; XEmacs
! (defvar zmacs-region-stays nil) ; to avoid compilation gripes
! (defun pr-region-active-p ()
! (and pr-auto-region (not zmacs-region-stays) (ps-mark-active-p)))))
!
!
! (defconst pr-menu-spec
! ;; Menu mapping:
! ;; unfortunately XEmacs doesn't support :active for submenus,
! ;; only for items.
! ;; So, it uses :included instead of :active.
! ;; Also, XEmacs doesn't support :help tag.
! (let ((pr-:active (if (eq ps-print-emacs-type 'emacs)
! :active ; GNU Emacs
! :included)) ; XEmacs
! (pr-:help (if (eq ps-print-emacs-type 'emacs)
! #'(lambda (text) (list :help text)) ; GNU Emacs
! 'ignore))) ; XEmacs
! `(
! ["Printing Interface" pr-interface
,@(funcall
! pr-:help "Use buffer interface instead of menu interface")]
"--"
! ("PostScript Preview" :included (pr-visible-p 'postscript)
! ,@(funcall
! pr-:help "Preview PostScript instead of sending to printer")
! ("Directory" ,pr-:active (not pr-spool-p)
! ["1-up" (pr-ps-directory-preview 1 nil nil t) t]
! ["2-up" (pr-ps-directory-preview 2 nil nil t) t]
! ["4-up" (pr-ps-directory-preview 4 nil nil t) t]
! ["Other..." (pr-ps-directory-preview nil nil nil t)
! :keys "\\[pr-ps-buffer-preview]"])
! ("Buffer" ,pr-:active (not pr-spool-p)
! ["1-up" (pr-ps-buffer-preview 1 t) t]
! ["2-up" (pr-ps-buffer-preview 2 t) t]
! ["4-up" (pr-ps-buffer-preview 4 t) t]
! ["Other..." (pr-ps-buffer-preview nil t)
! :keys "\\[pr-ps-buffer-preview]"])
! ("Region" ,pr-:active (and (not pr-spool-p) (ps-mark-active-p))
! ["1-up" (pr-ps-region-preview 1 t) t]
! ["2-up" (pr-ps-region-preview 2 t) t]
! ["4-up" (pr-ps-region-preview 4 t) t]
! ["Other..." (pr-ps-region-preview nil t)
! :keys "\\[pr-ps-region-preview]"])
! ("Mode" ,pr-:active (and (not pr-spool-p) (pr-mode-alist-p))
! ["1-up" (pr-ps-mode-preview 1 t) t]
! ["2-up" (pr-ps-mode-preview 2 t) t]
! ["4-up" (pr-ps-mode-preview 4 t) t]
! ["Other..." (pr-ps-mode-preview nil t)
! :keys "\\[pr-ps-mode-preview]"])
! ("File"
! ["No Preprocessing..." (call-interactively 'pr-ps-file-preview)
! :keys "\\[pr-ps-file-preview]"
! ,@(funcall
! pr-:help "Preview PostScript file")]
! "--"
! ["PostScript Utility" pr-update-menus :active pr-ps-utility-alist
! ,@(funcall
! pr-:help "Select PostScript utility")]
! "--"
! ["1-up..." (pr-ps-file-up-preview 1 t t) pr-ps-utility-alist]
! ["2-up..." (pr-ps-file-up-preview 2 t t) pr-ps-utility-alist]
! ["4-up..." (pr-ps-file-up-preview 4 t t) pr-ps-utility-alist]
! ["Other..." (pr-ps-file-up-preview nil t t)
! :keys "\\[pr-ps-file-up-preview]" :active pr-ps-utility-alist]
! "--"
! ["Landscape" pr-toggle-file-landscape
! :style toggle :selected pr-file-landscape
! ,@(funcall
! pr-:help "Toggle landscape for PostScript file")
! :active pr-ps-utility-alist]
! ["Duplex" pr-toggle-file-duplex
! :style toggle :selected pr-file-duplex
! ,@(funcall
! pr-:help "Toggle duplex for PostScript file")
! :active pr-ps-utility-alist]
! ["Tumble" pr-toggle-file-tumble
! :style toggle :selected pr-file-tumble
! ,@(funcall
! pr-:help "Toggle tumble for PostScript file")
! :active (and pr-file-duplex pr-ps-utility-alist)])
! ["Despool..." (call-interactively 'pr-despool-preview)
! :active pr-spool-p :keys "\\[pr-despool-preview]"
! ,@(funcall
! pr-:help "Despool PostScript buffer to printer or file (C-u)")])
! ("PostScript Print" :included (pr-visible-p 'postscript)
,@(funcall
! pr-:help "Send PostScript to printer or file (C-u)")
! ("Directory"
! ["1-up" (pr-ps-directory-ps-print 1 nil nil t) t]
! ["2-up" (pr-ps-directory-ps-print 2 nil nil t) t]
! ["4-up" (pr-ps-directory-ps-print 4 nil nil t) t]
! ["Other..." (pr-ps-directory-ps-print nil nil nil t)
! :keys "\\[pr-ps-buffer-ps-print]"])
! ("Buffer"
! ["1-up" (pr-ps-buffer-ps-print 1 t) t]
! ["2-up" (pr-ps-buffer-ps-print 2 t) t]
! ["4-up" (pr-ps-buffer-ps-print 4 t) t]
! ["Other..." (pr-ps-buffer-ps-print nil t)
! :keys "\\[pr-ps-buffer-ps-print]"])
! ("Region" ,pr-:active (ps-mark-active-p)
! ["1-up" (pr-ps-region-ps-print 1 t) t]
! ["2-up" (pr-ps-region-ps-print 2 t) t]
! ["4-up" (pr-ps-region-ps-print 4 t) t]
! ["Other..." (pr-ps-region-ps-print nil t)
! :keys "\\[pr-ps-region-ps-print]"])
! ("Mode" ,pr-:active (pr-mode-alist-p)
! ["1-up" (pr-ps-mode-ps-print 1 t) t]
! ["2-up" (pr-ps-mode-ps-print 2 t) t]
! ["4-up" (pr-ps-mode-ps-print 4 t) t]
! ["Other..." (pr-ps-mode-ps-print nil t)
! :keys "\\[pr-ps-mode-ps-print]"])
! ("File"
! ["No Preprocessing..." (call-interactively 'pr-ps-file-ps-print)
! :keys "\\[pr-ps-file-ps-print]"
! ,@(funcall
! pr-:help "Send PostScript file to printer")]
! "--"
! ["PostScript Utility" pr-update-menus :active pr-ps-utility-alist
! ,@(funcall
! pr-:help "Select PostScript utility")]
! "--"
! ["1-up..." (pr-ps-file-up-ps-print 1 t t) pr-ps-utility-alist]
! ["2-up..." (pr-ps-file-up-ps-print 2 t t) pr-ps-utility-alist]
! ["4-up..." (pr-ps-file-up-ps-print 4 t t) pr-ps-utility-alist]
! ["Other..." (pr-ps-file-up-ps-print nil t t)
! :keys "\\[pr-ps-file-up-ps-print]" :active pr-ps-utility-alist]
! "--"
! ["Landscape" pr-toggle-file-landscape
! :style toggle :selected pr-file-landscape
! ,@(funcall
! pr-:help "Toggle landscape for PostScript file")
! :active pr-ps-utility-alist]
! ["Duplex" pr-toggle-file-duplex
! :style toggle :selected pr-file-duplex
! ,@(funcall
! pr-:help "Toggle duplex for PostScript file")
! :active pr-ps-utility-alist]
! ["Tumble" pr-toggle-file-tumble
! :style toggle :selected pr-file-tumble
! ,@(funcall
! pr-:help "Toggle tumble for PostScript file")
! :active (and pr-file-duplex pr-ps-utility-alist)])
! ["Despool..." (call-interactively 'pr-despool-ps-print)
! :active pr-spool-p :keys "\\[pr-despool-ps-print]"
! ,@(funcall
! pr-:help "Despool PostScript buffer to printer or file (C-u)")])
! ["PostScript Printers" pr-update-menus
! :active pr-ps-printer-alist :included (pr-visible-p 'postscript)
! ,@(funcall
! pr-:help "Select PostScript printer")]
"--"
! ("Printify" :included (pr-visible-p 'text)
,@(funcall
! pr-:help
! "Replace non-printing chars with printable representations.")
! ["Directory" pr-printify-directory t]
! ["Buffer" pr-printify-buffer t]
! ["Region" pr-printify-region (ps-mark-active-p)])
! ("Print" :included (pr-visible-p 'text)
,@(funcall
! pr-:help "Send text to printer")
! ["Directory" pr-txt-directory t]
! ["Buffer" pr-txt-buffer t]
! ["Region" pr-txt-region (ps-mark-active-p)]
! ["Mode" pr-txt-mode (pr-mode-alist-p)])
! ["Text Printers" pr-update-menus
! :active pr-txt-printer-alist :included (pr-visible-p 'text)
,@(funcall
! pr-:help "Select text printer")]
"--"
! ["Landscape" pr-toggle-landscape
! :style toggle :selected ps-landscape-mode
! :included (pr-visible-p 'postscript-options)]
! ["Print Header" pr-toggle-header
! :style toggle :selected ps-print-header
! :included (pr-visible-p 'postscript-options)]
! ["Print Header Frame" pr-toggle-header-frame
! :style toggle :selected ps-print-header-frame :active ps-print-header
! :included (pr-visible-p 'postscript-options)]
! ["Line Number" pr-toggle-line
! :style toggle :selected ps-line-number
! :included (pr-visible-p 'postscript-options)]
! ["Zebra Stripes" pr-toggle-zebra
! :style toggle :selected ps-zebra-stripes
! :included (pr-visible-p 'postscript-options)]
! ["Duplex" pr-toggle-duplex
! :style toggle :selected ps-spool-duplex
! :included (pr-visible-p 'postscript-options)]
! ["Tumble" pr-toggle-tumble
! :style toggle :selected ps-spool-tumble :active ps-spool-duplex
! :included (pr-visible-p 'postscript-options)]
! ["Upside-Down" pr-toggle-upside-down
! :style toggle :selected ps-print-upside-down
! :included (pr-visible-p 'postscript-options)]
! ("Print All Pages" :included (pr-visible-p 'postscript-options)
,@(funcall
! pr-:help "Select odd/even pages/sheets to print")
! ["All Pages" (pr-even-or-odd-pages nil)
! :style radio :selected (eq ps-even-or-odd-pages nil)]
! ["Even Pages" (pr-even-or-odd-pages 'even-page)
! :style radio :selected (eq ps-even-or-odd-pages 'even-page)]
! ["Odd Pages" (pr-even-or-odd-pages 'odd-page)
! :style radio :selected (eq ps-even-or-odd-pages 'odd-page)]
! ["Even Sheets" (pr-even-or-odd-pages 'even-sheet)
! :style radio :selected (eq ps-even-or-odd-pages 'even-sheet)]
! ["Odd Sheets" (pr-even-or-odd-pages 'odd-sheet)
! :style radio :selected (eq ps-even-or-odd-pages 'odd-sheet)])
"--"
! ["Spool Buffer" pr-toggle-spool
! :style toggle :selected pr-spool-p
! :included (pr-visible-p 'postscript-process)
,@(funcall
! pr-:help "Toggle PostScript spooling")]
! ["Print with faces" pr-toggle-faces
! :style toggle :selected pr-faces-p
! :included (pr-visible-p 'postscript-process)
,@(funcall
! pr-:help "Toggle PostScript printing with faces")]
! ["Print via Ghostscript" pr-toggle-ghostscript
! :style toggle :selected pr-print-using-ghostscript
! :included (pr-visible-p 'postscript-process)
,@(funcall
! pr-:help "Toggle PostScript generation using ghostscript")]
! "--"
! ["Auto Region" pr-toggle-region
! :style toggle :selected pr-auto-region
! :included (pr-visible-p 'printing)]
! ["Auto Mode" pr-toggle-mode
! :style toggle :selected pr-auto-mode
! :included (pr-visible-p 'printing)]
! ["Menu Lock" pr-toggle-lock
! :style toggle :selected pr-menu-lock
! :included (pr-visible-p 'printing)]
! "--"
! ("Customize" :included (pr-visible-p 'help)
! ["printing" pr-customize t]
! ["ps-print" ps-print-customize t]
! ["lpr" lpr-customize t])
! ("Show Settings" :included (pr-visible-p 'help)
! ["printing" pr-show-pr-setup t]
! ["ps-print" pr-show-ps-setup t]
! ["lpr" pr-show-lpr-setup t])
! ["Help" pr-help :active t :included (pr-visible-p 'help)]
! )))
(cond
! ((eq ps-print-emacs-type 'emacs) ; GNU Emacs
! ;; Menu binding
! (require 'easymenu)
! ;; Replace existing "print" item by "Printing" item.
! ;; If you're changing this file, you'll load it a second,
! ;; third... time, but "print" item exists only in the first load.
! (defvar pr-menu-print-item "print")
! (cond
! ;; Emacs 20
! ((string< emacs-version "21.")
! (easy-menu-change '("tools") "Printing" pr-menu-spec pr-menu-print-item)
! (when pr-menu-print-item
! (easy-menu-remove-item nil '("tools") pr-menu-print-item)
! (setq pr-menu-print-item nil
! pr-menu-bar (vector 'menu-bar 'tools
! (pr-get-symbol "Printing")))))
! ;; Emacs 21
! (pr-menu-print-item
! (easy-menu-change '("file") "Print" pr-menu-spec "print-buffer")
! (let ((items '("print-buffer" "print-region"
! "ps-print-buffer-faces" "ps-print-region-faces"
! "ps-print-buffer" "ps-print-region")))
! (while items
! (easy-menu-remove-item nil '("file") (car items))
! (setq items (cdr items)))
! (setq pr-menu-print-item nil
! pr-menu-bar (vector 'menu-bar 'file
! (pr-get-symbol "Print")))))
! (t
! (easy-menu-change '("file") "Print" pr-menu-spec))))
!
!
! ((eq ps-print-emacs-type 'xemacs) ; XEmacs
! ;; Menu binding
! (pr-xemacs-global-menubar
! (pr-x-add-submenu nil (cons "Printing" pr-menu-spec) "Apps"))))
! ;; Key binding
! (let ((pr-print-key (if (eq ps-print-emacs-type 'emacs)
! 'print ; GNU Emacs
! 'f22))) ; XEmacs
! (global-set-key `[,pr-print-key] 'pr-ps-fast-fire)
! ;; Well, M-print and S-print are used because in my keyboard S-print works
! ;; and M-print doesn't. But M-print can work in other keyboard.
! (global-set-key `[(meta ,pr-print-key)]
'pr-ps-mode-using-ghostscript)
! (global-set-key `[(shift ,pr-print-key)]
'pr-ps-mode-using-ghostscript)
! ;; Well, C-print and C-M-print are used because in my keyboard C-M-print
works
! ;; and C-print doesn't. But C-print can work in other keyboard.
! (global-set-key `[(control ,pr-print-key)] 'pr-txt-fast-fire)
! (global-set-key `[(control meta ,pr-print-key)] 'pr-txt-fast-fire)
! ))
;;; You can also use something like:
--- 2590,2902 ----
(and pr-print-using-ghostscript (not pr-spool-p)))
! (defun pr-get-symbol (name)
! (easy-menu-intern name))
! (cond
! ((featurep 'xemacs) ; XEmacs
! (defvar zmacs-region-stays nil) ; to avoid compilation gripes
! (defun pr-region-active-p ()
! (and pr-auto-region (not zmacs-region-stays) (ps-mark-active-p))))
!
! (t ; GNU Emacs
! (defun pr-region-active-p ()
! (and pr-auto-region transient-mark-mode mark-active))))
!
!
! (defconst pr-menu-spec
! ;; Menu mapping:
! ;; unfortunately XEmacs doesn't support :active for submenus,
! ;; only for items.
! ;; So, it uses :included instead of :active.
! ;; Also, XEmacs doesn't support :help tag.
! (let ((pr-:active (if (featurep 'xemacs)
! :included ; XEmacs
! :active)) ; GNU Emacs
! (pr-:help (if (featurep 'xemacs)
! 'ignore ; XEmacs
! #'(lambda (text) (list :help text))))) ; GNU Emacs
! `(
! ["Printing Interface" pr-interface
! ,@(funcall
! pr-:help "Use buffer interface instead of menu interface")]
! "--"
! ("PostScript Preview" :included (pr-visible-p 'postscript)
! ,@(funcall
! pr-:help "Preview PostScript instead of sending to printer")
! ("Directory" ,pr-:active (not pr-spool-p)
! ["1-up" (pr-ps-directory-preview 1 nil nil t) t]
! ["2-up" (pr-ps-directory-preview 2 nil nil t) t]
! ["4-up" (pr-ps-directory-preview 4 nil nil t) t]
! ["Other..." (pr-ps-directory-preview nil nil nil t)
! :keys "\\[pr-ps-buffer-preview]"])
! ("Buffer" ,pr-:active (not pr-spool-p)
! ["1-up" (pr-ps-buffer-preview 1 t) t]
! ["2-up" (pr-ps-buffer-preview 2 t) t]
! ["4-up" (pr-ps-buffer-preview 4 t) t]
! ["Other..." (pr-ps-buffer-preview nil t)
! :keys "\\[pr-ps-buffer-preview]"])
! ("Region" ,pr-:active (and (not pr-spool-p) (ps-mark-active-p))
! ["1-up" (pr-ps-region-preview 1 t) t]
! ["2-up" (pr-ps-region-preview 2 t) t]
! ["4-up" (pr-ps-region-preview 4 t) t]
! ["Other..." (pr-ps-region-preview nil t)
! :keys "\\[pr-ps-region-preview]"])
! ("Mode" ,pr-:active (and (not pr-spool-p) (pr-mode-alist-p))
! ["1-up" (pr-ps-mode-preview 1 t) t]
! ["2-up" (pr-ps-mode-preview 2 t) t]
! ["4-up" (pr-ps-mode-preview 4 t) t]
! ["Other..." (pr-ps-mode-preview nil t)
! :keys "\\[pr-ps-mode-preview]"])
! ("File"
! ["No Preprocessing..." (call-interactively 'pr-ps-file-preview)
! :keys "\\[pr-ps-file-preview]"
,@(funcall
! pr-:help "Preview PostScript file")]
"--"
! ["PostScript Utility" pr-update-menus :active pr-ps-utility-alist
,@(funcall
! pr-:help "Select PostScript utility")]
! "--"
! ["1-up..." (pr-ps-file-up-preview 1 t t) pr-ps-utility-alist]
! ["2-up..." (pr-ps-file-up-preview 2 t t) pr-ps-utility-alist]
! ["4-up..." (pr-ps-file-up-preview 4 t t) pr-ps-utility-alist]
! ["Other..." (pr-ps-file-up-preview nil t t)
! :keys "\\[pr-ps-file-up-preview]" :active pr-ps-utility-alist]
"--"
! ["Landscape" pr-toggle-file-landscape-menu
! :style toggle :selected pr-file-landscape
! ,@(funcall
! pr-:help "Toggle landscape for PostScript file")
! :active pr-ps-utility-alist]
! ["Duplex" pr-toggle-file-duplex-menu
! :style toggle :selected pr-file-duplex
,@(funcall
! pr-:help "Toggle duplex for PostScript file")
! :active pr-ps-utility-alist]
! ["Tumble" pr-toggle-file-tumble-menu
! :style toggle :selected pr-file-tumble
,@(funcall
! pr-:help "Toggle tumble for PostScript file")
! :active (and pr-file-duplex pr-ps-utility-alist)])
! ["Despool..." (call-interactively 'pr-despool-preview)
! :active pr-spool-p :keys "\\[pr-despool-preview]"
! ,@(funcall
! pr-:help "Despool PostScript buffer to printer or file (C-u)")])
! ("PostScript Print" :included (pr-visible-p 'postscript)
! ,@(funcall
! pr-:help "Send PostScript to printer or file (C-u)")
! ("Directory"
! ["1-up" (pr-ps-directory-ps-print 1 nil nil t) t]
! ["2-up" (pr-ps-directory-ps-print 2 nil nil t) t]
! ["4-up" (pr-ps-directory-ps-print 4 nil nil t) t]
! ["Other..." (pr-ps-directory-ps-print nil nil nil t)
! :keys "\\[pr-ps-buffer-ps-print]"])
! ("Buffer"
! ["1-up" (pr-ps-buffer-ps-print 1 t) t]
! ["2-up" (pr-ps-buffer-ps-print 2 t) t]
! ["4-up" (pr-ps-buffer-ps-print 4 t) t]
! ["Other..." (pr-ps-buffer-ps-print nil t)
! :keys "\\[pr-ps-buffer-ps-print]"])
! ("Region" ,pr-:active (ps-mark-active-p)
! ["1-up" (pr-ps-region-ps-print 1 t) t]
! ["2-up" (pr-ps-region-ps-print 2 t) t]
! ["4-up" (pr-ps-region-ps-print 4 t) t]
! ["Other..." (pr-ps-region-ps-print nil t)
! :keys "\\[pr-ps-region-ps-print]"])
! ("Mode" ,pr-:active (pr-mode-alist-p)
! ["1-up" (pr-ps-mode-ps-print 1 t) t]
! ["2-up" (pr-ps-mode-ps-print 2 t) t]
! ["4-up" (pr-ps-mode-ps-print 4 t) t]
! ["Other..." (pr-ps-mode-ps-print nil t)
! :keys "\\[pr-ps-mode-ps-print]"])
! ("File"
! ["No Preprocessing..." (call-interactively 'pr-ps-file-ps-print)
! :keys "\\[pr-ps-file-ps-print]"
,@(funcall
! pr-:help "Send PostScript file to printer")]
"--"
! ["PostScript Utility" pr-update-menus :active pr-ps-utility-alist
,@(funcall
! pr-:help "Select PostScript utility")]
"--"
! ["1-up..." (pr-ps-file-up-ps-print 1 t t) pr-ps-utility-alist]
! ["2-up..." (pr-ps-file-up-ps-print 2 t t) pr-ps-utility-alist]
! ["4-up..." (pr-ps-file-up-ps-print 4 t t) pr-ps-utility-alist]
! ["Other..." (pr-ps-file-up-ps-print nil t t)
! :keys "\\[pr-ps-file-up-ps-print]" :active pr-ps-utility-alist]
! "--"
! ["Landscape" pr-toggle-file-landscape-menu
! :style toggle :selected pr-file-landscape
,@(funcall
! pr-:help "Toggle landscape for PostScript file")
! :active pr-ps-utility-alist]
! ["Duplex" pr-toggle-file-duplex-menu
! :style toggle :selected pr-file-duplex
,@(funcall
! pr-:help "Toggle duplex for PostScript file")
! :active pr-ps-utility-alist]
! ["Tumble" pr-toggle-file-tumble-menu
! :style toggle :selected pr-file-tumble
,@(funcall
! pr-:help "Toggle tumble for PostScript file")
! :active (and pr-file-duplex pr-ps-utility-alist)])
! ["Despool..." (call-interactively 'pr-despool-ps-print)
! :active pr-spool-p :keys "\\[pr-despool-ps-print]"
! ,@(funcall
! pr-:help "Despool PostScript buffer to printer or file (C-u)")])
! ["PostScript Printers" pr-update-menus
! :active pr-ps-printer-alist :included (pr-visible-p 'postscript)
! ,@(funcall
! pr-:help "Select PostScript printer")]
! "--"
! ("Printify" :included (pr-visible-p 'text)
! ,@(funcall
! pr-:help
! "Replace non-printing chars with printable representations.")
! ["Directory" pr-printify-directory t]
! ["Buffer" pr-printify-buffer t]
! ["Region" pr-printify-region (ps-mark-active-p)])
! ("Print" :included (pr-visible-p 'text)
! ,@(funcall
! pr-:help "Send text to printer")
! ["Directory" pr-txt-directory t]
! ["Buffer" pr-txt-buffer t]
! ["Region" pr-txt-region (ps-mark-active-p)]
! ["Mode" pr-txt-mode (pr-mode-alist-p)])
! ["Text Printers" pr-update-menus
! :active pr-txt-printer-alist :included (pr-visible-p 'text)
! ,@(funcall
! pr-:help "Select text printer")]
! "--"
! ["Landscape" pr-toggle-landscape-menu
! :style toggle :selected ps-landscape-mode
! :included (pr-visible-p 'postscript-options)]
! ["Print Header" pr-toggle-header-menu
! :style toggle :selected ps-print-header
! :included (pr-visible-p 'postscript-options)]
! ["Print Header Frame" pr-toggle-header-frame-menu
! :style toggle :selected ps-print-header-frame :active ps-print-header
! :included (pr-visible-p 'postscript-options)]
! ["Line Number" pr-toggle-line-menu
! :style toggle :selected ps-line-number
! :included (pr-visible-p 'postscript-options)]
! ["Zebra Stripes" pr-toggle-zebra-menu
! :style toggle :selected ps-zebra-stripes
! :included (pr-visible-p 'postscript-options)]
! ["Duplex" pr-toggle-duplex-menu
! :style toggle :selected ps-spool-duplex
! :included (pr-visible-p 'postscript-options)]
! ["Tumble" pr-toggle-tumble-menu
! :style toggle :selected ps-spool-tumble :active ps-spool-duplex
! :included (pr-visible-p 'postscript-options)]
! ["Upside-Down" pr-toggle-upside-down-menu
! :style toggle :selected ps-print-upside-down
! :included (pr-visible-p 'postscript-options)]
! ("Print All Pages" :included (pr-visible-p 'postscript-options)
! ,@(funcall
! pr-:help "Select odd/even pages/sheets to print")
! ["All Pages" (pr-even-or-odd-pages nil)
! :style radio :selected (eq ps-even-or-odd-pages nil)]
! ["Even Pages" (pr-even-or-odd-pages 'even-page)
! :style radio :selected (eq ps-even-or-odd-pages 'even-page)]
! ["Odd Pages" (pr-even-or-odd-pages 'odd-page)
! :style radio :selected (eq ps-even-or-odd-pages 'odd-page)]
! ["Even Sheets" (pr-even-or-odd-pages 'even-sheet)
! :style radio :selected (eq ps-even-or-odd-pages 'even-sheet)]
! ["Odd Sheets" (pr-even-or-odd-pages 'odd-sheet)
! :style radio :selected (eq ps-even-or-odd-pages 'odd-sheet)])
! "--"
! ["Spool Buffer" pr-toggle-spool-menu
! :style toggle :selected pr-spool-p
! :included (pr-visible-p 'postscript-process)
! ,@(funcall
! pr-:help "Toggle PostScript spooling")]
! ["Print with faces" pr-toggle-faces-menu
! :style toggle :selected pr-faces-p
! :included (pr-visible-p 'postscript-process)
! ,@(funcall
! pr-:help "Toggle PostScript printing with faces")]
! ["Print via Ghostscript" pr-toggle-ghostscript-menu
! :style toggle :selected pr-print-using-ghostscript
! :included (pr-visible-p 'postscript-process)
! ,@(funcall
! pr-:help "Toggle PostScript generation using ghostscript")]
! "--"
! ["Auto Region" pr-toggle-region-menu
! :style toggle :selected pr-auto-region
! :included (pr-visible-p 'printing)]
! ["Auto Mode" pr-toggle-mode-menu
! :style toggle :selected pr-auto-mode
! :included (pr-visible-p 'printing)]
! ["Menu Lock" pr-toggle-lock-menu
! :style toggle :selected pr-menu-lock
! :included (pr-visible-p 'printing)]
! "--"
! ("Customize" :included (pr-visible-p 'help)
! ["printing" pr-customize t]
! ["ps-print" ps-print-customize t]
! ["lpr" lpr-customize t])
! ("Show Settings" :included (pr-visible-p 'help)
! ["printing" pr-show-pr-setup t]
! ["ps-print" pr-show-ps-setup t]
! ["lpr" pr-show-lpr-setup t])
! ["Help" pr-help :active t :included (pr-visible-p 'help)]
! )))
!
!
! (cond
! ((featurep 'xemacs) ; XEmacs
! ;; Menu binding
! (pr-xemacs-global-menubar
! (pr-x-add-submenu nil (cons "Printing" pr-menu-spec) "Apps")))
+ (t ; GNU Emacs
+ ;; Menu binding
+ (require 'easymenu)
+ ;; Replace existing "print" item by "Printing" item.
+ ;; If you're changing this file, you'll load it a second,
+ ;; third... time, but "print" item exists only in the first load.
+ (defvar pr-menu-print-item "print")
(cond
! ;; Emacs 20
! ((string< emacs-version "21.")
! (easy-menu-change '("tools") "Printing" pr-menu-spec pr-menu-print-item)
! (when pr-menu-print-item
! (easy-menu-remove-item nil '("tools") pr-menu-print-item)
! (setq pr-menu-print-item nil
! pr-menu-bar (vector 'menu-bar 'tools
! (pr-get-symbol "Printing")))))
! ;; Emacs 21
! (pr-menu-print-item
! (easy-menu-change '("file") "Print" pr-menu-spec "print-buffer")
! (let ((items '("print-buffer" "print-region"
! "ps-print-buffer-faces" "ps-print-region-faces"
! "ps-print-buffer" "ps-print-region")))
! (while items
! (easy-menu-remove-item nil '("file") (car items))
! (setq items (cdr items)))
! (setq pr-menu-print-item nil
! pr-menu-bar (vector 'menu-bar 'file
! (pr-get-symbol "Print")))))
! (t
! (easy-menu-change '("file") "Print" pr-menu-spec)))))
! ;; Key binding
! (let ((pr-print-key (if (featurep 'xemacs)
! 'f22 ; XEmacs
! 'print))) ; GNU Emacs
! (global-set-key `[,pr-print-key] 'pr-ps-fast-fire)
! ;; Well, M-print and S-print are used because in my keyboard S-print works
! ;; and M-print doesn't. But M-print can work in other keyboard.
! (global-set-key `[(meta ,pr-print-key)]
'pr-ps-mode-using-ghostscript)
! (global-set-key `[(shift ,pr-print-key)]
'pr-ps-mode-using-ghostscript)
! ;; Well, C-print and C-M-print are used because in my keyboard C-M-print
works
! ;; and C-print doesn't. But C-print can work in other keyboard.
! (global-set-key `[(control ,pr-print-key)] 'pr-txt-fast-fire)
! (global-set-key `[(control meta ,pr-print-key)] 'pr-txt-fast-fire))
;;; You can also use something like:
***************
*** 3345,3354 ****
For more information, type \\[pr-interface-help]."
(interactive)
! (pr-save-interactive
! (save-excursion
! (set-buffer (or buffer (current-buffer)))
! (pr-create-interface))))
;;;###autoload
--- 3372,3380 ----
For more information, type \\[pr-interface-help]."
(interactive)
! (save-excursion
! (set-buffer (or buffer (current-buffer)))
! (pr-create-interface)))
;;;###autoload
***************
*** 3369,3381 ****
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-ps-dir-args (pr-prompt "PS preview dir")))
! (pr-save-interactive
! (pr-set-ps-dir-args 'n-up 'dir 'file-regexp 'filename
! (pr-prompt "PS preview dir"))
! (setq filename (pr-ps-file filename))
! (pr-ps-file-list n-up dir file-regexp filename)
! (or pr-spool-p
! (pr-ps-file-preview filename))))
;;;###autoload
--- 3395,3406 ----
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-ps-dir-args (pr-prompt "PS preview dir")))
! (pr-set-ps-dir-args 'n-up 'dir 'file-regexp 'filename
! (pr-prompt "PS preview dir"))
! (setq filename (pr-ps-file filename))
! (pr-ps-file-list n-up dir file-regexp filename)
! (or pr-spool-p
! (pr-ps-file-preview filename)))
;;;###autoload
***************
*** 3396,3408 ****
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-ps-dir-args (pr-prompt "PS print dir GS")))
! (pr-save-interactive
! (pr-set-ps-dir-args 'n-up 'dir 'file-regexp 'filename
! (pr-prompt "PS print dir GS"))
! (let ((file (pr-ps-file filename)))
! (pr-ps-file-list n-up dir file-regexp file)
! (pr-ps-file-using-ghostscript file)
! (or filename (pr-delete-file file)))))
;;;###autoload
--- 3421,3432 ----
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-ps-dir-args (pr-prompt "PS print dir GS")))
! (pr-set-ps-dir-args 'n-up 'dir 'file-regexp 'filename
! (pr-prompt "PS print dir GS"))
! (let ((file (pr-ps-file filename)))
! (pr-ps-file-list n-up dir file-regexp file)
! (pr-ps-file-using-ghostscript file)
! (or filename (pr-delete-file file))))
;;;###autoload
***************
*** 3423,3435 ****
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-ps-dir-args (pr-prompt "PS print dir")))
! (pr-save-interactive
! (pr-set-ps-dir-args 'n-up 'dir 'file-regexp 'filename
! (pr-prompt "PS print dir"))
! (let ((file (pr-ps-file filename)))
! (pr-ps-file-list n-up dir file-regexp file)
! (pr-ps-file-print file)
! (or filename (pr-delete-file file)))))
;;;###autoload
--- 3447,3458 ----
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-ps-dir-args (pr-prompt "PS print dir")))
! (pr-set-ps-dir-args 'n-up 'dir 'file-regexp 'filename
! (pr-prompt "PS print dir"))
! (let ((file (pr-ps-file filename)))
! (pr-ps-file-list n-up dir file-regexp file)
! (pr-ps-file-print file)
! (or filename (pr-delete-file file))))
;;;###autoload
***************
*** 3453,3464 ****
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-ps-dir-args
(pr-prompt (pr-prompt-gs "PS print dir"))))
! (pr-save-interactive
! (pr-set-ps-dir-args 'n-up 'dir 'file-regexp 'filename
! (pr-prompt (pr-prompt-gs "PS print dir")))
! (if (pr-using-ghostscript-p)
! (pr-ps-directory-using-ghostscript n-up dir file-regexp filename)
! (pr-ps-directory-print n-up dir file-regexp filename))))
;;;###autoload
--- 3476,3486 ----
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-ps-dir-args
(pr-prompt (pr-prompt-gs "PS print dir"))))
! (pr-set-ps-dir-args 'n-up 'dir 'file-regexp 'filename
! (pr-prompt (pr-prompt-gs "PS print dir")))
! (if (pr-using-ghostscript-p)
! (pr-ps-directory-using-ghostscript n-up dir file-regexp filename)
! (pr-ps-directory-print n-up dir file-regexp filename)))
;;;###autoload
***************
*** 3474,3484 ****
temporary file. If FILENAME is a string, save the PostScript image in a file
with that name. If FILENAME is t, prompts for a file name."
(interactive (pr-interactive-n-up-file (pr-prompt "PS preview")))
! (pr-save-interactive
! (if (pr-auto-mode-p)
! (pr-ps-mode-preview n-up filename)
! (pr-ps-preview (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS preview")))))
;;;###autoload
--- 3496,3505 ----
temporary file. If FILENAME is a string, save the PostScript image in a file
with that name. If FILENAME is t, prompts for a file name."
(interactive (pr-interactive-n-up-file (pr-prompt "PS preview")))
! (if (pr-auto-mode-p)
! (pr-ps-mode-preview n-up filename)
! (pr-ps-preview (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS preview"))))
;;;###autoload
***************
*** 3494,3504 ****
printer. If FILENAME is a string, save the PostScript image in a file with
that name. If FILENAME is t, prompts for a file name."
(interactive (pr-interactive-n-up-file (pr-prompt "PS print GS")))
! (pr-save-interactive
! (if (pr-auto-mode-p)
! (pr-ps-mode-using-ghostscript n-up filename)
! (pr-ps-using-ghostscript (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS print GS")))))
;;;###autoload
--- 3515,3524 ----
printer. If FILENAME is a string, save the PostScript image in a file with
that name. If FILENAME is t, prompts for a file name."
(interactive (pr-interactive-n-up-file (pr-prompt "PS print GS")))
! (if (pr-auto-mode-p)
! (pr-ps-mode-using-ghostscript n-up filename)
! (pr-ps-using-ghostscript (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS print GS"))))
;;;###autoload
***************
*** 3514,3524 ****
printer. If FILENAME is a string, save the PostScript image in a file with
that name. If FILENAME is t, prompts for a file name."
(interactive (pr-interactive-n-up-file (pr-prompt "PS print")))
! (pr-save-interactive
! (if (pr-auto-mode-p)
! (pr-ps-mode-print n-up filename)
! (pr-ps-print (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS print")))))
;;;###autoload
--- 3534,3543 ----
printer. If FILENAME is a string, save the PostScript image in a file with
that name. If FILENAME is t, prompts for a file name."
(interactive (pr-interactive-n-up-file (pr-prompt "PS print")))
! (if (pr-auto-mode-p)
! (pr-ps-mode-print n-up filename)
! (pr-ps-print (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS print"))))
;;;###autoload
***************
*** 3537,3551 ****
that name. If FILENAME is t, prompts for a file name."
(interactive (pr-interactive-n-up-file
(pr-prompt (pr-prompt-gs "PS print"))))
! (pr-save-interactive
! (cond ((pr-auto-mode-p)
! (pr-ps-mode-ps-print n-up filename))
! ((pr-using-ghostscript-p)
! (pr-ps-using-ghostscript (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS print GS")))
! (t
! (pr-ps-print (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS print"))))))
;;;###autoload
--- 3556,3569 ----
that name. If FILENAME is t, prompts for a file name."
(interactive (pr-interactive-n-up-file
(pr-prompt (pr-prompt-gs "PS print"))))
! (cond ((pr-auto-mode-p)
! (pr-ps-mode-ps-print n-up filename))
! ((pr-using-ghostscript-p)
! (pr-ps-using-ghostscript (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS print GS")))
! (t
! (pr-ps-print (pr-region-active-symbol) n-up filename
! (pr-region-active-string "PS print")))))
;;;###autoload
***************
*** 3554,3564 ****
See also `pr-ps-buffer-preview'."
(interactive (pr-interactive-n-up-file (pr-prompt-region "PS preview")))
! (pr-save-interactive
! (if (pr-auto-mode-p)
! (let ((pr-auto-region t))
! (pr-ps-mode-preview n-up filename))
! (pr-ps-preview 'region n-up filename "PS preview region"))))
;;;###autoload
--- 3572,3581 ----
See also `pr-ps-buffer-preview'."
(interactive (pr-interactive-n-up-file (pr-prompt-region "PS preview")))
! (if (pr-auto-mode-p)
! (let ((pr-auto-region t))
! (pr-ps-mode-preview n-up filename))
! (pr-ps-preview 'region n-up filename "PS preview region")))
;;;###autoload
***************
*** 3567,3577 ****
See also `pr-ps-buffer-using-ghostscript'."
(interactive (pr-interactive-n-up-file (pr-prompt-region "PS print GS")))
! (pr-save-interactive
! (if (pr-auto-mode-p)
! (let ((pr-auto-region t))
! (pr-ps-mode-using-ghostscript n-up filename))
! (pr-ps-using-ghostscript 'region n-up filename "PS print GS region"))))
;;;###autoload
--- 3584,3593 ----
See also `pr-ps-buffer-using-ghostscript'."
(interactive (pr-interactive-n-up-file (pr-prompt-region "PS print GS")))
! (if (pr-auto-mode-p)
! (let ((pr-auto-region t))
! (pr-ps-mode-using-ghostscript n-up filename))
! (pr-ps-using-ghostscript 'region n-up filename "PS print GS region")))
;;;###autoload
***************
*** 3580,3590 ****
See also `pr-ps-buffer-print'."
(interactive (pr-interactive-n-up-file (pr-prompt-region "PS print")))
! (pr-save-interactive
! (if (pr-auto-mode-p)
! (let ((pr-auto-region t))
! (pr-ps-mode-print n-up filename))
! (pr-ps-print 'region n-up filename "PS print region"))))
;;;###autoload
--- 3596,3605 ----
See also `pr-ps-buffer-print'."
(interactive (pr-interactive-n-up-file (pr-prompt-region "PS print")))
! (if (pr-auto-mode-p)
! (let ((pr-auto-region t))
! (pr-ps-mode-print n-up filename))
! (pr-ps-print 'region n-up filename "PS print region")))
;;;###autoload
***************
*** 3594,3607 ****
See also `pr-ps-buffer-ps-print'."
(interactive (pr-interactive-n-up-file
(pr-prompt-region (pr-prompt-gs "PS print"))))
! (pr-save-interactive
! (cond ((pr-auto-mode-p)
! (let ((pr-auto-region t))
! (pr-ps-mode-ps-print n-up filename)))
! ((pr-using-ghostscript-p)
! (pr-ps-using-ghostscript 'region n-up filename "PS print GS region"))
! (t
! (pr-ps-print 'region n-up filename "PS print region")))))
;;;###autoload
--- 3609,3621 ----
See also `pr-ps-buffer-ps-print'."
(interactive (pr-interactive-n-up-file
(pr-prompt-region (pr-prompt-gs "PS print"))))
! (cond ((pr-auto-mode-p)
! (let ((pr-auto-region t))
! (pr-ps-mode-ps-print n-up filename)))
! ((pr-using-ghostscript-p)
! (pr-ps-using-ghostscript 'region n-up filename "PS print GS region"))
! (t
! (pr-ps-print 'region n-up filename "PS print region"))))
;;;###autoload
***************
*** 3610,3621 ****
See also `pr-ps-buffer-preview'."
(interactive (pr-interactive-n-up-file "PS preview mode"))
! (pr-save-interactive
! (pr-set-n-up-and-filename 'n-up 'filename "PS preview mode")
! (let ((file (pr-ps-file filename)))
! (and (pr-ps-mode n-up file)
! (not pr-spool-p)
! (pr-ps-file-preview file)))))
;;;###autoload
--- 3624,3634 ----
See also `pr-ps-buffer-preview'."
(interactive (pr-interactive-n-up-file "PS preview mode"))
! (pr-set-n-up-and-filename 'n-up 'filename "PS preview mode")
! (let ((file (pr-ps-file filename)))
! (and (pr-ps-mode n-up file)
! (not pr-spool-p)
! (pr-ps-file-preview file))))
;;;###autoload
***************
*** 3624,3636 ****
See also `pr-ps-buffer-using-ghostscript'."
(interactive (pr-interactive-n-up-file "PS print GS mode"))
! (pr-save-interactive
! (pr-set-n-up-and-filename 'n-up 'filename "PS print GS mode")
! (let ((file (pr-ps-file filename)))
! (when (and (pr-ps-mode n-up file)
! (not pr-spool-p))
! (pr-ps-file-using-ghostscript file)
! (or filename (pr-delete-file file))))))
;;;###autoload
--- 3637,3648 ----
See also `pr-ps-buffer-using-ghostscript'."
(interactive (pr-interactive-n-up-file "PS print GS mode"))
! (pr-set-n-up-and-filename 'n-up 'filename "PS print GS mode")
! (let ((file (pr-ps-file filename)))
! (when (and (pr-ps-mode n-up file)
! (not pr-spool-p))
! (pr-ps-file-using-ghostscript file)
! (or filename (pr-delete-file file)))))
;;;###autoload
***************
*** 3639,3647 ****
See also `pr-ps-buffer-print'."
(interactive (pr-interactive-n-up-file "PS print mode"))
! (pr-save-interactive
! (pr-set-n-up-and-filename 'n-up 'filename "PS print mode")
! (pr-ps-mode n-up filename)))
;;;###autoload
--- 3651,3658 ----
See also `pr-ps-buffer-print'."
(interactive (pr-interactive-n-up-file "PS print mode"))
! (pr-set-n-up-and-filename 'n-up 'filename "PS print mode")
! (pr-ps-mode n-up filename))
;;;###autoload
***************
*** 3650,3659 ****
See also `pr-ps-buffer-ps-print'."
(interactive (pr-interactive-n-up-file (pr-prompt-gs "PS print mode")))
! (pr-save-interactive
! (if (pr-using-ghostscript-p)
! (pr-ps-mode-using-ghostscript n-up filename)
! (pr-ps-mode-print n-up filename))))
;;;###autoload
--- 3661,3669 ----
See also `pr-ps-buffer-ps-print'."
(interactive (pr-interactive-n-up-file (pr-prompt-gs "PS print mode")))
! (if (pr-using-ghostscript-p)
! (pr-ps-mode-using-ghostscript n-up filename)
! (pr-ps-mode-print n-up filename)))
;;;###autoload
***************
*** 3670,3678 ****
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-dir-args "Printify dir"))
! (pr-save-interactive
! (pr-set-dir-args 'dir 'file-regexp "Printify dir")
! (pr-file-list dir file-regexp 'pr-printify-buffer)))
;;;###autoload
--- 3680,3687 ----
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-dir-args "Printify dir"))
! (pr-set-dir-args 'dir 'file-regexp "Printify dir")
! (pr-file-list dir file-regexp 'pr-printify-buffer))
;;;###autoload
***************
*** 3707,3715 ****
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-dir-args "Print dir"))
! (pr-save-interactive
! (pr-set-dir-args 'dir 'file-regexp "Print dir")
! (pr-file-list dir file-regexp 'pr-txt-buffer)))
;;;###autoload
--- 3716,3723 ----
See also documentation for `pr-list-directory'."
(interactive (pr-interactive-dir-args "Print dir"))
! (pr-set-dir-args 'dir 'file-regexp "Print dir")
! (pr-file-list dir file-regexp 'pr-txt-buffer))
;;;###autoload
***************
*** 3757,3767 ****
save the image in a temporary file. If FILENAME is a string, save the
PostScript image in a file with that name."
(interactive (list (ps-print-preprint current-prefix-arg)))
! (pr-save-interactive
! (let ((file (pr-ps-file filename)))
! (when (stringp file)
! (pr-despool-print file)
! (pr-ps-file-preview file)))))
;;;###autoload
--- 3765,3774 ----
save the image in a temporary file. If FILENAME is a string, save the
PostScript image in a file with that name."
(interactive (list (ps-print-preprint current-prefix-arg)))
! (let ((file (pr-ps-file filename)))
! (when (stringp file)
! (pr-despool-print file)
! (pr-ps-file-preview file))))
;;;###autoload
***************
*** 3776,3787 ****
send the image to the printer. If FILENAME is a string, save the PostScript
image in a file with that name."
(interactive (list (ps-print-preprint current-prefix-arg)))
! (pr-save-interactive
! (let ((file (pr-ps-file filename)))
! (when (stringp file)
! (pr-despool-print file)
! (pr-ps-file-using-ghostscript file)
! (or filename (pr-delete-file file))))))
;;;###autoload
--- 3783,3793 ----
send the image to the printer. If FILENAME is a string, save the PostScript
image in a file with that name."
(interactive (list (ps-print-preprint current-prefix-arg)))
! (let ((file (pr-ps-file filename)))
! (when (stringp file)
! (pr-despool-print file)
! (pr-ps-file-using-ghostscript file)
! (or filename (pr-delete-file file)))))
;;;###autoload
***************
*** 3796,3808 ****
send the image to the printer. If FILENAME is a string, save the PostScript
image in a file with that name."
(interactive (list (ps-print-preprint current-prefix-arg)))
! (pr-save-interactive
! (pr-save-file-modes
! (let ((ps-lpr-command (pr-command pr-ps-command))
! (ps-lpr-switches pr-ps-switches)
! (ps-printer-name-option pr-ps-printer-switch)
! (ps-printer-name pr-ps-printer))
! (ps-despool filename)))))
;;;###autoload
--- 3802,3813 ----
send the image to the printer. If FILENAME is a string, save the PostScript
image in a file with that name."
(interactive (list (ps-print-preprint current-prefix-arg)))
! (pr-save-file-modes
! (let ((ps-lpr-command (pr-command pr-ps-command))
! (ps-lpr-switches pr-ps-switches)
! (ps-printer-name-option pr-ps-printer-switch)
! (ps-printer-name pr-ps-printer))
! (ps-despool filename))))
;;;###autoload
***************
*** 3817,3826 ****
send the image to the printer. If FILENAME is a string, save the PostScript
image in a file with that name."
(interactive (list (ps-print-preprint current-prefix-arg)))
! (pr-save-interactive
! (if pr-print-using-ghostscript
! (pr-despool-using-ghostscript filename)
! (pr-despool-print filename))))
;;;###autoload
--- 3822,3830 ----
send the image to the printer. If FILENAME is a string, save the PostScript
image in a file with that name."
(interactive (list (ps-print-preprint current-prefix-arg)))
! (if pr-print-using-ghostscript
! (pr-despool-using-ghostscript filename)
! (pr-despool-print filename)))
;;;###autoload
***************
*** 3835,3845 ****
(defun pr-ps-file-up-preview (n-up ifilename &optional ofilename)
"Preview PostScript file FILENAME."
(interactive (pr-interactive-n-up-inout "PS preview"))
! (pr-save-interactive
! (let ((outfile (pr-ps-utility-args 'n-up 'ifilename 'ofilename
! "PS preview ")))
! (pr-ps-utility-process n-up ifilename outfile)
! (pr-ps-file-preview outfile))))
;;;###autoload
--- 3839,3848 ----
(defun pr-ps-file-up-preview (n-up ifilename &optional ofilename)
"Preview PostScript file FILENAME."
(interactive (pr-interactive-n-up-inout "PS preview"))
! (let ((outfile (pr-ps-utility-args 'n-up 'ifilename 'ofilename
! "PS preview ")))
! (pr-ps-utility-process n-up ifilename outfile)
! (pr-ps-file-preview outfile)))
;;;###autoload
***************
*** 3847,3867 ****
"Print PostScript file FILENAME using ghostscript."
(interactive (list (pr-ps-infile-preprint "Print preview ")))
(and (stringp filename) (file-exists-p filename)
! (pr-save-interactive
! (let* ((file (pr-expand-file-name filename))
! (tempfile (pr-dosify-file-name (make-temp-file file))))
! ;; gs use
! (pr-call-process pr-gs-command
! (format "-sDEVICE=%s" pr-gs-device)
! (format "-r%d" pr-gs-resolution)
! (pr-switches-string pr-gs-switches "pr-gs-switches")
! (format "-sOutputFile=\"%s\"" tempfile)
! file
! "-c quit")
! ;; printing
! (pr-ps-file-print tempfile)
! ;; deleting
! (pr-delete-file tempfile)))))
;;;###autoload
--- 3850,3869 ----
"Print PostScript file FILENAME using ghostscript."
(interactive (list (pr-ps-infile-preprint "Print preview ")))
(and (stringp filename) (file-exists-p filename)
! (let* ((file (pr-expand-file-name filename))
! (tempfile (pr-dosify-file-name (make-temp-file file))))
! ;; gs use
! (pr-call-process pr-gs-command
! (format "-sDEVICE=%s" pr-gs-device)
! (format "-r%d" pr-gs-resolution)
! (pr-switches-string pr-gs-switches "pr-gs-switches")
! (format "-sOutputFile=\"%s\"" tempfile)
! file
! "-c quit")
! ;; printing
! (pr-ps-file-print tempfile)
! ;; deleting
! (pr-delete-file tempfile))))
;;;###autoload
***************
*** 3924,3947 ****
(if pr-print-using-ghostscript
"PS print GS"
"PS print")))
! (pr-save-interactive
! (let ((outfile (pr-ps-utility-args 'n-up 'ifilename 'ofilename
! (if pr-print-using-ghostscript
! "PS print GS "
! "PS print "))))
! (pr-ps-utility-process n-up ifilename outfile)
! (unless ofilename
! (pr-ps-file-ps-print outfile)
! (pr-delete-file outfile)))))
;;;###autoload
(defun pr-toggle-file-duplex ()
"Toggle duplex for PostScript file."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-file-duplex "PS file duplex" nil 7 5 nil
! '("PostScript Print" "File"))))
;;;###autoload
--- 3926,3946 ----
(if pr-print-using-ghostscript
"PS print GS"
"PS print")))
! (let ((outfile (pr-ps-utility-args 'n-up 'ifilename 'ofilename
! (if pr-print-using-ghostscript
! "PS print GS "
! "PS print "))))
! (pr-ps-utility-process n-up ifilename outfile)
! (unless ofilename
! (pr-ps-file-ps-print outfile)
! (pr-delete-file outfile))))
;;;###autoload
(defun pr-toggle-file-duplex ()
"Toggle duplex for PostScript file."
(interactive)
! (pr-toggle-file-duplex-menu t))
;;;###autoload
***************
*** 3953,4006 ****
If tumble is on, produces a printing suitable for binding at the top or
bottom."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-file-tumble "PS file tumble" nil 8 5 nil
! '("PostScript Print" "File"))))
;;;###autoload
(defun pr-toggle-file-landscape ()
"Toggle landscape for PostScript file."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-file-landscape "PS file landscape" nil 6 5 nil
! '("PostScript Print" "File"))))
;;;###autoload
(defun pr-toggle-ghostscript ()
"Toggle printing using ghostscript."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-print-using-ghostscript "Printing using ghostscript"
! 'postscript-process 2 12 'toggle)))
;;;###autoload
(defun pr-toggle-faces ()
"Toggle printing with faces."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-faces-p "Printing with faces"
! 'postscript-process 1 12 'toggle)))
;;;###autoload
(defun pr-toggle-spool ()
"Toggle spooling."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-spool-p "Spooling printing"
! 'postscript-process 0 12 'toggle)))
;;;###autoload
(defun pr-toggle-duplex ()
"Toggle duplex."
(interactive)
! (pr-save-interactive
! (pr-toggle 'ps-spool-duplex "Printing duplex"
! 'postscript-options 5 12 'toggle)))
;;;###autoload
--- 3952,3993 ----
If tumble is on, produces a printing suitable for binding at the top or
bottom."
(interactive)
! (pr-toggle-file-tumble-menu t))
;;;###autoload
(defun pr-toggle-file-landscape ()
"Toggle landscape for PostScript file."
(interactive)
! (pr-toggle-file-landscape-menu t))
;;;###autoload
(defun pr-toggle-ghostscript ()
"Toggle printing using ghostscript."
(interactive)
! (pr-toggle-ghostscript-menu t))
;;;###autoload
(defun pr-toggle-faces ()
"Toggle printing with faces."
(interactive)
! (pr-toggle-faces-menu t))
;;;###autoload
(defun pr-toggle-spool ()
"Toggle spooling."
(interactive)
! (pr-toggle-spool-menu t))
;;;###autoload
(defun pr-toggle-duplex ()
"Toggle duplex."
(interactive)
! (pr-toggle-duplex-menu t))
;;;###autoload
***************
*** 4012,4101 ****
If tumble is on, produces a printing suitable for binding at the top or
bottom."
(interactive)
! (pr-save-interactive
! (pr-toggle 'ps-spool-tumble "Tumble"
! 'postscript-options 6 12 'toggle)))
;;;###autoload
(defun pr-toggle-landscape ()
"Toggle landscape."
(interactive)
! (pr-save-interactive
! (pr-toggle 'ps-landscape-mode "Landscape"
! 'postscript-options 0 12 'toggle)))
;;;###autoload
(defun pr-toggle-upside-down ()
"Toggle upside-down."
(interactive)
! (pr-save-interactive
! (pr-toggle 'ps-print-upside-down "Upside-Down"
! 'postscript-options 7 12 'toggle)))
;;;###autoload
(defun pr-toggle-line ()
"Toggle line number."
(interactive)
! (pr-save-interactive
! (pr-toggle 'ps-line-number "Line number"
! 'postscript-options 3 12 'toggle)))
;;;###autoload
(defun pr-toggle-zebra ()
"Toggle zebra stripes."
(interactive)
! (pr-save-interactive
! (pr-toggle 'ps-zebra-stripes "Zebra stripe"
! 'postscript-options 4 12 'toggle)))
;;;###autoload
(defun pr-toggle-header ()
"Toggle printing header."
(interactive)
! (pr-save-interactive
! (pr-toggle 'ps-print-header "Print header"
! 'postscript-options 1 12 'toggle)))
;;;###autoload
(defun pr-toggle-header-frame ()
"Toggle printing header frame."
(interactive)
! (pr-save-interactive
! (pr-toggle 'ps-print-header-frame "Print header frame"
! 'postscript-options 2 12 'toggle)))
;;;###autoload
(defun pr-toggle-lock ()
"Toggle menu lock."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-menu-lock "Menu lock"
! 'printing 2 12 'toggle)))
;;;###autoload
(defun pr-toggle-region ()
"Toggle auto region."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-auto-region "Auto region"
! 'printing 0 12 'toggle)))
;;;###autoload
(defun pr-toggle-mode ()
"Toggle auto mode."
(interactive)
! (pr-save-interactive
! (pr-toggle 'pr-auto-mode "Auto mode"
! 'printing 1 12 'toggle)))
;;;###autoload
--- 3999,4068 ----
If tumble is on, produces a printing suitable for binding at the top or
bottom."
(interactive)
! (pr-toggle-tumble-menu t))
;;;###autoload
(defun pr-toggle-landscape ()
"Toggle landscape."
(interactive)
! (pr-toggle-landscape-menu t))
;;;###autoload
(defun pr-toggle-upside-down ()
"Toggle upside-down."
(interactive)
! (pr-toggle-upside-down-menu t))
;;;###autoload
(defun pr-toggle-line ()
"Toggle line number."
(interactive)
! (pr-toggle-line-menu t))
;;;###autoload
(defun pr-toggle-zebra ()
"Toggle zebra stripes."
(interactive)
! (pr-toggle-zebra-menu t))
;;;###autoload
(defun pr-toggle-header ()
"Toggle printing header."
(interactive)
! (pr-toggle-header-menu t))
;;;###autoload
(defun pr-toggle-header-frame ()
"Toggle printing header frame."
(interactive)
! (pr-toggle-header-frame-menu t))
;;;###autoload
(defun pr-toggle-lock ()
"Toggle menu lock."
(interactive)
! (pr-toggle-lock-menu t))
;;;###autoload
(defun pr-toggle-region ()
"Toggle auto region."
(interactive)
! (pr-toggle-region-menu t))
;;;###autoload
(defun pr-toggle-mode ()
"Toggle auto mode."
(interactive)
! (pr-toggle-mode-menu t))
;;;###autoload
***************
*** 4123,4152 ****
(defun pr-ps-name ()
"Interactively select a PostScript printer."
(interactive)
! (pr-save-interactive
! (pr-menu-set-ps-title
! (pr-complete-alist "PostScript printer"
! pr-ps-printer-alist pr-ps-name))))
;;;###autoload
(defun pr-txt-name ()
"Interactively select a text printer."
(interactive)
! (pr-save-interactive
! (pr-menu-set-txt-title
! (pr-complete-alist "Text printer"
! pr-txt-printer-alist pr-txt-name))))
;;;###autoload
(defun pr-ps-utility ()
"Interactively select a PostScript utility."
(interactive)
! (pr-save-interactive
! (pr-menu-set-utility-title
! (pr-complete-alist "Postscript utility"
! pr-ps-utility-alist pr-ps-utility))))
;;;###autoload
--- 4090,4116 ----
(defun pr-ps-name ()
"Interactively select a PostScript printer."
(interactive)
! (pr-menu-set-ps-title
! (pr-complete-alist "PostScript printer"
! pr-ps-printer-alist pr-ps-name)))
;;;###autoload
(defun pr-txt-name ()
"Interactively select a text printer."
(interactive)
! (pr-menu-set-txt-title
! (pr-complete-alist "Text printer"
! pr-txt-printer-alist pr-txt-name)))
;;;###autoload
(defun pr-ps-utility ()
"Interactively select a PostScript utility."
(interactive)
! (pr-menu-set-utility-title
! (pr-complete-alist "Postscript utility"
! pr-ps-utility-alist pr-ps-utility)))
;;;###autoload
***************
*** 4237,4265 ****
are both set to t."
(interactive (list (pr-interactive-n-up (pr-prompt-gs "PS print fast"))
current-prefix-arg))
! (pr-save-interactive
! (let ((pr-auto-region t)
! (pr-auto-mode t)
! filename)
! (cond ((null select))
! ((listp select)
! (pr-ps-name))
! ((and (symbolp select)
! (assq select pr-ps-printer-alist))
! (pr-menu-set-ps-title select))
! ((integerp select)
! (and (/= select 1)
! (pr-ps-name))
! (and (>= select 1) (not pr-spool-p)
! (setq filename (pr-ps-outfile-preprint
! (if pr-print-using-ghostscript
! "Fast GS "
! "Fast "))))))
! (pr-ps-buffer-ps-print
! (if (integerp n-up)
! (min (max n-up 1) 100)
! (error "n-up must be an integer greater than zero"))
! filename))))
;;;###autoload
--- 4201,4228 ----
are both set to t."
(interactive (list (pr-interactive-n-up (pr-prompt-gs "PS print fast"))
current-prefix-arg))
! (let ((pr-auto-region t)
! (pr-auto-mode t)
! filename)
! (cond ((null select))
! ((listp select)
! (pr-ps-name))
! ((and (symbolp select)
! (assq select pr-ps-printer-alist))
! (pr-menu-set-ps-title select))
! ((integerp select)
! (and (/= select 1)
! (pr-ps-name))
! (and (>= select 1) (not pr-spool-p)
! (setq filename (pr-ps-outfile-preprint
! (if pr-print-using-ghostscript
! "Fast GS "
! "Fast "))))))
! (pr-ps-buffer-ps-print
! (if (integerp n-up)
! (min (max n-up 1) 100)
! (error "n-up must be an integer greater than zero"))
! filename)))
;;;###autoload
***************
*** 4287,4302 ****
Note that this command always behaves as if `pr-auto-region' and
`pr-auto-mode'
are both set to t."
(interactive (list current-prefix-arg))
! (pr-save-interactive
! (cond ((null select-printer))
! ((and (symbolp select-printer)
! (assq select-printer pr-txt-printer-alist))
! (pr-menu-set-txt-title select-printer))
! (t
! (pr-txt-name)))
! (let ((pr-auto-region t)
! (pr-auto-mode t))
! (pr-txt-buffer))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- 4250,4264 ----
Note that this command always behaves as if `pr-auto-region' and
`pr-auto-mode'
are both set to t."
(interactive (list current-prefix-arg))
! (cond ((null select-printer))
! ((and (symbolp select-printer)
! (assq select-printer pr-txt-printer-alist))
! (pr-menu-set-txt-title select-printer))
! (t
! (pr-txt-name)))
! (let ((pr-auto-region t)
! (pr-auto-mode t))
! (pr-txt-buffer)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
***************
*** 4645,4734 ****
(defvar pr-menu-state nil)
! (eval-and-compile
! (cond
! ((eq ps-print-emacs-type 'xemacs)
! ;; XEmacs
! (defvar current-mouse-event nil) ; to avoid compilation gripes
! (defun pr-menu-position (entry index horizontal)
! (pr-x-make-event
! 'button-release
! (list 'button 1
! 'x (- (pr-x-event-x-pixel current-mouse-event) ; X
! (* horizontal pr-menu-char-width))
! 'y (- (pr-x-event-y-pixel current-mouse-event) ; Y
! (* (pr-menu-index entry index) pr-menu-char-height)))))
! )
! (ps-windows-system
! ;; GNU Emacs for Windows 9x/NT
! (defun pr-menu-position (entry index horizontal)
! (let ((pos (cdr (pr-e-mouse-pixel-position))))
! (list
! (list (or (car pos) 0) ; X
! (- (or (cdr pos) 0) ; Y
! (* (pr-menu-index entry index) pr-menu-char-height)))
! (selected-frame)))) ; frame
! )
! (t
! ;; GNU Emacs
! (defun pr-menu-position (entry index horizontal)
! (let ((pos (cdr (pr-e-mouse-pixel-position))))
! (list
! (list (- (or (car pos) 0) ; X
! (* horizontal pr-menu-char-width))
! (- (or (cdr pos) 0) ; Y
! (* (pr-menu-index entry index) pr-menu-char-height)))
! (selected-frame)))) ; frame
! ))
! (cond
! ((eq ps-print-emacs-type 'emacs)
! ;; GNU Emacs
! (defun pr-menu-lookup (path)
! (let ((ipath pr-menu-bar))
! (lookup-key global-map
! (if path
! (vconcat ipath
! (mapcar 'pr-get-symbol
! (if (listp path)
! path
! (list path))))
! ipath))))
!
! ;; GNU Emacs
! (defun pr-menu-lock (entry index horizontal state path)
! (when (and (not pr-interactive-p) pr-menu-lock)
! (or (and pr-menu-position (eq state pr-menu-state))
! (setq pr-menu-position (pr-menu-position entry index horizontal)
! pr-menu-state state))
! (let* ((menu (pr-menu-lookup path))
! (result (x-popup-menu pr-menu-position menu)))
! (and result
! (let ((command (lookup-key menu (vconcat result))))
! (if (fboundp command)
! (funcall command)
! (eval command)))))
! (setq pr-menu-position nil))))
!
!
! ((eq ps-print-emacs-type 'xemacs)
! ;; XEmacs
! (defvar current-menubar nil) ; to avoid compilation gripes
! (defun pr-menu-lookup (path)
! (car (pr-x-find-menu-item current-menubar (cons "Printing" path))))
!
! ;; XEmacs
! (defun pr-menu-lock (entry index horizontal state path)
! (when (and (not pr-interactive-p) pr-menu-lock)
! (or (and pr-menu-position (eq state pr-menu-state))
! (setq pr-menu-position (pr-menu-position entry index horizontal)
! pr-menu-state state))
! (let* ((menu (pr-menu-lookup path))
! (result (pr-x-get-popup-menu-response menu pr-menu-position)))
! (and (pr-x-misc-user-event-p result)
! (funcall (pr-x-event-function result)
! (pr-x-event-object result))))
! (setq pr-menu-position nil))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- 4607,4694 ----
(defvar pr-menu-state nil)
! (cond
! ((featurep 'xemacs)
! ;; XEmacs
! (defvar current-mouse-event nil) ; to avoid compilation gripes
! (defun pr-menu-position (entry index horizontal)
! (pr-x-make-event
! 'button-release
! (list 'button 1
! 'x (- (pr-x-event-x-pixel current-mouse-event) ; X
! (* horizontal pr-menu-char-width))
! 'y (- (pr-x-event-y-pixel current-mouse-event) ; Y
! (* (pr-menu-index entry index) pr-menu-char-height)))))
! )
! (ps-windows-system
! ;; GNU Emacs for Windows 9x/NT
! (defun pr-menu-position (entry index horizontal)
! (let ((pos (cdr (pr-e-mouse-pixel-position))))
! (list
! (list (or (car pos) 0) ; X
! (- (or (cdr pos) 0) ; Y
! (* (pr-menu-index entry index) pr-menu-char-height)))
! (selected-frame)))) ; frame
! )
! (t
! ;; GNU Emacs
! (defun pr-menu-position (entry index horizontal)
! (let ((pos (cdr (pr-e-mouse-pixel-position))))
! (list
! (list (- (or (car pos) 0) ; X
! (* horizontal pr-menu-char-width))
! (- (or (cdr pos) 0) ; Y
! (* (pr-menu-index entry index) pr-menu-char-height)))
! (selected-frame)))) ; frame
! ))
! (cond
! ((featurep 'xemacs)
! ;; XEmacs
! (defvar current-menubar nil) ; to avoid compilation gripes
! (defun pr-menu-lookup (path)
! (car (pr-x-find-menu-item current-menubar (cons "Printing" path))))
!
! ;; XEmacs
! (defun pr-menu-lock (entry index horizontal state path)
! (when pr-menu-lock
! (or (and pr-menu-position (eq state pr-menu-state))
! (setq pr-menu-position (pr-menu-position entry index horizontal)
! pr-menu-state state))
! (let* ((menu (pr-menu-lookup path))
! (result (pr-x-get-popup-menu-response menu pr-menu-position)))
! (and (pr-x-misc-user-event-p result)
! (funcall (pr-x-event-function result)
! (pr-x-event-object result))))
! (setq pr-menu-position nil))))
!
!
! (t
! ;; GNU Emacs
! (defun pr-menu-lookup (path)
! (lookup-key global-map
! (if path
! (vconcat pr-menu-bar
! (mapcar 'pr-get-symbol
! (if (listp path)
! path
! (list path))))
! pr-menu-bar)))
!
! ;; GNU Emacs
! (defun pr-menu-lock (entry index horizontal state path)
! (when pr-menu-lock
! (or (and pr-menu-position (eq state pr-menu-state))
! (setq pr-menu-position (pr-menu-position entry index horizontal)
! pr-menu-state state))
! (let* ((menu (pr-menu-lookup path))
! (result (x-popup-menu pr-menu-position menu)))
! (and result
! (let ((command (lookup-key menu (vconcat result))))
! (if (fboundp command)
! (funcall command)
! (eval command)))))
! (setq pr-menu-position nil)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
***************
*** 4750,4760 ****
non-nil, and update PostScript File menus iff `pr-ps-utility-menu-modified' is
non-nil."
(interactive "P")
! (pr-save-interactive
! (pr-update-var 'pr-ps-name pr-ps-printer-alist)
! (pr-update-var 'pr-txt-name pr-txt-printer-alist)
! (pr-update-var 'pr-ps-utility pr-ps-utility-alist)
! (pr-do-update-menus force)))
(defvar pr-ps-printer-menu-modified t
--- 4710,4719 ----
non-nil, and update PostScript File menus iff `pr-ps-utility-menu-modified' is
non-nil."
(interactive "P")
! (pr-update-var 'pr-ps-name pr-ps-printer-alist)
! (pr-update-var 'pr-txt-name pr-txt-printer-alist)
! (pr-update-var 'pr-ps-utility pr-ps-utility-alist)
! (pr-do-update-menus force))
(defvar pr-ps-printer-menu-modified t
***************
*** 4786,5037 ****
alist)))
! (eval-and-compile
! (cond
! ((eq ps-print-emacs-type 'emacs)
! ;; GNU Emacs
! (defalias 'pr-update-mode-line 'force-mode-line-update)
!
! ;; GNU Emacs
! (defun pr-do-update-menus (&optional force)
! (pr-menu-alist pr-ps-printer-alist
! 'pr-ps-name
! 'pr-menu-set-ps-title
! "PostScript Printers"
! 'pr-ps-printer-menu-modified
! force
! "PostScript Printers"
! 'postscript 2)
! (pr-menu-alist pr-txt-printer-alist
! 'pr-txt-name
! 'pr-menu-set-txt-title
! "Text Printers"
! 'pr-txt-printer-menu-modified
! force
! "Text Printers"
! 'text 2)
! (let ((save-var pr-ps-utility-menu-modified))
! (pr-menu-alist pr-ps-utility-alist
! 'pr-ps-utility
! 'pr-menu-set-utility-title
! '("PostScript Print" "File" "PostScript Utility")
! 'save-var
! force
! "PostScript Utility"
! nil 1))
(pr-menu-alist pr-ps-utility-alist
'pr-ps-utility
'pr-menu-set-utility-title
! '("PostScript Preview" "File" "PostScript Utility")
! 'pr-ps-utility-menu-modified
force
! "PostScript Utility"
! nil 1)
! (pr-even-or-odd-pages ps-even-or-odd-pages force))
! ;; GNU Emacs
! (defvar pr-temp-menu nil)
! ;; GNU Emacs
! (defun pr-menu-alist (alist var-sym fun menu-path modified-sym force name
! entry index)
! (when (and alist (or force (symbol-value modified-sym)))
! (easy-menu-define pr-temp-menu nil ""
! (pr-menu-create name alist var-sym fun entry index))
! (let ((item (pr-menu-get-item menu-path)))
! (and item
! (let* ((binding (nthcdr 3 item))
! (key-binding (cdr binding)))
! (setcar binding pr-temp-menu)
! (and key-binding (listp (car key-binding))
! (setcdr binding (cdr key-binding))) ; skip KEY-BINDING
! (funcall fun (symbol-value var-sym) item))))
! (set modified-sym nil)))
!
! ;; GNU Emacs
! (defun pr-menu-set-ps-title (value &optional item entry index)
! (pr-menu-set-item-name (or item
! (pr-menu-get-item "PostScript Printers"))
! (format "PostScript Printer: %s" value))
! (pr-ps-set-printer value)
! (and index
! (pr-menu-lock entry index 12 'toggle nil)))
!
! ;; GNU Emacs
! (defun pr-menu-set-txt-title (value &optional item entry index)
! (pr-menu-set-item-name (or item
! (pr-menu-get-item "Text Printers"))
! (format "Text Printer: %s" value))
! (pr-txt-set-printer value)
! (and index
! (pr-menu-lock entry index 12 'toggle nil)))
!
! ;; GNU Emacs
! (defun pr-menu-set-utility-title (value &optional item entry index)
! (let ((name (symbol-name value)))
! (if item
! (pr-menu-set-item-name item name)
! (pr-menu-set-item-name
! (pr-menu-get-item
! '("PostScript Print" "File" "PostScript Utility"))
! name)
! (pr-menu-set-item-name
! (pr-menu-get-item
! '("PostScript Preview" "File" "PostScript Utility"))
! name)))
! (pr-ps-set-utility value)
! (and index
! (pr-menu-lock entry index 5 nil '("PostScript Print" "File"))))
!
! ;; GNU Emacs
! (defun pr-even-or-odd-pages (value &optional no-lock)
! (pr-menu-set-item-name (pr-menu-get-item "Print All Pages")
! (cdr (assq value pr-even-or-odd-alist)))
! (setq ps-even-or-odd-pages value)
! (or no-lock
! (pr-menu-lock 'postscript-options 8 12 'toggle nil))))
!
!
! ((eq ps-print-emacs-type 'xemacs)
! ;; XEmacs
! (defalias 'pr-update-mode-line 'set-menubar-dirty-flag)
!
! ;; XEmacs
! (defvar pr-ps-name-old "PostScript Printers")
! (defvar pr-txt-name-old "Text Printers")
! (defvar pr-ps-utility-old "PostScript Utility")
! (defvar pr-even-or-odd-old "Print All Pages")
!
! ;; XEmacs
! (defun pr-do-update-menus (&optional force)
! (pr-menu-alist pr-ps-printer-alist
! 'pr-ps-name
! 'pr-menu-set-ps-title
! '("Printing")
! 'pr-ps-printer-menu-modified
! force
! pr-ps-name-old
! 'postscript 2)
! (pr-menu-alist pr-txt-printer-alist
! 'pr-txt-name
! 'pr-menu-set-txt-title
! '("Printing")
! 'pr-txt-printer-menu-modified
! force
! pr-txt-name-old
! 'text 2)
! (let ((save-var pr-ps-utility-menu-modified))
! (pr-menu-alist pr-ps-utility-alist
! 'pr-ps-utility
! 'pr-menu-set-utility-title
! '("Printing" "PostScript Print" "File")
! 'save-var
! force
! pr-ps-utility-old
! nil 1))
(pr-menu-alist pr-ps-utility-alist
'pr-ps-utility
'pr-menu-set-utility-title
! '("Printing" "PostScript Preview" "File")
! 'pr-ps-utility-menu-modified
force
! pr-ps-utility-old
! nil 1)
! (pr-even-or-odd-pages ps-even-or-odd-pages force))
! ;; XEmacs
! (defun pr-menu-alist (alist var-sym fun menu-path modified-sym force name
! entry index)
! (when (and alist (or force (symbol-value modified-sym)))
! (pr-xemacs-global-menubar
! (pr-x-add-submenu menu-path
! (pr-menu-create name alist var-sym
! fun entry index)))
! (funcall fun (symbol-value var-sym))
! (set modified-sym nil)))
!
! ;; XEmacs
! (defun pr-menu-set-ps-title (value &optional item entry index)
! (pr-relabel-menu-item (format "PostScript Printer: %s" value)
! 'pr-ps-name-old)
! (pr-ps-set-printer value)
! (and index
! (pr-menu-lock entry index 12 'toggle nil)))
!
! ;; XEmacs
! (defun pr-menu-set-txt-title (value &optional item entry index)
! (pr-relabel-menu-item (format "Text Printer: %s" value)
! 'pr-txt-name-old)
! (pr-txt-set-printer value)
! (and index
! (pr-menu-lock entry index 12 'toggle nil)))
! ;; XEmacs
! (defun pr-menu-set-utility-title (value &optional item entry index)
! (pr-xemacs-global-menubar
! (let ((newname (format "%s" value)))
! (pr-x-relabel-menu-item
! (list "Printing" "PostScript Print" "File" pr-ps-utility-old)
! newname)
! (pr-x-relabel-menu-item
! (list "Printing" "PostScript Preview" "File" pr-ps-utility-old)
! newname)
! (setq pr-ps-utility-old newname)))
! (pr-ps-set-utility value)
! (and index
! (pr-menu-lock entry index 5 nil '("PostScript Print" "File"))))
!
! ;; XEmacs
! (defun pr-even-or-odd-pages (value &optional no-lock)
! (pr-relabel-menu-item (cdr (assq value pr-even-or-odd-alist))
! 'pr-even-or-odd-old)
! (setq ps-even-or-odd-pages value)
! (or no-lock
! (pr-menu-lock 'postscript-options 8 12 'toggle nil))))))
! ;; XEmacs
! (defun pr-relabel-menu-item (newname var-sym)
! (pr-xemacs-global-menubar
! (pr-x-relabel-menu-item
! (list "Printing" (symbol-value var-sym))
! newname)
! (set var-sym newname)))
! ;; GNU Emacs
! (defun pr-menu-set-item-name (item name)
! (and item
! (setcar (nthcdr 2 item) name))) ; ITEM-NAME
! ;; GNU Emacs
! (defun pr-menu-get-item (name-list)
! ;; NAME-LIST is a string or a list of strings.
! (let ((ipath pr-menu-bar)
! (len (and (listp name-list) (length name-list))))
! (and len (= len 1)
! (setq name-list (car name-list)))
! (cond
! ((null name-list)
! ;; nil
! nil)
! ((listp name-list)
! ;; list and (length list) > 1
! (let* ((copy (copy-sequence name-list))
! (name (pr-get-symbol (nth (1- len) copy)))
! (path (progn
! (setcdr (nthcdr (- len 2) copy) nil)
! copy))
! (menu (lookup-key
! global-map
! (if path
! (vconcat ipath
! (mapcar 'pr-get-symbol path))
! ipath))))
! (assq name (nthcdr 2 menu))))
! (t
! ;; string
! (let ((name (pr-get-symbol name-list))
! (menu (lookup-key global-map ipath)))
! (assq name (nthcdr 2 menu)))))))
(defun pr-ps-set-utility (value)
--- 4745,4979 ----
alist)))
! (cond
! ((featurep 'xemacs)
! ;; XEmacs
! (defalias 'pr-update-mode-line 'set-menubar-dirty-flag)
!
! ;; XEmacs
! (defvar pr-ps-name-old "PostScript Printers")
! (defvar pr-txt-name-old "Text Printers")
! (defvar pr-ps-utility-old "PostScript Utility")
! (defvar pr-even-or-odd-old "Print All Pages")
!
! ;; XEmacs
! (defun pr-do-update-menus (&optional force)
! (pr-menu-alist pr-ps-printer-alist
! 'pr-ps-name
! 'pr-menu-set-ps-title
! '("Printing")
! 'pr-ps-printer-menu-modified
! force
! pr-ps-name-old
! 'postscript 2)
! (pr-menu-alist pr-txt-printer-alist
! 'pr-txt-name
! 'pr-menu-set-txt-title
! '("Printing")
! 'pr-txt-printer-menu-modified
! force
! pr-txt-name-old
! 'text 2)
! (let ((save-var pr-ps-utility-menu-modified))
(pr-menu-alist pr-ps-utility-alist
'pr-ps-utility
'pr-menu-set-utility-title
! '("Printing" "PostScript Print" "File")
! 'save-var
force
! pr-ps-utility-old
! nil 1))
! (pr-menu-alist pr-ps-utility-alist
! 'pr-ps-utility
! 'pr-menu-set-utility-title
! '("Printing" "PostScript Preview" "File")
! 'pr-ps-utility-menu-modified
! force
! pr-ps-utility-old
! nil 1)
! (pr-even-or-odd-pages ps-even-or-odd-pages force))
! ;; XEmacs
! (defun pr-menu-alist (alist var-sym fun menu-path modified-sym force name
! entry index)
! (when (and alist (or force (symbol-value modified-sym)))
! (pr-xemacs-global-menubar
! (pr-x-add-submenu menu-path
! (pr-menu-create name alist var-sym
! fun entry index)))
! (funcall fun (symbol-value var-sym))
! (set modified-sym nil)))
! ;; XEmacs
! (defun pr-relabel-menu-item (newname var-sym)
! (pr-xemacs-global-menubar
! (pr-x-relabel-menu-item
! (list "Printing" (symbol-value var-sym))
! newname)
! (set var-sym newname)))
!
! ;; XEmacs
! (defun pr-menu-set-ps-title (value &optional item entry index)
! (pr-relabel-menu-item (format "PostScript Printer: %s" value)
! 'pr-ps-name-old)
! (pr-ps-set-printer value)
! (and index
! (pr-menu-lock entry index 12 'toggle nil)))
!
! ;; XEmacs
! (defun pr-menu-set-txt-title (value &optional item entry index)
! (pr-relabel-menu-item (format "Text Printer: %s" value)
! 'pr-txt-name-old)
! (pr-txt-set-printer value)
! (and index
! (pr-menu-lock entry index 12 'toggle nil)))
!
! ;; XEmacs
! (defun pr-menu-set-utility-title (value &optional item entry index)
! (pr-xemacs-global-menubar
! (let ((newname (format "%s" value)))
! (pr-x-relabel-menu-item
! (list "Printing" "PostScript Print" "File" pr-ps-utility-old)
! newname)
! (pr-x-relabel-menu-item
! (list "Printing" "PostScript Preview" "File" pr-ps-utility-old)
! newname)
! (setq pr-ps-utility-old newname)))
! (pr-ps-set-utility value)
! (and index
! (pr-menu-lock entry index 5 nil '("PostScript Print" "File"))))
!
! ;; XEmacs
! (defun pr-even-or-odd-pages (value &optional no-lock)
! (pr-relabel-menu-item (cdr (assq value pr-even-or-odd-alist))
! 'pr-even-or-odd-old)
! (setq ps-even-or-odd-pages value)
! (or no-lock
! (pr-menu-lock 'postscript-options 8 12 'toggle nil))))
!
!
! (t
! ;; GNU Emacs
! (defalias 'pr-update-mode-line 'force-mode-line-update)
!
! ;; GNU Emacs
! (defun pr-do-update-menus (&optional force)
! (pr-menu-alist pr-ps-printer-alist
! 'pr-ps-name
! 'pr-menu-set-ps-title
! "PostScript Printers"
! 'pr-ps-printer-menu-modified
! force
! "PostScript Printers"
! 'postscript 2)
! (pr-menu-alist pr-txt-printer-alist
! 'pr-txt-name
! 'pr-menu-set-txt-title
! "Text Printers"
! 'pr-txt-printer-menu-modified
! force
! "Text Printers"
! 'text 2)
! (let ((save-var pr-ps-utility-menu-modified))
(pr-menu-alist pr-ps-utility-alist
'pr-ps-utility
'pr-menu-set-utility-title
! '("PostScript Print" "File" "PostScript Utility")
! 'save-var
force
! "PostScript Utility"
! nil 1))
! (pr-menu-alist pr-ps-utility-alist
! 'pr-ps-utility
! 'pr-menu-set-utility-title
! '("PostScript Preview" "File" "PostScript Utility")
! 'pr-ps-utility-menu-modified
! force
! "PostScript Utility"
! nil 1)
! (pr-even-or-odd-pages ps-even-or-odd-pages force))
! ;; GNU Emacs
! (defun pr-menu-get-item (name-list)
! ;; NAME-LIST is a string or a list of strings.
! (or (listp name-list)
! (setq name-list (list name-list)))
! (and name-list
! (let* ((reversed (reverse name-list))
! (name (pr-get-symbol (car reversed)))
! (path (nreverse (cdr reversed)))
! (menu (lookup-key
! global-map
! (vconcat pr-menu-bar
! (mapcar 'pr-get-symbol path)))))
! (assq name (nthcdr 2 menu)))))
! ;; GNU Emacs
! (defvar pr-temp-menu nil)
! ;; GNU Emacs
! (defun pr-menu-alist (alist var-sym fun menu-path modified-sym force name
! entry index)
! (when (and alist (or force (symbol-value modified-sym)))
! (easy-menu-define pr-temp-menu nil ""
! (pr-menu-create name alist var-sym fun entry index))
! (let ((item (pr-menu-get-item menu-path)))
! (and item
! (let* ((binding (nthcdr 3 item))
! (key-binding (cdr binding)))
! (setcar binding pr-temp-menu)
! (and key-binding (listp (car key-binding))
! (setcdr binding (cdr key-binding))) ; skip KEY-BINDING
! (funcall fun (symbol-value var-sym) item))))
! (set modified-sym nil)))
! ;; GNU Emacs
! (defun pr-menu-set-item-name (item name)
! (and item
! (setcar (nthcdr 2 item) name))) ; ITEM-NAME
! ;; GNU Emacs
! (defun pr-menu-set-ps-title (value &optional item entry index)
! (pr-menu-set-item-name (or item
! (pr-menu-get-item "PostScript Printers"))
! (format "PostScript Printer: %s" value))
! (pr-ps-set-printer value)
! (and index
! (pr-menu-lock entry index 12 'toggle nil)))
!
! ;; GNU Emacs
! (defun pr-menu-set-txt-title (value &optional item entry index)
! (pr-menu-set-item-name (or item
! (pr-menu-get-item "Text Printers"))
! (format "Text Printer: %s" value))
! (pr-txt-set-printer value)
! (and index
! (pr-menu-lock entry index 12 'toggle nil)))
!
! ;; GNU Emacs
! (defun pr-menu-set-utility-title (value &optional item entry index)
! (let ((name (symbol-name value)))
! (if item
! (pr-menu-set-item-name item name)
! (pr-menu-set-item-name
! (pr-menu-get-item
! '("PostScript Print" "File" "PostScript Utility"))
! name)
! (pr-menu-set-item-name
! (pr-menu-get-item
! '("PostScript Preview" "File" "PostScript Utility"))
! name)))
! (pr-ps-set-utility value)
! (and index
! (pr-menu-lock entry index 5 nil '("PostScript Print" "File"))))
!
! ;; GNU Emacs
! (defun pr-even-or-odd-pages (value &optional no-lock)
! (pr-menu-set-item-name (pr-menu-get-item "Print All Pages")
! (cdr (assq value pr-even-or-odd-alist)))
! (setq ps-even-or-odd-pages value)
! (or no-lock
! (pr-menu-lock 'postscript-options 8 12 'toggle nil)))))
(defun pr-ps-set-utility (value)
***************
*** 5163,5168 ****
--- 5105,5220 ----
;; Internal Functions (II)
+ (defun pr-toggle (var-sym mess entry index horizontal state
+ &optional path no-menu)
+ (set var-sym (not (symbol-value var-sym)))
+ (message "%s is %s" mess (if (symbol-value var-sym) "on" "off"))
+ (or no-menu
+ (pr-menu-lock entry index horizontal state path)))
+
+
+ (defun pr-toggle-file-duplex-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-file-duplex "PS file duplex" nil 7 5 nil
+ '("PostScript Print" "File") no-menu))
+
+
+ (defun pr-toggle-file-tumble-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-file-tumble "PS file tumble" nil 8 5 nil
+ '("PostScript Print" "File") no-menu))
+
+
+ (defun pr-toggle-file-landscape-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-file-landscape "PS file landscape" nil 6 5 nil
+ '("PostScript Print" "File") no-menu))
+
+
+ (defun pr-toggle-ghostscript-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-print-using-ghostscript "Printing using ghostscript"
+ 'postscript-process 2 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-faces-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-faces-p "Printing with faces"
+ 'postscript-process 1 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-spool-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-spool-p "Spooling printing"
+ 'postscript-process 0 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-duplex-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'ps-spool-duplex "Printing duplex"
+ 'postscript-options 5 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-tumble-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'ps-spool-tumble "Tumble"
+ 'postscript-options 6 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-landscape-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'ps-landscape-mode "Landscape"
+ 'postscript-options 0 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-upside-down-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'ps-print-upside-down "Upside-Down"
+ 'postscript-options 7 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-line-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'ps-line-number "Line number"
+ 'postscript-options 3 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-zebra-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'ps-zebra-stripes "Zebra stripe"
+ 'postscript-options 4 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-header-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'ps-print-header "Print header"
+ 'postscript-options 1 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-header-frame-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'ps-print-header-frame "Print header frame"
+ 'postscript-options 2 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-lock-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-menu-lock "Menu lock"
+ 'printing 2 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-region-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-auto-region "Auto region"
+ 'printing 0 12 'toggle nil no-menu))
+
+
+ (defun pr-toggle-mode-menu (&optional no-menu)
+ (interactive)
+ (pr-toggle 'pr-auto-mode "Auto mode"
+ 'printing 1 12 'toggle nil no-menu))
+
+
(defun pr-prompt (str)
(if (pr-auto-mode-p)
(concat str " mode")
***************
*** 5263,5289 ****
(pr-expand-file-name res)))
- (defun pr-toggle (var-sym mess entry index horizontal state &optional path)
- (set var-sym (not (symbol-value var-sym)))
- (message "%s is %s" mess (if (symbol-value var-sym) "on" "off"))
- (pr-menu-lock entry index horizontal state path))
-
-
(defun pr-ps-utility-args (n-up-sym infile-sym outfile-sym prompt)
;; n-up
(or (symbol-value n-up-sym)
(set n-up-sym (pr-interactive-n-up prompt)))
- (and (eq (symbol-value infile-sym) t)
- (set infile-sym (and (not pr-interactive-p)
- (pr-ps-infile-preprint prompt))))
;; input file
(or (symbol-value infile-sym)
(error "%s: input PostScript file name is missing" prompt))
(set infile-sym (pr-dosify-file-name (symbol-value infile-sym)))
;; output file
(and (eq (symbol-value outfile-sym) t)
! (set outfile-sym (and (not pr-interactive-p)
! current-prefix-arg
(pr-ps-outfile-preprint prompt))))
(and (symbol-value outfile-sym)
(set outfile-sym (pr-dosify-file-name (symbol-value outfile-sym))))
--- 5315,5334 ----
(pr-expand-file-name res)))
(defun pr-ps-utility-args (n-up-sym infile-sym outfile-sym prompt)
+ ;; check arguments for PostScript file processing.
;; n-up
(or (symbol-value n-up-sym)
(set n-up-sym (pr-interactive-n-up prompt)))
;; input file
+ (and (eq (symbol-value infile-sym) t)
+ (set infile-sym (pr-ps-infile-preprint prompt)))
(or (symbol-value infile-sym)
(error "%s: input PostScript file name is missing" prompt))
(set infile-sym (pr-dosify-file-name (symbol-value infile-sym)))
;; output file
(and (eq (symbol-value outfile-sym) t)
! (set outfile-sym (and current-prefix-arg
(pr-ps-outfile-preprint prompt))))
(and (symbol-value outfile-sym)
(set outfile-sym (pr-dosify-file-name (symbol-value outfile-sym))))
***************
*** 5291,5296 ****
--- 5336,5342 ----
(defun pr-ps-utility-process (n-up infile outfile)
+ ;; activate utility to process a PostScript file.
(let (item)
(and (stringp infile) (file-exists-p infile)
(setq item (cdr (assq pr-ps-utility pr-ps-utility-alist)))
***************
*** 5402,5409 ****
(defun pr-ps-file (&optional filename)
(pr-dosify-file-name (or filename
! (convert-standard-filename
! (expand-file-name pr-ps-temp-file pr-temp-dir)))))
(defun pr-interactive-n-up (mess)
--- 5448,5457 ----
(defun pr-ps-file (&optional filename)
(pr-dosify-file-name (or filename
! (make-temp-file
! (convert-standard-filename
! (expand-file-name pr-ps-temp-file pr-temp-dir))
! nil ".ps"))))
(defun pr-interactive-n-up (mess)
***************
*** 5492,5499 ****
(defun pr-set-outfilename (filename-sym)
(and (not pr-spool-p)
(eq (symbol-value filename-sym) t)
! (set filename-sym (and (not pr-interactive-p)
! current-prefix-arg
(ps-print-preprint current-prefix-arg))))
(and (symbol-value filename-sym)
(set filename-sym (pr-dosify-file-name (symbol-value filename-sym)))))
--- 5540,5546 ----
(defun pr-set-outfilename (filename-sym)
(and (not pr-spool-p)
(eq (symbol-value filename-sym) t)
! (set filename-sym (and current-prefix-arg
(ps-print-preprint current-prefix-arg))))
(and (symbol-value filename-sym)
(set filename-sym (pr-dosify-file-name (symbol-value filename-sym)))))
***************
*** 5729,5741 ****
(defvar pr-interface-map nil
"Keymap for pr-interface.")
! (if pr-interface-map
! nil
(setq pr-interface-map (make-sparse-keymap))
! (cond ((eq ps-print-emacs-type 'xemacs) ; XEmacs
(pr-f-set-keymap-parents pr-interface-map (list widget-keymap))
(pr-f-set-keymap-name pr-interface-map 'pr-interface-map))
! ((eq ps-print-emacs-type 'emacs) ; GNU Emacs
(pr-f-set-keymap-parents pr-interface-map widget-keymap)))
(define-key pr-interface-map "q" 'pr-interface-quit)
(define-key pr-interface-map "?" 'pr-interface-help))
--- 5776,5787 ----
(defvar pr-interface-map nil
"Keymap for pr-interface.")
! (unless pr-interface-map
(setq pr-interface-map (make-sparse-keymap))
! (cond ((featurep 'xemacs) ; XEmacs
(pr-f-set-keymap-parents pr-interface-map (list widget-keymap))
(pr-f-set-keymap-name pr-interface-map 'pr-interface-map))
! (t ; GNU Emacs
(pr-f-set-keymap-parents pr-interface-map widget-keymap)))
(define-key pr-interface-map "q" 'pr-interface-quit)
(define-key pr-interface-map "?" 'pr-interface-help))
***************
*** 6162,6182 ****
(defun pr-interface-ps-print (&rest ignore)
"Print using ps-print package."
(interactive)
! (pr-save-interactive
! (pr-interface-ps 'pr-despool-ps-print 'pr-ps-directory-ps-print
! 'pr-ps-file-ps-print 'pr-ps-file-up-ps-print
! 'pr-ps-region-ps-print 'pr-ps-mode-ps-print
! 'pr-ps-buffer-ps-print)))
(defun pr-interface-preview (&rest ignore)
"Preview a PostScript file."
(interactive)
! (pr-save-interactive
! (pr-interface-ps 'pr-despool-preview 'pr-ps-directory-preview
! 'pr-ps-file-preview 'pr-ps-file-up-preview
! 'pr-ps-region-preview 'pr-ps-mode-preview
! 'pr-ps-buffer-preview)))
(defun pr-interface-ps (ps-despool ps-directory ps-file ps-file-up ps-region
--- 6208,6226 ----
(defun pr-interface-ps-print (&rest ignore)
"Print using ps-print package."
(interactive)
! (pr-interface-ps 'pr-despool-ps-print 'pr-ps-directory-ps-print
! 'pr-ps-file-ps-print 'pr-ps-file-up-ps-print
! 'pr-ps-region-ps-print 'pr-ps-mode-ps-print
! 'pr-ps-buffer-ps-print))
(defun pr-interface-preview (&rest ignore)
"Preview a PostScript file."
(interactive)
! (pr-interface-ps 'pr-despool-preview 'pr-ps-directory-preview
! 'pr-ps-file-preview 'pr-ps-file-up-preview
! 'pr-ps-region-preview 'pr-ps-mode-preview
! 'pr-ps-buffer-preview))
(defun pr-interface-ps (ps-despool ps-directory ps-file ps-file-up ps-region
- [Emacs-diffs] Changes to emacs/lisp/printing.el, Stefan Monnier, 2004/11/11
- [Emacs-diffs] Changes to emacs/lisp/printing.el, Vinicius Jose Latorre, 2004/11/11
- [Emacs-diffs] Changes to emacs/lisp/printing.el, Vinicius Jose Latorre, 2004/11/13
- [Emacs-diffs] Changes to emacs/lisp/printing.el, Vinicius Jose Latorre, 2004/11/14
- [Emacs-diffs] Changes to emacs/lisp/printing.el, Vinicius Jose Latorre, 2004/11/15
- [Emacs-diffs] Changes to emacs/lisp/printing.el,
Vinicius Jose Latorre <=
- [Emacs-diffs] Changes to emacs/lisp/printing.el, Vinicius Jose Latorre, 2004/11/21