annotate lisp/lpr.el @ 72863:526dc1f36b09

(produce_image_glyph): Automatically crop wide images at right window edge so we can draw the cursor on the same row to avoid confusing redisplay by placing the cursor outside the visible window area.
author Kim F. Storm <storm@cua.dk>
date Thu, 14 Sep 2006 09:37:44 +0000
parents 4dea9a34fd2e
children 575850f5bd53 a1a25ac6c88a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 36420
diff changeset
1 ;;; lpr.el --- print Emacs buffer on line printer
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 617
diff changeset
2
64762
41bb365f41c4 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64091
diff changeset
3 ;; Copyright (C) 1985, 1988, 1992, 1994, 2001, 2002, 2003,
68651
3bd95f4f2941 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64762
diff changeset
4 ;; 2004, 2005, 2006 Free Software Foundation, Inc.
846
20674ae6bf52 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
5
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 36420
diff changeset
6 ;; Maintainer: FSF
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 36420
diff changeset
7 ;; Keywords: unix
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
8
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; any later version.
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13894
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64091
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64015
diff changeset
23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64015
diff changeset
24 ;; Boston, MA 02110-1301, USA.
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1671
diff changeset
26 ;;; Commentary:
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1671
diff changeset
27
35743
4db4ab2d1dd4 (lpr-windows-system, lpr-lp-system): Add autoload cookies.
Gerd Moellmann <gerd@gnu.org>
parents: 35724
diff changeset
28 ;; Commands to send the region or a buffer to your printer. Entry points
45461
f016f29dad07 Fix typo.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 38412
diff changeset
29 ;; are `lpr-buffer', `print-buffer', `lpr-region', or `print-region'; option
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
30 ;; variables include `printer-name', `lpr-switches' and `lpr-command'.
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1671
diff changeset
31
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
32 ;;; Code:
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33
35743
4db4ab2d1dd4 (lpr-windows-system, lpr-lp-system): Add autoload cookies.
Gerd Moellmann <gerd@gnu.org>
parents: 35724
diff changeset
34 ;;;###autoload
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
35 (defvar lpr-windows-system
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
36 (memq system-type '(emx win32 w32 mswindows ms-dos windows-nt)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
37
35743
4db4ab2d1dd4 (lpr-windows-system, lpr-lp-system): Add autoload cookies.
Gerd Moellmann <gerd@gnu.org>
parents: 35724
diff changeset
38 ;;;###autoload
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
39 (defvar lpr-lp-system
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
40 (memq system-type '(usg-unix-v dgux hpux irix)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
41
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
42
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
43 (defgroup lpr nil
64015
d2af21b7c1a4 (lpr): Finish `defgroup' description with period.
Juanma Barranquero <lekktu@gmail.com>
parents: 52401
diff changeset
44 "Print Emacs buffer on line printer."
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
45 :group 'wp)
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
46
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
47
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
48 ;;;###autoload
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
49 (defcustom printer-name
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
50 (and lpr-windows-system "PRN")
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
51 "*The name of a local printer to which data is sent for printing.
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
52 \(Note that PostScript files are sent to `ps-printer-name', which see.\)
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
53
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
54 On Unix-like systems, a string value should be a name understood by
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
55 lpr's -P option; otherwise the value should be nil.
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
56
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
57 On MS-DOS and MS-Windows systems, a string value is taken as the name of
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
58 a printer device or port, provided `lpr-command' is set to \"\".
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
59 Typical non-default settings would be \"LPT1\" to \"LPT3\" for parallel
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
60 printers, or \"COM1\" to \"COM4\" or \"AUX\" for serial printers, or
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
61 \"//hostname/printer\" for a shared network printer. You can also set
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
62 it to the name of a file, in which case the output gets appended to that
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
63 file. If you want to discard the printed output, set this to \"NUL\"."
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
64 :type '(choice :menu-tag "Printer Name"
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
65 :tag "Printer Name"
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
66 (const :tag "Default" nil)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
67 ;; could use string but then we lose completion for files.
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
68 (file :tag "Name"))
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
69 :group 'lpr)
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
70
269
2ca8cdb96a9f *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 262
diff changeset
71 ;;;###autoload
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
72 (defcustom lpr-switches nil
13803
e0bae9f528fe (lpr-switches, lpr-add-switches): Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 11831
diff changeset
73 "*List of strings to pass as extra options for the printer program.
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
74 It is recommended to set `printer-name' instead of including an explicit
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
75 switch on this list.
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
76 See `lpr-command'."
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
77 :type '(repeat (string :tag "Argument"))
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
78 :group 'lpr)
5267
f7ea27a729b8 (lpr-headers-switches): Treat hpux like usg-unix-v.
Richard M. Stallman <rms@gnu.org>
parents: 5004
diff changeset
79
36420
213d5ac23246 (lpr-add-switches): Default to t on gnu/linux.
Richard M. Stallman <rms@gnu.org>
parents: 36419
diff changeset
80 (defcustom lpr-add-switches (memq system-type '(berkeley-unix gnu/linux))
213d5ac23246 (lpr-add-switches): Default to t on gnu/linux.
Richard M. Stallman <rms@gnu.org>
parents: 36419
diff changeset
81 "*Non-nil means construct `-T' and `-J' options for the printer program.
13803
e0bae9f528fe (lpr-switches, lpr-add-switches): Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 11831
diff changeset
82 These are made assuming that the program is `lpr';
e0bae9f528fe (lpr-switches, lpr-add-switches): Doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 11831
diff changeset
83 if you are using some other incompatible printer program,
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
84 this variable should be nil."
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
85 :type 'boolean
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
86 :group 'lpr)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
88 (defcustom lpr-printer-switch
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
89 (if lpr-lp-system
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
90 "-d "
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
91 "-P")
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
92 "*Printer switch, that is, something like \"-P\", \"-d \", \"/D:\", etc.
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
93 This switch is used in conjunction with `printer-name'."
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
94 :type '(choice :menu-tag "Printer Name Switch"
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
95 :tag "Printer Name Switch"
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
96 (const :tag "None" nil)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
97 (string :tag "Printer Switch"))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
98 :group 'lpr)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
99
1068
2fee5d1fe47e entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 922
diff changeset
100 ;;;###autoload
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
101 (defcustom lpr-command
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
102 (cond
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
103 (lpr-windows-system
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
104 "")
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
105 (lpr-lp-system
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
106 "lp")
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
107 (t
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
108 "lpr"))
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
109 "*Name of program for printing a file.
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
110
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
111 On MS-DOS and MS-Windows systems, if the value is an empty string then
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
112 Emacs will write directly to the printer port named by `printer-name'.
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
113 The programs `print' and `nprint' (the standard print programs on
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
114 Windows NT and Novell Netware respectively) are handled specially, using
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
115 `printer-name' as the destination for output; any other program is
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
116 treated like `lpr' except that an explicit filename is given as the last
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
117 argument."
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
118 :type 'string
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
119 :group 'lpr)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120
10637
6e25c10f6fe8 (lpr-headers-switches): Default is nil.
Richard M. Stallman <rms@gnu.org>
parents: 10054
diff changeset
121 ;; Default is nil, because that enables us to use pr -f
6e25c10f6fe8 (lpr-headers-switches): Default is nil.
Richard M. Stallman <rms@gnu.org>
parents: 10054
diff changeset
122 ;; which is more reliable than pr with no args, which is what lpr -p does.
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
123 (defcustom lpr-headers-switches nil
13894
eeee95f4d989 (lpr-page-header-switches, lpr-headers-switches): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 13803
diff changeset
124 "*List of strings of options to request page headings in the printer program.
10637
6e25c10f6fe8 (lpr-headers-switches): Default is nil.
Richard M. Stallman <rms@gnu.org>
parents: 10054
diff changeset
125 If nil, we run `lpr-page-header-program' to make page headings
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
126 and print the result."
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
127 :type '(repeat (string :tag "Argument"))
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
128 :group 'lpr)
5267
f7ea27a729b8 (lpr-headers-switches): Treat hpux like usg-unix-v.
Richard M. Stallman <rms@gnu.org>
parents: 5004
diff changeset
129
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
130 (defcustom print-region-function nil
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 "Function to call to print the region on a printer.
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
132 See definition of `print-region-1' for calling conventions."
35969
db288677db54 (print-region-function): Fix :type.
Dave Love <fx@gnu.org>
parents: 35743
diff changeset
133 :type '(choice (const nil) function)
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
134 :group 'lpr)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
136 (defcustom lpr-page-header-program "pr"
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
137 "*Name of program for adding page headers to a file."
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
138 :type 'string
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
139 :group 'lpr)
9187
8cf9181c119e (print-region-1): Use them instead of just pr.
Richard M. Stallman <rms@gnu.org>
parents: 8598
diff changeset
140
17813
2e13bced7aff (lpr-page-header-switches): Use -F, not -f.
Richard M. Stallman <rms@gnu.org>
parents: 17695
diff changeset
141 ;; Berkeley systems support -F, and GNU pr supports both -f and -F,
2e13bced7aff (lpr-page-header-switches): Use -F, not -f.
Richard M. Stallman <rms@gnu.org>
parents: 17695
diff changeset
142 ;; So it looks like -F is a better default.
72747
4dea9a34fd2e (lpr-page-header-switches): Page title switch is one of them.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
143 (defcustom lpr-page-header-switches '("-h %s" "-F")
4dea9a34fd2e (lpr-page-header-switches): Page title switch is one of them.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
144 "List of strings to use as options for the page-header-generating program.
4dea9a34fd2e (lpr-page-header-switches): Page title switch is one of them.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
145 If `%s' appears in one of the strings, it is substituted by the page title.
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
146 The variable `lpr-page-header-program' specifies the program to use."
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
147 :type '(repeat string)
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
148 :group 'lpr)
9187
8cf9181c119e (print-region-1): Use them instead of just pr.
Richard M. Stallman <rms@gnu.org>
parents: 8598
diff changeset
149
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 216
diff changeset
150 ;;;###autoload
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151 (defun lpr-buffer ()
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
152 "Print buffer contents without pagination or page headers.
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
153 See the variables `lpr-switches' and `lpr-command'
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
154 for customization of the printer command."
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 (interactive)
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
156 (print-region-1 (point-min) (point-max) lpr-switches nil))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
157
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 216
diff changeset
158 ;;;###autoload
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159 (defun print-buffer ()
26219
af8d23cd7220 (print-buffer): Doc-string fix.
Gerd Moellmann <gerd@gnu.org>
parents: 24091
diff changeset
160 "Paginate and print buffer contents.
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
161
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
162 The variable `lpr-headers-switches' controls how to paginate.
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
163 If it is nil (the default), we run the `pr' program (or whatever program
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
164 `lpr-page-header-program' specifies) to paginate.
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
165 `lpr-page-header-switches' specifies the switches for that program.
26219
af8d23cd7220 (print-buffer): Doc-string fix.
Gerd Moellmann <gerd@gnu.org>
parents: 24091
diff changeset
166
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
167 Otherwise, the switches in `lpr-headers-switches' are used
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
168 in the print command itself; we expect them to request pagination.
49597
e88404e8f2cf Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 45461
diff changeset
169
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
170 See the variables `lpr-switches' and `lpr-command'
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
171 for further customization of the printer command."
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
172 (interactive)
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
173 (print-region-1 (point-min) (point-max) lpr-switches t))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
174
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 216
diff changeset
175 ;;;###autoload
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
176 (defun lpr-region (start end)
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
177 "Print region contents without pagination or page headers.
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
178 See the variables `lpr-switches' and `lpr-command'
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
179 for customization of the printer command."
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 (interactive "r")
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181 (print-region-1 start end lpr-switches nil))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
182
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 216
diff changeset
183 ;;;###autoload
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
184 (defun print-region (start end)
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
185 "Paginate and print the region contents.
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
186
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
187 The variable `lpr-headers-switches' controls how to paginate.
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
188 If it is nil (the default), we run the `pr' program (or whatever program
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
189 `lpr-page-header-program' specifies) to paginate.
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
190 `lpr-page-header-switches' specifies the switches for that program.
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
191
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
192 Otherwise, the switches in `lpr-headers-switches' are used
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
193 in the print command itself; we expect them to request pagination.
49597
e88404e8f2cf Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 45461
diff changeset
194
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
195 See the variables `lpr-switches' and `lpr-command'
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
196 for further customization of the printer command."
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 (interactive "r")
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198 (print-region-1 start end lpr-switches t))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
199
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
200 (defun print-region-1 (start end switches page-headers)
8113
6a12a2845ccc (print-region-1): Essentially undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 8021
diff changeset
201 ;; On some MIPS system, having a space in the job name
6a12a2845ccc (print-region-1): Essentially undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 8021
diff changeset
202 ;; crashes the printer demon. But using dashes looks ugly
6a12a2845ccc (print-region-1): Essentially undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 8021
diff changeset
203 ;; and it seems to annoying to do for that MIPS system.
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
204 (let ((name (concat (buffer-name) " Emacs buffer"))
8020
23deb92071c6 (print-region-1): Don't include a space in the job name.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
205 (title (concat (buffer-name) " Emacs buffer"))
21569
c1f86e273a38 (print-region-1): Stop using binary-process-{in,out}put,
Eli Zaretskii <eliz@gnu.org>
parents: 20278
diff changeset
206 ;; Make pipes use the same coding system as
c1f86e273a38 (print-region-1): Stop using binary-process-{in,out}put,
Eli Zaretskii <eliz@gnu.org>
parents: 20278
diff changeset
207 ;; writing the buffer to a file would.
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
208 (coding-system-for-write (or coding-system-for-write
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
209 buffer-file-coding-system))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
210 (coding-system-for-read (or coding-system-for-read
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
211 buffer-file-coding-system))
10708
8a15461d4f64 (print-region-1): Include print options in echo area msgs.
Richard M. Stallman <rms@gnu.org>
parents: 10700
diff changeset
212 (width tab-width)
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
213 nswitches
10708
8a15461d4f64 (print-region-1): Include print options in echo area msgs.
Richard M. Stallman <rms@gnu.org>
parents: 10700
diff changeset
214 switch-string)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
215 (save-excursion
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
216 (and page-headers lpr-headers-switches
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
217 ;; It's possible to use an lpr option to get page headers.
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
218 (setq switches (append (if (stringp lpr-headers-switches)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
219 (list lpr-headers-switches)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
220 lpr-headers-switches)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
221 switches)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
222 (setq nswitches (lpr-flatten-list
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
223 (mapcar 'lpr-eval-switch ; Dynamic evaluation
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
224 switches))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
225 switch-string (if switches
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
226 (concat " with options "
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
227 (mapconcat 'identity switches " "))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
228 ""))
10708
8a15461d4f64 (print-region-1): Include print options in echo area msgs.
Richard M. Stallman <rms@gnu.org>
parents: 10700
diff changeset
229 (message "Spooling%s..." switch-string)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
230 (if (/= tab-width 8)
10700
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
231 (let ((new-coords (print-region-new-buffer start end)))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
232 (setq start (car new-coords)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
233 end (cdr new-coords)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
234 tab-width width)
4446
ff1f9d7addd9 (print-region-1): Make END a marker so untabify relocates it.
Richard M. Stallman <rms@gnu.org>
parents: 2382
diff changeset
235 (save-excursion
ff1f9d7addd9 (print-region-1): Make END a marker so untabify relocates it.
Richard M. Stallman <rms@gnu.org>
parents: 2382
diff changeset
236 (goto-char end)
ff1f9d7addd9 (print-region-1): Make END a marker so untabify relocates it.
Richard M. Stallman <rms@gnu.org>
parents: 2382
diff changeset
237 (setq end (point-marker)))
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
238 (untabify (point-min) (point-max))))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
239 (if page-headers
5267
f7ea27a729b8 (lpr-headers-switches): Treat hpux like usg-unix-v.
Richard M. Stallman <rms@gnu.org>
parents: 5004
diff changeset
240 (if lpr-headers-switches
10708
8a15461d4f64 (print-region-1): Include print options in echo area msgs.
Richard M. Stallman <rms@gnu.org>
parents: 10700
diff changeset
241 ;; We handled this above by modifying SWITCHES.
8a15461d4f64 (print-region-1): Include print options in echo area msgs.
Richard M. Stallman <rms@gnu.org>
parents: 10700
diff changeset
242 nil
10637
6e25c10f6fe8 (lpr-headers-switches): Default is nil.
Richard M. Stallman <rms@gnu.org>
parents: 10054
diff changeset
243 ;; Run a separate program to get page headers.
10700
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
244 (let ((new-coords (print-region-new-buffer start end)))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
245 (apply 'call-process-region (car new-coords) (cdr new-coords)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
246 lpr-page-header-program t t nil
72747
4dea9a34fd2e (lpr-page-header-switches): Page title switch is one of them.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
247 (mapcar (lambda (e) (format e title))
4dea9a34fd2e (lpr-page-header-switches): Page title switch is one of them.
Eli Zaretskii <eliz@gnu.org>
parents: 68651
diff changeset
248 lpr-page-header-switches)))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
249 (setq start (point-min)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
250 end (point-max))))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
251 (apply (or print-region-function 'call-process-region)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
252 (nconc (list start end lpr-command
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
253 nil nil nil)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
254 (and lpr-add-switches
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
255 (list "-J" name))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
256 ;; These belong in pr if we are using that.
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
257 (and lpr-add-switches lpr-headers-switches
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
258 (list "-T" title))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
259 (and (stringp printer-name)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
260 (list (concat lpr-printer-switch
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
261 printer-name)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
262 nswitches))
4446
ff1f9d7addd9 (print-region-1): Make END a marker so untabify relocates it.
Richard M. Stallman <rms@gnu.org>
parents: 2382
diff changeset
263 (if (markerp end)
ff1f9d7addd9 (print-region-1): Make END a marker so untabify relocates it.
Richard M. Stallman <rms@gnu.org>
parents: 2382
diff changeset
264 (set-marker end nil))
10708
8a15461d4f64 (print-region-1): Include print options in echo area msgs.
Richard M. Stallman <rms@gnu.org>
parents: 10700
diff changeset
265 (message "Spooling%s...done" switch-string))))
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
266
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
267 ;; This function copies the text between start and end
10700
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
268 ;; into a new buffer, makes that buffer current.
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
269 ;; It returns the new range to print from the new current buffer
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
270 ;; as (START . END).
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
271
5267
f7ea27a729b8 (lpr-headers-switches): Treat hpux like usg-unix-v.
Richard M. Stallman <rms@gnu.org>
parents: 5004
diff changeset
272 (defun print-region-new-buffer (ostart oend)
10700
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
273 (if (string= (buffer-name) " *spool temp*")
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
274 (cons ostart oend)
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
275 (let ((oldbuf (current-buffer)))
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
276 (set-buffer (get-buffer-create " *spool temp*"))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
277 (widen)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
278 (erase-buffer)
10700
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
279 (insert-buffer-substring oldbuf ostart oend)
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
280 (cons (point-min) (point-max)))))
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 617
diff changeset
281
2382
030b76db285a (printify-buffer) Added, debugged from Roland McGrath's printify-buffer code
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
282 (defun printify-region (begin end)
17695
5788aa5f0fd0 (printify-region): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 17414
diff changeset
283 "Replace nonprinting characters in region with printable representations.
5788aa5f0fd0 (printify-region): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 17414
diff changeset
284 The printable representations use ^ (for ASCII control characters) or hex.
5788aa5f0fd0 (printify-region): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 17414
diff changeset
285 The characters tab, linefeed, space, return and formfeed are not affected."
2382
030b76db285a (printify-buffer) Added, debugged from Roland McGrath's printify-buffer code
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
286 (interactive "r")
030b76db285a (printify-buffer) Added, debugged from Roland McGrath's printify-buffer code
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
287 (save-excursion
52098
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
288 (save-restriction
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
289 (narrow-to-region begin end)
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
290 (goto-char (point-min))
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
291 (let (c)
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
292 (while (re-search-forward "[\^@-\^h\^k\^n-\^_\177-\377]" nil t)
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
293 (setq c (preceding-char))
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
294 (delete-backward-char 1)
64015
d2af21b7c1a4 (lpr): Finish `defgroup' description with period.
Juanma Barranquero <lekktu@gmail.com>
parents: 52401
diff changeset
295 (insert (if (< c ?\s)
52098
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
296 (format "\\^%c" (+ c ?@))
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
297 (format "\\%02x" c))))))))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
298
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
299 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
300 ;; Functions hacked from `ps-print' package.
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
301
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
302 ;; Dynamic evaluation
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
303 (defun lpr-eval-switch (arg)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
304 (cond ((stringp arg) arg)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
305 ((functionp arg) (apply arg nil))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
306 ((symbolp arg) (symbol-value arg))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
307 ((consp arg) (apply (car arg) (cdr arg)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
308 (t nil)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
309
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
310 ;; `lpr-flatten-list' is defined here (copied from "message.el" and
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
311 ;; enhanced to handle dotted pairs as well) until we can get some
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
312 ;; sensible autoloads, or `flatten-list' gets put somewhere decent.
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
313
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
314 ;; (lpr-flatten-list '((a . b) c (d . e) (f g h) i . j))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
315 ;; => (a b c d e f g h i j)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
316
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
317 (defun lpr-flatten-list (&rest list)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
318 (lpr-flatten-list-1 list))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
319
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
320 (defun lpr-flatten-list-1 (list)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
321 (cond
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
322 ((null list) (list))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
323 ((consp list)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
324 (append (lpr-flatten-list-1 (car list))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
325 (lpr-flatten-list-1 (cdr list))))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
326 (t (list list))))
2382
030b76db285a (printify-buffer) Added, debugged from Roland McGrath's printify-buffer code
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
327
11831
7e5af94d9527 Add provide call.
Karl Heuer <kwzh@gnu.org>
parents: 10708
diff changeset
328 (provide 'lpr)
7e5af94d9527 Add provide call.
Karl Heuer <kwzh@gnu.org>
parents: 10708
diff changeset
329
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52098
diff changeset
330 ;;; arch-tag: 21c3f821-ebec-4ca9-ac67-a81e4b75c62a
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 617
diff changeset
331 ;;; lpr.el ends here