From xemacs-m  Thu Apr 10 15:50:51 1997
Received: from jagor.srce.hr (hniksic@jagor.srce.hr [161.53.2.130])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id PAA28107
	for <xemacs-beta@xemacs.org>; Thu, 10 Apr 1997 15:49:05 -0500 (CDT)
Received: (from hniksic@localhost)
          by jagor.srce.hr (8.8.5/8.8.4)
	  id WAA15103; Thu, 10 Apr 1997 22:49:01 +0200 (MET DST)
Sender: hniksic@public.srce.hr
To: XEmacs Developers <xemacs-beta@xemacs.org>
Subject: comint and term are customized
X-URL: ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/
X-Attribution: Hrv
X-Face: &}4JQk=L;e.~x+|eo]#DGk@x3~ed!.~lZ}YQcYb7f[WL9L'Z*+OyA\nA
        EL1M(".[qvI#a2E6WYI5>>e7'@_)3Ol9p|Nn2wNa/;~06jL*B%tTcn/X
        vhAu7qeES0\|MF%$;sI#yn1+y"
From: Hrvoje Niksic <hniksic@srce.hr>
Date: 10 Apr 1997 22:49:00 +0200
Message-ID: <kig67xupps3.fsf@jagor.srce.hr>
Lines: 764
X-Mailer: Gnus v5.4.42/XEmacs 19.15

As Steve pointed out, it's counter-productive to send many small files
to the list.  So I'll send big ones.

Actually, the point of sending these patches to the list instead of to
Steve is to make people see the subject "blurg is customized", and
say: "Hey, my favourite package `blurg' is customized!  I'm gonna try
it", and thus test the changes.  Noone can test everything (and
there's been a *lot* of custom changes).  So I'd just expect everyone
to test their favorites.

This patch custom-izes comint.el, shell.el, background.el, rlogin.el
and term.el.  `comint-xemacs.el' is free to go to /dev/null, where it
will be most appreciated.

--- lisp/comint/comint.el.orig	Thu Apr 10 03:52:52 1997
+++ lisp/comint/comint.el	Thu Apr 10 22:06:14 1997
@@ -148,6 +148,20 @@
 ;;;     comint-completion-autolist  - boolean      behavior
 ;;;     comint-completion-recexact  - boolean      ...
 
+(defgroup comint nil
+  "General command interpreter in a window stuff."
+  :group 'processes)
+
+(defgroup comint-completion nil
+  "Completion facilities in comint"
+  :group 'comint)
+
+(defgroup comint-source nil
+  "Source finding facilities in comint"
+  :prefix "comint-"
+  :group 'comint)
+
+
 (defvar comint-prompt-regexp "^"
   "Regexp to recognise prompts in the inferior process.
 Defaults to \"^\", the null string at BOL.
@@ -182,7 +196,7 @@
 ;;
 ;; XEmacs - So turn this off by default.  -- jwz
 ;;
-(defvar comint-input-autoexpand nil
+(defcustom comint-input-autoexpand nil
   "*If non-nil, expand input command history references on completion.
 This mirrors the optional behavior of tcsh (its autoexpand and histlit).
 
@@ -191,31 +205,56 @@
 into the buffer's input ring.  See also `comint-magic-space' and
 `comint-dynamic-complete'.
 
-This variable is buffer-local.")
+This variable is buffer-local."
+  :type '(choice (const :tag "off" nil)
+		 (const :tag "on" t)
+		 (const input)
+		 (const history))
+  :group 'comint)
+
+(defface comint-input-face '((((class color)
+			      (background dark))
+			     (:foreground "red"))
+			    (((class color)
+			      (background light))
+			     (:foreground "blue"))
+			    (t 
+			     (:bold t)))
+  "How to display user input for comint shells."
+  :group 'comint)
 
 ;; XEmacs - this should default to t for consistency with minibuffer history. -jwz
-(defvar comint-input-ignoredups t
+(defcustom comint-input-ignoredups t
   "*If non-nil, don't add input matching the last on the input ring.
 This mirrors the optional behavior of bash.
 
-This variable is buffer-local.")
+This variable is buffer-local."
+  :type 'boolean
+  :group 'comint)
 
-(defvar comint-input-ring-file-name nil
+(defcustom comint-input-ring-file-name nil
   "*If non-nil, name of the file to read/write input history.
 See also `comint-read-input-ring' and `comint-write-input-ring'.
 
-This variable is buffer-local, and is a good thing to set in mode hooks.")
+This variable is buffer-local, and is a good thing to set in mode hooks."
+  :type 'boolean
+  :group 'comint)
 
-(defvar comint-scroll-to-bottom-on-input nil
+(defcustom comint-scroll-to-bottom-on-input nil
   "*Controls whether input to interpreter causes window to scroll.
 If nil, then do not scroll.  If t or `all', scroll all windows showing buffer.
 If `this', scroll only the selected window.
 
 The default is nil.
 
-See `comint-preinput-scroll-to-bottom'.  This variable is buffer-local.")
+See `comint-preinput-scroll-to-bottom'.  This variable is buffer-local."
+  :type '(choice (const :tag "off" nil)
+		 (const t)
+		 (const all)
+		 (const this))
+  :group 'comint)
 
-(defvar comint-scroll-to-bottom-on-output nil
+(defcustom comint-scroll-to-bottom-on-output nil
   "*Controls whether interpreter output causes window to scroll.
 If nil, then do not scroll.  If t or `all', scroll all windows showing buffer.
 If `this', scroll only the selected window.
@@ -224,38 +263,52 @@
 The default is nil.
 
 See variable `comint-scroll-show-maximum-output' and function
-`comint-postoutput-scroll-to-bottom'.  This variable is buffer-local.")
+`comint-postoutput-scroll-to-bottom'.  This variable is buffer-local."
+  :type '(choice (const :tag "off" nil)
+		 (const t)
+		 (const all)
+		 (const this)
+		 (const others))
+  :group 'comint)
 
 ;; XEmacs - Default this to nil: this is just horrible
-(defvar comint-scroll-show-maximum-output nil
+(defcustom comint-scroll-show-maximum-output nil
   "*Controls how interpreter output causes window to scroll.
 If non-nil, then show the maximum output when the window is scrolled.
 
 See variable `comint-scroll-to-bottom-on-output' and function
-`comint-postoutput-scroll-to-bottom'.  This variable is buffer-local.")
+`comint-postoutput-scroll-to-bottom'.  This variable is buffer-local."
+  :type 'boolean
+  :group 'comint)
 
-(defvar comint-buffer-maximum-size 1024
+(defcustom comint-buffer-maximum-size 1024
   "*The maximum size in lines for comint buffers.
 Comint buffers are truncated from the top to be no greater than this number, if
-the function `comint-truncate-buffer' is on `comint-output-filter-functions'.")
+the function `comint-truncate-buffer' is on `comint-output-filter-functions'."
+  :type 'integer
+  :group 'comint)
 
 (defvar comint-input-ring-size 32
   "Size of input history ring.")
 
-(defvar comint-process-echoes nil
+(defcustom comint-process-echoes nil
   "*If non-nil, assume that the subprocess echoes any input.
 If so, delete one copy of the input so that only one copy eventually
 appears in the buffer.
 
-This variable is buffer-local.")
+This variable is buffer-local."
+  :type 'boolean
+  :group 'comint)
 
 ;; AIX puts the name of the person being su'd to in from of the prompt.
-(defvar comint-password-prompt-regexp
+(defcustom comint-password-prompt-regexp
   (if (eq system-type 'aix-v3)
       "\\(\\([Oo]ld \\|[Nn]ew \\|^\\|^..*s\\)[Pp]assword\\|pass phrase\\):\\s *\\'"
   "\\(\\([Oo]ld \\|[Nn]ew \\|^\\)[Pp]assword\\|pass phrase\\):\\s *\\'")
   "*Regexp matching prompts for passwords in the inferior process.
-This is used by `comint-watch-for-password-prompt'.")
+This is used by `comint-watch-for-password-prompt'."
+  :type 'regexp
+  :group 'comint)
 
 ;;; Here are the per-interpreter hooks.
 (defvar comint-get-old-input (function comint-get-old-input-default)
@@ -267,13 +320,15 @@
 
 ;; XEmacs - fsf doesn't have this, and I think it ought to default to 't'
 ;; because it's good idiot-proof interface.  --stig
-(defvar comint-append-old-input t
+(defcustom comint-append-old-input t
   "*If nil, old text selected by \\[comint-send-input] is re-sent immediately.
 If non-nil, the old text is appended to the end of the buffer,
 and a prompting message is printed.
 
 This flag does not affect the behavior of \\[comint-send-input]
-after the process output mark.")
+after the process output mark."
+  :type 'boolean
+  :group 'comint)
 
 (defvar comint-dynamic-complete-functions
   '(comint-replace-by-expanded-history comint-dynamic-complete-filename)
@@ -315,20 +370,26 @@
 `comint-simple-send' just sends the string plus a newline.
 This is called from the user command `comint-send-input'.")
 
-(defvar comint-eol-on-send t
+(defcustom comint-eol-on-send t
   "*Non-nil means go to the end of the line before sending input.
-See `comint-send-input'.")
+See `comint-send-input'."
+  :type 'boolean
+  :group 'comint)
 
-(defvar comint-mode-hook '()
+(defcustom comint-mode-hook '()
   "Called upon entry into comint-mode
-This is run before the process is cranked up.")
+This is run before the process is cranked up."
+  :type 'hook
+  :group 'comint)
 
-(defvar comint-exec-hook '()
+(defcustom comint-exec-hook '()
   "Called each time a process is exec'd by `comint-exec'.
 This is called after the process is cranked up.  It is useful for things that
 must be done each time a process is executed in a comint mode buffer (e.g.,
 `(process-kill-without-query)').  In contrast, the `comint-mode-hook' is only
-executed once when the buffer is created.")
+executed once when the buffer is created."
+  :type 'hook
+  :group 'comint)
 
 (defvar comint-mode-map nil)
 
@@ -586,8 +647,10 @@
 			    (list "---" (cons "Command History" history)))
 		  comint-popup-menu))))
 
-(defvar comint-history-menu-max 40
-  "*Maximum number of entries to display on the Comint command-history menu.")
+(defcustom comint-history-menu-max 40
+  "*Maximum number of entries to display on the Comint command-history menu."
+  :type 'integer
+  :group 'comint)
 
 (defun comint-history-menu-filter (menu)
   (append menu (comint-make-history-menu)))
@@ -2031,27 +2094,35 @@
 ;;; Commands like this are fine things to put in load hooks if you
 ;;; want them present in specific modes.
 
-(defvar comint-completion-autolist nil
+(defcustom comint-completion-autolist nil
   "*If non-nil, automatically list possibilities on partial completion.
-This mirrors the optional behavior of tcsh.")
+This mirrors the optional behavior of tcsh."
+  :type 'boolean
+  :group 'comint-completion)
 
-(defvar comint-completion-addsuffix t
+(defcustom comint-completion-addsuffix t
   "*If non-nil, add a `/' to completed directories, ` ' to file names.
 If a cons pair, it should be of the form (DIRSUFFIX . FILESUFFIX) where
 DIRSUFFIX and FILESUFFIX are strings added on unambiguous or exact completion.
-This mirrors the optional behavior of tcsh.")
+This mirrors the optional behavior of tcsh."
+  :type 'boolean
+  :group 'comint-completion)
 
-(defvar comint-completion-recexact nil
+(defcustom comint-completion-recexact nil
   "*If non-nil, use shortest completion if characters cannot be added.
 This mirrors the optional behavior of tcsh.
 
-A non-nil value is useful if `comint-completion-autolist' is non-nil too.")
+A non-nil value is useful if `comint-completion-autolist' is non-nil too."
+  :type 'boolean
+  :group 'comint-completion)
 
-(defvar comint-completion-fignore nil
+(defcustom comint-completion-fignore nil
   "*List of suffixes to be disregarded during file completion.
 This mirrors the optional behavior of bash and tcsh.
 
-Note that this applies to `comint-dynamic-complete-filename' only.")
+Note that this applies to `comint-dynamic-complete-filename' only."
+  :type '(repeat (string :tag "Suffix"))
+  :group 'comint-completion)
 
 (defvar comint-file-name-prefix ""
   "Prefix prepended to absolute file names taken from process input.
@@ -2519,25 +2590,31 @@
 
 ;;; Commands for extracting source locations:
 
-(defvar comint-find-source-code-max-lines 100
+(defcustom comint-find-source-code-max-lines 100
   "*Maximum number of lines to search backward for a source location,
-when using \\[comint-find-source-code\\] with an interactive prefix.")
+when using \\[comint-find-source-code\\] with an interactive prefix."
+  :type 'integer
+  :group 'comint-source)
 
-(defvar comint-find-source-file-hook nil
+(defcustom comint-find-source-file-hook nil
   "*Function to call instead of comint-default-find-source-file
 when comint-find-source-code parses out a file name and then wants to
 visit its buffer.  The sole argument is the file name.  The function
 must find the file, setting the current buffer, and return the file
 name.  It may also adjust the file name.  If you change this variable,
-make it buffer local.")
+make it buffer local."
+  :type 'function
+  :group 'comint-source)
 
-(defvar comint-goto-source-line-hook nil
+(defcustom comint-goto-source-line-hook nil
   "*Function to call instead of comint-default-goto-source-line
 after comint-find-source-code finds a file and then wants to
 go to a line number mentioned in a source location.
 The sole argument is the line number.  The function must
 return the line number, possibly adjusted.  If you change
-this variable, make it buffer local.")
+this variable, make it buffer local."
+  :type 'function
+  :group 'comint-source)
 
 (defun comint-find-source-code (multi-line)
   "Search backward from point for a source location.
--- lisp/comint/shell.el.orig	Thu Apr 10 22:19:46 1997
+++ lisp/comint/shell.el	Thu Apr 10 22:22:24 1997
@@ -110,6 +110,19 @@
 
 (require 'comint)
 
+(defgroup shell nil
+  "Running shell from within Emacs buffers"
+  :group 'processes
+  :group 'unix)
+
+(defgroup shell-directories nil
+  "Directory support in shell mode"
+  :group 'shell)
+
+(defgroup shell-faces nil
+  "Faces in shell buffers"
+  :group 'shell)
+
 ;;;###autoload
 (defvar shell-prompt-pattern (purecopy "^[^#$%>\n]*[#$%>] *")
   "Regexp to match prompts in the inferior shell.
@@ -123,13 +136,15 @@
 
 This is a fine thing to set in your `.emacs' file.")
 
-(defvar shell-completion-fignore nil
+(defcustom shell-completion-fignore nil
   "*List of suffixes to be disregarded during file/command completion.
 This variable is used to initialize `comint-completion-fignore' in the shell
 buffer.  The default is nil, for compatibility with most shells.
 Some people like (\"~\" \"#\" \"%\").
 
-This is a fine thing to set in your `.emacs' file.")  
+This is a fine thing to set in your `.emacs' file."
+  :type '(repeat (string :tag "Suffix"))
+  :group 'shell)
 
 ;jwz: turned this off; it's way too broken.
 (defvar shell-delimiter-argument-list nil ;'(?\| ?& ?< ?> ?\( ?\) ?\;
@@ -160,53 +175,75 @@
 
 This is a fine thing to set in your `.emacs' file.")
 
-(defvar shell-command-regexp "[^;&|\n]+"
+(defcustom shell-command-regexp "[^;&|\n]+"
   "*Regexp to match a single command within a pipeline.
-This is used for directory tracking and does not do a perfect job.")
+This is used for directory tracking and does not do a perfect job."
+  :type 'regexp
+  :group 'shell)
 
-(defvar shell-completion-execonly t
+(defcustom shell-completion-execonly t
   "*If non-nil, use executable files only for completion candidates.
 This mirrors the optional behavior of tcsh.
 
-Detecting executability of files may slow command completion considerably.")
-
-(defvar shell-multiple-shells nil
-  "*If non-nil, each time shell mode is invoked, a new shell is made")
-
-(defvar shell-popd-regexp "popd"
-  "*Regexp to match subshell commands equivalent to popd.")
+Detecting executability of files may slow command completion considerably."
+  :type 'boolean
+  :group 'shell)
+
+(defcustom shell-multiple-shells nil
+  "*If non-nil, each time shell mode is invoked, a new shell is made"
+  :type 'boolean
+  :group 'shell)
+
+(defcustom shell-popd-regexp "popd"
+  "*Regexp to match subshell commands equivalent to popd."
+  :type 'regexp
+  :group 'shell-directories)
+
+(defcustom shell-pushd-regexp "pushd"
+  "*Regexp to match subshell commands equivalent to pushd."
+  :type 'regexp
+  :group 'shell-directories)
 
-(defvar shell-pushd-regexp "pushd"
-  "*Regexp to match subshell commands equivalent to pushd.")
-
-(defvar shell-pushd-tohome nil
+(defcustom shell-pushd-tohome nil
   "*If non-nil, make pushd with no arg behave as \"pushd ~\" (like cd).
-This mirrors the optional behavior of tcsh.")
+This mirrors the optional behavior of tcsh."
+  :type 'boolean
+  :group 'shell-directories)
 
-(defvar shell-pushd-dextract nil
+(defcustom shell-pushd-dextract nil
   "*If non-nil, make \"pushd +n\" pop the nth dir to the stack top.
-This mirrors the optional behavior of tcsh.")
+This mirrors the optional behavior of tcsh."
+  :type 'boolean
+  :group 'shell-directories)
 
-(defvar shell-pushd-dunique nil
+(defcustom shell-pushd-dunique nil
   "*If non-nil, make pushd only add unique directories to the stack.
-This mirrors the optional behavior of tcsh.")
-
-(defvar shell-cd-regexp "cd"
-  "*Regexp to match subshell commands equivalent to cd.")
-
-(defvar explicit-shell-file-name nil
-  "*If non-nil, is file name to use for explicitly requested inferior shell.")
+This mirrors the optional behavior of tcsh."
+  :type 'boolean
+  :group 'shell-directories)
+
+(defcustom shell-cd-regexp "cd"
+  "*Regexp to match subshell commands equivalent to cd."
+  :type 'regexp
+  :group 'shell-directories)
+
+(defcustom explicit-shell-file-name nil
+  "*If non-nil, is file name to use for explicitly requested inferior shell."
+  :type '(choice (const :tag "None" nil) file)
+  :group 'shell)
 
-(defvar explicit-csh-args
+(defcustom explicit-csh-args
   (if (eq system-type 'hpux)
       ;; -T persuades HP's csh not to think it is smarter
       ;; than us about what terminal modes to use.
       '("-i" "-T")
     '("-i"))
   "*Args passed to inferior shell by M-x shell, if the shell is csh.
-Value is a list of strings, which may be nil.")
+Value is a list of strings, which may be nil."
+  :type '(repeat (string :tag "Argument"))
+  :group 'shell)
 
-(defvar shell-input-autoexpand 'history
+(defcustom shell-input-autoexpand 'history
   "*If non-nil, expand input command history references on completion.
 This mirrors the optional behavior of tcsh (its autoexpand and histlit).
 
@@ -216,7 +253,9 @@
 `comint-dynamic-complete'.
 
 This variable supplies a default for `comint-input-autoexpand',
-for Shell mode only.")
+for Shell mode only."
+  :type '(choice (const nil) (const input) (const history))
+  :type 'shell)
 
 (defvar shell-dirstack nil
   "List of directories saved by pushd in this buffer's shell.
@@ -247,21 +286,33 @@
       (define-key map "\M-\C-m" 'shell-resync-dirs)
       (setq shell-mode-map map)))
 
-(defvar shell-mode-hook nil
-  "*Hook for customising Shell mode.")
+(defcustom shell-mode-hook nil
+  "*Hook for customising Shell mode."
+  :type 'hook
+  :group 'shell)
 
 
 ;; font-locking
-(defvar shell-prompt-face 'shell-prompt-face
-  "Face for shell prompts.")
-(defvar shell-option-face 'shell-option-face
-  "Face for command line options.")
-(defvar shell-output-face 'shell-output-face
-  "Face for generic shell output.")
-(defvar shell-output-2-face 'shell-output-2-face
-  "Face for grep-like output.")
-(defvar shell-output-3-face 'shell-output-3-face
-  "Face for [N] output where N is a number.")
+(defcustom shell-prompt-face 'shell-prompt-face
+  "Face for shell prompts."
+  :type 'face
+  :group 'shell-faces)
+(defcustom shell-option-face 'shell-option-face
+  "Face for command line options."
+  :type 'face
+  :group 'shell-faces)
+(defcustom shell-output-face 'shell-output-face
+  "Face for generic shell output."
+  :type 'face
+  :group 'shell-faces)
+(defcustom shell-output-2-face 'shell-output-2-face
+  "Face for grep-like output."
+  :type 'face
+  :group 'shell-faces)
+(defcustom shell-output-3-face 'shell-output-3-face
+  "Face for [N] output where N is a number."
+  :type 'face
+  :group 'shell-faces)
 
 (make-face shell-prompt-face)
 (make-face shell-option-face)
--- lisp/comint/background.el.orig	Thu Apr 10 22:07:04 1997
+++ lisp/comint/background.el	Thu Apr 10 22:08:16 1997
@@ -48,11 +48,20 @@
 (provide 'background)
 (require 'comint)
 
+(defgroup background nil
+  "Fun with background jobs"
+  :group 'processes)
+
+
 ;; user variables
-(defvar background-show t
-  "*If non-nil, background jobs' buffers are shown when they're started.")
-(defvar background-select nil
-  "*If non-nil, background jobs' buffers are selected when they're started.")
+(defcustom background-show t
+  "*If non-nil, background jobs' buffers are shown when they're started."
+  :type 'boolean
+  :group 'background)
+(defcustom background-select nil
+  "*If non-nil, background jobs' buffers are selected when they're started."
+  :type 'boolean
+  :group 'background)
 
 (defun background (command &optional buffer-name)
   "Run COMMAND in the background like csh.  
--- lisp/comint/rlogin.el.orig	Thu Apr 10 22:45:12 1997
+++ lisp/comint/rlogin.el	Thu Apr 10 22:45:14 1997
@@ -39,24 +39,39 @@
 (require 'comint)
 (require 'shell)
 
-(defvar rlogin-program "rlogin"
-  "*Name of program to invoke rlogin")
+(defgroup rlogin nil
+  "Remote login interface"
+  :group 'processes
+  :group 'unix)
+
+
+(defcustom rlogin-program "rlogin"
+  "*Name of program to invoke rlogin"
+  :type 'string
+  :group 'rlogin)
+
+(defcustom rlogin-explicit-args nil
+  "*List of arguments to pass to rlogin on the command line."
+  :type '(repeat (string :tag "Argument"))
+  :group 'rlogin)
+
+(defcustom rlogin-mode-hook nil
+  "*Hooks to run after setting current buffer to rlogin-mode."
+  :type 'hook
+  :group 'rlogin)
 
-(defvar rlogin-explicit-args nil
-  "*List of arguments to pass to rlogin on the command line.")
-
-(defvar rlogin-mode-hook nil
-  "*Hooks to run after setting current buffer to rlogin-mode.")
-
-(defvar rlogin-process-connection-type nil
+(defcustom rlogin-process-connection-type nil
   "*If non-`nil', use a pty for the local rlogin process.
 If `nil', use a pipe (if pipes are supported on the local system).
 
 Generally it is better not to waste ptys on systems which have a static
 number of them.  On the other hand, some implementations of `rlogin' assume
-a pty is being used, and errors will result from using a pipe instead.")
+a pty is being used, and errors will result from using a pipe instead."
+  :type '(choice (const :tag "ptys" t)
+		 (const :tag "pipes" nil))
+  :group 'rlogin)
 
-(defvar rlogin-directory-tracking-mode 'local
+(defcustom rlogin-directory-tracking-mode 'local
   "*Control whether and how to do directory tracking in an rlogin buffer.
 
 nil means don't do directory tracking.
@@ -72,18 +87,26 @@
 It is better to use the function of the same name to change the behavior of
 directory tracking in an rlogin session once it has begun, rather than
 simply setting this variable, since the function does the necessary
-re-synching of directories.")
+re-synching of directories."
+  :type '(choice (const :tag "off" nil)
+		 (const :tag "ftp" t)
+		 (const :tag "local" local))
+  :group 'rlogin)
 
 (make-variable-buffer-local 'rlogin-directory-tracking-mode)
 
-(defvar rlogin-host nil
-  "*The name of the remote host.  This variable is buffer-local.")
+(defcustom rlogin-host nil
+  "*The name of the remote host.  This variable is buffer-local."
+  :type '(choice (const nil) string)
+  :group 'rlogin)
 
-(defvar rlogin-remote-user nil
+(defcustom rlogin-remote-user nil
   "*The username used on the remote host.
 This variable is buffer-local and defaults to your local user name.
 If rlogin is invoked with the `-l' option to specify the remote username,
-this variable is set from that.")
+this variable is set from that."
+  :type '(choice (const nil) string)
+  :group 'rlogin)
 
 ;; Initialize rlogin mode map.
 (defvar rlogin-mode-map '())
--- lisp/eterm/term.el.orig	Thu Apr 10 22:31:00 1997
+++ lisp/eterm/term.el	Thu Apr 10 22:31:33 1997
@@ -86,6 +86,12 @@
 
 (require 'ring)
 (require 'ehelp)
+
+(defgroup term nil
+  "General command interpreter in a window"
+  :group 'processes
+  :group 'unix)
+
 
 ;;; Buffer Local Variables:
 ;;;============================================================================
@@ -156,8 +162,10 @@
 (defvar term-pager-old-local-map nil) ;; Saves old keymap while paging.
 (defvar term-pager-old-filter) ;; Saved process-filter while paging.
 
-(defvar explicit-shell-file-name nil
-  "*If non-nil, is file name to use for explicitly requested inferior shell.")
+(defcustom explicit-shell-file-name nil
+  "*If non-nil, is file name to use for explicitly requested inferior shell."
+  :type '(choice (const nil) file)
+  :group 'term)
 
 (defvar term-prompt-regexp "^"
   "Regexp to recognise prompts in the inferior process.
@@ -184,7 +192,7 @@
 
 This is a good thing to set in mode hooks.")
 
-(defvar term-input-autoexpand nil
+(defcustom term-input-autoexpand nil
   "*If non-nil, expand input command history references on completion.
 This mirrors the optional behavior of tcsh (its autoexpand and histlit).
 
@@ -193,21 +201,27 @@
 into the buffer's input ring.  See also `term-magic-space' and
 `term-dynamic-complete'.
 
-This variable is buffer-local.")
+This variable is buffer-local."
+  :type '(choice (const nil) (const t) (const input) (const history))
+  :group 'term)
 
-(defvar term-input-ignoredups nil
+(defcustom term-input-ignoredups nil
   "*If non-nil, don't add input matching the last on the input ring.
 This mirrors the optional behavior of bash.
 
-This variable is buffer-local.")
+This variable is buffer-local."
+  :type 'boolean
+  :group 'term)
 
-(defvar term-input-ring-file-name nil
+(defcustom term-input-ring-file-name nil
   "*If non-nil, name of the file to read/write input history.
 See also `term-read-input-ring' and `term-write-input-ring'.
 
-This variable is buffer-local, and is a good thing to set in mode hooks.")
+This variable is buffer-local, and is a good thing to set in mode hooks."
+  :type 'boolean
+  :group 'term)
 
-(defvar term-scroll-to-bottom-on-output nil
+(defcustom term-scroll-to-bottom-on-output nil
   "*Controls whether interpreter output causes window to scroll.
 If nil, then do not scroll.  If t or `all', scroll all windows showing buffer.
 If `this', scroll only the selected window.
@@ -216,14 +230,18 @@
 The default is nil.
 
 See variable `term-scroll-show-maximum-output'.
-This variable is buffer-local.")
+This variable is buffer-local."
+  :type 'boolean
+  :group 'term)
 
-(defvar term-scroll-show-maximum-output nil
+(defcustom term-scroll-show-maximum-output nil
   "*Controls how interpreter output causes window to scroll.
 If non-nil, then show the maximum output when the window is scrolled.
 
 See variable `term-scroll-to-bottom-on-output'.
-This variable is buffer-local.")
+This variable is buffer-local."
+  :type 'boolean
+  :group 'term)
 
 ;; Where gud-display-frame should put the debugging arrow.  This is
 ;; set by the marker-filter, which scans the debugger's output for
@@ -265,20 +283,26 @@
 the user command term-send-input. term-simple-send just sends
 the string plus a newline.")
 
-(defvar term-eol-on-send t
+(defcustom term-eol-on-send t
   "*Non-nil means go to the end of the line before sending input.
-See `term-send-input'.")
+See `term-send-input'."
+  :type 'boolean
+  :group 'term)
 
-(defvar term-mode-hook '()
+(defcustom term-mode-hook '()
   "Called upon entry into term-mode
-This is run before the process is cranked up.")
+This is run before the process is cranked up."
+  :type 'hook
+  :group 'term)
 
-(defvar term-exec-hook '()
+(defcustom term-exec-hook '()
   "Called each time a process is exec'd by term-exec.
 This is called after the process is cranked up.  It is useful for things that
 must be done each time a process is executed in a term-mode buffer (e.g.,
 (process-kill-without-query)). In contrast, the term-mode-hook is only
-executed once when the buffer is created.")
+executed once when the buffer is created."
+  :type 'hook
+  :group 'term)
 
 (defvar term-mode-map nil)
 (defvar term-raw-map nil


-- 
Hrvoje Niksic <hniksic@srce.hr> | Student at FER Zagreb, Croatia
--------------------------------+--------------------------------
main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}

