emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/generic-x.el


From: Lute Kamstra
Subject: [Emacs-diffs] Changes to emacs/lisp/generic-x.el
Date: Wed, 23 Mar 2005 05:47:27 -0500

Index: emacs/lisp/generic-x.el
diff -c emacs/lisp/generic-x.el:1.25 emacs/lisp/generic-x.el:1.26
*** emacs/lisp/generic-x.el:1.25        Tue Mar 22 16:42:38 2005
--- emacs/lisp/generic-x.el     Wed Mar 23 10:47:26 2005
***************
*** 124,153 ****
  
  (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)))
  
  (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
!                        'x-resource-generic-mode
!                        'alias-generic-mode
!                        'inetd-conf-generic-mode
!                        'etc-services-generic-mode
!                        'etc-passwd-generic-mode
!                        'etc-fstab-generic-mode)
                   generic-extras-enable-list)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- 124,153 ----
  
  (and generic-define-mswindows-modes
       (setq generic-extras-enable-list
!          (append '(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 '(apache-conf-generic-mode
!                    apache-log-generic-mode
!                    samba-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)
                   generic-extras-enable-list)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
***************
*** 158,168 ****
  (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 ()
--- 158,168 ----
  (when (memq 'apache-conf-generic-mode generic-extras-enable-list)
  
  (define-generic-mode apache-conf-generic-mode
!   '(?#)
    nil
!   '(("^\\s-*\\(<.*>\\)"      1 font-lock-constant-face)
!     ("^\\s-*\\(\\sw+\\)\\s-" 1 font-lock-variable-name-face))
!   '("srm\\.conf\\'" "httpd\\.conf\\'" "access\\.conf\\'")
    (list
     (function
      (lambda ()
***************
*** 181,187 ****
    '(("^\\([-a-zA-z0-9.]+\\) - [-A-Za-z]+ \\(\\[.*\\]\\)"
       (1 font-lock-constant-face)
       (2 font-lock-variable-name-face)))
!   (list "access_log\\'")
    nil
    "Mode for Apache log files"))
  
--- 181,187 ----
    '(("^\\([-a-zA-z0-9.]+\\) - [-A-Za-z]+ \\(\\[.*\\]\\)"
       (1 font-lock-constant-face)
       (2 font-lock-variable-name-face)))
!   '("access_log\\'")
    nil
    "Mode for Apache log files"))
  
***************
*** 189,202 ****
  (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
--- 189,202 ----
  (when (memq 'samba-generic-mode generic-extras-enable-list)
  
  (define-generic-mode samba-generic-mode
!   '(?\; ?#)
    nil
!   '(("^\\(\\[.*\\]\\)" 1 font-lock-constant-face)
      ("^\\s-*\\(.+\\)=\\([^\r\n]*\\)"
!      (1 font-lock-variable-name-face)
!      (2 font-lock-type-face)))
!   '("smb\\.conf\\'")
!   '(generic-bracket-support)
    "Generic mode for Samba configuration files."))
  
  ;;; Fvwm
***************
*** 205,227 ****
  (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."))
  
--- 205,226 ----
  (when (memq 'fvwm-generic-mode generic-extras-enable-list)
  
  (define-generic-mode fvwm-generic-mode
!   '(?#)
!   '("AddToMenu"
!     "AddToFunc"
!     "ButtonStyle"
!     "EndFunction"
!     "EndPopup"
!     "Function"
!     "IconPath"
!     "Key"
!     "ModulePath"
!     "Mouse"
!     "PixmapPath"
!     "Popup"
!     "Style")
    nil
!   '("\\.fvwmrc\\'" "\\.fvwm2rc\\'")
    nil
    "Generic mode for FVWM configuration files."))
  
***************
*** 231,240 ****
  (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."))
  
--- 230,239 ----
  (when (memq 'x-resource-generic-mode generic-extras-enable-list)
  
  (define-generic-mode x-resource-generic-mode
!   '(?!)
    nil
!   '(("^\\([^:\n]+:\\)" 1 font-lock-variable-name-face))
!   '("\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'")
    nil
    "Generic mode for X Resource configuration files."))
  
***************
*** 242,251 ****
  (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."))
  
--- 241,250 ----
  (when (memq 'hosts-generic-mode generic-extras-enable-list)
  
  (define-generic-mode hosts-generic-mode
!   '(?#)
!   '("localhost")
!   '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face))
!   '("[hH][oO][sS][tT][sS]\\'")
    nil
    "Generic mode for HOSTS files."))
  
***************
*** 253,263 ****
  (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."))
  
  ;;; Windows INI files
--- 252,262 ----
  (when (memq 'inf-generic-mode generic-extras-enable-list)
  
  (define-generic-mode inf-generic-mode
!   '(?\;)
    nil
!   '(("^\\(\\[.*\\]\\)" 1 font-lock-constant-face))
!   '("\\.[iI][nN][fF]\\'")
!   '(generic-bracket-support)
    "Generic mode for MS-Windows INF files."))
  
  ;;; Windows INI files
***************
*** 265,277 ****
  (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 ()
--- 264,276 ----
  (when (memq 'ini-generic-mode generic-extras-enable-list)
  
  (define-generic-mode ini-generic-mode
!   '(?\;)
    nil
!   '(("^\\(\\[.*\\]\\)" 1 font-lock-constant-face)
      ("^\\([^=\n\r]*\\)=\\([^\n\r]*\\)$"
       (1 font-lock-function-name-face)
       (2 font-lock-variable-name-face)))
!   '("\\.[iI][nN][iI]\\'")
    (list
     (function
      (lambda ()
***************
*** 287,294 ****
  (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
--- 286,293 ----
  (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
***************
*** 303,379 ****
  (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
!      "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)))
!   (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
--- 302,373 ----
  (define-generic-mode bat-generic-mode
    nil
    nil
!   (eval-when-compile
      (list
!      ;; Make this one first in the list, otherwise comments will
!      ;; be over-written by other variables
!      '("^[@ \t]*\\([rR][eE][mM][^\n\r]*\\)" 1 font-lock-comment-face t)
!      '("^[ \t]*\\(::.*\\)"                  1 font-lock-comment-face t)
!      '("^[@ \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.
!      '("^[@ \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
!       '("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
!       '("do"
!       "exist"
!       "errorlevel"
!       "goto"
!       "not")
!       'font-lock-keyword-face)
!      ;; These are built-in commands.  Only frequently-used ones are listed.
!      (generic-make-keywords-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]")
!      '("^[ \t]*\\(:\\sw+\\)"         1 font-lock-function-name-face t)
!      '("\\(%\\sw+%\\)"               1 font-lock-variable-name-face t)
!      '("\\(%[0-9]\\)"                1 font-lock-variable-name-face t)
!      '("\\(/[^/ \"\t\n]+\\)"         1 font-lock-type-face)
!      '("[\t ]+\\([+-][^\t\n\" ]+\\)" 1 font-lock-type-face)
!      '("[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
!        (1 font-lock-keyword-face)
!        (2 font-lock-function-name-face nil t))
!      '("[ \t\n|]\\<\\([sS][eE][tT]\\)\\>[ \t]*\\(\\sw+\\)?[ \t]*=?"
!        (1 font-lock-builtin-face)
!        (2 font-lock-variable-name-face t t))))
!   '("\\.[bB][aA][tT]\\'"
!     "\\`[cC][oO][nN][fF][iI][gG]\\."
!     "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\.")
!   '(generic-bat-mode-setup-function)
    "Generic mode for MS-Windows BAT files.")
  
  (defvar bat-generic-mode-syntax-table nil
***************
*** 416,453 ****
  ;; 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?
  (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 ()
--- 410,447 ----
  ;; 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 '(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?
  (when (memq 'mailagent-rules-generic-mode generic-extras-enable-list)
  
  (define-generic-mode mailagent-rules-generic-mode
!   '(?#)
!   '("SAVE" "DELETE" "PIPE" "ANNOTATE" "REJECT")
!   '(("^\\(\\sw+\\)\\s-*="         1 font-lock-variable-name-face)
!     ("\\s-/\\([^/]+\\)/[i, \t\n]" 1 font-lock-constant-face))
!   '("\\.rules\\'")
!   '(mailagent-rules-setup-function)
    "Mode for Mailagent rules files.")
  
  (defun mailagent-rules-setup-function ()
***************
*** 459,465 ****
  (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)
--- 453,459 ----
  (when (memq 'prototype-generic-mode generic-extras-enable-list)
  
  (define-generic-mode prototype-generic-mode
!   '(?#)
    nil
    '(("^\\([0-9]\\)?\\s-*\\([a-z]\\)\\s-+\\([A-Za-z_]+\\)\\s-+\\([^\n\r]*\\)$"
       (2 font-lock-constant-face)
***************
*** 474,480 ****
      ("^\\(!\\s-*\\sw+\\)=\\([^\n\r]*\\)$"
       (1 font-lock-keyword-face)
       (2 font-lock-variable-name-face)))
!   (list "prototype\\'")
    nil
    "Mode for Sys V prototype files."))
  
--- 468,474 ----
      ("^\\(!\\s-*\\sw+\\)=\\([^\n\r]*\\)$"
       (1 font-lock-keyword-face)
       (2 font-lock-variable-name-face)))
!   '("prototype\\'")
    nil
    "Mode for Sys V prototype files."))
  
***************
*** 482,567 ****
  (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 address@hidden
  (define-generic-mode javascript-generic-mode
!   (list "//" '("/*" . "*/"))
!   (list
!    "break"
!    "case"
!    "continue"
!    "default"
!    "delete"
!    "do"
!    "else"
!    "export"
!    "for"
!    "function"
!    "if"
!    "import"
!    "in"
!    "new"
!    "return"
!    "switch"
!    "this"
!    "typeof"
!    "var"
!    "void"
!    "while"
!    "with"
!    ;; words reserved for ECMA extensions below
!    "catch"
!    "class"
!    "const"
!    "debugger"
!    "enum"
!    "extends"
!    "finally"
!    "super"
!    "throw"
!    "try"
!    ;; Java Keywords reserved by JavaScript
!    "abstract"
!    "boolean"
!    "byte"
!    "char"
!    "double"
!    "false"
!    "final"
!    "float"
!    "goto"
!    "implements"
!    "instanceof"
!    "int"
!    "interface"
!    "long"
!    "native"
!    "null"
!    "package"
!    "private"
!    "protected"
!    "public"
!    "short"
!    "static"
!    "synchronized"
!    "throws"
!    "transient"
!    "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)))
!   (list "\\.js\\'")
    (list
     (function
      (lambda ()
--- 476,559 ----
  (when (memq 'pkginfo-generic-mode generic-extras-enable-list)
  
  (define-generic-mode pkginfo-generic-mode
!   '(?#)
    nil
    '(("^\\([A-Za-z_]+\\)=\\([^\n\r]*\\)$"
       (1 font-lock-keyword-face)
       (2 font-lock-variable-name-face)))
!   '("pkginfo\\'")
    nil
    "Mode for Sys V pkginfo files."))
  
  ;; Javascript mode
  ;; Includes extra keywords from Armando Singer address@hidden
  (define-generic-mode javascript-generic-mode
!   '("//" ("/*" . "*/"))
!   '("break"
!     "case"
!     "continue"
!     "default"
!     "delete"
!     "do"
!     "else"
!     "export"
!     "for"
!     "function"
!     "if"
!     "import"
!     "in"
!     "new"
!     "return"
!     "switch"
!     "this"
!     "typeof"
!     "var"
!     "void"
!     "while"
!     "with"
!     ;; words reserved for ECMA extensions below
!     "catch"
!     "class"
!     "const"
!     "debugger"
!     "enum"
!     "extends"
!     "finally"
!     "super"
!     "throw"
!     "try"
!     ;; Java Keywords reserved by JavaScript
!     "abstract"
!     "boolean"
!     "byte"
!     "char"
!     "double"
!     "false"
!     "final"
!     "float"
!     "goto"
!     "implements"
!     "instanceof"
!     "int"
!     "interface"
!     "long"
!     "native"
!     "null"
!     "package"
!     "private"
!     "protected"
!     "public"
!     "short"
!     "static"
!     "synchronized"
!     "throws"
!     "transient"
!     "true")
!   '(("^\\s-*function\\s-+\\([A-Za-z0-9_]+\\)"
!      (1 font-lock-function-name-face))
!     ("^\\s-*var\\s-+\\([A-Za-z0-9_]+\\)"
!      (1 font-lock-variable-name-face)))
!   '("\\.js\\'")
    (list
     (function
      (lambda ()
***************
*** 572,619 ****
  
  ;; VRML files
  (define-generic-mode vrml-generic-mode
!   (list ?#)
!   (list
!    "DEF"
!    "NULL"
!    "USE"
!    "Viewpoint"
!    "ambientIntensity"
!    "appearance"
!    "children"
!    "color"
!    "coord"
!    "coordIndex"
!    "creaseAngle"
!    "diffuseColor"
!    "emissiveColor"
!    "fieldOfView"
!    "geometry"
!    "info"
!    "material"
!    "normal"
!    "orientation"
!    "position"
!    "shininess"
!    "specularColor"
!    "texCoord"
!    "texture"
!    "textureTransform"
!    "title"
!    "transparency"
!    "type")
!   (list
!    (list "USE\\s-+\\([-A-Za-z0-9_]+\\)"
!        '(1 font-lock-constant-face))
!    (list "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{"
!        '(1 font-lock-type-face)
!        '(2 font-lock-constant-face))
!    (list "^\\s-*\\([-A-Za-z0-9_]+\\)\\s-*{"
!        '(1 font-lock-function-name-face))
!    (list
!     "^\\s-*\\(geometry\\|appearance\\|material\\)\\s-+\\([-A-Za-z0-9_]+\\)"
!     '(2 font-lock-variable-name-face)))
!   (list "\\.wrl\\'")
    (list
     (function
      (lambda ()
--- 564,608 ----
  
  ;; VRML files
  (define-generic-mode vrml-generic-mode
!   '(?#)
!   '("DEF"
!     "NULL"
!     "USE"
!     "Viewpoint"
!     "ambientIntensity"
!     "appearance"
!     "children"
!     "color"
!     "coord"
!     "coordIndex"
!     "creaseAngle"
!     "diffuseColor"
!     "emissiveColor"
!     "fieldOfView"
!     "geometry"
!     "info"
!     "material"
!     "normal"
!     "orientation"
!     "position"
!     "shininess"
!     "specularColor"
!     "texCoord"
!     "texture"
!     "textureTransform"
!     "title"
!     "transparency"
!     "type")
!   '(("USE\\s-+\\([-A-Za-z0-9_]+\\)"
!      (1 font-lock-constant-face))
!     ("DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{"
!      (1 font-lock-type-face)
!      (2 font-lock-constant-face))
!     ("^\\s-*\\([-A-Za-z0-9_]+\\)\\s-*{"
!      (1 font-lock-function-name-face))
!     ("^\\s-*\\(geometry\\|appearance\\|material\\)\\s-+\\([-A-Za-z0-9_]+\\)"
!      (2 font-lock-variable-name-face)))
!   '("\\.wrl\\'")
    (list
     (function
      (lambda ()
***************
*** 626,670 ****
  
  ;; Java Manifests
  (define-generic-mode java-manifest-generic-mode
!   (list ?#)
!   (list
!    "Name"
!    "Digest-Algorithms"
!    "Manifest-Version"
!    "Required-Version"
!    "Signature-Version"
!    "Magic"
!    "Java-Bean"
!    "Depends-On")
    '(("^Name:\\s-+\\([^\n\r]*\\)$"
       (1 font-lock-variable-name-face))
      ("^\\(Manifest\\|Required\\|Signature\\)-Version:\\s-+\\([^\n\r]*\\)$"
       (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
!   (list ?! ?#)
    nil
!   (let ((java-properties-key
!        "\\(\\([-A-Za-z0-9_\\./]\\|\\(\\\\[ =:]\\)\\)+\\)")
!       (java-properties-value
!        "\\([^\r\n]*\\)"))
!     ;; Property and value can be separated in a number of different ways:
!     ;;   * whitespace
!     ;;   * an equal sign
!     ;;   * a colon
!     (mapcar
!      (function
!       (lambda (elt)
!       (list
!        (concat "^" java-properties-key elt java-properties-value "$")
!        '(1 font-lock-constant-face)
!        '(4 font-lock-variable-name-face))))
!      ;; These are the separators
!      (list ":\\s-*" "\\s-+" "\\s-*=\\s-*")))
    nil
    (list
     (function
--- 615,659 ----
  
  ;; Java Manifests
  (define-generic-mode java-manifest-generic-mode
!   '(?#)
!   '("Name"
!     "Digest-Algorithms"
!     "Manifest-Version"
!     "Required-Version"
!     "Signature-Version"
!     "Magic"
!     "Java-Bean"
!     "Depends-On")
    '(("^Name:\\s-+\\([^\n\r]*\\)$"
       (1 font-lock-variable-name-face))
      ("^\\(Manifest\\|Required\\|Signature\\)-Version:\\s-+\\([^\n\r]*\\)$"
       (2 font-lock-constant-face)))
!   '("[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
!   '(?! ?#)
    nil
!   (eval-when-compile
!     (let ((java-properties-key
!          "\\(\\([-A-Za-z0-9_\\./]\\|\\(\\\\[ =:]\\)\\)+\\)")
!         (java-properties-value
!          "\\([^\r\n]*\\)"))
!       ;; Property and value can be separated in a number of different ways:
!       ;;   * whitespace
!       ;;   * an equal sign
!       ;;   * a colon
!       (mapcar
!        (function
!       (lambda (elt)
!         (list
!          (concat "^" java-properties-key elt java-properties-value "$")
!          '(1 font-lock-constant-face)
!          '(4 font-lock-variable-name-face))))
!        ;; These are the separators
!        '(":\\s-*" "\\s-+" "\\s-*=\\s-*"))))
    nil
    (list
     (function
***************
*** 677,689 ****
  (when (memq 'alias-generic-mode generic-extras-enable-list)
  
  (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)))
!   (list "alias\\'")
    (list
     (function
      (lambda ()
--- 666,678 ----
  (when (memq 'alias-generic-mode generic-extras-enable-list)
  
  (define-generic-mode alias-generic-mode
!   '(?#)
!   '("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)))
!   '("alias\\'")
    (list
     (function
      (lambda ()
***************
*** 696,703 ****
  (when (memq 'rc-generic-mode generic-extras-enable-list)
  
  (define-generic-mode rc-generic-mode
!   ;; (list ?\/)
!   (list "//")
    '("ACCELERATORS"
      "AUTO3STATE"
      "AUTOCHECKBOX"
--- 685,692 ----
  (when (memq 'rc-generic-mode generic-extras-enable-list)
  
  (define-generic-mode rc-generic-mode
!   ;; '(?\/)
!   '("//")
    '("ACCELERATORS"
      "AUTO3STATE"
      "AUTOCHECKBOX"
***************
*** 753,1341 ****
    ;; 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+\\)?"
!      (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  address@hidden
  ;; Bugfixes by "Rolf Sandau" <address@hidden>
  (when (memq 'rul-generic-mode generic-extras-enable-list)
  
  ;;; build the regexp strings using regexp-opt
! (defvar installshield-statement-keyword-list
!   (list
!    "abort"
!    "begin"
!    "call"
!    "case"
!    "declare"
!    "default"
!    "downto"
!    "elseif"
!    "else"
!    "endfor"
!    "endif"
!    "endswitch"
!    "endwhile"
!    "end"
!    "exit"
!    "external"
!    "for"
!    "function"
!    ;; "goto" -- handled elsewhere
!    "if"
!    "program"
!    "prototype"
!    "repeat"
!    "return"
!    "step"
!    "switch"
!    "then"
!    "to"
!    "typedef"
!    "until"
!    "void"
!    "while")
    "Statement keywords used in InstallShield 3 and 5.")
  
! (defvar installshield-system-functions-list
!   (list
!    "AddFolderIcon"
!    "AddProfString"
!    "AddressString"
!    "AppCommand"
!    "AskDestPath"
!    "AskOptions"
!    "AskPath"
!    "AskText"
!    "AskYesNo"
!    "BatchDeleteEx"
!    "BatchFileLoad"
!    "BatchFileSave"
!    "BatchFind"
!    "BatchGetFileName"
!    "BatchMoveEx"
!    "BatchSetFileName"
!    "ChangeDirectory"
!    "CloseFile"
!    "CmdGetHwndDlg"
!    "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
!    "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
!    "ComponentTotalSize"
!    "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
!    "DeinstallStart"
!    "Delay"
!    "DeleteDir"
!    "DeleteFile"
!    "DialogSetInfo"
!    "Disable"
!    "DoInstall"
!    "Do"
!    "Enable"
!    "EnterDisk"
!    "ExistsDir"
!    "ExistsDisk"
!    "ExitProgMan"
!    "EzBatchAddPath"
!    "EzBatchAddString"
!    "EzBatchReplace"
!    "EzConfigAddDriver"
!    "EzConfigAddString"
!    "EzConfigGetValue"
!    "EzConfigSetValue"
!    "EzDefineDialog"
!    "FileCompare"
!    "FileDeleteLine"
!    "FileGrep"
!    "FileInsertLine"
!    "FileSetBeginDefine"                       ; IS3 only
!    "FileSetEndDefine"                 ; IS3 only
!    "FileSetPerformEz"                 ; IS3 only
!    "FileSetPerform"                   ; IS3 only
!    "FileSetReset"                     ; IS3 only
!    "FileSetRoot"                      ; IS3 only
!    "FindAllDirs"
!    "FindAllFiles"
!    "FindFile"
!    "FindWindow"
!    "GetDiskSpace"
!    "GetDisk"
!    "GetEnvVar"
!    "GetExtents"
!    "GetFileInfo"
!    "GetLine"
!    "GetProfInt"
!    "GetProfString"
!    "GetSystemInfo"
!    "GetValidDrivesList"
!    "GetVersion"
!    "GetWindowHandle"
!    "InstallationInfo"
!    "Is"
!    "LaunchApp"
!    "LaunchAppAndWait"
!    "ListAddItem"
!    "ListAddString"
!    "ListCount"
!    "ListCreate"
!    "ListDestroy"
!    "ListFindItem"
!    "ListFindString"
!    "ListGetFirstItem"
!    "ListGetFirstString"
!    "ListGetNextItem"
!    "ListGetNextString"
!    "ListReadFromFile"
!    "ListSetCurrentItem"
!    "ListSetNextItem"
!    "ListSetNextString"
!    "ListSetIndex"
!    "ListWriteToFile"
!    "LongPathToQuote"
!    "LongPathToShortPath"
!    "MessageBox"
!    "NumToStr"
!    "OpenFileMode"
!    "OpenFile"
!    "ParsePath"
!    "PathAdd"
!    "PathDelete"
!    "PathFind"
!    "PathGet"
!    "PathMove"
!    "PathSet"
!    "Path"
!    "PlaceBitmap"
!    "PlaceWindow"
!    "PlayMMedia"                               ; IS5 only
!    "ProgDefGroupType"
!    "RegDBCreateKeyEx"
!    "RegDBDeleteValue"
!    "RegDBGetItem"
!    "RegDBKeyExist"
!    "RegDBSetItem"
!    "RegDBGetKeyValueEx"
!    "RegDBSetKeyValueEx"
!    "RegDBSetDefaultRoot"
!    "RenameFile"
!    "ReplaceFolderIcon"
!    "ReplaceProfString"
!    "SdAskDestPath"
!    "SdAskOptions"
!    "SdAskOptionsList"
!    "SdBitmap"
!    "SdCloseDlg"
!    "SdComponentAdvCheckSpace"
!    "SdComponentAdvInit"
!    "SdComponentAdvUpdateSpace"
!    "SdComponentDialog"
!    "SdComponentDialog2"
!    "SdComponentDialogAdv"
!    "SdComponentDialogEx"
!    "SdComponentDlgCheckSpace"
!    "SdComponentMult"
!    "SdConfirmNewDir"
!    "SdConfirmRegistration"
!    "SdDiskSpace"
!    "SdDisplayTopics"
!    "SdDoStdButton"
!    "SdEnablement"
!    "SdError"
!    "SdFinish"
!    "SdFinishInit32"
!    "SdFinishReboot"
!    "SdGeneralInit"
!    "SdGetItemName"
!    "SdGetTextExtent"
!    "SdGetUserCompanyInfo"
!    "SdInit"
!    "SdIsShellExplorer"
!    "SdIsStdButton"
!    "SdLicense"
!    "SdMakeName"
!    "SdOptionInit"
!    "SdOptionSetState"
!    "SdOptionsButtons"
!    "SdOptionsButtonsInit"
!    "SdPlugInProductName"
!    "SdProductName"
!    "SdRegEnableButton"
!    "SdRegExEnableButton"
!    "SdRegisterUser"
!    "SdRegisterUserEx"
!    "SdRemoveEndSpace"
!    "SdSelectFolder"
!    "SdSetSequentialItems"
!    "SdSetStatic"
!    "SdSetupTypeEx"                    ; IS5 only
!    "SdSetupType"
!    "SdShowAnyDialog"
!    "SdShowDlgEdit1"
!    "SdShowDlgEdit2"
!    "SdShowDlgEdit3"
!    "SdShowFileMods"
!    "SdShowInfoList"
!    "SdShowMsg"
!    "SdStartCopy"
!    "SdUnInit"
!    "SdUpdateComponentSelection"
!    "SdWelcome"
!    "SendMessage"
!    "SetColor"
!    "SetFont"
!    "SetDialogTitle"
!    "SetDisplayEffect"                 ; IS5 only
!    "SetFileInfo"
!    "SetForegroundWindow"
!    "SetStatusWindow"
!    "SetTitle"
!    "SetupType"
!    "ShowProgramFolder"
!    "Split"                            ; IS3 only
!    "SprintfBox"
!    "Sprintf"
!    "StatusUpdate"
!    "StrCompare"
!    "StrFind"
!    "StrGetTokens"
!    "StrLength"
!    "StrRemoveLastSlash"
!    "StrToLower"
!    "StrToNum"
!    "StrToUpper"
!    "StrSub"
!    "VarRestore"
!    "VarSave"
!    "VerCompare"
!    "VerGetFileVersion"
!    "WaitOnDialog"
!    "Welcome"
!    "WriteLine"
!    "WriteProfString"
!    "XCopyFile")
    "System functions defined in InstallShield 3 and 5.")
  
! (defvar installshield-system-variables-list
!   (list
!    "BATCH_INSTALL"
!    "CMDLINE"
!    "COMMONFILES"
!    "CORECOMPONENTHANDLING"
!    "DIALOGCACHE"
!    "ERRORFILENAME"
!    "FOLDER_DESKTOP"
!    "FOLDER_PROGRAMS"
!    "FOLDER_STARTMENU"
!    "FOLDER_STARTUP"
!    "INFOFILENAME"
!    "ISRES"
!    "ISUSER"
!    "ISVERSION"
!    "MEDIA"
!    "MODE"
!    "PROGRAMFILES"
!    "SELECTED_LANGUAGE"
!    "SRCDIR"
!    "SRCDISK"
!    "SUPPORTDIR"
!    "TARGETDIR"
!    "TARGETDISK"
!    "UNINST"
!    "WINDIR"
!    "WINDISK"
!    "WINMAJOR"
!    "WINSYSDIR"
!    "WINSYSDISK")
    "System variables used in InstallShield 3 and 5.")
  
! (defvar installshield-types-list
!   (list
!    "BOOL"
!    "BYREF"
!    "CHAR"
!    "HIWORD"
!    "HWND"
!    "INT"
!    "LIST"
!    "LONG"
!    "LOWORD"
!    "LPSTR"
!    "NUMBER"
!    "NUMBERLIST"
!    "POINTER"
!    "QUAD"
!    "RGB"
!    "SHORT"
!    "STRINGLIST"
!    "STRING")
    "Type keywords used in InstallShield 3 and 5.")
  
  ;;; some might want to skip highlighting these to improve performance
! (defvar installshield-funarg-constants-list
!   (list
!    "AFTER"
!    "APPEND"
!    "ALLCONTENTS"
!    "BACKBUTTON"
!    "BACKGROUNDCAPTION"
!    "BACKGROUND"
!    "BACK"
!    "BASEMEMORY"
!    "BEFORE"
!    "BIOS"
!    "BITMAPICON"
!    "BK_BLUE"
!    "BK_GREEN"
!    "BK_RED"
!    "BLUE"
!    "BOOTUPDRIVE"
!    "CANCEL"
!    "CDROM_DRIVE"
!    "CDROM"
!    "CHECKBOX95"
!    "CHECKBOX"
!    "CHECKLINE"
!    "CHECKMARK"
!    "COLORS"
!    "COMMANDEX"
!    "COMMAND"
!    "COMP_NORMAL"
!    "COMP_UPDATE_DATE"
!    "COMP_UPDATE_SAME"
!    "COMP_UPDATE_VERSION"
!    "COMPACT"
!    "CONTINUE"
!    "CPU"
!    "CUSTOM"
!    "DATE"
!    "DEFWINDOWMODE"
!    "DIR_WRITEABLE"
!    "DIRECTORY"
!    "DISABLE"
!    "DISK_TOTALSPACE"
!    "DISK"
!    "DLG_OPTIONS"
!    "DLG_PATH"
!    "DLG_TEXT"
!    "DLG_ASK_YESNO"
!    "DLG_ENTER_DISK"
!    "DLG_ERR"
!    "DLG_INFO_ALTIMAGE"
!    "DLG_INFO_CHECKSELECTION"
!    "DLG_INFO_KUNITS"
!    "DLG_INFO_USEDECIMAL"
!    "DLG_MSG_INFORMATION"
!    "DLG_MSG_SEVERE"
!    "DLG_MSG_WARNING"
!    "DLG_STATUS"
!    "DLG_WARNING"
!    "DLG_USER_CAPTION"
!    "DRIVE"
!    "ENABLE"
!    "END_OF_FILE"
!    "END_OF_LIST"
!    "ENVSPACE"
!    "EQUALS"
!    "EXCLUDE_SUBDIR"
!    "EXCLUSIVE"
!    "EXISTS"
!    "EXIT"
!    "EXTENDED_MEMORY"
!    "EXTENSION_ONLY"
!    "FAILIFEXISTS"
!    "FALSE"
!    "FEEDBACK_FULL"
!    "FILE_ATTR_ARCHIVED"
!    "FILE_ATTR_DIRECTORY"
!    "FILE_ATTR_HIDDEN"
!    "FILE_ATTR_NORMAL"
!    "FILE_ATTR_READONLY"
!    "FILE_ATTR_SYSTEM"
!    "FILE_ATTRIBUTE"
!    "FILE_DATE"
!    "FILE_LINE_LENGTH"
!    "FILE_MODE_APPEND"
!    "FILE_MODE_BINARYREADONLY"
!    "FILE_MODE_BINARY"
!    "FILE_MODE_NORMAL"
!    "FILE_NO_VERSION"
!    "FILE_NOT_FOUND"
!    "FILE_SIZE"
!    "FILE_TIME"
!    "FILENAME_ONLY"
!    "FILENAME"
!    "FIXED_DRIVE"
!    "FOLDER_DESKTOP"
!    "FOLDER_PROGRAMS"
!    "FOLDER_STARTMENU"
!    "FOLDER_STARTUP"
!    "FREEENVSPACE"
!    "FULLWINDOWMODE"
!    "FULL"
!    "FONT_TITLE"
!    "GREATER_THAN"
!    "GREEN"
!    "HKEY_CLASSES_ROOT"
!    "HKEY_CURRENT_USER"
!    "HKEY_LOCAL_MACHINE"
!    "HKEY_USERS"
!    "HOURGLASS"
!    "INCLUDE_SUBDIR"
!    "INDVFILESTATUS"
!    "INFORMATION"
!    "IS_WINDOWSNT"
!    "IS_WINDOWS95"
!    "IS_WINDOWS"
!    "IS_WIN32S"
!    "ISTYPE"
!    "LANGUAGE_DRV"
!    "LANGUAGE"
!    "LESS_THAN"
!    "LIST_NULL"
!    "LISTFIRST"
!    "LISTNEXT"
!    "LOCKEDFILE"
!    "LOGGING"
!    "LOWER_LEFT"
!    "LOWER_RIGHT"
!    "MAGENTA"
!    "MOUSE_DRV"
!    "MOUSE"
!    "NETWORK_DRV"
!    "NETWORK"
!    "NEXT"
!    "NONEXCLUSIVE"
!    "NORMALMODE"
!    "NOSET"
!    "NOTEXISTS"
!    "NOWAIT"
!    "NO"
!    "OFF"
!    "ONLYDIR"
!    "ON"
!    "OSMAJOR"
!    "OSMINOR"
!    "OS"
!    "OTHER_FAILURE"
!    "PARALLEL"
!    "PARTIAL"
!    "PATH_EXISTS"
!    "PATH"
!    "RED"
!    "REGDB_APPPATH_DEFAULT"
!    "REGDB_APPPATH"
!    "REGDB_BINARY"
!    "REGDB_ERR_CONNECTIONEXISTS"
!    "REGDB_ERR_CORRUPTEDREGSITRY"
!    "REGDB_ERR_INITIALIZATION"
!    "REGDB_ERR_INVALIDHANDLE"
!    "REGDB_ERR_INVALIDNAME"
!    "REGDB_NUMBER"
!    "REGDB_STRING_EXPAND"
!    "REGDB_STRING_MULTI"
!    "REGDB_STRING"
!    "REGDB_UNINSTALL_NAME"
!    "REMOTE_DRIVE"
!    "REMOVALE_DRIVE"
!    "REPLACE_ITEM"
!    "REPLACE"
!    "RESET"
!    "RESTART"
!    "ROOT"
!    "SELFREGISTER"
!    "SERIAL"
!    "SET"
!    "SEVERE"
!    "SHAREDFILE"
!    "SHARE"
!    "SILENTMODE"
!    "SRCTARGETDIR"
!    "STATUSBAR"
!    "STATUSDLG"
!    "STATUSOLD"
!    "STATUS"
!    "STYLE_NORMAL"
!    "SW_MAXIMIZE"
!    "SW_MINIMIZE"
!    "SW_RESTORE"
!    "SW_SHOW"
!    "SYS_BOOTMACHINE"
!    "TIME"
!    "TRUE"
!    "TYPICAL"
!    "UPPER_LEFT"
!    "UPPER_RIGHT"
!    "VALID_PATH"
!    "VERSION"
!    "VIDEO"
!    "VOLUMELABEL"
!    "YELLOW"
!    "YES"
!    "WAIT"
!    "WARNING"
!    "WINMAJOR"
!    "WINMINOR"
!    "WIN32SINSTALLED"
!    "WIN32SMAJOR"
!    "WIN32SMINOR")
!   "Function argument constants used in InstallShield 3 and 5.")
  
  (defvar rul-generic-mode-syntax-table nil
    "Syntax table to use in rul-generic-mode buffers.")
--- 742,1326 ----
    ;; 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
!   (eval-when-compile
!     (list
       (generic-make-keywords-list
!       '("FILEFLAGSMASK"
!       "FILEFLAGS"
!       "FILEOS"
!       "FILESUBTYPE"
!       "FILETYPE"
!       "FILEVERSION"
!       "PRODUCTVERSION")
!       'font-lock-type-face)
       (generic-make-keywords-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+\\)?"
!        (1 font-lock-constant-face)
!        (2 font-lock-variable-name-face nil t))))
!     '("\\.[rR][cC]$")
!     nil
!     "Generic mode for MS-Windows Resource files."))
  
  ;; InstallShield RUL files
  ;; Contributed by  address@hidden
  ;; Bugfixes by "Rolf Sandau" <address@hidden>
  (when (memq 'rul-generic-mode generic-extras-enable-list)
  
+ (eval-when-compile
+ 
  ;;; build the regexp strings using regexp-opt
! (defconst installshield-statement-keyword-list
!   '("abort"
!     "begin"
!     "call"
!     "case"
!     "declare"
!     "default"
!     "downto"
!     "elseif"
!     "else"
!     "endfor"
!     "endif"
!     "endswitch"
!     "endwhile"
!     "end"
!     "exit"
!     "external"
!     "for"
!     "function"
!     ;; "goto" -- handled elsewhere
!     "if"
!     "program"
!     "prototype"
!     "repeat"
!     "return"
!     "step"
!     "switch"
!     "then"
!     "to"
!     "typedef"
!     "until"
!     "void"
!     "while")
    "Statement keywords used in InstallShield 3 and 5.")
  
! (defconst installshield-system-functions-list
!   '("AddFolderIcon"
!     "AddProfString"
!     "AddressString"
!     "AppCommand"
!     "AskDestPath"
!     "AskOptions"
!     "AskPath"
!     "AskText"
!     "AskYesNo"
!     "BatchDeleteEx"
!     "BatchFileLoad"
!     "BatchFileSave"
!     "BatchFind"
!     "BatchGetFileName"
!     "BatchMoveEx"
!     "BatchSetFileName"
!     "ChangeDirectory"
!     "CloseFile"
!     "CmdGetHwndDlg"
!     "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
!     "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
!     "ComponentTotalSize"
!     "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
!     "DeinstallStart"
!     "Delay"
!     "DeleteDir"
!     "DeleteFile"
!     "DialogSetInfo"
!     "Disable"
!     "DoInstall"
!     "Do"
!     "Enable"
!     "EnterDisk"
!     "ExistsDir"
!     "ExistsDisk"
!     "ExitProgMan"
!     "EzBatchAddPath"
!     "EzBatchAddString"
!     "EzBatchReplace"
!     "EzConfigAddDriver"
!     "EzConfigAddString"
!     "EzConfigGetValue"
!     "EzConfigSetValue"
!     "EzDefineDialog"
!     "FileCompare"
!     "FileDeleteLine"
!     "FileGrep"
!     "FileInsertLine"
!     "FileSetBeginDefine"              ; IS3 only
!     "FileSetEndDefine"                        ; IS3 only
!     "FileSetPerformEz"                        ; IS3 only
!     "FileSetPerform"                  ; IS3 only
!     "FileSetReset"                    ; IS3 only
!     "FileSetRoot"                     ; IS3 only
!     "FindAllDirs"
!     "FindAllFiles"
!     "FindFile"
!     "FindWindow"
!     "GetDiskSpace"
!     "GetDisk"
!     "GetEnvVar"
!     "GetExtents"
!     "GetFileInfo"
!     "GetLine"
!     "GetProfInt"
!     "GetProfString"
!     "GetSystemInfo"
!     "GetValidDrivesList"
!     "GetVersion"
!     "GetWindowHandle"
!     "InstallationInfo"
!     "Is"
!     "LaunchApp"
!     "LaunchAppAndWait"
!     "ListAddItem"
!     "ListAddString"
!     "ListCount"
!     "ListCreate"
!     "ListDestroy"
!     "ListFindItem"
!     "ListFindString"
!     "ListGetFirstItem"
!     "ListGetFirstString"
!     "ListGetNextItem"
!     "ListGetNextString"
!     "ListReadFromFile"
!     "ListSetCurrentItem"
!     "ListSetNextItem"
!     "ListSetNextString"
!     "ListSetIndex"
!     "ListWriteToFile"
!     "LongPathToQuote"
!     "LongPathToShortPath"
!     "MessageBox"
!     "NumToStr"
!     "OpenFileMode"
!     "OpenFile"
!     "ParsePath"
!     "PathAdd"
!     "PathDelete"
!     "PathFind"
!     "PathGet"
!     "PathMove"
!     "PathSet"
!     "Path"
!     "PlaceBitmap"
!     "PlaceWindow"
!     "PlayMMedia"                      ; IS5 only
!     "ProgDefGroupType"
!     "RegDBCreateKeyEx"
!     "RegDBDeleteValue"
!     "RegDBGetItem"
!     "RegDBKeyExist"
!     "RegDBSetItem"
!     "RegDBGetKeyValueEx"
!     "RegDBSetKeyValueEx"
!     "RegDBSetDefaultRoot"
!     "RenameFile"
!     "ReplaceFolderIcon"
!     "ReplaceProfString"
!     "SdAskDestPath"
!     "SdAskOptions"
!     "SdAskOptionsList"
!     "SdBitmap"
!     "SdCloseDlg"
!     "SdComponentAdvCheckSpace"
!     "SdComponentAdvInit"
!     "SdComponentAdvUpdateSpace"
!     "SdComponentDialog"
!     "SdComponentDialog2"
!     "SdComponentDialogAdv"
!     "SdComponentDialogEx"
!     "SdComponentDlgCheckSpace"
!     "SdComponentMult"
!     "SdConfirmNewDir"
!     "SdConfirmRegistration"
!     "SdDiskSpace"
!     "SdDisplayTopics"
!     "SdDoStdButton"
!     "SdEnablement"
!     "SdError"
!     "SdFinish"
!     "SdFinishInit32"
!     "SdFinishReboot"
!     "SdGeneralInit"
!     "SdGetItemName"
!     "SdGetTextExtent"
!     "SdGetUserCompanyInfo"
!     "SdInit"
!     "SdIsShellExplorer"
!     "SdIsStdButton"
!     "SdLicense"
!     "SdMakeName"
!     "SdOptionInit"
!     "SdOptionSetState"
!     "SdOptionsButtons"
!     "SdOptionsButtonsInit"
!     "SdPlugInProductName"
!     "SdProductName"
!     "SdRegEnableButton"
!     "SdRegExEnableButton"
!     "SdRegisterUser"
!     "SdRegisterUserEx"
!     "SdRemoveEndSpace"
!     "SdSelectFolder"
!     "SdSetSequentialItems"
!     "SdSetStatic"
!     "SdSetupTypeEx"                   ; IS5 only
!     "SdSetupType"
!     "SdShowAnyDialog"
!     "SdShowDlgEdit1"
!     "SdShowDlgEdit2"
!     "SdShowDlgEdit3"
!     "SdShowFileMods"
!     "SdShowInfoList"
!     "SdShowMsg"
!     "SdStartCopy"
!     "SdUnInit"
!     "SdUpdateComponentSelection"
!     "SdWelcome"
!     "SendMessage"
!     "SetColor"
!     "SetFont"
!     "SetDialogTitle"
!     "SetDisplayEffect"                        ; IS5 only
!     "SetFileInfo"
!     "SetForegroundWindow"
!     "SetStatusWindow"
!     "SetTitle"
!     "SetupType"
!     "ShowProgramFolder"
!     "Split"                           ; IS3 only
!     "SprintfBox"
!     "Sprintf"
!     "StatusUpdate"
!     "StrCompare"
!     "StrFind"
!     "StrGetTokens"
!     "StrLength"
!     "StrRemoveLastSlash"
!     "StrToLower"
!     "StrToNum"
!     "StrToUpper"
!     "StrSub"
!     "VarRestore"
!     "VarSave"
!     "VerCompare"
!     "VerGetFileVersion"
!     "WaitOnDialog"
!     "Welcome"
!     "WriteLine"
!     "WriteProfString"
!     "XCopyFile")
    "System functions defined in InstallShield 3 and 5.")
  
! (defconst installshield-system-variables-list
!   '("BATCH_INSTALL"
!     "CMDLINE"
!     "COMMONFILES"
!     "CORECOMPONENTHANDLING"
!     "DIALOGCACHE"
!     "ERRORFILENAME"
!     "FOLDER_DESKTOP"
!     "FOLDER_PROGRAMS"
!     "FOLDER_STARTMENU"
!     "FOLDER_STARTUP"
!     "INFOFILENAME"
!     "ISRES"
!     "ISUSER"
!     "ISVERSION"
!     "MEDIA"
!     "MODE"
!     "PROGRAMFILES"
!     "SELECTED_LANGUAGE"
!     "SRCDIR"
!     "SRCDISK"
!     "SUPPORTDIR"
!     "TARGETDIR"
!     "TARGETDISK"
!     "UNINST"
!     "WINDIR"
!     "WINDISK"
!     "WINMAJOR"
!     "WINSYSDIR"
!     "WINSYSDISK")
    "System variables used in InstallShield 3 and 5.")
  
! (defconst installshield-types-list
!   '("BOOL"
!     "BYREF"
!     "CHAR"
!     "HIWORD"
!     "HWND"
!     "INT"
!     "LIST"
!     "LONG"
!     "LOWORD"
!     "LPSTR"
!     "NUMBER"
!     "NUMBERLIST"
!     "POINTER"
!     "QUAD"
!     "RGB"
!     "SHORT"
!     "STRINGLIST"
!     "STRING")
    "Type keywords used in InstallShield 3 and 5.")
  
  ;;; some might want to skip highlighting these to improve performance
! (defconst installshield-funarg-constants-list
!   '("AFTER"
!     "APPEND"
!     "ALLCONTENTS"
!     "BACKBUTTON"
!     "BACKGROUNDCAPTION"
!     "BACKGROUND"
!     "BACK"
!     "BASEMEMORY"
!     "BEFORE"
!     "BIOS"
!     "BITMAPICON"
!     "BK_BLUE"
!     "BK_GREEN"
!     "BK_RED"
!     "BLUE"
!     "BOOTUPDRIVE"
!     "CANCEL"
!     "CDROM_DRIVE"
!     "CDROM"
!     "CHECKBOX95"
!     "CHECKBOX"
!     "CHECKLINE"
!     "CHECKMARK"
!     "COLORS"
!     "COMMANDEX"
!     "COMMAND"
!     "COMP_NORMAL"
!     "COMP_UPDATE_DATE"
!     "COMP_UPDATE_SAME"
!     "COMP_UPDATE_VERSION"
!     "COMPACT"
!     "CONTINUE"
!     "CPU"
!     "CUSTOM"
!     "DATE"
!     "DEFWINDOWMODE"
!     "DIR_WRITEABLE"
!     "DIRECTORY"
!     "DISABLE"
!     "DISK_TOTALSPACE"
!     "DISK"
!     "DLG_OPTIONS"
!     "DLG_PATH"
!     "DLG_TEXT"
!     "DLG_ASK_YESNO"
!     "DLG_ENTER_DISK"
!     "DLG_ERR"
!     "DLG_INFO_ALTIMAGE"
!     "DLG_INFO_CHECKSELECTION"
!     "DLG_INFO_KUNITS"
!     "DLG_INFO_USEDECIMAL"
!     "DLG_MSG_INFORMATION"
!     "DLG_MSG_SEVERE"
!     "DLG_MSG_WARNING"
!     "DLG_STATUS"
!     "DLG_WARNING"
!     "DLG_USER_CAPTION"
!     "DRIVE"
!     "ENABLE"
!     "END_OF_FILE"
!     "END_OF_LIST"
!     "ENVSPACE"
!     "EQUALS"
!     "EXCLUDE_SUBDIR"
!     "EXCLUSIVE"
!     "EXISTS"
!     "EXIT"
!     "EXTENDED_MEMORY"
!     "EXTENSION_ONLY"
!     "FAILIFEXISTS"
!     "FALSE"
!     "FEEDBACK_FULL"
!     "FILE_ATTR_ARCHIVED"
!     "FILE_ATTR_DIRECTORY"
!     "FILE_ATTR_HIDDEN"
!     "FILE_ATTR_NORMAL"
!     "FILE_ATTR_READONLY"
!     "FILE_ATTR_SYSTEM"
!     "FILE_ATTRIBUTE"
!     "FILE_DATE"
!     "FILE_LINE_LENGTH"
!     "FILE_MODE_APPEND"
!     "FILE_MODE_BINARYREADONLY"
!     "FILE_MODE_BINARY"
!     "FILE_MODE_NORMAL"
!     "FILE_NO_VERSION"
!     "FILE_NOT_FOUND"
!     "FILE_SIZE"
!     "FILE_TIME"
!     "FILENAME_ONLY"
!     "FILENAME"
!     "FIXED_DRIVE"
!     "FOLDER_DESKTOP"
!     "FOLDER_PROGRAMS"
!     "FOLDER_STARTMENU"
!     "FOLDER_STARTUP"
!     "FREEENVSPACE"
!     "FULLWINDOWMODE"
!     "FULL"
!     "FONT_TITLE"
!     "GREATER_THAN"
!     "GREEN"
!     "HKEY_CLASSES_ROOT"
!     "HKEY_CURRENT_USER"
!     "HKEY_LOCAL_MACHINE"
!     "HKEY_USERS"
!     "HOURGLASS"
!     "INCLUDE_SUBDIR"
!     "INDVFILESTATUS"
!     "INFORMATION"
!     "IS_WINDOWSNT"
!     "IS_WINDOWS95"
!     "IS_WINDOWS"
!     "IS_WIN32S"
!     "ISTYPE"
!     "LANGUAGE_DRV"
!     "LANGUAGE"
!     "LESS_THAN"
!     "LIST_NULL"
!     "LISTFIRST"
!     "LISTNEXT"
!     "LOCKEDFILE"
!     "LOGGING"
!     "LOWER_LEFT"
!     "LOWER_RIGHT"
!     "MAGENTA"
!     "MOUSE_DRV"
!     "MOUSE"
!     "NETWORK_DRV"
!     "NETWORK"
!     "NEXT"
!     "NONEXCLUSIVE"
!     "NORMALMODE"
!     "NOSET"
!     "NOTEXISTS"
!     "NOWAIT"
!     "NO"
!     "OFF"
!     "ONLYDIR"
!     "ON"
!     "OSMAJOR"
!     "OSMINOR"
!     "OS"
!     "OTHER_FAILURE"
!     "PARALLEL"
!     "PARTIAL"
!     "PATH_EXISTS"
!     "PATH"
!     "RED"
!     "REGDB_APPPATH_DEFAULT"
!     "REGDB_APPPATH"
!     "REGDB_BINARY"
!     "REGDB_ERR_CONNECTIONEXISTS"
!     "REGDB_ERR_CORRUPTEDREGSITRY"
!     "REGDB_ERR_INITIALIZATION"
!     "REGDB_ERR_INVALIDHANDLE"
!     "REGDB_ERR_INVALIDNAME"
!     "REGDB_NUMBER"
!     "REGDB_STRING_EXPAND"
!     "REGDB_STRING_MULTI"
!     "REGDB_STRING"
!     "REGDB_UNINSTALL_NAME"
!     "REMOTE_DRIVE"
!     "REMOVALE_DRIVE"
!     "REPLACE_ITEM"
!     "REPLACE"
!     "RESET"
!     "RESTART"
!     "ROOT"
!     "SELFREGISTER"
!     "SERIAL"
!     "SET"
!     "SEVERE"
!     "SHAREDFILE"
!     "SHARE"
!     "SILENTMODE"
!     "SRCTARGETDIR"
!     "STATUSBAR"
!     "STATUSDLG"
!     "STATUSOLD"
!     "STATUS"
!     "STYLE_NORMAL"
!     "SW_MAXIMIZE"
!     "SW_MINIMIZE"
!     "SW_RESTORE"
!     "SW_SHOW"
!     "SYS_BOOTMACHINE"
!     "TIME"
!     "TRUE"
!     "TYPICAL"
!     "UPPER_LEFT"
!     "UPPER_RIGHT"
!     "VALID_PATH"
!     "VERSION"
!     "VIDEO"
!     "VOLUMELABEL"
!     "YELLOW"
!     "YES"
!     "WAIT"
!     "WARNING"
!     "WINMAJOR"
!     "WINMINOR"
!     "WIN32SINSTALLED"
!     "WIN32SMAJOR"
!     "WIN32SMINOR")
!   "Function argument constants used in InstallShield 3 and 5."))
  
  (defvar rul-generic-mode-syntax-table nil
    "Syntax table to use in rul-generic-mode buffers.")
***************
*** 1343,1360 ****
  (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
--- 1328,1345 ----
  (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
***************
*** 1364,1409 ****
  ;;;   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
--- 1349,1395 ----
  ;;;   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
!   '("//" ("/*" . "*/" ))
!   (eval-when-compile installshield-statement-keyword-list)
!   (eval-when-compile
!     (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?
!   '("\\.[rR][uU][lL]$")
!   '(generic-rul-mode-setup-function)
    "Generic mode for InstallShield RUL files.")
  
  (define-skeleton rul-if
***************
*** 1432,1455 ****
  
  ;; Additions by address@hidden (Alfred Correira)
  (define-generic-mode mailrc-generic-mode
!   (list ?#)
!   (list
!    "alias"
!    "else"
!    "endif"
!    "group"
!    "if"
!    "ignore"
!    "set"
!    "source"
!    "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#]*\\)\\(#.*\\)?$"
       (2 font-lock-constant-face) (3 font-lock-variable-name-face))
      ("^\\s-*\\(source\\)\\s-+\\([^\n\r#]*\\)\\(#.*\\)?$"
       (2 font-lock-variable-name-face)))
!   (list "\\.mailrc\\'")
    nil
    "Mode for mailrc files.")
  
--- 1418,1440 ----
  
  ;; Additions by address@hidden (Alfred Correira)
  (define-generic-mode mailrc-generic-mode
!   '(?#)
!   '("alias"
!     "else"
!     "endif"
!     "group"
!     "if"
!     "ignore"
!     "set"
!     "source"
!     "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#]*\\)\\(#.*\\)?$"
       (2 font-lock-constant-face) (3 font-lock-variable-name-face))
      ("^\\s-*\\(source\\)\\s-+\\([^\n\r#]*\\)\\(#.*\\)?$"
       (2 font-lock-variable-name-face)))
!   '("\\.mailrc\\'")
    nil
    "Mode for mailrc files.")
  
***************
*** 1457,1473 ****
  (when (memq 'inetd-conf-generic-mode generic-extras-enable-list)
  
  (define-generic-mode inetd-conf-generic-mode
!   (list ?#)
!   (list
!    "stream"
!    "dgram"
!    "tcp"
!    "udp"
!    "wait"
!    "nowait"
!    "internal")
!   '(("^\\([-A-Za-z0-9_]+\\)"
!      1 'font-lock-type-face))
    '("/etc/inetd.conf\\'")
    (list
     (function
--- 1442,1456 ----
  (when (memq 'inetd-conf-generic-mode generic-extras-enable-list)
  
  (define-generic-mode inetd-conf-generic-mode
!   '(?#)
!   '("stream"
!     "dgram"
!     "tcp"
!     "udp"
!     "wait"
!     "nowait"
!     "internal")
!   '(("^\\([-A-Za-z0-9_]+\\)" 1 font-lock-type-face))
    '("/etc/inetd.conf\\'")
    (list
     (function
***************
*** 1479,1492 ****
  (when (memq 'etc-services-generic-mode generic-extras-enable-list)
  
  (define-generic-mode etc-services-generic-mode
!   (list ?#)
!   (list
!    "tcp"
!    "udp"
!    "ddp")
    '(("^\\([-A-Za-z0-9_]+\\)\\s-+\\([0-9]+\\)/"
!      (1 'font-lock-type-face)
!      (2 'font-lock-variable-name-face)))
    '("/etc/services\\'")
    (list
     (function
--- 1462,1474 ----
  (when (memq 'etc-services-generic-mode generic-extras-enable-list)
  
  (define-generic-mode etc-services-generic-mode
!   '(?#)
!   '("tcp"
!     "udp"
!     "ddp")
    '(("^\\([-A-Za-z0-9_]+\\)\\s-+\\([0-9]+\\)/"
!      (1 font-lock-type-face)
!      (2 font-lock-variable-name-face)))
    '("/etc/services\\'")
    (list
     (function
***************
*** 1499,1533 ****
  
  (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)))
    '("/etc/passwd\\'" "/etc/group\\'")
    (list
     (function
--- 1481,1516 ----
  
  (define-generic-mode etc-passwd-generic-mode
    nil              ;; No comment characters
!   '("root")        ;; Only one keyword
!   (eval-when-compile
!     (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))))
    '("/etc/passwd\\'" "/etc/group\\'")
    (list
     (function
***************
*** 1539,1584 ****
  (when (memq 'etc-fstab-generic-mode generic-extras-enable-list)
  
  (define-generic-mode etc-fstab-generic-mode
!   (list ?#)
!   (list
!    "adfs"
!    "affs"
!    "autofs"
!    "coda"
!    "coherent"
!    "cramfs"
!    "devpts"
!    "efs"
!    "ext2"
!    "ext3"
!    "hfs"
!    "hpfs"
!    "iso9660"
!    "jfs"
!    "minix"
!    "msdos"
!    "ncpfs"
!    "nfs"
!    "ntfs"
!    "proc"
!    "qnx4"
!    "reiserfs"
!    "romfs"
!    "smbfs"
!    "sysv"
!    "tmpfs"
!    "udf"
!    "ufs"
!    "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)))
    '("/etc/[v]*fstab\\'")
    (list
     (function
--- 1522,1566 ----
  (when (memq 'etc-fstab-generic-mode generic-extras-enable-list)
  
  (define-generic-mode etc-fstab-generic-mode
!   '(?#)
!   '("adfs"
!     "affs"
!     "autofs"
!     "coda"
!     "coherent"
!     "cramfs"
!     "devpts"
!     "efs"
!     "ext2"
!     "ext3"
!     "hfs"
!     "hpfs"
!     "iso9660"
!     "jfs"
!     "minix"
!     "msdos"
!     "ncpfs"
!     "nfs"
!     "ntfs"
!     "proc"
!     "qnx4"
!     "reiserfs"
!     "romfs"
!     "smbfs"
!     "sysv"
!     "tmpfs"
!     "udf"
!     "ufs"
!     "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)))
    '("/etc/[v]*fstab\\'")
    (list
     (function
***************
*** 1588,1603 ****
  
  ;; From Jacques Duthen <address@hidden>
  (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))))
  
  (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)))
  
  (defface show-tabs-tab-face
    '((((class grayscale) (background light)) (:foreground "LightGray" :weight 
bold))
--- 1570,1585 ----
  
  ;; From Jacques Duthen <address@hidden>
  (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))))
  
  (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)))
  
  (defface show-tabs-tab-face
    '((((class grayscale) (background light)) (:foreground "LightGray" :weight 
bold))
***************
*** 1618,1628 ****
    :group 'show-tabs)
  
  (define-generic-mode show-tabs-generic-mode
!   () ;; no comment char
!   () ;; no keywords
    show-tabs-generic-mode-font-lock-defaults-1
!   () ;; no auto-mode-alist
!   ;; (list 'show-tabs-generic-mode-hook-fun)
    nil
    "Generic mode to show tabs and trailing spaces")
  
--- 1600,1610 ----
    :group 'show-tabs)
  
  (define-generic-mode show-tabs-generic-mode
!   nil ;; no comment char
!   nil ;; no keywords
    show-tabs-generic-mode-font-lock-defaults-1
!   nil ;; no auto-mode-alist
!   ;; '(show-tabs-generic-mode-hook-fun)
    nil
    "Generic mode to show tabs and trailing spaces")
  
***************
*** 1632,1662 ****
  
  (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
!    (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 "/etc/named.boot\\'")
    ;; List of set up functions to call
    nil)
  
  (define-generic-mode named-database-generic-mode
    ;; List of comment characters
!   (list ?\;)
    ;; List of keywords
!   (list "IN" "NS" "CNAME" "SOA" "PTR" "MX" "A")
    ;; 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
--- 1614,1642 ----
  
  (define-generic-mode named-boot-generic-mode
    ;; List of comment characters
!   '(?\;)
    ;; List of keywords
!   '("cache" "primary" "secondary" "forwarders" "limit" "options"
!     "directory" "check-names")
    ;; List of additional font-lock-expressions
!   '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face)
!     ("^directory\\s-+\\(.*\\)"              1 font-lock-variable-name-face)
!     ("^\\(primary\\|cache\\)\\s-+\\([.A-Za-z]+\\)\\s-+\\(.*\\)"
!      (2 font-lock-variable-name-face)
!      (3 font-lock-constant-face)))
    ;; List of additional automode-alist expressions
!   '("/etc/named.boot\\'")
    ;; List of set up functions to call
    nil)
  
  (define-generic-mode named-database-generic-mode
    ;; List of comment characters
!   '(?\;)
    ;; List of keywords
!   '("IN" "NS" "CNAME" "SOA" "PTR" "MX" "A")
    ;; List of additional font-lock-expressions
!   '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face)
!     ("^\\([.A-Za-z0-9]+\\)"                 1 font-lock-variable-name-face))
    ;; List of additional automode-alist expressions
    nil
    ;; List of set up functions to call
***************
*** 1672,1684 ****
  
  (define-generic-mode resolve-conf-generic-mode
    ;; List of comment characters
!   (list ?#)
    ;; List of keywords
!   (list "nameserver" "domain" "search" "sortlist" "options")
    ;; List of additional font-lock-expressions
    nil
    ;; List of additional automode-alist expressions
!   (list "/etc/resolv[e]?.conf\\'")
    ;; List of set up functions to call
    nil)
  
--- 1652,1664 ----
  
  (define-generic-mode resolve-conf-generic-mode
    ;; List of comment characters
!   '(?#)
    ;; List of keywords
!   '("nameserver" "domain" "search" "sortlist" "options")
    ;; List of additional font-lock-expressions
    nil
    ;; List of additional automode-alist expressions
!   '("/etc/resolv[e]?.conf\\'")
    ;; List of set up functions to call
    nil)
  
***************
*** 1688,1817 ****
  
  (define-generic-mode spice-generic-mode
    nil
!   (list
!    "and"
!    "cccs"
!    "ccvs"
!    "delay"
!    "nand"
!    "nor"
!    "npwl"
!    "or"
!    "par"
!    "ppwl"
!    "pwl"
!    "vccap"
!    "vccs"
!    "vcr"
!    "vcvs")
!   '(
!     ("^\\s-*\\([*].*\\)"                1 'font-lock-comment-face)
!     (" \\(\\$ .*\\)$"                   1 'font-lock-comment-face)
!     ("^\\(\\$ .*\\)$"                   1 'font-lock-comment-face)
!     ("\\([*].*\\)"                      1 'font-lock-comment-face)
!     ("^\\([+]\\)"                       1 'font-lock-string-face)
!     ("^\\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))
!   (list "\\.[sS][pP]\\'"
!       "\\.[sS][pP][iI]\\'"
!       "\\.[sS][pP][iI][cC][eE]\\'"
!       "\\.[iI][nN][cC]\\'")
    (list
     'generic-bracket-support
     ;; Make keywords case-insensitive
     (function
      (lambda()
!       (setq font-lock-defaults (list 'generic-font-lock-defaults nil t)))))
    "Generic mode for SPICE circuit netlist files.")
  
  (define-generic-mode ibis-generic-mode
!   (list ?|)
    nil
!   '(
!     ("[[]\\([^]]*\\)[]]"          1 'font-lock-keyword-face)
!     ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 'font-lock-variable-name-face))
!   (list "\\.[iI][bB][sS]\\'")
!   (list 'generic-bracket-support)
    "Generic mode for IBIS circuit netlist files.")
  
  (define-generic-mode astap-generic-mode
    nil
!   (list
!    "analyze"
!    "description"
!    "elements"
!    "execution"
!    "features"
!    "functions"
!    "ground"
!    "model"
!    "outputs"
!    "print"
!    "run"
!    "controls"
!    "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))
!   (list "\\.[aA][pP]\\'"
!       "\\.[aA][sS][xX]\\'"
!       "\\.[aA][sS][tT][aA][pP]\\'"
!       "\\.[pP][sS][pP]\\'"
!       "\\.[dD][eE][cC][kK]\\'"
!       "\\.[gG][oO][dD][aA][tT][aA]")
    (list
     'generic-bracket-support
     ;; Make keywords case-insensitive
     (function
      (lambda()
!       (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
!   (list ?#)
    ;; List of keywords
!   (list
!    "above"
!    "alias"
!    "below"
!    "define"
!    "depfile"
!    "else"
!    "elseif"
!    "endif"
!    "if"
!    "include"
!    "insmod_opt"
!    "install"
!    "keep"
!    "options"
!    "path"
!    "generic_stringfile"
!    "pcimapfile"
!    "isapnpmapfile"
!    "usbmapfile"
!    "parportmapfile"
!    "ieee1394mapfile"
!    "pnpbiosmapfile"
!    "probe"
!    "probeall"
!    "prune"
!    "post-install"
!    "post-remove"
!    "pre-install"
!    "pre-remove"
!    "remove"
!    "persistdir")
    ;; List of additional font-lock-expressions
    nil
    ;; List of additional automode-alist expressions
!   (list "/etc/modules.conf" "/etc/conf.modules")
    ;; List of set up functions to call
    nil)
  
--- 1668,1792 ----
  
  (define-generic-mode spice-generic-mode
    nil
!   '("and"
!     "cccs"
!     "ccvs"
!     "delay"
!     "nand"
!     "nor"
!     "npwl"
!     "or"
!     "par"
!     "ppwl"
!     "pwl"
!     "vccap"
!     "vccs"
!     "vcr"
!     "vcvs")
!   '(("^\\s-*\\([*].*\\)"                1 font-lock-comment-face)
!     (" \\(\\$ .*\\)$"                   1 font-lock-comment-face)
!     ("^\\(\\$ .*\\)$"                   1 font-lock-comment-face)
!     ("\\([*].*\\)"                      1 font-lock-comment-face)
!     ("^\\([+]\\)"                       1 font-lock-string-face)
!     ("^\\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))
!   '("\\.[sS][pP]\\'"
!     "\\.[sS][pP][iI]\\'"
!     "\\.[sS][pP][iI][cC][eE]\\'"
!     "\\.[iI][nN][cC]\\'")
    (list
     'generic-bracket-support
     ;; Make keywords case-insensitive
     (function
      (lambda()
!       (setq font-lock-defaults '(generic-font-lock-defaults nil t)))))
    "Generic mode for SPICE circuit netlist files.")
  
  (define-generic-mode ibis-generic-mode
!   '(?|)
    nil
!   '(("[[]\\([^]]*\\)[]]"          1 font-lock-keyword-face)
!     ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 font-lock-variable-name-face))
!   '("\\.[iI][bB][sS]\\'")
!   '(generic-bracket-support)
    "Generic mode for IBIS circuit netlist files.")
  
  (define-generic-mode astap-generic-mode
    nil
!   '("analyze"
!     "description"
!     "elements"
!     "execution"
!     "features"
!     "functions"
!     "ground"
!     "model"
!     "outputs"
!     "print"
!     "run"
!     "controls"
!     "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))
!   '("\\.[aA][pP]\\'"
!     "\\.[aA][sS][xX]\\'"
!     "\\.[aA][sS][tT][aA][pP]\\'"
!     "\\.[pP][sS][pP]\\'"
!     "\\.[dD][eE][cC][kK]\\'"
!     "\\.[gG][oO][dD][aA][tT][aA]")
    (list
     'generic-bracket-support
     ;; Make keywords case-insensitive
     (function
      (lambda()
!       (setq font-lock-defaults '(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
!   '(?#)
    ;; List of keywords
!   '("above"
!     "alias"
!     "below"
!     "define"
!     "depfile"
!     "else"
!     "elseif"
!     "endif"
!     "if"
!     "include"
!     "insmod_opt"
!     "install"
!     "keep"
!     "options"
!     "path"
!     "generic_stringfile"
!     "pcimapfile"
!     "isapnpmapfile"
!     "usbmapfile"
!     "parportmapfile"
!     "ieee1394mapfile"
!     "pnpbiosmapfile"
!     "probe"
!     "probeall"
!     "prune"
!     "post-install"
!     "post-remove"
!     "pre-install"
!     "pre-remove"
!     "remove"
!     "persistdir")
    ;; List of additional font-lock-expressions
    nil
    ;; List of additional automode-alist expressions
!   '("/etc/modules.conf" "/etc/conf.modules")
    ;; List of set up functions to call
    nil)
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]