GNU bug report logs - #10760
24.0.93; [patch] Convert artist-mode to use define-minor-mode

Previous Next

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.

Full log


Message #17 received at 10760 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: William Stevenson <yhvh2000 <at> gmail.com>
Cc: 10760 <at> debbugs.gnu.org
Subject: Re: bug#10760: 24.0.93;
	[patch] Convert artist-mode to use define-minor-mode
Date: Thu, 09 Feb 2012 17:01:42 -0500
>> Stefan "who actually prefers `diff -u' format"

> Me too, serves me right for reading the manual :B

> In summary:
> Updated artist-mode to use define-minor-mode.
> As a consequence, artist-mode-init-hook and artist-mode-exit-hook were
> removed from artist-mode-init and artist-mode-exit, because d-m-m creates
> artist-mode-hook, and runs it when the mode is turned on or off.
> Documentation was updated to reflect this.

Looks good, please install, and thank you,


        Stefan


> === modified file 'lisp/textmodes/artist.el'
> --- lisp/textmodes/artist.el	2012-01-19 07:21:25 +0000
> +++ lisp/textmodes/artist.el	2012-02-09 03:00:37 +0000
> @@ -1196,9 +1196,9 @@
>  ;;; ---------------------------------
 
>  ;;;###autoload
> -(defun artist-mode (&optional state)
> +(define-minor-mode artist-mode
>    "Toggle Artist mode.
> -With argument STATE, turn Artist mode on if STATE is positive.
> +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,36 +1387,24 @@
 
>  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.
> + Turning the mode on or off runs `artist-mode-hook'.
 
 
>  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-value nil :group 'artist :lighter artist-mode-name
> +  :keymap artist-mode-map
> +  (cond ((null artist-mode)
> +	 ;; Turn mode off
> +	 (artist-mode-exit))
> +	(t
> +	 ;; Turn mode on
> +	 (artist-mode-init))))
 
>  ;; Init and exit
>  (defun artist-mode-init ()
> -  "Init Artist mode.  This will call the hook `artist-mode-init-hook'."
> +  "Init Artist mode.  This will call the hook `artist-mode-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.
> @@ -1458,15 +1446,13 @@
>        (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'."
> +  "Exit Artist mode.  This will call the hook `artist-mode-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))
> +  (kill-local-variable 'next-line-add-newlines))
 
>  (defun artist-mode-off ()
>    "Turn Artist mode off."








This bug report was last modified 13 years and 126 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.