Package: emacs;
Reported by: William Stevenson <yhvh2000 <at> gmail.com>
Date: Wed, 8 Feb 2012 07:15:02 UTC
Severity: minor
Tags: patch
Found in version 24.0.93
Fixed in version 24.2
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: William Stevenson <yhvh2000 <at> gmail.com> To: 10760 <at> debbugs.gnu.org Subject: bug#10760: 24.0.93; [patch] Convert artist-mode to use define-minor-mode Date: Wed, 08 Feb 2012 07:34:37 +0000
Apologies, an error snuck in to that last diff, a line in the doc was changed uselessly. === modified file 'lisp/textmodes/artist.el' *** lisp/textmodes/artist.el 2012-01-19 07:21:25 +0000 --- lisp/textmodes/artist.el 2012-02-08 07:28:48 +0000 *************** *** 415,427 **** ;; Internal variables ;; - (defvar artist-mode nil - "Non-nil to enable `artist-mode' and nil to disable.") - (make-variable-buffer-local 'artist-mode) - - (defvar artist-mode-name " Artist" - "Name of Artist mode beginning with a space (appears in the mode-line).") - (defvar artist-curr-go 'pen-line "Current selected graphics operation.") (make-variable-buffer-local 'artist-curr-go) --- 415,420 ---- *************** *** 545,606 **** :button (:radio . (eq artist-curr-go ',(nth 2 op)))))) map)) - (defvar artist-mode-map - (let ((map (make-sparse-keymap))) - (setq artist-mode-map (make-sparse-keymap)) - (define-key map [down-mouse-1] 'artist-down-mouse-1) - (define-key map [S-down-mouse-1] 'artist-down-mouse-1) - (define-key map [down-mouse-2] 'artist-mouse-choose-operation) - (define-key map [S-down-mouse-2] 'artist-mouse-choose-operation) - (define-key map [down-mouse-3] 'artist-down-mouse-3) - (define-key map [S-down-mouse-3] 'artist-down-mouse-3) - (define-key map [C-mouse-4] 'artist-select-prev-op-in-list) - (define-key map [C-mouse-5] 'artist-select-next-op-in-list) - (define-key map "\r" 'artist-key-set-point) ; return - (define-key map [up] 'artist-previous-line) - (define-key map "\C-p" 'artist-previous-line) - (define-key map [down] 'artist-next-line) - (define-key map "\C-n" 'artist-next-line) - (define-key map [left] 'artist-backward-char) - (define-key map "\C-b" 'artist-backward-char) - (define-key map [right] 'artist-forward-char) - (define-key map "\C-f" 'artist-forward-char) - (define-key map "<" 'artist-toggle-first-arrow) - (define-key map ">" 'artist-toggle-second-arrow) - (define-key map "\C-c\C-a\C-e" 'artist-select-erase-char) - (define-key map "\C-c\C-a\C-f" 'artist-select-fill-char) - (define-key map "\C-c\C-a\C-l" 'artist-select-line-char) - (define-key map "\C-c\C-a\C-o" 'artist-select-operation) - (define-key map "\C-c\C-a\C-r" 'artist-toggle-rubber-banding) - (define-key map "\C-c\C-a\C-t" 'artist-toggle-trim-line-endings) - (define-key map "\C-c\C-a\C-s" 'artist-toggle-borderless-shapes) - (define-key map "\C-c\C-c" 'artist-mode-off) - (define-key map "\C-c\C-al" 'artist-select-op-line) - (define-key map "\C-c\C-aL" 'artist-select-op-straight-line) - (define-key map "\C-c\C-ar" 'artist-select-op-rectangle) - (define-key map "\C-c\C-aR" 'artist-select-op-square) - (define-key map "\C-c\C-as" 'artist-select-op-square) - (define-key map "\C-c\C-ap" 'artist-select-op-poly-line) - (define-key map "\C-c\C-aP" 'artist-select-op-straight-poly-line) - (define-key map "\C-c\C-ae" 'artist-select-op-ellipse) - (define-key map "\C-c\C-ac" 'artist-select-op-circle) - (define-key map "\C-c\C-at" 'artist-select-op-text-see-thru) - (define-key map "\C-c\C-aT" 'artist-select-op-text-overwrite) - (define-key map "\C-c\C-aS" 'artist-select-op-spray-can) - (define-key map "\C-c\C-az" 'artist-select-op-spray-set-size) - (define-key map "\C-c\C-a\C-d" 'artist-select-op-erase-char) - (define-key map "\C-c\C-aE" 'artist-select-op-erase-rectangle) - (define-key map "\C-c\C-av" 'artist-select-op-vaporize-line) - (define-key map "\C-c\C-aV" 'artist-select-op-vaporize-lines) - (define-key map "\C-c\C-a\C-k" 'artist-select-op-cut-rectangle) - (define-key map "\C-c\C-a\M-w" 'artist-select-op-copy-rectangle) - (define-key map "\C-c\C-a\C-y" 'artist-select-op-paste) - (define-key map "\C-c\C-af" 'artist-select-op-flood-fill) - (define-key map "\C-c\C-a\C-b" 'artist-submit-bug-report) - (define-key map [menu-bar artist] (cons "Artist" artist-menu-map)) - map) - "Keymap for `artist-minor-mode'.") - (defvar artist-replacement-table (make-vector 256 0) "Replacement table for `artist-replace-char'.") --- 538,543 ---- *************** *** 1196,1204 **** ;;; --------------------------------- ;;;###autoload ! (defun artist-mode (&optional state) "Toggle Artist mode. ! With argument STATE, turn Artist mode on if STATE is positive. Artist lets you draw lines, squares, rectangles and poly-lines, ellipses and circles with your mouse and/or keyboard. --- 1133,1141 ---- ;;; --------------------------------- ;;;###autoload ! (define-minor-mode artist-mode "Toggle Artist mode. ! With argument ARG, turn Artist mode on if ARG is positive. Artist lets you draw lines, squares, rectangles and poly-lines, ellipses and circles with your mouse and/or keyboard. *************** *** 1387,1472 **** Hooks ! When entering artist-mode, the hook `artist-mode-init-hook' is called. ! When quitting artist-mode, the hook `artist-mode-exit-hook' is called. Keymap summary \\{artist-mode-map}" ! (interactive) ! (if (setq artist-mode ! (if (null state) (not artist-mode) ! (> (prefix-numeric-value state) 0))) ! (artist-mode-init) ! (artist-mode-exit))) ! ! ;; insert our minor mode string ! (or (assq 'artist-mode minor-mode-alist) ! (setq minor-mode-alist ! (cons '(artist-mode artist-mode-name) ! minor-mode-alist))) ! ! ;; insert our minor mode keymap ! (or (assq 'artist-mode minor-mode-map-alist) ! (setq minor-mode-map-alist ! (cons (cons 'artist-mode artist-mode-map) ! minor-mode-map-alist))) ! ! ! ;; Init and exit ! (defun artist-mode-init () ! "Init Artist mode. This will call the hook `artist-mode-init-hook'." ! ;; Set up a conversion table for mapping tabs and new-lines to spaces. ! ;; the last case, 0, is for the last position in buffer/region, where ! ;; the `following-char' function returns 0. ! (let ((i 0)) ! (while (< i 256) ! (aset artist-replacement-table i i) ! (setq i (1+ i)))) ! (aset artist-replacement-table ?\n ?\s) ! (aset artist-replacement-table ?\t ?\s) ! (aset artist-replacement-table 0 ?\s) ! ;; More setup ! (make-local-variable 'artist-key-is-drawing) ! (make-local-variable 'artist-key-endpoint1) ! (make-local-variable 'artist-key-poly-point-list) ! (make-local-variable 'artist-key-shape) ! (make-local-variable 'artist-key-draw-how) ! (make-local-variable 'artist-popup-menu-table) ! (make-local-variable 'artist-key-compl-table) ! (make-local-variable 'artist-prev-next-op-alist) ! (make-local-variable 'artist-rb-save-data) ! (make-local-variable 'artist-arrow-point-1) ! (make-local-variable 'artist-arrow-point-2) ! (setq artist-key-is-drawing nil) ! (setq artist-key-endpoint1 nil) ! (setq artist-key-poly-point-list nil) ! (setq artist-key-shape nil) ! (setq artist-popup-menu-table (artist-compute-popup-menu-table artist-mt)) ! (setq artist-key-compl-table (artist-compute-key-compl-table artist-mt)) ! (setq artist-prev-next-op-alist ! (artist-make-prev-next-op-alist artist-key-compl-table)) ! (setq artist-rb-save-data (make-vector 7 0)) ! (setq artist-arrow-point-1 nil) ! (setq artist-arrow-point-2 nil) ! (make-local-variable 'next-line-add-newlines) ! (setq next-line-add-newlines t) ! (setq artist-key-draw-how ! (artist-go-get-draw-how-from-symbol artist-curr-go)) ! (if (and artist-picture-compatibility (not (eq major-mode 'picture-mode))) ! (progn ! (picture-mode) ! (message ""))) ! (run-hooks 'artist-mode-init-hook) ! (artist-mode-line-show-curr-operation artist-key-is-drawing)) ! ! (defun artist-mode-exit () ! "Exit Artist mode. This will call the hook `artist-mode-exit-hook'." ! (if (and artist-picture-compatibility (eq major-mode 'picture-mode)) ! (picture-mode-exit)) ! (kill-local-variable 'next-line-add-newlines) ! (run-hooks 'artist-mode-exit-hook)) (defun artist-mode-off () "Turn Artist mode off." --- 1324,1438 ---- Hooks ! Turning the mode on or off runs `artist-mode-hook'. Keymap summary \\{artist-mode-map}" ! :init-value nil :group 'artist :lighter " Artist" ! :keymap ! '(([down-mouse-1] . artist-down-mouse-1) ! ([S-down-mouse-1] . artist-down-mouse-1) ! ([down-mouse-2] . artist-mouse-choose-operation) ! ([S-down-mouse-2] . artist-mouse-choose-operation) ! ([down-mouse-3] . artist-down-mouse-3) ! ([S-down-mouse-3] . artist-down-mouse-3) ! ([C-mouse-4] . artist-select-prev-op-in-list) ! ([C-mouse-5] . artist-select-next-op-in-list) ! ("\r" . artist-key-set-point) ; return ! ([up] . artist-previous-line) ! ("\C-p" . artist-previous-line) ! ([down] . artist-next-line) ! ("\C-n" . artist-next-line) ! ([left] . artist-backward-char) ! ("\C-b" . artist-backward-char) ! ([right] . artist-forward-char) ! ("\C-f" . artist-forward-char) ! ("<" . artist-toggle-first-arrow) ! (">" . artist-toggle-second-arrow) ! ("\C-c\C-a\C-e" . artist-select-erase-char) ! ("\C-c\C-a\C-f" . artist-select-fill-char) ! ("\C-c\C-a\C-l" . artist-select-line-char) ! ("\C-c\C-a\C-o" . artist-select-operation) ! ("\C-c\C-a\C-r" . artist-toggle-rubber-banding) ! ("\C-c\C-a\C-t" . artist-toggle-trim-line-endings) ! ("\C-c\C-a\C-s" . artist-toggle-borderless-shapes) ! ("\C-c\C-c" . artist-mode-off) ! ("\C-c\C-al" . artist-select-op-line) ! ("\C-c\C-aL" . artist-select-op-straight-line) ! ("\C-c\C-ar" . artist-select-op-rectangle) ! ("\C-c\C-aR" . artist-select-op-square) ! ("\C-c\C-as" . artist-select-op-square) ! ("\C-c\C-ap" . artist-select-op-poly-line) ! ("\C-c\C-aP" . artist-select-op-straight-poly-line) ! ("\C-c\C-ae" . artist-select-op-ellipse) ! ("\C-c\C-ac" . artist-select-op-circle) ! ("\C-c\C-at" . artist-select-op-text-see-thru) ! ("\C-c\C-aT" . artist-select-op-text-overwrite) ! ("\C-c\C-aS" . artist-select-op-spray-can) ! ("\C-c\C-az" . artist-select-op-spray-set-size) ! ("\C-c\C-a\C-d" . artist-select-op-erase-char) ! ("\C-c\C-aE" . artist-select-op-erase-rectangle) ! ("\C-c\C-av" . artist-select-op-vaporize-line) ! ("\C-c\C-aV" . artist-select-op-vaporize-lines) ! ("\C-c\C-a\C-k" . artist-select-op-cut-rectangle) ! ("\C-c\C-a\M-w" . artist-select-op-copy-rectangle) ! ("\C-c\C-a\C-y" . artist-select-op-paste) ! ("\C-c\C-af" . artist-select-op-flood-fill) ! ("\C-c\C-a\C-b" . artist-submit-bug-report) ! ([menu-bar artist] . artist-menu-map)) ! (cond ((null artist-mode) ! ;; Turn mode off ! (if (and artist-picture-compatibility (eq major-mode 'picture-mode)) ! (picture-mode-exit)) ! (kill-local-variable 'next-line-add-newlines)) ! ! (t ! ;; Turn mode on ! ;; Set up a conversion table for mapping tabs and new-lines to spaces. ! ;; the last case, 0, is for the last position in buffer/region, where ! ;; the `following-char' function returns 0. ! (let ((i 0)) ! (while (< i 256) ! (aset artist-replacement-table i i) ! (setq i (1+ i)))) ! (aset artist-replacement-table ?\n ?\s) ! (aset artist-replacement-table ?\t ?\s) ! (aset artist-replacement-table 0 ?\s) ! ;; More setup ! (make-local-variable 'artist-key-is-drawing) ! (make-local-variable 'artist-key-endpoint1) ! (make-local-variable 'artist-key-poly-point-list) ! (make-local-variable 'artist-key-shape) ! (make-local-variable 'artist-key-draw-how) ! (make-local-variable 'artist-popup-menu-table) ! (make-local-variable 'artist-key-compl-table) ! (make-local-variable 'artist-prev-next-op-alist) ! (make-local-variable 'artist-rb-save-data) ! (make-local-variable 'artist-arrow-point-1) ! (make-local-variable 'artist-arrow-point-2) ! (setq artist-key-is-drawing nil) ! (setq artist-key-endpoint1 nil) ! (setq artist-key-poly-point-list nil) ! (setq artist-key-shape nil) ! (setq artist-popup-menu-table (artist-compute-popup-menu-table artist-mt)) ! (setq artist-key-compl-table (artist-compute-key-compl-table artist-mt)) ! (setq artist-prev-next-op-alist ! (artist-make-prev-next-op-alist artist-key-compl-table)) ! (setq artist-rb-save-data (make-vector 7 0)) ! (setq artist-arrow-point-1 nil) ! (setq artist-arrow-point-2 nil) ! (make-local-variable 'next-line-add-newlines) ! (setq next-line-add-newlines t) ! (setq artist-key-draw-how ! (artist-go-get-draw-how-from-symbol artist-curr-go)) ! (if (and artist-picture-compatibility (not (eq major-mode 'picture-mode))) ! (progn ! (picture-mode) ! (message ""))) ! (artist-mode-line-show-curr-operation artist-key-is-drawing)))) ! (defun artist-mode-off () "Turn Artist mode off." *************** *** 1484,1490 **** (defun artist-mode-line-show-curr-operation (is-drawing) "Show current operation in mode-line. If IS-DRAWING, show that." ! (let ((mtext (concat artist-mode-name "/" (artist-go-get-mode-line-from-symbol artist-curr-go) (if is-drawing "/*" "")))) (setcdr (assq 'artist-mode minor-mode-alist) (list mtext))) --- 1450,1456 ---- (defun artist-mode-line-show-curr-operation (is-drawing) "Show current operation in mode-line. If IS-DRAWING, show that." ! (let ((mtext (concat " Artist/" (artist-go-get-mode-line-from-symbol artist-curr-go) (if is-drawing "/*" "")))) (setcdr (assq 'artist-mode minor-mode-alist) (list mtext)))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.