[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[STUMP] need help about defun "gnus" command
From: |
Feng Shu |
Subject: |
[STUMP] need help about defun "gnus" command |
Date: |
Fri, 28 Feb 2014 08:10:00 +0800 |
User-agent: |
Gnus/5.13001 (Ma Gnus v0.10) Emacs/24.3.50 (gnu/linux) |
Hi:
I defun a emacsclient-eval function like this
#+begin_src lisp
(defun escape-instance-name (str)
(let (buf)
(map nil #'(lambda (ch)
(if (or (char= ch #\()
(char= ch #\))
(char= ch #\")
(char= ch #\ ))
(push #\_ buf)
(push ch buf)))
str)
(coerce (reverse buf) 'string)))
(defun emacsclient-eval (&optional expression create-frame frame-name file)
(let* ((expr-string (string-downcase (prin1-to-string expression)))
(name (or frame-name
(escape-instance-name expression))))
(run-or-raise
(concat "emacsclient --server-file=default "
(when create-frame (concat "-c -F '((name . \"" name "\"))' "))
(when expr-string (concat " --eval '" expr-string "'"))
file)
(list :instance name))))
#+end_src
this can work,
#+begin_src
(emacsclient-eval '(gnus))
#+end_src
but the follow command defun can't work, someone can help me? thanks!
#+begin_src
(defcommand gnus () ()
(emacsclient-eval '(gnus)))
#+end_src
-- feng shu