-(defmacro wnn-for-each-environment (lang env &rest body)
- `(let* ((server-info (wnn-server-get-info ,lang))
- (server-type (wnn-server-type server-info))
- (env-list wnn-environments))
- (if server-type
- (while env-list
- (let ((,env (car env-list)))
- ,@body)
- (setq env-list (cdr env-list))))))
-
-(defun wnn-fini (lang &optional save-only)
- (let* ((server-info (wnn-server-get-info lang))
- (server-type (wnn-server-type server-info))
- (l wnn-environments)
- new-env-list del-list env proc)
- (if server-type
- (progn
- (message "%s \e$B$NIQEY>pJs!&<-=q>pJs$rB`Hr$7$F$$$^$9\e(B"
- (wnn-server-stream-name server-info))
- (while l
- (setq env (car l))
- (if (eq (wnnenv-get-server-type env) server-type)
- (condition-case nil
- (progn
- (wnn-save-dictionaries env)
- (if (null save-only)
- (progn
- (setq del-list (nconc del-list (list env)))
- (if wnn-sticky-environment-flag
- (wnnrpc-make-env-sticky env)
- (wnnrpc-make-env-unsticky env))
- (wnnrpc-disconnect env))))
- (error nil))
- (setq new-env-list (nconc new-env-list (list env))))
- (setq l (cdr l)))
- (message "%s \e$B$NIQEY>pJs!&<-=q>pJs$rB`Hr$7$^$7$?\e(B"
- (wnn-server-stream-name server-info))
- (if (null save-only)
- (progn
- (setq proc (and del-list (wnnenv-get-proc (car del-list))))
- (if (and proc (eq (process-status proc) 'open))
- (progn
- (wnnrpc-close proc)
- (kill-buffer (process-buffer proc))))
- (setq wnn-environments new-env-list)))))))
-
-(defun wnn-close (lang)
- (interactive (list (wnn-read-active-lang)))
- (or (listp lang)
- (setq lang (list lang)))
- (while lang
- (wnn-fini (car lang))
- (setq lang (cdr lang))))
-
-(defun wnn-dictionary-save (lang)
- (interactive (list (wnn-read-active-lang)))
- (or (listp lang)
- (setq lang (list lang)))
- (while lang
- (wnn-fini (car lang) t)
- (setq lang (cdr lang))))
-
-(defun wnn-read-active-lang ()
- (let ((completion-ignore-case t)
- (env wnn-environments)
- langs server server-list)
- (while env
- (setq server (wnnenv-get-server-type (car env))
- env (cdr env))
- (if (null (member server server-list))
- (setq server-list (cons server server-list))))
- (setq langs (delete nil
- (mapcar (lambda (info)
- (if (memq (wnn-server-type info) server-list)
- (wnn-server-language info)))
- wnn-server-info-list)))
- (if (<= (length langs) 1)
- langs
- (setq langs (cons (cons "All" langs)
- (mapcar (lambda (lang) (cons (symbol-name lang) lang))
- langs)))
- (cdr (assoc (completing-read "language? " langs nil t) langs)))))
+(defun wnn-fini (lang) ; XXX
+ ; tamago-971009 version
+ ; argument LANG is still dummy
+ (if wnn-environments
+ (let ((l wnn-environments))
+ (condition-case nil
+ (while l
+ (let ((env (car l)))
+ (if wnn-sticky-environment-flag
+ (wnnrpc-make-env-sticky env)
+ (wnnrpc-make-env-unsticky env))
+ (wnnrpc-disconnect env)
+ (setq l (cdr l))))
+ (error nil))
+ (setq l wnn-environments)
+ (while l
+ (let ((proc (wnnenv-get-proc (car l))))
+ (if (eq (process-status proc) 'open)
+ (progn
+ (wnnrpc-close proc)
+ (kill-buffer (process-buffer proc)))
+ (setq l (cdr l)))))
+ (setq wnn-environments nil))))