lisp/*.el: Lexical-binding cleanup.
[bpt/emacs.git] / lisp / generic-x.el
index cc8a34a..5205a68 100644 (file)
@@ -1,11 +1,11 @@
 ;;; generic-x.el --- A collection of generic modes
 
-;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2011  Free Software Foundation, Inc.
 
 ;; Author:  Peter Breton <pbreton@cs.umb.edu>
 ;; Created: Tue Oct 08 1996
 ;; Keywords: generic, comment, font-lock
+;; Package: emacs
 
 ;; This file is part of GNU Emacs.
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defcustom generic-use-find-file-hook t
-  "*If non-nil, add a hook to enter `default-generic-mode' automatically.
+  "If non-nil, add a hook to enter `default-generic-mode' automatically.
 This is done if the first few lines of a file in fundamental mode
 start with a hash comment character."
   :group 'generic-x
   :type  'boolean)
 
 (defcustom generic-lines-to-scan 3
-  "*Number of lines that `generic-mode-find-file-hook' looks at.
+  "Number of lines that `generic-mode-find-file-hook' looks at.
 Relevant when deciding whether to enter Default-Generic mode automatically.
 This variable should be set to a small positive number."
   :group 'generic-x
   :type  'integer)
 
 (defcustom generic-find-file-regexp "^#"
-  "*Regular expression used by `generic-mode-find-file-hook'.
+  "Regular expression used by `generic-mode-find-file-hook'.
 Files in fundamental mode whose first few lines contain a match
 for this regexp, should be put into Default-Generic mode instead.
 The number of lines tested for the matches is specified by the
@@ -143,7 +143,7 @@ value of the variable `generic-lines-to-scan', which see."
   :type  'regexp)
 
 (defcustom generic-ignore-files-regexp "[Tt][Aa][Gg][Ss]\\'"
-  "*Regular expression used by `generic-mode-find-file-hook'.
+  "Regular expression used by `generic-mode-find-file-hook'.
 Files whose names match this regular expression should not be put
 into Default-Generic mode, even if they have lines which match
 the regexp in `generic-find-file-regexp'.  If the value is nil,
@@ -171,7 +171,7 @@ This hook will be installed if the variable
 `generic-lines-to-scan' determines the number of lines to look at."
   (when (and (eq major-mode 'fundamental-mode)
             (or (null generic-ignore-files-regexp)
-                (not (string-match
+                (not (string-match-p
                       generic-ignore-files-regexp
                       (file-name-sans-versions buffer-file-name)))))
     (save-excursion
@@ -229,7 +229,8 @@ This hook will be installed if the variable
     prototype-generic-mode
     resolve-conf-generic-mode
     samba-generic-mode
-    x-resource-generic-mode)
+    x-resource-generic-mode
+    xmodmap-generic-mode)
   "List of generic modes that are defined by default on Unix.")
 
 (defconst generic-other-modes
@@ -237,11 +238,11 @@ This hook will be installed if the variable
     ibis-generic-mode
     pkginfo-generic-mode
     spice-generic-mode)
-  "List of generic mode that are not defined by default.")
+  "List of generic modes 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.
+  "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 affects the default value of `generic-extras-enable-list'."
   :group 'generic-x
@@ -251,7 +252,7 @@ only affects the default value of `generic-extras-enable-list'."
 
 (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.
+  "Non-nil means the modes in `generic-unix-modes' will be defined.
 This is a list of Unix specific generic modes.  This variable only
 affects the default value of `generic-extras-enable-list'."
   :group 'generic-x
@@ -316,7 +317,7 @@ your changes into effect."
      (2 font-lock-variable-name-face)))
   '("access_log\\'")
   nil
-  "Mode for Apache log files."))
+  "Generic mode for Apache log files."))
 
 ;;; Samba
 (when (memq 'samba-generic-mode generic-extras-enable-list)
@@ -370,13 +371,22 @@ your changes into effect."
   nil
   "Generic mode for X Resource configuration files."))
 
+(if (memq 'xmodmap-generic-mode generic-extras-enable-list)
+(define-generic-mode xmodmap-generic-mode
+  '(?!)
+  '("add" "clear" "keycode" "keysym" "remove" "pointer")
+  nil
+  '("[xX]modmap\\(rc\\)?\\'")
+  nil
+  "Simple mode for xmodmap files."))
+
 ;;; Hosts
 (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))
+  '(("\\([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\\)" 1 font-lock-constant-face))
   '("[hH][oO][sS][tT][sS]\\'")
   nil
   "Generic mode for HOSTS files."))
@@ -508,8 +518,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
      '("^[ \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 ]+\\([+-/][^\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))
@@ -534,7 +543,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
   (interactive)
   (let ((compilation-buffer-name-function
         (function
-         (lambda(ign)
+         (lambda (_ign)
            (concat "*" (buffer-file-name) "*")))))
     (compile
      (concat (w32-shell-name) " -c " (buffer-file-name)))))
@@ -546,9 +555,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
   (require 'comint)
   (let* ((file (buffer-file-name))
         (buf-name (concat "*" file "*")))
-    (save-excursion
-      (set-buffer
-       (get-buffer-create buf-name))
+    (with-current-buffer (get-buffer-create buf-name)
       (erase-buffer)
       (comint-mode)
       (comint-exec
@@ -600,7 +607,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
     (lambda ()
       (setq imenu-generic-expression
            '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1))))))
-  "Mode for Mailagent rules files."))
+  "Generic mode for Mailagent rules files."))
 
 ;; Solaris/Sys V prototype files
 (when (memq 'prototype-generic-mode generic-extras-enable-list)
@@ -623,7 +630,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
      (2 font-lock-variable-name-face)))
   '("prototype\\'")
   nil
-  "Mode for Sys V prototype files."))
+  "Generic mode for Sys V prototype files."))
 
 ;; Solaris/Sys V pkginfo files
 (when (memq 'pkginfo-generic-mode generic-extras-enable-list)
@@ -636,7 +643,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
      (2 font-lock-variable-name-face)))
   '("pkginfo\\'")
   nil
-  "Mode for Sys V pkginfo files."))
+  "Generic mode for Sys V pkginfo files."))
 
 ;; Javascript mode
 ;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU]
@@ -715,7 +722,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
       (setq imenu-generic-expression
            '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1)
              ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1))))))
-  "Mode for JavaScript files."))
+  "Generic mode for JavaScript files."))
 
 ;; VRML files
 (when (memq 'vrml-generic-mode generic-extras-enable-list)
@@ -789,7 +796,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
      (2 font-lock-constant-face)))
   '("[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'")
   nil
-  "Mode for Java Manifest files."))
+  "Generic mode for Java Manifest files."))
 
 ;; Java properties files
 (when (memq 'java-properties-generic-mode generic-extras-enable-list)
@@ -821,7 +828,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
     (lambda ()
       (setq imenu-generic-expression
            '((nil "^\\([^#! \t\n\r=:]+\\)" 1))))))
-  "Mode for Java properties files."))
+  "Generic mode for Java properties files."))
 
 ;; C shell alias definitions
 (when (memq 'alias-generic-mode generic-extras-enable-list)
@@ -839,7 +846,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
     (lambda ()
       (setq imenu-generic-expression
            '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2))))))
-  "Mode for C Shell alias files."))
+  "Generic mode for C Shell alias files."))
 
 ;;; Windows RC files
 ;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira)
@@ -1698,6 +1705,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
     "efs"
     "ext2"
     "ext3"
+    "ext4"
     "hfs"
     "hpfs"
     "iso9660"
@@ -1715,6 +1723,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
     "cifs"
     "usbdevfs"
     "sysv"
+    "sysfs"
     "tmpfs"
     "udf"
     "ufs"
@@ -1775,8 +1784,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
     (t (:weight bold)))
   "Font Lock mode face used to highlight TABs."
   :group 'generic-x)
-;; backward-compatibility alias
-(put 'show-tabs-tab-face 'face-alias 'show-tabs-tab)
+(define-obsolete-face-alias 'show-tabs-tab-face 'show-tabs-tab "22.1")
 
 (defface show-tabs-space
   '((((class grayscale) (background light)) (:background "DimGray"   :weight bold))
@@ -1786,8 +1794,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
     (t (:weight bold)))
   "Font Lock mode face used to highlight spaces."
   :group 'generic-x)
-;; backward-compatibility alias
-(put 'show-tabs-space-face 'face-alias 'show-tabs-space)
+(define-obsolete-face-alias 'show-tabs-space-face 'show-tabs-space "22.1")
 
 (define-generic-mode show-tabs-generic-mode
   nil ;; no comment char
@@ -1811,7 +1818,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
   '("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)
+  '(("\\([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)
@@ -1829,7 +1836,7 @@ like an INI file.  You can add this hook to `find-file-hook'."
   ;; 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)
+  '(("\\([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 auto-mode-alist expressions
   nil
@@ -1996,5 +2003,4 @@ like an INI file.  You can add this hook to `find-file-hook'."
 
 (provide 'generic-x)
 
-;; arch-tag: cde692a5-9ff6-4506-9999-c67999c2bdb5
 ;;; generic-x.el ends here