annotate lisp/lpr.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents d835100c3e8b
children 141d3f14d8c3
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,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 105939
diff changeset
4 ;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 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
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
155
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
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; (at your option) any later version.
155
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
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1671
diff changeset
24 ;;; Commentary:
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1671
diff changeset
25
35743
4db4ab2d1dd4 (lpr-windows-system, lpr-lp-system): Add autoload cookies.
Gerd Moellmann <gerd@gnu.org>
parents: 35724
diff changeset
26 ;; 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
27 ;; 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
28 ;; 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
29
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
30 ;;; Code:
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31
35743
4db4ab2d1dd4 (lpr-windows-system, lpr-lp-system): Add autoload cookies.
Gerd Moellmann <gerd@gnu.org>
parents: 35724
diff changeset
32 ;;;###autoload
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
33 (defvar lpr-windows-system
104552
10c38084881d Remove code for defunct system-types emx, macos, mswindows,
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
34 (memq system-type '(ms-dos windows-nt)))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
35
35743
4db4ab2d1dd4 (lpr-windows-system, lpr-lp-system): Add autoload cookies.
Gerd Moellmann <gerd@gnu.org>
parents: 35724
diff changeset
36 ;;;###autoload
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
37 (defvar lpr-lp-system
87595
4c6c79916238 * configure.in: Remove references to unsupported systems.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78236
diff changeset
38 (memq system-type '(usg-unix-v hpux irix)))
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
39
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
40
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
41 (defgroup lpr nil
64015
d2af21b7c1a4 (lpr): Finish `defgroup' description with period.
Juanma Barranquero <lekktu@gmail.com>
parents: 52401
diff changeset
42 "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
43 :group 'wp)
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
44
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
45
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
46 ;;;###autoload
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
47 (defcustom printer-name
104552
10c38084881d Remove code for defunct system-types emx, macos, mswindows,
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
48 (and (eq system-type 'ms-dos) "PRN")
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
49 "The name of a local printer to which data is sent for printing.
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
50 \(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
51
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
52 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
53 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
54
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
55 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
56 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
57 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
58 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
59 \"//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
60 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
61 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
62 :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
63 :tag "Printer Name"
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
64 (const :tag "Default" nil)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
65 ;; 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
66 (file :tag "Name"))
22679
08902da4c832 (printer-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents: 21569
diff changeset
67 :group 'lpr)
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
68
269
2ca8cdb96a9f *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 262
diff changeset
69 ;;;###autoload
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
70 (defcustom lpr-switches nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
71 "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
72 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
73 switch on this list.
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
74 See `lpr-command'."
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
75 :type '(repeat (string :tag "Argument"))
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
76 :group 'lpr)
5267
f7ea27a729b8 (lpr-headers-switches): Treat hpux like usg-unix-v.
Richard M. Stallman <rms@gnu.org>
parents: 5004
diff changeset
77
36420
213d5ac23246 (lpr-add-switches): Default to t on gnu/linux.
Richard M. Stallman <rms@gnu.org>
parents: 36419
diff changeset
78 (defcustom lpr-add-switches (memq system-type '(berkeley-unix gnu/linux))
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
79 "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
80 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
81 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
82 this variable should be nil."
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
83 :type 'boolean
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
84 :group 'lpr)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
86 (defcustom lpr-printer-switch
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
87 (if lpr-lp-system
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
88 "-d "
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
89 "-P")
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
90 "Printer switch, that is, something like \"-P\", \"-d \", \"/D:\", etc.
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
91 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
92 :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
93 :tag "Printer Name Switch"
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
94 (const :tag "None" nil)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
95 (string :tag "Printer Switch"))
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
96 :group 'lpr)
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
97
1068
2fee5d1fe47e entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 922
diff changeset
98 ;;;###autoload
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
99 (defcustom lpr-command
105939
a0f778f4a995 * term/x-win.el (x-gtk-stock-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 104552
diff changeset
100 (purecopy
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
101 (cond
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
102 (lpr-windows-system
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
103 "")
35724
f2e26e453776 XEmacs compatibility and doc fixes from Vinicius Jose Latorre
Eli Zaretskii <eliz@gnu.org>
parents: 30101
diff changeset
104 (lpr-lp-system
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
105 "lp")
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
106 (t
105939
a0f778f4a995 * term/x-win.el (x-gtk-stock-map):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 104552
diff changeset
107 "lpr")))
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
108 "Name of program for printing a file.
24091
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
109
1874c3236349 (printer-name): Update docstring about usage on MS-DOS
Andrew Innes <andrewi@gnu.org>
parents: 23264
diff changeset
110 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
111 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
112 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
113 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
114 `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
115 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
116 argument."
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
117 :type 'string
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
118 :group 'lpr)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119
10637
6e25c10f6fe8 (lpr-headers-switches): Default is nil.
Richard M. Stallman <rms@gnu.org>
parents: 10054
diff changeset
120 ;; 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
121 ;; 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
122 (defcustom lpr-headers-switches nil
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
123 "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
124 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
125 and print the result."
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
126 :type '(repeat (string :tag "Argument"))
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
127 :group 'lpr)
5267
f7ea27a729b8 (lpr-headers-switches): Treat hpux like usg-unix-v.
Richard M. Stallman <rms@gnu.org>
parents: 5004
diff changeset
128
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
129 (defcustom print-region-function nil
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130 "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
131 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
132 :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
133 :group 'lpr)
155
5dfb6532c1b1 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
135 (defcustom lpr-page-header-program "pr"
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
136 "Name of program for adding page headers to a file."
17414
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
137 :type 'string
f967f12c8ec8 Add defgroup's; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 14188
diff changeset
138 :group 'lpr)
9187
8cf9181c119e (print-region-1): Use them instead of just pr.
Richard M. Stallman <rms@gnu.org>
parents: 8598
diff changeset
139
17813
2e13bced7aff (lpr-page-header-switches): Use -F, not -f.
Richard M. Stallman <rms@gnu.org>
parents: 17695
diff changeset
140 ;; 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
141 ;; So it looks like -F is a better default.
78021
e12f9e8fde4d (lpr-page-header-switches): Move %s to separate element for correct
Glenn Morris <rgm@gnu.org>
parents: 75347
diff changeset
142 (defcustom lpr-page-header-switches '("-h" "%s" "-F")
100171
d42aff5ca541 * align.el:
Lute Kamstra <lute@gnu.org>
parents: 94678
diff changeset
143 "List of strings to use as options for the page-header-generating program.
78021
e12f9e8fde4d (lpr-page-header-switches): Move %s to separate element for correct
Glenn Morris <rgm@gnu.org>
parents: 75347
diff changeset
144 If `%s' appears in any of the strings, it is substituted by the page title.
e12f9e8fde4d (lpr-page-header-switches): Move %s to separate element for correct
Glenn Morris <rgm@gnu.org>
parents: 75347
diff changeset
145 Note that for correct quoting, `%s' should normally be a separate element.
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))
108765
d835100c3e8b Replace Lisp calls to delete-backward-char by delete-char.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
294 (delete-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
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 88056
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