Mercurial > emacs
annotate lisp/rlogin.el @ 16883:d1d4d81f9ece
Change all uses of win95, winnt, and win32
into Windows 95, Windows NT, and W32, respectively.
Expand "win" substring in variables referring to Microsoft Windows
constructs into "windows".
Canonicalize header comments to use same terminology.
author | Geoff Voelker <voelker@cs.washington.edu> |
---|---|
date | Mon, 20 Jan 1997 00:34:34 +0000 |
parents | 1fe754bafbcb |
children | cc4d6343afca |
rev | line source |
---|---|
2233
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2231
diff
changeset
|
1 ;;; rlogin.el --- remote login interface |
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2231
diff
changeset
|
2 |
14169 | 3 ;; Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. |
4 | |
2539
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
5 ;; Author: Noah Friedman |
2233
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2231
diff
changeset
|
6 ;; Maintainer: Noah Friedman <friedman@prep.ai.mit.edu> |
2259 | 7 ;; Keywords: unix, comm |
2233
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2231
diff
changeset
|
8 |
14169 | 9 ;; This file is part of GNU Emacs. |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
2315
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
12 ;; it under the terms of the GNU General Public License as published by |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
14 ;; any later version. |
14169 | 15 |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
2315
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
19 ;; GNU General Public License for more details. |
14169 | 20 |
2315
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
21 ;; You should have received a copy of the GNU General Public License |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
24 ;; Boston, MA 02111-1307, USA. | |
2231 | 25 |
15490
1fe754bafbcb
(rlogin): add rlogin-carriage-filter to comint-output-filter-functions, not
Noah Friedman <friedman@splode.com>
parents:
15465
diff
changeset
|
26 ;; $Id: rlogin.el,v 1.34 1996/06/20 17:30:41 friedman Exp friedman $ |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
27 |
2315
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
28 ;;; Commentary: |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2259
diff
changeset
|
29 |
2387
cb44857cab89
moby rlogin-filter fixes
Noah Friedman <friedman@splode.com>
parents:
2315
diff
changeset
|
30 ;; Support for remote logins using `rlogin'. |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
31 ;; This program is layered on top of shell.el; the code here only accounts |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
32 ;; for the variations needed to handle a remote process, e.g. directory |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
33 ;; tracking and the sending of some special characters. |
4856
896f3b49b53c
(rlogin-initially-track-cwd): New variable.
Noah Friedman <friedman@splode.com>
parents:
4685
diff
changeset
|
34 |
7922
8fcef41c85b7
(rlogin-password-paranoia): Variable deleted.
Noah Friedman <friedman@splode.com>
parents:
5793
diff
changeset
|
35 ;; If you wish for rlogin mode to prompt you in the minibuffer for |
8fcef41c85b7
(rlogin-password-paranoia): Variable deleted.
Noah Friedman <friedman@splode.com>
parents:
5793
diff
changeset
|
36 ;; passwords when a password prompt appears, just enter m-x send-invisible |
8fcef41c85b7
(rlogin-password-paranoia): Variable deleted.
Noah Friedman <friedman@splode.com>
parents:
5793
diff
changeset
|
37 ;; and type in your line, or add `comint-watch-for-password-prompt' to |
8fcef41c85b7
(rlogin-password-paranoia): Variable deleted.
Noah Friedman <friedman@splode.com>
parents:
5793
diff
changeset
|
38 ;; `comint-output-filter-functions'. |
2231 | 39 |
2233
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2231
diff
changeset
|
40 ;;; Code: |
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2231
diff
changeset
|
41 |
2231 | 42 (require 'comint) |
4685 | 43 (require 'shell) |
2231 | 44 |
45 (defvar rlogin-program "rlogin" | |
46 "*Name of program to invoke rlogin") | |
47 | |
2404
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
48 (defvar rlogin-explicit-args nil |
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
49 "*List of arguments to pass to rlogin on the command line.") |
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
50 |
2231 | 51 (defvar rlogin-mode-hook nil |
52 "*Hooks to run after setting current buffer to rlogin-mode.") | |
53 | |
2539
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
54 (defvar rlogin-process-connection-type nil |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
55 "*If non-`nil', use a pty for the local rlogin process. |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
56 If `nil', use a pipe (if pipes are supported on the local system). |
2539
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
57 |
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
58 Generally it is better not to waste ptys on systems which have a static |
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
59 number of them. On the other hand, some implementations of `rlogin' assume |
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
60 a pty is being used, and errors will result from using a pipe instead.") |
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
61 |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
62 (defvar rlogin-directory-tracking-mode 'local |
10130
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
63 "*Control whether and how to do directory tracking in an rlogin buffer. |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
64 |
10130
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
65 nil means don't do directory tracking. |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
66 |
10130
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
67 t means do so using an ftp remote file name. |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
68 |
10130
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
69 Any other value means do directory tracking using local file names. |
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
70 This works only if the remote machine and the local one |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
71 share the same directories (through NFS). This is the default. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
72 |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
73 This variable becomes local to a buffer when set in any fashion for it. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
74 |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
75 It is better to use the function of the same name to change the behavior of |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
76 directory tracking in an rlogin session once it has begun, rather than |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
77 simply setting this variable, since the function does the necessary |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
78 re-synching of directories.") |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
79 |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
80 (make-variable-buffer-local 'rlogin-directory-tracking-mode) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
81 |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
82 (defvar rlogin-host nil |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
83 "*The name of the remote host. This variable is buffer-local.") |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
84 |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
85 (defvar rlogin-remote-user nil |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
86 "*The username used on the remote host. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
87 This variable is buffer-local and defaults to your local user name. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
88 If rlogin is invoked with the `-l' option to specify the remote username, |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
89 this variable is set from that.") |
4856
896f3b49b53c
(rlogin-initially-track-cwd): New variable.
Noah Friedman <friedman@splode.com>
parents:
4685
diff
changeset
|
90 |
2231 | 91 ;; Initialize rlogin mode map. |
92 (defvar rlogin-mode-map '()) | |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
93 (cond |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
94 ((null rlogin-mode-map) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
95 (setq rlogin-mode-map (if (consp shell-mode-map) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
96 (cons 'keymap shell-mode-map) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
97 (copy-keymap shell-mode-map))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
98 (define-key rlogin-mode-map "\C-c\C-c" 'rlogin-send-Ctrl-C) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
99 (define-key rlogin-mode-map "\C-c\C-d" 'rlogin-send-Ctrl-D) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
100 (define-key rlogin-mode-map "\C-c\C-z" 'rlogin-send-Ctrl-Z) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
101 (define-key rlogin-mode-map "\C-c\C-\\" 'rlogin-send-Ctrl-backslash) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
102 (define-key rlogin-mode-map "\C-d" 'rlogin-delchar-or-send-Ctrl-D) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
103 (define-key rlogin-mode-map "\C-i" 'rlogin-tab-or-complete))) |
2231 | 104 |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
105 |
10977
a173cfead4ce
(rlogin): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
10849
diff
changeset
|
106 ;;;###autoload (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)") |
a173cfead4ce
(rlogin): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
10849
diff
changeset
|
107 |
11805
95a2506fba60
(rlogin-history): New defvar.
Roland McGrath <roland@gnu.org>
parents:
11276
diff
changeset
|
108 (defvar rlogin-history nil) |
95a2506fba60
(rlogin-history): New defvar.
Roland McGrath <roland@gnu.org>
parents:
11276
diff
changeset
|
109 |
2387
cb44857cab89
moby rlogin-filter fixes
Noah Friedman <friedman@splode.com>
parents:
2315
diff
changeset
|
110 ;;;###autoload |
12126
0b0b0c2e5254
(rlogin): If optional second arg is buffer or string, use that as name.
Roland McGrath <roland@gnu.org>
parents:
11805
diff
changeset
|
111 (defun rlogin (input-args &optional buffer) |
15436 | 112 "Open a network login connection via `rlogin' with args INPUT-ARGS. |
113 INPUT-ARGS should start with a host name; it may also contain | |
114 other arguments for `rlogin'. | |
115 | |
2404
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
116 Input is sent line-at-a-time to the remote connection. |
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
117 |
10977
a173cfead4ce
(rlogin): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
10849
diff
changeset
|
118 Communication with the remote host is recorded in a buffer `*rlogin-HOST*' |
a173cfead4ce
(rlogin): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
10849
diff
changeset
|
119 \(or `*rlogin-USER@HOST*' if the remote username differs\). |
a173cfead4ce
(rlogin): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
10849
diff
changeset
|
120 If a prefix argument is given and the buffer `*rlogin-HOST*' already exists, |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
121 a new buffer with a different connection will be made. |
2404
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
122 |
15436 | 123 When called from a program, if the optional second argument BUFFER is |
124 a string or buffer, it specifies the buffer to use. | |
12126
0b0b0c2e5254
(rlogin): If optional second arg is buffer or string, use that as name.
Roland McGrath <roland@gnu.org>
parents:
11805
diff
changeset
|
125 |
2404
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
126 The variable `rlogin-program' contains the name of the actual program to |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
127 run. It can be a relative or absolute path. |
2404
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
128 |
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
129 The variable `rlogin-explicit-args' is a list of arguments to give to |
10130
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
130 the rlogin when starting. They are added after any arguments given in |
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
131 INPUT-ARGS. |
9250 | 132 |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
133 If the default value of `rlogin-directory-tracking-mode' is t, then the |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
134 default directory in that buffer is set to a remote (FTP) file name to |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
135 access your home directory on the remote machine. Occasionally this causes |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
136 an error, if you cannot access the home directory on that machine. This |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
137 error is harmless as long as you don't try to use that default directory. |
10130
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
138 |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
139 If `rlogin-directory-tracking-mode' is neither t nor nil, then the default |
10130
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
140 directory is initially set up to your (local) home directory. |
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
141 This is useful if the remote machine and your local machine |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
142 share the same files via NFS. This is the default. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
143 |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
144 If you wish to change directory tracking styles during a session, use the |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
145 function `rlogin-directory-tracking-mode' rather than simply setting the |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
146 variable." |
8917
de32691e953c
* rlogin.el (rlogin): recognise the `-l user' option to rlogin and
Francesco Potortì <pot@gnu.org>
parents:
7922
diff
changeset
|
147 (interactive (list |
11805
95a2506fba60
(rlogin-history): New defvar.
Roland McGrath <roland@gnu.org>
parents:
11276
diff
changeset
|
148 (read-from-minibuffer "rlogin arguments (hostname first): " |
95a2506fba60
(rlogin-history): New defvar.
Roland McGrath <roland@gnu.org>
parents:
11276
diff
changeset
|
149 nil nil nil 'rlogin-history) |
8917
de32691e953c
* rlogin.el (rlogin): recognise the `-l user' option to rlogin and
Francesco Potortì <pot@gnu.org>
parents:
7922
diff
changeset
|
150 current-prefix-arg)) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
151 |
2539
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
152 (let* ((process-connection-type rlogin-process-connection-type) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
153 (args (if rlogin-explicit-args |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
154 (append (rlogin-parse-words input-args) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
155 rlogin-explicit-args) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
156 (rlogin-parse-words input-args))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
157 (host (car args)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
158 (user (or (car (cdr (member "-l" args))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
159 (user-login-name))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
160 (buffer-name (if (string= user (user-login-name)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
161 (format "*rlogin-%s*" host) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
162 (format "*rlogin-%s@%s*" user host))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
163 proc) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
164 |
12126
0b0b0c2e5254
(rlogin): If optional second arg is buffer or string, use that as name.
Roland McGrath <roland@gnu.org>
parents:
11805
diff
changeset
|
165 (cond ((null buffer)) |
13310
5280c707658e
(rlogin): If `buffer' arg is a buffer object, initialize buffer-name to the
Noah Friedman <friedman@splode.com>
parents:
12126
diff
changeset
|
166 ((stringp buffer) |
12126
0b0b0c2e5254
(rlogin): If optional second arg is buffer or string, use that as name.
Roland McGrath <roland@gnu.org>
parents:
11805
diff
changeset
|
167 (setq buffer-name buffer)) |
13310
5280c707658e
(rlogin): If `buffer' arg is a buffer object, initialize buffer-name to the
Noah Friedman <friedman@splode.com>
parents:
12126
diff
changeset
|
168 ((bufferp buffer) |
5280c707658e
(rlogin): If `buffer' arg is a buffer object, initialize buffer-name to the
Noah Friedman <friedman@splode.com>
parents:
12126
diff
changeset
|
169 (setq buffer-name (buffer-name buffer))) |
12126
0b0b0c2e5254
(rlogin): If optional second arg is buffer or string, use that as name.
Roland McGrath <roland@gnu.org>
parents:
11805
diff
changeset
|
170 ((numberp buffer) |
0b0b0c2e5254
(rlogin): If optional second arg is buffer or string, use that as name.
Roland McGrath <roland@gnu.org>
parents:
11805
diff
changeset
|
171 (setq buffer-name (format "%s<%d>" buffer-name buffer))) |
11274
57b244b67848
(rlogin): Use format, not concat, to generate numeric buffer names.
Noah Friedman <friedman@splode.com>
parents:
10977
diff
changeset
|
172 (t |
57b244b67848
(rlogin): Use format, not concat, to generate numeric buffer names.
Noah Friedman <friedman@splode.com>
parents:
10977
diff
changeset
|
173 (setq buffer-name (generate-new-buffer-name buffer-name)))) |
57b244b67848
(rlogin): Use format, not concat, to generate numeric buffer names.
Noah Friedman <friedman@splode.com>
parents:
10977
diff
changeset
|
174 |
13310
5280c707658e
(rlogin): If `buffer' arg is a buffer object, initialize buffer-name to the
Noah Friedman <friedman@splode.com>
parents:
12126
diff
changeset
|
175 (setq buffer (get-buffer-create buffer-name)) |
11274
57b244b67848
(rlogin): Use format, not concat, to generate numeric buffer names.
Noah Friedman <friedman@splode.com>
parents:
10977
diff
changeset
|
176 (pop-to-buffer buffer-name) |
13310
5280c707658e
(rlogin): If `buffer' arg is a buffer object, initialize buffer-name to the
Noah Friedman <friedman@splode.com>
parents:
12126
diff
changeset
|
177 |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
178 (cond |
11274
57b244b67848
(rlogin): Use format, not concat, to generate numeric buffer names.
Noah Friedman <friedman@splode.com>
parents:
10977
diff
changeset
|
179 ((comint-check-proc buffer-name)) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
180 (t |
13310
5280c707658e
(rlogin): If `buffer' arg is a buffer object, initialize buffer-name to the
Noah Friedman <friedman@splode.com>
parents:
12126
diff
changeset
|
181 (comint-exec buffer buffer-name rlogin-program nil args) |
5280c707658e
(rlogin): If `buffer' arg is a buffer object, initialize buffer-name to the
Noah Friedman <friedman@splode.com>
parents:
12126
diff
changeset
|
182 (setq proc (get-buffer-process buffer)) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
183 ;; Set process-mark to point-max in case there is text in the |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
184 ;; buffer from a previous exited process. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
185 (set-marker (process-mark proc) (point-max)) |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
186 |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
187 ;; comint-output-filter-functions is just like a hook, except that the |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
188 ;; functions in that list are passed arguments. add-hook serves well |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
189 ;; enough for modifying it. |
15465
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
190 ;; comint-output-filter-functions should already have a |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
191 ;; permanent-local property, at least in emacs 19.27 or later. |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
192 (if (fboundp 'make-local-hook) |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
193 (make-local-hook 'comint-output-filter-functions) |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
194 (make-local-variable 'comint-output-filter-functions)) |
15490
1fe754bafbcb
(rlogin): add rlogin-carriage-filter to comint-output-filter-functions, not
Noah Friedman <friedman@splode.com>
parents:
15465
diff
changeset
|
195 (add-hook 'comint-output-filter-functions 'rlogin-carriage-filter) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
196 |
15182
cab8ffe3a3b7
(rlogin): Call rlogin-mode after adding rlogin-carriage-filter to output
Noah Friedman <friedman@splode.com>
parents:
14169
diff
changeset
|
197 (rlogin-mode) |
cab8ffe3a3b7
(rlogin): Call rlogin-mode after adding rlogin-carriage-filter to output
Noah Friedman <friedman@splode.com>
parents:
14169
diff
changeset
|
198 |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
199 (make-local-variable 'rlogin-host) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
200 (setq rlogin-host host) |
10384
1d0a7f841ffb
rlogin-tab-or-complete: insert tab in buffer, don't send directly to process.
Noah Friedman <friedman@splode.com>
parents:
10374
diff
changeset
|
201 (make-local-variable 'rlogin-remote-user) |
1d0a7f841ffb
rlogin-tab-or-complete: insert tab in buffer, don't send directly to process.
Noah Friedman <friedman@splode.com>
parents:
10374
diff
changeset
|
202 (setq rlogin-remote-user user) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
203 |
15465
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
204 (condition-case () |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
205 (cond ((eq rlogin-directory-tracking-mode t) |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
206 ;; Do this here, rather than calling the tracking mode |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
207 ;; function, to avoid a gratuitous resync check; the default |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
208 ;; should be the user's home directory, be it local or remote. |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
209 (setq comint-file-name-prefix |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
210 (concat "/" rlogin-remote-user "@" rlogin-host ":")) |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
211 (cd-absolute comint-file-name-prefix)) |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
212 ((null rlogin-directory-tracking-mode)) |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
213 (t |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
214 (cd-absolute (concat comint-file-name-prefix "~/")))) |
d2efb8b0d453
(rlogin): make comint-output-filter-functions local before adding hooks.
Noah Friedman <friedman@splode.com>
parents:
15436
diff
changeset
|
215 (error nil)))))) |
10130
2fb93cbc2d87
(rlogin-initially-track-cwd): Now a 3-way flag.
Richard M. Stallman <rms@gnu.org>
parents:
9250
diff
changeset
|
216 |
2231 | 217 (defun rlogin-mode () |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
218 "Set major-mode for rlogin sessions. |
2539
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
219 If `rlogin-mode-hook' is set, run it." |
2231 | 220 (interactive) |
2404
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
221 (kill-all-local-variables) |
4678
cd842296bebf
(rlogin): After rlogin-mode, set comint-filename-prefix locally to indicate
Roland McGrath <roland@gnu.org>
parents:
2948
diff
changeset
|
222 (shell-mode) |
2231 | 223 (setq major-mode 'rlogin-mode) |
2404
845db675b3e9
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2387
diff
changeset
|
224 (setq mode-name "rlogin") |
2231 | 225 (use-local-map rlogin-mode-map) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
226 (setq shell-dirtrackp rlogin-directory-tracking-mode) |
4874
20154e6389eb
(rlogin, rlogin-mode): Use comint-file-name-prefix,
Richard M. Stallman <rms@gnu.org>
parents:
4856
diff
changeset
|
227 (make-local-variable 'comint-file-name-prefix) |
2231 | 228 (run-hooks 'rlogin-mode-hook)) |
229 | |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
230 (defun rlogin-directory-tracking-mode (&optional prefix) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
231 "Do remote or local directory tracking, or disable entirely. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
232 |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
233 If called with no prefix argument or a unspecified prefix argument (just |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
234 ``\\[universal-argument]'' with no number) do remote directory tracking via |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
235 ange-ftp. If called as a function, give it no argument. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
236 |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
237 If called with a negative prefix argument, disable directory tracking |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
238 entirely. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
239 |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
240 If called with a positive, numeric prefix argument, e.g. |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
241 ``\\[universal-argument] 1 M-x rlogin-directory-tracking-mode\'', |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
242 then do directory tracking but assume the remote filesystem is the same as |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
243 the local system. This only works in general if the remote machine and the |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
244 local one share the same directories (through NFS)." |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
245 (interactive "P") |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
246 (cond |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
247 ((or (null prefix) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
248 (consp prefix)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
249 (setq rlogin-directory-tracking-mode t) |
11276
7b78e66e6e3d
(rlogin-directory-tracking-mode): Set shell-dirtrackp, not shell-dirtrack-p.
Noah Friedman <friedman@splode.com>
parents:
11274
diff
changeset
|
250 (setq shell-dirtrackp t) |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
251 (setq comint-file-name-prefix |
10384
1d0a7f841ffb
rlogin-tab-or-complete: insert tab in buffer, don't send directly to process.
Noah Friedman <friedman@splode.com>
parents:
10374
diff
changeset
|
252 (concat "/" rlogin-remote-user "@" rlogin-host ":"))) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
253 ((< prefix 0) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
254 (setq rlogin-directory-tracking-mode nil) |
11276
7b78e66e6e3d
(rlogin-directory-tracking-mode): Set shell-dirtrackp, not shell-dirtrack-p.
Noah Friedman <friedman@splode.com>
parents:
11274
diff
changeset
|
255 (setq shell-dirtrackp nil)) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
256 (t |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
257 (setq rlogin-directory-tracking-mode 'local) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
258 (setq comint-file-name-prefix "") |
11276
7b78e66e6e3d
(rlogin-directory-tracking-mode): Set shell-dirtrackp, not shell-dirtrack-p.
Noah Friedman <friedman@splode.com>
parents:
11274
diff
changeset
|
259 (setq shell-dirtrackp t))) |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
260 (cond |
11276
7b78e66e6e3d
(rlogin-directory-tracking-mode): Set shell-dirtrackp, not shell-dirtrack-p.
Noah Friedman <friedman@splode.com>
parents:
11274
diff
changeset
|
261 (shell-dirtrackp |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
262 (let* ((proc (get-buffer-process (current-buffer))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
263 (proc-mark (process-mark proc)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
264 (current-input (buffer-substring proc-mark (point-max))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
265 (orig-point (point)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
266 (offset (and (>= orig-point proc-mark) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
267 (- (point-max) orig-point)))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
268 (unwind-protect |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
269 (progn |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
270 (delete-region proc-mark (point-max)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
271 (goto-char (point-max)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
272 (shell-resync-dirs)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
273 (goto-char proc-mark) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
274 (insert current-input) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
275 (if offset |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
276 (goto-char (- (point-max) offset)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
277 (goto-char orig-point))))))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
278 |
2539
577c77cfd199
*** empty log message ***
Noah Friedman <friedman@splode.com>
parents:
2405
diff
changeset
|
279 |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
280 ;; Parse a line into its constituent parts (words separated by |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
281 ;; whitespace). Return a list of the words. |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
282 (defun rlogin-parse-words (line) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
283 (let ((list nil) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
284 (posn 0) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
285 (match-data (match-data))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
286 (while (string-match "[^ \t\n]+" line posn) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
287 (setq list (cons (substring line (match-beginning 0) (match-end 0)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
288 list)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
289 (setq posn (match-end 0))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
290 (store-match-data (match-data)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
291 (nreverse list))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
292 |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
293 (defun rlogin-carriage-filter (string) |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
294 (let* ((point-marker (point-marker)) |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
295 (end (process-mark (get-buffer-process (current-buffer)))) |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
296 (beg (or (and (boundp 'comint-last-output-start) |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
297 comint-last-output-start) |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
298 (- end (length string))))) |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
299 (goto-char beg) |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
300 (while (search-forward "\C-m" end t) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
301 (delete-char -1)) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
302 (goto-char point-marker))) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
303 |
2231 | 304 (defun rlogin-send-Ctrl-C () |
305 (interactive) | |
306 (send-string nil "\C-c")) | |
307 | |
5792
242985a124fc
Removed many extra autoload cookies.
Roland McGrath <roland@gnu.org>
parents:
5208
diff
changeset
|
308 (defun rlogin-send-Ctrl-D () |
242985a124fc
Removed many extra autoload cookies.
Roland McGrath <roland@gnu.org>
parents:
5208
diff
changeset
|
309 (interactive) |
242985a124fc
Removed many extra autoload cookies.
Roland McGrath <roland@gnu.org>
parents:
5208
diff
changeset
|
310 (send-string nil "\C-d")) |
242985a124fc
Removed many extra autoload cookies.
Roland McGrath <roland@gnu.org>
parents:
5208
diff
changeset
|
311 |
2231 | 312 (defun rlogin-send-Ctrl-Z () |
313 (interactive) | |
314 (send-string nil "\C-z")) | |
315 | |
316 (defun rlogin-send-Ctrl-backslash () | |
317 (interactive) | |
318 (send-string nil "\C-\\")) | |
319 | |
320 (defun rlogin-delchar-or-send-Ctrl-D (arg) | |
5793
85abf27f701f
(rlogin-delchar-or-send-Ctrl-D): Call rlogin-send-Ctrl-D. Doc fix.
Roland McGrath <roland@gnu.org>
parents:
5792
diff
changeset
|
321 "\ |
10849
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
322 Delete ARG characters forward, or send a C-d to process if at end of buffer." |
eb6af491e98f
(rlogin-carriage-filter): Don't assume region is narrowed to most recent
Noah Friedman <friedman@splode.com>
parents:
10384
diff
changeset
|
323 (interactive "p") |
2231 | 324 (if (eobp) |
5793
85abf27f701f
(rlogin-delchar-or-send-Ctrl-D): Call rlogin-send-Ctrl-D. Doc fix.
Roland McGrath <roland@gnu.org>
parents:
5792
diff
changeset
|
325 (rlogin-send-Ctrl-D) |
2231 | 326 (delete-char arg))) |
327 | |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
328 (defun rlogin-tab-or-complete () |
10384
1d0a7f841ffb
rlogin-tab-or-complete: insert tab in buffer, don't send directly to process.
Noah Friedman <friedman@splode.com>
parents:
10374
diff
changeset
|
329 "Complete file name if doing directory tracking, or just insert TAB." |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
330 (interactive) |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
331 (if rlogin-directory-tracking-mode |
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
332 (comint-dynamic-complete) |
10384
1d0a7f841ffb
rlogin-tab-or-complete: insert tab in buffer, don't send directly to process.
Noah Friedman <friedman@splode.com>
parents:
10374
diff
changeset
|
333 (insert "\C-i"))) |
10374
d6de68b87cbd
Removed several more gratuitous autoload cookies.
Noah Friedman <friedman@splode.com>
parents:
10130
diff
changeset
|
334 |
2233
fb0ed5a1d0f3
Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2231
diff
changeset
|
335 ;;; rlogin.el ends here |