unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Juanma Barranquero <lekktu@gmail.com>
To: Glenn Morris <rgm@gnu.org>
Cc: Emacs developers <emacs-devel@gnu.org>
Subject: Re: Rename `eww' to `web'
Date: Fri, 5 Jul 2013 03:14:55 +0200	[thread overview]
Message-ID: <CAAeL0SQdJJ_SBEkQDsTvTrV-ZpGabBB-eGh95+qqAGStsUc1oA@mail.gmail.com> (raw)
In-Reply-To: <2jd2qxsxlk.fsf@fencepost.gnu.org>

On Fri, Jul 5, 2013 at 1:40 AM, Glenn Morris <rgm@gnu.org> wrote:

> If someone would like to actually DO this, that would be useful.

(defgroup dispatcher nil
  "Generic dispatcher")

(defmacro def-dispatcher (command)
  (let* ((commandn (symbol-name command))
         (varaltn (concat commandn "-alternatives"))
         (varalts (intern varaltn))
         (varimps (intern (concat commandn "-implementation"))))
    `(progn

       (defcustom ,varalts nil
         ,(format "Alist of alternative implementations for the `%s' command.

Each entry must be a pair (ALTNAME . ALTFUN), where:
ALTNAME - The name shown at user to describe the alternative implementation.
ALTFUN  - The function called to implement this alternative."
                  commandn)
         :type '(alist :key-type string :value-type function))

       (defcustom ,varimps nil "Internal use only.")

       (defun ,command (&optional arg)
         ,(format "Run the generic command `%s'.
If used for the first time, or with interactive ARG, ask the user
which implementation to use for `%s'.  The variable `%s'
contains the list of implementations currently supported for this command."
                  commandn commandn varaltn)
         (interactive "P")
         (when (or arg (null ,varimps))
           (let ((val (completing-read
                       ,(format "Select implementation for command
`%s': " commandn)
                       ,varalts nil t)))
             (unless (string-equal val "")
               (customize-save-variable ',varimps (cdr (assoc-string
val ,varalts))))))
         (if ,varimps
             (funcall ,varimps)
           (message ,(format "No implementation selected for commmand
`%s'" commandn)))))))



  reply	other threads:[~2013-07-05  1:14 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-29 14:26 Rename `eww' to `web' Richard Stallman
2013-06-29 15:33 ` Daimrod
2013-06-29 20:30   ` Richard Stallman
2013-06-30  1:45     ` Stefan Monnier
2013-06-30  2:35       ` Xue Fuqiao
2013-06-29 23:20   ` Xue Fuqiao
2013-06-30  5:49 ` Jambunathan K
2013-06-30 13:40   ` Richard Stallman
2013-07-01 12:57     ` Ted Zlatanov
2013-07-03  8:29       ` Miles Bader
2013-07-03 16:09         ` Ted Zlatanov
2013-07-03 16:22           ` Glenn Morris
2013-07-03 19:57             ` Ted Zlatanov
2013-07-03 22:50               ` Tim Cross
2013-07-04  0:24                 ` Drew Adams
2013-07-04  1:43                   ` Ted Zlatanov
2013-07-04  1:58                     ` chad
2013-07-04  5:11                       ` Stephen J. Turnbull
2013-07-04 15:09                         ` Ted Zlatanov
2013-07-04 23:36                       ` Richard Stallman
2013-07-04  3:16                     ` Drew Adams
2013-07-04 23:36                     ` Richard Stallman
2013-07-05  2:19                       ` Jambunathan K
2013-07-04 18:49                 ` Richard Stallman
2013-07-04 19:15                   ` Pascal J. Bourguignon
2013-07-04 21:08                     ` Mathias Dahl
2013-07-04 21:58                       ` Drew Adams
2013-07-05  2:50                       ` Jambunathan K
2013-07-04 22:41                     ` Xue Fuqiao
2013-07-04 23:45                       ` Juri Linkov
2013-07-05 23:41                         ` Xue Fuqiao
2013-07-05 23:59                           ` Juri Linkov
2013-07-06  3:26                             ` Xue Fuqiao
2013-07-04 23:40                     ` Glenn Morris
2013-07-05  1:14                       ` Juanma Barranquero [this message]
2013-07-05 10:23                         ` Stefan Monnier
2013-07-05 11:50                           ` Juanma Barranquero
2013-07-05 12:59                             ` Juanma Barranquero
2013-07-05 22:38                             ` Stefan Monnier
2013-07-05 23:37                               ` Juanma Barranquero
2013-07-06  0:44                                 ` Stefan Monnier
2013-07-05 23:29                             ` Juri Linkov
2013-07-05 23:43                               ` Juanma Barranquero
2013-07-05 23:55                                 ` Juri Linkov
2013-07-06  0:11                                   ` Juanma Barranquero
2013-07-06  0:42                                 ` Stefan Monnier
2013-07-06 22:00                                   ` Richard Stallman
2013-07-05  0:04                     ` Juri Linkov
2013-07-05  5:37                       ` Pascal J. Bourguignon
2013-07-05 17:19                     ` Richard Stallman
2013-07-07  0:24                       ` Pascal J. Bourguignon
2013-07-07  0:55                         ` Juanma Barranquero
2013-07-04 22:53                   ` Josh
2013-07-05 17:20                     ` Richard Stallman
2013-07-04  0:06           ` Richard Stallman
2013-07-04  1:51             ` Ted Zlatanov
2013-07-04  7:30               ` Andreas Schwab
2013-07-04  2:09             ` Katsumi Yamaoka
2013-07-04  2:17               ` Glenn Morris
2013-07-04  3:44                 ` Katsumi Yamaoka
2013-07-04  4:10                   ` Jambunathan K
2013-07-04  4:48                     ` Stephen J. Turnbull
2013-07-05  3:23                       ` Jambunathan K
2013-07-04  9:55                     ` Stefan Monnier
2013-07-04 15:04                       ` Ted Zlatanov
2013-07-05 11:02                         ` Stefan Monnier
2013-07-05 18:03                           ` Ted Zlatanov
2013-07-06  0:14                             ` Stefan Monnier
2013-07-06  4:28                               ` Jambunathan K
2013-07-06  5:28                                 ` Jambunathan K
2013-07-06  9:31                                 ` Stefan Monnier
2013-07-04 14:28                     ` Katsumi Yamaoka
2013-07-04 15:08                       ` Stephen Berman
2013-07-04 22:35                         ` Xue Fuqiao
2013-07-06 20:02                           ` Stephen Berman
2013-07-05  3:04                       ` Jambunathan K
2013-07-04 23:36                   ` Richard Stallman
2013-07-04 15:08                 ` Ted Zlatanov
2013-07-06 15:15 ` Lars Ingebrigtsen
     [not found] <<E1Usw6G-0001Et-0A@fencepost.gnu.org>
2013-06-29 15:05 ` Drew Adams
2013-06-29 15:15   ` Nic Ferrier
2013-06-29 20:30     ` Richard Stallman
2013-06-29 20:45       ` Nic Ferrier
2013-06-29 21:33       ` Dmitry Gutov
2013-06-29 21:42         ` Pascal J. Bourguignon
2013-06-29 21:48           ` Bastien
2013-06-29 23:01             ` Xue Fuqiao
2013-06-30  6:36               ` Bastien
2013-06-30 10:30                 ` Pascal J. Bourguignon
2013-06-30  2:49             ` Richard Stallman
2013-06-30  2:49         ` Richard Stallman
2013-06-30  3:01           ` Dmitry Gutov
2013-06-30 13:40             ` Richard Stallman
2013-06-30 15:26               ` Dmitry Gutov
2013-06-30 17:53                 ` chad
2013-06-30 18:21                   ` Jambunathan K
2013-06-30 19:04                   ` Stefan Monnier
2013-06-30  5:54         ` Jambunathan K
2013-06-29 23:30       ` Xue Fuqiao
2013-06-30  7:56         ` Jan Djärv
2013-06-30  9:18           ` Xue Fuqiao
2013-06-30 10:04             ` Jan Djärv
2013-07-01  2:03     ` Miles Bader
2013-06-29 20:30   ` Richard Stallman
2013-06-29 20:52     ` Pascal J. Bourguignon
2013-06-30  2:49       ` Richard Stallman
     [not found]   ` <<E1Ut1mo-0004ns-A6@fencepost.gnu.org>
2013-06-29 20:40     ` Drew Adams
2013-06-30  2:49       ` Richard Stallman
     [not found]       ` <<E1Ut7hQ-0000Eq-Tt@fencepost.gnu.org>
2013-06-30  3:23         ` Drew Adams
2013-06-30 13:40           ` Richard Stallman

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=CAAeL0SQdJJ_SBEkQDsTvTrV-ZpGabBB-eGh95+qqAGStsUc1oA@mail.gmail.com \
    --to=lekktu@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=rgm@gnu.org \
    /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).