From 7679edb1e0afb258cc80657a15eebcafcbdb7f81 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 7 Aug 2013 18:42:44 -0400 Subject: [PATCH] * lisp/progmodes/bat-mode.el: Rename from dos.el. Use "bat-" prefix. (dos-mode-help): Remove. Use describe-mode (C-h m) instead. --- lisp/ChangeLog | 3 + lisp/generic-x.el | 2 +- lisp/progmodes/{dos.el => bat-mode.el} | 84 ++++++++++++-------------- 3 files changed, 41 insertions(+), 48 deletions(-) rename lisp/progmodes/{dos.el => bat-mode.el} (72%) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 70e10615dd7..e1d366f0510 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2013-08-07 Stefan Monnier + * progmodes/bat-mode.el: Rename from dos.el. Use "bat-" prefix. + (dos-mode-help): Remove. Use describe-mode (C-h m) instead. + * emacs-lisp/bytecomp.el: Check existence of f in #'f. (byte-compile-callargs-warn): Use `push'. (byte-compile-arglist-warn): Ignore higher-order "calls". diff --git a/lisp/generic-x.el b/lisp/generic-x.el index 698819d73a1..c964b53952e 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el @@ -460,7 +460,7 @@ like an INI file. You can add this hook to `find-file-hook'." ;;; DOS/Windows BAT files (when (memq 'bat-generic-mode generic-extras-enable-list) - (define-obsolete-function-alias 'bat-generic-mode 'dos-mode "24.4")) + (define-obsolete-function-alias 'bat-generic-mode 'bat-mode "24.4")) ;;; Mailagent ;; Mailagent is a Unix mail filtering program. Anyone wanna do a diff --git a/lisp/progmodes/dos.el b/lisp/progmodes/bat-mode.el similarity index 72% rename from lisp/progmodes/dos.el rename to lisp/progmodes/bat-mode.el index 593b5e9fc92..45c350e9847 100644 --- a/lisp/progmodes/dos.el +++ b/lisp/progmodes/bat-mode.el @@ -1,4 +1,4 @@ -;;; dos.el --- Major mode for editing Dos scripts +;;; bat-mode.el --- Major mode for editing DOS/Windows scripts ;; Copyright (C) 2003, 2008-2013 Free Software Foundation, Inc. @@ -22,13 +22,13 @@ ;;; Commentary: ;; -;; Major mode for editing Dos scripts (batch files). Provides syntax -;; highlighting, a basic template, access to Dos help pages, imenu/outline +;; Major mode for editing DOS/Windows scripts (batch files). Provides syntax +;; highlighting, a basic template, access to DOS help pages, imenu/outline ;; navigation, and the ability to run scripts from within Emacs. The syntax ;; groups for highlighting are: ;; ;; Face Example -;; dos-label-face :LABEL +;; bat-label-face :LABEL ;; font-lock-comment-face rem ;; font-lock-builtin-face copy ;; font-lock-keyword-face goto @@ -39,7 +39,7 @@ ;; ;; Usage: ;; -;; See documentation of function `dos-mode'. +;; See documentation of function `bat-mode'. ;; ;; Separate package `dos-indent' (Matthew Fidler) provides rudimentary ;; indentation, see http://www.emacswiki.org/emacs/dos-indent.el. @@ -52,20 +52,19 @@ ;; 1 Preamble -(defgroup dos nil +(defgroup bat-mode nil "Major mode for editing DOS/Windows batch files." :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces) :group 'languages) ;; 2 User variables -(defface dos-label-face '((t :weight bold)) - "Font Lock mode face used to highlight labels in batch files." - :group 'dos) +(defface bat-label-face '((t :weight bold)) + "Font Lock mode face used to highlight labels in batch files.") ;; 3 Internal variables -(defvar dos-font-lock-keywords +(defvar bat-font-lock-keywords (eval-when-compile (let ((COMMANDS '("assoc" "at" "attrib" "cd" "cls" "color" "copy" "date" "del" "dir" @@ -84,7 +83,7 @@ ("^[ \t]*\\(@?rem\\_>\\|::\\).*" (0 font-lock-comment-face t)) ("^:[^:].*" - . 'dos-label-face) + . 'bat-label-face) ("\\<_\\(defined\\|set\\)\\_>[ \t]*\\(\\w+\\)" (2 font-lock-variable-name-face)) ("%\\(\\w+\\)%?" @@ -99,30 +98,28 @@ (,(concat "\\_<" (regexp-opt UNIX) "\\_>") . font-lock-warning-face))))) -(defvar dos-menu - '("Dos" - ["Run" dos-run :help "Run script"] - ["Run with Args" dos-run-args :help "Run script with args"] +(defvar bat-menu + '("Bat" + ["Run" bat-run :help "Run script"] + ["Run with Args" bat-run-args :help "Run script with args"] "--" ["Imenu" imenu :help "Navigate with imenu"] "--" - ["Template" dos-template :help "Insert template"] + ["Template" bat-template :help "Insert template"] "--" - ["Help (Command)" dos-cmd-help :help "Show help page for Dos command"] - ["Help (Mode)" dos-mode-help :help "Show help page for Emacs Dos Mode"])) + ["Help (Command)" bat-cmd-help :help "Show help page for DOS command"])) -(defvar dos-mode-map +(defvar bat-mode-map (let ((map (make-sparse-keymap))) - (easy-menu-define nil map nil dos-menu) - (define-key map [?\C-c ?\C-.] 'dos-mode-help) - (define-key map [?\C-c ?\C-/] 'dos-cmd-help) ;FIXME: Why not C-c C-? ? - (define-key map [?\C-c ?\C-a] 'dos-run-args) - (define-key map [?\C-c ?\C-c] 'dos-run) - (define-key map [?\C-c ?\C-t] 'dos-template) - (define-key map [?\C-c ?\C-v] 'dos-run) + (easy-menu-define nil map nil bat-menu) + (define-key map [?\C-c ?\C-/] 'bat-cmd-help) ;FIXME: Why not C-c C-? ? + (define-key map [?\C-c ?\C-a] 'bat-run-args) + (define-key map [?\C-c ?\C-c] 'bat-run) + (define-key map [?\C-c ?\C-t] 'bat-template) + (define-key map [?\C-c ?\C-v] 'bat-run) map)) -(defvar dos-mode-syntax-table +(defvar bat-mode-syntax-table (let ((table (make-syntax-table))) ;; Beware: `w' should not be used for non-alphabetic chars. (modify-syntax-entry ?~ "_" table) @@ -137,55 +134,48 @@ ;; 4 User functions -(defun dos-cmd-help (cmd) +(defun bat-cmd-help (cmd) "Show help for batch file command CMD." (interactive "sHelp: ") (if (string-equal cmd "net") ;; FIXME: liable to quoting nightmare. Use call-process? (shell-command "net /?") (shell-command (concat "help " cmd)))) -(defun dos-mode-help () - "Show help page for `dos-mode'." - (interactive) - (describe-function 'dos-mode) - (switch-to-buffer "*Help*") (delete-other-windows) (message nil)) - -(defun dos-run () +(defun bat-run () "Run a batch file." (interactive) ;; FIXME: liable to quoting nightmare. Use call/start-process? (save-buffer) (shell-command buffer-file-name)) -(defun dos-run-args (args) +(defun bat-run-args (args) "Run a batch file with ARGS." (interactive "sArgs: ") ;; FIXME: Use `compile'? (shell-command (concat buffer-file-name " " args))) -(defun dos-template () +(defun bat-template () "Insert minimal batch file template." (interactive) (goto-char (point-min)) (insert "@echo off\nsetlocal\n\n")) ;;;###autoload -(add-to-list 'auto-mode-alist '("\\.\\(bat\\|cmd\\)\\'" . dos-mode)) +(add-to-list 'auto-mode-alist '("\\.\\(bat\\|cmd\\)\\'" . bat-mode)) ;; 5 Main function ;;;###autoload -(define-derived-mode dos-mode prog-mode "Dos" +(define-derived-mode bat-mode prog-mode "Bat" "Major mode for editing DOS/Windows batch files.\n -The `dos-mode-help' command shows this page.\n -Start a new script from `dos-template'. Read help pages for Dos commands -with `dos-cmd-help'. Navigate between sections using `imenu'. -Run script using `dos-run' and `dos-run-args'.\n -\\{dos-mode-map}" +Start a new script from `bat-template'. Read help pages for DOS commands +with `bat-cmd-help'. Navigate between sections using `imenu'. +Run script using `bat-run' and `bat-run-args'.\n +\\{bat-mode-map}" (setq-local comment-start "rem ") (setq-local font-lock-defaults - '(dos-font-lock-keywords nil t)) ; case-insensitive keywords + '(bat-font-lock-keywords nil t)) ; case-insensitive keywords (setq-local imenu-generic-expression '((nil "^:[^:].*" 0))) (setq-local outline-regexp ":[^:]")) -(provide 'dos) +(provide 'bat-mode) -;;; dos.el ends here +;;; bat-mode.el ends here -- 2.39.2