unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: William Stevenson <yhvh2000@gmail.com>
Cc: 10760@debbugs.gnu.org
Subject: bug#10760: 24.0.93; [patch] Convert artist-mode to use define-minor-mode
Date: Thu, 09 Feb 2012 17:01:42 -0500	[thread overview]
Message-ID: <jwvaa4rwtv3.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87lioctzfw.fsf@gmail.com> (William Stevenson's message of "Thu,  09 Feb 2012 04:15:15 +0000")

>> 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."









  reply	other threads:[~2012-02-09 22:01 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-08  7:12 bug#10760: 24.0.93; [patch] Convert artist-mode to use define-minor-mode William Stevenson
2012-02-08  7:34 ` William Stevenson
2012-02-08 19:25 ` Stefan Monnier
2012-02-09  4:15   ` William Stevenson
2012-02-09 22:01     ` Stefan Monnier [this message]
2012-02-11  2:22       ` William Stevenson
2012-02-13 20:57         ` Stefan Monnier
2012-04-11 11:57     ` Lars Magne Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvaa4rwtv3.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=10760@debbugs.gnu.org \
    --cc=yhvh2000@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).