[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: require printing causes an error
From: |
Stefan |
Subject: |
Re: require printing causes an error |
Date: |
Thu, 11 Nov 2004 10:01:26 -0500 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/21.3.50 (darwin) |
> Symptoms:
> (require 'printing)
> cause the following error:
> Debugger entered--Lisp error: (wrong-type-argument listp 3)
I've just (hopefully) checked in a fix for it.
BTW, Jose, why is the menu manipulation done in a eval-and-compile
(i.e. why do you modify the menus during byte-compilation)?
I suggest the untested patch below which removes the eval-and-compile
and which merges the XEmacs and Emacs menus.
Stefan
--- printing.el 11 Nov 2004 09:50:10 -0500 1.20
+++ printing.el 11 Nov 2004 09:58:51 -0500
@@ -2472,12 +2472,12 @@
(and pr-print-using-ghostscript (not pr-spool-p)))
-(eval-and-compile
- (defun pr-get-symbol (name)
+
+(defun pr-get-symbol (name)
(or (intern-soft name)
(make-symbol name)))
- (cond
+(cond
((eq ps-print-emacs-type 'emacs) ; GNU Emacs
(defsubst pr-region-active-p ()
(and pr-auto-region transient-mark-mode mark-active)))
@@ -2487,35 +2487,41 @@
(defsubst pr-region-active-p ()
(and pr-auto-region (not zmacs-region-stays) (ps-mark-active-p)))))
+;; Menu mapping:
+;; unfortunately XEmacs doesn't support :active or :visible
+;; for submenus, only for items.
+;; It uses :included instead of :active or :visible.
+;; Also, XEmacs doesn't support :help tag.
+(defalias 'pr-menu-:help
+ (if (featurep 'xemacs) 'ignore (lambda (text) (list :help text))))
+(defconst 'pr-menu-:active (if (featurep 'xemacs) :included :active))
- (defconst pr-menu-spec
- (cond
- ((eq ps-print-emacs-type 'emacs) ; GNU Emacs
- '(
+(defconst pr-menu-spec
+ `(
["Printing Interface" pr-interface
- :help "Use buffer interface instead of menu interface"]
+ ,@(pr-menu-:help "Use buffer interface instead of menu interface")]
"--"
- ("PostScript Preview" :visible (pr-visible-p 'postscript)
- :help "Preview PostScript instead of sending to printer"
- ("Directory" :active (not pr-spool-p)
+ ("PostScript Preview" :included (pr-visible-p 'postscript)
+ ,@(pr-menu-:help "Preview PostScript instead of sending to printer")
+ ("Directory" ,pr-menu-: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" :active (not pr-spool-p)
+ ("Buffer" ,pr-menu-: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" :active (and (not pr-spool-p) (ps-mark-active-p))
+ ("Region" ,pr-menu-: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" :active (and (not pr-spool-p) (pr-mode-alist-p))
+ ("Mode" ,pr-menu-: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]
@@ -2524,10 +2530,10 @@
("File"
["No Preprocessing..." (call-interactively 'pr-ps-file-preview)
:keys "\\[pr-ps-file-preview]"
- :help "Preview PostScript file"]
+ ,@(pr-menu-:help "Preview PostScript file")]
"--"
["PostScript Utility" pr-update-menus :active pr-ps-utility-alist
- :help "Select PostScript utility"]
+ ,@(pr-menu-: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]
@@ -2537,21 +2543,21 @@
"--"
["Landscape" pr-toggle-file-landscape
:style toggle :selected pr-file-landscape
- :help "Toggle landscape for PostScript file"
+ ,@(pr-menu-:help "Toggle landscape for PostScript file")
:active pr-ps-utility-alist]
["Duplex" pr-toggle-file-duplex
:style toggle :selected pr-file-duplex
- :help "Toggle duplex for PostScript file"
+ ,@(pr-menu-:help "Toggle duplex for PostScript file")
:active pr-ps-utility-alist]
["Tumble" pr-toggle-file-tumble
:style toggle :selected pr-file-tumble
- :help "Toggle tumble for PostScript file"
+ ,@(pr-menu-: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]"
- :help "Despool PostScript buffer to printer or file (C-u)"])
- ("PostScript Print" :visible (pr-visible-p 'postscript)
- :help "Send PostScript to printer or file (C-u)"
+ ,@(pr-menu-:help "Despool PostScript buffer to printer or file (C-u)")])
+ ("PostScript Print" :included (pr-visible-p 'postscript)
+ ,@(pr-menu-: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]
@@ -2564,13 +2570,13 @@
["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" :active (ps-mark-active-p)
+ ("Region" ,pr-menu-: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" :active (pr-mode-alist-p)
+ ("Mode" ,pr-menu-: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]
@@ -2579,10 +2585,10 @@
("File"
["No Preprocessing..." (call-interactively 'pr-ps-file-ps-print)
:keys "\\[pr-ps-file-ps-print]"
- :help "Send PostScript file to printer"]
+ ,@(pr-menu-:help "Send PostScript to printer or file (C-u)")]
"--"
["PostScript Utility" pr-update-menus :active pr-ps-utility-alist
- :help "Select PostScript utility"]
+ ,@(pr-menu-: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]
@@ -2592,37 +2598,37 @@
"--"
["Landscape" pr-toggle-file-landscape
:style toggle :selected pr-file-landscape
- :help "Toggle landscape for PostScript file"
+ ,@(pr-menu-:help "Toggle landscape for PostScript file")
:active pr-ps-utility-alist]
["Duplex" pr-toggle-file-duplex
:style toggle :selected pr-file-duplex
- :help "Toggle duplex for PostScript file"
+ ,@(pr-menu-:help "Toggle duplex for PostScript file")
:active pr-ps-utility-alist]
["Tumble" pr-toggle-file-tumble
:style toggle :selected pr-file-tumble
- :help "Toggle tumble for PostScript file"
+ ,@(pr-menu-: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]"
- :help "Despool PostScript buffer to printer or file (C-u)"])
+ ,@(pr-menu-: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)
- :help "Select PostScript printer"]
+ ,@(pr-menu-:help "Select PostScript printer")]
"--"
- ("Printify" :visible (pr-visible-p 'text)
- :help "Replace non-printing chars with printable representations."
+ ("Printify" :included (pr-visible-p 'text)
+ ,@(pr-menu-: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" :visible (pr-visible-p 'text)
- :help "Send text to printer"
+ ("Print" :included (pr-visible-p 'text)
+ ,@(pr-menu-: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)
- :help "Select text printer"]
+ ,@(pr-menu-:help "Select text printer")]
"--"
["Landscape" pr-toggle-landscape
:style toggle :selected ps-landscape-mode
@@ -2648,8 +2654,8 @@
["Upside-Down" pr-toggle-upside-down
:style toggle :selected ps-print-upside-down
:included (pr-visible-p 'postscript-options)]
- ("Print All Pages" :visible (pr-visible-p 'postscript-options)
- :help "Select odd/even pages/sheets to print"
+ ("Print All Pages" :included (pr-visible-p 'postscript-options)
+ ,@(pr-menu-: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)
@@ -2664,203 +2670,15 @@
["Spool Buffer" pr-toggle-spool
:style toggle :selected pr-spool-p
:included (pr-visible-p 'postscript-process)
- :help "Toggle PostScript spooling"]
+ ,@(pr-menu-:help "Toggle PostScript spooling")]
["Print with faces" pr-toggle-faces
:style toggle :selected pr-faces-p
:included (pr-visible-p 'postscript-process)
- :help "Toggle PostScript printing with faces"]
+ ,@(pr-menu-: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)
- :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" :visible (pr-visible-p 'help)
- ["printing" pr-customize t]
- ["ps-print" ps-print-customize t]
- ["lpr" lpr-customize t])
- ("Show Settings" :visible (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)]
- ))
-
-
- ((eq ps-print-emacs-type 'xemacs) ; XEmacs
- ;; Menu mapping:
- ;; unfortunately XEmacs doesn't support :active or :visible
- ;; for submenus, only for items.
- ;; It uses :included instead of :active or :visible.
- ;; Also, XEmacs doesn't support :help tag.
- '(
- ["Printing Interface" pr-interface]
- "--"
- ("PostScript Preview" :included (pr-visible-p 'postscript)
- ("Directory" :included (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" :included (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" :included (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" :included (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]"]
- "--"
- ["PostScript Utility" pr-update-menus :active pr-ps-utility-alist]
- "--"
- ["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
- :active pr-ps-utility-alist]
- ["Duplex" pr-toggle-file-duplex
- :style toggle :selected pr-file-duplex
- :active pr-ps-utility-alist]
- ["Tumble" pr-toggle-file-tumble
- :style toggle :selected pr-file-tumble
- :active (and pr-file-duplex pr-ps-utility-alist)])
- ["Despool..." (call-interactively 'pr-despool-preview)
- :active pr-spool-p :keys "\\[pr-despool-preview]"])
- ("PostScript Print" :included (pr-visible-p 'postscript)
- ("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" :included (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" :included (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]"]
- "--"
- ["PostScript Utility" pr-update-menus :active pr-ps-utility-alist]
- "--"
- ["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
- :active pr-ps-utility-alist]
- ["Duplex" pr-toggle-file-duplex
- :style toggle :selected pr-file-duplex
- :active pr-ps-utility-alist]
- ["Tumble" pr-toggle-file-tumble
- :style toggle :selected pr-file-tumble
- :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]"])
- ["PostScript Printers" pr-update-menus
- :active pr-ps-printer-alist :included (pr-visible-p 'postscript)]
- "--"
- ("Printify" :included (pr-visible-p 'text)
- ["Directory" pr-printify-directory t]
- ["Buffer" pr-printify-buffer t]
- ["Region" pr-printify-region (ps-mark-active-p)])
- ("Print" :included (pr-visible-p 'text)
- ["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)]
- "--"
- ["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)
- ["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)]
- ["Print with faces" pr-toggle-faces
- :style toggle :selected pr-faces-p
- :included (pr-visible-p 'postscript-process)]
- ["Print via Ghostscript" pr-toggle-ghostscript
- :style toggle :selected pr-print-using-ghostscript
- :included (pr-visible-p 'postscript-process)]
+ ,@(pr-menu-:help "Toggle PostScript generation using ghostscript")]
"--"
["Auto Region" pr-toggle-region
:style toggle :selected pr-auto-region
@@ -2882,10 +2700,9 @@
["lpr" pr-show-lpr-setup t])
["Help" pr-help :active t :included (pr-visible-p 'help)]
))
- ))
- (cond
+(cond
((eq ps-print-emacs-type 'emacs) ; GNU Emacs
;; Menu binding
(require 'easymenu)
@@ -2915,24 +2732,18 @@
pr-menu-bar (vector 'menu-bar 'files
(pr-get-symbol "Print")))))
(t
- (easy-menu-change '("files") "Print" pr-menu-spec)))
-
- ;; Key binding
- (global-set-key [print] 'pr-ps-fast-fire)
- (global-set-key [M-print] 'pr-ps-mode-using-ghostscript)
- (global-set-key [C-print] 'pr-txt-fast-fire))
+ (easy-menu-change '("files") "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
- (global-set-key 'f22 'pr-ps-fast-fire)
- (global-set-key '(meta f22) 'pr-ps-mode-using-ghostscript)
- (global-set-key '(control f22) 'pr-txt-fast-fire))))
+ (pr-x-add-submenu nil (cons "Printing" pr-menu-spec) "Apps"))))
+(defconst pr-print-key (if (featurep 'xemacs) 'f22 'print))
+(global-set-key `[,pr-print-key] 'pr-ps-fast-fire)
+(global-set-key `[(meta ,pr-print-key)] 'pr-ps-mode-using-ghostscript)
+(global-set-key `[(control ,pr-print-key)] 'pr-txt-fast-fire)
;;; You can also use something like:
;;;(global-set-key "\C-ci" 'pr-interface)