+;; If you add a generic mode to this file, put it in one of these four
+;; lists as well.
+
+(defconst generic-default-modes
+ '(apache-conf-generic-mode
+ apache-log-generic-mode
+ hosts-generic-mode
+ java-manifest-generic-mode
+ java-properties-generic-mode
+ javascript-generic-mode
+ show-tabs-generic-mode
+ vrml-generic-mode)
+ "List of generic modes that are defined by default.")
+
+(defconst generic-mswindows-modes
+ '(bat-generic-mode
+ inf-generic-mode
+ ini-generic-mode
+ rc-generic-mode
+ reg-generic-mode
+ rul-generic-mode)
+ "List of generic modes that are defined by default on MS-Windows.")
+
+(defconst generic-unix-modes
+ '(alias-generic-mode
+ etc-fstab-generic-mode
+ etc-modules-conf-generic-mode
+ etc-passwd-generic-mode
+ etc-services-generic-mode
+ fvwm-generic-mode
+ inetd-conf-generic-mode
+ mailagent-rules-generic-mode
+ mailrc-generic-mode
+ named-boot-generic-mode
+ named-database-generic-mode
+ prototype-generic-mode
+ resolve-conf-generic-mode
+ samba-generic-mode
+ x-resource-generic-mode)
+ "List of generic modes that are defined by default on Unix.")
+
+(defconst generic-other-modes
+ '(astap-generic-mode
+ ibis-generic-mode
+ pkginfo-generic-mode
+ spice-generic-mode)
+ "List of generic mode that are not defined by default.")
+
+(defcustom generic-define-mswindows-modes
+ (memq system-type '(windows-nt ms-dos))
+ "*Non-nil means the modes in `generic-mswindows-modes' will be defined.
+This is a list of MS-Windows specific generic modes. This variable
+only effects the default value of `generic-extras-enable-list'."
+ :group 'generic-x
+ :type 'boolean
+ :version "22.1")
+(make-obsolete-variable 'generic-define-mswindows-modes 'generic-extras-enable-list "22.1")
+
+(defcustom generic-define-unix-modes
+ (not (memq system-type '(windows-nt ms-dos)))
+ "*Non-nil means the modes in `generic-unix-modes' will be defined.
+This is a list of Unix specific generic modes. This variable only
+effects the default value of `generic-extras-enable-list'."
+ :group 'generic-x
+ :type 'boolean
+ :version "22.1")
+(make-obsolete-variable 'generic-define-unix-modes 'generic-extras-enable-list "22.1")
+
+(defcustom generic-extras-enable-list
+ (append generic-default-modes
+ (if generic-define-mswindows-modes generic-mswindows-modes)
+ (if generic-define-unix-modes generic-unix-modes)
+ nil)
+ "List of generic modes to define.
+Each entry in the list should be a symbol. If you set this variable
+directly, without using customize, you must reload generic-x to put
+your changes into effect."
+ :group 'generic-x
+ :type (let (list)
+ (dolist (mode
+ (sort (append generic-default-modes
+ generic-mswindows-modes
+ generic-unix-modes
+ generic-other-modes
+ nil)
+ (lambda (a b)
+ (string< (symbol-name b)
+ (symbol-name a))))
+ (cons 'set list))
+ (push `(const ,mode) list)))
+ :set (lambda (s v)
+ (set-default s v)
+ (unless load-in-progress
+ (load "generic-x")))
+ :version "22.1")
+