]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't prevent compilation. Don't require generic.
authorLute Kamstra <lute@gnu.org>
Mon, 21 Mar 2005 17:10:57 +0000 (17:10 +0000)
committerLute Kamstra <lute@gnu.org>
Mon, 21 Mar 2005 17:10:57 +0000 (17:10 +0000)
Follow coding conventions.  Minor code cleanup.
(etc-fstab-generic-mode): Add some keywords.

lisp/generic-x.el

index 88703af799f4c3e7de54c2cf390089319961b9e0..94f41c96e22b1b8d3da6ec8ebce5767f2d3c07f5 100644 (file)
@@ -1,6 +1,6 @@
-;;; generic-x.el --- Extra Modes for generic-mode -*- no-byte-compile: t -*-
+;;; generic-x.el --- Extra Modes for generic-mode
 
-;; Copyright (C) 1997, 1998, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2003, 2005 Free Software Foundation, Inc.
 
 ;; Author:  Peter Breton <pbreton@cs.umb.edu>
 ;; Created: Tue Oct 08 1996
@@ -34,7 +34,7 @@
 ;;   (require 'generic-x)
 ;;
 ;; You can decide which modes to load by setting the variable
-;; `generic-extras-enable-list'. Some platform-specific modes are
+;; `generic-extras-enable-list'.  Some platform-specific modes are
 ;; affected by the variables `generic-define-mswindows-modes' and
 ;; `generic-define-unix-modes' (which see).
 ;;
@@ -92,7 +92,6 @@
 
 ;;; Code:
 
-(require 'generic)
 (require 'font-lock)
 
 (defgroup generic-x nil
 
 (defcustom generic-extras-enable-list nil
   "*List of generic modes to enable by default.
-Each entry in the list should be a symbol.
-The variables `generic-define-mswindows-modes' and `generic-define-unix-modes'
-also affect which generic modes are defined.
-Please note that if you set this variable after generic-x is loaded,
-you must reload generic-x to enable the specified modes."
+Each entry in the list should be a symbol.  The variables
+`generic-define-mswindows-modes' and `generic-define-unix-modes'
+also affect which generic modes are defined.  Please note that if
+you set this variable after generic-x is loaded, you must reload
+generic-x to enable the specified modes."
   :group 'generic-x
-  :type  '(repeat sexp)
-  )
+  :type  '(repeat sexp))
 
 (defcustom generic-define-mswindows-modes
-  (memq system-type (list 'windows-nt 'ms-dos))
+  (memq system-type '(windows-nt ms-dos))
   "*If non-nil, some MS-Windows specific generic modes will be defined."
   :group 'generic-x
-  :type  'boolean
-  )
+  :type  'boolean)
 
 (defcustom generic-define-unix-modes
-  (not (memq system-type (list 'windows-nt 'ms-dos)))
+  (not (memq system-type '(windows-nt ms-dos)))
   "*If non-nil, some Unix specific generic modes will be defined."
   :group 'generic-x
-  :type  'boolean
-  )
+  :type  'boolean)
 
 (and generic-define-mswindows-modes
-    (setq generic-extras-enable-list
-         (append (list 'bat-generic-mode 'ini-generic-mode
-                       'inf-generic-mode 'rc-generic-mode
-                       'reg-generic-mode 'rul-generic-mode
-                       'hosts-generic-mode
-                       'apache-conf-generic-mode
-                       'apache-log-generic-mode
-                       )
-                 generic-extras-enable-list)))
+     (setq generic-extras-enable-list
+          (append (list 'bat-generic-mode
+                        'ini-generic-mode
+                        'inf-generic-mode
+                        'rc-generic-mode
+                        'reg-generic-mode
+                        'rul-generic-mode
+                        'hosts-generic-mode
+                        'apache-conf-generic-mode
+                        'apache-log-generic-mode)
+                  generic-extras-enable-list)))
 
 (and generic-define-unix-modes
      (setq generic-extras-enable-list
           (append (list 'apache-conf-generic-mode
                         'apache-log-generic-mode
                         'samba-generic-mode
-                        'hosts-generic-mode  'fvwm-generic-mode
+                        'hosts-generic-mode
+                        'fvwm-generic-mode
                         'x-resource-generic-mode
                         'alias-generic-mode
                         'inetd-conf-generic-mode
                         'etc-services-generic-mode
                         'etc-passwd-generic-mode
-                        'etc-fstab-generic-mode
-                        )
+                        'etc-fstab-generic-mode)
                   generic-extras-enable-list)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -157,382 +155,345 @@ you must reload generic-x to enable the specified modes."
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;;; Apache
-(and
- (memq 'apache-conf-generic-mode generic-extras-enable-list)
-
-(define-generic-mode 'apache-conf-generic-mode
-   (list ?#)
-   nil
-   '(("^\\s-*\\(<.*>\\)"       1 'font-lock-constant-face)
-     ("^\\s-*\\(\\sw+\\)\\s-"  1 'font-lock-variable-name-face))
-   (list "srm\\.conf\\'" "httpd\\.conf\\'" "access\\.conf\\'")
-   (list
-    (function
-     (lambda ()
+(when (memq 'apache-conf-generic-mode generic-extras-enable-list)
+
+(define-generic-mode apache-conf-generic-mode
+  (list ?#)
+  nil
+  '(("^\\s-*\\(<.*>\\)"       1 'font-lock-constant-face)
+    ("^\\s-*\\(\\sw+\\)\\s-"  1 'font-lock-variable-name-face))
+  (list "srm\\.conf\\'" "httpd\\.conf\\'" "access\\.conf\\'")
+  (list
+   (function
+    (lambda ()
       (setq imenu-generic-expression
            '((nil "^\\([-A-Za-z0-9_]+\\)" 1)
              ("*Directories*" "^\\s-*<Directory\\s-*\\([^>]+\\)>" 1)
-             ("*Locations*"   "^\\s-*<Location\\s-*\\([^>]+\\)>" 1)
-             ))
-       )))
-   "Generic mode for Apache or HTTPD configuration files."))
+             ("*Locations*"   "^\\s-*<Location\\s-*\\([^>]+\\)>" 1))))))
+  "Generic mode for Apache or HTTPD configuration files."))
 
-(and
- (memq 'apache-log-generic-mode generic-extras-enable-list)
+(when (memq 'apache-log-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'apache-log-generic-mode
+(define-generic-mode apache-log-generic-mode
   nil
   nil
   ;; Hostname ? user date request return-code number-of-bytes
   '(("^\\([-a-zA-z0-9.]+\\) - [-A-Za-z]+ \\(\\[.*\\]\\)"
      (1 font-lock-constant-face)
-     (2 font-lock-variable-name-face))
-    )
+     (2 font-lock-variable-name-face)))
   (list "access_log\\'")
   nil
   "Mode for Apache log files"))
 
 ;;; Samba
-(and
- (memq 'samba-generic-mode generic-extras-enable-list)
-
-(define-generic-mode 'samba-generic-mode
-   (list ?\; ?#)
-   nil
-   '(
-     ("^\\(\\[.*\\]\\)"   1 'font-lock-constant-face)
-     ("^\\s-*\\(.+\\)=\\([^\r\n]*\\)"
-      (1 'font-lock-variable-name-face)
-      (2 'font-lock-type-face))
-     )
-   (list "smb\\.conf\\'")
-   (list 'generic-bracket-support)
-   "Generic mode for Samba configuration files."))
+(when (memq 'samba-generic-mode generic-extras-enable-list)
+
+(define-generic-mode samba-generic-mode
+  (list ?\; ?#)
+  nil
+  '(("^\\(\\[.*\\]\\)"   1 'font-lock-constant-face)
+    ("^\\s-*\\(.+\\)=\\([^\r\n]*\\)"
+     (1 'font-lock-variable-name-face)
+     (2 'font-lock-type-face)))
+  (list "smb\\.conf\\'")
+  (list 'generic-bracket-support)
+  "Generic mode for Samba configuration files."))
 
 ;;; Fvwm
 ;; This is pretty basic. Also, modes for other window managers could
 ;; be defined as well.
-(and
-(memq 'fvwm-generic-mode generic-extras-enable-list)
+(when (memq 'fvwm-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'fvwm-generic-mode
-   (list ?#)
-   (list
-    "AddToMenu"
-    "AddToFunc"
-    "ButtonStyle"
-    "EndFunction"
-    "EndPopup"
-    "Function"
-    "IconPath"
-    "Key"
-    "ModulePath"
-    "Mouse"
-    "PixmapPath"
-    "Popup"
-    "Style"
-    )
-   nil
-   (list "\\.fvwmrc\\'" "\\.fvwm2rc\\'")
-   nil
-   "Generic mode for FVWM configuration files."))
+(define-generic-mode fvwm-generic-mode
+  (list ?#)
+  (list
+   "AddToMenu"
+   "AddToFunc"
+   "ButtonStyle"
+   "EndFunction"
+   "EndPopup"
+   "Function"
+   "IconPath"
+   "Key"
+   "ModulePath"
+   "Mouse"
+   "PixmapPath"
+   "Popup"
+   "Style")
+  nil
+  (list "\\.fvwmrc\\'" "\\.fvwm2rc\\'")
+  nil
+  "Generic mode for FVWM configuration files."))
 
 ;;; X Resource
 ;; I'm pretty sure I've seen an actual mode to do this, but I don't
 ;; think it's standard with Emacs
-(and
- (memq 'x-resource-generic-mode generic-extras-enable-list)
+(when (memq 'x-resource-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'x-resource-generic-mode
-   (list ?!)
-   nil
-   '(("^\\([^:\n]+:\\)" 1 'font-lock-variable-name-face))
-   (list "\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'")
-   nil
-   "Generic mode for X Resource configuration files."))
+(define-generic-mode x-resource-generic-mode
+  (list ?!)
+  nil
+  '(("^\\([^:\n]+:\\)" 1 'font-lock-variable-name-face))
+  (list "\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'")
+  nil
+  "Generic mode for X Resource configuration files."))
 
 ;;; Hosts
-(and
- (memq 'hosts-generic-mode generic-extras-enable-list)
+(when (memq 'hosts-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'hosts-generic-mode
-   (list ?#)
-   (list "localhost")
-   '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face))
-   (list "[hH][oO][sS][tT][sS]\\'")
-   nil
-   "Generic mode for HOSTS files."))
+(define-generic-mode hosts-generic-mode
+  (list ?#)
+  (list "localhost")
+  '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face))
+  (list "[hH][oO][sS][tT][sS]\\'")
+  nil
+  "Generic mode for HOSTS files."))
 
 ;;; Windows INF files
-(and
- (memq 'inf-generic-mode generic-extras-enable-list)
+(when (memq 'inf-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'inf-generic-mode
-   (list ?\;)
-   nil
-   '(("^\\(\\[.*\\]\\)"   1 'font-lock-constant-face))
-   (list "\\.[iI][nN][fF]\\'")
-   (list 'generic-bracket-support)
-   "Generic mode for MS-Windows INF files."))
+(define-generic-mode inf-generic-mode
+  (list ?\;)
+  nil
+  '(("^\\(\\[.*\\]\\)"   1 'font-lock-constant-face))
+  (list "\\.[iI][nN][fF]\\'")
+  (list 'generic-bracket-support)
+  "Generic mode for MS-Windows INF files."))
 
 ;;; Windows INI files
 ;; Should define escape character as well!
-(and
- (memq 'ini-generic-mode generic-extras-enable-list)
-
-(define-generic-mode 'ini-generic-mode
-   (list ?\;)
-   nil
-   '(("^\\(\\[.*\\]\\)"   1 'font-lock-constant-face)
-     ("^\\([^=\n\r]*\\)=\\([^\n\r]*\\)$"
-      (1 font-lock-function-name-face)
-      (2 font-lock-variable-name-face)))
-   (list "\\.[iI][nN][iI]\\'")
-   (list
-    (function
-     (lambda ()
-       (setq imenu-generic-expression
-            '((nil "^\\[\\(.*\\)\\]" 1)
-              ("*Variables*" "^\\s-*\\([^=]+\\)\\s-*=" 1)))
-       )))
-    "Generic mode for MS-Windows INI files."))
+(when (memq 'ini-generic-mode generic-extras-enable-list)
+
+(define-generic-mode ini-generic-mode
+  (list ?\;)
+  nil
+  '(("^\\(\\[.*\\]\\)"   1 'font-lock-constant-face)
+    ("^\\([^=\n\r]*\\)=\\([^\n\r]*\\)$"
+     (1 font-lock-function-name-face)
+     (2 font-lock-variable-name-face)))
+  (list "\\.[iI][nN][iI]\\'")
+  (list
+   (function
+    (lambda ()
+      (setq imenu-generic-expression
+           '((nil "^\\[\\(.*\\)\\]" 1)
+             ("*Variables*" "^\\s-*\\([^=]+\\)\\s-*=" 1))))))
+  "Generic mode for MS-Windows INI files."))
 
 ;;; Windows REG files
 ;;; Unfortunately, Windows 95 and Windows NT have different REG file syntax!
-(and
- (memq 'reg-generic-mode generic-extras-enable-list)
-
-(define-generic-mode 'reg-generic-mode
-   '(?\;)
-   '("key" "classes_root" "REGEDIT" "REGEDIT4")
-   '(("\\(\\[.*]\\)"     1 'font-lock-constant-face)
-     ("^\\([^\n\r]*\\)\\s-*="  1 'font-lock-variable-name-face))
-   '("\\.[rR][eE][gG]\\'")
-    (list
-     (function
-      (lambda ()
-       (setq imenu-generic-expression
-       '((nil "^\\s-*\\(.*\\)\\s-*=" 1))))))
-    "Generic mode for MS-Windows Registry files."))
+(when (memq 'reg-generic-mode generic-extras-enable-list)
+
+(define-generic-mode reg-generic-mode
+  '(?\;)
+  '("key" "classes_root" "REGEDIT" "REGEDIT4")
+  '(("\\(\\[.*]\\)"     1 'font-lock-constant-face)
+    ("^\\([^\n\r]*\\)\\s-*="  1 'font-lock-variable-name-face))
+  '("\\.[rR][eE][gG]\\'")
+  (list
+   (function
+    (lambda ()
+      (setq imenu-generic-expression
+           '((nil "^\\s-*\\(.*\\)\\s-*=" 1))))))
+  "Generic mode for MS-Windows Registry files."))
 
 ;;; DOS/Windows BAT files
-(if (not (memq 'bat-generic-mode generic-extras-enable-list))
-    nil
-(define-generic-mode 'bat-generic-mode
-    nil
-    nil
+(when (memq 'bat-generic-mode generic-extras-enable-list)
+
+(define-generic-mode bat-generic-mode
+  nil
+  nil
+  (list
+   ;; Make this one first in the list, otherwise comments will
+   ;; be over-written by other variables
+   (list "^[@ \t]*\\([rR][eE][mM][^\n\r]*\\)" 1 'font-lock-comment-face t)
+   (list "^[ \t]*\\(::.*\\)"                   1 'font-lock-comment-face t)
+   (list
+    "^[@ \t]*\\([bB][rR][eE][aA][kK]\\|[vV][eE][rR][iI][fF][yY]\\)[ \t]+\\([oO]\\([nN]\\|[fF][fF]\\)\\)"
+    '(1 font-lock-builtin-face)
+    '(2 font-lock-constant-face t t))
+   ;; Any text (except ON/OFF) following ECHO is a string.
+   (list
+    "^[@ \t]*\\([eE][cC][hH][oO]\\)[ \t]+\\(\\([oO]\\([nN]\\|[fF][fF]\\)\\)\\|\\([^>|\r\n]+\\)\\)"
+    '(1 font-lock-builtin-face)
+    '(3 font-lock-constant-face t t)
+    '(5 font-lock-string-face t t))
+   ;; These keywords appear as the first word on a line.  (Actually, they
+   ;; can also appear after "if ..." or "for ..." clause, but since they
+   ;; are frequently used in simple text, we punt.)
+   ;; In `generic-bat-mode-setup-function' we make the keywords
+   ;; case-insensitive
+   (generic-make-keywords-list
     (list
-     ;; Make this one first in the list, otherwise comments will
-     ;; be over-written by other variables
-     (list "^[@ \t]*\\([rR][eE][mM][^\n\r]*\\)" 1 'font-lock-comment-face t)
-     (list "^[ \t]*\\(::.*\\)"                 1 'font-lock-comment-face t)
-     (list
-      "^[@ \t]*\\([bB][rR][eE][aA][kK]\\|[vV][eE][rR][iI][fF][yY]\\)[ \t]+\\([oO]\\([nN]\\|[fF][fF]\\)\\)"
-      '(1 font-lock-builtin-face)
-      '(2 font-lock-constant-face t t))
-     ;; Any text (except ON/OFF) following ECHO is a string.
-     (list
-      "^[@ \t]*\\([eE][cC][hH][oO]\\)[ \t]+\\(\\([oO]\\([nN]\\|[fF][fF]\\)\\)\\|\\([^>|\r\n]+\\)\\)"
-      '(1 font-lock-builtin-face)
-      '(3 font-lock-constant-face t t)
-      '(5 font-lock-string-face t t))
-     ;; These keywords appear as the first word on a line.  (Actually, they
-     ;; can also appear after "if ..." or "for ..." clause, but since they
-     ;; are frequently used in simple text, we punt.)
-     ;; In `generic-bat-mode-setup-function' we make the keywords
-     ;; case-insensitive
-     (generic-make-keywords-list
-      (list
-       "for"
-       "if"
-       )
-      'font-lock-keyword-face "^[@ \t]*")
-     ;; These keywords can be anywhere on a line
-     ;; In `generic-bat-mode-setup-function' we make the keywords
-     ;; case-insensitive
-     (generic-make-keywords-list
-      (list
-       "do"
-       "exist"
-       "errorlevel"
-       "goto"
-       "not"
-       ) 'font-lock-keyword-face)
-     ;; These are built-in commands.  Only frequently-used ones are listed.
-     (generic-make-keywords-list
-      (list
-       "CALL"      "call"       "Call"
-       "CD"        "cd"         "Cd"
-       "CLS"       "cls"        "Cls"
-       "COPY"      "copy"       "Copy"
-       "DEL"       "del"        "Del"
-       "ECHO"      "echo"       "Echo"
-       "MD"        "md"         "Md"
-       "PATH"      "path"       "Path"
-       "PAUSE"     "pause"      "Pause"
-       "PROMPT"            "prompt"     "Prompt"
-       "RD"        "rd"         "Rd"
-       "REN"       "ren"        "Ren"
-       "SET"       "set"        "Set"
-       "START"     "start"      "Start"
-       "SHIFT"     "shift"      "Shift"
-       ) 'font-lock-builtin-face "[ \t|\n]")
-     (list "^[ \t]*\\(:\\sw+\\)"         1 'font-lock-function-name-face t)
-     (list "\\(%\\sw+%\\)"              1 'font-lock-variable-name-face t)
-     (list "\\(%[0-9]\\)"               1 'font-lock-variable-name-face t)
-     (list "\\(/[^/ \"\t\n]+\\)"        1 'font-lock-type-face)
-     (list "[\t ]+\\([+-][^\t\n\" ]+\\)" 1 'font-lock-type-face)
-     (list "[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
-          '(1 font-lock-keyword-face)
-          '(2 font-lock-function-name-face nil t))
-     (list "[ \t\n|]\\<\\([sS][eE][tT]\\)\\>[ \t]*\\(\\sw+\\)?[ \t]*=?"
-          '(1 font-lock-builtin-face)
-          '(2 font-lock-variable-name-face t t))
-
-     )
+     "for"
+     "if")
+    'font-lock-keyword-face "^[@ \t]*")
+   ;; These keywords can be anywhere on a line
+   ;; In `generic-bat-mode-setup-function' we make the keywords
+   ;; case-insensitive
+   (generic-make-keywords-list
     (list
-     "\\.[bB][aA][tT]\\'"
-     "\\`[cC][oO][nN][fF][iI][gG]\\."
-     "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\." )
-    (list 'generic-bat-mode-setup-function)
-    "Generic mode for MS-Windows BAT files.")
-
-  (defvar bat-generic-mode-syntax-table nil
-    "Syntax table in use in bat-generic-mode buffers.")
-
-  (defvar bat-generic-mode-keymap (make-sparse-keymap)
-    "Keymap for bet-generic-mode.")
-
-  (defun bat-generic-mode-compile ()
-    "Run the current BAT file in a compilation buffer."
-    (interactive)
-    (let ((compilation-buffer-name-function
-          (function
-           (lambda(ign)
-             (concat "*" (buffer-file-name) "*")))
-             )
-           )
-      (compile
-       (concat (w32-shell-name) " -c " (buffer-file-name)))))
-
-  (defun bat-generic-mode-run-as-comint ()
-    "Run the current BAT file in a comint buffer."
-    (interactive)
-    (require 'comint)
-    (let* ((file (buffer-file-name))
-          (buf-name (concat "*" file "*")))
-      (save-excursion
-       (set-buffer
-        (get-buffer-create buf-name))
-       (erase-buffer)
-       (comint-mode)
-       (comint-exec
-        buf-name
-        file
-        (w32-shell-name)
-        nil
-        (list
-         "-c"
-         file
-         )
-        )
-       (display-buffer buf-name))))
-
-  (define-key bat-generic-mode-keymap "\C-c\C-c" 'bat-generic-mode-compile)
-
-  ;; Make underscores count as words
-  (if bat-generic-mode-syntax-table
-      nil
-    (setq bat-generic-mode-syntax-table (make-syntax-table))
-    (modify-syntax-entry ?_  "w"  bat-generic-mode-syntax-table))
-
-  ;; bat-generic-mode doesn't use the comment functionality of generic-mode
-  ;; because it has a three-letter comment-string, so we do it
-  ;; here manually instead
-  (defun generic-bat-mode-setup-function ()
-    (make-local-variable            'parse-sexp-ignore-comments)
-    (make-local-variable            'comment-start)
-    (make-local-variable            'comment-start-skip)
-    (make-local-variable            'comment-end)
-    (setq imenu-generic-expression  '((nil "^:\\(\\sw+\\)" 1))
-         parse-sexp-ignore-comments t
-         comment-end                ""
-         comment-start              "REM "
-         comment-start-skip         "[Rr][Ee][Mm] *"
-         )
-    (set-syntax-table        bat-generic-mode-syntax-table)
-    ;; Make keywords case-insensitive
-    (setq font-lock-defaults (list 'generic-font-lock-defaults nil t))
-    (use-local-map bat-generic-mode-keymap)
-    )
-  )
+     "do"
+     "exist"
+     "errorlevel"
+     "goto"
+     "not")
+    'font-lock-keyword-face)
+   ;; These are built-in commands.  Only frequently-used ones are listed.
+   (generic-make-keywords-list
+    (list
+     "CALL"        "call"       "Call"
+     "CD"          "cd"         "Cd"
+     "CLS"         "cls"        "Cls"
+     "COPY"        "copy"       "Copy"
+     "DEL"         "del"        "Del"
+     "ECHO"        "echo"       "Echo"
+     "MD"          "md"         "Md"
+     "PATH"        "path"       "Path"
+     "PAUSE"       "pause"      "Pause"
+     "PROMPT"      "prompt"     "Prompt"
+     "RD"          "rd"         "Rd"
+     "REN"         "ren"        "Ren"
+     "SET"         "set"        "Set"
+     "START"       "start"      "Start"
+     "SHIFT"       "shift"      "Shift")
+    'font-lock-builtin-face "[ \t|\n]")
+   (list "^[ \t]*\\(:\\sw+\\)"         1 'font-lock-function-name-face t)
+   (list "\\(%\\sw+%\\)"                1 'font-lock-variable-name-face t)
+   (list "\\(%[0-9]\\)"                 1 'font-lock-variable-name-face t)
+   (list "\\(/[^/ \"\t\n]+\\)"  1 'font-lock-type-face)
+   (list "[\t ]+\\([+-][^\t\n\" ]+\\)" 1 'font-lock-type-face)
+   (list "[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
+        '(1 font-lock-keyword-face)
+        '(2 font-lock-function-name-face nil t))
+   (list "[ \t\n|]\\<\\([sS][eE][tT]\\)\\>[ \t]*\\(\\sw+\\)?[ \t]*=?"
+        '(1 font-lock-builtin-face)
+        '(2 font-lock-variable-name-face t t)))
+  (list
+   "\\.[bB][aA][tT]\\'"
+   "\\`[cC][oO][nN][fF][iI][gG]\\."
+   "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\." )
+  (list 'generic-bat-mode-setup-function)
+  "Generic mode for MS-Windows BAT files.")
+
+(defvar bat-generic-mode-syntax-table nil
+  "Syntax table in use in bat-generic-mode buffers.")
+
+(defvar bat-generic-mode-keymap (make-sparse-keymap)
+  "Keymap for bet-generic-mode.")
+
+(defun bat-generic-mode-compile ()
+  "Run the current BAT file in a compilation buffer."
+  (interactive)
+  (let ((compilation-buffer-name-function
+        (function
+         (lambda(ign)
+           (concat "*" (buffer-file-name) "*")))))
+    (compile
+     (concat (w32-shell-name) " -c " (buffer-file-name)))))
+
+(defun bat-generic-mode-run-as-comint ()
+  "Run the current BAT file in a comint buffer."
+  (interactive)
+  (require 'comint)
+  (let* ((file (buffer-file-name))
+        (buf-name (concat "*" file "*")))
+    (save-excursion
+      (set-buffer
+       (get-buffer-create buf-name))
+      (erase-buffer)
+      (comint-mode)
+      (comint-exec
+       buf-name
+       file
+       (w32-shell-name)
+       nil
+       (list "-c" file))
+      (display-buffer buf-name))))
+
+(define-key bat-generic-mode-keymap "\C-c\C-c" 'bat-generic-mode-compile)
+
+;; Make underscores count as words
+(unless bat-generic-mode-syntax-table
+  (setq bat-generic-mode-syntax-table (make-syntax-table))
+  (modify-syntax-entry ?_  "w"  bat-generic-mode-syntax-table))
+
+;; bat-generic-mode doesn't use the comment functionality of generic-mode
+;; because it has a three-letter comment-string, so we do it
+;; here manually instead
+(defun generic-bat-mode-setup-function ()
+  (make-local-variable      'parse-sexp-ignore-comments)
+  (make-local-variable      'comment-start)
+  (make-local-variable      'comment-start-skip)
+  (make-local-variable      'comment-end)
+  (setq imenu-generic-expression  '((nil "^:\\(\\sw+\\)" 1))
+       parse-sexp-ignore-comments t
+       comment-end                ""
+       comment-start                "REM "
+       comment-start-skip           "[Rr][Ee][Mm] *")
+  (set-syntax-table          bat-generic-mode-syntax-table)
+  ;; Make keywords case-insensitive
+  (setq font-lock-defaults (list 'generic-font-lock-defaults nil t))
+  (use-local-map bat-generic-mode-keymap)))
 
 ;;; Mailagent
 ;; Mailagent is a Unix mail filtering program. Anyone wanna do a generic mode
 ;; for procmail?
-(and
- (memq 'mailagent-rules-generic-mode generic-extras-enable-list)
-
-(define-generic-mode 'mailagent-rules-generic-mode
-   (list ?#)
-   (list "SAVE" "DELETE" "PIPE" "ANNOTATE" "REJECT")
-   '(("^\\(\\sw+\\)\\s-*="         1 'font-lock-variable-name-face)
-     ("\\s-/\\([^/]+\\)/[i, \t\n]" 1 'font-lock-constant-face))
-   (list "\\.rules\\'")
-   (list 'mailagent-rules-setup-function)
-   "Mode for Mailagent rules files.")
+(when (memq 'mailagent-rules-generic-mode generic-extras-enable-list)
+
+(define-generic-mode mailagent-rules-generic-mode
+  (list ?#)
+  (list "SAVE" "DELETE" "PIPE" "ANNOTATE" "REJECT")
+  '(("^\\(\\sw+\\)\\s-*="         1 'font-lock-variable-name-face)
+    ("\\s-/\\([^/]+\\)/[i, \t\n]" 1 'font-lock-constant-face))
+  (list "\\.rules\\'")
+  (list 'mailagent-rules-setup-function)
+  "Mode for Mailagent rules files.")
 
 (defun mailagent-rules-setup-function ()
-   (make-local-variable 'imenu-generic-expression)
-   (setq imenu-generic-expression
-        '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1))))
- )
+  (make-local-variable 'imenu-generic-expression)
+  (setq imenu-generic-expression
+       '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1)))))
 
 ;; Solaris/Sys V prototype files
-(and
- (memq 'prototype-generic-mode generic-extras-enable-list)
-
-(define-generic-mode 'prototype-generic-mode
-   (list ?#)
-   nil
-   '(
-     ("^\\([0-9]\\)?\\s-*\\([a-z]\\)\\s-+\\([A-Za-z_]+\\)\\s-+\\([^\n\r]*\\)$"
-      (2 font-lock-constant-face)
-      (3 font-lock-keyword-face))
-     ("^\\([a-z]\\) \\([A-Za-z_]+\\)=\\([^\n\r]*\\)$"
-      (1 font-lock-constant-face)
-         (2 font-lock-keyword-face)
-         (3 font-lock-variable-name-face))
-     ("^\\(!\\s-*\\(search\\|include\\|default\\)\\)\\s-*\\([^\n\r]*\\)$"
-      (1 font-lock-keyword-face)
-      (3 font-lock-variable-name-face))
-     ("^\\(!\\s-*\\sw+\\)=\\([^\n\r]*\\)$"
-      (1 font-lock-keyword-face)
-      (2 font-lock-variable-name-face))
-     )
-   (list "prototype\\'")
-   nil
-   "Mode for Sys V prototype files."))
+(when (memq 'prototype-generic-mode generic-extras-enable-list)
+
+(define-generic-mode prototype-generic-mode
+  (list ?#)
+  nil
+  '(("^\\([0-9]\\)?\\s-*\\([a-z]\\)\\s-+\\([A-Za-z_]+\\)\\s-+\\([^\n\r]*\\)$"
+     (2 font-lock-constant-face)
+     (3 font-lock-keyword-face))
+    ("^\\([a-z]\\) \\([A-Za-z_]+\\)=\\([^\n\r]*\\)$"
+     (1 font-lock-constant-face)
+     (2 font-lock-keyword-face)
+     (3 font-lock-variable-name-face))
+    ("^\\(!\\s-*\\(search\\|include\\|default\\)\\)\\s-*\\([^\n\r]*\\)$"
+     (1 font-lock-keyword-face)
+     (3 font-lock-variable-name-face))
+    ("^\\(!\\s-*\\sw+\\)=\\([^\n\r]*\\)$"
+     (1 font-lock-keyword-face)
+     (2 font-lock-variable-name-face)))
+  (list "prototype\\'")
+  nil
+  "Mode for Sys V prototype files."))
 
 ;; Solaris/Sys V pkginfo files
-(and
- (memq 'pkginfo-generic-mode generic-extras-enable-list)
-
-(define-generic-mode 'pkginfo-generic-mode
-   (list ?#)
-   nil
-   '(
-     ("^\\([A-Za-z_]+\\)=\\([^\n\r]*\\)$"
-      (1 font-lock-keyword-face)
-      (2 font-lock-variable-name-face))
-     )
-   (list "pkginfo\\'")
-   nil
-   "Mode for Sys V pkginfo files."))
+(when (memq 'pkginfo-generic-mode generic-extras-enable-list)
+
+(define-generic-mode pkginfo-generic-mode
+  (list ?#)
+  nil
+  '(("^\\([A-Za-z_]+\\)=\\([^\n\r]*\\)$"
+     (1 font-lock-keyword-face)
+     (2 font-lock-variable-name-face)))
+  (list "pkginfo\\'")
+  nil
+  "Mode for Sys V pkginfo files."))
 
 ;; Javascript mode
 ;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU]
-(define-generic-mode 'javascript-generic-mode
+(define-generic-mode javascript-generic-mode
   (list "//" '("/*" . "*/"))
   (list
    "break"
@@ -594,27 +555,23 @@ you must reload generic-x to enable the specified modes."
    "synchronized"
    "throws"
    "transient"
-   "true"
-   )
+   "true")
   (list
    (list "^\\s-*function\\s-+\\([A-Za-z0-9_]+\\)"
-         '(1 font-lock-function-name-face))
-     (list "^\\s-*var\\s-+\\([A-Za-z0-9_]+\\)"
-             '(1 font-lock-variable-name-face))
-     )
+        '(1 font-lock-function-name-face))
+   (list "^\\s-*var\\s-+\\([A-Za-z0-9_]+\\)"
+        '(1 font-lock-variable-name-face)))
   (list "\\.js\\'")
   (list
    (function
     (lambda ()
       (setq imenu-generic-expression
            '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1)
-             ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1)
-             ))
-      )))
+             ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1))))))
   "Mode for JavaScript files.")
 
 ;; VRML files
-(define-generic-mode 'vrml-generic-mode
+(define-generic-mode vrml-generic-mode
   (list ?#)
   (list
    "DEF"
@@ -644,8 +601,7 @@ you must reload generic-x to enable the specified modes."
    "textureTransform"
    "title"
    "transparency"
-   "type"
-   )
+   "type")
   (list
    (list "USE\\s-+\\([-A-Za-z0-9_]+\\)"
         '(1 font-lock-constant-face))
@@ -656,8 +612,7 @@ you must reload generic-x to enable the specified modes."
         '(1 font-lock-function-name-face))
    (list
     "^\\s-*\\(geometry\\|appearance\\|material\\)\\s-+\\([-A-Za-z0-9_]+\\)"
-    '(2 font-lock-variable-name-face))
-   )
+    '(2 font-lock-variable-name-face)))
   (list "\\.wrl\\'")
   (list
    (function
@@ -666,12 +621,11 @@ you must reload generic-x to enable the specified modes."
            '((nil "^\\([A-Za-z0-9_]+\\)\\s-*{" 1)
              ("*Definitions*"
               "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{"
-              1)))
-      )))
+              1))))))
   "Generic Mode for VRML files.")
 
 ;; Java Manifests
-(define-generic-mode 'java-manifest-generic-mode
+(define-generic-mode java-manifest-generic-mode
   (list ?#)
   (list
    "Name"
@@ -681,26 +635,23 @@ you must reload generic-x to enable the specified modes."
    "Signature-Version"
    "Magic"
    "Java-Bean"
-   "Depends-On"
-   )
+   "Depends-On")
   '(("^Name:\\s-+\\([^\n\r]*\\)$"
      (1 font-lock-variable-name-face))
     ("^\\(Manifest\\|Required\\|Signature\\)-Version:\\s-+\\([^\n\r]*\\)$"
-     (2 font-lock-constant-face))
-    )
+     (2 font-lock-constant-face)))
   (list "[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'")
   nil
   "Mode for Java Manifest files")
 
 ;; Java properties files
-(define-generic-mode 'java-properties-generic-mode
+(define-generic-mode java-properties-generic-mode
   (list ?! ?#)
   nil
   (let ((java-properties-key
         "\\(\\([-A-Za-z0-9_\\./]\\|\\(\\\\[ =:]\\)\\)+\\)")
        (java-properties-value
-        "\\([^\r\n]*\\)")
-       )
+        "\\([^\r\n]*\\)"))
     ;; Property and value can be separated in a number of different ways:
     ;;   * whitespace
     ;;   * an equal sign
@@ -711,143 +662,133 @@ you must reload generic-x to enable the specified modes."
        (list
         (concat "^" java-properties-key elt java-properties-value "$")
         '(1 font-lock-constant-face)
-        '(4 font-lock-variable-name-face)
-        )))
+        '(4 font-lock-variable-name-face))))
      ;; These are the separators
-     (list ":\\s-*" "\\s-+" "\\s-*=\\s-*")
-     )
-    )
+     (list ":\\s-*" "\\s-+" "\\s-*=\\s-*")))
   nil
   (list
    (function
     (lambda ()
       (setq imenu-generic-expression
-           '((nil "^\\([^#! \t\n\r=:]+\\)" 1)))
-      )))
+           '((nil "^\\([^#! \t\n\r=:]+\\)" 1))))))
   "Mode for Java properties files.")
 
 ;; C shell alias definitions
-(and
- (memq 'alias-generic-mode generic-extras-enable-list)
+(when (memq 'alias-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'alias-generic-mode
+(define-generic-mode alias-generic-mode
   (list ?#)
   (list "alias" "unalias")
   '(("^alias\\s-+\\([-A-Za-z0-9_]+\\)\\s-+"
      (1 font-lock-variable-name-face))
     ("^unalias\\s-+\\([-A-Za-z0-9_]+\\)\\s-*$"
-     (1 font-lock-variable-name-face))
-    )
+     (1 font-lock-variable-name-face)))
   (list "alias\\'")
   (list
    (function
     (lambda ()
       (setq imenu-generic-expression
-           '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2)))
-      )))
-  "Mode for C Shell alias files.")
-)
+           '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2))))))
+  "Mode for C Shell alias files."))
 
 ;;; Windows RC files
 ;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira)
-(and
- (memq 'rc-generic-mode generic-extras-enable-list)
-
-(define-generic-mode 'rc-generic-mode
-;;   (list ?\/)
-   (list "//")
-   '("ACCELERATORS"
-     "AUTO3STATE"
-     "AUTOCHECKBOX"
-     "AUTORADIOBUTTON"
-     "BITMAP"
-     "BOTTOMMARGIN"
-     "BUTTON"
-     "CAPTION"
-     "CHARACTERISTICS"
-     "CHECKBOX"
-     "CLASS"
-     "COMBOBOX"
-     "CONTROL"
-     "CTEXT"
-     "CURSOR"
-     "DEFPUSHBUTTON"
-     "DESIGNINFO"
-     "DIALOG"
-     "DISCARDABLE"
-     "EDITTEXT"
-     "EXSTYLE"
-     "FONT"
-     "GROUPBOX"
-     "GUIDELINES"
-     "ICON"
-     "LANGUAGE"
-     "LEFTMARGIN"
-     "LISTBOX"
-     "LTEXT"
-     "MENUITEM SEPARATOR"
-     "MENUITEM"
-     "MENU"
-     "MOVEABLE"
-     "POPUP"
-     "PRELOAD"
-     "PURE"
-     "PUSHBOX"
-     "PUSHBUTTON"
-     "RADIOBUTTON"
-     "RCDATA"
-     "RIGHTMARGIN"
-     "RTEXT"
-     "SCROLLBAR"
-     "SEPARATOR"
-     "STATE3"
-     "STRINGTABLE"
-     "STYLE"
-     "TEXTINCLUDE"
-     "TOOLBAR"
-     "TOPMARGIN"
-     "VERSIONINFO"
-     "VERSION"
-     )
-   ;; the choice of what tokens go where is somewhat arbitrary,
-   ;; as is the choice of which value tokens are included, as
-   ;; the choice of face for each token group
-   (list
-    (eval-when-compile
-      (generic-make-keywords-list
-       (list
-       "FILEFLAGSMASK"
-       "FILEFLAGS"
-       "FILEOS"
-       "FILESUBTYPE"
-       "FILETYPE"
-       "FILEVERSION"
-       "PRODUCTVERSION"
-       ) 'font-lock-type-face))
-    (eval-when-compile
-      (generic-make-keywords-list
-       (list
-       "BEGIN"
-       "BLOCK"
-       "END"
-       "VALUE"
-       ) 'font-lock-function-name-face))
-    '("^#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)" 1 font-lock-string-face)
-    '("^#[ \t]*define[ \t]+\\(\\sw+\\)("       1 font-lock-function-name-face)
-    '("^#[ \t]*\\(elif\\|if\\)\\>"
-      ("\\<\\(defined\\)\\>[ \t]*(?\\(\\sw+\\)?" nil nil
-       (1 font-lock-constant-face) (2 font-lock-variable-name-face nil t)))
-    '("^#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
+(when (memq 'rc-generic-mode generic-extras-enable-list)
+
+(define-generic-mode rc-generic-mode
+  ;; (list ?\/)
+  (list "//")
+  '("ACCELERATORS"
+    "AUTO3STATE"
+    "AUTOCHECKBOX"
+    "AUTORADIOBUTTON"
+    "BITMAP"
+    "BOTTOMMARGIN"
+    "BUTTON"
+    "CAPTION"
+    "CHARACTERISTICS"
+    "CHECKBOX"
+    "CLASS"
+    "COMBOBOX"
+    "CONTROL"
+    "CTEXT"
+    "CURSOR"
+    "DEFPUSHBUTTON"
+    "DESIGNINFO"
+    "DIALOG"
+    "DISCARDABLE"
+    "EDITTEXT"
+    "EXSTYLE"
+    "FONT"
+    "GROUPBOX"
+    "GUIDELINES"
+    "ICON"
+    "LANGUAGE"
+    "LEFTMARGIN"
+    "LISTBOX"
+    "LTEXT"
+    "MENUITEM SEPARATOR"
+    "MENUITEM"
+    "MENU"
+    "MOVEABLE"
+    "POPUP"
+    "PRELOAD"
+    "PURE"
+    "PUSHBOX"
+    "PUSHBUTTON"
+    "RADIOBUTTON"
+    "RCDATA"
+    "RIGHTMARGIN"
+    "RTEXT"
+    "SCROLLBAR"
+    "SEPARATOR"
+    "STATE3"
+    "STRINGTABLE"
+    "STYLE"
+    "TEXTINCLUDE"
+    "TOOLBAR"
+    "TOPMARGIN"
+    "VERSIONINFO"
+    "VERSION")
+  ;; the choice of what tokens go where is somewhat arbitrary,
+  ;; as is the choice of which value tokens are included, as
+  ;; the choice of face for each token group
+  (list
+   (eval-when-compile
+     (generic-make-keywords-list
+      (list
+       "FILEFLAGSMASK"
+       "FILEFLAGS"
+       "FILEOS"
+       "FILESUBTYPE"
+       "FILETYPE"
+       "FILEVERSION"
+       "PRODUCTVERSION")
+      'font-lock-type-face))
+   (eval-when-compile
+     (generic-make-keywords-list
+      (list
+       "BEGIN"
+       "BLOCK"
+       "END"
+       "VALUE")
+      'font-lock-function-name-face))
+   '("^#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)" 1 font-lock-string-face)
+   '("^#[ \t]*define[ \t]+\\(\\sw+\\)("       1 font-lock-function-name-face)
+   '("^#[ \t]*\\(elif\\|if\\)\\>"
+     ("\\<\\(defined\\)\\>[ \t]*(?\\(\\sw+\\)?" nil nil
       (1 font-lock-constant-face) (2 font-lock-variable-name-face nil t)))
-   (list "\\.[rR][cC]$")
-   nil
-   "Generic mode for MS-Windows Resource files."))
+   '("^#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
+     (1 font-lock-constant-face) (2 font-lock-variable-name-face nil t)))
+  (list "\\.[rR][cC]$")
+  nil
+  "Generic mode for MS-Windows Resource files."))
 
 ;; InstallShield RUL files
 ;; Contributed by  Alfred.Correira@Pervasive.Com
 ;; Bugfixes by "Rolf Sandau" <Rolf.Sandau@marconi.com>
-(and
-(memq 'rul-generic-mode generic-extras-enable-list)
+(when (memq 'rul-generic-mode generic-extras-enable-list)
+
 ;;; build the regexp strings using regexp-opt
 (defvar installshield-statement-keyword-list
   (list
@@ -882,8 +823,7 @@ you must reload generic-x to enable the specified modes."
    "typedef"
    "until"
    "void"
-   "while"
-   )
+   "while")
   "Statement keywords used in InstallShield 3 and 5.")
 
 (defvar installshield-system-functions-list
@@ -907,39 +847,39 @@ you must reload generic-x to enable the specified modes."
    "ChangeDirectory"
    "CloseFile"
    "CmdGetHwndDlg"
-   "ComponentAddItem"                ; differs between IS3 and IS5
-   "ComponentCompareSizeRequired"    ; IS5 only
+   "ComponentAddItem"                  ; differs between IS3 and IS5
+   "ComponentCompareSizeRequired"      ; IS5 only
    "ComponentDialog"
-   "ComponentError"                  ; IS5 only
-   "ComponentFileEnum"               ; IS5 only
-   "ComponentFileInfo"               ; IS5 only
-   "ComponentFilterLanguage"         ; IS5 only
-   "ComponentFilterOS"               ; IS5 only
-   "ComponentGetData"                ; IS5 only
-   "ComponentGetItemInfo"            ; IS3 only
-   "ComponentGetItemSize"            ; differs between IS3 and IS5
-   "ComponentIsItemSelected"         ; differs between IS3 and IS5
+   "ComponentError"                    ; IS5 only
+   "ComponentFileEnum"                 ; IS5 only
+   "ComponentFileInfo"                 ; IS5 only
+   "ComponentFilterLanguage"           ; IS5 only
+   "ComponentFilterOS"                 ; IS5 only
+   "ComponentGetData"                  ; IS5 only
+   "ComponentGetItemInfo"              ; IS3 only
+   "ComponentGetItemSize"              ; differs between IS3 and IS5
+   "ComponentIsItemSelected"           ; differs between IS3 and IS5
    "ComponentListItems"
-   "ComponentMoveData"               ; IS5 only
-   "ComponentSelectItem"             ; differs between IS3 and IS5
-   "ComponentSetData"                ; IS5 only
-   "ComponentSetItemInfo"            ; IS3 only
-   "ComponentSetTarget"              ; IS5 only
-   "ComponentSetupTypeEnum"          ; IS5 only
-   "ComponentSetupTypeGetData"       ; IS5 only
-   "ComponentSetupTypeSet"           ; IS5 only
+   "ComponentMoveData"                 ; IS5 only
+   "ComponentSelectItem"               ; differs between IS3 and IS5
+   "ComponentSetData"                  ; IS5 only
+   "ComponentSetItemInfo"              ; IS3 only
+   "ComponentSetTarget"                        ; IS5 only
+   "ComponentSetupTypeEnum"            ; IS5 only
+   "ComponentSetupTypeGetData"         ; IS5 only
+   "ComponentSetupTypeSet"             ; IS5 only
    "ComponentTotalSize"
-   "ComponentValidate"               ; IS5 only
-   "CompressAdd"                     ; IS3 only
-   "CompressDel"                     ; IS3 only
-   "CompressEnum"                    ; IS3 only
-   "CompressGet"                     ; IS3 only
-   "CompressInfo"                    ; IS3 only
+   "ComponentValidate"                 ; IS5 only
+   "CompressAdd"                       ; IS3 only
+   "CompressDel"                       ; IS3 only
+   "CompressEnum"                      ; IS3 only
+   "CompressGet"                       ; IS3 only
+   "CompressInfo"                      ; IS3 only
    "CopyFile"
    "CreateDir"
    "CreateFile"
    "CreateProgramFolder"
-   "DeinstallSetReference"           ; IS5 only
+   "DeinstallSetReference"             ; IS5 only
    "DeinstallStart"
    "Delay"
    "DeleteDir"
@@ -965,12 +905,12 @@ you must reload generic-x to enable the specified modes."
    "FileDeleteLine"
    "FileGrep"
    "FileInsertLine"
-   "FileSetBeginDefine"              ; IS3 only
-   "FileSetEndDefine"                ; IS3 only
-   "FileSetPerformEz"                ; IS3 only
-   "FileSetPerform"                  ; IS3 only
-   "FileSetReset"                    ; IS3 only
-   "FileSetRoot"                     ; IS3 only
+   "FileSetBeginDefine"                        ; IS3 only
+   "FileSetEndDefine"                  ; IS3 only
+   "FileSetPerformEz"                  ; IS3 only
+   "FileSetPerform"                    ; IS3 only
+   "FileSetReset"                      ; IS3 only
+   "FileSetRoot"                       ; IS3 only
    "FindAllDirs"
    "FindAllFiles"
    "FindFile"
@@ -1024,7 +964,7 @@ you must reload generic-x to enable the specified modes."
    "Path"
    "PlaceBitmap"
    "PlaceWindow"
-   "PlayMMedia"                      ; IS5 only
+   "PlayMMedia"                                ; IS5 only
    "ProgDefGroupType"
    "RegDBCreateKeyEx"
    "RegDBDeleteValue"
@@ -1084,7 +1024,7 @@ you must reload generic-x to enable the specified modes."
    "SdSelectFolder"
    "SdSetSequentialItems"
    "SdSetStatic"
-   "SdSetupTypeEx"                   ; IS5 only
+   "SdSetupTypeEx"                     ; IS5 only
    "SdSetupType"
    "SdShowAnyDialog"
    "SdShowDlgEdit1"
@@ -1101,14 +1041,14 @@ you must reload generic-x to enable the specified modes."
    "SetColor"
    "SetFont"
    "SetDialogTitle"
-   "SetDisplayEffect"                ; IS5 only
+   "SetDisplayEffect"                  ; IS5 only
    "SetFileInfo"
    "SetForegroundWindow"
    "SetStatusWindow"
    "SetTitle"
    "SetupType"
    "ShowProgramFolder"
-   "Split"                           ; IS3 only
+   "Split"                             ; IS3 only
    "SprintfBox"
    "Sprintf"
    "StatusUpdate"
@@ -1129,8 +1069,7 @@ you must reload generic-x to enable the specified modes."
    "Welcome"
    "WriteLine"
    "WriteProfString"
-   "XCopyFile"
-   )
+   "XCopyFile")
   "System functions defined in InstallShield 3 and 5.")
 
 (defvar installshield-system-variables-list
@@ -1163,8 +1102,7 @@ you must reload generic-x to enable the specified modes."
    "WINDISK"
    "WINMAJOR"
    "WINSYSDIR"
-   "WINSYSDISK"
-   )
+   "WINSYSDISK")
   "System variables used in InstallShield 3 and 5.")
 
 (defvar installshield-types-list
@@ -1186,8 +1124,7 @@ you must reload generic-x to enable the specified modes."
    "RGB"
    "SHORT"
    "STRINGLIST"
-   "STRING"
-   )
+   "STRING")
   "Type keywords used in InstallShield 3 and 5.")
 
 ;;; some might want to skip highlighting these to improve performance
@@ -1397,111 +1334,104 @@ you must reload generic-x to enable the specified modes."
    "WINMINOR"
    "WIN32SINSTALLED"
    "WIN32SMAJOR"
-   "WIN32SMINOR"
-   )
+   "WIN32SMINOR")
   "Function argument constants used in InstallShield 3 and 5.")
 
-(progn
-  (defvar rul-generic-mode-syntax-table nil
-     "Syntax table to use in rul-generic-mode buffers.")
-
-   (setq rul-generic-mode-syntax-table
-        (make-syntax-table c++-mode-syntax-table))
-
-   (modify-syntax-entry ?\r "> b"   rul-generic-mode-syntax-table)
-   (modify-syntax-entry ?\n "> b"   rul-generic-mode-syntax-table)
-
-   (modify-syntax-entry ?/  ". 124b" rul-generic-mode-syntax-table)
-   (modify-syntax-entry ?*  ". 23"   rul-generic-mode-syntax-table)
-
-   ;; here manually instead
-   (defun generic-rul-mode-setup-function ()
-     (make-local-variable           'parse-sexp-ignore-comments)
-     (make-local-variable           'comment-start)
-     (make-local-variable           'comment-start-skip)
-     (make-local-variable           'comment-end)
-     (setq imenu-generic-expression
-          '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1))
-          parse-sexp-ignore-comments t
-          comment-end               "*/"
-          comment-start             "/*"
-;;        comment-end               ""
-;;        comment-start             "//"
-;;        comment-start-skip        ""
-          )
-;;     (set-syntax-table             rul-generic-mode-syntax-table)
-     (setq font-lock-syntax-table rul-generic-mode-syntax-table)
-     )
-
-   ;; moved mode-definition behind defun-definition to be warning-free - 15.11.02/RSan
-   (define-generic-mode 'rul-generic-mode
-     ;; Using "/*" and "*/" doesn't seem to be working right
-     (list "//" '("/*" . "*/" ))
-     installshield-statement-keyword-list
-     (list
-      ;; preprocessor constructs
-      '("#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)"
-       1 font-lock-string-face)
-      '("#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
-       (1 font-lock-reference-face)
-       (2 font-lock-variable-name-face nil t))
-      ;; indirect string constants
-      '("\\(@[A-Za-z][A-Za-z0-9_]+\\)" 1 font-lock-builtin-face)
-      ;; gotos
-      '("[ \t]*\\(\\sw+:\\)" 1 font-lock-reference-face)
-      '("\\<\\(goto\\)\\>[ \t]*\\(\\sw+\\)?"
-       (1 font-lock-keyword-face)
-       (2 font-lock-reference-face nil t))
-      ;; system variables
-      (generic-make-keywords-list
-       installshield-system-variables-list
-       'font-lock-variable-name-face "[^_]" "[^_]")
-      ;; system functions
-      (generic-make-keywords-list
-       installshield-system-functions-list
-       'font-lock-function-name-face "[^_]" "[^_]")
-      ;; type keywords
-      (generic-make-keywords-list
-       installshield-types-list
-       'font-lock-type-face "[^_]" "[^_]")
-      ;; function argument constants
-      (generic-make-keywords-list
-       installshield-funarg-constants-list
-       'font-lock-variable-name-face "[^_]" "[^_]") ; is this face the best choice?
-      )
-     (list "\\.[rR][uU][lL]$")
-     (list 'generic-rul-mode-setup-function)
-     "Generic mode for InstallShield RUL files.")
-)
+(defvar rul-generic-mode-syntax-table nil
+  "Syntax table to use in rul-generic-mode buffers.")
+
+(setq rul-generic-mode-syntax-table
+      (make-syntax-table c++-mode-syntax-table))
+
+(modify-syntax-entry ?\r "> b"   rul-generic-mode-syntax-table)
+(modify-syntax-entry ?\n "> b"   rul-generic-mode-syntax-table)
+
+(modify-syntax-entry ?/  ". 124b" rul-generic-mode-syntax-table)
+(modify-syntax-entry ?*  ". 23"   rul-generic-mode-syntax-table)
+
+;; here manually instead
+(defun generic-rul-mode-setup-function ()
+  (make-local-variable      'parse-sexp-ignore-comments)
+  (make-local-variable      'comment-start)
+  (make-local-variable      'comment-start-skip)
+  (make-local-variable      'comment-end)
+  (setq imenu-generic-expression
+       '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1))
+       parse-sexp-ignore-comments t
+       comment-end               "*/"
+       comment-start        "/*"
+;;;    comment-end               ""
+;;;    comment-start        "//"
+;;;    comment-start-skip           ""
+       )
+  ;;     (set-syntax-table           rul-generic-mode-syntax-table)
+  (setq font-lock-syntax-table rul-generic-mode-syntax-table))
+
+;; moved mode-definition behind defun-definition to be warning-free - 15.11.02/RSan
+(define-generic-mode rul-generic-mode
+  ;; Using "/*" and "*/" doesn't seem to be working right
+  (list "//" '("/*" . "*/" ))
+  installshield-statement-keyword-list
+  (list
+   ;; preprocessor constructs
+   '("#[ \t]*include[ \t]+\\(<[^>\"\n]+>\\)"
+     1 font-lock-string-face)
+   '("#[ \t]*\\(\\sw+\\)\\>[ \t]*\\(\\sw+\\)?"
+     (1 font-lock-reference-face)
+     (2 font-lock-variable-name-face nil t))
+   ;; indirect string constants
+   '("\\(@[A-Za-z][A-Za-z0-9_]+\\)" 1 font-lock-builtin-face)
+   ;; gotos
+   '("[ \t]*\\(\\sw+:\\)" 1 font-lock-reference-face)
+   '("\\<\\(goto\\)\\>[ \t]*\\(\\sw+\\)?"
+     (1 font-lock-keyword-face)
+     (2 font-lock-reference-face nil t))
+   ;; system variables
+   (generic-make-keywords-list
+    installshield-system-variables-list
+    'font-lock-variable-name-face "[^_]" "[^_]")
+   ;; system functions
+   (generic-make-keywords-list
+    installshield-system-functions-list
+    'font-lock-function-name-face "[^_]" "[^_]")
+   ;; type keywords
+   (generic-make-keywords-list
+    installshield-types-list
+    'font-lock-type-face "[^_]" "[^_]")
+   ;; function argument constants
+   (generic-make-keywords-list
+    installshield-funarg-constants-list
+    'font-lock-variable-name-face "[^_]" "[^_]")) ; is this face the best choice?
+  (list "\\.[rR][uU][lL]$")
+  (list 'generic-rul-mode-setup-function)
+  "Generic mode for InstallShield RUL files.")
+
 (define-skeleton rul-if
-   "Insert an if statement."
-   "condition: "
-   "if(" str ") then" \n
-   > _ \n
-   ( "other condition, %s: "
-     > "elseif(" str ") then" \n
-     > \n)
-   > "else" \n
-   > \n
-   resume:
-   > "endif;"
-   )
+  "Insert an if statement."
+  "condition: "
+  "if(" str ") then" \n
+  > _ \n
+  ( "other condition, %s: "
+    > "elseif(" str ") then" \n
+    > \n)
+  > "else" \n
+  > \n
+  resume:
+  > "endif;")
 
 (define-skeleton rul-function
   "Insert a function statement."
   "function: "
   "function " str " ()" \n
   ( "local variables, %s: "
-  > "  " str ";" \n)
+    > "  " str ";" \n)
   > "begin" \n
   > _ \n
   resume:
-  > "end;")
-
-)
+  > "end;"))
 
 ;; Additions by ACorreir@pervasive-sw.com (Alfred Correira)
-(define-generic-mode 'mailrc-generic-mode
+(define-generic-mode mailrc-generic-mode
   (list ?#)
   (list
    "alias"
@@ -1512,8 +1442,7 @@ you must reload generic-x to enable the specified modes."
    "ignore"
    "set"
    "source"
-   "unset"
-   )
+   "unset")
   '(("^\\s-*\\(alias\\|group\\)\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([^\n\r#]*\\)\\(#.*\\)?$"
      (2 font-lock-constant-face) (3 font-lock-variable-name-face))
     ("^\\s-*\\(unset\\|set\\|ignore\\)\\s-+\\([-A-Za-z0-9_]+\\)=?\\([^\n\r#]*\\)\\(#.*\\)?$"
@@ -1525,10 +1454,9 @@ you must reload generic-x to enable the specified modes."
   "Mode for mailrc files.")
 
 ;; Inetd.conf
-(and
- (memq 'inetd-conf-generic-mode generic-extras-enable-list)
+(when (memq 'inetd-conf-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'inetd-conf-generic-mode
+(define-generic-mode inetd-conf-generic-mode
   (list ?#)
   (list
    "stream"
@@ -1537,142 +1465,139 @@ you must reload generic-x to enable the specified modes."
    "udp"
    "wait"
    "nowait"
-   "internal"
-   )
-  '(
-    ("^\\([-A-Za-z0-9_]+\\)"
-     1 'font-lock-type-face)
-    )
+   "internal")
+  '(("^\\([-A-Za-z0-9_]+\\)"
+     1 'font-lock-type-face))
   '("/etc/inetd.conf\\'")
   (list
    (function
     (lambda ()
       (setq imenu-generic-expression
-           '((nil "^\\([-A-Za-z0-9_]+\\)" 1)))
-      )))
-  )
-)
+           '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))))
 
 ;; Services
-(and
- (memq 'etc-services-generic-mode generic-extras-enable-list)
+(when (memq 'etc-services-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'etc-services-generic-mode
+(define-generic-mode etc-services-generic-mode
   (list ?#)
   (list
    "tcp"
    "udp"
-   "ddp"
-   )
-  '(
-    ("^\\([-A-Za-z0-9_]+\\)\\s-+\\([0-9]+\\)/"
+   "ddp")
+  '(("^\\([-A-Za-z0-9_]+\\)\\s-+\\([0-9]+\\)/"
      (1 'font-lock-type-face)
-     (2 'font-lock-variable-name-face)
-     )
-    )
+     (2 'font-lock-variable-name-face)))
   '("/etc/services\\'")
   (list
    (function
     (lambda ()
       (setq imenu-generic-expression
-           '((nil "^\\([-A-Za-z0-9_]+\\)" 1)))
-      )))
-  )
-)
+           '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))))
 
 ;; Password and Group files
-(and
- (memq 'etc-passwd-generic-mode generic-extras-enable-list)
+(when (memq 'etc-passwd-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'etc-passwd-generic-mode
+(define-generic-mode etc-passwd-generic-mode
   nil              ;; No comment characters
   (list "root")    ;; Only one keyword
   (list
-    (list
-     (concat
-      "^"
-      ;; User name -- Never blank!
-      "\\([^:]+\\)"
-      ":"
-      ;; Password, UID and GID
-      (mapconcat
-       'identity
-       (make-list 3 "\\([^:]+\\)")
-       ":"
-       )
-      ":"
-      ;; GECOS/Name -- might be blank
-      "\\([^:]*\\)"
-      ":"
-      ;; Home directory and shell
-      "\\([^:]+\\)"
-      ":?"
-      "\\([^:]*\\)"
-      "$"
-     )
-     '(1 'font-lock-type-face)
-     '(5 'font-lock-variable-name-face)
-     '(6 'font-lock-constant-face)
-     '(7 'font-lock-warning-face)
-     )
-    '("^\\([^:]+\\):\\([^:]*\\):\\([0-9]+\\):\\(.*\\)$"
-      (1 'font-lock-type-face)
-      (4 'font-lock-variable-name-face)
-     )
-    )
+   (list
+    (concat
+     "^"
+     ;; User name -- Never blank!
+     "\\([^:]+\\)"
+     ":"
+     ;; Password, UID and GID
+     (mapconcat
+      'identity
+      (make-list 3 "\\([^:]+\\)")
+      ":")
+     ":"
+     ;; GECOS/Name -- might be blank
+     "\\([^:]*\\)"
+     ":"
+     ;; Home directory and shell
+     "\\([^:]+\\)"
+     ":?"
+     "\\([^:]*\\)"
+     "$")
+    '(1 'font-lock-type-face)
+    '(5 'font-lock-variable-name-face)
+    '(6 'font-lock-constant-face)
+    '(7 'font-lock-warning-face))
+   '("^\\([^:]+\\):\\([^:]*\\):\\([0-9]+\\):\\(.*\\)$"
+     (1 'font-lock-type-face)
+     (4 'font-lock-variable-name-face)))
   '("/etc/passwd\\'" "/etc/group\\'")
   (list
    (function
     (lambda ()
       (setq imenu-generic-expression
-           '((nil "^\\([-A-Za-z0-9_]+\\):" 1)))
-      )))
-  )
-)
+           '((nil "^\\([-A-Za-z0-9_]+\\):" 1))))))))
 
 ;; Fstab
-(and
- (memq 'etc-fstab-generic-mode generic-extras-enable-list)
+(when (memq 'etc-fstab-generic-mode generic-extras-enable-list)
 
-(define-generic-mode 'etc-fstab-generic-mode
+(define-generic-mode etc-fstab-generic-mode
   (list ?#)
   (list
+   "adfs"
+   "affs"
+   "autofs"
+   "coda"
+   "coherent"
+   "cramfs"
+   "devpts"
+   "efs"
    "ext2"
-   "fd"
+   "ext3"
+   "hfs"
+   "hpfs"
    "iso9660"
+   "jfs"
+   "minix"
+   "msdos"
+   "ncpfs"
    "nfs"
+   "ntfs"
    "proc"
-   "swap"
+   "qnx4"
+   "reiserfs"
+   "romfs"
+   "smbfs"
+   "sysv"
+   "tmpfs"
+   "udf"
    "ufs"
-   )
-  '(
-    ("^\\([/-A-Za-z0-9_]+\\)\\s-+\\([/-A-Za-z0-9_]+\\)"
+   "umsdos"
+   "vfat"
+   "xenix"
+   "xfs"
+   "swap"
+   "auto"
+   "ignore")
+  '(("^\\([/-A-Za-z0-9_]+\\)\\s-+\\([/-A-Za-z0-9_]+\\)"
      (1 'font-lock-type-face)
-     (2 'font-lock-variable-name-face)
-     )
-    )
+     (2 'font-lock-variable-name-face)))
   '("/etc/[v]*fstab\\'")
   (list
    (function
     (lambda ()
       (setq imenu-generic-expression
-           '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1)))
-      )))
-  )
-)
+           '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1))))))))
 
 ;; From Jacques Duthen <jacques.duthen@sncf.fr>
 (defvar show-tabs-generic-mode-font-lock-defaults-1
-   '(  ;; trailing spaces must come before...
-       ("[ \t]+$" . 'show-tabs-space-face)
-       ;; ...embedded tabs
-       ("[^\n\t]\\(\t+\\)" (1 'show-tabs-tab-face))))
+  '( ;; trailing spaces must come before...
+    ("[ \t]+$" . 'show-tabs-space-face)
+    ;; ...embedded tabs
+    ("[^\n\t]\\(\t+\\)" (1 'show-tabs-tab-face))))
 
 (defvar show-tabs-generic-mode-font-lock-defaults-2
-   '(  ;; trailing spaces must come before...
-       ("[ \t]+$" . 'show-tabs-space-face)
-       ;; ...tabs
-       ("\t+" . 'show-tabs-tab-face)))
+  '( ;; trailing spaces must come before...
+    ("[ \t]+$" . 'show-tabs-space-face)
+    ;; ...tabs
+    ("\t+" . 'show-tabs-tab-face)))
 
 (defface show-tabs-tab-face
   '((((class grayscale) (background light)) (:foreground "LightGray" :weight bold))
@@ -1692,10 +1617,10 @@ you must reload generic-x to enable the specified modes."
   "Font Lock mode face used to highlight spaces."
   :group 'show-tabs)
 
-(define-generic-mode 'show-tabs-generic-mode
+(define-generic-mode show-tabs-generic-mode
   () ;; no comment char
   () ;; no keywords
-   show-tabs-generic-mode-font-lock-defaults-1
+  show-tabs-generic-mode-font-lock-defaults-1
   () ;; no auto-mode-alist
   ;; (list 'show-tabs-generic-mode-hook-fun)
   nil
@@ -1705,41 +1630,37 @@ you must reload generic-x to enable the specified modes."
 ;; DNS modes
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-generic-mode 'named-boot-generic-mode
-  ;;List of comment characters
-   (list ?\;)
-  ;;List of keywords
+(define-generic-mode named-boot-generic-mode
+  ;; List of comment characters
+  (list ?\;)
+  ;; List of keywords
   (list "cache" "primary" "secondary" "forwarders" "limit" "options"
        "directory" "check-names")
-  ;;List of additional font-lock-expressions
+  ;; List of additional font-lock-expressions
   (list
    (list "\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face)
    (list "^directory\\s-+\\(.*\\)" 1 'font-lock-variable-name-face)
    (list "^\\(primary\\|cache\\)\\s-+\\([.A-Za-z]+\\)\\s-+\\(.*\\)"
         (list 2 'font-lock-variable-name-face)
-        (list 3 'font-lock-constant-face))
-   )
-  ;;List of additional automode-alist expressions
+        (list 3 'font-lock-constant-face)))
+  ;; List of additional automode-alist expressions
   (list "/etc/named.boot\\'")
-  ;;List of set up functions to call
-  nil
-  )
+  ;; List of set up functions to call
+  nil)
 
-(define-generic-mode 'named-database-generic-mode
-  ;;List of comment characters
+(define-generic-mode named-database-generic-mode
+  ;; List of comment characters
   (list ?\;)
-  ;;List of keywords
+  ;; List of keywords
   (list "IN" "NS" "CNAME" "SOA" "PTR" "MX" "A")
-  ;;List of additional font-lock-expressions
+  ;; List of additional font-lock-expressions
   (list
    (list "\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 'font-lock-constant-face)
-   (list "^\\([.A-Za-z0-9]+\\)" 1 'font-lock-variable-name-face)
-   )
-  ;;List of additional automode-alist expressions
-  nil
-  ;;List of set up functions to call
+   (list "^\\([.A-Za-z0-9]+\\)" 1 'font-lock-variable-name-face))
+  ;; List of additional automode-alist expressions
   nil
-  )
+  ;; List of set up functions to call
+  nil)
 
 (defvar named-database-time-string "%Y%m%d%H"
   "Timestring for named serial numbers.")
@@ -1747,27 +1668,25 @@ you must reload generic-x to enable the specified modes."
 (defun named-database-print-serial ()
   "Print a serial number based on the current date."
   (interactive)
-  (insert (format-time-string named-database-time-string (current-time)))
-  )
+  (insert (format-time-string named-database-time-string (current-time))))
 
-(define-generic-mode 'resolve-conf-generic-mode
-  ;;List of comment characters
+(define-generic-mode resolve-conf-generic-mode
+  ;; List of comment characters
   (list ?#)
-  ;;List of keywords
+  ;; List of keywords
   (list "nameserver" "domain" "search" "sortlist" "options")
-  ;;List of additional font-lock-expressions
+  ;; List of additional font-lock-expressions
   nil
-  ;;List of additional automode-alist expressions
+  ;; List of additional automode-alist expressions
   (list "/etc/resolv[e]?.conf\\'")
-  ;;List of set up functions to call
-  nil
-  )
+  ;; List of set up functions to call
+  nil)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Modes for spice and common electrical engineering circuit netlist formats
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define-generic-mode 'spice-generic-mode
+(define-generic-mode spice-generic-mode
   nil
   (list
    "and"
@@ -1784,8 +1703,7 @@ you must reload generic-x to enable the specified modes."
    "vccap"
    "vccs"
    "vcr"
-   "vcvs"
-   )
+   "vcvs")
   '(
     ("^\\s-*\\([*].*\\)"                1 'font-lock-comment-face)
     (" \\(\\$ .*\\)$"                   1 'font-lock-comment-face)
@@ -1795,8 +1713,7 @@ you must reload generic-x to enable the specified modes."
     ("^\\s-*\\([.]\\w+\\>\\)"           1 'font-lock-keyword-face)
     ("\\(\\([.]\\|_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face)
     ("\\('[^']+'\\)"                    1 'font-lock-string-face)
-    ("\\(\"[^\"]+\"\\)"                 1 'font-lock-string-face)
-    )
+    ("\\(\"[^\"]+\"\\)"                 1 'font-lock-string-face))
   (list "\\.[sS][pP]\\'"
        "\\.[sS][pP][iI]\\'"
        "\\.[sS][pP][iI][cC][eE]\\'"
@@ -1806,24 +1723,20 @@ you must reload generic-x to enable the specified modes."
    ;; Make keywords case-insensitive
    (function
     (lambda()
-      (setq font-lock-defaults (list 'generic-font-lock-defaults nil t))))
-   )
-  "Generic mode for SPICE circuit netlist files."
-  )
+      (setq font-lock-defaults (list 'generic-font-lock-defaults nil t)))))
+  "Generic mode for SPICE circuit netlist files.")
 
-(define-generic-mode 'ibis-generic-mode
+(define-generic-mode ibis-generic-mode
   (list ?|)
   nil
   '(
     ("[[]\\([^]]*\\)[]]"          1 'font-lock-keyword-face)
-    ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face)
-    )
+    ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face))
   (list "\\.[iI][bB][sS]\\'")
   (list 'generic-bracket-support)
-  "Generic mode for IBIS circuit netlist files."
-  )
+  "Generic mode for IBIS circuit netlist files.")
 
-(define-generic-mode 'astap-generic-mode
+(define-generic-mode astap-generic-mode
   nil
   (list
    "analyze"
@@ -1838,16 +1751,13 @@ you must reload generic-x to enable the specified modes."
    "print"
    "run"
    "controls"
-   "table"
-   )
-  '(
-    ("^\\s-*\\([*].*\\)"      1 'font-lock-comment-face)
+   "table")
+  '(("^\\s-*\\([*].*\\)"      1 'font-lock-comment-face)
     (";\\s-*\\([*].*\\)"      1 'font-lock-comment-face)
     ("^\\s-*\\([.]\\w+\\>\\)" 1 'font-lock-keyword-face)
     ("\\('[^']+'\\)"          1 'font-lock-string-face)
     ("\\(\"[^\"]+\"\\)"       1 'font-lock-string-face)
-    ("[(,]\\s-*\\(\\([.]\\|_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face)
-    )
+    ("[(,]\\s-*\\(\\([.]\\|_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face))
   (list "\\.[aA][pP]\\'"
        "\\.[aA][sS][xX]\\'"
        "\\.[aA][sS][tT][aA][pP]\\'"
@@ -1859,15 +1769,13 @@ you must reload generic-x to enable the specified modes."
    ;; Make keywords case-insensitive
    (function
     (lambda()
-      (setq font-lock-defaults (list 'generic-font-lock-defaults nil t))))
-   )
-  "Generic mode for ASTAP circuit netlist files."
-  )
+      (setq font-lock-defaults (list 'generic-font-lock-defaults nil t)))))
+  "Generic mode for ASTAP circuit netlist files.")
 
-(define-generic-mode  'etc-modules-conf-generic-mode
-  ;;List of comment characters
+(define-generic-mode etc-modules-conf-generic-mode
+  ;; List of comment characters
   (list ?#)
-  ;;List of keywords
+  ;; List of keywords
   (list
    "above"
    "alias"
@@ -1900,13 +1808,12 @@ you must reload generic-x to enable the specified modes."
    "pre-remove"
    "remove"
    "persistdir")
-  ;;List of additional font-lock-expressions
+  ;; List of additional font-lock-expressions
   nil
-  ;;List of additional automode-alist expressions
+  ;; List of additional automode-alist expressions
   (list "/etc/modules.conf" "/etc/conf.modules")
-  ;;List of set up functions to call
-  nil
-  )
+  ;; List of set up functions to call
+  nil)
 
 (provide 'generic-x)