diff lisp/hm--html-menus/hm--html-keys.el @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children ac2d302a0011
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/hm--html-menus/hm--html-keys.el	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,701 @@
+;;; hm--html-keys.el
+;;; v1.50; 17-Feb-1996
+;;; Copyright (C) 1995, 1996 Heiko Muenkel
+;;; email: muenkel@tnt.uni-hannover.de
+;;;
+;;;  This program 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 1, or (at your option)
+;;;  any later version.
+;;;
+;;;  This program is distributed in the hope that it will be useful,
+;;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;;  GNU General Public License for more details.
+;;;
+;;;  You should have received a copy of the GNU General Public License
+;;;  along with this program; if not, write to the Free Software
+;;;  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+;;;
+;;; 
+;;; Description:
+;;;
+;;;	Defines the new keybindigs for the hm--html-menus package.
+;;;	At the moment it will only be used, if the variable
+;;;	'hm--html-use-old-keymap' in hm--html-configuration.el
+;;;	is set to nil, which is the default.
+;;; 
+;;; Installation: 
+;;;   
+;;;	Put this file in one of your load path directories.
+;;;
+
+(provide 'hm--html-keys)
+
+
+(defvar hm--html-noregion-anchor-map nil
+  "Noregion sub keymap for inserting anchors.")
+
+(if hm--html-noregion-anchor-map
+    ()
+  (setq hm--html-noregion-anchor-map (make-sparse-keymap))
+  (define-key hm--html-noregion-anchor-map "h" 'hm--html-add-html-link)
+  (define-key hm--html-noregion-anchor-map "i" 'hm--html-add-info-link)
+  (define-key hm--html-noregion-anchor-map "g" 'hm--html-add-gopher-link)
+  (define-key hm--html-noregion-anchor-map "f" 'hm--html-add-file-link)
+  (define-key hm--html-noregion-anchor-map "\C-f" 'hm--html-add-ftp-link)
+  (define-key hm--html-noregion-anchor-map "n" 'hm--html-add-news-link)
+  (define-key hm--html-noregion-anchor-map "m" 'hm--html-add-mail-link)
+;  (define-key hm--html-noregion-anchor-map "\C-m" 'hm--html-add-mailto-link)
+  (define-key hm--html-noregion-anchor-map 
+    [(control m)] 'hm--html-add-mailto-link)
+  (define-key hm--html-noregion-anchor-map "w" 'hm--html-add-direct-wais-link)
+  (define-key hm--html-noregion-anchor-map "\C-w" 'hm--html-add-wais-link)
+  (define-key hm--html-noregion-anchor-map "p" 'hm--html-add-proggate-link)
+  (define-key hm--html-noregion-anchor-map 
+    "\C-p" 'hm--html-add-local-proggate-link)
+  (define-key hm--html-noregion-anchor-map "l" 'html-add-normal-link)
+  (define-key hm--html-noregion-anchor-map "t" 'hm--html-add-link-target)
+  )
+
+(defvar hm--html-region-anchor-map nil
+  "Region sub keymap for inserting anchors.")
+
+(if hm--html-region-anchor-map
+    ()
+  (setq hm--html-region-anchor-map (make-sparse-keymap))
+  (define-key hm--html-region-anchor-map "h" 'hm--html-add-html-link-to-region)
+  (define-key hm--html-region-anchor-map "i" 'hm--html-add-info-link-to-region)
+  (define-key hm--html-region-anchor-map 
+    "g" 'hm--html-add-gopher-link-to-region)
+  (define-key hm--html-region-anchor-map "f" 'hm--html-add-file-link-to-region)
+  (define-key hm--html-region-anchor-map 
+    "\C-f" 'hm--html-add-ftp-link-to-region)
+  (define-key hm--html-region-anchor-map "n" 'hm--html-add-news-link-to-region)
+  (define-key hm--html-region-anchor-map "m" 'hm--html-add-mail-link-to-region)
+;  (define-key hm--html-region-anchor-map 
+;    "\C-m" 'hm--html-add-mailto-link-to-region)
+  (define-key hm--html-region-anchor-map
+    [(control m)] 'hm--html-add-mailto-link-to-region)
+  (define-key hm--html-region-anchor-map 
+    "w" 'hm--html-add-direct-wais-link-to-region)
+  (define-key hm--html-region-anchor-map 
+    "\C-w" 'hm--html-add-wais-link-to-region)
+  (define-key hm--html-region-anchor-map 
+    "p" 'hm--html-add-proggate-link-to-region)
+  (define-key hm--html-region-anchor-map 
+    "\C-p" 'hm--html-add-local-proggate-link-to-region)
+  (define-key hm--html-region-anchor-map 
+    "l" 'hm--html-add-normal-link-to-region)
+  (define-key hm--html-region-anchor-map 
+    "t" 'html-add-reference-to-region)
+  )
+
+(defvar hm--html-noregion-frame-map nil
+  "Noregion sub keymap for inserting frame elements.")
+
+(if hm--html-noregion-frame-map
+    ()
+  (setq	hm--html-noregion-frame-map (make-sparse-keymap))
+  (define-key hm--html-noregion-frame-map "f" 'hm--html-add-full-html-frame)
+  (define-key hm--html-noregion-frame-map [(control h)] 'hm--html-add-html) 
+  (define-key hm--html-noregion-frame-map [(meta h)] 'hm--html-add-head)
+  (define-key hm--html-noregion-frame-map "b" 'hm--html-add-body)
+  (define-key hm--html-noregion-frame-map 
+    [(control t)] 'hm--html-add-title-and-header)
+  (define-key hm--html-noregion-frame-map "t" 'hm--html-add-title)
+  (define-key hm--html-noregion-frame-map "h" 'hm--html-add-header)
+  (define-key hm--html-noregion-frame-map "n" 'hm--html-add-normal-node-link)
+  (define-key hm--html-noregion-frame-map "a" 'html-add-address)
+  (define-key hm--html-noregion-frame-map "s" 'hm--html-add-signature)
+  (define-key hm--html-noregion-frame-map 
+    [(control c)] 'hm--html-insert-created-comment)
+  (define-key hm--html-noregion-frame-map "c" 'hm--html-insert-changed-comment)
+  (define-key hm--html-noregion-frame-map "d" 'hm--html-new-date)
+  )
+
+(defvar hm--html-region-frame-map nil
+  "Region sub keymap for inserting frame elements.")
+
+(if hm--html-region-frame-map
+    ()
+  (setq hm--html-region-frame-map (make-sparse-keymap))
+  (define-key hm--html-region-frame-map 
+    "f" 'hm--html-add-full-html-frame-with-region)
+  (define-key hm--html-region-frame-map 
+    [(meta h)] 'hm--html-add-head-to-region)
+  (define-key hm--html-region-frame-map "b" 'hm--html-add-body-to-region)
+  (define-key hm--html-region-frame-map 
+    [(control t)] 'hm--html-add-title-and-header-to-region)
+  (define-key hm--html-region-frame-map "t" 'hm--html-add-title-to-region)
+  (define-key hm--html-region-frame-map "h" 'hm--html-add-header-to-region)
+  (define-key hm--html-region-frame-map "a" 'hm--html-add-address-to-region)
+  )
+
+(defvar hm--html-noregion-structure-map nil
+  "Noregion sub keymap for inserting entities.")
+
+(if hm--html-noregion-structure-map
+    ()
+  (setq hm--html-noregion-structure-map (make-sparse-keymap))
+  (define-key hm--html-noregion-structure-map "i" 'html-add-list-or-menu-item)
+  (define-key hm--html-noregion-structure-map "m" 'html-add-menu)
+  (define-key hm--html-noregion-structure-map "u" 'html-add-list)
+  (define-key hm--html-noregion-structure-map "o" 'hm--html-add-numberlist)
+  (define-key hm--html-noregion-structure-map "d" 'hm--html-add-directory-list)
+  (define-key hm--html-noregion-structure-map 
+    "\C-dl" 'html-add-description-list)
+  (define-key hm--html-noregion-structure-map 
+    "\C-dt" 'hm--html-add-description-title)
+  (define-key hm--html-noregion-structure-map 
+    "\C-de" 'hm--html-add-only-description-entry)
+  (define-key hm--html-noregion-structure-map 
+    "\C-d\C-t" 'html-add-description-entry)
+  (define-key hm--html-noregion-structure-map
+    "\C-tt" 'hm--html-add-table)
+  (define-key hm--html-noregion-structure-map 
+    "\C-t\C-t" 'hm--html-add-table-title)
+  (define-key hm--html-noregion-structure-map 
+    "\C-th" 'hm--html-add-table-header)
+  (define-key hm--html-noregion-structure-map 
+    "\C-tr" 'hm--html-add-first-table-row)
+  (define-key hm--html-noregion-structure-map 
+    "\C-t\C-r" 'hm--html-add-additional-table-row)
+  (define-key hm--html-noregion-structure-map "p" 'hm--html-add-paragraph)
+  (define-key hm--html-noregion-structure-map 
+    "\C-p" 'hm--html-add-paragraph-separator)
+  (define-key hm--html-noregion-structure-map "\C-m" 'hm--html-add-line-break)
+  (define-key hm--html-noregion-structure-map 
+    "h" 'hm--html-add-horizontal-rule)
+  )
+
+(defvar hm--html-region-structure-map nil
+  "Region sub keymap for inserting entities.")
+
+(if hm--html-region-structure-map
+    ()
+  (setq hm--html-region-structure-map (make-sparse-keymap))
+  (define-key hm--html-region-structure-map "m" 'hm--html-add-menu-to-region)
+  (define-key hm--html-region-structure-map "u" 'hm--html-add-list-to-region)
+  (define-key hm--html-region-structure-map 
+    "o" 'hm--html-add-numberlist-to-region)
+  (define-key hm--html-region-structure-map 
+    "d" 'hm--html-add-directory-list-to-region)
+  (define-key hm--html-region-structure-map 
+    "\C-dl" 'html-add-description-list-to-region)
+  (define-key hm--html-region-structure-map
+    "\C-tt" 'hm--html-add-table-to-region)
+  (define-key hm--html-region-structure-map 
+    "\C-t\C-t" 'hm--html-add-table-title-to-region)
+  (define-key hm--html-region-structure-map 
+    "p" 'hm--html-add-paragraph-to-region)
+  )
+
+(defvar hm--html-noregion-formating-paragraph-map nil
+  "Noregion sub keymap for inserting paragraph formating elements.")
+
+(if hm--html-noregion-formating-paragraph-map
+    ()
+  (setq hm--html-noregion-formating-paragraph-map (make-sparse-keymap))
+  (define-key hm--html-noregion-formating-paragraph-map
+    "o" 'html-add-plaintext)
+  (define-key hm--html-noregion-formating-paragraph-map
+    "w" 'hm--html-add-preformated)
+  (define-key hm--html-noregion-formating-paragraph-map
+    "b" 'html-add-blockquote)
+  (define-key hm--html-noregion-formating-paragraph-map
+    "l" 'html-add-listing)
+  (define-key hm--html-noregion-formating-paragraph-map
+    "a" 'hm--html-add-abstract)
+  )
+
+(defvar hm--html-region-formating-paragraph-map nil
+  "Region sub keymap for inserting paragraph formating elements.")
+
+(if hm--html-region-formating-paragraph-map
+    ()
+  (setq hm--html-region-formating-paragraph-map (make-sparse-keymap))
+  (define-key hm--html-region-formating-paragraph-map
+    "o" 'hm--html-add-plaintext-to-region)
+  (define-key hm--html-region-formating-paragraph-map
+    "w" 'hm--html-add-preformated-to-region)
+  (define-key hm--html-region-formating-paragraph-map
+    "b" 'hm--html-add-blockquote-to-region)
+  (define-key hm--html-region-formating-paragraph-map
+    "l" 'hm--html-add-listing-to-region)
+  (define-key hm--html-region-formating-paragraph-map
+    "a" 'hm--html-add-abstract-to-region)
+  )
+
+;(defvar hm--html-noregion-entity-map nil
+;  "Noregion sub keymap for inserting entities.")
+
+;(if hm--html-noregion-entity-map
+;    ()
+;  (setq hm--html-noregion-entity-map (make-sparse-keymap))
+;  )
+
+;(defvar hm--html-region-entity-map nil
+;  "Region sub keymap for inserting entities.")
+
+;(if hm--html-region-entity-map
+;    ()
+;  (setq hm--html-region-entity-map (make-sparse-keymap))
+;  )
+
+;(defvar hm--html-noregion-logical-map nil
+;  "Noregion sub keymap for inserting logical text formating elements.")
+
+;(if hm--html-noregion-logical-map
+;    ()
+;  (setq hm--html-noregion-logical-map (make-sparse-keymap))
+;  )
+
+;(defvar hm--html-region-logical-map nil
+;  "Region sub keymap for inserting logical text formating elements.")
+
+;(if hm--html-region-logical-map
+;    ()
+;  (setq hm--html-region-logical-map (make-sparse-keymap))
+;  )
+
+(defvar hm--html-noregion-formating-word-map nil
+  "Norgion sub keymap for inserting physical text formating elements.")
+
+(if hm--html-noregion-formating-word-map
+    ()
+  (setq hm--html-noregion-formating-word-map (make-sparse-keymap))
+  (define-key hm--html-noregion-formating-word-map
+    "b" 'hm--html-add-bold)
+  (define-key hm--html-noregion-formating-word-map
+    "i" 'hm--html-add-italic)
+  (define-key hm--html-noregion-formating-word-map
+    "u" 'hm--html-add-underline)
+  (define-key hm--html-noregion-formating-word-map
+    "t" 'html-add-fixed)
+  (define-key hm--html-noregion-formating-word-map
+    "s" 'hm--html-add-strikethru)
+  (define-key hm--html-noregion-formating-word-map
+    "\C-p" 'hm--html-add-superscript)
+  (define-key hm--html-noregion-formating-word-map
+    "\C-b" 'hm--html-add-subscript)
+  (define-key hm--html-noregion-formating-word-map
+    "e" 'html-add-emphasized)
+  (define-key hm--html-noregion-formating-word-map
+    "\C-s" 'html-add-strong)
+  )
+
+(defvar hm--html-region-formating-word-map nil
+  "Region sub keymap for inserting word text formating elements.")
+
+(if hm--html-region-formating-word-map
+    ()
+  (setq hm--html-region-formating-word-map (make-sparse-keymap))
+  (define-key hm--html-region-formating-word-map
+    "b" 'hm--html-add-bold-to-region)
+  (define-key hm--html-region-formating-word-map
+    "i" 'hm--html-add-italic-to-region)
+  (define-key hm--html-region-formating-word-map
+    "u" 'hm--html-add-underline-to-region)
+  (define-key hm--html-region-formating-word-map
+    "t" 'hm--html-add-fixed-to-region)
+  (define-key hm--html-region-formating-word-map
+    "s" 'hm--html-add-strikethru-to-region)
+  (define-key hm--html-region-formating-word-map
+    "\C-p" 'hm--html-add-superscript-to-region)
+  (define-key hm--html-region-formating-word-map
+    "\C-b" 'hm--html-add-subscript-to-region)
+  (define-key hm--html-region-formating-word-map
+    "e" 'hm--html-add-emphasized-to-region)
+  (define-key hm--html-region-formating-word-map
+    "\C-s" 'hm--html-add-strong-to-region)
+  )
+
+;(defvar hm--html-noregion-header-map nil
+;  "Noregion sub keymap for inserting header elements.")
+
+;(if hm--html-noregion-header-map
+;    ()
+;  (setq hm--html-noregion-header-map (make-sparse-keymap))
+;  )
+
+;(defvar hm--html-region-header-map nil
+;  "Region sub keymap for inserting header elements.")
+
+;(if hm--html-region-header-map
+;    ()
+;  (setq hm--html-region-header-map (make-sparse-keymap))
+;  )
+
+;(defvar hm--html-noregion-head-map nil
+;  "Noregion sub keymap for inserting head elements.")
+
+;(if hm--html-noregion-head-map
+;    ()
+;  (setq hm--html-noregion-head-map (make-sparse-keymap))
+;  )
+
+;(defvar hm--html-region-head-map nil
+;  "Region sub keymap for inserting head elements.")
+
+;(if hm--html-region-head-map
+;    ()
+;  (setq hm--html-region-head-map (make-sparse-keymap))
+;  )
+
+;(defvar hm--html-noregion-list-map nil
+;  "Noregion sub keymap for inserting lists.")
+
+;(if hm--html-noregion-list-map
+;    ()
+;  (setq hm--html-noregion-list-map (make-sparse-keymap))
+;  )
+
+;(defvar hm--html-region-list-map nil
+;  "Region sub keymap for inserting lists.")
+
+;(if hm--html-region-list-map
+;    ()
+;  (setq hm--html-region-list-map (make-sparse-keymap))
+;  )
+
+(defvar hm--html-noregion-graphics-map nil
+  "Noregion sub keymap for inserting graphics (images).")
+
+(if hm--html-noregion-graphics-map
+    ()
+  (setq hm--html-noregion-graphics-map (make-sparse-keymap))
+  )
+
+(defvar hm--html-region-graphics-map nil
+  "Region sub keymap for inserting graphics (images).")
+
+(if hm--html-region-graphics-map
+    ()
+  (setq hm--html-region-graphics-map (make-sparse-keymap))
+  )
+
+(defvar hm--html-noregion-text-elements-map nil
+  "Noregion sub keymap for inserting text elements.")
+
+(if hm--html-noregion-text-elements-map
+    ()
+  (setq hm--html-noregion-text-elements-map (make-sparse-keymap))
+  )
+
+(defvar hm--html-region-text-elements-map nil
+  "Region sub keymap for inserting text elements.")
+
+(if hm--html-region-text-elements-map
+    ()
+  (setq hm--html-region-text-elements-map (make-sparse-keymap))
+  )
+
+(defvar hm--html-noregion-forms-map nil
+  "Noregion sub keymap for inserting forms.")
+
+(if hm--html-noregion-forms-map
+    ()
+  (setq hm--html-noregion-forms-map (make-sparse-keymap))
+  )
+
+(defvar hm--html-region-forms-map nil
+  "Region sub keymap for inserting forms.")
+
+(if hm--html-region-forms-map
+    ()
+  (setq hm--html-region-forms-map (make-sparse-keymap))
+  )
+
+(defvar hm--html-region-sub-map-1 nil
+  "Region sub keymap for the html-mode.")
+
+(if hm--html-region-sub-map-1
+    ()
+  (setq hm--html-region-sub-map-1 (make-sparse-keymap))
+;  (define-key hm--html-region-sub-map-1 "\C-e" hm--html-region-entity-map)
+;  (define-key hm--html-region-sub-map-1 "\C-l" hm--html-region-logical-map)
+;  (define-key hm--html-region-sub-map-1 "\C-p" hm--html-region-physical-map)
+;  (define-key hm--html-region-sub-map-1 "\C-h" hm--html-region-header-map)
+  (define-key hm--html-region-sub-map-1 "\C-o" hm--html-region-forms-map)
+;  (define-key hm--html-region-sub-map-1 "\C-l" hm--html-region-list-map)
+  (define-key hm--html-region-sub-map-1 "\C-a" hm--html-region-anchor-map)
+  (define-key hm--html-region-sub-map-1 "\C-i" hm--html-region-graphics-map)
+  (define-key hm--html-region-sub-map-1 
+    "\C-t" hm--html-region-text-elements-map)
+;  (define-key hm--html-region-sub-map-1 "\C-b" hm--html-region-head-map)
+  (define-key hm--html-region-sub-map-1 "\C-f" hm--html-region-frame-map)
+  (define-key hm--html-region-sub-map-1 "\C-s" hm--html-region-structure-map)
+  (define-key hm--html-region-sub-map-1 
+    "\C-p" hm--html-region-formating-paragraph-map)
+  (define-key hm--html-region-sub-map-1
+    "\C-w" hm--html-region-formating-word-map)
+  )
+
+(defvar hm--html-noregion-sub-map-1 nil
+  "Noregion sub keymap for the html-mode.")
+
+(if hm--html-noregion-sub-map-1
+    ()
+  (setq hm--html-noregion-sub-map-1 (make-sparse-keymap))
+  
+
+;  (define-key hm--html-noregion-sub-map-1 "\C-e" hm--html-noregion-entity-map)
+;  (define-key hm--html-noregion-sub-map-1 
+;    "\C-l" hm--html-noregion-logical-map)
+;  (define-key hm--html-noregion-sub-map-1 
+;    "\C-p" hm--html-noregion-physical-map)
+;  (define-key hm--html-noregion-sub-map-1 
+;	[(control h)] hm--html-noregion-header-map)
+  (define-key hm--html-noregion-sub-map-1 "\C-o" hm--html-noregion-forms-map)
+;  (define-key hm--html-noregion-sub-map-1 "\C-l" hm--html-noregion-list-map)
+  (define-key hm--html-noregion-sub-map-1 "\C-a" hm--html-noregion-anchor-map)
+  (define-key hm--html-noregion-sub-map-1 
+    [(control i)] hm--html-noregion-graphics-map)
+  (define-key hm--html-noregion-sub-map-1 
+    "\C-t" hm--html-noregion-text-elements-map)
+;  (define-key hm--html-noregion-sub-map-1 "\C-b" hm--html-noregion-head-map)
+  (define-key hm--html-noregion-sub-map-1 "\C-f" hm--html-noregion-frame-map)
+  (define-key hm--html-noregion-sub-map-1 
+    "\C-s" hm--html-noregion-structure-map)
+  (define-key hm--html-noregion-sub-map-1
+    "\C-p" hm--html-noregion-formating-paragraph-map)
+  (define-key hm--html-noregion-sub-map-1
+    "\C-w" hm--html-noregion-formating-word-map)
+  )
+
+(defvar hm--html-region-sub-map nil
+  "Region sub keymap for the html-mode.")
+
+(if hm--html-region-sub-map
+    ()
+  (setq hm--html-region-sub-map (make-sparse-keymap))
+;  (define-key hm--html-region-sub-map "\C-n" hm--html-noregion-sub-map-1)
+;  (define-key hm--html-region-sub-map "\C-r" hm--html-region-sub-map-1)
+  (define-key hm--html-region-sub-map "\M-n" hm--html-noregion-sub-map-1)
+  (define-key hm--html-region-sub-map "\M-r" hm--html-region-sub-map-1)
+
+  (if (adapt-emacs19p)
+      (map-keymap '(lambda (key-description-list binding)
+		     (define-key hm--html-region-sub-map
+		       (single-key-description key-description-list) binding))
+		  hm--html-region-sub-map-1)
+    (map-keymap '(lambda (key-description-list binding)
+		   (define-key hm--html-region-sub-map
+		     key-description-list binding))
+		hm--html-region-sub-map-1)
+    )
+  )
+
+(defvar hm--html-noregion-sub-map nil
+  "Noregion keymap for the html-mode.")
+
+(if hm--html-noregion-sub-map
+    ()
+  (setq hm--html-noregion-sub-map (make-sparse-keymap))
+;  (define-key hm--html-noregion-sub-map "\C-n" hm--html-noregion-sub-map-1)
+;  (define-key hm--html-noregion-sub-map "\C-r" hm--html-region-sub-map-1)
+  (define-key hm--html-noregion-sub-map "\M-n" hm--html-noregion-sub-map-1)
+  (define-key hm--html-noregion-sub-map "\M-r" hm--html-region-sub-map-1)
+
+  (if (adapt-emacs19p)
+      (map-keymap '(lambda (key-description-list binding)
+		     (define-key hm--html-region-sub-map
+		       (single-key-description key-description-list) binding))
+		  hm--html-region-sub-map-1)
+    (map-keymap '(lambda (key-description-list binding)
+		   (define-key hm--html-noregion-sub-map
+		     key-description-list binding))
+		hm--html-noregion-sub-map-1)
+    )
+  )
+
+(defvar hm--html-mode-map nil
+  "Normal and noregion keymap for the html-mode.")
+
+(if hm--html-mode-map
+    ()
+  (setq hm--html-mode-map (make-sparse-keymap))
+  (define-key hm--html-mode-map "\C-c" hm--html-noregion-sub-map)
+  (if (adapt-xemacsp)
+      (define-key hm--html-mode-map '(button3) 'hm--popup-html-menu)
+    (define-key hm--html-mode-map [mouse-3] 'hm--popup-html-menu))
+  (if hm--html-bind-latin-1-char-entities
+      (progn
+	(define-key hm--html-mode-map [adiaeresis] 'hm--html_ae)
+	(define-key hm--html-mode-map [odiaeresis] 'hm--html_oe) 
+	(define-key hm--html-mode-map [udiaeresis] 'hm--html_ue)
+  	(define-key hm--html-mode-map [aring]      'hm--html_aa)
+	(define-key hm--html-mode-map [Adiaeresis] 'hm--html_Ae) 
+	(define-key hm--html-mode-map [Odiaeresis] 'hm--html_Oe) 
+	(define-key hm--html-mode-map [Udiaeresis] 'hm--html_Ue)
+  	(define-key hm--html-mode-map [Aring]      'hm--html_Aa)
+	(define-key hm--html-mode-map [ediaeresis] 'hm--html_ediaeresis) 
+	(define-key hm--html-mode-map [Ediaeresis] 'hm--html_Ediaeresis) 
+	(define-key hm--html-mode-map [idiaeresis] 'hm--html_idiaeresis) 
+	(define-key hm--html-mode-map [Idiaeresis] 'hm--html_Idiaeresis) 
+	(define-key hm--html-mode-map [ssharp] 'hm--html_sz) 
+	(define-key hm--html-mode-map [aacute] 'hm--html_aacute) 
+	(define-key hm--html-mode-map [eacute] 'hm--html_eacute) 
+	(define-key hm--html-mode-map [iacute] 'hm--html_iacute) 
+	(define-key hm--html-mode-map [oacute] 'hm--html_oacute) 
+	(define-key hm--html-mode-map [uacute] 'hm--html_uacute) 
+	(define-key hm--html-mode-map [Aacute] 'hm--html_Aacute) 
+	(define-key hm--html-mode-map [Eacute] 'hm--html_Eacute) 
+	(define-key hm--html-mode-map [Iacute] 'hm--html_Iacute) 
+	(define-key hm--html-mode-map [Oacute] 'hm--html_Oacute) 
+	(define-key hm--html-mode-map [Uacute] 'hm--html_Uacute) 
+	(define-key hm--html-mode-map [agrave] 'hm--html_agrave) 
+	(define-key hm--html-mode-map [egrave] 'hm--html_egrave) 
+	(define-key hm--html-mode-map [igrave] 'hm--html_igrave) 
+	(define-key hm--html-mode-map [ograve] 'hm--html_ograve) 
+	(define-key hm--html-mode-map [ugrave] 'hm--html_ugrave) 
+	(define-key hm--html-mode-map [Agrave] 'hm--html_Agrave) 
+	(define-key hm--html-mode-map [Egrave] 'hm--html_Egrave) 
+	(define-key hm--html-mode-map [Igrave] 'hm--html_Igrave) 
+	(define-key hm--html-mode-map [Ograve] 'hm--html_Ograve) 
+	(define-key hm--html-mode-map [Ugrave] 'hm--html_Ugrave) 
+	(define-key hm--html-mode-map [ccedilla] 'hm--html_ccedilla) 
+	(define-key hm--html-mode-map [Ccedilla] 'hm--html_Ccedilla) 
+	(define-key hm--html-mode-map [acircumflex] 'hm--html_acircumflex) 
+	(define-key hm--html-mode-map [ecircumflex] 'hm--html_ecircumflex) 
+	(define-key hm--html-mode-map [icircumflex] 'hm--html_icircumflex) 
+	(define-key hm--html-mode-map [ocircumflex] 'hm--html_ocircumflex) 
+	(define-key hm--html-mode-map [ucircumflex] 'hm--html_ucircumflex) 
+	(define-key hm--html-mode-map [Acircumflex] 'hm--html_Acircumflex) 
+	(define-key hm--html-mode-map [Ecircumflex] 'hm--html_Ecircumflex) 
+	(define-key hm--html-mode-map [Icircumflex] 'hm--html_Icircumflex) 
+	(define-key hm--html-mode-map [Ocircumflex] 'hm--html_Ocircumflex) 
+	(define-key hm--html-mode-map [Ucircumflex] 'hm--html_Ucircumflex)
+	(define-key hm--html-mode-map [atilde] 'hm--html_atilde) 
+	(define-key hm--html-mode-map [otilde] 'hm--html_otilde) 
+	(define-key hm--html-mode-map [ntilde] 'hm--html_ntilde) 
+	(define-key hm--html-mode-map [Atilde] 'hm--html_Atilde) 
+	(define-key hm--html-mode-map [Otilde] 'hm--html_Otilde) 
+	(define-key hm--html-mode-map [Ntilde] 'hm--html_Ntilde) 
+	(define-key hm--html-mode-map [eth] 'hm--html_eth) 
+	(define-key hm--html-mode-map [ETH] 'hm--html_Eth) 
+	(define-key hm--html-mode-map [thorn] 'hm--html_thorn) 
+	(define-key hm--html-mode-map [THORN] 'hm--html_Thorn) 
+	))
+  (define-key hm--html-mode-map "<" 'hm--html-smart-less-than)
+  (define-key hm--html-mode-map ">" 'hm--html-smart-greater-than)
+  (define-key hm--html-mode-map "&" 'html-ampersand)
+  )
+
+(defvar hm--html-region-mode-map nil
+  "Region keymap for the html-mode.")
+
+(if hm--html-region-mode-map
+    ()
+  (setq hm--html-region-mode-map (make-sparse-keymap))
+  (define-key hm--html-region-mode-map "\C-c" hm--html-region-sub-map)
+  (if (adapt-xemacsp)
+      (define-key hm--html-region-mode-map 
+	'(button3) 'hm--popup-html-menu-region)
+    (define-key hm--html-region-mode-map 
+	[mouse-3] 'hm--popup-html-menu-region))
+  ;; It maybe a better idea to set the following to undefine in this list...
+  (if hm--html-bind-latin-1-char-entities
+      (progn
+	(define-key hm--html-region-mode-map [adiaeresis] 'hm--html_ae)
+	(define-key hm--html-region-mode-map [odiaeresis] 'hm--html_oe) 
+	(define-key hm--html-region-mode-map [udiaeresis] 'hm--html_ue)
+	(define-key hm--html-region-mode-map [aring]      'hm--html_aa)
+	(define-key hm--html-region-mode-map [Adiaeresis] 'hm--html_Ae) 
+	(define-key hm--html-region-mode-map [Odiaeresis] 'hm--html_Oe) 
+	(define-key hm--html-region-mode-map [Udiaeresis] 'hm--html_Ue)
+ 	(define-key hm--html-region-mode-map [Aring]      'hm--html_Aa)
+	(define-key hm--html-region-mode-map 
+	  [ediaeresis] 'hm--html_ediaeresis) 
+	(define-key hm--html-region-mode-map 
+	  [Ediaeresis] 'hm--html_Ediaeresis) 
+	(define-key hm--html-region-mode-map 
+	  [idiaeresis] 'hm--html_idiaeresis) 
+	(define-key hm--html-region-mode-map 
+	  [Idiaeresis] 'hm--html_Idiaeresis) 
+	(define-key hm--html-region-mode-map [ssharp] 'hm--html_sz) 
+	(define-key hm--html-region-mode-map [aacute] 'hm--html_aacute) 
+	(define-key hm--html-region-mode-map [eacute] 'hm--html_eacute) 
+	(define-key hm--html-region-mode-map [iacute] 'hm--html_iacute) 
+	(define-key hm--html-region-mode-map [oacute] 'hm--html_oacute) 
+	(define-key hm--html-region-mode-map [uacute] 'hm--html_uacute) 
+	(define-key hm--html-region-mode-map [Aacute] 'hm--html_Aacute) 
+	(define-key hm--html-region-mode-map [Eacute] 'hm--html_Eacute) 
+	(define-key hm--html-region-mode-map [Iacute] 'hm--html_Iacute) 
+	(define-key hm--html-region-mode-map [Oacute] 'hm--html_Oacute) 
+	(define-key hm--html-region-mode-map [Uacute] 'hm--html_Uacute) 
+	(define-key hm--html-region-mode-map [agrave] 'hm--html_agrave) 
+	(define-key hm--html-region-mode-map [egrave] 'hm--html_egrave) 
+	(define-key hm--html-region-mode-map [igrave] 'hm--html_igrave) 
+	(define-key hm--html-region-mode-map [ograve] 'hm--html_ograve) 
+	(define-key hm--html-region-mode-map [ugrave] 'hm--html_ugrave) 
+	(define-key hm--html-region-mode-map [Agrave] 'hm--html_Agrave) 
+	(define-key hm--html-region-mode-map [Egrave] 'hm--html_Egrave) 
+	(define-key hm--html-region-mode-map [Igrave] 'hm--html_Igrave) 
+	(define-key hm--html-region-mode-map [Ograve] 'hm--html_Ograve) 
+	(define-key hm--html-region-mode-map [Ugrave] 'hm--html_Ugrave) 
+	(define-key hm--html-region-mode-map [ccedilla] 'hm--html_ccedilla) 
+	(define-key hm--html-region-mode-map [Ccedilla] 'hm--html_Ccedilla) 
+	(define-key hm--html-region-mode-map 
+	  [acircumflex] 'hm--html_acircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [ecircumflex] 'hm--html_ecircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [icircumflex] 'hm--html_icircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [ocircumflex] 'hm--html_ocircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [ucircumflex] 'hm--html_ucircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [Acircumflex] 'hm--html_Acircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [Ecircumflex] 'hm--html_Ecircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [Icircumflex] 'hm--html_Icircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [Ocircumflex] 'hm--html_Ocircumflex) 
+	(define-key hm--html-region-mode-map 
+	  [Ucircumflex] 'hm--html_Ucircumflex)
+	(define-key hm--html-region-mode-map [atilde] 'hm--html_atilde) 
+	(define-key hm--html-region-mode-map [otilde] 'hm--html_otilde) 
+	(define-key hm--html-region-mode-map [ntilde] 'hm--html_ntilde) 
+	(define-key hm--html-region-mode-map [Atilde] 'hm--html_Atilde) 
+	(define-key hm--html-region-mode-map [Otilde] 'hm--html_Otilde) 
+	(define-key hm--html-region-mode-map [Ntilde] 'hm--html_Ntilde) 
+	(define-key hm--html-region-mode-map [eth] 'hm--html_eth) 
+	(define-key hm--html-region-mode-map [ETH] 'hm--html_Eth) 
+	(define-key hm--html-region-mode-map [thorn] 'hm--html_thorn) 
+	(define-key hm--html-region-mode-map [THORN] 'hm--html_Thorn) 
+	))
+  (define-key hm--html-region-mode-map "<" 'html-less-than)
+  (define-key hm--html-region-mode-map ">" 'html-greater-than)
+  (define-key hm--html-region-mode-map "&" 'html-ampersand)
+  )
+
+
+;;; -----
+
+;(use-local-map hm--html-mode-map)
+
+(or (assq 'hm--html-region-mode minor-mode-alist)
+    (setq minor-mode-alist
+	  (purecopy
+	   (append minor-mode-alist
+		   '((hm--html-region-mode " Region"))))))
+
+
+
+(defun html-region-mode (on)
+  "Turns the minor mode html-region-mode on or off.
+The function turns the html-region-mode on, if ON is t and off otherwise."
+  (if (string= mode-name "HTML")
+      (if on
+	  ;; html-region-mode on
+	  (progn
+	    (setq hm--html-region-mode t)
+	    (use-local-map hm--html-region-mode-map))
+	;; html-region-mode off
+	(setq hm--html-region-mode nil)
+	(use-local-map hm--html-mode-map))))
+