*** empty log message ***
[bpt/emacs.git] / lisp / emulation / edt-mapper.el
index 5f82416..79dabcc 100644 (file)
@@ -1,16 +1,17 @@
 ;;; edt-mapper.el --- create an EDT LK-201 map file for X-Windows Emacs
 
-;; Copyright (C) 1994, 1995, 2000, 2001  Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 2000, 2001, 2002, 2003, 2004,
+;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
-;; Author: Kevin Gallagher <kevingal@onramp.net>
-;; Maintainer: Kevin Gallagher <kevingal@onramp.net>
+;; Author: Kevin Gallagher <Kevin.Gallagher@boeing.com>
+;; Maintainer: Kevin Gallagher <Kevin.Gallagher@boeing.com>
 ;; Keywords: emulations
 
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
@@ -20,8 +21,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 ;;
 ;;;  Decide Emacs Variant, GNU Emacs or XEmacs (aka Lucid Emacs).
 ;;;  Determine Window System, and X Server Vendor (if appropriate).
 ;;;
-(defconst edt-x-emacs-p (string-match "XEmacs" emacs-version)
-  "Non-nil if we are running XEmacs version 19, or higher.")
-
-(defconst edt-emacs-variant (if edt-x-emacs-p "xemacs" "gnu")
-  "Indicates Emacs variant:  GNU Emacs or XEmacs \(aka Lucid Emacs\).")
-
-(defconst edt-window-system (if edt-x-emacs-p (console-type) window-system)
+(defconst edt-window-system (if (featurep 'xemacs) (console-type) window-system)
   "Indicates window system \(in GNU Emacs\) or console type \(in XEmacs\).")
 
 (defconst edt-xserver (if (eq edt-window-system 'x)
-                         (if edt-x-emacs-p
-                             (replace-in-string (x-server-vendor) "[ _]" "-")
-                           (subst-char-in-string ?  ?- (x-server-vendor)))
+                         (if (featurep 'xemacs)
+                             ;; The Cygwin window manager has a `/' in its
+                             ;; name, which breaks the generated file name of
+                             ;; the custom key map file.  Replace `/' with a
+                             ;; `-' to work around that.
+                             (replace-in-string (x-server-vendor) "[ /]" "-")
+                           (subst-char-in-string ?/ ?- (subst-char-in-string ?  ?- (x-server-vendor))))
                        nil)
   "Indicates X server vendor name, if applicable.")
 
 
     Sometimes, edt-mapper will ignore a key you press, and just continue to
     prompt for the same key.  This can happen when your window manager sucks
-    up the key and doesn't pass it on to emacs, or it could be an emacs bug.
+    up the key and doesn't pass it on to Emacs, or it could be an Emacs bug.
     Either way, there's nothing that edt-mapper can do about it.  You must
     press RETURN, to skip the current key and continue.  Later, you and/or
     your local system guru can try to figure out why the key is being ignored.
 ;;;  function-key-map.
 ;;;
 (cond
- (edt-x-emacs-p
+ ((featurep 'xemacs)
   (setq edt-return-seq (read-key-sequence "Hit carriage-return <CR> to continue "))
   (setq edt-return (concat "[" (format "%s" (event-key (aref edt-return-seq 0))) "]")))
  (t
 ;;;
 ;;;  Key mapping functions
 ;;;
-(defun edt-lucid-map-key (ident descrip)
-  (interactive)
-  (setq edt-key-seq (read-key-sequence (format "Press %s%s: " ident descrip)))
-  (setq edt-key (concat "[" (format "%s" (event-key (aref edt-key-seq 0))) "]"))
-  (cond ((not (equal edt-key edt-return))
-         (set-buffer "Keys")
-         (insert (format "    (\"%s\" . %s)\n" ident edt-key))
-         (set-buffer "Directions"))
-        ;; bogosity to get next prompt to come up, if the user hits <CR>!
-        ;; check periodically to see if this is still needed...
-        (t
-         (set-buffer "Keys")
-         (insert (format "    (\"%s\" . \"\" )\n" ident))
-         (set-buffer "Directions")))
-  edt-key)
-
-(defun edt-gnu-map-key (ident descrip)
+(defun edt-map-key (ident descrip)
   (interactive)
-  (setq edt-key (read-key-sequence (format "Press %s%s: " ident descrip)))
-  (cond ((not (equal edt-key edt-return))
-         (set-buffer "Keys")
-         (insert (if (vectorp edt-key)
-                     (format "    (\"%s\" . %s)\n" ident edt-key)
-                   (format "    (\"%s\" . \"%s\")\n" ident edt-key)))
-         (set-buffer "Directions"))
-        ;; bogosity to get next prompt to come up, if the user hits <CR>!
-        ;; check periodically to see if this is still needed...
-        (t
-         (set-buffer "Keys")
-         (insert (format "    (\"%s\" . \"\" )\n" ident))
-         (set-buffer "Directions")))
+  (if (featurep 'xemacs)
+      (progn 
+       (setq edt-key-seq (read-key-sequence (format "Press %s%s: " ident descrip)))
+       (setq edt-key (concat "[" (format "%s" (event-key (aref edt-key-seq 0))) "]"))
+       (cond ((not (equal edt-key edt-return))
+              (set-buffer "Keys")
+              (insert (format "    (\"%s\" . %s)\n" ident edt-key))
+              (set-buffer "Directions"))
+             ;; bogosity to get next prompt to come up, if the user hits <CR>!
+             ;; check periodically to see if this is still needed...
+             (t
+              (set-buffer "Keys")
+              (insert (format "    (\"%s\" . \"\" )\n" ident))
+              (set-buffer "Directions"))))
+    (setq edt-key (read-key-sequence (format "Press %s%s: " ident descrip)))
+    (cond ((not (equal edt-key edt-return))
+          (set-buffer "Keys")
+          (insert (if (vectorp edt-key)
+                      (format "    (\"%s\" . %s)\n" ident edt-key)
+                    (format "    (\"%s\" . \"%s\")\n" ident edt-key)))
+          (set-buffer "Directions"))
+         ;; bogosity to get next prompt to come up, if the user hits <CR>!
+         ;; check periodically to see if this is still needed...
+         (t
+          (set-buffer "Keys")
+          (insert (format "    (\"%s\" . \"\" )\n" ident))
+          (set-buffer "Directions"))))
   edt-key)
 
-(fset 'edt-map-key (if edt-x-emacs-p 'edt-lucid-map-key 'edt-gnu-map-key))
 (set-buffer "Keys")
 (insert "
 ;;
 ;;;
 ;;;  Restore function-key-map.
 ;;;
-(if (and edt-window-system (not edt-x-emacs-p))
+(if (and edt-window-system (not (featurep 'xemacs)))
     (setq function-key-map edt-save-function-key-map))
 (setq EDT-key-name "")
 (while (not
 ;;;  Save the key mapping file
 ;;;
 (let ((file (concat
-            "~/.edt-" edt-emacs-variant
+            "~/.edt-" (if (featurep 'xemacs) "xemacs" "gnu")
             (if edt-term (concat "-" edt-term))
             (if edt-xserver (concat "-" edt-xserver))
             (if edt-window-system (concat "-" (upcase (symbol-name edt-window-system))))