From xemacs-m  Fri May 16 16:01:01 1997
Received: from mercury.Sun.COM (mercury.Sun.COM [192.9.25.1])
	by xemacs.org (8.8.5/8.8.5) with SMTP id QAA22687
	for <xemacs-beta@xemacs.org>; Fri, 16 May 1997 16:00:59 -0500 (CDT)
Received: from Corp.Sun.COM ([129.145.35.78]) by mercury.Sun.COM (SMI-8.6/mail.byaddr) with SMTP id OAA23057 for <xemacs-beta@xemacs.org>; Fri, 16 May 1997 14:14:36 -0700
Received: from legba.Corp.Sun.COM by Corp.Sun.COM (SMI-8.6/SMI-5.3)
	id OAB23446; Fri, 16 May 1997 14:01:07 -0700
Received: by legba.Corp.Sun.COM (SMI-8.6/SMI-SVR4)
	id OAA08502; Fri, 16 May 1997 14:00:24 -0700
To: xemacs-beta@xemacs.org
Subject: DEL patch, as promised.
Mime-Version: 1.0 (generated by tm-edit 7.106)
Content-Type: multipart/mixed;
 boundary="Multipart_Fri_May_16_14:00:24_1997-1"
Content-Transfer-Encoding: 7bit
From: Gary.Foster@Corp.Sun.COM (Gary D. Foster)
Date: 16 May 1997 14:00:24 -0700
Message-ID: <bciaflv2kuv.fsf@corp.Sun.COM>
Lines: 411
X-Mailer: Gnus v5.4.52/XEmacs 20.2

--Multipart_Fri_May_16_14:00:24_1997-1
Content-Type: text/plain; charset=US-ASCII

Ok, as promised, here's the diffs for the DEL code I've done so far.
I'll just throw the code out there and then you can all beat it and me 
up for an explanation.  It's all very simple though, nothing fancy at
all.

-- Gary F.

--Multipart_Fri_May_16_14:00:24_1997-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="delpatch"
Content-Transfer-Encoding: 7bit

diff -r -u xemacs-20.2/lisp/modes/ada-mode.el xemacs-20.2-work/lisp/modes/ada-mode.el
--- xemacs-20.2/lisp/modes/ada-mode.el	Thu May 15 08:55:20 1997
+++ xemacs-20.2-work/lisp/modes/ada-mode.el	Thu May 15 10:37:23 1997
@@ -3308,8 +3308,8 @@
       ;; Casing
       (define-key ada-mode-map "\C-c\C-r" 'ada-adjust-case-region)
       (define-key ada-mode-map "\C-c\C-b" 'ada-adjust-case-buffer)
-
-      (define-key ada-mode-map "\177"     'backward-delete-char-untabify)
+;; GDF - don't rebind the DEL key
+;;      (define-key ada-mode-map "\177"     'backward-delete-char-untabify)
 
       ;; Use predefined function of emacs19 for comments (RE)
       (define-key ada-mode-map "\C-c;"    'comment-region)
Binary files xemacs-20.2/lisp/modes/ada-mode.elc and xemacs-20.2-work/lisp/modes/ada-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/cc-mode.el xemacs-20.2-work/lisp/modes/cc-mode.el
--- xemacs-20.2/lisp/modes/cc-mode.el	Thu May 15 08:55:22 1997
+++ xemacs-20.2-work/lisp/modes/cc-mode.el	Fri May 16 12:01:25 1997
@@ -1035,7 +1035,8 @@
   (define-key c-mode-map "\C-c\C-p"  'c-backward-conditional)
   (define-key c-mode-map "\C-c\C-u"  'c-up-conditional)
   (define-key c-mode-map "\t"        'c-indent-command)
-  (define-key c-mode-map "\177"      'c-electric-delete)
+;; GDF - don't rebind the DEL key
+;;  (define-key c-mode-map "\177"      'c-electric-delete)
   ;; these are new keybindings, with no counterpart to BOCM
   (define-key c-mode-map ","         'c-electric-semi&comma)
   (define-key c-mode-map "*"         'c-electric-star)
@@ -1427,6 +1428,8 @@
 \\{c-mode-map}"
   (interactive)
   (kill-all-local-variables)
+  (make-local-hook 'backspace-or-delete-hook)
+  (add-hook 'backspace-or-delete-hook 'c-electric-delete)
   (set-syntax-table c-mode-syntax-table)
   (setq major-mode 'c-mode
 	mode-name "C"
@@ -1953,8 +1956,8 @@
       (skip-chars-backward " \t\n")
       (if (/= (point) here)
 	  (delete-region (point) here)
-	(funcall c-delete-function 1)
-	))))
+	(funcall c-delete-function 1))))
+  t)
 
 (defun c-electric-pound (arg)
   "Electric pound (`#') insertion.
Binary files xemacs-20.2/lisp/modes/cc-mode.elc and xemacs-20.2-work/lisp/modes/cc-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/cperl-mode.el xemacs-20.2-work/lisp/modes/cperl-mode.el
--- xemacs-20.2/lisp/modes/cperl-mode.el	Thu May 15 08:55:23 1997
+++ xemacs-20.2-work/lisp/modes/cperl-mode.el	Fri May 16 12:59:44 1997
@@ -713,7 +713,8 @@
   (cperl-define-key "\e\C-q" 'cperl-indent-exp) ; Usually not bound
   ;;(cperl-define-key "\M-q" 'cperl-fill-paragraph)
   ;;(cperl-define-key "\e;" 'cperl-indent-for-comment)
-  (cperl-define-key "\177" 'cperl-electric-backspace)
+;; GDF - don't clobber the DEL binding...
+;;  (cperl-define-key "\177" 'cperl-electric-backspace)
   (cperl-define-key "\t" 'cperl-indent-command)
   ;; don't clobber the backspace binding:
   (cperl-define-key "\C-hf" 'cperl-info-on-command [(control h) f])
@@ -991,6 +992,8 @@
 with no args."
   (interactive)
   (kill-all-local-variables)
+  (make-local-hook 'backspace-or-delete-hook)
+  (add-hook 'backspace-or-delete-hook 'cperl-electric-backspace)
   ;;(if cperl-hairy
   ;;    (progn
   ;;	(cperl-set 'cperl-font-lock cperl-hairy)
@@ -1548,7 +1551,7 @@
 
 (defun cperl-electric-backspace (arg)
   "Backspace-untabify, or remove the whitespace inserted by an electric key."
-  (interactive "p")
+  (interactive "*P")
   (if (and cperl-auto-newline 
 	   (memq last-command '(cperl-electric-semi 
 				cperl-electric-terminator
@@ -1560,7 +1563,8 @@
 	(setq p (point))
 	(skip-chars-backward " \t\n")
 	(delete-region (point) p))
-    (backward-delete-char-untabify arg)))
+    (backward-delete-char-untabify (prefix-numeric-value arg)))
+  t)
 
 (defun cperl-inside-parens-p ()
   (condition-case ()
Binary files xemacs-20.2/lisp/modes/cperl-mode.elc and xemacs-20.2-work/lisp/modes/cperl-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/eiffel3.el xemacs-20.2-work/lisp/modes/eiffel3.el
--- xemacs-20.2/lisp/modes/eiffel3.el	Thu May 15 08:55:23 1997
+++ xemacs-20.2-work/lisp/modes/eiffel3.el	Thu May 15 09:59:37 1997
@@ -1785,7 +1785,6 @@
   (if (and (boundp 'eif-cr-function) eif-cr-function)
       (define-key eiffel-mode-map "\C-m" eif-cr-function)
     )
-  (define-key eiffel-mode-map "\177" 'backward-delete-char-untabify)
   (define-key eiffel-mode-map "\M-\C-q" 'eif-indent-construct)
   (define-key eiffel-mode-map "\M-'" 'eif-feature-quote)
   (define-key eiffel-mode-map "\M-q" 'eif-fill-paragraph)
Binary files xemacs-20.2/lisp/modes/eiffel3.elc and xemacs-20.2-work/lisp/modes/eiffel3.elc differ
diff -r -u xemacs-20.2/lisp/modes/icon.el xemacs-20.2-work/lisp/modes/icon.el
--- xemacs-20.2/lisp/modes/icon.el	Thu May 15 08:55:25 1997
+++ xemacs-20.2-work/lisp/modes/icon.el	Thu May 15 10:38:24 1997
@@ -46,7 +46,8 @@
   (define-key icon-mode-map "\e\C-a" 'beginning-of-icon-defun)
   (define-key icon-mode-map "\e\C-e" 'end-of-icon-defun)
   (define-key icon-mode-map "\e\C-q" 'indent-icon-exp)
-  (define-key icon-mode-map "\177" 'backward-delete-char-untabify)
+;; GDF - Don't rebind the DEL key
+;; (define-key icon-mode-map "\177" 'backward-delete-char-untabify)  
   (define-key icon-mode-map "\t" 'icon-indent-command))
 
 (defvar icon-mode-syntax-table nil
Binary files xemacs-20.2/lisp/modes/icon.elc and xemacs-20.2-work/lisp/modes/icon.elc differ
diff -r -u xemacs-20.2/lisp/modes/lisp-mode.el xemacs-20.2-work/lisp/modes/lisp-mode.el
--- xemacs-20.2/lisp/modes/lisp-mode.el	Thu May 15 08:55:26 1997
+++ xemacs-20.2-work/lisp/modes/lisp-mode.el	Thu May 15 10:40:11 1997
@@ -202,8 +202,10 @@
    ;; XEmacs changes
    (set-keymap-name shared-lisp-mode-map 'shared-lisp-mode-map)
    (define-key shared-lisp-mode-map "\M-;" 'lisp-indent-for-comment)
-   (define-key shared-lisp-mode-map "\e\C-q" 'indent-sexp)
-   (define-key shared-lisp-mode-map "\177" 'backward-delete-char-untabify))
+;; GDF - don't rebind the DEL key
+;;  (define-key shared-lisp-mode-map "\177" 'backward-delete-char-untabify)
+
+   (define-key shared-lisp-mode-map "\e\C-q" 'indent-sexp))
 
 (defvar emacs-lisp-mode-map ()
   "Keymap for Emacs Lisp mode.
Binary files xemacs-20.2/lisp/modes/lisp-mode.elc and xemacs-20.2-work/lisp/modes/lisp-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/old-c++-mode.el xemacs-20.2-work/lisp/modes/old-c++-mode.el
--- xemacs-20.2/lisp/modes/old-c++-mode.el	Thu May 15 08:55:27 1997
+++ xemacs-20.2-work/lisp/modes/old-c++-mode.el	Thu May 15 10:07:06 1997
@@ -213,7 +213,8 @@
   (define-key c++-mode-map "/"         'c++-electric-slash)
   (define-key c++-mode-map "*"         'c++-electric-star)
   (define-key c++-mode-map ":"         'c++-electric-colon)
-  (define-key c++-mode-map "\177"      'c++-electric-delete)
+;; GDF - use the delbs hooks instead  
+;;  (define-key c++-mode-map "\177"      'c++-electric-delete)
   (define-key c++-mode-map "\C-c\C-t"  'c++-toggle-auto-hungry-state)
   (define-key c++-mode-map "\C-c\C-h"  'c++-toggle-hungry-state)
   (define-key c++-mode-map "\C-c\C-a"  'c++-toggle-auto-state)
Binary files xemacs-20.2/lisp/modes/old-c++-mode.elc and xemacs-20.2-work/lisp/modes/old-c++-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/old-c-mode.el xemacs-20.2-work/lisp/modes/old-c-mode.el
--- xemacs-20.2/lisp/modes/old-c-mode.el	Thu May 15 08:55:28 1997
+++ xemacs-20.2-work/lisp/modes/old-c-mode.el	Thu May 15 10:07:51 1997
@@ -59,7 +59,8 @@
       (define-key c-mode-map "\C-c\C-n" 'c-forward-conditional)
       (define-key c-mode-map "\C-c\C-p" 'c-backward-conditional)
       (define-key c-mode-map "\C-c\C-u" 'c-up-conditional)
-      (define-key c-mode-map "\177" 'backward-delete-char-untabify)
+;; GDF - Don't remap the delete key      
+;;      (define-key c-mode-map "\177" 'backward-delete-char-untabify)
       (define-key c-mode-map "\t" 'c-indent-command)))
 
 (defvar c-mode-popup-menu
Binary files xemacs-20.2/lisp/modes/old-c-mode.elc and xemacs-20.2-work/lisp/modes/old-c-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/pascal.el xemacs-20.2-work/lisp/modes/pascal.el
--- xemacs-20.2/lisp/modes/pascal.el	Thu May 15 08:55:28 1997
+++ xemacs-20.2-work/lisp/modes/pascal.el	Thu May 15 10:11:15 1997
@@ -88,7 +88,8 @@
   (define-key pascal-mode-map "\t"       'electric-pascal-tab)
   (define-key pascal-mode-map "\M-\t"    'pascal-complete-word)
   (define-key pascal-mode-map "\M-?"     'pascal-show-completions)
-  (define-key pascal-mode-map "\177"     'backward-delete-char-untabify)
+;; GDF - don't rebind the delete key.
+;;  (define-key pascal-mode-map "\177"     'backward-delete-char-untabify)
   (define-key pascal-mode-map "\M-\C-h"  'pascal-mark-defun)
   (define-key pascal-mode-map "\C-c\C-b" 'pascal-insert-block)
   (define-key pascal-mode-map "\M-*"     'pascal-star-comment)
Binary files xemacs-20.2/lisp/modes/pascal.elc and xemacs-20.2-work/lisp/modes/pascal.elc differ
diff -r -u xemacs-20.2/lisp/modes/perl-mode.el xemacs-20.2-work/lisp/modes/perl-mode.el
--- xemacs-20.2/lisp/modes/perl-mode.el	Thu May 15 08:55:29 1997
+++ xemacs-20.2-work/lisp/modes/perl-mode.el	Thu May 15 10:11:53 1997
@@ -120,7 +120,8 @@
   (define-key perl-mode-map "\e\C-e" 'perl-end-of-function)
   (define-key perl-mode-map "\e\C-h" 'mark-perl-function)
   (define-key perl-mode-map "\e\C-q" 'indent-perl-exp)
-  (define-key perl-mode-map "\177" 'backward-delete-char-untabify)
+;; GDF - Don't rebind the delete key  
+;;  (define-key perl-mode-map "\177" 'backward-delete-char-untabify)
   (define-key perl-mode-map "\t" 'perl-indent-command))
 
 (autoload 'c-macro-expand "cmacexp"
Binary files xemacs-20.2/lisp/modes/perl-mode.elc and xemacs-20.2-work/lisp/modes/perl-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/python-mode.el xemacs-20.2-work/lisp/modes/python-mode.el
--- xemacs-20.2/lisp/modes/python-mode.el	Thu May 15 08:55:30 1997
+++ xemacs-20.2-work/lisp/modes/python-mode.el	Thu May 15 10:13:28 1997
@@ -304,7 +304,8 @@
 	    ("\C-c\C-c"  . py-execute-buffer)
 	    ("\C-c|"	 . py-execute-region)
 	    ("\C-c!"	 . py-shell)
-	    ("\177"	 . py-delete-char)
+;; GDF - Don't rebind the delete key	    
+;;	    ("\177"	 . py-delete-char)
 	    ("\n"	 . py-newline-and-indent)
 	    ("\C-c:"	 . py-guess-indent-offset)
 	    ("\C-c\t"	 . py-indent-region)
Binary files xemacs-20.2/lisp/modes/python-mode.elc and xemacs-20.2-work/lisp/modes/python-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/scheme.el xemacs-20.2-work/lisp/modes/scheme.el
--- xemacs-20.2/lisp/modes/scheme.el	Thu May 15 08:55:30 1997
+++ xemacs-20.2-work/lisp/modes/scheme.el	Thu May 15 10:24:28 1997
@@ -121,7 +121,8 @@
 
 (defun scheme-mode-commands (map)
   (define-key map "\t" 'scheme-indent-line)
-  (define-key map "\177" 'backward-delete-char-untabify)
+;; GDF - Don't rebind the delete key  
+;;  (define-key map "\177" 'backward-delete-char-untabify)
   (define-key map "\e\C-q" 'scheme-indent-sexp))
 
 (defvar scheme-mode-map nil)
Binary files xemacs-20.2/lisp/modes/scheme.elc and xemacs-20.2-work/lisp/modes/scheme.elc differ
diff -r -u xemacs-20.2/lisp/modes/sh-script.el xemacs-20.2-work/lisp/modes/sh-script.el
--- xemacs-20.2/lisp/modes/sh-script.el	Thu May 15 08:55:31 1997
+++ xemacs-20.2-work/lisp/modes/sh-script.el	Thu May 15 10:26:20 1997
@@ -314,9 +314,10 @@
 			       map (current-global-map))
     (substitute-key-definition 'newline-and-indent 'sh-newline-and-indent
 			       map (current-global-map))
-    (substitute-key-definition 'delete-backward-char
-			       'backward-delete-char-untabify
-			       map (current-global-map))
+;; GDF - Don't mess around with the DEL bindings    
+;;    (substitute-key-definition 'delete-backward-char
+;;			       'backward-delete-char-untabify
+;;			       map (current-global-map))
     (define-key map "\C-c:" 'sh-set-shell)
     (substitute-key-definition 'beginning-of-defun
 			       'sh-beginning-of-compound-command
Binary files xemacs-20.2/lisp/modes/sh-script.elc and xemacs-20.2-work/lisp/modes/sh-script.elc differ
diff -r -u xemacs-20.2/lisp/modes/simula.el xemacs-20.2-work/lisp/modes/simula.el
--- xemacs-20.2/lisp/modes/simula.el	Thu May 15 08:55:31 1997
+++ xemacs-20.2-work/lisp/modes/simula.el	Thu May 15 10:26:53 1997
@@ -123,7 +123,8 @@
   (define-key simula-mode-map "\C-c\C-n"   'simula-next-statement)
   ;(define-key simula-mode-map "\C-c\C-g"   'simula-goto-definition)
   ;(define-key simula-mode-map "\C-c\C-h"   'simula-standard-help)
-  (define-key simula-mode-map "\177"       'backward-delete-char-untabify)
+;; GDF - Don't mess with DEL  
+;;  (define-key simula-mode-map "\177"       'backward-delete-char-untabify)
   (define-key simula-mode-map ":"          'simula-electric-label)
   (define-key simula-mode-map "\t"         'simula-indent-command))
 
Binary files xemacs-20.2/lisp/modes/simula.elc and xemacs-20.2-work/lisp/modes/simula.elc differ
diff -r -u xemacs-20.2/lisp/modes/tcl.el xemacs-20.2-work/lisp/modes/tcl.el
--- xemacs-20.2/lisp/modes/tcl.el	Thu May 15 08:55:31 1997
+++ xemacs-20.2-work/lisp/modes/tcl.el	Thu May 15 10:27:44 1997
@@ -565,7 +565,8 @@
   ;; FIXME.
   (define-key tcl-mode-map "\e\C-h" 'tcl-mark-defun)
   (define-key tcl-mode-map "\e\C-q" 'indent-tcl-exp)
-  (define-key tcl-mode-map "\177" 'backward-delete-char-untabify)
+;; GDF - Don't mess with the DEL key
+;;  (define-key tcl-mode-map "\177" 'backward-delete-char-untabify)
   (define-key tcl-mode-map "\t" 'tcl-indent-command)
   (define-key tcl-mode-map "\M-;" 'tcl-indent-for-comment)
   (define-key tcl-mode-map "\M-\C-x" 'tcl-eval-defun)
@@ -590,7 +591,8 @@
     'comint-dynamic-list-filename-completions)
   (define-key inferior-tcl-mode-map "\e\C-a" 'tcl-beginning-of-defun)
   (define-key inferior-tcl-mode-map "\e\C-e" 'tcl-end-of-defun)
-  (define-key inferior-tcl-mode-map "\177" 'backward-delete-char-untabify)
+;; GDF - Don't mess with the DEL key
+;;  (define-key inferior-tcl-mode-map "\177" 'backward-delete-char-untabify)
   (define-key inferior-tcl-mode-map "\M-\C-x" 'tcl-eval-defun)
   (define-key inferior-tcl-mode-map "\C-c\C-b" 'tcl-submit-bug-report)
   (define-key inferior-tcl-mode-map "\C-c\C-i" 'tcl-help-on-word)
Binary files xemacs-20.2/lisp/modes/tcl.elc and xemacs-20.2-work/lisp/modes/tcl.elc differ
diff -r -u xemacs-20.2/lisp/modes/verilog-mode.el xemacs-20.2-work/lisp/modes/verilog-mode.el
--- xemacs-20.2/lisp/modes/verilog-mode.el	Thu May 15 08:55:32 1997
+++ xemacs-20.2-work/lisp/modes/verilog-mode.el	Thu May 15 10:29:49 1997
@@ -264,7 +264,8 @@
   (define-key verilog-mode-map "\M-\C-f"  'electric-verilog-forward-sexp)
   (define-key verilog-mode-map "\M-\r"    (function (lambda ()
 		      (interactive) (electric-verilog-terminate-line 1))))
-  (define-key verilog-mode-map "\177"     'backward-delete-char-untabify)
+;; GDF - Leave the DEL key alone
+;;  (define-key verilog-mode-map "\177"     'backward-delete-char-untabify)
   (define-key verilog-mode-map "\M-\t"    'verilog-complete-word)
   (define-key verilog-mode-map "\M-?"     'verilog-show-completions)
   (define-key verilog-mode-map "\M-\C-h"  'verilog-mark-defun)
Binary files xemacs-20.2/lisp/modes/verilog-mode.elc and xemacs-20.2-work/lisp/modes/verilog-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/vhdl-mode.el xemacs-20.2-work/lisp/modes/vhdl-mode.el
--- xemacs-20.2/lisp/modes/vhdl-mode.el	Thu May 15 08:55:33 1997
+++ xemacs-20.2-work/lisp/modes/vhdl-mode.el	Thu May 15 10:30:22 1997
@@ -347,7 +347,8 @@
   (define-key vhdl-mode-map "\M-\C-h"	'vhdl-mark-defun)
   (define-key vhdl-mode-map "\M-\C-q"	'vhdl-indent-sexp)
   (define-key vhdl-mode-map "\t"        'vhdl-indent-command)
-  (define-key vhdl-mode-map "\177"      'backward-delete-char-untabify)
+;; GDF - leave the DEL key alone!
+;;  (define-key vhdl-mode-map "\177"      'backward-delete-char-untabify)
   ;; these are new keybindings, with no counterpart to BOCM
   (define-key vhdl-mode-map "\C-c\C-b"  'vhdl-submit-bug-report)
   (define-key vhdl-mode-map "\C-c\C-c"  'comment-region)
Binary files xemacs-20.2/lisp/modes/vhdl-mode.elc and xemacs-20.2-work/lisp/modes/vhdl-mode.elc differ
diff -r -u xemacs-20.2/lisp/modes/view-less.el xemacs-20.2-work/lisp/modes/view-less.el
--- xemacs-20.2/lisp/modes/view-less.el	Thu May 15 08:55:33 1997
+++ xemacs-20.2-work/lisp/modes/view-less.el	Thu May 15 10:30:50 1997
@@ -59,7 +59,8 @@
     (define-key map "-" 'negative-argument)
     (define-key map " " 'scroll-up)
     (define-key map "f" 'scroll-up)
-    (define-key map "\177" 'scroll-down)
+;; GDF - Don't rebind the DEL key
+;;    (define-key map "\177" 'scroll-down)
     (define-key map "b" 'scroll-down)
     (define-key map 'backspace 'scroll-down)
     (define-key map "\r" 'view-scroll-lines-up)
Binary files xemacs-20.2/lisp/modes/view-less.elc and xemacs-20.2-work/lisp/modes/view-less.elc differ
diff -r -u xemacs-20.2/lisp/modes/vrml-mode.el xemacs-20.2-work/lisp/modes/vrml-mode.el
--- xemacs-20.2/lisp/modes/vrml-mode.el	Thu May 15 08:55:33 1997
+++ xemacs-20.2-work/lisp/modes/vrml-mode.el	Thu May 15 10:31:56 1997
@@ -98,7 +98,8 @@
       (define-key vrml-mode-map "{" 'vrml-electric-brace)
       (define-key vrml-mode-map "}" 'vrml-electric-brace)
       (define-key vrml-mode-map "\e\C-q" 'indent-vrml-exp)
-      (define-key vrml-mode-map "\177" 'backward-delete-char-untabify)
+;; GDF - why does EVERYONE want to rebind the DEL key?  *sigh*
+;;      (define-key vrml-mode-map "\177" 'backward-delete-char-untabify)
       (define-key vrml-mode-map "\t" 'vrml-indent-command)
       (define-key vrml-mode-map "\M-;" 'vrml-indent-for-comment)
       ))
Binary files xemacs-20.2/lisp/modes/vrml-mode.elc and xemacs-20.2-work/lisp/modes/vrml-mode.elc differ
diff -r -u xemacs-20.2/lisp/prim/keydefs.el xemacs-20.2-work/lisp/prim/keydefs.el
--- xemacs-20.2/lisp/prim/keydefs.el	Thu May 15 08:56:54 1997
+++ xemacs-20.2-work/lisp/prim/keydefs.el	Thu May 15 12:53:12 1997
@@ -95,7 +95,7 @@
 (define-key global-map "\C-e" 'end-of-line)
 (define-key global-map "\C-f" 'forward-char)
 (define-key global-map "\C-d" 'delete-char)
-(define-key global-map "\177" 'delete-backward-char)
+(define-key global-map "\177" 'backspace-or-delete)
 
 ;; FSFmacs files.el
 
@@ -371,9 +371,8 @@
 
 ;; Default binding of "Backspace" is no longer the same as delete.
 ;; Default binding of "Control-h" is help.
-(define-key global-map 'backspace "\C-?")
-(define-key global-map '(meta backspace) "\e\C-?")
-
+(define-key global-map 'backspace 'delete-backward-char)
+(define-key global-map '(meta backspace) 'backward-kill-word)
 
 (define-key global-map "\M-\C-z" 'activate-region)
 
Binary files xemacs-20.2/lisp/prim/keydefs.elc and xemacs-20.2-work/lisp/prim/keydefs.elc differ
diff -r -u xemacs-20.2/lisp/prim/simple.el xemacs-20.2-work/lisp/prim/simple.el
--- xemacs-20.2/lisp/prim/simple.el	Thu May 15 08:56:58 1997
+++ xemacs-20.2-work/lisp/prim/simple.el	Fri May 16 12:35:24 1997
@@ -1,4 +1,4 @@
-;;; simple.el --- basic editing commands for XEmacs
+;; simple.el --- basic editing commands for XEmacs
 
 ;; Copyright (C) 1985, 1986, 1987, 1993-1995 Free Software Foundation, Inc.
 ;; Copyright (C) 1995 Tinker Systems and INS Engineering Corp.
@@ -352,6 +352,28 @@
   ;; unless at end of line.
   (and overwrite-mode (not (eolp))
        (save-excursion (insert-char ?\  arg))))
+
+(defcustom delete-erases-forward nil
+  "If non-nil, the DEL key will erase one character forwards.
+If nil, the DEL key will erase one character backwards."
+  :type 'boolean
+  :group 'editing-basics)
+
+(defcustom backspace-or-delete-hook nil
+  "Hook that is run prior to executing the backspace-or-delete function.
+Return a non-nil value to indicate that the editing chore has been
+handled and the backspace-or-delete function will exit without doing
+anything else."
+  :type 'hook
+  :group 'editing-basics)
+
+(defun backspace-or-delete (arg)
+  "Delete either one character backwards or one character forwards."
+  (interactive "*P")
+  (unless (run-hook-with-args 'backspace-or-delete-hook arg)
+    (if delete-erases-forward
+	(delete-char (prefix-numeric-value arg))
+      (delete-backward-char (prefix-numeric-value arg)))))
 
 (defun zap-to-char (arg char)
   "Kill up to and including ARG'th occurrence of CHAR.
Binary files xemacs-20.2/lisp/prim/simple.elc and xemacs-20.2-work/lisp/prim/simple.elc differ

--Multipart_Fri_May_16_14:00:24_1997-1--

