Sync up with egg-980712.
[elisp/egg.git] / egg / wnn.el
index 1e8330d..3891e47 100644 (file)
 (defun wnn-start-conversion (yomi &optional language dic-set reverse)
   "Convert YOMI string to kanji, and enter conversion mode.
 Return the list of bunsetsu."
-  (let* ((server-info (wnn-server-get-info language))
-        (env (wnn-get-environment server-info dic-set reverse))
-        (result (wnnrpc-renbunsetsu-conversion env yomi
-                                               (WNN-const BUN_SENTOU) "")))
-    (wnnenv-set-daibunsetsu-info env (car result))
-    (cdr result)))
+  (let ((server-info (wnn-server-get-info language)))
+    (if server-info
+       (let* ((env (wnn-get-environment server-info dic-set reverse))
+              (result (wnnrpc-renbunsetsu-conversion env yomi
+                                                     (WNN-const BUN_SENTOU) "")))
+         (wnnenv-set-daibunsetsu-info env (car result))
+         (cdr result))
+    (signal 'lang-not-supported))))
 
 (defun wnn-start-reverse-conversion (yomi &optional language dic-set)
   (wnn-start-conversion yomi language dic-set t))
@@ -369,7 +371,13 @@ Return the list of bunsetsu."
            ,@body)
          (setq env-list (cdr env-list))))))
 
-(defun wnn-fini (lang &optional save-only)
+(defun wnn-fini ()
+  (let ((l wnn-support-languages))
+    (while l
+      (wnn-fini-lang (car l))
+      (setq l (cdr l)))))
+
+(defun wnn-fini-lang (lang &optional save-only)
   (let* ((server-info (wnn-server-get-info lang))
         (server-type (wnn-server-type server-info))
         (l wnn-environments)
@@ -410,7 +418,7 @@ Return the list of bunsetsu."
   (or (listp lang)
       (setq lang (list lang)))
   (while lang
-    (wnn-fini (car lang))
+    (wnn-fini-lang (car lang))
     (setq lang (cdr lang))))
 
 (defun wnn-dictionary-save (lang)
@@ -418,7 +426,7 @@ Return the list of bunsetsu."
   (or (listp lang)
       (setq lang (list lang)))
   (while lang
-    (wnn-fini (car lang) t)
+    (wnn-fini-lang (car lang) t)
     (setq lang (cdr lang))))
 
 (defun wnn-read-active-lang ()
@@ -1002,14 +1010,13 @@ REVERSE specifies reverse conversion, if non nil."
 ;;; setup
 
 (require 'egg)
-(load "egg/wnnrpc")
 
 ;;;###autoload
 (defun egg-activate-wnn (&rest arg)
   "Activate Wnn backend of Tamagotchy."
-  (egg-set-support-languages wnn-support-languages)
-  (egg-set-conversion-backend wnn-conversion-backend
-                             wnn-support-languages)
+  (setq egg-conversion-backend wnn-conversion-backend)
+  (if (not (fboundp 'wnnrpc-open))
+      (load-library "egg/wnnrpc"))
   (apply 'egg-mode arg))
 
 ;;; egg/wnn.el ends here.