Tomasz Buchert <[email protected]> writes: > > Would you be able to provide patches to both bugs you submitted?
I suggest the bits below, which in addition adds a verbiste-mode-hook in the usual style, and which avoids "sh -c" since I think the `verbiste-quote' bit might be inadequate for arbitrary strings. (shell-quote-argument would be the ticket if sh -c was really wanted, but direct args to start-process are easier). I might have been tempted to rename the "defgroup Verbiste-Mode" to a lower-case "defgroup verbiste-mode" rather than the "put" for customize-mode, but perhaps there's a reason for it and "defgroup Verbiste" named that way.
50verbiste-el.el
Description: application/emacs-lisp
--- verbiste.el.orig 2013-07-06 09:26:06.000000000 +1000
+++ verbiste.el 2013-07-11 08:49:38.000000000 +1000
@@ -102,6 +102,11 @@
:type 'sexp
:group 'Verbiste-Mode)
+(defcustom verbiste-mode-hook nil
+ "*Hook run by `verbiste-mode'."
+ :type 'hook
+ :group 'Verbiste-Mode)
+
(defun verbiste-quote (word)
"Quote WORD if necessary."
(if verbiste-always-quote-terms
@@ -130,10 +135,12 @@
(if deconj "Deconjugating" "Conjugating")
word)
(set-process-sentinel
- (start-process "verbiste" buffer "sh" "-c"
- (format "%s %s"
- (if deconj "french-deconjugator" "french-conjugator -p")
- (verbiste-quote word)))
+ (apply 'start-process "verbiste" buffer
+ (append
+ (if deconj
+ '("french-deconjugator")
+ '("french-conjugator" "--pronouns"))
+ (list word)))
'verbiste-bgproc-sentinel)))
(defun verbiste-bgproc-sentinel (process msg)
@@ -213,10 +220,22 @@
result))
(defun verbiste-mode()
- (interactive)
+ "Major mode for Verbiste output.
+
+\\{verbiste-mode-keymap}"
+
(use-local-map verbiste-mode-keymap)
(setq mode-name "Verbiste")
- (setq major-mode 'verbiste-mode))
+ (setq major-mode 'verbiste-mode)
+ (setq buffer-read-only t)
+
+ (if (eval-when-compile (fboundp 'run-mode-hooks))
+ (run-mode-hooks 'verbiste-mode-hook) ;; xemacs21,emacs22 up
+ (run-hooks 'verbiste-mode-hook)))
+
+;; for `M-x customize-mode' in a verbiste-mode buffer, because the group is
+;; not called lower-case `verbiste-mode'
+(put 'verbiste-mode 'custom-mode-group 'Verbiste-Mode)
(defun verbiste-update-key-bindings ()
"Update verbiste key bindings."

