view lisp/nnoo.el @ 24717:ea66a10b8c12
* language/korea-util.el (isearch-toggle-korean-input-method):
Adjusted for the change of input method handling in isearch.el.
(isearch-hangul-switch-symbol-ksc): Likewise.
(isearch-hangul-switch-hanja): Likewise.
author
Kenichi Handa <handa@m17n.org>
date
Tue, 11 May 1999 04:28:26 +0000 (1999-05-11)
parents
47d9b7a1dee3
children
line source
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;;; nnoo.el --- OO Gnus Backends
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; Copyright (C) 1996 Free Software Foundation, Inc.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; Keywords: news
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; This file is part of GNU Emacs.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; GNU Emacs is free software; you can redistribute it and/or modify
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; it under the terms of the GNU General Public License as published by
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; the Free Software Foundation; either version 2, or (at your option)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; any later version.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; GNU Emacs is distributed in the hope that it will be useful,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; GNU General Public License for more details.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; You should have received a copy of the GNU General Public License
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; along with GNU Emacs; see the file COPYING. If not, write to the
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; Boston, MA 02111-1307, USA.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;;; Commentary:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;;; Code:
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (eval-when-compile (require 'cl))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defvar nnoo-definition-alist nil)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defvar nnoo-state-alist nil)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defmacro defvoo (var init &optional doc &rest map)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� "The same as `defvar', only takes list of variables to MAP to."
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� `(prog1
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ,(if doc
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� `(defvar ,var ,init ,doc)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� `(defvar ,var ,init))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-define ',var ',map)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'defvoo 'lisp-indent-function 2)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'defvoo 'lisp-indent-hook 2)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'defvoo 'edebug-form-spec '(var init &optional doc &rest map))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defmacro deffoo (func args &rest forms)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� "The same as `defun', only register FUNC."
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� `(prog1
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun ,func ,args ,@forms)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-register-function ',func)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'deffoo 'lisp-indent-function 2)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'deffoo 'lisp-indent-hook 2)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'deffoo 'edebug-form-spec '(&define name lambda-list def-body))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-register-function (func)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let ((funcs (nthcdr 3 (assoc (nnoo-backend func)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� nnoo-definition-alist))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (unless funcs
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (error "%s belongs to a backend that hasn't been declared" func))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setcar funcs (cons func (car funcs)))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defmacro nnoo-declare (backend &rest parents)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� `(eval-and-compile
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (push (list ',backend
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (mapcar (lambda (p) (list p)) ',parents)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� nil nil)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� nnoo-definition-alist)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'nnoo-declare 'lisp-indent-function 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'nnoo-declare 'lisp-indent-hook 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-parents (backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nth 1 (assoc backend nnoo-definition-alist)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-variables (backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nth 2 (assoc backend nnoo-definition-alist)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-functions (backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nth 3 (assoc backend nnoo-definition-alist)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defmacro nnoo-import (backend &rest imports)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� `(nnoo-import-1 ',backend ',imports))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'nnoo-import 'lisp-indent-function 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'nnoo-import 'lisp-indent-hook 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-import-1 (backend imports)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let ((call-function
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (if (symbolp (car imports)) (pop imports) 'nnoo-parent-function))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� imp functions function)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while (setq imp (pop imports))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setq functions
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (or (cdr imp)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-functions (car imp))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while functions
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (unless (fboundp (setq function
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-symbol backend (nnoo-rest-symbol
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (car functions)))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (eval `(deffoo ,function (&rest args)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (,call-function ',backend ',(car functions) args))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (pop functions)))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-parent-function (backend function args)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let* ((pbackend (nnoo-backend function)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-change-server pbackend (nnoo-current-server backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (cdr (assq pbackend (nnoo-parents backend))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (apply function args)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-execute (backend function &rest args)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� "Execute FUNCTION on behalf of BACKEND."
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let* ((pbackend (nnoo-backend function)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-change-server pbackend (nnoo-current-server backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (cdr (assq pbackend (nnoo-parents backend))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (apply function args)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defmacro nnoo-map-functions (backend &rest maps)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� `(nnoo-map-functions-1 ',backend ',maps))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'nnoo-map-functions 'lisp-indent-function 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (put 'nnoo-map-functions 'lisp-indent-hook 1)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-map-functions-1 (backend maps)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let (m margs i)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while (setq m (pop maps))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setq i 0
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� margs nil)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while (< i (length (cdr m)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (if (numberp (nth i (cdr m)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (push `(nth ,i args) margs)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (push (nth i (cdr m)) margs))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (incf i))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (eval `(deffoo ,(nnoo-symbol backend (nnoo-rest-symbol (car m)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (&rest args)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-parent-function ',backend ',(car m)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ,(cons 'list (nreverse margs))))))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-backend (symbol)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (string-match "^[^-]+-" (symbol-name symbol))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (intern (substring (symbol-name symbol) 0 (1- (match-end 0)))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-rest-symbol (symbol)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (string-match "^[^-]+-" (symbol-name symbol))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (intern (substring (symbol-name symbol) (match-end 0))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-symbol (backend symbol)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (intern (format "%s-%s" backend symbol)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-define (var map)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let* ((backend (nnoo-backend var))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (def (assq backend nnoo-definition-alist))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (parents (nth 1 def)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (unless def
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (error "%s belongs to a backend that hasn't been declared." var))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setcar (nthcdr 2 def)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (delq (assq var (nth 2 def)) (nth 2 def)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setcar (nthcdr 2 def)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (cons (cons var (symbol-value var))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nth 2 def)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while map
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nconc (assq (nnoo-backend (car map)) parents)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (list (list (pop map) var))))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-change-server (backend server defs)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let* ((bstate (cdr (assq backend nnoo-state-alist)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (sdefs (assq backend nnoo-definition-alist))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (current (car bstate))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (parents (nnoo-parents backend))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� state)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (unless bstate
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (push (setq bstate (list backend nil))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� nnoo-state-alist)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (pop bstate))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (if (equal server current)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� t
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-push-server backend current)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setq state (or (cdr (assoc server (cddr bstate)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-variables backend)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while state
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (set (caar state) (cdar state))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (pop state))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setcar bstate server)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (unless (cdr (assoc server (cddr bstate)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while defs
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (set (caar defs) (cadar defs))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (pop defs)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while parents
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-change-server
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (caar parents) server
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (mapcar (lambda (def) (list (car def) (symbol-value (cadr def))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (cdar parents)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (pop parents))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� t)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-push-server (backend current)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let ((bstate (assq backend nnoo-state-alist))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defs (nnoo-variables backend)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;; Remove the old definition.
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setcdr (cdr bstate) (delq (assoc current (cddr bstate)) (cddr bstate)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let (state)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while defs
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (push (cons (caar defs) (symbol-value (caar defs)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� state)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (pop defs))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nconc bstate (list (cons current state))))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-current-server-p (backend server)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (equal (nnoo-current-server backend) server))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-current-server (backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nth 1 (assq backend nnoo-state-alist)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-close-server (backend &optional server)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (unless server
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setq server (nnoo-current-server backend)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (when server
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let* ((bstate (cdr (assq backend nnoo-state-alist)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defs (assoc server (cdr bstate))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (when bstate
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setcar bstate nil)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setcdr bstate (delq defs (cdr bstate)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (pop defs)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while defs
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (set (car (pop defs)) nil)))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� t)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-close (backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (setq nnoo-state-alist
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (delq (assq backend nnoo-state-alist)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� nnoo-state-alist))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� t)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-status-message (backend server)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnheader-get-report backend))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-server-opened (backend server)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (and (nnoo-current-server-p backend server)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� nntp-server-buffer
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (buffer-name nntp-server-buffer)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defmacro nnoo-define-basics (backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� `(eval-and-compile
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-define-basics-1 ',backend)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (defun nnoo-define-basics-1 (backend)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (let ((functions '(close-server server-opened status-message)))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (while functions
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (eval `(deffoo ,(nnoo-symbol backend (car functions))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (&optional server)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (,(nnoo-symbol 'nnoo (pop functions)) ',backend server)))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (eval `(deffoo ,(nnoo-symbol backend 'open-server)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (server &optional defs)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (nnoo-change-server ',backend server defs))))
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� (provide 'nnoo)
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩���
+ ��膩��鰹申鐃順�渇����紮�鐃醇�鐃緒申鐃緒申����鐃初��膩��鰹申鐃順�渇��膩��� ;;; nnoo.el ends here.