(pc-select-saved-settings-alist, pc-select-map)
(pc-select-saved-global-map, pc-select-key-bindings-alist)
(pc-select-default-key-bindings, pc-select-extra-key-bindings)
(pc-select-meta-moves-sexps-key-bindings)
(pc-select-tty-key-bindings, pc-select-old-M-delete-binding):
New variables.
(pc-select-define-keys, pc-select-restore-keys): New functions.
(pc-select-add-to-alist, pc-select-save-and-set-var)
(pc-select-save-and-set-mode, pc-select-restore-var)
(pc-select-restore-mode): New macros.
(pc-selection-mode): Completely rewrote the body of the function;
the main goal was to make pc-selection-mode "turn-off"-able, like
other minor modes. Use define-minore-mode instead of just a
defun. Store the key bindings into four alists:
pc-select-default-key-bindings, pc-select-extra-key-bindings,
pc-select-meta-moves-sexps-key-bindings, and
pc-select-tty-key-bindings; then have the pc-select-define-keys
function walk those alists instead of calling define-key
repeatedly. When the mode is turned on, set the
keybindings in global-map and remember the old keybindings; when
the mode is turned off, restore the previously-saved keybindings.
(pc-selection-mode defcustom): Reflect the fact that the mode is
now "turn-off"-able.
normal-erase-is-backspace on a tty. Instead, bind some keys such
as [delete] directly, like pc-select.el did before
normal-erase-is-backspace was invented.
(scroll-down-mark): Handle pc-select-override-scroll-error,
(scroll-down-nomark): Likewise.
(scroll-up-mark, scroll-up-nomark): Likewise.
(pc-selection-mode): Get rid of the advice on scroll-up, scroll-down.
(pc-selection-mode): Big doc fix. Don't bind f1.
(forward-line-mark): New function.
(forward-line-nomark): New function.
(backward-line-mark): New function.
(backward-line-nomark): New function.
(pc-selection-mode): Add keybindings for those functions.
(pc-select-override-scroll-error): New variable.