* lisp/window.el (display-buffer-alist): Add entry for buffers
previously handled same-window-*.
(display-buffer-alist, display-buffer-default-action)
(display-buffer-overriding-action): Mark as risky.
(display-buffer-alist): Document action function changes.
(display-buffer--same-window-action)
(display-buffer--other-frame-action): New variables.
(switch-to-buffer, display-buffer-other-frame): Use them.
(display-buffer): Rename reuse-frame entry to reusable-frames.
(display-buffer-reuse-selected-window): Function deleted.
(display-buffer-reuse-window): Handle reusable-frames alist entry.
If it's omitted, check pop-up-frames/display-buffer-reuse-frames.
(display-buffer-special): New function.
(display-buffer--maybe-pop-up-frame-or-window): Rename from
display-buffer-reuse-or-pop-window. Split off special-display
part into display-buffer-special.
(display-buffer-use-some-window): Don't perform any special
pop-up-frames handling.
(pop-to-buffer): Use window-normalize-buffer-to-switch-to.
* lisp/cmuscheme.el:
* lisp/ielm.el:
* lisp/shell.el:
* lisp/mail/sendmail.el:
* lisp/progmodes/inf-lisp.el: Don't set same-window-buffer-names.
* lisp/cus-edit.el:
* lisp/info.el:
* lisp/net/rlogin.el:
* lisp/net/telnet.el:
* lisp/progmodes/gud.el: Don't set same-window-regexps.
(completion-at-point): New command.
* indent.el (indent-for-tab-command): Handle the new `complete' behavior.
* progmodes/python.el (python-mode-map): Use completion-at-point.
(python-completion-at-point): Rename from python-partial-symbol and
adjust for use in completion-at-point-functions.
(python-mode): Setup completion-at-point for Python completion.
* emacs-lisp/lisp.el (lisp-completion-at-point): New function
extracted from lisp-complete-symbol.
(lisp-complete-symbol): Use it.
* emacs-lisp/lisp-mode.el (emacs-lisp-mode): Use define-derived-mode,
setup completion-at-point for Elisp completion.
(emacs-lisp-mode-map, lisp-interaction-mode-map): Use completion-at-point.
* ielm.el (ielm-map): Use completion-at-point.
(inferior-emacs-lisp-mode): Setup completion-at-point for Elisp completion.
* progmodes/sym-comp.el: Move to...
* obsolete/sym-comp.el: Move from progmodes.
(ielm-dynamic-multiline-inputs): Remove * from defcustom docstrings.
(ielm-prompt-read-only, ielm-font-lock-keywords): Fix docstring typos.
(ielm-map): Define within defvar. Add docstring.
(ielm-tab, ielm-eval-input, ielm-get-old-input, ielm-return)
(ielm-complete-filename): Use `when', `unless'.
(ielm-is-whitespace-or-comment): Use `string-match-p'.
(ielm-return, ielm-get-old-input): Use `looking-at-p'.
(ielm-change-working-buffer): Check that the buffer is live.
(inferior-emacs-lisp-mode): Define with `define-derived-mode'.
Simplify. Reflow docstring.
(inferior-emacs-lisp-mode-hook, inferior-emacs-lisp-mode-map):
New aliases, to satisfy `define-derived-mode' expectations.
(ielm-prompt-internal): New variable.
(ielm-font-lock-keywords): Remove irrelevant ielm-prompt keyword.
(ielm-send-input): Delete unused variable `buf'.
(ielm-eval-input): Use `ielm-prompt-internal'.
(inferior-emacs-lisp-mode): Use new variables
`comint-prompt-read-only' and `ielm-prompt-internal'.
Get rid of obsolete variable `directory-sep-char'.
(ielm): Use `zerop'.
`inhibit-read-only' to t before modifying properties of text in the buffer.
(ielm): Force point to the end of buffer, even when running ielm from inside
itself.