-(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.")
-
-(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.")
-)
+(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.")
+
+(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
+ '("//" ("/*" . "*/" ))
+ (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.")
+