annotate lisp/lpr.el @ 61263:56619c3aaf99

(fancy-splash-text): Shorten default text of "Emacs Tutorial" line. Also, if the current language env indicates an available tutorial file other than TUTORIAL, extract its title and append it to the line in parentheses. (fancy-splash-insert): If arg is a thunk, funcall it.
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Mon, 04 Apr 2005 07:41:58 +0000
parents 695cf19ef79e
children d2af21b7c1a4 375f2633d815
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
52098
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
3 ;; Copyright (C) 1985, 1988, 1992, 1994, 2001, 2003
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
4 ;; 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
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13894
diff changeset
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13894
diff changeset
24 ;; Boston, MA 02111-1307, 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
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
44 "Print Emacs buffer on line printer"
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.
36419
50998d3dd0bb (lpr-page-header-switches, print-region-1): Undo 2000-07-06 change.
Richard M. Stallman <rms@gnu.org>
parents: 35969
diff changeset
143 (defcustom lpr-page-header-switches '("-F")
13894
eeee95f4d989 (lpr-page-header-switches, lpr-headers-switches): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 13803
diff changeset
144 "*List of strings to use as options for the page-header-generating program.
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
145 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
146 :type '(repeat string)
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
147 :group 'lpr)
9187
8cf9181c119e (print-region-1): Use them instead of just pr.
Richard M. Stallman <rms@gnu.org>
parents: 8598
diff changeset
148
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 216
diff changeset
149 ;;;###autoload
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
150 (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
151 "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
152 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
153 for customization of the printer command."
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 (interactive)
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 (print-region-1 (point-min) (point-max) lpr-switches nil))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
156
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 216
diff changeset
157 ;;;###autoload
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158 (defun print-buffer ()
26219
af8d23cd7220 (print-buffer): Doc-string fix.
Gerd Moellmann <gerd@gnu.org>
parents: 24091
diff changeset
159 "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
160
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
161 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
162 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
163 `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
164 `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
165
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
166 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
167 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
168
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
169 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
170 for further customization of the printer command."
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
171 (interactive)
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
172 (print-region-1 (point-min) (point-max) lpr-switches t))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
173
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 216
diff changeset
174 ;;;###autoload
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175 (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
176 "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
177 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
178 for customization of the printer command."
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
179 (interactive "r")
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 (print-region-1 start end lpr-switches nil))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 216
diff changeset
182 ;;;###autoload
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
183 (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
184 "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
185
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
186 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
187 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
188 `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
189 `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
190
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
191 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
192 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
193
27007
2d337fafb392 (lpr-buffer, print-buffer, lpr-region, print-region): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 26219
diff changeset
194 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
195 for further customization of the printer command."
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
196 (interactive "r")
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 (print-region-1 start end lpr-switches t))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
199 (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
200 ;; 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
201 ;; 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
202 ;; 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
203 (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
204 (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
205 ;; 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
206 ;; 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
207 (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
208 buffer-file-coding-system))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
209 (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
210 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
211 (width tab-width)
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
212 nswitches
10708
8a15461d4f64 (print-region-1): Include print options in echo area msgs.
Richard M. Stallman <rms@gnu.org>
parents: 10700
diff changeset
213 switch-string)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
214 (save-excursion
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
215 (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
216 ;; 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
217 (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
218 (list lpr-headers-switches)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
219 lpr-headers-switches)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
220 switches)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
221 (setq nswitches (lpr-flatten-list
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
222 (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
223 switches))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
224 switch-string (if switches
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
225 (concat " with options "
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
226 (mapconcat 'identity switches " "))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
227 ""))
10708
8a15461d4f64 (print-region-1): Include print options in echo area msgs.
Richard M. Stallman <rms@gnu.org>
parents: 10700
diff changeset
228 (message "Spooling%s..." switch-string)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
229 (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
230 (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
231 (setq start (car new-coords)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
232 end (cdr new-coords)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
233 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
234 (save-excursion
ff1f9d7addd9 (print-region-1): Make END a marker so untabify relocates it.
Richard M. Stallman <rms@gnu.org>
parents: 2382
diff changeset
235 (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
236 (setq end (point-marker)))
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
237 (untabify (point-min) (point-max))))
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
238 (if page-headers
5267
f7ea27a729b8 (lpr-headers-switches): Treat hpux like usg-unix-v.
Richard M. Stallman <rms@gnu.org>
parents: 5004
diff changeset
239 (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
240 ;; 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
241 nil
10637
6e25c10f6fe8 (lpr-headers-switches): Default is nil.
Richard M. Stallman <rms@gnu.org>
parents: 10054
diff changeset
242 ;; 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
243 (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
244 (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
245 lpr-page-header-program t t nil
36419
50998d3dd0bb (lpr-page-header-switches, print-region-1): Undo 2000-07-06 change.
Richard M. Stallman <rms@gnu.org>
parents: 35969
diff changeset
246 (nconc (list "-h" title)
50998d3dd0bb (lpr-page-header-switches, print-region-1): Undo 2000-07-06 change.
Richard M. Stallman <rms@gnu.org>
parents: 35969
diff changeset
247 lpr-page-header-switches)))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
248 (setq start (point-min)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
249 end (point-max))))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
250 (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
251 (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
252 nil nil nil)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
253 (and lpr-add-switches
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
254 (list "-J" name))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
255 ;; 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
256 (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
257 (list "-T" title))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
258 (and (stringp printer-name)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
259 (list (concat lpr-printer-switch
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
260 printer-name)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
261 nswitches))
4446
ff1f9d7addd9 (print-region-1): Make END a marker so untabify relocates it.
Richard M. Stallman <rms@gnu.org>
parents: 2382
diff changeset
262 (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
263 (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
264 (message "Spooling%s...done" switch-string))))
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
265
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
266 ;; 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
267 ;; 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
268 ;; 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
269 ;; as (START . END).
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
270
5267
f7ea27a729b8 (lpr-headers-switches): Treat hpux like usg-unix-v.
Richard M. Stallman <rms@gnu.org>
parents: 5004
diff changeset
271 (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
272 (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
273 (cons ostart oend)
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
274 (let ((oldbuf (current-buffer)))
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
275 (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
276 (widen)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
277 (erase-buffer)
10700
f6f235bc26ba (print-region-new-buffer): Return new start and end.
Richard M. Stallman <rms@gnu.org>
parents: 10670
diff changeset
278 (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
279 (cons (point-min) (point-max)))))
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 617
diff changeset
280
2382
030b76db285a (printify-buffer) Added, debugged from Roland McGrath's printify-buffer code
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
281 (defun printify-region (begin end)
17695
5788aa5f0fd0 (printify-region): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 17414
diff changeset
282 "Replace nonprinting characters in region with printable representations.
5788aa5f0fd0 (printify-region): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 17414
diff changeset
283 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
284 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
285 (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
286 (save-excursion
52098
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
287 (save-restriction
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
288 (narrow-to-region begin end)
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
289 (goto-char (point-min))
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
290 (let (c)
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
291 (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
292 (setq c (preceding-char))
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
293 (delete-backward-char 1)
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
294 (insert (if (< c ?\ )
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
295 (format "\\^%c" (+ c ?@))
6e131215906b printify-region fix
Vinicius Jose Latorre <viniciusjl@ig.com.br>
parents: 49597
diff changeset
296 (format "\\%02x" c))))))))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
297
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 ;; 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
300
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
301 ;; Dynamic evaluation
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
302 (defun lpr-eval-switch (arg)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
303 (cond ((stringp arg) arg)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
304 ((functionp arg) (apply arg nil))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
305 ((symbolp arg) (symbol-value arg))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
306 ((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
307 (t nil)))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
308
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
309 ;; `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
310 ;; 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
311 ;; 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
312
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
313 ;; (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
314 ;; => (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
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
316 (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
317 (lpr-flatten-list-1 list))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
318
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
319 (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
320 (cond
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
321 ((null list) (list))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
322 ((consp list)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
323 (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
324 (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
325 (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
326
11831
7e5af94d9527 Add provide call.
Karl Heuer <kwzh@gnu.org>
parents: 10708
diff changeset
327 (provide 'lpr)
7e5af94d9527 Add provide call.
Karl Heuer <kwzh@gnu.org>
parents: 10708
diff changeset
328
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52098
diff changeset
329 ;;; arch-tag: 21c3f821-ebec-4ca9-ac67-a81e4b75c62a
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 617
diff changeset
330 ;;; lpr.el ends here