lookup-1.4.1/0000755000076400007640000000000010557547477013317 5ustar kazuhikokazuhikolookup-1.4.1/Makefile.in0000644000076400007640000002715210557543722015360 0ustar kazuhikokazuhiko# Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : AMTAR = @AMTAR@ AWK = @AWK@ DEPDIR = @DEPDIR@ EMACS = @EMACS@ EXEEXT = @EXEEXT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ emacsdir = @emacsdir@ install_sh = @install_sh@ lispdir = @lispdir@ AUTOMAKE_OPTIONS = foreign SUBDIRS = lisp texi packages EXTRA_DIST = VERSION install.el MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in stamp-h.in \ configure missing mkinstalldirs install-sh texinfo.tex subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ uninstall-info-recursive all-recursive install-data-recursive \ install-exec-recursive installdirs-recursive install-recursive \ uninstall-recursive check-recursive installcheck-recursive DIST_COMMON = README AUTHORS COPYING ChangeLog Makefile.am Makefile.in \ NEWS acinclude.m4 aclocal.m4 configure configure.in install-sh \ missing mkinstalldirs DIST_SUBDIRS = $(SUBDIRS) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$@ $(SHELL) ./config.status $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): configure.in acinclude.m4 cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) GTAGS: here=`CDPATH=: && cd $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = . # Avoid unsightly `./'. distdir = $(PACKAGE)-$(VERSION) GZIP_ENV = --best distdir: $(DISTFILES) -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) mkdir $(distdir) @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir) GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/=build mkdir $(distdir)/=inst chmod a-w $(distdir) dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \ && cd $(distdir)/=build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \ || (echo "Error: files left after uninstall" 1>&2; \ exit 1) ) \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && $(MAKE) $(AM_MAKEFLAGS) distclean \ && rm -f $(distdir).tar.gz \ && (test `find . -type f -print | wc -l` -eq 0 \ || (echo "Error: files left after distclean" 1>&2; \ exit 1) ) -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir) @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) distclean: distclean-recursive -rm -f config.status config.cache config.log distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ clean-generic clean-recursive dist dist-all distcheck distclean \ distclean-generic distclean-recursive distclean-tags distdir \ dvi dvi-am dvi-recursive info info-am info-recursive install \ install-am install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-recursive tags tags-recursive uninstall \ uninstall-am uninstall-info-am uninstall-info-recursive \ uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lookup-1.4.1/configure0000755000076400007640000021015310557543722015215 0ustar kazuhikokazuhiko#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by Autoconf 2.52d. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Sed expression to map a string onto a valid variable name. as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # Name of the executable. as_me=`echo "$0" |sed 's,.*[\\/],,'` if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file as_executable_p="test -f" # Support unset when possible. if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # NLS nuisances. $as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } $as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } $as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } $as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} ac_unique_file="lisp/lookup.el" # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. build=$build_alias host=$host_alias target=$target_alias # FIXME: should be removed in autoconf 3.0. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_prog=$0 ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'` test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-emacs=EMACS compile with EMACS EMACS=emacs, xemacs... --with-lispdir=DIR emacs lisp files go to DIR guessed _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue cd $ac_dir if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\./,,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.52d. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` PATH = $PATH _ASUNAME } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Also quote any args containing shell meta-characters. ac_configure_args= ac_sep= for ac_arg do case $ac_arg in -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ac_sep=" " ;; *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg" ac_sep=" " ;; esac # Get rid of the leading space. done # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:826: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:837: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:845: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:861: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:865: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:871: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:873: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:875: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. It doesn't matter if # we pass some twice (in addition to the command line arguments). if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ac_configure_args="$ac_configure_args '$ac_arg'" ;; *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:894: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:896: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac echo "#! $SHELL" >conftest.sh echo "exit 0" >>conftest.sh chmod +x conftest.sh if { (echo "$as_me:916: PATH=\".;.\"; conftest.sh") >&5 (PATH=".;."; conftest.sh) 2>&5 ac_status=$? echo "$as_me:919: \$? = $ac_status" >&5 (exit $ac_status); }; then ac_path_separator=';' else ac_path_separator=: fi PATH_SEPARATOR="$ac_path_separator" rm -f conftest.sh ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:945: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:965: checking for a BSD compatible install" >&5 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_IFS=$IFS; IFS=$ac_path_separator for ac_dir in $PATH; do IFS=$ac_save_IFS # Account for people who put trailing slashes in PATH elements. case $ac_dir/ in / | ./ | .// | /cC/* \ | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \ | /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do if $as_executable_p "$ac_dir/$ac_prog"; then if test $ac_prog = install && grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:1014: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:1025: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:1049: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:1062: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:1068: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= am_backtick='`' { echo "$as_me:1093: WARNING: ${am_backtick}missing' script is too old or missing" >&5 echo "$as_me: WARNING: ${am_backtick}missing' script is too old or missing" >&2;} fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:1101: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_AWK="$ac_prog" echo "$as_me:1116: found $ac_dir/$ac_word" >&5 break done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:1124: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:1127: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:1134: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="${MAKE}"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:1154: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:1158: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi rm -f .deps 2>/dev/null mkdir .deps 2>/dev/null if test -d .deps; then DEPDIR=.deps else # MS-DOS does not allow filenames that begin with a dot. DEPDIR=_deps fi rmdir .deps 2>/dev/null # test to see if srcdir already configured if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:1194: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # Define the identity of the package. PACKAGE=lookup VERSION=`cat VERSION` cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Autoconf 2.50 wants to disallow AM_ names. We explicitly allow # the ones we care about. # Autoconf 2.50 always computes EXEEXT. However we need to be # compatible with 2.13, for now. So we always define EXEEXT, but we # don't compute it. # Similar for OBJEXT -- only we only use OBJEXT if the user actually # requests that it be used. This is a bit dumb. : ${OBJEXT=o} # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} AMTAR=${AMTAR-"${am_missing_run}tar"} install_sh=${install_sh-"$am_aux_dir/install-sh"} INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:1255: checking for a BSD compatible install" >&5 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_IFS=$IFS; IFS=$ac_path_separator for ac_dir in $PATH; do IFS=$ac_save_IFS # Account for people who put trailing slashes in PATH elements. case $ac_dir/ in / | ./ | .// | /cC/* \ | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \ | /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do if $as_executable_p "$ac_dir/$ac_prog"; then if test $ac_prog = install && grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:1304: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:1315: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="${MAKE}"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:1335: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:1339: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi # Check whether --with-emacs or --without-emacs was given. if test "${with_emacs+set}" = set; then withval="$with_emacs" case "${withval}" in yes) EMACS= ;; no) { { echo "$as_me:1349: error: emacs is not available" >&5 echo "$as_me: error: emacs is not available" >&2;} { (exit 1); exit 1; }; } ;; *) EMACS=${withval} ;; esac else EMACS= fi; if test "x$EMACS" = "xt" -o "x$EMACS" = x; then for ac_prog in emacs xemacs mule do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:1362: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_EMACS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $EMACS in [\\/]* | ?:[\\/]*) ac_cv_path_EMACS="$EMACS" # Let the user override the test with a path. ;; *) ac_save_IFS=$IFS; IFS=$ac_path_separator ac_dummy="$PATH" for ac_dir in $ac_dummy; do IFS=$ac_save_IFS test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_EMACS="$ac_dir/$ac_word" echo "$as_me:1379: found $ac_dir/$ac_word" >&5 break fi done ;; esac fi EMACS=$ac_cv_path_EMACS if test -n "$EMACS"; then echo "$as_me:1390: result: $EMACS" >&5 echo "${ECHO_T}$EMACS" >&6 else echo "$as_me:1393: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$EMACS" && break done test -n "$EMACS" || EMACS="no" if test $EMACS = no; then { { echo "$as_me:1402: error: you should install Emacs first" >&5 echo "$as_me: error: you should install Emacs first" >&2;} { (exit 1); exit 1; }; } fi fi echo "$as_me:1407: checking where emacs files are in" >&5 echo $ECHO_N "checking where emacs files are in... $ECHO_C" >&6 EMACS_BASENAME="`echo x$EMACS | sed -e 's/x//' -e 's/^.*\///'`" if test "x$emacsdir" = x; then if test "x$prefix" = "xNONE"; then prefix=$ac_default_prefix fi emacsdir="\$(datadir)/emacs" case "$EMACS_BASENAME" in emacs|emacs-*) if test -d $prefix/lib/emacs; then emacsdir="$prefix/lib/emacs" fi if test -d $prefix/share/emacs; then emacsdir="$prefix/share/emacs" fi ;; xemacs|xemacs-*) if test -d $prefix/lib/xemacs; then emacsdir="$prefix/lib/xemacs" fi if test -d $prefix/share/xemacs; then emacsdir="$prefix/share/xemacs" fi ;; mule|mule-*) if test -d $prefix/lib/emacs; then emacsdir="$prefix/lib/emacs" fi if test -d $prefix/share/emacs; then emacsdir="$prefix/share/emacs" fi if test -d $prefix/lib/mule; then emacsdir="$prefix/lib/mule" fi if test -d $prefix/share/mule; then emacsdir="$prefix/share/mule" fi ;; esac fi echo "$as_me:1448: result: $emacsdir" >&5 echo "${ECHO_T}$emacsdir" >&6 # Check whether --with-lispdir or --without-lispdir was given. if test "${with_lispdir+set}" = set; then withval="$with_lispdir" case "${withval}" in yes) lispdir= ;; no) { { echo "$as_me:1456: error: lispdir is not available" >&5 echo "$as_me: error: lispdir is not available" >&2;} { (exit 1); exit 1; }; } ;; *) lispdir=${withval} ;; esac else lispdir= fi; echo "$as_me:1464: checking where .elc files should go" >&5 echo $ECHO_N "checking where .elc files should go... $ECHO_C" >&6 if test "x$lispdir" = x; then lispdir="$emacsdir/site-lisp" if test -d $emacsdir/lisp; then lispdir="$emacsdir/lisp" fi case "$EMACS_BASENAME" in xemacs|xemacs-*) lispdir="$lispdir/lookup" ;; esac fi echo "$as_me:1477: result: $lispdir" >&5 echo "${ECHO_T}$lispdir" >&6 ac_config_files="$ac_config_files Makefile lisp/Makefile texi/Makefile packages/Makefile packages/jitenban97/Makefile packages/dict-misc/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overriden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if cmp -s $cache_file confcache; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:1590: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated automatically by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # Name of the executable. as_me=`echo "$0" |sed 's,.*[\\/],,'` if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file as_executable_p="test -f" # Support unset when possible. if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # NLS nuisances. $as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } $as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } $as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } $as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running \$as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by $as_me, which was generated by GNU Autoconf 2.52d. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.52d, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` shift set dummy "$ac_option" "$ac_optarg" ${1+"$@"} shift ;; -*);; *) # This is not an option, so the user has probably given explicit # arguments. ac_need_defaults=false;; esac case $1 in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion" exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;; _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:1785: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) shift CONFIG_FILES="$CONFIG_FILES $1" ac_need_defaults=false;; --header | --heade | --head | --hea ) shift CONFIG_HEADERS="$CONFIG_HEADERS $1" ac_need_defaults=false;; # This is an error. -*) { { echo "$as_me:1804: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "lisp/Makefile" ) CONFIG_FILES="$CONFIG_FILES lisp/Makefile" ;; "texi/Makefile" ) CONFIG_FILES="$CONFIG_FILES texi/Makefile" ;; "packages/Makefile" ) CONFIG_FILES="$CONFIG_FILES packages/Makefile" ;; "packages/jitenban97/Makefile" ) CONFIG_FILES="$CONFIG_FILES packages/jitenban97/Makefile" ;; "packages/dict-misc/Makefile" ) CONFIG_FILES="$CONFIG_FILES packages/dict-misc/Makefile" ;; *) { { echo "$as_me:1829: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. : ${TMPDIR=/tmp} { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=$TMPDIR/cs$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@DEFS@,$DEFS,;t t s,@LIBS@,$LIBS,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@AMTAR@,$AMTAR,;t t s,@install_sh@,$install_sh,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@DEPDIR@,$DEPDIR,;t t s,@EMACS@,$EMACS,;t t s,@emacsdir@,$emacsdir,;t t s,@lispdir@,$lispdir,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { case "$ac_dir" in [\\/]* | ?:[\\/]* ) as_incr_dir=;; *) as_incr_dir=.;; esac as_dummy="$ac_dir" for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do case $as_mkdir_dir in # Skip DOS drivespec ?:) as_incr_dir=$as_mkdir_dir ;; *) as_incr_dir=$as_incr_dir/$as_mkdir_dir test -d "$as_incr_dir" || mkdir "$as_incr_dir" || { { echo "$as_me:2015: error: cannot create \"$ac_dir\"" >&5 echo "$as_me: error: cannot create \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; } ;; esac done; } if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\./,,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:2052: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated automatically by config.status. */ configure_input="Generated automatically from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:2070: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; *) # Relative if test -f "$f"; then # Build tree echo $f elif test -f "$srcdir/$f"; then # Source tree echo $srcdir/$f else # /dev/null tree { { echo "$as_me:2083: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: exec 5>/dev/null $SHELL $CONFIG_STATUS || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi lookup-1.4.1/AUTHORS0000644000076400007640000000033307401226677014354 0ustar kazuhikokazuhikoKeisuke Nishida wrote most of program files and documents. Tsuchiya Masatoshi wrote lisp/lookup-kanji.el, lisp/ndnmz.el, lisp/sdicf.el and lisp/stem-english.el. lookup-1.4.1/COPYING0000644000076400007640000004310507401226701014327 0ustar kazuhikokazuhiko GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program 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 of the License, or (at your option) any later version. This program 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 this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. lookup-1.4.1/ChangeLog0000644000076400007640000001131510557547542015063 0ustar kazuhikokazuhiko2007-01-30 Kazuhiko * Version 1.4.1 released. 2007-01-19 Tatsuya Kinoshita * ndeb-binary.el: [CVE-2007-0237] Make a temporary subdirectory securely. (ndeb-binary-temporary-subdirectory): New variable. (ndeb-binary-bind-temporary-file, ndeb-binary-insert-color-image): Use it and fix misuse of make-temp-name. (ndeb-binary-temporary-subdirectory-initialize): New function. (ndeb-binary-initialize): Use it. (ndeb-binary-temporary-subdirectory-cleanup): New function. 2004-02-13 Kazuhiko * Version 1.4 released. 2002-10-18 Satomi * install.el (install-elisp-files): Add ndeb-binary.el. 2001-11-29 Kazuhiko * VERSION: Bumped to 1.4devel 2001-11-XX Yamagata, Kazuhiko ... * Support eblook-1.5 inline image (BMP, JPEG, XBM) 200X-XX-XX Keisuke Nishida * Release 1.3. 2000-02-12 Keisuke Nishida * Release 1.2. 1999-12-14 Keisuke Nishida * Makefile.am (MAINTAINERCLEANFILES): Remove generated files. 1999-11-19 Satoru Takabayashi * autogen.sh: New file: [lookup-ja 1094] * Makefile.in,texi/Makefile.in,lisp/Makefile.in,aclocal.m4, configure,config.status: Removed. 1999-10-25 Satoru Takabayashi * configure.in: Add AC_PROG_INSTALL and AC_PROG_MAKE_SET macros. 1999-10-26 Kazuyoshi KOREEDA * install.el Change for formatting info files with Mule-2.3. (save-current-buffer): Add defmacro for Mule-2.3. 1999-10-20 Keisuke Nishida * INSTALL: Removed. * README: Updated. * Makefile.am: Add option AUTOMAKE_OPTIONS = foreign. 1999-09-21 Satoru Takabayashi * VERSION: Change the version number from 1.0 to 1.1. 1999-05-05 Satoru Takabayashi * Makefile.am: Modify EXTRA_DIST entries * etc/Makefile.{am,in}: Remove files. 1999-04-28 Keisuke Mori * VERSION: New file. every file that needs the version number of Lookup should consult this file. * configure.in: Get the version number from 'VERSION' file. * install.el: Get the version number from 'VERSION' file. Info files are installed with being formatted if the pre-formatted Info file has not been presented. 1999-02-13 NISHIDA Keisuke * README.W32: Remove file. 1999-02-12 NISHIDA Keisuke * install.el: New file. 1999-01-23 NISHIDA Keisuke * Use autoconf-2.13 and automake-1.4. 1999-01-17 NISHIDA Keisuke * acinclude.m4: Recover the option `--with-emacs'. 1998-12-25 NISHIDA Keisuke * acinclude.m4: Use the environment variable `EMACS' instead of the configure option `--with-emacs'. * README: Remove file. * README-ja: Rename to README again. 1998-10-18 NISHIDA Keisuke * README: Translate info English. * README-ja: In Japanese. 1998-07-15 NISHIDA Keisuke * aclocal.m4: Rewriten with new option `--with-emacsdir'. 1998-06-25 NISHIDA Keisuke * Version 0.9.6 released. 1998-06-20 NISHIDA Keisuke * Version 0.9.5 released. 1998-06-18 NISHIDA Keisuke * Version 0.9.4 released. 1998-06-17 NISHIDA Keisuke * Version 0.9.3 released. 1998-06-15 NISHIDA Keisuke * Version 0.9.2 released. 1998-06-14 NISHIDA Keisuke * Version 0.9.1 released. 1998-06-13 NISHIDA Keisuke * Version 0.9 released. 1998-05-24 NISHIDA Keisuke * configure.in: Delete entry "lisp/lookup-compile.el" from output files. 1998-05-10 NISHIDA Keisuke * README, README.W32: Updated for Lookup 0.9. 1998-03-16 NISHIDA Keisuke * Version 0.8.5 released. 1998-03-09 NISHIDA Keisuke * Version 0.8.4 released. 1998-03-08 NISHIDA Keisuke * Version 0.8.3 released. 1998-03-08 NISHIDA Keisuke * Version 0.8.2 released. 1998-03-07 NISHIDA Keisuke * acinclude.el: Modified to set default lispdir to ".../site-lisp" without for XEmacs. * configure.in: Add entry "lisp/lookup-compile.el" to output files. 1998-03-06 NISHIDA Keisuke * Version 0.8.1 released. * acinclude.m4: Rewriten by Motoyuki Kasahara . 1998-03-05 NISHIDA Keisuke * Version 0.8 released. lookup-1.4.1/Makefile.am0000644000076400007640000000033007401231057015321 0ustar kazuhikokazuhikoAUTOMAKE_OPTIONS = foreign SUBDIRS = lisp texi packages EXTRA_DIST = VERSION install.el MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in stamp-h.in \ configure missing mkinstalldirs install-sh texinfo.tex lookup-1.4.1/acinclude.m40000644000076400007640000000600507401226677015477 0ustar kazuhikokazuhikodnl Copyright (C) 1999 NISHIDA Keisuke dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2, or (at your option) dnl any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA dnl 02111-1307, USA. AC_DEFUN(AM_PATH_LISPDIR, [dnl # dnl # Check Emacs dnl # AC_ARG_WITH(emacs, [ --with-emacs=EMACS compile with EMACS [EMACS=emacs, xemacs...]], [case "${withval}" in yes) EMACS= ;; no) AC_MSG_ERROR([emacs is not available]) ;; *) EMACS=${withval} ;; esac], EMACS=) if test "x$EMACS" = "xt" -o "x$EMACS" = x; then AC_PATH_PROGS(EMACS, emacs xemacs mule, no) if test $EMACS = no; then AC_MSG_ERROR(you should install Emacs first) fi fi dnl # dnl # Check Emacs directories dnl # AC_MSG_CHECKING([where emacs files are in]) EMACS_BASENAME="`echo x$EMACS | sed -e 's/x//' -e 's/^.*\///'`" if test "x$emacsdir" = x; then if test "x$prefix" = "xNONE"; then prefix=$ac_default_prefix fi emacsdir="\$(datadir)/emacs" case "$EMACS_BASENAME" in emacs|emacs-*) if test -d $prefix/lib/emacs; then emacsdir="$prefix/lib/emacs" fi if test -d $prefix/share/emacs; then emacsdir="$prefix/share/emacs" fi ;; xemacs|xemacs-*) if test -d $prefix/lib/xemacs; then emacsdir="$prefix/lib/xemacs" fi if test -d $prefix/share/xemacs; then emacsdir="$prefix/share/xemacs" fi ;; mule|mule-*) if test -d $prefix/lib/emacs; then emacsdir="$prefix/lib/emacs" fi if test -d $prefix/share/emacs; then emacsdir="$prefix/share/emacs" fi if test -d $prefix/lib/mule; then emacsdir="$prefix/lib/mule" fi if test -d $prefix/share/mule; then emacsdir="$prefix/share/mule" fi ;; esac fi AC_MSG_RESULT($emacsdir) AC_SUBST(emacsdir) dnl # dnl # Check Emacs site-lisp directories dnl # AC_ARG_WITH(lispdir, [ --with-lispdir=DIR emacs lisp files go to DIR [guessed]], [case "${withval}" in yes) lispdir= ;; no) AC_MSG_ERROR(lispdir is not available) ;; *) lispdir=${withval} ;; esac], lispdir=) AC_MSG_CHECKING([where .elc files should go]) if test "x$lispdir" = x; then lispdir="$emacsdir/site-lisp" if test -d $emacsdir/lisp; then lispdir="$emacsdir/lisp" fi case "$EMACS_BASENAME" in xemacs|xemacs-*) lispdir="$lispdir/lookup" ;; esac fi AC_MSG_RESULT($lispdir) AC_SUBST(lispdir)]) lookup-1.4.1/aclocal.m40000644000076400007640000004637010557543722015156 0ustar kazuhikokazuhiko# aclocal.m4 generated automatically by aclocal 1.5 # Copyright 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. dnl Copyright (C) 1999 NISHIDA Keisuke dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2, or (at your option) dnl any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA dnl 02111-1307, USA. AC_DEFUN(AM_PATH_LISPDIR, [dnl # dnl # Check Emacs dnl # AC_ARG_WITH(emacs, [ --with-emacs=EMACS compile with EMACS [EMACS=emacs, xemacs...]], [case "${withval}" in yes) EMACS= ;; no) AC_MSG_ERROR([emacs is not available]) ;; *) EMACS=${withval} ;; esac], EMACS=) if test "x$EMACS" = "xt" -o "x$EMACS" = x; then AC_PATH_PROGS(EMACS, emacs xemacs mule, no) if test $EMACS = no; then AC_MSG_ERROR(you should install Emacs first) fi fi dnl # dnl # Check Emacs directories dnl # AC_MSG_CHECKING([where emacs files are in]) EMACS_BASENAME="`echo x$EMACS | sed -e 's/x//' -e 's/^.*\///'`" if test "x$emacsdir" = x; then if test "x$prefix" = "xNONE"; then prefix=$ac_default_prefix fi emacsdir="\$(datadir)/emacs" case "$EMACS_BASENAME" in emacs|emacs-*) if test -d $prefix/lib/emacs; then emacsdir="$prefix/lib/emacs" fi if test -d $prefix/share/emacs; then emacsdir="$prefix/share/emacs" fi ;; xemacs|xemacs-*) if test -d $prefix/lib/xemacs; then emacsdir="$prefix/lib/xemacs" fi if test -d $prefix/share/xemacs; then emacsdir="$prefix/share/xemacs" fi ;; mule|mule-*) if test -d $prefix/lib/emacs; then emacsdir="$prefix/lib/emacs" fi if test -d $prefix/share/emacs; then emacsdir="$prefix/share/emacs" fi if test -d $prefix/lib/mule; then emacsdir="$prefix/lib/mule" fi if test -d $prefix/share/mule; then emacsdir="$prefix/share/mule" fi ;; esac fi AC_MSG_RESULT($emacsdir) AC_SUBST(emacsdir) dnl # dnl # Check Emacs site-lisp directories dnl # AC_ARG_WITH(lispdir, [ --with-lispdir=DIR emacs lisp files go to DIR [guessed]], [case "${withval}" in yes) lispdir= ;; no) AC_MSG_ERROR(lispdir is not available) ;; *) lispdir=${withval} ;; esac], lispdir=) AC_MSG_CHECKING([where .elc files should go]) if test "x$lispdir" = x; then lispdir="$emacsdir/site-lisp" if test -d $emacsdir/lisp; then lispdir="$emacsdir/lisp" fi case "$EMACS_BASENAME" in xemacs|xemacs-*) lispdir="$lispdir/lookup" ;; esac fi AC_MSG_RESULT($lispdir) AC_SUBST(lispdir)]) # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. # serial 5 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # We require 2.13 because we rely on SHELL being computed by configure. AC_PREREQ([2.13]) # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED. # The purpose of this macro is to provide the user with a means to # check macros which are provided without letting her know how the # information is coded. # If this macro is not defined by Autoconf, define it here. ifdef([AC_PROVIDE_IFELSE], [], [define([AC_PROVIDE_IFELSE], [ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE]) # ---------------------------------------------- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first]) fi # Define the identity of the package. PACKAGE=$1 AC_SUBST(PACKAGE)dnl VERSION=$2 AC_SUBST(VERSION)dnl ifelse([$3],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])]) # Autoconf 2.50 wants to disallow AM_ names. We explicitly allow # the ones we care about. ifdef([m4_pattern_allow], [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl # Autoconf 2.50 always computes EXEEXT. However we need to be # compatible with 2.13, for now. So we always define EXEEXT, but we # don't compute it. AC_SUBST(EXEEXT) # Similar for OBJEXT -- only we only use OBJEXT if the user actually # requests that it be used. This is a bit dumb. : ${OBJEXT=o} AC_SUBST(OBJEXT) # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_DEP_TRACK])dnl AC_REQUIRE([AM_SET_DEPDIR])dnl AC_PROVIDE_IFELSE([AC_PROG_][CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_][CC], defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_][CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_][CXX], defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) # # Check to make sure that the build environment is sane. # # serial 3 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # serial 2 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= am_backtick='`' AC_MSG_WARN([${am_backtick}missing' script is too old or missing]) fi ]) # AM_AUX_DIR_EXPAND # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [ # expand $ac_aux_dir to an absolute path am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd` ]) # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # serial 4 -*- Autoconf -*- # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # --------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX" or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'] [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. echo '#include "conftest.h"' > conftest.c echo 'int i;' > conftest.h echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=conftest.c object=conftest.o \ depfile=conftest.Po tmpdepfile=conftest.TPo \ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && grep conftest.h conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then am_cv_$1_dependencies_compiler_type=$depmode break fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) $1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type" AC_SUBST([$1DEPMODE]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [rm -f .deps 2>/dev/null mkdir .deps 2>/dev/null if test -d .deps; then DEPDIR=.deps else # MS-DOS does not allow filenames that begin with a dot. DEPDIR=_deps fi rmdir .deps 2>/dev/null AC_SUBST(DEPDIR) ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) pushdef([subst], defn([AC_SUBST])) subst(AMDEPBACKSLASH) popdef([subst]) ]) # Generate code to set up dependency tracking. # This macro should only be invoked once -- use via AC_REQUIRE. # Usage: # AM_OUTPUT_DEPENDENCY_COMMANDS # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[ AC_OUTPUT_COMMANDS([ test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do case "$mf" in Makefile) dirpart=.;; */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;; *) continue;; esac grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # We invoke sed twice because it is the simplest approach to # changing $(DEPDIR) to its actual value in the expansion. for file in `sed -n -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`echo "$file" | sed -e 's|/[^/]*$||'` $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1 # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])]) # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' doit: @echo done END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include='#' am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote='"' _am_result=BSD fi fi AC_SUBST(am__include) AC_SUBST(am__quote) AC_MSG_RESULT($_am_result) rm -f confinc confmf ]) # serial 3 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. # # FIXME: Once using 2.50, use this: # m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl AC_DEFUN([AM_CONDITIONAL], [ifelse([$1], [TRUE], [errprint(__file__:__line__: [$0: invalid condition: $1 ])dnl m4exit(1)])dnl ifelse([$1], [FALSE], [errprint(__file__:__line__: [$0: invalid condition: $1 ])dnl m4exit(1)])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi]) lookup-1.4.1/configure.in0000644000076400007640000000035510556673426015624 0ustar kazuhikokazuhikoAC_INIT(lisp/lookup.el) AM_INIT_AUTOMAKE(lookup, `cat VERSION`) AC_PROG_INSTALL AC_PROG_MAKE_SET AM_PATH_LISPDIR AC_OUTPUT(Makefile lisp/Makefile texi/Makefile packages/Makefile packages/jitenban97/Makefile packages/dict-misc/Makefile) lookup-1.4.1/install-sh0000755000076400007640000001273610557543722015321 0ustar kazuhikokazuhiko#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 lookup-1.4.1/missing0000755000076400007640000002123110557543722014702 0ustar kazuhikokazuhiko#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.3 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar ${1+"$@"} && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar ${1+"$@"} && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" ${1+"$@"} && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" ${1+"$@"} && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 lookup-1.4.1/mkinstalldirs0000755000076400007640000000133207401226676016111 0ustar kazuhikokazuhiko#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.1.1.1 2001/11/28 18:32:30 kazuhiko Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here lookup-1.4.1/VERSION0000644000076400007640000000000610556672403014346 0ustar kazuhikokazuhiko1.4.1 lookup-1.4.1/install.el0000644000076400007640000002366010005425335015266 0ustar kazuhikokazuhiko;;; install.el --- Lookup installer ;; Copyright (C) 1999 NISHIDA Keisuke ;; $Id: install.el,v 1.2 2004/01/27 09:09:49 kazuhiko Exp $ ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ;;; Code: (if (string< emacs-version "19.29") (setq command-line-args-left (cdr command-line-args-left))) (defconst install-elisp-files '("evi.el" "evi-mule.el" "lookup.el" "lookup-utils.el" "lookup-types.el" "lookup-vse.el" "lookup-package.el" "lookup-kanji.el" "lookup-entry.el" "lookup-content.el" "lookup-select.el" "ndic.el" "ndeb.el" "ndtp.el" "ndict.el" "ndkks.el" "ndspell.el" "ndcookie.el" "ndmisc.el" "ndsrd.el" "sdicf.el" "stem-english.el" "lookup-vars.el" "ndeb-binary.el")) (defconst install-info-files '("lookup.info" "lookup-guide.info")) (defvar install-lisp-directory nil) (defvar install-info-directory nil) (defvar install-lookup-version "unknown") (defun install-check-directory (directory) (and (not (file-exists-p directory)) (y-or-n-p (format "Directory %s is not exist. Creat it? " directory)) (make-directory directory t)) (if (not (file-directory-p directory)) (error "%s is not directory" directory)) (directory-file-name (expand-file-name directory))) (or (fboundp 'with-current-buffer) (defmacro with-current-buffer (buffer &rest body) (` (save-current-buffer (set-buffer (, buffer)) (,@ body))))) (or (fboundp 'save-current-buffer) (defmacro save-current-buffer (&rest body) (` (let ((evi-orig-buffer (current-buffer))) (unwind-protect (progn (,@ body)) (set-buffer evi-orig-buffer)))))) ;; get the version number of lookup (with-current-buffer (get-buffer-create " *work lookup-version*") (erase-buffer) (setq install-lookup-version (condition-case nil (progn (insert-file-contents "VERSION") (goto-char (point-min)) (buffer-substring (point-min) (progn (end-of-line) (point)))) (error "unknown"))) (kill-buffer (current-buffer))) ;; message (if noninteractive nil (switch-to-buffer (generate-new-buffer "*Lookup Installer*")) (insert "Lookup $B%$%s%9%H!<%i(B\n") (insert "===================\n\n") (insert "Lookup $B$N%$%s%9%H!<%k$r;O$a$^$9!#(B") (insert "$BESCf$GCfCG$9$k$K$O(B C-g $B$r2!$7$F2<$5$$!#(B\n\n")) ;; directory (if noninteractive nil (insert "$B%G%#%l%/%H%j$N7hDj(B\n") (insert "------------------\n\n") (insert "elisp $B%U%!%$%k$N%G%#%l%/%H%j$rF~NO$7$F2<$5$$(B:\n")) (let ((default "~/emacs/lisp/lookup/")) (setq install-lisp-directory (install-check-directory (if noninteractive (or (car command-line-args-left) default) (read-file-name "Lisp directory: " default default))))) (if noninteractive nil (insert " -> " install-lisp-directory "\n\n") (sit-for 0)) (if noninteractive nil (insert "info $B%U%!%$%k$N%G%#%l%/%H%j$rF~NO$7$F2<$5$$(B:\n")) (let ((default "~/emacs/info/")) (setq install-info-directory (install-check-directory (if noninteractive (or (car (cdr command-line-args-left)) default) (read-file-name "Info directory: " default default))))) (if noninteractive nil (insert " -> " install-info-directory "\n\n") (sit-for 0)) ;; lookup-vars.el (if noninteractive nil (insert "$B%$%s%9%H!<%k$Ne$G%$%s%9%H!<%k$O=*N;$G$9!#$3$3$G(B C-c C-c $B$H%?%$%W$9$k$H%9%?!<%H%"%C(B $B%W%,%$%I$,3+$+$l$^$9$N$G!"$^$:$O$=$A$i$+$i$4Ms2<$5$$!#(B -- EOF -- ") (goto-char (point-min)) (set-buffer-modified-p nil) (view-mode) (local-set-key "\C-c\C-c" 'install-open-info)) (defun install-open-info () (interactive) (require 'info) (Info-find-node (expand-file-name "lookup-guide" install-info-directory) "Top")) ;;; install.el ends here lookup-1.4.1/lisp/0000755000076400007640000000000010557547477014266 5ustar kazuhikokazuhikolookup-1.4.1/lisp/README0000644000076400007640000000205507401226702015123 0ustar kazuhikokazuhiko== core files == lookup.el - $B%a%$%s(B lookup-vars.el - $BJQ?t$N@k8@(B lookup-utils.el - $B%f!<%F%#%j%F%#4X?t(B lookup-types.el - $B%G!<%?9=B$(B lookup-vse.el - $B8!:w%k!<%A%s(B == mode files == lookup-entry.el - Entry mode lookup-content.el - Content mode lookup-select.el - Select mode == optional files == lookup-package.el - $B%Q%C%1!<%84IM}(B lookup-compile.el - $B%P%$%H%3%s%Q%$%kMQ(B == agent files == ndic.el - $B%U%j!<<-=q$+$i8!:w(B ndeb.el - eblook $B%$%s%?!<%U%'!<%9(B ndtp.el - NDTP $B%/%i%$%"%s%H(B ndict.el - DICT $B%/%i%$%"%s%H(B ndnmz.el - Namazu $B%$%s%?!<%U%'!<%9(B ndspell.el - $B%9%Z%k%A%'%C%/(B/$B8!:w(B ndcookie.el - cookie $B%U%!%$%k$+$i8!:w(B ndmisc.el - $B;(MQ%(!<%8%'%s%H(B == other files == evi*.el - Emacs $B$N%P!<%8%g%s3V:9$r5[<}(B sdicf.el - SDIC $B7A<0<-=q$N%"%/%;%9MQ%i%$%V%i%j(B stem-english.el - $B1QC18l$N8lHx$r lookup-vars.el # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lookup-1.4.1/lisp/ChangeLog0000644000076400007640000017536210005425335016026 0ustar kazuhikokazuhiko2004-01-17 Shun-ichi TAHARA * ndeb.el: support prev and next links. 2004-01-13 Shun-ichi TAHARA * lookup-types.el, ndeb.el: support inline image with XEmacs. 2003-10-29 Takashi NEMOTO * lookup-select.el (lookup-select-display): fix typo 2002-11-20 Satomi * ndeb-binary.el: remove extra newlines and quotes. * ndeb-binary.el (ndeb-binary-extract-link): expand the output filename using buffer's default-directory. * ndeb-binary.el (ndeb-binary-insert-color-image): use condition-case instead of ignore-errors. 2002-11-20 Satomi * lookup-types.el: Prevent images from beign erased on XEmacs when the content buffer is redisplayed from the cache. (lookup-glyph-insert): Use text property instead of extent. (lookup-img-file-insert): Use glyph if the image type is given. (lookup-bitmap-compose): Return all lines for the given xbm, not only the first line. * ndeb-binary.el: (ndeb-binary-glyph-compose-function): New variable. (ndeb-binary-glyph-insert-function): New variable. (ndeb-image-mono-face): Always define. (ndeb-binary-initialize): New function. (ndeb-binary-make-keymap): Removed. Use ndeb-binary-initialize instead. (ndeb-binary-insert-mono-image): Set face on XEmacs and bitmap-mule environment as well. 2002-11-17 Satomi * ndeb-binary.el (ndeb-image-mono-face): New face (xbm-aware FSF Emacs only). * ndeb-binary.el (ndeb-binary-insert-mono-image): Set face on the inserted image when XBM is natively supported (xbm-aware FSF Emacs only). (ndeb-binary-insert-mono-image, ndeb-binary-insert-color-image): Insert \n after the image unless one already exists. 2002-11-17 Satomi * ndeb-binary.el (ndeb-binary-expand-file-name): Use directory-sep-char instead of replacing the directory separators manually. 2002-11-16 Satomi * ndeb-binary.el (ndeb-image-caption-face, ndeb-image-reference-face): ([lookup 2188]) Change the default foreground color. 2002-11-15 Satomi * lookup-types.el: Support BMP image. However, a critical problem exist that Emacs may enter an infinit loop when the bitmap is compressed. Some workaround may be required. (lookup-img-decode-bmp): New function. (lookup-img-file-insert): Add image/bmp entry to format-alist. * ndeb.el (:arranges): ([lookup 2208]) Relocate ndeb-arrange-gaijis so that it is called after ndeb-arrange-references. (ndeb-arrange-fill-lines): ([lookup 2184]) Avoid empty lines being inserted on XEmacs. * ndeb-binary.el: Remove unused variables. (ndeb-binary-expand-file-name): New function, which converts "\\" characters in the expanded path to "/". Use this to make filename that will be passed to eblook. (ndeb-arrange-bmp): Try `tiff' before `bmp' to avoid the infinit loop problem described above. 2002-10-22 Satomi * lookup.el (lookup-hide-buffer): Call bury-buffer only if the buffer exists. * lookup-util.el (lookup-table-insert): Manually format %t fields to properly align columns on XEmacs ([lookup 2132]). (lookup-process-kill): Add error handling. 2002-10-21 Satomi * ndeb-binary.el (ndeb-binary-set-link): Use keymap property on Emacs 21 or later, instead of local-map. 2002-10-21 Satomi * lookup-types.el (lookup-inline-image-p): Use image-instantiator-format-list on XEmacs to check if the given type is supported on the system. 2002-10-18 Satomi * lookup-content.el (lookup-content-mode-map): Bind to lookup-content-next-tab-stop, to lookup-content-previous-tab-stop. (lookup-content-help-echo): New function. (lookup-next-tab-stop): New function. (lookup-previous-tab-stop): New function. * lookup-types.el (lookup-set-link): Add lookup-tab-stop property. (lookup-next-tab-stop): New function. (lookup-next-tab-stop): New function. (lookup-img-file-insert): Bug fix. * ndeb.el: Require ndeb-binary. (ndeb-clear): New function; was alias. (ndeb :arranges): Arrange gaijis first. (ndeb :xbm-regexp): Removed; now implemented in ndeb-binary.el. (ndeb :bmp-regexp): Ditto. (ndeb :jpeg-regexp): Ditto. (ndeb-arrange-xbm): Ditto. (ndeb-arrange-bmp): Ditto. (ndeb-arrange-jpeg): Ditto. * ndeb-binary.el: New file to support binary files on ndeb. 2002-10-04 yamagata@nwgpc.kek.jp * ndtp.el: ([lookup 1985]) Bug fixed. (ndtp-require-select): Some dictionary have no gaiji image whereas the catalogue says it has. * ndeb.el: ([edict 2130]) Bug fixed. (ndeb-dictionary-content): decorate-mode should be turned on only for content fetching. 2002-10-02 Satomi * lookup-types.el: Support Emacsen prior to 21 and 21 for Windows. (lookup-img-file-insert): Add optional 2nd parameter TYPE to specify the image type. (lookup-inline-image-p): Add parameter TYPE, which should be the image type to test. * lookup-vars.el.in: Use bitmap-mule to display gaiji if Emacs does not have xbm support. (lookup-init-gaiji-functions): Give priority to lookup-use-bitmap. * lookup.el: Display splash screen via bitmap-mule if Emacs does not support inline images. * ndeb.el: Support Emacsen prior to 21 and 21 for Windows. (ndeb-arrange-xbm): Try to use bitmap-mule if Emacs does not have xbm support. (ndeb-arrange-bmp): Try to use bmp if tiff is not supported. (ndeb-arrange-jpeg): Add error handling. 2002-09-29 NEMOTO Takashi * ndeb.el: Temporary ignore tags. 2002-09-28 YAMAGATA * ndeb.el: Support . (ndeb-arrange-no-newline): New function. (ndeb-arrange-fill-lines): Ditto. 2001-12-19 Kazuhiko * ndeb.el (ndeb-arrange-xbm): Try to display images only when 'lookup-inline-image-p' returns non-nil. (ndeb-arrange-bmp): Ditto. (ndeb-arrange-jpeg): Ditto. * lookup-types.el (lookup-inline-image-p): New function. 2001-12-16 YAMAGATA * ndeb.el (ndeb-arrange-bmp): Add an error handling code. (ndeb-arrange-jpeg): Ditto. 2001-12-08 Kazuhiko * lookup-select.el (lookup-select-menu): New function. (lookup-select-mode-map): Define key. * lookup-entry.el (lookup-entry-menu): New function. (lookup-entry-mode-map): Define key. * lookup-entry.el (lookup-entry-show-menu): Ditto. * lookup-vse.el (lookup-vse-get-copyright): New function. 2001-12-06 YAMAGATA * ndeb.el (ndeb-dictionary-menu): Display whole contents of menu. (ndeb-dictionary-content): Ditto. 2001-12-01 Kazuhiko * lookup-types.el (lookup-img-file-insert): New function. * lookup-vars.el.in (lookup-use-bitmap): Set to nil by default if internal image suport is active. (lookup-inline-image): Define in this file as a custom variable. * lookup-types.el (temporary-file-directory): Define for emacsen that lacks difinition of it. * lookup.el (lookup-splash): Display XPM logo on emacs-21. * ndeb.el (ndeb:arranges): Arrange images at first. 2001-11-30 Takashi Nemoto * ndeb.el : remove extra line feed after BMP image 2001-11-30 Kazuhiko * ndeb.el (ndeb-max-image-size): New variable. (ndeb-arrange-bmp): Use 'insert-file-contents-internal' instead of insert-file. (ndeb-arrange-jpeg): Call 'create-image' with not a file but a data. (ndeb-arrange-bmp): Ditto. 2001-11-29 Kazuhiko * ndeb.el (ndeb-arrange-xbm): New function. (ndeb-arrange-bmp): Ditto. (ndeb-arrange-jpeg): Ditto. (ndeb-program-arguments): New variable for eblook 1.5 or later. (ndeb-process-open): Add 'ndeb-program-arguments'. * lookup-vse.el (lookup-inline-image): New variable. * lookup-vars.el.in (lookup-init-gaiji-functions): Support emacs-21 internal image function. * lookup-types.el: Ditto. (lookup-glyph-insert): New function. 2000-02-12 Keisuke Nishida * Release 1.2. 2000-02-09 Keisuke Nishida * Release 1.1.1. * ndeb.el (ndeb-process-open): Error if the directory is invalid. 2000-01-05 TSUCHIYA Masatoshi * lookup-entry.el (lookup-insert-entry, lookup-insert-entry-format): New variable to control entry buffer style is defined. 1999-12-24 Keisuke Nishida * lookup-content.el (lookup-content-cite-region): Call zmacs-deactivate-region on XEmacs. 1999-12-14 Keisuke Nishida * Makefile.am (MAINTAINERCLEANFILES): Remove generated files. 1999-11-30 Kazuhiro Ito * ndeb.el: Remove changes on 1999-11-25 * ndtp.el: Remove changes on 1999-11-25 contents. 1999-11-25 Kazuhiro Ito * ndeb.el (ndeb-dictionary-search): Don't suppress duplicated hit contents. * ndtp.el (ndtp-dictionary-search): Don't suppress duplicated hit contents. 1999-10-20 Keisuke Nishida * lookup-utils.el (lookup-process-kill): Set process-filter to nil before deleting the process. 1999-09-20 Masatoshi Tsuchiya * ndnmz.el (ndnmz-generate-temp-buffer): Small fix. 1999-09-10 Masatoshi Tsuchiya * evi.el (string-to-char-list): Small modification for Mule-2.3 based on Emacs-19.28. 1999-09-09 Yoshimi Kuruma * ndsrd.el: Bug Fixed. 1999-09-07 Masatoshi Tsuchiya * sdicf.el: Substituent `sdicf-buffer-live-p' for `buffer-live-p'. 1999-09-02 Keisuke Nishida * ndtp.el (ndtp-dictionary-search, ndtp-require-select): Fixed for the output "$<". 1999-08-17 Masatoshi Tsuchiya * evi.el (string-to-char-list): Add definition for Emacs20. 1999-08-09 Masatoshi Tsuchiya * lookup.el (lookup-setup, lookup-start-session, lookup-dictinoary-alist): Modify to update the value of `lookup-dictionary-alist' everywhen `lookup-module-setup' is called. 1999-07-28 Masatoshi Tsuchiya * lookup-kanji.el: Some fixes to kill buffer and process when calling `lookup-exit'. 1999-07-28 Satoru Takabayashi * Makefile.am: Add lookup-kanji.el to SOURCES. * ndsrd.el: Change a default dictionary name. 1999-07-28 Masatoshi Tsuchiya * ndnmz.el: New implementation. * lookup-utils.el (lookup-with-coding-system): Fix for XEmacs. 1999-07-27 Masatoshi Tsuchiya * ndspell.el: Delete definition of `lookup-split-string'. * lookup-utils.el: Add definition of `lookup-split-string'. * lookup-kanji.el: Substituent `lookup-split-string' for `split-string'. 1999-07-27 Masatoshi Tsuchiya * lookup.el,lookup-vse.el,lookup-types.el: New options of dictionary, `:expander', `:expand-filter', and `:hiragana' are defined. * lookup-kanji.el: New File. * stem-english.el: Some fixes. 1999-06-29 Kazuyoshi KOREEDA * lookup-compile.el Fix a problem on XEmacs 21.2. 1999-06-02 Keisuke Nishida * lookup-entry.el (lookup-entry-show-menu): New command. (lookup-entry-mode-map): New keybind `M' for the above. 1999-05-24 Yoshimi KURUMA * evi.el (split-string): Moved to ndspell.el with renaming. * ndspell.el (lookup-split-string): Moved from evi.el with renaming. 1999-05-20 Keisuke Nishida * lookup-select.el (lookup-select-mode-map): Add key binding `o'. * lookup-content.el (lookup-content-mode-map): Add key binding `f'. * lookup-entry.el (lookup-entry-display): Set line-pattern properly. (lookup-entry-previous-entry): Do properly even if ARG is nil. (lookup-entry-previous-page): Go last entry from the end of a buffer. 1999-05-13 Kazuhiro Ito * lookup-types.el (lookup-dictionary-default-method): Never returns nil. * lookup.el (lookup-search-query):Don't check lookup-dictionary-default-method's return value. 1999-05-12 Satoru Takabayashi * sdicf.el: Fix some bugs and speed up (commit by proxy for ) 1999-05-02 Satoru Takabayashi * lookup-vse.el (lookup-arrange-squeezed-references): modify search-forward-regexp to remove a garbage string "" 1999-05-02 KURUMA Yoshimi * lookup.el (lookup-search-pattern): The length of PATTERN is changed to 80 (befere 40). * ndict.el (ndict-dictionary-search): Neglect Non Ascii Character in searching. 1999-04-25 Kazuhiro Ito * lookup-vse.el (lookup-arrange-squeezed-references): New function. * ndeb.el: Add lookup-arrange-squeezed-references in default arranges. Enable new dictionary option `:squeezed'. * ndtp.el: Add lookup-arrange-squeezed-references in default arranges. Enable new dictionary option `:squeezed'. 1999-04-08 Kazuhiro Ito * lookup-entry.el (lookup-entry-excursion): Call lookup-entry-current-line-entry from entry buffer. 1999-03-13 NISHIDA Keisuke * lookup.el (lookup-module-forward): Set default-module always. * lookup-types.el (lookup-gaiji-glyph-possible-p): Check window-system. * ndnmz.el: Removed. 1999-03-05 NISHIDA Keisuke * lookup-entry.el (lookup-entry-line-method): Removed. (lookup-entry-display): Remove setting of `lookup-entry-line-method'. Set `lookup-entry-line-pattern' to `lookup-search-pattern'. (lookup-entry-mode): Remove `lookup-entry-line-method'. 1999-03-02 NISHIDA Keisuke * ndtp.el (ndtp-with-dictionary): Fixed. (Thanks to Takeshi Hagiwara!) 1999-02-20 NISHIDA Keisuke * lookup-types.el (lookup-glyph-compose, lookup-glyph-paste, lookup-bitmap-compose, lookup-bitmap-paste): Moved from lookup-defs.el. * lookup-defs.el: Removed. * lookup.el (lookup-module-forward, lookup-module-backward): Rewriten. Take an optional argument. (lookup-search-query): Fixed around stemming. * lookup-vars.el.in (lookup-heading-low-face): Change foreground "Grey". Previous "SlateGrey" isn't defined in Mule for Win. (lookup-init-gaiji-functions): Set paste-function by default. 1999-02-18 NISHIDA Keisuke * lookup-types.el (lookup-history-ref): Return a symbol not error. Ding instead of occuring an error. * lookup-select.el: Renamed from `lookup-misc.el'. * ndeb.el (ndeb-process-open): Set buffer name with directory. * ndtp.el (ndtp-process-open): Set buffer name with server name. * lookup.el (lookup-initialize): Just only loading init file. (lookup-agent-list, lookup-agent-alist, lookup-module-list, lookup-module-alist, lookup-dictionary-alist, lookup-default-module): New functions. (lookup-input-module, lookup-module-forward, lookup-module-backward, lookup-get-module, lookup-get-agent, lookup-get-dictionary, lookup, lookup-setup): Updated. (lookup-exit): Set variables nil. * lookup-types.el (lookup-new-module): Updated. * lookup-content.el (lookup-content-cite-region): Deactivate mark in Transient Mark mode. Show message like `kill-ring-save'. * lookup-entry.el (lookup-entry-cite-content): Call `lookup-content-cite-region' internally. 1999-02-17 NISHIDA Keisuke * lookup-vars.el.in (lookup-process-coding-system, lookup-kakasi-coding-system): New variables. * lookup-utils.el (lookup-with-coding-system): New macro. (lookup-current-word-japanese): Set coding system for KAKASI. * ndic.el: Set options directly. (ndic-reference-pattern, ndic-default-arrange-functions, ndic-default-adjust-functions): Removed. * ndeb.el: Set options directly. (ndeb-search-methods, ndeb-gaiji-regexp, ndeb-reference-pattern, ndeb-default-heading-functions, ndeb-default-arrange-functions, ndeb-default-adjust-functions): Removed. (ndeb-process-coding-system): New variable. (ndeb-agent-coding): Updated. (ndeb-dictionary-coding): New function. (ndeb-with-dictionary): Set dictionary coding-system. * ndtp.el: Set options directly. (ndtp-search-methods, ndtp-gaiji-regexp, ndtp-reference-pattern, ndtp-default-heading-functions, ndtp-default-arrange-functions, ndtp-default-adjust-functions): Removed. (ndtp-service-name, ndtp-account-name): Removed. (ndtp-agent-service, ndtp-agent-account): Set default directly. (ndtp-process-coding-system): Set a symbol not cons. (ndtp-agent-coding): Updated. (ndtp-dictionary-coding): New function. (ndtp-with-dictionary): Set dictionary coding-system. (ndtp-require-select): Always enable gaijis if possible. * ndict.el: Set options directly. (ndict-reference-pattern, ndict-default-arrange-functions, ndict-default-adjust-functions): Removed. (ndict-service-name): Removed. (ndict-agent-service): Set default directly. (ndict-process-coding-system): Set a symbol not cons. (ndict-agent-process): Updated. * ndnmz.el: Set options directly. (ndnmz-search-methods, ndnmz-default-arrange-functions, ndnmz-default-adjust-functions): Removed. (ndnmz-process-coding-system): New vairable. (ndnmz-dictionary-search): Set coding-system. * ndkks.el: Set options directly. (ndkks-search-methods, ndkks-default-arrange-functions, ndkks-default-adjust-functions): Removed. (ndkks-process-coding-system): New vairable. (ndkks-get-process): Set coding-system. * ndspell.el: Set options directly. (ndspell-search-methods): Removed. (ndspell-process-coding-system): New variable. (ndspell-get-process): Set coding-system. * ndcookie.el (ndcookie-setup): Don't initialize. * ndmisc.el: Set options directly. (ndmisc-default-arrange-functions, ndmisc-default-adjust-functions): Removed. 1999-02-16 NISHIDA Keisuke * lookup-defs.el (lookup-glyph-insert): Removed. (lookup-glyph-paste, lookup-bitmap-paste): New functions. (lookup-bitmap-compose): Require bitmap. * lookup-vars.el.in (lookup-gaiji-insert-function): Removed. (lookup-gaiji-paste-function): New variable. (lookup-init-gaiji-functions): Updated. (lookup-cite-style, lookup-gaiji-style): Removed. (lookup-gaiji-alternate): New variable. * lookup-types.el (lookup-gaiji-glyph-insert): Removed. (lookup-gaiji-glyph-paste): New function. (lookup-gaiji-insert): Updated. (lookup-new-gaiji-table): Set alternate to glyph by default. * lookup-vse.el (lookup-vse-get-gaiji): Rewriten. Remove 3rd arg HEIGHT of gaiji command. (lookup-adjust-show-gaijis): New function. * ndeb.el (ndeb-dictionary-gaiji): Updated. (ndeb-default-adjust-functions): Add `lookup-adjust-show-gaijis'. * ndtp.el (ndtp-dictionary-gaiji): Updated. (ndtp-default-adjust-functions): Add `lookup-adjust-show-gaijis'. * lookup-types.el (lookup-word-search-methods): New method `stemming'. (lookup-method-key-alist): Add key for `stemming'. (lookup-dictionary-stemmer): New function. (lookup-dictionary-init): Add `stemming' to dictionary-methods. * lookup-vse.el (lookup-vse-search-query-internal): Rewriten. * lookup-types.el (lookup-copy-entry): `lookup-entry-copy'. * lookup.el (lookup-search-query): Updated. * lookup-types.el (dictionary): Take new argument `title'. (lookup-new-dictionary): New function. Updated all agent files. * lookup-types.el (lookup-agent-set-default): Use `plist-put'. (lookup-agent-option): Use `plist-get' for defaults. (lookup-dictionary-set-default): Use `plist-put'. (lookup-dictionary-option): Use `plist-get' for defaults. * lookup-types.el (dictionary): Remove the property `default-method'. (lookup-dictionary-init): Remove setting of `default-method'. (lookup-dictionary-default-method): New function. * lookup-utils.el (lookup-multi-put, lookup-multi-get): Set symbol by value not by plist. * lookup-vse.el (lookup-entries-cache): New variable. (lookup-entries-cache-clear): New function. (lookup-contents-cache): New variable. (lookup-contents-cache-clear): New function. * lookup.el (lookup-exit): Clear caches. * lookup-vse.el (lookup-fix-current-column): Removed. (lookup-current-column): Removed (lookup-arrange-fill-lines): Remove the incomplete fix for Mule bug. 1999-02-15 NISHIDA Keisuke * Rewrite the definition of modules. * lookup-vars.el.in (lookup-agent-list, lookup-agent-alist, lookup-module-list, lookup-module-alist, lookup-dictionary-alist, lookup-search-modules): New variable. * lookup.el (lookup-initialize): Set aboves. (lookup-get-module, lookup-get-agent, lookup-get-dictionary): New functions. * lookup-types.el (lookup-module-get-agent): Removed. (lookup-module-get-dictionary): Removed. * lookup-types.el (lookup-agent-init): Just only set properties. (lookup-agent-setup): New function devided from `lookup-agent-init'. * lookup-types.el (lookup-agent-clear): Change the clear command name to `clear'. All agents files are updated. * ndic.el (ndic-clear): Renemed from `ndic-exit'. * ndeb.el (ndeb-clear): Renamed from `ndeb-exit'. * ndtp.el (ndtp-clear): Renemed from `ndtp-exit'. * ndict.el (ndict-clear): Renemed from `ndict-exit'. * ndnmz.el (ndnmz-clear): Renemed from `ndnmz-exit'. * ndkks.el (ndkks-clear): Renemed from `ndkks-exit'. * ndspell.el (ndspell-clear): Renemed from `ndspell-exit'. * ndcookie.el (ndcookie-clear): Renamed from `ndcookie-exit'. * lookup-types.el (module): Redefine. (lookup-new-module, lookup-module-init): Rewriten. (lookup-module-setup): New function. (lookup-module-initialized-p): Removed. * lookup.el (lookup-exit, lookup-start-session): Updated. 1999-02-13 NISHIDA Keisuke * lookup-types.el (lookup-dictionary-init): Fixed to set gaiji-table by default. 1999-02-13 NISHIDA Keisuke * evi.el (char-charset): Removed. This may be defined in APEL. * lookup-utils.el (lookup-current-word): Redefine. 1999-02-11 NISHIDA Keisuke * lookup-vars.el.in (lookup-byte-compile): New variable. * lookup-compile.el: Set `lookup-byte-compile' t before compiling. * lookup.el: Initialize at the end of file exept in time of compiling. 1999-02-10 NISHIDA Keisuke * evi.el (char-charset): Define using `char-leading-char' on Mule. * lookup-utils.el (lookup-current-word): Updated. (lookup-current-word-japanese): Updated. * lookup.el (lookup-exit): Take a prefix argument. * sdicf.el: New file. 1999-02-08 NISHIDA Keisuke * lookup.el (lookup-exit): Not set `lookup-module-alist' nil. * ndeb.el (ndeb-agent-directory, ndeb-agent-appendix): Expand filename. 1999-02-06 NISHIDA Keisuke * lookup-entry.el (lookup-entry-update): Fixed to set session module. 1999-02-05 NISHIDA Keisuke * lookup-vse.el (lookup-arrange-references, lookup-vse-get-menu): Fixed to arrange heading. (lookup-vse-search-query-internal): Fixed duplication of stemming. * lookup.el (lookup-module-forward): New command. * lookup-entry.el (lookup-entry-mode-map): Bind aboves. 1999-02-04 NISHIDA Keisuke * ndeb.el (ndeb-process-coding-system): Removed. * ndspell.el (ndspell-dynamic-search): Use `lookup-current-session'. * lookup-vse.el (lookup-vse-search-query-internal): Abolish filtering. (lookup-vse-get-gaiji): Fixed not to error for invalid gaiji code. * Change the style of `lookup-search-agents' and options' key. Many files ware updated. * lookup-types.el (agent): Don't take ARGS. (lookup-new-agent, lookup-agent-option): Updated. * Abolish suspending agent. * lookup-types.el (lookup-agent-suspend): Removed. * lookup.el (lookup-suspend): Updated. * ndtp.el (ndtp-suspend, ndtp-agent-suspend-p): Removed. * lookup-misc.el (lookup-select-goto-first): New function. (lookup-select-display, lookup-select-do-select-all, lookup-select-do-select-only, lookup-select-do-execute): Use above. 1999-02-03 NISHIDA Keisuke * Rewrite around the concept `session'. * lookup-vars.el.in (lookup-current-module): Removed. (lookup-current-session, lookup-last-session): New variables. * lookup-types.el (lookup-with-module): Removed. * lookup.el (lookup, lookup-suspend, lookup-exit): Updated. (lookup-search-pattern): Take two argument. (lookup-pattern): Updated. (lookup-start-session): New macro. (lookup-open-session): New function. * lookup-types.el (lookup-session-append-entries): Removed. (lookup-session-ref, lookup-session-display, lookup-session-save-excursion): New functions. * lookup-entry.el (lookup-entry-append): Take two arguments. * lookup.el: New session `lookup-select-session'. (lookup-select-dictionary): New function. * lookup-misc.el (lookup-select-display): Renamed from `lookup-select-dictionary' and update for select session. (lookup-select-do-execute, lookup-select-update, lookup-select-point-dictionary): Updated. (lookup-select-point-dictionary): Renamed from `lookup-select-current-line-dictionary'. Many functions ware updated. * lookup.el: New session `lookup-search-session'. (lookup-search-query): Rewriten. (lookup-display-entries): New function replacing `lookup-open-session'. * lookup-content.el (lookup-content-follow-link): Use above. * lookup-entry.el (lookup-entry-list-references): Ditto. * lookup-misc.el (lookup-select-menu,lookup-select-text-search): Ditto. (lookup-select-search-pattern): Updated. * lookup-entry.el (lookup-entry-current-session): Removed. (lookup-entry-display): Updated. * lookup-entry.el (lookup-entry-search-pattern, lookup-entry-update, lookup-entry-expand-reference): Updated. (lookup-entry-select-dictionary): New command. * lookup-types.el (lookup-history-ref): Make second argument `n' optional. Error directly for an invalid move. (lookup-history-clear): New function. (lookup-new-module): Make history this time. (lookup-module-clear): Clear history. * lookup.el (lookup): Display session in the history. (lookup-history-next, lookup-history-previous): New commands. * lookup-entry.el (lookup-entry-history-next, lookup-entry-history-previous): Removed. (lookup-entry-mode-map): Bind aboves. * lookup-misc.el (lookup-select-mode-map): Bind aboves. * lookup-vars.el.in (lookup-window-buffers): Removed. * lookup.el (lookup-quit): Removed. Use `lookup-suspend' instead. (lookup-suspend, lookup-pop-to-buffer): Updated. 1999-01-29 NISHIDA Keisuke * lookup-types.el (lookup-new-agent): Don't take title and init. * lookup-vars.el.in (lookup-search-module): Delete variable. (lookup-module-alist, lookup-default-module): New variables. * lookup.el (lookup-initialize): Set aboves. (lookup-input-module-history): New variable. (lookup-input-module, lookup-input-module-arg): New functions. (lookup): Take new arg `module'. (lookup-pattern-input, lookup-word-input, lookup-region-input): New functions. (lookup-pattern, lookup-pattern-full-screen, lookup-pattern-other-frame, lookup-word, lookup-word-full-screen, lookup-word-other-frame, lookup-region, lookup-region-full-screen, lookup-region-other-frame): Take new arg `module'. (lookup-setup, lookup-exit): Use `lookup-module-alist'. * lookup.el (lookup-entry-buffer, lookup-content-buffer, lookup-select-buffer): Add a space(` ') beginning of the buffer name. * lookup-entry.el (lookup-entry-mode): Remove a space before "%b" of the mode line string. * lookup-content.el (lookup-content-mode): Ditto. * lookup-select.el (lookup-select-mode): Ditto. * ndcookie.el (ndcookie-setup, ndcookie-dictionary-search): Return a cookie at random. 1999-01-28 NISHIDA Keisuke * Version 1.0pre9 released. 1999-01-27 NISHIDA Keisuke * lookup.el (lookup-set-agent-option, lookup-set-dictionary-option): Moved from lookup-packages.el. * lookup-vars.el.in (lookup-search-method): Set `nil'. * lookup.el (lookup-search-pattern): Use `lookup-search-method'. * lookup-types.el (lookup-parse-pattern): Updated. * lookup.el (lookup-search-query): Errer with the input method. (lookup-search-pattern): Check the search pattern first. * lookup-types.el (lookup-parse-pattern): Don't make one-line. * lookup-vars.el.in (lookup-reading-face): Removed. (lookup-open-function): Make variable non-customizable. (lookup-cite-style, lookup-cite-header, lookup-cite-prefix, lookup-window-height): Fixed customization group. 1999-01-25 NISHIDA Keisuke * ndcookie.el (ndcookie-setup): Not use the agent title. * ndtp.el (ndtp-process-coding-system, ndtp-service-name, ndtp-account-name): Make constant. * ndict.el (ndict-service-name, ndict-process-coding-system): Make constant. * ndnmz.el (ndnmz-process-coding-system): Removed. * ndkks.el: Remove the setting of process coding system. * ndspell.el (ndspell-process-coding-system): Removed. * lookup.el (lookup-initialize): Not set coding system for KAKASI. * ndkks.el: Not set coding system for KAKASI. (ndkks-valid-charsets): Make constant. 1999-01-24 NISHIDA Keisuke * lookup-entry.el (lookup-entry-search-selection): Removed. * lookup.el (lookup-secondary): Renamed from `lookup-selection'. (lookup-secondary-full-screen): Renamed from `lookup-selection-full-screen'. (lookup-secondary-other-frame): Renamed from `lookup-selection-other-frame'. (lookup-selection): New command replaced with `lookup-entry-search-selection'. (lookup-selection-full-screen, lookup-selection-other-frame): New commands. * lookup.el (lookup-full-screen): Renamed from `lookup-full-window'. (lookup-pattern-full-screen): Replaced with `lookup-pattern-full-window'. (lookup-word-full-screen): Replaced with `lookup-word-full-window'. (lookup-region-full-screen): Replaced with `lookup-region-full-window'. (lookup-selection-full-screen): Replaced with `lookup-selection-full-window'. * lookup-misc.el (lookup-select-next-line): Ding if end of buffer. (lookup-select-previous-line): Ding if beginning of buffer. (lookup-select-info): Remove command. * evi-mule.el (evi-coding-system): Don't use `lookup-assq-ref'. 1999-01-21 NISHIDA Keisuke * lookup.el (lookup-vse-get-menu): Set autoload. * lookup-vars.el.in (lookup-gaiji-style): Renamed from `lookup-gaiji-policy'. (lookup-cite-style): Renamed from `lookup-cite-policy'. * lookup-types.el (lookup-gaiji-insert): Updated. * lookup-entry.el (lookup-entry-cite-content): Updated. * evi.el (defface): Rewrite to be worked on Mule. 1999-01-19 NISHIDA Keisuke * lookup-vars.el.in (lookup-default-method): Set the value to `exact'. * ndeb.el (ndeb-search-methods): * lookup-types.el (lookup-search-methods, lookup-method-key-alist): Add new search method `default'. (lookup-parse-pattern): Use `default'. (dictionary): Add new property `default-method'. (lookup-dictionary-init): Save the value of option `default-method'. * lookup.el (lookup-search-query): Use `default'. * ndtp.el (ndtp-gaiji-regexp): Simplify a little. (ndtp-reference-pattern): Rewrite the pattern. * ndeb.el (ndeb-gaiji-regexp, ndeb-reference-pattern): Simplify. 1999-01-18 NISHIDA Keisuke * evi-mule.el (evi-coding-system-table): Fixed the code name for euc-jp-dos. * lookup-content.el (lookup-content-cite-region): New command. * lookup-entry.el (lookup-entry-cite-content): Renamed from `lookup-entry-kill-ring-save-content'. Enable new dictionary option `cite-policy'. * ndtp.el (ndtp-require-select): Fixed the separate pattern for `XI'. (ndtp-dictionary-search): Fixed the separate pattern for `P'. 1999-01-17 NISHIDA Keisuke * Version 1.0pre8 released. * lookup-vars.el.in (lookup-mouse-search-command): Delete variable. * lookup.el (lookup-selection): Call `lookup-word' directly. * lookup.el (lookup-pattern, lookup-pattern-other-frame, lookup-word, lookup-word-other-frame, lookup-region, lookup-region-other-frame, lookup-selection, ookup-selection-other-frame): Remove prefix argument. (lookup-pattern-other-window, lookup-word-other-window, lookup-region-other-window, lookup-selection-other-window): Delete commands. (lookup-pattern-full-window, lookup-word-full-window, lookup-region-full-window, lookup-selection-full-window): New commands. * lookup-vars.el.in (lookup-faces): New customization group. * lookup.el (lookup-pop-to-buffer): Check `frame-visible-p' boundary. * stem-english.el: Update again to v.1.8. 1999-01-15 NISHIDA Keisuke * lookup-vse.el (lookup-fix-current-column): New constants. (lookup-current-column): New function. (lookup-arrange-fill-lines): Rebind `current-column' temporary. 1999-01-14 NISHIDA Keisuke * lookup.el (lookup-initialize): Run `lookup-load-hook' just after loading ~/.lookup. * ndspell.el (ndspell-dictionary-search): Do search when `lookup-force-update' is non-nil. * lookup-types.el (lookup-new-agent): Take options as conses directly. * stem-english.el: Update again to v.1.6. 1999-01-12 NISHIDA Keisuke * lookup-vars.el.in (lookup-cite-policy): New customizable valiable. (lookup-gaiji-policy): New variable. * lookup-types.el (lookup-gaiji-insert): Use `lookup-gaiji-policy'. * lookup-entry.el (lookup-entry-default-policies): New constant. (lookup-entry-kill-ring-save-content): Use `lookup-cite-policy'. * lookup.el (lookup-debug): New command. * stem-english.el: New file replaced with stem.el. * Makefile.am (SOURCES): Include stem-english.el. 1999-01-11 NISHIDA Keisuke * ndtp.el (ndtp-reference-pattern): More practically. * ndic.el (ndic-reference-pattern, ndic-default-arrange-functions, ndic-default-adjust-functions): Make variables not customizable. * ndeb.el (ndeb-reference-pattern, ndeb-default-heading-functions, ndeb-default-arrange-functions, ndeb-default-adjust-functions): Ditto. * ndtp.el (ndtp-reference-pattern, ndtp-default-heading-functions, ndtp-default-adjust-functions, ndtp-default-arrange-functions): Ditto. * ndict.el (ndict-reference-pattern, ndict-default-arrange-functions, ndict-default-adjust-functions): Ditto. * ndnmz.el (ndnmz-default-arrange-functions, ndnmz-default-adjust-functions): Ditto. * ndkks.el (ndkks-default-arrange-functions, ndkks-default-adjust-functions): Ditto. * ndmisc.el (ndmisc-default-arrange-functions, ndmisc-default-adjust-functions): Ditto. 1999-01-10 NISHIDA Keisuke * lookup-package.el (lookup-use-package): Use `PACKAGE.el' as a master file instead of `main.el'. Package format 1.1. 1998-12-27 NISHIDA Keisuke * lookup-entry.el (lookup-entry-open): Just only fill display. (lookup-entry-open-other): New command using open command. (lookup-entry-list-history): Remove command. * ndic.el: Remove `text' from valid methods. * ndic.el (ndic-default-arrange-functions): Don't fill paragraph. * ndict.el (ndict-default-arrange-functions): Ditto. * lookup-entry.el (lookup-entry-mode-map): Bind `lookup-entry-content-window' to `h'. * lookup-content.el (lookup-content-entry-window): New command. (lookup-content-leave): Call `lookup-entry-display-content'. 1998-12-26 NISHIDA Keisuke * lookup-vars.el.in (lookup-enable-gaiji): Set `t' by default. * ndkks.el (ndkks-dictionary-search): Do search even when some entries were already found. 1998-12-25 NISHIDA Keisuke * lookup-vse.el (lookup-arrange-gaijis): New function. * ndtp.el (ndtp-arrange-gaijis): Remove function. Use above instead. (ndtp-gaiji-regexp): New variable. * ndeb.el (ndeb-arrange-gaijis): Remove function. Use above instead. (ndeb-gaiji-regexp): New variable. * lookup-types.el (dictionary): Add new property `heading'. (lookup-dictionary-init): Reserve the option `headings'. * lookup-vse.el (lookup-vse-search-query-internal): Arrange headings. (lookup-arrange-heading): New function. (lookup-format): Call `widen' before `funcall'. * ndtp.el (ndtp-default-heading-functions): New variable. (ndtp-make-entry): Not replace gaijis. Now use heading functions. (ndtp-replace-gaijis): Remove function. (ndtp-arrange-gaijis): Merged with old `ndtp-replace-gaijis'. * ndeb.el (ndeb-default-heading-functions): New variable. (ndeb-make-entry): Not replace gaijis. Now use heading functions. (ndeb-replace-gaijis): Remove function. (ndeb-arrange-gaijis): Merged with old `ndeb-replace-gaijis'. * lookup-vse.el (lookup-arrange-references, lookup-dynamic-code-search): New functions. * ndtp.el (ndtp-arrange-references, ndtp-dictionary-reference-pattern): Remove functions. Use `lookup-arrange-references' instead. * ndeb.el (ndeb-arrange-references, ndeb-dictionary-reference-pattern): Remove functions. Use `lookup-arrange-references' instead. * ndic.el (ndic-reference-pattern): New variable. (ndic-arrange-references, ndic-dynamic-search) Delete functions. Use `lookup-arrange-references' and `lookup-dynamic-code-search' instead. * ndict.el (ndict-reference-pattern): New variable. (ndict-arrange-references, ndict-dynamic-search) Delete functions. Use `lookup-arrange-references' and `lookup-dynamic-code-search' instead. * lookup-utils.el (lookup-oneline-string): New function. 1998-12-14 NISHIDA Keisuke * ndtp.el (ndtp-with-dictionary): Check the last used dictionary. (ndtp-agent-process): Init ndtp-dict. * ndeb.el (ndeb-with-dictionary): Check the last used dictionary. (ndeb-dictionary-content): Fix the setting property of ndeb-stop. (ndeb-agent-process): Init ndeb-dict. Set coding system if it is set. 1998-12-12 NISHIDA Keisuke * Version 1.0pre7 released. * lookup.el (lookup-initialize): Set program coding system for KAKASI. 1998-12-10 NISHIDA Keisuke * lookup.el (lookup-suspend): Use `delete-frame' instead of `make-frame-invisible'. (lookup-pop-to-buffer): Use `raise-frame' instead of `make-frame-visible'. (Thanks to Masatoshi Tsuchiya!) * ndeb.el (ndeb-agent-appendix): Expand file name first. * lookup-compile.el: Set `byte-compile-warnings' to ignore warnings. * lookup-content.el (lookup-content-mode): Delete setting of `line-move-ignore-invisible'. 1998-12-04 NISHIDA Keisuke * Version 1.0pre6 released. * lookup-defs.el: Not define `lookup-bitmap-compose' on XEmacs. * lookup-entry.el (lookup-entry-insert): newline first. * lookup.el (lookup): Suspend Lookup when the Entry buffer is visible. * ndspell.el (ndspell-dictionary-search): Search only when the string has only ascii characters. * ndeb.el (ndeb-reference-pattern): Fixed pattern. * lookup-defs.el (lookup-glyph-insert): Kluge around. (Thanks to Takeshi Hagiwara!) 1998-11-30 NISHIDA Keisuke * ndspell.el (ndspell-dictionary-search, ndspell-dynamic-search): Change the format of the heading of candidates. 1998-11-28 NISHIDA Keisuke * lookup-vse.el (lookup-adjust-check-references): Set face even if a reference is not refered. 1998-11-12 NISHIDA Keisuke * Version 1.0pre5 released. * ndeb.el (ndeb-reference-pattern): Fixed. (ndeb-default-arrange-functions): Arrange references first. (ndeb-arrange-references): Make entry with gaiji replacement. * ndtp.el (ndtp-default-arrange-functions): Arrange references first. (ndtp-arrange-references): Make entry with gaiji replacement. (ndtp-dictionary-gaiji, ndtp-require-select): Get gaiji informations by the previous methods. * lookup-vars.el.in: Add new variable `lookup-search-found'. * lookup.el (lookup-search-query): Set `lookup-search-found'. * ndkks.el (ndkks-dictionary-search): Use `lookup-search-found'. * ndspell.el (ndspell-dictionary-search): Use `lookup-search-found'. 1998-10-31 NISHIDA Keisuke * Version 1.0pre4 released. * ndeb.el: Add new variable `ndeb-reference-pattern'. (ndeb-arrange-references): Modify to use `ndeb-reference-pattern'. Delete variable `ndeb-default-filter-functions'. (ndeb-dictionary-search): Remove duplicate by hard coding. * ndtp.el: Add new variable `ndtp-reference-pattern'. (ndtp-arrange-references): Modify to use `ndtp-reference-pattern'. Delete variable `ndtp-default-filter-functions'. (ndtp-dictionary-search): Remove duplicate by hard coding. 1998-10-30 NISHIDA Keisuke * lookup-vars.el.in: Add hook `lookup-load-hook'. * lookup.el (lookup-initialize): Run `lookup-load-hook'. 1998-10-29 NISHIDA Keisuke * lookup-types.el: Sort dictionaries as listed in the option `enable'. * ndkks.el (ndkks-dictionary-search): Search even when any entry was found in other dictionary. Add pattern for Zenkaku alphabet. 1998-10-26 NISHIDA Keisuke * lookup.el (lookup-word, lookup-word-other-window, lookup-word-other-frame): New commands. * lookup-vars.el (lookup-mouse-search-command): Set the value to `lookup-word' by default. * lookup-vse.el (lookup-vse-search-query-internal): Add a prefix with the stemming result. 1998-10-23 NISHIDA Keisuke * Version 1.0pre3 released. * Unify the file coding system by junet. * ndtp.el: Fixed gaiji routine. 1998-10-22 NISHIDA Keisuke * Version 1.0pre2 released. * ndtp.el: Rewrite gaiji routine. 1998-10-20 NISHIDA Keisuke * ndic.el (ndic-setup): Get the dictionary title. * ndcookie.el (ndcookie-setup): Fixed. 1998-10-19 NISHIDA Keisuke * ndspell.el (ndspell-get-process): Add options "-m". 1998-10-17 NISHIDA Keisuke * ndtp.el (ndtp-dictionary-regexp): Fixed for output of dserver. (Thanks to Uichi Katsuta!) 1998-10-14 NISHIDA Keisuke * ndkks.el (ndkks-dictionary-search): Search only when no entry found by other dictionaries. (ndkks-get-process): Wait just a little. * lookup.el (lookup-hide-buffer): Fixed to switch buffer only when the buffer has a window. 1998-10-14 NISHIDA Keisuke * Version 1.0pre1 released. * Many Many Many files were modified and sophisticated. Most of files were rewriten now. * lookup.el: Add several useful functions and commands. Delete some disuse functions. Many functions were rewriten. Lookup now has new search routine, new buffer management system, new reference control functions, and so on. * lookup-vars.el.in: Renamed from `lookup-vars.el'. * lookup-defs.el: Renamed from `lookup-defs.el.in'. * lookup-xemacs.el, lookup-mule.el: Deleted. Merged into `lookup-defs.el'. * lookup-setup.el: Deleted. Merged into `lookup-types.el'. * lookup-search.el: Deleted. Merged into several files. * lookup-format.el: Deleted. Merged into `lookup-vse.el'. * lookup-vse.el: New file based on late `lookup-search.el' and `lookup-format.el'. * lookup-mouse.el: Deleted. Now we have a new command `lookup-selection' defined in `lookup.el'. * lookup-vars.el.in: Use `Custom' package to define variables. Add several useful variables. Delete some disuse varialbes. * lookup-utils.el (lookup-foreach, lookup-map-until): New functions. (lookup-grep): Renamed from `lookup-filter'. (lookup-current-word-ascii): Check the word break. * lookup-types.el: Rewriten all over data types. Many files were updated. * lookup-package.el: Rewriten as package version 1.0. Some new variables and functions are available. * lookup-entry.el, lookup-content.el: Sophisticated. * ndic.el, ndeb.el, ndtp.el, ndict.el, ndnmz.el, ndkks.el, ndspell.el, ndcookie.el: Rewriten. * ndmisc.el: New file. * README: Renemed from FILES. 1998-08-26 NISHIDA Keisuke * Version 1.0b2 released. * lookup-utils.el (lookup-current-word): Fixed. (Thanks to yamagata@nwgpc.kek.jp!) * lookup-compile.el: Set language environment. 1998-08-08 NISHIDA Keisuke * Version 1.0b1 released. * ndict.el: Fixed the search routine. * lookup-vars.el (lookup-gaiji-compose-function): Fixed. 1998-08-01 NISHIDA Keisuke * Version 1.0b0 released. * lookup-vars.el (lookup-init-file): Use `init-file-user'. 1998-07-25 NISHIDA Keisuke * Version 0.11b3 released. * lookup-package.el (lookup-set-agent-option, lookup-set-dictionary-option): New functions. (lookup-use-package): Use aboves. 1998-07-23 NISHIDA Keisuke * Version 0.11b2 released. * ndict.el: Some fixes. (Thanks to ISHIKAWA Masahiro!) 1998-07-20 NISHIDA Keisuke * ndnmz.el (ndnmz-dictionary-search): Update for Namazu 1.2.x. * lookup.el (lookup-temp-buffer): New function. (lookup-intern-string): Moved from `lookup-utils.el'. * lookup-utils.el: Delete function `lookup-duplicate-buffer'. 1998-07-15 NISHIDA Keisuke * ndkks.el: Recover file. * lookup-defs.el.in: Renamed from `lookup-defs.el' with definitions of `lookup-version' and `lookup-data-directory'. * Makefile.am: Modified to generate lookup-defs.el. * lookup-search.el (lookup-set-session): Close content buffer before display the search result. * lookup-entry.el: Delete variable `lookup-entry-sub-method'. (lookup-entry-mode): Modify the buffer identification. * lookup-search.el (lookup-set-session): Updated. * lookup-types.el (lookup-new-gaiji-table): Renamed from `lookup-make-gaiji-table'. (lookup-make-gaiji-table, lookup-gaiji-table-set): New functions. * lookup-search.el (lookup-gaijis-cache-put): Updated. * lookup-entry.el (lookup-entry-kill-ring-save-content): Fixed. 1998-07-12 NISHIDA Keisuke * Version 0.11a2 released. * lookup-vars.el: Add new variables `lookup-default-agent-options' and `lookup-default-dictionary-options'. * lookup-types.el (lookup-agent-get-option, lookup-dictionary-get-option): Use aboves. * lookup-search.el (lookup-search-string-1): Rename the option name `stem' to `stemmer'. Change the stemming procedure. * stem.el: New file this time.... 1998-07-12 NISHIDA Keisuke * Version 0.11a1 released. * lookup-search.el (lookup-search-string-1): New function. (lookup-search-string): Use `lookup-search-string-1'. * lookup-search.el (lookup-entry-search): Show message while looking. (lookup-search-string): Show message what dictionary is used. * stem.el: New file by Tsuchiya Masatoshi. 1998-07-10 NISHIDA Keisuke * lookup-vars.el: Add new variable `lookup-use-kakasi'. * lookup-utils.el (lookup-current-word): Moded from `lookup.el'. (lookup-current-word-general, lookup-current-word-ascii, lookup-current-word-japanese): New functions. 1998-06-25 NISHIDA Keisuke * Version 0.9.6 released. * lookup-utils.el: Fixed not to kill buffer when the process has no buffer. (Thanks to Mito!) 1998-06-20 NISHIDA Keisuke * Version 0.9.5 released. * lookup-search.el (lookup-open-entry): Make the content window full by default. * lookup.el (lookup-close-buffer): More strictly. * lookup-types.el (lookup-dictionary-command-possiblep): New function. * lookup-content.el (lookup-content-leave): Goto the beginning of buffer and select the Entry window. * lookup-misc.el: Fixed a problem. (Thanks to KORIYAMA Naohiro!) 1998-06-18 NISHIDA Keisuke * Version 0.9.4 released. * lookup-entry.el (lookup-entry-isearch-content): New command. * lookup-misc.el: Make select-mode practicable. * lookup.el (lookup-current-module): New function. * lookup-entry.el (lookup-entry-research-pattern, lookup-entry-update): Use selected dictionaries. (lookup-entry-mode): Set current-module as buffer local variable. * lookup-content.el: Delete variable `lookup-content-history'. 1998-06-17 NISHIDA Keisuke * Version 0.9.3 released. 1998-06-16 NISHIDA Keisuke * ndspell.el: Move the definition of target-reference from `lookup-format.el'. * ndeb.el, ndtp.el: Initialize in any time starting a process. * ndspell.el (ndspell-get-process): Set process-coding-system. (Thanks to ISHIKAWA Masahiro!) * ndeb.el (ndeb-arrange-references): Fixed a missing. (Thanks to Keisuke Mori!) 1998-06-15 NISHIDA Keisuke * Version 0.9.2 released. * ndeb.el (ndeb-setup): Check eblook version and started before all. * lookup-entry.el (lookup-entry-mode): Modify the value of variable `mode-line-buffer-identification'. * lookup-search.el (lookup-set-session): Updated. * lookup-search.el (lookup-set-session): Get optional secondary argument DISPLAY and redisplay iff it is non-nil. Fixed some bugs. * lookup-search.el (lookup-show-entries): New function replaced with `lookup-entry-insert'. * lookup-entry.el (lookup-entry-list-links): Updated. * lookup-format.el (lookup-link-follow): Updated. * lookup-search.el: Rename several functions: (lookup-set-session): Renamed from `lookup-entry-set-session'. (lookup-append-entries): Renamed from `lookup-entry-append-entries'. (lookup-current-excursion): Renamed from `lookup-entry-current-excursion'. (lookup-set-excursion): Renamed from `lookup-entry-set-excursion'. Many files are updated. * Delete file `lookup-access.el'. * lookup-search.el: New file with search related functions collected from `lookup-access.el', `lookup-entry.el' and `lookup-content.el'. * lookup-setup.el: New file with setup related functions collected from `lookup-access.el' and `lookup-types.el'. 1998-06-14 NISHIDA Keisuke * Version 0.9.1 released. * lookup-types.el (lookup-entry-name): Modified to use the dictionary ID for entry name. * lookup-entry.el (lookup-entry-current-excursion, lookup-entry-set-excursion): Fixed to set the window position correctly. * lookup-content.el (lookup-content-next-reference): Fixed to show the reference name correctly. * lookup-entry.el (lookup-entry-info): New commmand. (lookup-entry-list-links): New command replaced with `lookup-entry-list-references'. * lookup-format.el: Add new reference type `link' replaced with `lookup-determinant-reference' and `lookup-definitive-reference' * ndic.el, ndeb.el, ndtp.el: Updated. * lookup-misc.el: New file replaced with `lookup-select.el'. This file provide `lookup-info-mode' and `lookup-select-mode'. * lookup-utils.el (lookup-nunique): Add secondary argument PREDICATE. * lookup-types.el (lookup-entry-compare, lookup-unique-entries): New functions. * ndtp.el, ndeb.el: Use `lookup-unique-entries' as filter function. 1998-06-13 NISHIDA Keisuke * Version 0.9 released. * ndeb.el: Make variable `ndeb-process-prompt' user customizable. * ndtp.el (ndtp-dictionary-gaiji): Fixed an error. (Thanks to yamagata@nwgpc.kek.jp!) 1998-06-12 NISHIDA Keisuke * lookup-types.el: Modify the mechanism of plist of each data types for debugging. (lookup-new-plist): New function. * ndeb.el (ndeb-require-set): Unset variable if secondary argument VALUE is `nil'. (ndeb-dictionary-stopcode): New function. (ndeb-with-dictionary): Set `stop-code' when a dictionary is selected. 1998-06-10 NISHIDA Keisuke * Version 0.9b14 released. * lookup-mule.el, lookup-xemacs.el (lookup-gaiji-insert): Moved from `lookup-types.el'. * lookup-utils.el (lookup-process-require): Fixed a misfeature on recursive call. * lookup-access.el (lookup-search-string): Fixed a cache missing. 1998-06-09 NISHIDA Keisuke * lookup-access.el (lookup-get-gaiji): Changed the alternate string to "_" by default. * lookup-types.el (lookup-gaiji-insert): Modified to insert gaijis correctly. * ndtp.el (ndtp-replace-gaijis): Modified. * ndeb.el (ndeb-replace-gaijis): Modified. * lookup-entry.el (lookup-entry-insert-entry): Fixed an error in the case of gaiji-ended headword. (Thanks to Yoshishige Arai and Takeshi Hagiwara!) 1998-06-05 NISHIDA Keisuke * Version 0.9b13 released. * lookup-entry.el (lookup-entry-kill-ring-save-content): Modified to use `cite-header' and `cite-prefix' as dicitonary options. * lookup-types.el: Rename the functions `lookup-agent-name' and `lookup-agent-title' to `lookup-agent-id' and `lookup-agent-name'. * lookup-types.el: Delete the function `lookup-dictionary-ref'. (lookup-dictionary-get-option): Modified to refer to agent options by default. 1998-06-04 NISHIDA Keisuke * ndeb.el (ndeb-require-set): Modified to use `format' instead of `concat'. * lookup.el (lookup-mouse-follow-reference): Modified to use `mouse-set-point'. * lookup-entry.el, lookup-content.el (lookup-*-map): Fixed for XEmacs. (Thanks to IKEYAMA Tomonori!) 1998-06-02 NISHIDA Keisuke * ndtp.el (ndtp-require-search): Fixed to check the result strictly. (Thanks to yamagata@nwgpc.kek.jp!) 1998-05-31 NISHIDA Keisuke * lookup-types.el: Renamed the entry "heading" to "headword". Many files are updated. * lookup-types.el: Rename variable `lookup-string-search-methods' to `lookup-word-search-methods'. * lookup.el (lookup-initial-setup): Modified to set default value of varables `lookup-enable-buffer-cache' and `lookup-enable-process-buffer'. 1998-05-30 NISHIDA Keisuke * lookup-package.el (lookup-use-package): Modified to use "main.el" as the main file of packages. * lookup-types.el (lookup-parse-pattern): Modified to check pattern of `match exact'. * lookup-entry.el (lookup-entry-kill-ring-save-content): Modified to use agent options `cite-header' and `cite-prefix'. 1998-05-29 NISHIDA Keisuke * ndtp.el (ndtp-agent-account): New function. (ndtp-setup): Modified to use ndtp-agent-account. 1998-05-27 NISHIDA Keisuke * lookup-types.el: Modify the mechanism of initializing module. (lookup-new-module): New function. * lookup-access.el (lookup-new-agent): New function. * lookup.el (lookup-initial-setup): Updated. * lookup-access.el (lookup-agent-select-dictionaries): Modified to select dictionaries according to agent options `select' and `unselect'. (lookup-agent-init): Fixted to get options correctly. 1998-05-25 NISHIDA Keisuke * lookup.el (lookup-input-dictionary, lookup-current-prefix): Delete functions. * lookup-compile.el: Renamed from lookup-compile.el.in. 1998-05-23 NISHIDA Keisuke * lookup-entry.el (lookup-entry-search): Fixed to show error message with original input pattern. 1998-05-22 NISHIDA Keisuke * ndic.el: New agent. * ndkks.el: Delete file. 1998-05-18 NISHIDA Keisuke * lookup-vars.el: Add new variables `lookup-save-configuration', `lookup-window-configuration'. * lookup.el (lookup-entry-pop-up): Modified to save window configuration. * lookup-entry.el (lookup-entry-quit): Modified to restore window configuration. 1998-05-17 NISHIDA Keisuke * lookup-types.el (lookup-make-gaiji-table, lookup-gaiji-table-ref): New functions. * lookup-entry.el (lookup-entry-next-entry, lookup-entry-previous-entry): Fixed an problem. 1998-05-16 NISHIDA Keisuke * lookup-vars.el: Add new variables `lookup-debug-mode', `lookup-enable-buffer-cache' and `lookup-enable-process-buffer'. * lookup-access.el (lookup-contents-cache-put): Updated. * ndtp.el, ndict.el, ndeb.el, ndkks.el, ndspell.el: Updated. * lookup-utils.el (lookup-process-require): Modified to generate temporary buffer when process has no buffer, and to set process filter directory. * ndtp.el, ndict.el, ndeb.el, ndkks.el, ndspell.el: Updated. * lookup-utils.el: Rename variable `lookup-process-output-finish' to `lookup-process-output-finished'. (lookup-process-require, lookup-process-accept): Updated. * ndtp.el (ndtp-with-agent): Renamed from `ndtp-with-agent-process'. * ndeb.el (ndeb-with-agent): Renamed from `ndeb-with-agent-process'. 1998-05-14 NISHIDA Keisuke * lookup-vars.el: Delete variable `lookup-initial-selected-dictionaries'. * lookup-access.el (lookup-agent-select-dictionaries): Updated. 1998-05-12 NISHIDA Keisuke * lookup.el (lookup-input-pattern): Modified not to get secondary arg. 1998-05-01 NISHIDA Keisuke * ndtp.el: Modified to insert gaiji with NDTPD-2.x. (ndtp-dictionary-gaiji): New function. * ndeb.el (ndeb-require-font): Fixed to get a font correctly. 1998-04-30 NISHIDA Keisuke * lookup-utils.el (lookup-process-wait): Delete function. * lookup-entry.el (lookup-entry-open): New command. * lookup.el (lookup-follow-reference): Fixed a bug setting refered face even when a reference has no face. 1998-04-29 NISHIDA Keisuke * ndict.el, ndnmz.el: New agents. * ndinfo.el: Delete file. 1998-04-27 NISHIDA Keisuke * lookup-access.el (lookup-get-gaiji): Renamed from lookup-insert-gaiji. * lookup-types.el (lookup-gaiji-insert): New function. 1998-04-26 NISHIDA Keisuke * ndbook-common.el: Delete file. * ndtp.el, ndeb.el: Rewriten. * lookup-entry.el: Modified some keybindings for entry mode. (lookup-entry-research-pattern): Ranamed from `lookup-entry-lookup-pattern'. (lookup-entry-list-references): New command. * lookup-types.el: Rewriten all over the data types. (lookup-check-type): New function. 1998-04-09 NISHIDA Keisuke * lookup-vars.el: Add new variable `lookup-proceeding-message'. * lookup.el (lookup-proceeding-message): New function. * lookup-access.el (lookup-search-string, lookup-agent-setup, lookup-insert-content): Modified to use lookup-proceeding-message. * lookup-format.el (lookup-arrange-content, lookup-adjust-content, lookup-format): Updated. * ndtp.el, ndeb.el, ndinfo.el, ndcookie.el, ndkks.el, ndspell.el: Updated. 1998-04-05 NISHIDA Keisuke * lookup.el (lookup-goto-next-reference): Modified not to show message. (lookup-goto-previous-reference): New function. * lookup-content.el (lookup-content-next-reference): Updated. * lookup-entry.el (lookup-entry-next-entry, lookup-entry-previous-entry): Updated. * lookup.el (lookup-process-require, lookup-process-accept, lookup-process-wait, lookup-process-kill): Moved to lookup-utils.el. 1998-04-04 NISHIDA Keisuke * lookup-types.el (lookup-canonicate-pattern): Merged to `lookup-parse-pattern'. * lookup-entry.el (lookup-entry-search, lookup-entry-set-session, lookup-entry-append-entries): Modified to show entries dynamically. 1998-04-03 NISHIDA Keisuke * lookup-vars.el: Add new variable `lookup-enable-cache'. * lookup-access.el: (lookup-search-string, lookup-insert-content, lookup-insert-gaiji): Modified to use `lookup-enable-cache' to force update. * lookup-content.el, lookup-entry.el: Updated. 1998-04-02 NISHIDA Keisuke * lookup-vars.el: Add new variables `lookup-entry-cite-header' and `lookup-entry-cite-prefix'. * lookup-entry.el (lookup-entry-kill-ring-save-content): Modified to save content with the cite header and prefix if necessary. 1998-03-20 NISHIDA Keisuke * lookup-vars.el: New variable `lookup-enable-description'. * lookup-types.el (lookup-entry-description, lookup-entry-set-description): New functions. * lookup-entry.el (lookup-entry-insert-entry): Modified to insert the short description of entry. * lookup-types.el: (lookup-entry-refered-p): Fixed to check refered correctly. 1998-03-16 NISHIDA Keisuke * lookup-vars.el (lookup-max-text): New varialbe. (lookup-max-hits): Renamed from `lookup-entry-max-hits'. * ndeb.el (ndeb-setup): Updated. * lookup-vars.el: Delete variable `lookup-enable-gaiji'. * lookup-access.el (lookup-insert-gaiji): Updated. 1998-03-16 NISHIDA Keisuke * Version 0.8.5 released. 1998-03-15 NISHIDA Keisuke * Makefile.am: Modified to make tags file. * lookup-compile.el.in: Modified to load optional packages before compile. * lookup.el (lookup-initial-setup): New function. * lookup-vars.el: Modified to initialize variable `lookup-gaiji-insert-function' in lookup-initial-setup. * lookup-vars.el: Make variable `lookup-gaiji-insert-function' internal. * lookup-types.el: Renamed the search words of `forward' or `backward' to `prefix' or `suffix'. * ndspell.el, ndtp.el, ndeb.el: Updated. * lookup-entry.el (lookup-entry-set-session): Modified to save excursion. (lookup-entry-current-excursion, lookup-entry-set-excursion): New functions. * lookup-types.el: Modified the structure of `session' type. * lookup-entry.el, lookup-format.el: Updated. * lookup-types.el (lookup-parse-pattern): Modified to canonicate pattern before parsing. * lookup.el (lookup-pattern): Updated. 1998-03-14 NISHIDA Keisuke * lookup-mule.el: Define autoload for bitmap package. * lookup-entry.el (lookup-entry-next-entry): Recenter on the top or bottom line of entry window. * lookup-types.el: Modified the structure of `dictionary' type. * ndtp.el, ndeb.el, ndebook-common.el, ndcookie.el, ndspell.el, ndkks.el: Updated. * lookup-entry.el (lookup-entry-search): * lookup-types.el (lookup-parse-pattern): Modified not to search when input string is empty. * lookup-vars.el (lookup-gaiji-compose-function): Modified to check the features of `lookup-xemacs' or `lookup-mule'. 1998-03-13 NISHIDA Keisuke * lookup-mule.el, lookup-xemacs.el, lookup-vars.el: Set variables `lookup-gaiji-compose-function' and `lookup-gaiji-insert-function' only in lookup-vars.el and fixed loading of bitmap. 1998-03-09 NISHIDA Keisuke * Version 0.8.4 released. * lookup-access.el (lookup-insert-gaiji): Fixed again.... 1998-03-08 NISHIDA Keisuke * Version 0.8.3 released. * lookup-access.el, ndebook-common.el: Fixed an error when no gaiji replacement object exists. * lookup-compile.el.in: Integrate `command-line-args-left' within lookup-compile.el.in instead of in evi.el. 1998-03-08 NISHIDA Keisuke * Version 0.8.2 released. 1998-03-07 NISHIDA Keisuke * evi.el, evi-mule.el, evi-xemacs.el: New files. * lookup-defs.el, lookup-mule.el: Modified to use `evi'. * ndeb.el, ndtp.el, ndkks.el (*-process-coding-system): Modified to use `lookup-get-coding-system'. * lookup.el (lookup-exit): Fixed to clear module `lookup-search-module' instead of `lookup-current-module'. * lookup-compile.el is replaced with lookup-compile.el.in. * Makefile.am: Updated. 1998-03-06 NISHIDA Keisuke * Version 0.8.1 released. * Makefile.am: Removed the definition of lispdir since it will be set suitably by configure program. 1998-03-05 NISHIDA Keisuke * Version 0.8 released. lookup-1.4.1/lisp/Makefile.am0000644000076400007640000000164510005576676016317 0ustar kazuhikokazuhikoSOURCES = evi.el evi-mule.el lookup.el lookup-utils.el lookup-types.el \ lookup-vse.el lookup-package.el lookup-kanji.el \ lookup-entry.el lookup-content.el lookup-select.el \ ndic.el ndeb.el ndeb-binary.el ndtp.el ndict.el ndkks.el \ ndspell.el ndcookie.el ndmisc.el ndsrd.el sdicf.el stem-english.el EXTRA_DIST = lookup-vars.el.in lookup-compile.el ndnmz.el \ lookup-logo.xbm lookup-logo.xpm $(SOURCES) DISTCLEANFILES = lookup-vars.el MAINTAINERCLEANFILES = Makefile.in lisp_LISP = $(SOURCES) lookup-vars.el ELCFILES = $(lisp_LISP:.el=.elc) $(ELCFILES): lookup-vars.el $(srcdir)/lookup-compile.el $(lisp_LISP) @$(EMACS) -batch -l $(srcdir)/lookup-compile.el $(lisp_LISP) lookup-vars.el: $(top_builddir)/config.status $(srcdir)/lookup-vars.el.in @rm -f lookup-vars.el @sed -e "s/\@VERSION\@/$(VERSION)/" \ -e "s!\@pkgemacsdir\@!$(emacsdir)/lookup!" \ $(srcdir)/lookup-vars.el.in > lookup-vars.el lookup-1.4.1/lisp/TODO0000644000076400007640000000166707401226702014743 0ustar kazuhikokazuhikosome memos -*- outline -*- * [lookup 1294] * ndict $B%G%U%)%k%H$G(B stemming * location $B$K(B `:' $B$,F~$C$F$k$HLdBj$K$J$k!#(B * stem $B<~$j$N=$@5!#(B * process-coding $B$N@_Dj!#(B * $B%b%8%e!<%kKh$K<-=qA*Br!#(B * $BMzNr$K>e8B$r@_$1$k!#(B * lookup-entry-expand-reference $B$G%k!<%WL58B!#(B(famiry) * process-mark $B$rMxMQ!#(B * lookup-require-process $B$,(B XEmacs $B$G40`z$G$J$$!#(B * $B%U%l!<%`4IM}$,$$$^$$$A(B * LF $B$,(B whitespace $B$J(B syntax $B$N%b!<%I$G$O(B lookup-current-word $B$,9T$r$^$?$0!#(B * format $B$N@_Dj$r<-=qKh$K9T$J$o$J$$$H$$$1$J$$$N$OLLE]!#(B $B0lEY$K@_Dj$rJQ$($k$?$a$N4J7i$JJ}K!$r9M$($k!#(B * $B%j%m!<%I$7$F8uJd$,>C$($?$i%P%C%U%!$d%-%c%C%7%e$r$I$&$9$k$+(B? * ndtp ** $B<-=q$N(B usable check. * ndeb ** entry $B$N8uJd$,B?$$>l9g$KB3$-$rI=<(=PMh$k$h$&$K$7$?$$!#(B ** coding-system $B$N<+F0@_Dj!#(B * ndic/ndict ** $B4{$K;2>H$7$?%j%U%!%l%s%9$N?'$,JQ$o$i$J$$!#(B lookup-1.4.1/lisp/elisp-comp0000755000076400007640000000324207401226702016240 0ustar kazuhikokazuhiko#!/bin/sh # Copyright (C) 1995 Free Software Foundation, Inc. # François Pinard , 1995. # # This program 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. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # This script byte-compiles all `.el' files which are part of its # arguments, using GNU Emacs, and put the resulting `.elc' files into # the current directory, so disregarding the original directories used # in `.el' arguments. # # This script manages in such a way that all Emacs LISP files to # be compiled are made visible between themselves, in the event # they require or load-library one another. if test $# = 0; then echo 1>&2 "No files given to $0" exit 1 else if test -z "$EMACS" || test "$EMACS" = "t"; then # Value of "t" means we are running in a shell under Emacs. # Just assume Emacs is called "emacs". EMACS=emacs fi tempdir=elc.$$ mkdir $tempdir cp $* $tempdir cd $tempdir echo "(setq load-path (cons nil load-path))" > script $EMACS -q -batch -l script -f batch-byte-compile *.el mv *.elc .. cd .. rm -fr $tempdir fi lookup-1.4.1/lisp/lookup-vars.el.in0000644000076400007640000003125607546352675017504 0ustar kazuhikokazuhiko;;; lookup-vars.el --- Lookup variable list ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup-vars.el.in,v 1.4 2002/10/01 17:05:01 satomi Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'evi) (defconst lookup-version "@VERSION@" "Lookup $B$N%P!<%8%g%sHV9f!#(B") ;;; ;:: Customizable variables ;;; (defgroup lookup nil "Search interface to electronic dictionaries." :group 'applications) (defgroup lookup-agents nil "Search agents." :group 'lookup) ;; setup variables (defgroup lookup-setup-variables nil "Setup variables." :group 'lookup) (defcustom lookup-enable-splash t "*Non-nil $B$r;XDj$9$k$H!"5/F0;~$K%m%4I=<($9$k(B" :type 'boolean :group 'lookup-general-options) (defcustom lookup-init-file (concat "~" init-file-user "/.lookup") "*Lookup $B$N=i4|2=%U%!%$%kL>!#(B $B$3$N%U%!%$%k$O(B lookup.el $B$N%m!<%ID>8e$KFI$_9~$^$l$k!#(B" :type 'file :group 'lookup-setup-variables) (defcustom lookup-data-directory "@pkgemacsdir@" "*Lookup $B$K4X$9$k%W%m%0%i%`0J30$N%G!<%?$,<}$a$i$l$k%G%#%l%/%H%j!#(B" :type 'directory :group 'lookup-setup-variables) (defcustom lookup-search-agents nil "*$B8!:w%(!<%8%'%s%H$N@_Dj$N%j%9%H!#(B $B%j%9%H$N3FMWAG$OJN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!#(B $BNc(B: (setq lookup-search-agents '((ndtp \"dserver\" :port 2010) (ndeb \"/cdrom\" :enable (\"EIWA\")))))" :type '(repeat (sexp :tag "agent")) ; type $B$O$A$g$C$H$d$d$3$7$9$.!&!&(B :group 'lookup-setup-variables) (defcustom lookup-search-modules nil "*$B8!:w%b%8%e!<%k$N@_Dj$N%j%9%H!#(B" :type '(repeat (cons :tag "Module" (string :tag "name") (repeat :tag "Dictionary" (string :tag "ID")))) :group 'lookup-setup-variables) (defcustom lookup-default-agent-options nil "*$B8!:w%(!<%8%'%s%H$K%G%U%)%k%H$GM?$($k%*%W%7%g%s$N%j%9%H!#(B $B3F%*%W%7%g%s$O!"%?%0$H$J$k%7%s%\%k$H!"CM$H$J$kG$0U$N%*%V%8%'%/%H$H$N(B cons $B$K$h$C$FI=$o$9!#(B" :type '(repeat (cons :tag "option" (symbol :tag "tag") (sexp :tag "value"))) :group 'lookup-setup-variables) (defcustom lookup-agent-options-alist nil "*$B8!:w%(!<%8%'%s%H$N%*%W%7%g%s$r@_Dj$9$kO"A[%j%9%H!#(B $B3FMWAG$N(B car $B$K$O%(!<%8%'%s%H(BID(\"CLASS+LOCATION\")$B$r;XDj$7!"(B cdr $B$K$O%*%W%7%g%s$N%j%9%H$r;XDj$9$k!#(B" :type '(repeat (cons :tag "Agent" (string :tag "ID") (repeat :tag "options" (cons :tag "option" (symbol :tag "tag") (sexp :tag "value"))))) :group 'lookup-setup-variables) (defcustom lookup-default-dictionary-options nil "*$B<-=q$K%G%U%)%k%H$GM?$($k%*%W%7%g%s$N%j%9%H!#(B $B3F%*%W%7%g%s$O!"%?%0$H$J$k%7%s%\%k$H!"CM$H$J$kG$0U$N%*%V%8%'%/%H$H$N(B cons $B$K$h$C$FI=$o$9!#(B" :type '(repeat (cons :tag "option" (symbol :tag "tag") (sexp :tag "value"))) :group 'lookup-setup-variables) (defcustom lookup-dictionary-options-alist nil "*$B<-=q$N%*%W%7%g%s$r@_Dj$9$kO"A[%j%9%H!#(B $B3FMWAG$N(B car $B$K$O<-=q(BID(\"CLASS+LOCATION:NAME\")$B$r;XDj$7!"(B cdr $B$K$O%*%W%7%g%s$N%j%9%H$r;XDj$9$k!#(B" :type '(repeat (cons :tag "Dictionary" (string :tag "ID") (repeat :tag "options" (cons :tag "option" (symbol :tag "tag") (sexp :tag "value"))))) :group 'lookup-setup-variables) ;; general options (defgroup lookup-general-options nil "General customizable variables." :group 'lookup) (defcustom lookup-default-method 'exact "*\\[lookup-pattern] $B$GH!#(B" :type '(repeat (cons :tag "Parameter" (symbol :tag "tag") (sexp :tag "value"))) :group 'lookup-general-options) (defcustom lookup-fill-column .9 "*$B%(%s%H%jFbMF$r(B fill $B$9$k$H$-$N7e?t!#(B $B>.?t$r;XDj$7$?>l9g$O!"%&%#%s%I%&$NI}$KBP$9$k3d9g$H$7$FMQ$$$i$l$k!#(B" :type 'number :group 'lookup-general-options) (defcustom lookup-window-height 4 "*Entry $B%P%C%U%!Ey$N%&%#%s%I%&$N9b$5!#(B $B>.?t$r;XDj$7$?>l9g$O!"(BLookup $BA4BN$N%&%#%s%I%&$N9b$5$KBP$9$k3d9g$H$7$F(B $BMQ$$$i$l$k!#(B" :type 'number :group 'lookup-general-options) (make-variable-frame-local 'lookup-fill-column) (make-variable-frame-local 'lookup-window-height) (defcustom lookup-save-configuration t "*Non-nil $B$r;XDj$9$k$H!"(BLookup $B$rH4$1$?$H$-$K%&%#%s%I%&>uBV$r2sI|$9$k!#(B" :type 'boolean :group 'lookup-general-options) (defcustom lookup-use-bitmap (and (featurep 'bitmap) (or (not (featurep 'image)) (not (image-type-available-p 'xbm)))) "*Non-nil $B$r;XDj$9$k$H!"(Bbitmap-mule $B%Q%C%1!<%8$rMxMQ$7$?30;zI=<($r9T$J$&!#(B" :type 'boolean :group 'lookup-general-options) (defcustom lookup-use-kakasi (or (locate-library "kakasi" nil exec-path) (locate-library "kakasi.exe" nil exec-path)) "*Non-nil $B$r;XDj$9$k$H!"$$$/$D$+$N6ILL$G(B KAKASI $B$,MxMQ$5$l$k!#(B $B$3$l$O8=:_!"6qBNE*$K$OF|K\8l$N%G%U%)%k%H$N8!:w8l$N@Z$j=P$7$KMQ$$$F$$$k!#(B" :type 'boolean :group 'lookup-general-options) (defcustom lookup-enable-gaiji t "*Non-nil $B$r;XDj$9$k$H!"30;zI=<($,M-8z$H$J$k!#(B" :type 'boolean :group 'lookup-general-options) (defcustom lookup-max-hits 50 "*$B8!:w;~$KI=<($9$k%(%s%H%j$N:GBg?t!#(B 0 $B$r;XDj$9$k$H!"8+$D$+$C$?A4$F$N%(%s%H%j$rI=<($9$k!#(B" :type 'integer :group 'lookup-general-options) (defcustom lookup-max-text 100000 "*$B8!:w;~$KI=<($9$k%(%s%H%jK\J8$N:GBgD9!#(B 0 $B$r;XDj$9$k$H!"A4J8$rI=<($9$k!#(B" :type 'integer :group 'lookup-general-options) (defcustom lookup-cite-header nil "*$B%(%s%H%jK\J8$r0zMQ$9$k$H$-$N%X%C%@!#(B $B%3%^%s%I(B `lookup-entry-cite-content' $B5Z$S(B `lookup-content-cite-region' $B$K$h$jFbMF$rl9g!"<-=q$N%?%$%H%k$KCV$-49$($i$l$k!#(B $B<-=q%*%W%7%g%s(B `cite-header' $B$,;XDj$5$l$F$$$k>l9g!"$=$A$i$,M%@h$5$l$k!#(B" :type 'string :group 'lookup-general-options) (defcustom lookup-cite-prefix nil "*$B%(%s%H%jK\J8$r0zMQ$9$k$H$-$N%W%l%U%#%/%9!#(B $B%3%^%s%I(B `lookup-entry-cite-content' $B5Z$S(B `lookup-content-cite-region' $B$K$h$jFbMF$rl9g!"$=$A$i$,M%@h$5$l$k!#(B" :type 'string :group 'lookup-general-options) (defcustom lookup-gaiji-alternate "_" "*$B30;z$NBeBXJ8;zNs$H$7$FMQ$$$i$l$k%G%U%)%k%H$NJ8;zNs!#(B" :type 'string :group 'lookup-general-options) (defcustom lookup-process-coding-system (when (featurep 'evi-mule) (if (memq system-type '(ms-dos windows-nt OS/2 emx)) (evi-coding-system 'sjis) (evi-coding-system 'euc-jp))) "*$B30It%W%m%;%9$H$N%G%U%)%k%H$NJ8;z%3!<%I!#(B" :type 'symbol :group 'lookup-general-options) (defcustom lookup-kakasi-coding-system lookup-process-coding-system "*KAKASI $B$N8F$S=P$7$KMQ$$$kJ8;z%3!<%I!#(B" :type 'symbol :group 'lookup-general-options) (defcustom lookup-inline-image t "t $B$J$i$P(B ($B2DG=$J>l9g$K(B) $B2hA|$rI=<($9$k!#(B" :type 'boolean :group 'lookup-general-options) ;; faces (defgroup lookup-faces nil "Faces." :group 'lookup) (defface lookup-splash-face '((((class color) (background light)) (:foreground "Red")) (((class color) (background dark)) (:foreground "Yellow"))) "Splash face." :group 'lookup-faces) (defface lookup-heading-1-face '((((class color) (background light)) (:foreground "SlateBlue" :bold t)) (((class color) (background dark)) (:foreground "LightBlue" :bold t))) "Level 1 heading face." :group 'lookup-faces) (defface lookup-heading-2-face '((((class color) (background light)) (:foreground "Red" :bold t)) (((class color) (background dark)) (:foreground "Pink" :bold t))) "Level 2 heading face." :group 'lookup-faces) (defface lookup-heading-3-face '((((class color) (background light)) (:foreground "Orange" :bold t)) (((class color) (background dark)) (:foreground "LightSalmon" :bold t))) "Level 3 heading face." :group 'lookup-faces) (defface lookup-heading-4-face '((t (:bold t))) "Level 4 heading face." :group 'lookup-faces) (defface lookup-heading-5-face '((t nil)) "Level 5 heading face." :group 'lookup-faces) (defface lookup-heading-low-face '((((class color) (background light)) (:foreground "Grey" :bold t)) (((class color) (background dark)) (:foreground "LightGrey" :bold t))) "Low level heading face." :group 'lookup-faces) (defface lookup-reference-face '((((class color) (background light)) (:foreground "Blue" :bold t)) (((class color) (background dark)) (:foreground "Cyan" :bold t))) "Face used to highlight reference." :group 'lookup-faces) (defface lookup-refered-face '((((class color) (background light)) (:foreground "DarkViolet" :bold t)) (((class color) (background dark)) (:foreground "Plum" :bold t))) "Face used to highlight refered reference." :group 'lookup-faces) ;;; ;:: Module variables ;;; (defvar lookup-search-method nil "$B8!:wJ}<0$r;XDj$9$k$H!"F~NO$r%Q!<%9$;$:$=$l$r$=$N$^$^MQ$$$k!#(B") (defvar lookup-enable-format t "Non-nil $B$r;XDj$9$k$H!"%F%-%9%H$r@07A$7$F=PNO$9$k!#(B") (defvar lookup-force-update nil "Non-nil $B$r;XDj$9$k$H!"%-%c%C%7%e$rMQ$$$:6/@)E*$K:F8!:w$r9T$J$&!#(B") (defvar lookup-open-function 'lookup-other-window "Lookup $B$N%&%#%s%I%&$rI=<($9$k$?$a$NI8=`$N4X?t!#(B $B8e$K8e$Kl9g!"l9g!"A4$F$N(B ;; $B$d$j$H$j$,%P%C%U%!(B " *ndtp*" $B$K5-O?$5$l$k!#(B ;; ;; * $B3FpJs$,8+$d$9$/$J$k!#(B`lookup-new-plist' $B$r;2>H!#$3$l$r(B ;; $BM-8z$H$9$k$K$O(B `lookup-debug-mode' $B$r(B ~/.emacs $B$G@_Dj$7$J$1$l$P$J$i$J$$!#(B (defvar lookup-debug-mode nil) ;;; ;:: Internal variables ;;; (defvar lookup-agent-list nil) (defvar lookup-agent-alist nil) (defvar lookup-module-list nil) (defvar lookup-module-alist nil) (defvar lookup-dictionary-alist nil) (defvar lookup-default-module nil) (defvar lookup-current-session nil) (defvar lookup-last-session nil) (defvar lookup-buffer-list nil) (defvar lookup-search-pattern nil) (defvar lookup-search-found nil) (defvar lookup-dynamic-display nil) (defvar lookup-proceeding-message nil) (defvar lookup-window-configuration nil) (defvar lookup-byte-compile nil) (defvar lookup-gaiji-compose-function nil) (defvar lookup-gaiji-paste-function nil) (defun lookup-init-gaiji-functions () (cond (lookup-use-bitmap (setq lookup-gaiji-compose-function 'lookup-bitmap-compose lookup-gaiji-paste-function 'lookup-bitmap-paste)) ((or (featurep 'xemacs) (and (featurep 'image) (image-type-available-p 'xbm))) (setq lookup-gaiji-compose-function 'lookup-glyph-compose lookup-gaiji-paste-function 'lookup-glyph-paste)) (t (setq lookup-gaiji-compose-function nil lookup-gaiji-paste-function 'lookup-bitmap-paste)))) (provide 'lookup-vars) ;;; lookup-vars.el ends here ;;; Local variables: ;;; mode:emacs-lisp ;;; End: lookup-1.4.1/lisp/lookup-compile.el0000644000076400007640000000124107401226702017520 0ustar kazuhikokazuhiko;;; lookup-compile.el --- byte-compile elisp files (if (string< emacs-version "19.29") (setq command-line-args-left (cdr command-line-args-left))) (defvar lookup-optional-packages '("bitmap" "browse-url")) (let ((load-path (cons "." load-path)) (byte-compile-warnings nil) (lookup-byte-compile t)) (mapcar 'load command-line-args-left) (mapcar (lambda (file) (load file t)) lookup-optional-packages) (if (not (boundp 'lookup-compile-directory)) (batch-byte-compile) (mapcar (lambda (file) (byte-compile-file (expand-file-name file lookup-compile-directory))) command-line-args-left))) ;;; lookup-compile.el ends here lookup-1.4.1/lisp/ndnmz.el0000644000076400007640000001633307401226711015717 0ustar kazuhikokazuhiko;;; ndnmz.el --- Lookup Namazu interface ;; Copyright (C) 1999 Lookup Development Team ;; Author: TSUCHIYA Masatoshi ;; Version: $Id: ndnmz.el,v 1.1.1.1 2001/11/28 18:32:41 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'eword-decode) (require 'lookup-vars) (defgroup ndnmz nil "Lookup Namazu interface." :group 'lookup-agents) (defcustom ndnmz-program-name "namazu" "*¸¡º÷¥×¥í¥°¥é¥à(namazu)¤Î̾Á°" :type 'string :group 'ndnmz) (defcustom ndnmz-program-options '("-aS") "*¸¡º÷¥×¥í¥°¥é¥à(namazu)¤Î¥ª¥×¥·¥ç¥ó¤Î¥ê¥¹¥È" :type 'list :group 'ndnmz) (defcustom ndnmz-subject-limit 3000 "*¥á¡¼¥ë¤ÎɽÂê¤òõ¤¹¾å¸Â" :type 'integer :group 'ndnmz) (defcustom ndnmz-mail-headers '("From" "To" "Cc" "Reply-To" "Subject" "Date") "*¥á¡¼¥ë¤ÎËÜʸ¤È¶¦¤Ëɽ¼¨¤¹¤ë¥Ø¥Ã¥À¤Î¥ê¥¹¥È" :type 'list :group 'ndnmz) (defcustom ndnmz-process-coding-system lookup-process-coding-system "*Condig system used for Namazu process." :type 'symbol :group 'ndnmz) (defcustom ndnmz-default-file-coding-system (if (>= emacs-major-version 20) 'undecided *autoconv*) "*Condig system used for Namazu files." :type 'symbol :group 'ndnmz) (defvar ndnmz-backend-coding-system (if (>= emacs-major-version 20) 'raw-text *noconv*) "Coding system used in file backends of Namazu.") (defvar ndnmz-temp-buffer nil "¥¨¡¼¥¸¥§¥ó¥È¤Îºî¶ÈÍѥХåե¡") (defun ndnmz-agent-recursive-p (agent) "¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ëº÷°ú¥Õ¥¡¥¤¥ë¤â¸¡º÷¤¹¤ë¤«¤É¤¦¤«Ä´¤Ù¤ë´Ø¿ô" (or (lookup-agent-option agent 'recursive) t)) (defun ndnmz-search-subdirectories (directory) "»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Çº÷°ú¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Ç¥£¥ì¥¯¥È¥ê¤òÁ´¤ÆÊÖ¤¹´Ø¿ô" (delq nil (apply 'nconc (mapcar (lambda (file) (cond ((file-directory-p file) (ndnmz-search-subdirectories file)) ((string= "NMZ.i" (file-name-nondirectory file)) (list (directory-file-name (file-name-directory file)))))) (directory-files directory t "[^\\.]"))))) (put 'ndnmz 'setup 'ndnmz-agent-setup) (defun ndnmz-agent-setup (agent) "¥¨¡¼¥¸¥§¥ó¥È¤òºîÀ®¤¹¤ë´Ø¿ô" (let ((directory (directory-file-name (expand-file-name (lookup-agent-location agent))))) (mapcar (lambda (dir) (lookup-make-dictionary agent dir (file-name-nondirectory dir) (file-name-nondirectory dir))) (if (ndnmz-agent-recursive-p agent) (ndnmz-search-subdirectories directory) (list directory))))) (put 'ndnmz 'clear 'ndnmz-agent-clear) (defun ndnmz-agent-clear (agent) "¥¨¡¼¥¸¥§¥ó¥È¤ò½ªÎ»¤¹¤ë´Ø¿ô" (when (and (bufferp ndnmz-temp-buffer) (buffer-name ndnmz-temp-buffer)) (kill-buffer ndnmz-temp-buffer) (setq ndnmz-temp-buffer nil))) (defun ndnmz-generate-temp-buffer () "ºî¶ÈÍѥХåե¡¤òÀ¸À®¤¹¤ë´Ø¿ô" (unless (buffer-live-p ndnmz-temp-buffer) (setq ndnmz-temp-buffer (generate-new-buffer " *ndnmz*") lookup-buffer-list (cons ndnmz-temp-buffer lookup-buffer-list)) (buffer-disable-undo ndnmz-temp-buffer)) ndnmz-temp-buffer) (put 'ndnmz-with-temp-buffer 'lisp-indent-function 0) (defmacro ndnmz-with-temp-buffer (&rest body) "°ì»þ¥Ð¥Ã¥Õ¥¡¤ò¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤È¤·¤Æ body ¤ò¼Â¹Ô¤·¡¢¤½¤Î¸å°ì»þ¥Ð¥Ã¥Õ¥¡¤òÁݽü¤¹¤ë¥Þ¥¯¥í" (` (let ((original-buffer (current-buffer))) (unwind-protect (progn (set-buffer (ndnmz-generate-temp-buffer)) (unwind-protect (progn (,@ body)) (delete-region (point-min) (point-max)))) (set-buffer original-buffer))))) (defsubst ndnmz-dictionary-type (dictionary) "¸¡º÷ÂоݤΥե¡¥¤¥ë¤ÎÀ­¼Á¤ò»ØÄꤹ¤ë¥ª¥×¥·¥ç¥ó¤òÄ´¤Ù¤ë´Ø¿ô" (lookup-dictionary-option dictionary ':type t)) (defsubst ndnmz-dictionary-coding-system (dictionary) "¸¡º÷ÂоݤΥե¡¥¤¥ë¤Î´Á»ú¥³¡¼¥É¤ò»ØÄꤹ¤ë¥ª¥×¥·¥ç¥ó¤òÄ´¤Ù¤ë´Ø¿ô" (or (lookup-dictionary-option dictionary ':coding-system t) ndnmz-default-file-coding-system)) (defun ndnmz-header-value (header) (let ((point (point)) (data (match-data)) (case-fold-search t)) (unwind-protect (progn (goto-char (point-min)) (if (search-forward (concat "\n" header ": ") nil t) (eword-decode-string (buffer-substring (point) (point-at-eol))))) (goto-char point) (set-match-data data)))) (defun ndnmz-get-mail-subject (file) "»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤«¤é Subject ¤ò¼è¤ê½Ð¤¹´Ø¿ô" (ndnmz-with-temp-buffer (lookup-with-coding-system ndnmz-backend-coding-system (insert-file-contents file nil 0 ndnmz-subject-limit)) (or (ndnmz-header-value "subject") "(none)"))) (put 'ndnmz 'search 'ndnmz-search-dictionary) (defun ndnmz-search-dictionary (dictionary query) "»ØÄꤵ¤ì¤¿¼­½ñ¤ò¸¡º÷¤¹¤ë´Ø¿ô" (let (files headings entries) (ndnmz-with-temp-buffer (lookup-with-coding-system ndnmz-process-coding-system (apply 'call-process ndnmz-program-name nil t nil (append ndnmz-program-options (list (lookup-query-string query) (lookup-dictionary-code dictionary))))) (goto-char (point-min)) (while (not (eobp)) (setq files (cons (buffer-substring (point) (point-at-eol)) files)) (forward-line 1))) (setq headings (mapcar (if (eq (ndnmz-dictionary-type dictionary) 'mail) 'ndnmz-get-mail-subject 'file-name-nondirectory) files)) (while files (setq entries (cons (lookup-make-entry dictionary (car files) (car headings)) entries) files (cdr files) headings (cdr headings))) entries)) (put 'ndnmz 'content 'ndnmz-dictionary-content) (defun ndnmz-dictionary-content (dictionary entry) (ndnmz-with-temp-buffer (lookup-with-coding-system (ndnmz-dictionary-coding-system dictionary) (insert-file-contents (lookup-entry-code entry))) (buffer-substring (point-min) (point-max)))) (defun ndnmz-arrange-default (entry) (let ((type (ndnmz-dictionary-type (lookup-entry-dictionary entry))) (case-fold-search t)) (cond ((eq type 'plain) (lookup-arrange-default-headings entry)) ((eq type 'mail) (ndnmz-arrange-mail entry)) ;; auto detect ((looking-at "From \\|[a-z-]+: ") (ndnmz-arrange-mail entry)) (t (lookup-arrange-default-headings entry))))) (defun ndnmz-arrange-mail (entry) (save-restriction (narrow-to-region (goto-char (point-min)) (progn (re-search-forward "^$" nil t) (point))) (apply 'insert (delq nil (prog1 (let (v) (mapcar (lambda (s) (if (setq v (ndnmz-header-value s)) (format "%s: %s\n" s v))) ndnmz-mail-headers)) (delete-region (point-min) (point-max))))))) (put 'ndnmz ':type 'auto) (put 'ndnmz ':methods '(exact text)) (put 'ndnmz ':arranges '(ndnmz-arrange-default)) (put 'ndnmz ':adjusts '(lookup-adjust-goto-min)) (provide 'ndnmz) lookup-1.4.1/lisp/lookup-logo.xbm0000644000076400007640000010207307401226732017226 0ustar kazuhikokazuhiko#define lookup-demo_width 360 #define lookup-demo_height 120 static char lookup-demo_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xfb, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0xa0, 0x46, 0x01, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x09, 0xbd, 0x04, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x2a, 0xe4, 0xa6, 0xaa, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xd7, 0xba, 0x59, 0x2b, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x40, 0x94, 0x57, 0x6b, 0x6a, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x7b, 0xba, 0xdf, 0xdd, 0xaa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xcd, 0xed, 0xfd, 0x57, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xba, 0x7e, 0x02, 0x7d, 0xab, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xfd, 0x7f, 0xea, 0x07, 0x00, 0xe0, 0x5a, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x17, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xd0, 0xff, 0xff, 0xf7, 0x01, 0x20, 0x00, 0xe7, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x17, 0x00, 0x00, 0x80, 0xff, 0x2f, 0xf4, 0xff, 0x01, 0x00, 0xf8, 0xff, 0xff, 0x5f, 0x00, 0x00, 0x08, 0x99, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x5b, 0x00, 0x00, 0xe0, 0xff, 0xaf, 0x9b, 0xff, 0x07, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x48, 0x00, 0x01, 0x6c, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x15, 0x00, 0x00, 0xe0, 0xff, 0x2f, 0x60, 0xfd, 0x03, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x42, 0x20, 0x51, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x0b, 0x00, 0x00, 0xf8, 0xff, 0x4b, 0x00, 0xf8, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x08, 0x04, 0xe0, 0x33, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x0c, 0x00, 0x00, 0xfc, 0xff, 0x35, 0x00, 0xf8, 0x05, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x40, 0x04, 0x9d, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, 0x00, 0x00, 0xfe, 0xbf, 0x0a, 0x00, 0xfc, 0x16, 0xf8, 0xff, 0xaf, 0xfd, 0xff, 0x17, 0x00, 0x00, 0xd0, 0x66, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x06, 0x00, 0x00, 0xff, 0xab, 0x16, 0x00, 0xfc, 0x02, 0xfe, 0xff, 0x6f, 0xca, 0xff, 0x87, 0x00, 0x08, 0x01, 0x5d, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xbf, 0x01, 0x00, 0x80, 0xff, 0x6a, 0x01, 0x00, 0xfe, 0x06, 0xff, 0xff, 0x97, 0x35, 0xff, 0x0f, 0x20, 0x01, 0x00, 0xaa, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x02, 0x00, 0xc0, 0x7f, 0x25, 0x00, 0x00, 0x7e, 0x82, 0xff, 0xff, 0xd3, 0xee, 0xfc, 0x17, 0x04, 0x40, 0x04, 0xd6, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x01, 0x00, 0xe0, 0xbf, 0x12, 0x00, 0x00, 0xbf, 0x83, 0xff, 0x7f, 0xbd, 0x32, 0xfc, 0x0f, 0x00, 0x20, 0x10, 0x5f, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x5f, 0x01, 0x00, 0xf0, 0xbf, 0x02, 0x00, 0x80, 0x5f, 0xc0, 0xff, 0x48, 0xa1, 0x3e, 0xfc, 0x37, 0x00, 0x00, 0x41, 0x77, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xaf, 0x00, 0x00, 0xf8, 0x7f, 0x01, 0x00, 0x80, 0xaf, 0xe1, 0xff, 0xd7, 0x6e, 0x15, 0xfc, 0x97, 0x20, 0x01, 0xf8, 0xc7, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xbf, 0x00, 0x00, 0xc0, 0x5f, 0xf0, 0x7f, 0x09, 0xa8, 0x1a, 0xfc, 0x1b, 0x02, 0x10, 0xf8, 0x3f, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x0f, 0x00, 0x00, 0xfc, 0x5f, 0x01, 0x00, 0xe0, 0x37, 0xfc, 0xff, 0x06, 0x54, 0x0d, 0xfc, 0x07, 0x00, 0x08, 0xfc, 0xdf, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x77, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xf0, 0x27, 0xfc, 0x7f, 0x01, 0xa0, 0x0e, 0xfc, 0x1d, 0x10, 0x00, 0xfe, 0xbf, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xff, 0x5f, 0x00, 0x00, 0xf0, 0x09, 0xff, 0xff, 0x02, 0xd8, 0x0d, 0xfe, 0x93, 0x00, 0x01, 0xff, 0x4f, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x37, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0xf8, 0x8f, 0xff, 0x7f, 0x01, 0x40, 0x05, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xf7, 0x06, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x13, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0xfc, 0x88, 0xff, 0x7f, 0x01, 0x3c, 0x27, 0x7f, 0x02, 0x08, 0x90, 0xff, 0x0f, 0x07, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xf8, 0x3f, 0x3f, 0xfd, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x17, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x01, 0xbe, 0xc3, 0xff, 0xff, 0x00, 0x60, 0x06, 0xff, 0x02, 0x00, 0xc2, 0xff, 0xfb, 0x02, 0xff, 0x07, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x0f, 0x00, 0xfc, 0x8f, 0xff, 0xfa, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x09, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x07, 0x7f, 0xe6, 0xff, 0xff, 0x03, 0xd2, 0x85, 0x3f, 0x78, 0x01, 0xc0, 0xff, 0x05, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x06, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0xff, 0xc3, 0xff, 0xe2, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0d, 0x40, 0xe0, 0x7f, 0xfe, 0xff, 0x87, 0x5f, 0xe1, 0xbf, 0xff, 0x00, 0x28, 0xc6, 0x1f, 0xfe, 0x5f, 0xf0, 0xff, 0x2a, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x1f, 0xc0, 0xbf, 0xe0, 0x7f, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0xc0, 0xe0, 0x9f, 0xf9, 0xff, 0xc3, 0xdf, 0xe1, 0x1f, 0xff, 0x01, 0xc8, 0xe3, 0x07, 0xff, 0xff, 0xfb, 0xbf, 0x80, 0xff, 0xff, 0x3f, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xe0, 0x67, 0xf0, 0xdf, 0xf8, 0x7f, 0x81, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x05, 0xc0, 0xe1, 0xbf, 0xf2, 0xff, 0xf1, 0x17, 0xf0, 0x7f, 0xff, 0x0f, 0x32, 0xf0, 0x9b, 0xff, 0xff, 0xff, 0x1f, 0xf4, 0xff, 0xff, 0x07, 0x00, 0xe0, 0x27, 0x00, 0x00, 0xf8, 0x1f, 0xf0, 0x17, 0xf8, 0xff, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x05, 0xe0, 0xf3, 0x6f, 0x80, 0x7f, 0xf0, 0xeb, 0xf0, 0x8f, 0xfe, 0xff, 0xff, 0xfc, 0x35, 0xff, 0xff, 0xff, 0xa7, 0xff, 0xff, 0xff, 0x3b, 0x00, 0xf8, 0x37, 0x00, 0x00, 0xf8, 0x65, 0xf0, 0x75, 0xfe, 0x9f, 0x81, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x02, 0xe0, 0xf3, 0xaf, 0x40, 0x10, 0xfc, 0x2b, 0xf0, 0x77, 0xf8, 0xff, 0x1f, 0xfe, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x00, 0xfc, 0x17, 0x00, 0x00, 0xfc, 0x15, 0xf0, 0x16, 0xff, 0x7f, 0x01, 0x7f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x01, 0xe0, 0xf3, 0x57, 0x00, 0x0f, 0xff, 0x2c, 0xf8, 0x0b, 0xf8, 0xff, 0x0f, 0x7f, 0x12, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x00, 0xfe, 0x2b, 0x00, 0x00, 0xfe, 0x0d, 0x30, 0x09, 0xff, 0x9f, 0x80, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x02, 0xf0, 0xfb, 0x17, 0x00, 0x80, 0x7f, 0x09, 0xf8, 0x37, 0xe0, 0xff, 0xc3, 0xdf, 0x85, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0x0a, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x7f, 0x0b, 0x80, 0xc2, 0xff, 0x7f, 0x00, 0xbf, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0xf8, 0xf3, 0x3b, 0x00, 0xe0, 0xbf, 0x07, 0xf8, 0x0d, 0x80, 0xff, 0xe0, 0x2f, 0x02, 0x28, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x3f, 0x13, 0xe0, 0xff, 0x11, 0x00, 0x80, 0xff, 0x04, 0x00, 0xc7, 0xff, 0x8f, 0x80, 0xbf, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0xf8, 0xf3, 0x07, 0x00, 0xf8, 0x9f, 0x02, 0xf8, 0x17, 0x00, 0x02, 0xf8, 0xaf, 0x11, 0x80, 0xff, 0xff, 0xff, 0x17, 0xf8, 0xdf, 0x09, 0xf0, 0xff, 0x1e, 0x00, 0xc0, 0xbf, 0x06, 0x80, 0xe0, 0xff, 0x6f, 0x80, 0xdf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdf, 0x00, 0xfc, 0xf1, 0x19, 0x00, 0xfe, 0x67, 0x00, 0xf8, 0x09, 0x00, 0x1c, 0xfe, 0xb7, 0x44, 0xc0, 0xff, 0xff, 0x57, 0xf8, 0xfd, 0x25, 0x02, 0xfc, 0xff, 0x05, 0x00, 0xe0, 0x7f, 0x03, 0x00, 0xf0, 0xff, 0x57, 0xc0, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9f, 0x00, 0xff, 0xf3, 0x07, 0xc0, 0xff, 0xdd, 0x00, 0xf8, 0x07, 0x00, 0xc0, 0xff, 0x29, 0x00, 0xe1, 0xff, 0xff, 0xaf, 0x87, 0x1b, 0xd5, 0x00, 0xfe, 0x7f, 0x09, 0x00, 0xf8, 0xdf, 0x00, 0x00, 0xf8, 0xff, 0x2b, 0xe0, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x6f, 0x00, 0xff, 0xf6, 0x0b, 0xfc, 0x7f, 0x23, 0x00, 0xf8, 0x0b, 0x00, 0xf0, 0xff, 0x2a, 0x00, 0xf8, 0x5f, 0xfe, 0x5f, 0x69, 0x46, 0x2b, 0x00, 0xfe, 0x7f, 0x03, 0x00, 0xfc, 0x1f, 0x01, 0x00, 0xf8, 0xff, 0x15, 0xf0, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x2f, 0xe0, 0xff, 0xe3, 0xff, 0xff, 0xbf, 0x19, 0x00, 0xf8, 0x0f, 0x00, 0xfc, 0x3f, 0x9d, 0x14, 0xf8, 0x4f, 0xfb, 0x3f, 0xa0, 0x03, 0x05, 0x00, 0xfc, 0x5f, 0x01, 0x00, 0xfe, 0xef, 0x00, 0x00, 0xfc, 0xff, 0x16, 0xf8, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0xfa, 0x7f, 0xe2, 0xff, 0xff, 0xdf, 0x06, 0x00, 0xf0, 0x03, 0x80, 0xff, 0xdf, 0x0a, 0x00, 0xfc, 0xb3, 0xe8, 0x1f, 0xea, 0x83, 0x00, 0x00, 0xfc, 0xbf, 0x01, 0x80, 0xff, 0x17, 0x00, 0x00, 0xf8, 0xff, 0x09, 0x7e, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc4, 0xff, 0xff, 0x53, 0x01, 0x00, 0xf0, 0xbf, 0xf8, 0xff, 0xa7, 0x3b, 0x00, 0xfe, 0x2f, 0xe2, 0xff, 0x90, 0x01, 0x00, 0x00, 0xf8, 0x4f, 0x00, 0xc0, 0xff, 0x77, 0x00, 0x00, 0xf8, 0x7f, 0x85, 0xbf, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x9f, 0x83, 0xff, 0x7f, 0x5d, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x59, 0x6a, 0x09, 0xff, 0xa8, 0x80, 0x7f, 0xea, 0x01, 0x00, 0x00, 0xfc, 0xb7, 0x00, 0xf0, 0xff, 0x0b, 0x00, 0x00, 0xf8, 0x3f, 0xe0, 0x9f, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x80, 0xff, 0xbf, 0x25, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0xcd, 0x7f, 0x80, 0x7f, 0x0f, 0x90, 0x7f, 0x51, 0x01, 0x00, 0x00, 0xfc, 0x57, 0x00, 0xf8, 0xff, 0x15, 0x00, 0x00, 0xec, 0x1f, 0xfe, 0x6f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x87, 0x00, 0xfe, 0x45, 0x05, 0x00, 0x00, 0x80, 0xff, 0xff, 0xaf, 0xf6, 0xff, 0xc0, 0xff, 0x00, 0x0a, 0xff, 0xdd, 0x00, 0x00, 0x00, 0xfe, 0x29, 0x00, 0xfe, 0xff, 0x0d, 0x00, 0x00, 0xf0, 0xef, 0xff, 0xa3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xbd, 0x00, 0x04, 0xbd, 0x02, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x5b, 0x01, 0xbf, 0xf1, 0x9f, 0x93, 0x40, 0xfe, 0xf2, 0x00, 0x00, 0x00, 0xff, 0x0b, 0x00, 0xfe, 0xff, 0x0a, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x25, 0x00, 0x78, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x6f, 0xd2, 0x00, 0xff, 0xf0, 0x77, 0x04, 0x00, 0xfc, 0x4d, 0x00, 0x00, 0x00, 0xff, 0x14, 0x00, 0xff, 0xff, 0x05, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x16, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xb0, 0x2d, 0x80, 0x7d, 0xfc, 0x5f, 0x23, 0x11, 0xfc, 0xe7, 0x00, 0x00, 0x80, 0x7f, 0x06, 0x80, 0xff, 0x7f, 0x06, 0x10, 0x00, 0xf8, 0xff, 0xbf, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xd2, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x4f, 0x02, 0x00, 0x06, 0xfe, 0x4f, 0x00, 0x44, 0xfa, 0xbb, 0x01, 0x00, 0xc0, 0xbf, 0x01, 0x80, 0xff, 0xbf, 0x01, 0xf8, 0x00, 0xfc, 0xff, 0x47, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x4b, 0xad, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xcc, 0xff, 0x9f, 0x88, 0x80, 0xf0, 0x4b, 0x01, 0x0c, 0xe0, 0x5f, 0x03, 0xc0, 0xcf, 0x7f, 0x03, 0xfc, 0x0f, 0xfe, 0xff, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x2f, 0x5a, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xff, 0x37, 0x20, 0x14, 0xf0, 0x57, 0x03, 0x3f, 0xf0, 0xaf, 0x00, 0xf0, 0xe7, 0xbf, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xd7, 0xad, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xff, 0x57, 0x85, 0x80, 0xea, 0x7f, 0x81, 0xff, 0xf8, 0x5f, 0x00, 0xf8, 0xf3, 0x9f, 0x00, 0xfc, 0xff, 0xff, 0x9f, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xff, 0x2b, 0x00, 0x24, 0xc2, 0x9f, 0x87, 0xff, 0xfc, 0x67, 0x00, 0xfe, 0xf1, 0x6f, 0x01, 0xf8, 0xff, 0xff, 0x6b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x7a, 0x0a, 0x50, 0xc9, 0xdc, 0xff, 0xc6, 0x7f, 0xfc, 0x0f, 0x00, 0xff, 0xf8, 0x5f, 0x00, 0xf8, 0xff, 0x7f, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xc7, 0x59, 0x05, 0x22, 0xab, 0x7f, 0xe1, 0x3f, 0xff, 0x33, 0xc0, 0xbf, 0xf8, 0x6f, 0x00, 0xe0, 0xbf, 0xbf, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x5a, 0xae, 0x52, 0xb9, 0x3b, 0xff, 0xf1, 0x1f, 0xff, 0x1b, 0xe0, 0x5f, 0xfc, 0x27, 0x00, 0x80, 0xc7, 0xdf, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x6d, 0x91, 0x2a, 0xa5, 0x5e, 0xfe, 0xff, 0x8f, 0xff, 0x0d, 0xf0, 0x6f, 0xfc, 0x17, 0x00, 0x40, 0xe0, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x49, 0x77, 0xed, 0x6e, 0x0d, 0xfc, 0xff, 0xc7, 0xff, 0x01, 0xfc, 0x2b, 0xfe, 0x3b, 0x30, 0x00, 0xf3, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd4, 0xf7, 0x8c, 0x2a, 0xd9, 0x07, 0xf8, 0xff, 0xe7, 0xff, 0x0f, 0xff, 0x1b, 0xfe, 0x07, 0x3c, 0x00, 0xf0, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x18, 0xf7, 0xaa, 0x6f, 0x01, 0xc0, 0xff, 0xe2, 0xff, 0xc1, 0xff, 0x14, 0xff, 0x15, 0x1f, 0x00, 0xf8, 0xe3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9b, 0xe7, 0x50, 0xeb, 0xd4, 0x03, 0xa0, 0x7f, 0xf1, 0xff, 0xff, 0x3f, 0x97, 0xff, 0x81, 0x1f, 0x01, 0xfc, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6a, 0x9d, 0xbf, 0xbf, 0xbb, 0x00, 0x00, 0xc4, 0xf2, 0xff, 0xff, 0xef, 0x84, 0xff, 0xe2, 0xcf, 0x00, 0xfc, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xb7, 0x62, 0x6f, 0x6a, 0xd7, 0x81, 0x00, 0xb8, 0xf1, 0xff, 0xff, 0x17, 0x81, 0xff, 0xf8, 0x37, 0x00, 0xfe, 0xff, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xc9, 0xdd, 0x00, 0xa0, 0x7d, 0x55, 0x04, 0x00, 0xf8, 0xff, 0xff, 0xfb, 0xc0, 0xff, 0xff, 0xaf, 0x00, 0xfe, 0x7f, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x36, 0x72, 0x00, 0x00, 0xda, 0x23, 0x11, 0x00, 0xf0, 0xff, 0x7f, 0x04, 0xc0, 0xff, 0xff, 0x53, 0x00, 0xff, 0xbf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xcd, 0x6e, 0x00, 0x00, 0xe0, 0x4b, 0x06, 0x00, 0xf8, 0xff, 0xdf, 0x1b, 0xe0, 0xff, 0xff, 0x1f, 0x00, 0xff, 0xbf, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x73, 0x35, 0x00, 0x00, 0x08, 0x95, 0x20, 0x00, 0xf0, 0xff, 0xbf, 0x04, 0xf0, 0xff, 0xff, 0x20, 0x00, 0xff, 0x4f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x1d, 0x33, 0x00, 0x00, 0xd4, 0x02, 0x94, 0x00, 0xe0, 0xff, 0xc7, 0x02, 0xf0, 0xff, 0x7f, 0x1f, 0x00, 0xff, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7c, 0xd5, 0x1c, 0x00, 0x00, 0x55, 0x6a, 0x03, 0x00, 0xe0, 0x7f, 0x39, 0x00, 0xf0, 0xff, 0xbf, 0x02, 0x00, 0xff, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xb6, 0x1f, 0x00, 0x80, 0x92, 0x88, 0xa8, 0x00, 0x80, 0xdf, 0x42, 0x00, 0xf0, 0xff, 0xd7, 0x02, 0x00, 0xbf, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xb6, 0x55, 0x08, 0x00, 0xa0, 0x24, 0x2b, 0x09, 0x00, 0x00, 0xa5, 0x16, 0x00, 0xe0, 0xff, 0xad, 0x00, 0x00, 0xae, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xee, 0x0f, 0x00, 0xa8, 0xda, 0x90, 0x44, 0x00, 0x00, 0x58, 0x01, 0x00, 0xc0, 0x7f, 0x57, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x77, 0x3b, 0x06, 0x00, 0x54, 0x25, 0x4d, 0x12, 0x01, 0x00, 0x24, 0x00, 0x00, 0x00, 0x55, 0x19, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xfd, 0xa6, 0x07, 0x00, 0x55, 0x4d, 0x92, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x03, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xee, 0x79, 0x03, 0x00, 0xb5, 0x52, 0x25, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x97, 0x01, 0xc0, 0x9d, 0x2a, 0x91, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0xed, 0x03, 0x30, 0x65, 0xcb, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xb9, 0x81, 0xed, 0x5a, 0x32, 0x25, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xe7, 0x7e, 0xbb, 0xd5, 0xad, 0x4a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xdd, 0xd7, 0xcd, 0x4e, 0x4a, 0x29, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x75, 0x6d, 0x37, 0xb1, 0x25, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xde, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; lookup-1.4.1/lisp/lookup-logo.xpm0000644000076400007640000026163507401226736017262 0ustar kazuhikokazuhiko/* XPM */ static char * lookup_logo_xpm[] = { "360 120 256 2", " c None", ". c #F0B68C", "+ c #E8B317", "@ c #ECAE33", "# c #F5AA05", "$ c #F5AA18", "% c #F45A27", "& c #F0CB8D", "* c #F59719", "= c #E4461A", "- c #A71705", "; c #B83524", "> c #F1B050", ", c #D9862B", "' c #AC1D09", ") c #C93818", "! c #EBE5DB", "~ c #F9F5E9", "{ c #F7B524", "] c #E7AA10", "^ c #D26F2C", "/ c #B62B13", "( c #BB1D09", "_ c #C93B26", ": c #CCA910", "< c #E6B206", "[ c #C41F08", "} c #C71906", "| c #D45425", "1 c #D5784B", "2 c #D4C8AE", "3 c #D39526", "4 c #D0451C", "5 c #CC1C06", "6 c #D31D06", "7 c #E8BA7C", "8 c #863928", "9 c #AA9E19", "0 c #C9AD48", "a c #D2B676", "b c #EED2B1", "c c #F8D8BA", "d c #CB2A14", "e c #C8240B", "f c #D82309", "g c #DB1D05", "h c #E7270C", "i c #E73813", "j c #F97628", "k c #F2B666", "l c #F7B305", "m c #E99628", "n c #4D180B", "o c #B8A898", "p c #FFFFFF", "q c #B0A806", "r c #F8D4A6", "s c #E31D04", "t c #F64819", "u c #F0892C", "v c #F6A523", "w c #F8B517", "x c #F0531E", "y c #541508", "z c #916E53", "A c #DCDCDC", "B c #949494", "C c #737373", "D c #3C3B3B", "E c #1B1B1B", "F c #141414", "G c #0C0B0B", "H c #2C2C2C", "I c #636363", "J c #E3E3E3", "K c #EAC57C", "L c #B88E33", "M c #B24A35", "N c #B77527", "O c #DC901E", "P c #E42105", "Q c #EC2004", "R c #F41E02", "S c #FB2103", "T c #F92A09", "U c #F79626", "V c #781204", "W c #704C33", "X c #030202", "Y c #5C5C5C", "Z c #C3C3C3", "` c #922811", " . c #B42B13", ".. c #E86526", "+. c #F32004", "@. c #F03310", "#. c #E95A22", "$. c #EF702A", "%. c #EB1D03", "&. c #F4F4F4", "*. c #CCCCCC", "=. c #6C6C6C", "-. c #B80301", ";. c #D70602", ">. c #E80401", ",. c #F61108", "'. c #D83513", "). c #FBFBFA", "!. c #545453", "~. c #060505", "{. c #343434", "]. c #F50401", "^. c #D51206", "/. c #B71A06", "(. c #C31B06", "_. c #971505", ":. c #871103", "<. c #FB1E02", "[. c #888888", "}. c #6C1005", "|. c #480702", "1. c #280803", "2. c #33170A", "3. c #360702", "4. c #590702", "5. c #D3D3D3", "6. c #434343", "7. c #F7C471", "8. c #180703", "9. c #18140A", "0. c #4F2A17", "a. c #AC6D4D", "b. c #C6B092", "c. c #B18D57", "d. c #936239", "e. c #680A02", "f. c #6E2D17", "g. c #DDD1C4", "h. c #4C4C4C", "i. c #ACACAC", "j. c #A4A4A4", "k. c #363028", "l. c #7F7F80", "m. c #918D7C", "n. c #AC7C6D", "o. c #E85E4D", "p. c #DAC17F", "q. c #FDECA1", "r. c #FEF3A5", "s. c #FAE99E", "t. c #F8E69D", "u. c #E9D591", "v. c #CD906F", "w. c #98512D", "x. c #232323", "y. c #838383", "z. c #B4B4B4", "A. c #7B7B7B", "B. c #5F5452", "C. c #905850", "D. c #583A24", "E. c #BDA56C", "F. c #767575", "G. c #1C1B13", "H. c #382616", "I. c #F4E39C", "J. c #EBDB98", "K. c #9B9B9B", "L. c #FEF5AB", "M. c #F18A76", "N. c #717171", "O. c #8C8B8C", "P. c #B8B8B7", "Q. c #D8CB91", "R. c #EC9856", "S. c #F9EAC9", "T. c #F7DAC5", "U. c #989897", "V. c #E5D696", "W. c #FEF5B3", "X. c #E9E8E6", "Y. c #3B3A35", "Z. c #ECE2A8", "`. c #980301", " + c #2E1D15", ".+ c #2C2B24", "++ c #ECECEC", "@+ c #908F8B", "#+ c #FEF5BC", "$+ c #EA7351", "%+ c #544731", "&+ c #7B6C69", "*+ c #89635C", "=+ c #88766D", "-+ c #F9E9D9", ";+ c #A9A9A6", ">+ c #745C47", ",+ c #A39C83", "'+ c #878479", ")+ c #F6EBB7", "!+ c #FDF6D8", "~+ c #FEF5C3", "{+ c #F7E9AB", "]+ c #78726D", "^+ c #74682C", "/+ c #2A2312", "(+ c #FCFAF4", "_+ c #A8A297", ":+ c #AA5449", "<+ c #25190C", "[+ c #EF3924", "}+ c #BFC0C0", "|+ c #49392B", "1+ c #BBBBBB", "2+ c #998555", "3+ c #F6ECE8", "4+ c #E6D8C8", "5+ c #49421E", "6+ c #7F807F", "7+ c #B4B0A9", "8+ c #C8C3B7", "9+ c #EBE6C8", "0+ c #918968", "a+ c #F3BCB1", "b+ c #FDFDFD", "c+ c #DFE0E0", "d+ c #9FA09F", "e+ c #E7DDD7", "f+ c #C7C8C8", "g+ c #7B7A76", "h+ c #686867", "i+ c #0C0402", "j+ c #999486", "k+ c #B2AA89", "l+ c #55504B", "m+ c #A09FA0", "n+ c #6E6454", "o+ c #6C382C", "p+ c #AC8C78", "q+ c #C2974C", "r+ c #C1A929", "s+ c #C60301", "t+ c #E8D997", "u+ c #760902", "v+ c #403F40", "w+ c #E7D897", "x+ c #342814", "y+ c #931614", "z+ c #7C1919", "A+ c #D3B4A9", "B+ c #860502", "C+ c #E0958E", "D+ c #A80301", "E+ c #C76560", "F+ c #B39787", "G+ c #A19B26", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " . + ", " @ # ", " $ # % ", " & # * = - ; ", " > # , ; ' ' ) ! ~ ", " { ] ^ / ( ( ( _ & : . ", " < ] ^ / ( [ } } | & # * 1 ", " 2 ! > < 3 4 ( 5 5 5 6 6 % 7 < < ^ 8 ", " 9 : 0 a b c & @ < + ^ d } e f 6 g h i j k k l < m / n o ", " p p p p p p p p p p p 0 : q : : + 0 k 7 r c & k > + < < < + , 4 e e 6 g f s h h t u v w @ k r c > l l m x } y z ", " p p p A B C D E F G F G F H I B J K : L M N , O ] ] # # # # < + ] 3 , ^ ) e 6 6 g P P Q R S T t j u v w w l l l U x T s V W ", " p p J B D G X X X X X X X X X X X X G Y Z & < ^ ` - .4 | ..j u u , ^ ^ | 4 d e e 6 f f P P Q +.S S S S h @.#...$.m U j @.T R %.- ", " p &. p p *.I G X X X X X X X X X X X X X X X X X X =. 7 < u ( -.-.;.>.,.%.) .; / / ( ( } 6 6 6 g g s %.%.R R R R %.%.f g f '.i @.T T P s g - n ", " p ).!.G p p A Y ~.X X X X X X X X X X X X X X X X X X X X X {. w u '.g ;.>.].^.' ' ./.( (.} e (././.- _._.:._._.- - /./.5 6 6 5 [ 5 g %.<.<.P 6 5 - y z ", " p ).!.X X G p ).[.F X X X X X X X X X X X X X X X X X X X X X X X X F > m x P g ,.} ' ' ( /.( (.( ' _.}.|.1.1.1.1.2.2.2.2.3.3.|.4.:._.- ( 5 P %.S +.P f 6 ( }.W ", " p ).!.X X X X ~. p p 5.6.X X X X X X X X X X X X X X X X X X X X X X X X X X X F p p p p ).&.&.&.&.&.&.&.~ & 7.$.h s P f ' ( ( ( /._.}.3.8.9.0.W a.0 b.K 7 7 a a c.d.W 0.y e._.( g R S S S R %.s - f.g. ", " p ).!.X X X X X X h. p p i.F X X X X X X X X X X X X X X X X X X X X X X X X X X X X X E p p ).A j.[.Y H E E E F E F E E k.h.l.m.n.o.h s [ /._.e.1.9.0.d.p.q.q.r.r.q.s.s.q.s.s.s.s.t.u.v.w.f.V - 6 R <.R +.Q s } V n. ", " p ).Y X X X X X X x.C y. p p [.X X X X X X X X X ~.F H {.{.{.{.{.H F ~.X X X X X X X X X X X X D p p ).z.A.H ~.X X X X X X X X X X X X X X X X 8.x.B.C.d V 1.9.D.E.s.r.r.q.r.r.r.r.r.r.r.q.q.s.s.s.t.t.t.& a.` _.(.%.R R Q %.g - 8 ", " p p Y X X X X X X ~.I C C y. p p A.X X X X X X X X X X x.H x.!.C F.F.F.F.=.=.h.D G X X X X X X X X X ~.=. p p J [.H X X X X X X X X X X X X X X X X X X X X X X X X F G.H.v.s.s.r.r.r.r.r.r.r.r.r.r.r.r.r.r.s.s.s.s.I.I.s.J.1 ' /.g %.%.P s 6 /.a. ", " p p C X X X X X X X D C C C C p p A.X X X X X X X X X X X X X F I C C C C C C C C F.=.I E X X X X X X X X H K. p p J A.E X X X X X X X X X X X X X X X X X X X X X X X X X X X X G.p.r.r.r.r.r.L.L.L.L.L.L.L.r.r.r.r.q.q.s.s.s.t.I.I.I.K | /.g %.%.P g 5 } M. ", " p p C X X X X X X X F N.C C C p p O.X X X X X X X X X X X X X E =.A.K.i.P.Z Z Z P.i.B y.C [.=.X X X X X X X h.C p p P.x.X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X G Q.r.L.L.L.L.L.L.L.L.L.L.L.L.r.r.r.r.r.s.s.s.s.t.I.I.I.1 f g s P g g 6 '.R.S. ~ b T. ", " p p [.X X X X X X X X !.C C C p p =.X X X X X X X X X X X X X H =.C U.z.z. A P.).P.F X X X X F C C A. p p O.~.X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X G.V.L.L.W.L.W.W.W.W.L.W.L.L.L.L.r.r.q.q.s.t.I.I.I.I.I.I.R.h s P P g g f | u k & & & 7 > w m v. ", " p p K.X X X X X X X X x.C C C C p X.!.X X X X X X X X X X X ~.H !.C F.C C C p *.~.X X X X !.C C F. p p 5.h.X X X X X X X X X X X X X X ~.E F G G X X X X X X X X X X X X X X X X X Y.Z.W.W.W.W.W.W.W.W.W.W.L.L.L.L.r.r.q.q.s.I.s.I.I.I.I.t.R.@.h P g f f '.^ m + ] < # # O _.n. ", " p p P.~.X X X X X X X X Y C C C p J D X X X X X X X X ~.x.{.h.=.C C C C C C p p h.X X X X x.C C C C p p K.F X X X X X X X X X X X X X X X {.F.=.=.=.I I h.{.H ~.X X X X X X X X X X X ~.N.Z.W.W.W.W.W.W.W.W.W.W.L.L.L.L.r.r.q.q.t.t.I.I.I.I.I.I.R.= i f g 6 f '.4 ^ , , , x `. + ", " p 5.F X X X X X X X X H C C C F. p A .+X X X X X X ~.{.Y =.C C C C C C C C A. p z.X X X X X Y C C F. p ++I X X X X X X X X X X X X X X X X F =.C C C C C C C C C =.I {.X X X X X X X X X X h.@+W.#+#+#+#+#+#+W.W.W.W.W.L.L.r.r.q.q.t.t.t.I.I.I.I.I.t.R.$+i f 6 6 6 f d ) / / -.3.%+ ", " p ++H X X X X X X X X X I C C C p A H X X X X X X G Y C C C C C C C C C [. p ).{.X X X X {.C C C F. p X.D X X X X X X X X X X X X X X X X F I C C C &+C.C.*+*+=+N.C C K.[.~.X X X X X X X X .+C o #+#+#+#+#+#+#+W.W.W.W.L.L.L.r.q.q.s.t.I.I.I.I.I.I.I.S.-+#.` f g 6 6 5 } ( ' }.8. p p p p p p p p p p ", " p p Y X X X X X X X X X H C C C p A x.X X X X X X X h.C C C C C A.O.;+ p p B X X X X F =.C C C p p I X X X X X X X X X X X X X X X ~.{.=.C C C F.M Q +.+.Q f ' k.>+,+++O.X X X X X X X X x.C '+)+#+#+#+#+#+#+#+#+W.W.L.L.L.L.r.q.q.t.I.I.I.I.J.I.S.p ~ f.2.f 6 f 6 f 5 e - 3.H. p p &.z.A.{.x.x.x.x.x.{.A.z. ", " p p O.X X X X X X X X X X I C C C p A H X X X X X X X F =.C C C [. p J F X X X X h.C C C p p z.X X X X X X X X X F D Y.{.H {.h.I C C C C C C.h R Q +.R g e.G.Q.s.!+&.x.X X X X X X X x.C C 2 #+~+#+#+#+#+W.W.W.W.W.L.L.r.r.q.s.t.I.Z.{+{+)+~ p ).]+X 2.= f f 6 f 5 (.:.8. p p &.B H X X X X X X X X X X X x.[. ", " p 5.~.X X X X X X X X X H C C C p ++H X X X X X X X X D C C C p p h.X X X X {.C C C F. p p Z F X X X X X X X X G I C C C C C C C C C C C *+h Q Q +.R %.- 9.^+s.q.~ p 6.X X X X X X X D C F.o ~+~+~+~+#+#+#+#+W.W.W.L.L.r.r.q.q.t.I.~ p A z.z.K.D X X /+$.'.) 6 f 6 (.}.9. p p p ;+H X X X X X X X X X X X X X X X E K. ", " p ).{.X X X X X X X X X X Y C C C p ).6.X X X X X X X X X I C C F. p p K.X X X X F I C C C p p P.E X X X X X X X X X 6.F.C C C C C C C C C =+M h %.+.+.+.R s e. +Q.q.q.(+p D X X X X X X X Y C C _+#+~+~+#+~+#+#+#+W.W.W.L.L.L.r.q.q.t.S.p &.{.X X X X X X X N :+*+6 g 6 /.3. p p p *.h.X X X X X X X X X X X X X X X X X X X Y ", " p p A.X X X ~.X X X X X X x.C C F. p p =.X X X X X X X X X ~.=.C C p *.F X X X X Y C C C p p K.X X X X X X X X X X ~.=.C C C *.Z z. m % @.Q +.+.R R (.1.W s.q.r.(+p D X X X X X X F =.C C o ~+~+~+~+#+#+#+#+W.W.W.L.L.r.q.q.q.{+).p F.X X X X X X X X <+=.*+f g 6 - 8.>+ p p X.=.~.X X X X X X X X X X X X X X X X X X X X X D ", " p p O.F.A.P.H X X X X X X !.C C C p p B X X X X X X X X X X ~.=.C C p &.H X X X X 6.C C C F. p p A.X X X X X X X X X X X x.C C C { U [++.+.+.<.%._.<+E.r.s.W.p J E X X X X X X D C C C 2 #+~+~+~+#+#+#+W.W.W.W.L.L.L.r.q.q.~ p *.~.X X X X X X X X X x.*+f g 6 V <+ p p p K.x.X X X X X X X X X X X X X X X X X X X X X X X X H ", " p p p }+X X X X X X F C C C p 5.G X X X X X X X X X X X !.C A. p p I X X X X H =.C C A. p &.!.X X X X X X X X X X X X H C C C w v x +.R S <.s 4.|+I.s.s.!+p 1+X X X X X X ~.=.C C F.Z.~+~+#+~+#+#+#+#+W.W.L.L.L.r.q.q.~+p &.D X X X X X X X X X X D =+) g 5 e. + p p p 5.h.X X X X X X X X X X X X X X X X X X X X X X X X X X X D ", " p p h.X X X X X X 6.F.C C p &.{.X X X X X X X X X X X X E =. p p [.X X X X F =.C C F. p X.D X X X X X X X X X X X X X {.C C l v t S <.<.<.5 3.^+t.s.L.(+p I X X X X X X D C C C @+~+~+~+#+#+#+#+#+W.W.W.L.L.L.r.q.{+(+p [.X X X X X X X X X X E C C *+f 5 e.%+ p p p &. p p K. p p &.y.G X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Y ", " p A ~.X X X X X G =.C C F. p p y.X X X X X X X X X X X X X X {.F. p p j.X X X X X I C C C i.p &.D X X X X X X X X X X X X X X H C C r l U t S S <.<./.H.2+s.s.!+p 5.~.X X X X X F =.C C N.2 ~+#+#+~+#+#+#+W.W.W.W.L.L.r.r.r.~ p *.~.X X X X X X X X X G I C C C :+6 }.D. p p p J i.Y x.x. p p J G F p p p 1+{.X X X X X X X X X X E E X X X x.H H E X X X X X X X X X X X X ~.O. ", " p [.X X X X X X {.F.C C p 5.~.X X X X X X X X X X X X X X X X !.Z p p p p p i.~.X X X X Y F.C C A.&.p [.X X X X X X X X X X X X X X X x.F.C 7.l U @.S S <.R _. +p.q.#+p p h.X X X X X F I F.C C '+)+#+#+#+#+#+#+W.W.W.W.L.L.L.r.q.!+p &.{.X X X X X X X X X ~.Y C C C C M 6 :.0.3+ p p p A ;+6.F X X X X E p p p p I X X F 1+ p p J I X X X X X X X X ~.D B *.C F X X X H F.C =.=.{.X X X X X X X X X X X D ", " p p {.X X X X X X I C C C p p !.X X X X X X X X X X X X X X X X X X ~.6.i.A p p J I =. p p 1+~.X X X X !.C C C F. p J F X X X X X X X X X X X X X X X G =.F. k l u @.S S <.%.V 0.Q.{+).p B X X X X X F I C O.i.z.4+!+!+~+#+#+W.#+W.W.W.L.L.L.r.q.!+p p !.X X X X X X X X X X !.C C C F.a.h g .>+3+p p J ;+h.F X X X X X X X X H p p z.A. p p z.X X X X F i. p p p B E X X X X X X X x.Y 5.p J !.X X X X X X H C C C [.[.G X X X X X X X X X ~.=. ", " p 5.~.X X X X X x.C C C p Z X X X X X X X X Y.=.F X X X X X X X X X X X F {.D F X X h. p p z.F X X X X 6.F.C C C ).p A.X X X X X X X X H X X X X X X X X h.C > l j T S S <.%.}.5+{+(+p 1+~.X X X X E I [.*.).p }+O.F.6+;+7+8+9+~+~+W.L.L.L.r.L.!+p p =.X X X X X X X X X X !.C C C C 0+, $+a+-+b+c+;+h.F X X X X X X X X X X X ~.A. p p &.C X A. p p J E X X X X X I p p p 1+D X X X X X X G 6.Y ;+).p i.F X X X X X X X x.A.z.i.j.d+P.F X X X X X X X X X h.[. ", " p [.X X X X X X !.C C C p p C p p h.X X X X X X X x.C C F.h.~.X X X X X X X X X X X X X X X A.p p p z.~.X X X X {.F.C C C C p J F X X X X X X X !.X.E X X X X X X X E C { l j T S S <.s }.^+~ p 5.F X X X X .+=.U.++p 5.6.X X X X X X X E D =.;+8+!+~+!+(+p X.Y X X X X X X X X X ~.!.C C C l._+r ~ b+e+j.h.F X X X X X X X X X X X X X X F C [. p p 1+H X X i.p p p p !.X X X X X D C [.J p p p *.!.X X X X X X G !.=.C i.p p O.X X X X X X X X X 6.F.z. X.f+~.X X X X X X X X H C ", " p p D X X X X X F =.C C p &.G E p A G X X X X X X G =.C C C F.=.6.G X X X X X X X X X X X X h.).p p K.~.X X X X H C C C C C p p B X X X X X X X {.C z.;+X X X X X X X X 6.B p p p { { j S <.S <.g 8 X.p *.H X X X X k.=.C 5.p i.F X X X X X X X X X X X X ~.H Y.6.g+=.x.X X X X X X X X X F Y F.@+i.5.&.p A j.h.F X X X X X X X X X X X X X X X X X E F.C p p &.F.~.X X X }+p J p p A.X X X X X E C C C y. p &.=.~.X X X X X ~.Y A.C C i.p p A.X X X X X X X X X X Y C C p [.X X X X X X X X F C ", " p J ~.X X X X X D C C C p z.X X E p B X X X X X X X !.C C C F. *.[.I h.x.X X X X X X X X ~.h.5.p p A.X X X X X {.A.C C C C p p H X X X X X X E C C C z.N.X X X X X X X X X {.=.z.1+Z *.8+g.b $+g g +.R o.++p P.F X X X X %+g+C C ;+p D X X X X X X X X X X X X X X X X X X X X X X X X X X X X {.;+*.X.p ++1+y.D G X X X X X X X X X X X X X X X X X X X X h.C C p p Z {.X X X X x.&.1+A. p p ;+X X X X X G I C C C p J X X X X X X h.y.C C C i.p p A.X X X X X X X X X X F C C C p ++F X X X X X X X ~.C C ", " p B X X X X X ~.h+C C F. p p =.X X X E A p 6.X X X X X X x.C C C C &.P.y.C Y 6.x.x.E x.x.D F.J p X.!.X X X X X {.C C C C C p Z ~.X X X X X X Y C C C c+=.X X X X X X X X X X X X X ~.~.F 9.i+8.- +.M.b+p K.G X X X X %+'+C C C A.X.O.X X X X X X X X X X X X X X X X X X X X X X X X X X F [.).5.1+[.6.x.X X X X X X X X X X X X X X X X X X X X X X X F C C C p p &.A.~.X X X X X !.K.F.C p p Z ~.X X X X X h.C C C p J ~.X X X x.F.F.C C C i.p p A.X X X X X X X X X X X D F.C p p I X X X X X X X x.C C ", " p p 6.X X X X X H C C C p &.F X X X X *.p E X X X X X ~.I C C C &.z.y.C C C C C F.z.&.p }+x.X X X X X 6.A.C C C C p [.X X X X X X {.C C C C p y.~.X X X X X X X X X X X X X X X 8./.[+a+p &.=.X X X X X >+j+C C C C ,+W.! x.X X X X X X X X X X X X X X X X X X X X X X X X X x.h.H ~.X X X X X X X X X X X X X X X X X X X X X X X X X X ~.Y C C C p p Z {.X X X X X X X Y C C p p *.G X X X X X H C C C C p J ~.X F I F.C C C F.K.p p A.X X X X X X X X X X X ~.=.C C p p [.X X X X X X X I C F. ", " p J ~.X X X X X !.C C C p p B X X X X X ++A ~.X X X X X {.F.C C *.K.A.C B A p &.F.~.X X X X X h.C C C C C p p 6.X X X X X X I C C C p K.H X X X X X X X X X X X X X n d M.3+p *.D X X X X X &+'+C C C C k+q.r.L.7+G.X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X G E X X X X X X X X X ~.!.C C C p p &.A.~.X X X X X X X E C C C p p 5.E X X X X X G =.C C C p J X !.*.C C C C C p p K.X X X X X X X X X X X X {.C C C p p [.X X X X X X D C C C ", " p [.X X X X X F C C C p ++E X X X X F ).z.X X X X X X I C C C ++).p z.H X X X X X ~.Y C C C C C p p x.X X X X X x.C C F. p z.!.H X X X X X X X X X E l+U.e+p &.A.~.X X X X G 2+6+C C C C k+t.q.q.s.r.u.l+F X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X F 6.i.i.x.X X X X X X X X E I C C C C p p Z {.X X X X X X X X X !.C C C p p Z E X X X X X X !.C C C ++z.p &.F.C C C ).p ;+X X X X X X X X X X X X ~.=.C C p p F.X X X X X E C C C C ", " p ).H X X X X X 6.C C C p p =.X X X X X {.).i.X X X X X x.C C C p p p 5.!.X X X X X X F I C C C C C p J F X X X X X 6.C C C p *.A.Y h.H E x.E .+6.Y U.5.b+b+m+H X X X X X G.0+C C C C F.k+s.s.t.q.q.s.q.s.'+Y @+1+O.F X X X X X X X X X X X X X X X X X X X X X X X X X X X F E H !.Y A p J H X X X X X X X G 6.C C C C C p p &.y.~.X X X X X X X X X x.C C C p p 1+F X X X X X X {.C C C p &.F.C p p P.G X X X X X X X X X X X X 6.C C C p ).H X X X X ~.I C C C ", " p i.X X X X X ~.=.C C F. p p ;+X X X X X X h.&.z.X X X X X D C C F. p p p *.I ~.X X X X X X {.=.C C C C p 5.~.X X X X X Y C C J K.C C C C C l.;+J p &.i.D X X X X X X 1.n+C C C C F.Q.t.t.t.t.t.t.s.s.t.Z.! p ).=.~.X X X X X X X X X X X X X X X X X ~.G F E x.x.{.h.!.Y =.F.C C C Z ++.+X X X X X ~.E h.=.C C C C C p p *.D X X X X X X X X X X ~.I C C F. p p i.~.X X X X X X F =.C C C p ++ p p *.F X X X X X X X X X X X X E C C C p p P.X X X X X !.C C C ", " p &.H X X X X X {.C C C p p i.~.X X X X X ~.=.A A G X X X X h.C C p p p ++i.h.~.X X X X X X ~.h.C C C C C p *.~.X X X X X I C C A j.A.O.}+++p A [.H X X X X X X X 0.&+F.C C C '+Q.I.I.I.t.I.t.t.t.t.)+(+p *.H X X X X X X X X X X X X X X X X X X X E h+C C C F.C F.C F.C C C C C A.1+D X X ~.D !.Y F.C C C C C p p &.y.~.X X X X X X X X X X X 6.C C C p p p [.X X X X X X X X !.C C C p p *.F X X X X X X X X X X X X X Y C C C p p J x.X X X X 6.C C C ", " p p y.X X X X X X Y C C F. p p j.~.X X X X X X H C P.p x.X X X X I B O.z.p p p p p p p A z.Y x.X X X X X X X X H I C C C C F. p A F X X X X X Y C C b+p p Z I F X X X X X X X 1.l+F.C C C C m.V.I.I.I.t.I.I.I.I.I.)+(+p P.F X X X X X X X x.H {.~.X X X X X X X X X X {.C C C C C C C C C C &+*+C.o+H.G.E K.*.B C C C C C C C p *.{.X X X X X X X X X X X X H C C C C p p &.Y X X X X X X X X H C C C p A E X X X X X X X X X X X X X 6.F.C C p p J H X X X X !.C C C C ", " p p p ;+X X X X X X E C C C p p p A I X X X X X X X X Y C O.).=.X X X X E l.z.Z *.Z Z z.A.!.D G X X X X X X X X X F h.N.C C C C C p ).x.X X X X X D F.F. p p p J B {.X X X X X X X X X H.h+]+C F.C C ,+I.I.I.t.I.I.I.t.I.I.)+).p i.~.X X X X X X x.I C C C C Y ~.X X X X X X X X X !.'+'+m.m.j+p+q+r+^ ; /.s+|.9.j+ B F.C C C C A. p z.X X X X X X X X X X X X F =.C C C p p 5.{.X X X X X X X X F =.C C C p i.X X X X X X X X X X X X X x.C C C C p p A H X X X X A.F.C C C ", " p p p P.h.X X X X X X X h.y.[.B *.p p p p *.=.F X X X X X X X X {.C C C *.Z X X X X X X X X X X X X X X X X X X X X X X X ~.D I C C C C C p h.X X X X X F C A. p p p 5.=.E X X X X X X X X X G h.N.C N.F.C ]+>+V.t.I.I.I.I.t.I.I.I.)+).p i.~.X X X X X X {.C C C C C C F.B {.X X X X X X X X F m.V.t+t+t+> l $ | e - u+8. C C y. p ;+X X X X X X X X X X ~.I C C C p p p j.F X X X X X X X X X h.C C C p z.X X X X X X X X X X X X F =.C C C p p p i.E X X X X [.B C C C ", " p p X.K.{.X X X X X X X X E i.*.5.5.*.Z K.Y {.X X X X X X X X X X F =.F.C C p h.X X X X X X X X X X X X X X X X X X X X G {.I C C C C C C p i.X X X X X X h.j.&.p p p p p p p p &.Z Y ~.X X X X X X X X X X H I F.C F.C C *+d ` c.I.I.t.I.I.I.I.I.)+p p i.~.X X X X X X H C C C C C A.,+k+m.i.I X X X X X X X X D k+t+t+u.w l u '.[ _.3. p I X X X X X X X X X !.F.C C p p X.I X X X X X X X X X X x.F.C C p z.X X X X X X X X X X X X Y C C C p p p A I X X X X G d+K.C C C ", " p p J A.x.X X X X X X X X X X ~.X G G ~.X X X X X X X X X X X X X X G I C C F. A G X X X X X X X X X X X X X X X X X F v+I C C C C C C &.D X X X X X X ~.6.Y y.K.Z 1+B A.!.{.X X X X X X X X X X X x.!.C F.C C C ]+:+T R (.w.V.I.I.I.I.I.I.)+p p B X X X X X X X x.N.C C C C ,+V.J.J.J.V.8+y.X X X X X X X ~.=.Q.w+> l $ ..f [ :.i+ p p z.X X X X X X X X h.C C C C p p p z.x.X X X X X X X X X X ~.I C C C p z.X X G G X X X X X X X v+C C F.B A p p A C F X X X X H 1+K.C C C ", " p p J F.F X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X G I C C C C j.X X X X X X X X X X X X X X F H !.N.C C C C C C 5.x.X X X X X X X X X X X X X X X X X X X X X X X X X E h.C C C C C C *+_ /./.:.u+n 2+I.I.I.I.I.)+p p B ~.X X X X X X F =.C C C C k+J.J.J.I.J.J.J.9+[.X X X X X X X {.'+K w l U i g ( 4. p p h.X X X X X X X v+C C C C p p X.h+X X X X X X X X X X X X 6.F.C C p z.X F !.~.X X X X X X x.6+B 1+J p ++z.!.G X X X X X Y *.[.C C C ", " p p i.E X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X E I C C C C @+X X X X X X X X X G E D !.=.C C C C C C C *.x.X X X X X X X X X X X X X X X X X X X X X X x.h.C F.C C C C &+C.|.i+i+i+X X X x+a I.I.I.)+p p K.X X X X X X X G I C C C C k+J.J.I.J.J.J.J.J.J.-+I X X X X X X ~.I q+l $ % h g - 8. p p 1+X X X X X X X D C C C C p p p j.x.X X X X X X X X X X X X E C C C p i.~.B H X X X X X X E *.++p A z.I x.X X X X X X F B z.A.C C C ", " p i.X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ~.Y.N.C C C C B E E E x.H 6.h.!.=.C C C C C C C C F. J h.F X X X X X X X X X X X X X X X X X F {.Y C C C C C C F. 1 ) }.8.i+X i+i+8.1.^+V.I.S.).p K.X X X X X X X F Y F.C C C ,+J.J.I.J.J.J.J.J.J.J.J.~ 6.X X X X X X H =+w j T +.g u+9. p &.{.X X X X X X H C C C C p p =.X X X X X X X X X X X X X X !.C C C Z z.y.X X X X X X X B 1+I 6.G X X X X X X X X !.;+[.C C C ", " p y.X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ~.H I C C C C F. 5.F.C C C C C F.C C C C C C A. &.y.h.H E ~.X X X X X X X X X F E D !.C C C C C C C C 7 .. .4.i+i+i+8.3.|.4.a.S.p p y.X X X X X X X H h+C C C C m.J.J.J.J.J.J.J.J.J.J.J.t+Z.X.E X X X X X ~.n+c.t S R 6 4.D. p p =.X X X X X X x.N.C C C p p K.X X X X X X X X X X X X X X H C C C p p 5.~.X X X X X X X ~.X X X X X X X X X X {.A.y.C C C C ", " p y.X X X X X X X X X X X X X X X X X X X X X X X X X X X F D I C C C C C C *.F.C C C C C C C A.[. ++B C C Y !.h.h.D {.h.h.h.Y =.F.F.C C C C C C R.#.y+3.i+1.3.|.4.z+A+p ).=.X X X X X X X E F.C C C C '+V.J.J.J.J.J.J.J.J.J.t+J.t+J.S.z.X X X X X X H =+h S <.g }.W p p ;+X X X X X X F =.C C C p ++E X X X X X X X X X X X X X ~.I C C C p p p p p 6.X X X X X X X X X X X X X X X X X E !.C C C C C C ", " p F.X X X X X X X X X X X X X X X X X X X X X X X F E 6.Y C C C C C C C 5.j.K. P.[.F.C C C C C C C F.C C C C C C C A. r , 4 u+1.3.|.e.:+e+p 5.6.X X X X X X X X H C C C C m.V.J.J.J.J.J.J.J.J.J.J.t+t+t+t+t+~ N.X X X X X X Y M S S %.- f. p p *.G X X X X X G I C C C p p y.X X X X X X G X X X X X X X D C C C p p 1+h.[.5.p p p p K.X X X X X X X X X X X X X X X X F 6.=.C C C C C ", " p p 6.X X X X X X X X X X X X X X X X X G F E D h.!.N.C C C C C C C C z.B y.F.C C C C C C F.l.O. > $. .|.|.C.g.b+&.U.F X X X X X X X X X 6.F.C g+,+t+J.J.J.J.J.J.J.J.J.t+t+J.t+t+V.t+Z.++H X X X X X x.=+h S R 6 :. p p &.&. p p A E X X X X X X !.F.C C p p J F X X X X X !.E X X X X X X G =.C C p p p Z F X X ~.6.y.5.&.p p p p p p X.E X X X X X X X X X X X X X X F 6.=.C C C C C ", " p &.F X X X X X X X X X ~.F E H v+h.!.Y =.F.C C C C C C C C C C A. b m | B+e.A+&.B H X X X X X X X X X X ~.I C C ,+J.J.J.J.J.J.J.J.J.J.t+J.t+t+t+t+V.V.& J.Z X X X X X X !.M S <.%.( ` p p p B x.H =.*. p p J H X X X X X X D C C C C p p p P.x.X X X X X B y.X X X X X X X 6.C C C p p P.F X X X X X X X x.Y A.i.5.5.j.{.X X X X X X X X X X X X X x.h.C C C C C C ", " p p B X X X X X X X X X G Y C C C C C C C C C C C C C C C A.O. @ $.d u+B+C+D X X X X X X X X X X X H C C C k+J.J.J.J.J.J.J.t+t+t+t+t+t+t+V.V.t+> w l S.N.X X X X X F &+@.<.<.%.- M p p p I X X X X G O. p p X.D X X X X X X E C C C C p p J I X X X X X G i.X.G X X X X X X G N.C C p Y X X X X X X X X X X X X X X X X X X X X X X X X X X ~.{.!.C C C C C C ", " p p E X X X X X X X X G Y C C C C C C C C C F.A.[. k @ = D+`.D+E+|+X X X X X X X X X E =.C C C b.J.J.J.J.J.J.t+t+J.t+t+V.V.V.V.k v l l $ R.++x.X X X X X H :+<.<.<.g _.v. p p I X X X X X X X F.).p ).6.X X X X X X ~.I C C F. p p p ;+E X X X X X H *.p !.X X X X X X X 6.C C C p *.X X X X X X X X X X X X X X X X X X X X X X X X E 6.=.C C C C C C ", " p p ~.X X X X X X X ~.Y C F.C C A.B r + ^ ^.D+s+;.>.y+<+~.X X X X X E =.C C C g+V.t+J.J.t+t+t+J.t+t+t+V.w+K > { l l ] m % i C+P.X X X X X X v+ ././.- V n 2 p p [.X X X X X X X X {.&.&.!.X X X X X X X D C C C p p ++I X X X X X X 6.*.p P.X X X X X X X F C C C p A.X X X X X X X X X X X X X X X X X X X X G {.!.C C C C C C C ", " p O.X X X X X X E I C C C F. + , '.s+;.>.].( C.Y h.h.6.h.h.C C C C F.c.k 7.K & u.t+V.& K K k > { l l l ] U ..= h P Q T.I X X X X X ~.|+3.3.1.9./+X.p P.~.X X X X X X X x.X.p I X X X X X X X G =.C C C p p p Z H X X X X X X !.K.p p D X X X X X X X 6.C C F. p I X X X X X X X X X X ~.~.X X X X X F h.=.C C C C C C C ", " O.X X ~.E 6.C C C C C w m 4 >.>.].} ' ' C.C C C C C C C C C z { w l w w { { { w w l l l < $ m u ..= f P s g 6 M X.x.X X X X X X !.F+F+b.e+p X.x.X X X X X X X x.J p A.X X X X X X X X 6.F.C C p p p [.G X X X X X F I F.A p i.X X X X X X X G N.C C p B E X X X X X G 6.K.B F X X X X X h.C C C C C C ", " p Z !.I C C C C C F. w v M ^.].(.' ' ( s _ C.&+C C C C N.a.t % j u U U $ $ $ $ $ $ m u $...= '.f g g g 6 /.e.8.=+z.X X X X X X X E N.A+c+c+h.X X X X X X X F 5.p K.X X X X X X X X ~.=.C C p p p A h.X X X X X X Y.I F.K.p &.H X X X X X X X v+C C C p p p Z Y 6.h.h.Y *.p &.{.X X X X X E C C C C C ", " *.F.F.C C C C k l m 4 /.( ' ' / s h %.+.h _ _ _ 4 _ <.<.S T T t t x % #.#.#.= = '.'.f e 6 6 6 6 (._.3.i+W g.p [.X X X X X X X X X ~.G X X X X X X X F P.p *.G X X X X X X X X {.C C C p p p B E X X X X X ~.!.C C F.J p K.X X X X X X X ~.=.C C p p p i.;+ p P.C C C P.p &.6.X X X X X X !.C C ", " *.A.F.y. & l l j '.( ' ' ( s %.Q Q Q +.S R T S <.<.S S S S <.+.Q h P P g g 6 6 6 5 5 e 5 (./.}.i+ p i.x.X X X X X X X X X X X X X X X F B p &.{.X X X X X X X X X !.C C p p p p Z 6.X X X X X X H I C C C ;+p &.x.X X X X X X X {.C C C p p p 1+6.X z. 5.U.;+p p =.X X X X X X x.j.j.y.F. ", " c w l U t f 5 ( ( f h %.Q Q +.+.+.S <.<.S S S S S S +.R %.P P f g g 6 6 e 5 e } (.' }.8.%+ p A !.D E X X X X X X X X X X X H F.&.p y.X X X X X X X X X X D B j.Z p p &.z.!.X X X X X X X h.=.C C C F.J p O.X X X X X X X X I C C p p p 5.h.X X h. p p ).p K.X X X X X X G O.).p A.Y A ", " @ < $ % T P f e g P %.P Q +.+.+.+.S <.<.S <.<.<.R <.R R R P g g f 6 f 5 e } e ( ( _.1.%+ p *.F.A.I F X X X X X X X E !.C z.p A G X X X X X X X X X X X A.z.z.O.=.H X X X X X X X .+I C C C C C p &.x.X X X X X X X x.C C C p p &.[.F X X X Z p p A p p 5.G X X X X X ~.[.).p j.X X x. ", " @ < ] $.i S <.P g P P Q Q +.+.+.+.<.R R %.s g 6 } 5 } 6 6 g g 6 6 6 5 5 e } e ( ( ' V 2.o A K.F.I D x.E F x.D !.C C A.++p C X X X X X X X X X X X X X X X X X X X X X X X ~.h.=.C C C C p p O.X X X X X X X X h.C [.Z p p z.{.X X X X !.p J ;+ p p 6.X X X X X ~.z.p ++A.X X X I p p ", " a # # , ) g %.S +.+.P P Q Q Q +.R R %.6 - V e.|.|.|.|.|.|.4.e.V _._.- /.( (.(.( ( ' - _.2.o z.O.C C F.C F.C C C K.p X.F X X X X X X X X X X X X X X X X X X X X X X {.I C C C C C p p ++x.X X X X X X X F ;+*.&.p f+Y X X X X X F *.i.F.C p p i.X X X X X X Y 5.=.E X X X {.J 5.5. ", " Q.: < j 4 ( e s S S +.P Q Q Q +.+.R %./.|.1.H.D.W W z z z C.W o+f.n 3.y 4.:._.- ' ' ' } D+2.o P.z.z.z.P.1+Z 5.[.F.C C C C C Z p j.X X X X X X X X X X X X X X X X X X X X X F h.C C C C C p p [.X X X X X X X X .+A 5.[.h.X X X X X X X C y.C C p p D X X X X X X E ~.X X X X X P.5.A.C ", " : : 3 ) ^.' [ P +.S S +.P Q +.+.R R } |.0. z W |.y }.:./.>.`.2.=+i.i.i.z.z.P.1+1+1+Z Z ).p !.X X X X X X X X X X X X X X X X X X X ~.{.=.C C C C F. p p X.F X X X X X X X X X ~.~.X X X X X X X X 6.C C C p p f+X X X X X X X X X X X X X 6.1+A.C ", " r+q 9 w.- ;.^.e s Q S S +.Q Q +.+.<.s :.G. F+C.0.y B+D+u+1.n+;+i.i.i.z.z.P.1+}+Z Z Z p p h.X X X X X X X X X X X X X X X X X X .+Y C C C C C p p y.X X X X X X X X X X X X X X X X X X X x.C C C C p p A.X X X X X X X X X X X X v+y.C F. ", " 0 q q ^+n u+-.^.f s P +.S S +.Q +.R R } 3.%+ -+p+f.4.1.9.n+;+i.i.i.z.z.P.P.1+1+Z Z f+ p I X X X X X X X X X X X X X X X X x.!.C C C C C p p X.F X X X X X X X X X X X X X X X X X X x.=.C C C p p !.X X X X X X X X X X ~.6.C C C C ", " a q q d./+8.4.- [ 5 f f %.+.S +.+.+.<.%.:.9. B B K.n.D. +n+j.;+i.i.z.z.z.1+1+Z Z Z f+A p Z X X X X X X X X X X X X X X E h.C C C C C C p p A.X X X X X X X X X X X X X X X X X X H C C C C p ).{.X X X X X X X X X E Y C C C C ", " Q.q q G+x+i+i+B+' ( e 6 g P +.S S +.R R } 3. ;+O.B B B U.m+j+K.j.;+i.i.i.z.z.P.1+1+}+Z Z *. p A.X X X X X X X X X X X x.!.C F.C C C C p ++E X X X X X X X X X X X X X X X X ~.6.C C C C p &.x.X X X X X X X F h.C C C C C ", " 9 q G+k.9.X u+].( ' ( 5 f g P +.S S R %.:.9. A [.[.O.B B B U.K.m+m+j.;+;+i.i.z.z.P.P.1+Z Z Z Z p @+F X X X X X X X H !.C C C C C C p &.H X X X X X X X X X X X X X X X x.I C C C C p p D X X X X X F h.C C C C C C ", " G+q 9 5+9.X e.-.;.>.' ( (.e 6 P Q S S <.} 3. O.y.[.[.O.O.B B U.K.K.K.j.j.;+i.i.i.z.z.P.1+1+Z Z f+*. p *.6.H F F .+D I C C C C C C p =.X X X X X X X X X X X X X F h.C C C C C p p I X X X x.!.C C C C C C ", " k q q ^+G.~.4.`.`.-.>.^.' ( e 6 f s +.<.%.:.9. A.y.y.[.[.[.O.B B B K.K.m+j.j.;+i.i.z.z.z.P.1+1+Z Z Z *. p Z C C C C C C C C C C p 5.~.X X X X X X X X X X x.h.C C C C C p [.X !.F.C C C C C C ", " l l G+/+~.3.B+B+u+D+s+>.} ' ( 5 g f %.R 5 3.|+ [.A.A.A.y.y.[.O.O.O.B B U.K.K.m+j.j.;+i.i.z.z.P.P.1+1+Z Z Z *.[.C C C C C F. p B F ~.~.~.~.~.~.x.D Y C C C C C C J Z p K.C C C C ", " l $ #._.|.u+u+u+e.B+D+;.>.( ' e 5 f s g :.9. C C F.A.A.y.y.[.[.O.@+B B B K.K.m+j.j.;+i.i.i.z.z.P.1+}+Z Z f+ p p z.F.C F.C C C C C C C C C p p z.C C ", " + m 4 f - 4.e.4.4.e.B+-.>.^.' ( e 5 g (.3.|+ y.=.C F.F.A.A.A.y.y.[.O.O.@+B B K.K.K.d+j.;+i.i.i.z.z.P.1+1+1+Z Z p ++l.C C C C C C C C C p *. ", " ^ e } - 4.|.|.|.|.u+`.s+>.5 ' ( 5 } V <+ =.=.=.C C F.A.A.'+l.y.[.[.O.@+B B B K.K.j.j.j.;+i.i.z.z.z.P.1+Z Z Z p *.A.A.A.A.A.A. ", " ' _._.3.3.3.3.|.e.B+D+s+>.( ( ( - 3.D. C I I =.=.=.C F.F.A.l.l.y.[.[.O.O.B B B K.K.K.m+j.;+i.i.i.z.z.P.1+1+Z ", " 8 V 3.1.3.4.e.B+`.D+s+].;.' ' V G. y.Y I I I =.=.=.C C F.A.A.A.y.y.[.[.O.@+B B K.K.K.j.j.j.;+i.i.z.z.z.P.1+Z ", " a.|.1.4.e.B+D+-.;.>.>.( ' _.3.0. [.I !.!.!.Y Y Y I I I =.=.N.C F.A.A.A.y.y.[.[.O.O.B B B K.K.K.j.j.;+i.i.i.z.P.P.1+ ", " f.|.u+`.-.;.>.;.' ' ' }.G.%+6.D 6.6.h.h.h.!.!.!.Y Y Y I I =.h+=.=.C F.F.A.A.=+y.[.[.O.O.B B B K.K.m+j.j.;+i.i.z.z.z. ", " a.u+B+-.>.^.' ' ( - 3.x+D D D 6.6.6.h.h.h.!.!.!.Y Y I I I =.=.=.C C F.F.l.y.l.y.[.[.O.O.B B K.K.K.K.j.j.;+i.i. ", " ; `.:._.' ' - e.9.k.Y.D v+v+6.6.h.h.h.!.!.!.=.C O.F.A.A.A.A.C C F.A.A.l.l.y.[.[.O.O.B B B K.K.;+z. ", " f.}.}.}.|.G H.{.{.Y.D D 6.6.6.h.h.h.P. ", " 0. <+0.k.{.Y.Y.D v+6.6.6.h.F. ", " !.H H {.{.{.D D v+6.!. ", " H H {.{.{.D D h. ", " D H {.D A. ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; lookup-1.4.1/lisp/evi.el0000644000076400007640000001756607401226715015371 0ustar kazuhikokazuhiko;;; evi.el --- Emacs version integrator ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: evi.el,v 1.1.1.1 2001/11/28 18:32:45 kazuhiko Exp $ ;; This file is part of `evi'. ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (or (fboundp 'when) (defmacro when (cond &rest body) (` (if (, cond) (progn (,@ body)))))) (or (fboundp 'unless) (defmacro unless (cond &rest body) (` (if (, cond) nil (,@ body))))) (or (fboundp 'caar) (defun caar (obj) (car (car obj)))) (or (fboundp 'cadr) (defun cadr (obj) (car (cdr obj)))) (or (fboundp 'cdar) (defun cdar (obj) (cdr (car obj)))) (or (fboundp 'cddr) (defun cddr (obj) (cdr (cdr obj)))) (or (fboundp 'defgroup) (defmacro defgroup (symbol members doc &rest rest) nil)) (or (fboundp 'defcustom) (defmacro defcustom (symbol value doc &rest rest) (list 'defvar symbol value doc))) (or (fboundp 'defface) (defmacro defface (face spec doc &rest rest) (let ((list (cadr (assq t (eval spec)))) (symbol (list 'quote face)) key value exp) (while list (setq key (car list) value (cadr list)) (setq exp (cons (cond ((eq key ':bold) (list 'set-face-bold-p symbol value)) ((eq key ':underline) (list 'set-face-underline-p symbol value)) ((eq key ':foreground) (list 'set-face-foreground symbol value))) exp)) (setq list (cddr list))) (cons 'progn (cons (list 'setq face (list 'make-face symbol)) exp))))) (or (fboundp 'plist-get) (defun plist-get (plist prop) (catch 'value (while plist (if (eq (car plist) prop) (throw 'value (cadr plist)) (setq plist (cddr plist))))))) (or (fboundp 'plist-put) (defun plist-put (plist prop val) (catch 'new-list (let ((list plist)) (while list (when (eq (car list) prop) (setcar (cdr list) val) (throw 'new-list plist)) (setq list (cddr list))) (cons prop (cons val plist)))))) (or (fboundp 'save-current-buffer) (defmacro save-current-buffer (&rest body) (` (let ((evi-orig-buffer (current-buffer))) (unwind-protect (progn (,@ body)) (set-buffer evi-orig-buffer)))))) (or (fboundp 'save-selected-window) (defmacro save-selected-window (&rest body) (` (let ((save-selected-window-window (selected-window))) (unwind-protect (progn (,@ body)) (select-window save-selected-window-window)))))) (or (fboundp 'with-current-buffer) (defmacro with-current-buffer (buffer &rest body) (` (save-current-buffer (set-buffer (, buffer)) (,@ body))))) (or (fboundp 'with-temp-buffer) (defmacro with-temp-buffer (&rest forms) (let ((temp-buffer (make-symbol "temp-buffer"))) (` (let (((, temp-buffer) (get-buffer-create (generate-new-buffer-name " *temp*")))) (unwind-protect (with-current-buffer (, temp-buffer) (,@ forms)) (and (buffer-name (, temp-buffer)) (kill-buffer (, temp-buffer))))))))) (or (fboundp 'with-temp-file) (defmacro with-temp-file (file &rest forms) (let ((temp-file (make-symbol "temp-file")) (temp-buffer (make-symbol "temp-buffer"))) (` (let (((, temp-file) (, file)) ((, temp-buffer) (get-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (with-current-buffer (, temp-buffer) (,@ forms)) (with-current-buffer (, temp-buffer) (widen) (write-region (point-min) (point-max) (, temp-file) nil 0))) (and (buffer-name (, temp-buffer)) (kill-buffer (, temp-buffer))))))))) (or (fboundp 'add-to-list) (defun add-to-list (symbol element) (or (member element (symbol-value symbol)) (set symbol (cons element (symbol-value symbol)))))) (or (fboundp 'match-string) (defun match-string (num &optional string) (if (match-beginning num) (if string (substring string (match-beginning num) (match-end num)) (buffer-substring (match-beginning num) (match-end num)))))) (or (fboundp 'buffer-substring-no-properties) (defun buffer-substring-no-properties (start end) (format "%s" (buffer-substring start end)))) (or (fboundp 'file-name-sans-extension) (defun file-name-sans-extension (filename) (if (string-match "\\.[^./]*$" filename) (substring filename 0 (match-beginning 0)) filename))) (or (fboundp 'string-width) (defalias 'string-width 'length)) (or (fboundp 'string-to-list) (defalias 'string-to-list 'string-to-char-list)) (or (fboundp 'string-to-char-list) (defun string-to-char-list (string) "Return a list of which elements are characters in the STRING." (mapcar (function identity) string))) (or (fboundp 'make-char) (defalias 'make-char 'make-character)) (or (fboundp 'buffer-live-p) (defalias 'buffer-live-p 'buffer-name)) (or (fboundp 'frame-first-window) (defalias 'frame-first-window 'frame-highest-window)) (or (fboundp 'make-variable-frame-local) (defalias 'make-variable-frame-local 'make-variable-buffer-local)) (or (fboundp 'frame-parameter) (if (fboundp 'frame-property) (defalias 'frame-parameter 'frame-property) (defun frame-parameter (frame parameter) (cdr (assq parameter (frame-parameters frame)))))) (when (string< emacs-version "20") (defvar evi-orig-char-after (symbol-function 'char-after)) (defun char-after (&optional pos) (funcall evi-orig-char-after (or pos (point)))) (defvar evi-orig-replace-match (symbol-function 'replace-match)) (defun replace-match (newtext &optional fixedcase literal string) (if (not string) (funcall evi-orig-replace-match newtext fixedcase literal) (with-temp-buffer (insert string) (set-match-data (mapcar '1+ (match-data))) (funcall evi-orig-replace-match newtext fixedcase literal) (buffer-substring (point-min) (point-max))))) ) (when (or (string< emacs-version "20") (featurep 'xemacs)) (defvar evi-orig-read-string (symbol-function 'read-string)) (defun read-string (prompt &optional initial history default inherit) (let ((input (funcall evi-orig-read-string prompt initial))) (if (and default (equal input "")) default input))) (defvar evi-orig-completing-read (symbol-function 'completing-read)) (defun completing-read (prompt table &optional predicate require-match initial histry default inherit) (let ((input (funcall evi-orig-completing-read prompt table predicate require-match initial histry))) (if (and default (equal input "")) default input))) (when (string< emacs-version "20.3") (defvar evi-orig-string-to-number (symbol-function 'string-to-number)) (defun string-to-number (string &optional base) (if (not base) (funcall evi-orig-string-to-number string) (let ((len (length string)) (number 0) (i 0) c) (if (or (< base 2) (< 16 base)) (error "Args out of range: %d" base) (while (< i len) (setq number (* number base)) (setq c (aref string i)) (cond ((and (<= ?0 c) (<= c ?9)) (setq number (+ number (- c ?0)))) ((and (<= ?a c) (<= c ?f)) (setq number (+ number (- c ?a -10)))) ((and (<= ?A c) (<= c ?F)) (setq number (+ number (- c ?A -10)))) (t (setq i len))) (setq i (1+ i))) number))))) ) (if (featurep 'mule) (require 'evi-mule)) (provide 'evi) ;;; evi.el ends here lookup-1.4.1/lisp/evi-mule.el0000644000076400007640000000343207401226705016313 0ustar kazuhikokazuhiko;;; evi-mule.el --- integrate some Mule futures ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: evi-mule.el,v 1.1.1.1 2001/11/28 18:32:37 kazuhiko Exp $ ;; This file is part of `evi'. ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (defconst evi-mule-version (if (boundp 'mule-version) mule-version (if (and (featurep 'xemacs) (featurep 'mule)) "3.0"))) (defconst evi-coding-system-table (if (string< evi-mule-version "3.0") '((no-conversion . *noconv*) (binary . *noconv*) (emacs-mule . *intern*) (junet . *junet*) (sjis . *sjis*) (euc-jp . *euc-japan*) (euc-jp-dos . *euc-japan*dos)))) (defun evi-coding-system (key) (or (cdr (assq key evi-coding-system-table)) key)) (if (string< evi-mule-version "3.0") (defsubst evi-define-program-coding-system (pattern val) (define-program-coding-system nil pattern val)) (defsubst evi-define-program-coding-system (pattern val) (add-to-list 'process-coding-system-alist (cons pattern val)))) (provide 'evi-mule) ;;; evi-mule.el ends here lookup-1.4.1/lisp/lookup.el0000644000076400007640000006360210005425335016100 0ustar kazuhikokazuhiko;;; lookup.el --- Search interface to electronic dictionaries ;; Copyright (C) 1999-2001 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup.el,v 1.6 2004/01/27 09:09:49 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'evi) (require 'lookup-vars) (require 'lookup-utils) (require 'lookup-types) ;;;;;;;;;;;;;;;;;;;; ;: Top-level ;;;;;;;;;;;;;;;;;;;; ;;; ;:: General commands ;;; ;;;###autoload (defun lookup-version (arg) "Display the version string of Lookup. With prefix argument, insert string at point." (interactive "P") (let ((version (concat "Lookup " lookup-version))) (if arg (insert version) (message version)))) ;;;###autoload (defun lookup (&optional module) "Lookup $B$r5/F0$7!"@_Dj$7$?<-=q$N%j%9%H$rI=<($9$k!#(B $B4{$K5/F0$7$F$$$k>l9g$O!":G8e$K8!:w$7$?$H$-$N>uBV$re$2!"<-=q$N=i4|2=Ey$rl9g!"(B $B2hLL$N>uBV$r8!:w3+;O;~$N$b$N$KLa$9!#$=$N8e(B `\\[lookup]' $B$9$k$H(B Lookup $B$N(B $B%&%#%s%I%&$,2sI|$9$k!#(B" (interactive) (if (lookup-exclusive-frame-p) (delete-frame) (lookup-foreach 'lookup-hide-buffer lookup-buffer-list) (when (and lookup-save-configuration lookup-window-configuration) (set-window-configuration lookup-window-configuration) (setq lookup-window-configuration nil)))) (defun lookup-exit (&optional arg) "Lookup $B$r=*N;$9$k!#%W%l%U%#%/%9$rIU$1$k$H6/@)=*N;!#(B" (interactive "P") (when (and (or (not (interactive-p)) (y-or-n-p "Are you sure to exit Lookup? ")) lookup-last-session) (if arg (progn (setq lookup-last-session nil) (message "OK, you can exit Emacs")) (lookup-suspend) (lookup-foreach 'lookup-agent-clear lookup-agent-list) (lookup-foreach 'lookup-module-clear lookup-module-list) (lookup-foreach 'kill-buffer lookup-buffer-list) (setq lookup-agent-list nil) (setq lookup-agent-alist nil) (setq lookup-module-list nil) (setq lookup-module-alist nil) (setq lookup-dictionary-alist nil) (setq lookup-buffer-list nil) (setq lookup-default-module nil) (setq lookup-current-session nil) (setq lookup-last-session nil) (when (featurep 'lookup-vse) (lookup-entries-cache-clear) (lookup-contents-cache-clear))))) (defun lookup-restart () "Lookup $B$r:F5/F0$9$k!#(B" (interactive) (if (and (interactive-p) (not (yes-or-no-p "Are you sure to restart Lookup? "))) (message nil) (lookup-exit) (lookup-initialize) (lookup))) (defun lookup-debug () "$B%G%P%C%0%b!<%I$KF~$k!#(B" (interactive) (setq lookup-debug-mode (not lookup-debug-mode)) (setq debug-on-error lookup-debug-mode) (message (if lookup-debug-mode "Lookup debug enabled" "Lookup debug disabled"))) ;;; ;:: Search commands ;;; (defun lookup-pattern-input () (let ((module (if current-prefix-arg (lookup-input-module))) (pattern (lookup-input-pattern))) (list pattern module))) ;;;###autoload (defun lookup-pattern (pattern &optional module) "Search for the PATTERN." (interactive (lookup-pattern-input)) (lookup-search-pattern (or module (lookup-default-module)) pattern)) ;;;###autoload (defun lookup-pattern-full-screen (pattern &optional module) "Search for the PATTERN in full screen." (interactive (lookup-pattern-input)) (let ((lookup-open-function 'lookup-full-screen)) (lookup-pattern pattern module))) ;;;###autoload (defun lookup-pattern-other-frame (pattern &optional module) "Search for the PATTERN in another frame." (interactive (lookup-pattern-input)) (let ((lookup-open-function 'lookup-other-frame)) (lookup-pattern pattern module))) (defun lookup-word-input () (let ((module (if current-prefix-arg (lookup-input-module))) (word (lookup-current-word))) (list word module))) ;;;###autoload (defun lookup-word (word &optional module) "Search for the word near the cursor." (interactive (lookup-word-input)) (let ((lookup-search-method 'default)) (lookup-pattern word module))) ;;;###autoload (defun lookup-word-full-screen (word &optional module) "Search for the word near the cursor in full screen." (interactive (lookup-word-input)) (let ((lookup-open-function 'lookup-full-screen)) (lookup-word word module))) ;;;###autoload (defun lookup-word-other-frame (word &optional module) "Search for the word near the cursor in another frame." (interactive (lookup-word-input)) (let ((lookup-open-function 'lookup-other-frame)) (lookup-word word module))) (defun lookup-region-input () (let ((module (if current-prefix-arg (lookup-input-module))) (start (mark)) (end (point)) tmp) (if (> start end) (setq tmp start start end end tmp)) (list start end module))) ;;;###autoload (defun lookup-region (start end &optional module) "Search for the region." (interactive (lookup-region-input)) (lookup-word (buffer-substring-no-properties start end) module)) ;;;###autoload (defun lookup-region-full-screen (start end &optional module) "Search for the region in full screen." (interactive (lookup-region-input)) (let ((lookup-open-function 'lookup-full-screen)) (lookup-region start end module))) ;;;###autoload (defun lookup-region-other-frame (start end &optional module) "Search for the region in another frame." (interactive (lookup-region-input)) (let ((lookup-open-function 'lookup-other-frame)) (lookup-region start end module))) ;;;###autoload (defun lookup-selection (click) "Search for the mouse's selection." (interactive "e") (lookup-word (current-kill 0 t))) ;;;###autoload (defun lookup-selection-full-screen (click) "Search for the mouse's selection in full screen." (interactive "e") (let ((lookup-open-function 'lookup-full-screen)) (lookup-selection click))) ;;;###autoload (defun lookup-selection-other-frame (click) "Search for the mouse's selection in another frame." (interactive "e") (let ((lookup-open-function 'lookup-other-frame)) (lookup-selection click))) ;;;###autoload (defun lookup-secondary (click) "Search for the mouse's secondary selection." (interactive "e") (call-interactively 'mouse-drag-secondary) (let ((start (overlay-start mouse-secondary-overlay)) (end (overlay-end mouse-secondary-overlay))) (unless (eq start end) (with-current-buffer (window-buffer (posn-window (event-start click))) (unwind-protect (lookup-word (buffer-substring-no-properties start end)) (delete-overlay mouse-secondary-overlay)))))) ;;;###autoload (defun lookup-secondary-full-screen (click) "Search for the mouse's secondary selection in full screen." (interactive "e") (let ((lookup-open-function 'lookup-full-screen)) (lookup-secondary click))) ;;;###autoload (defun lookup-secondary-other-frame (click) "Search for the mouse's secondary selection in another frame." (interactive "e") (let ((lookup-open-function 'lookup-other-frame)) (lookup-secondary click))) ;;;;;;;;;;;;;;;;;;;; ;: User-visible ;;;;;;;;;;;;;;;;;;;; ;;; ;:: Get object ;;; (defun lookup-get-module (name) "Return the search module named NAME." (lookup-assoc-ref (lookup-module-alist) name)) (defun lookup-get-agent (id) "Return the search agent had ID." (lookup-assoc-ref (lookup-agent-alist) id)) (defun lookup-get-dictionary (id) "Return the dictionary had ID." (lookup-assoc-ref (lookup-dictionary-alist) id)) ;;; ;:: Search functions ;;; (defvar lookup-input-history nil "Lookup $B$N8!:w%Q%?!<%sF~NO$NMzNr!#(B") (defvar lookup-input-module-history nil "Lookup $B$N8!:w%b%8%e!<%kF~NO$NMzNr!#(B") (defun lookup-input-pattern () "$B%W%m%s%W%H$r=P$7!"8!:w%Q%?!<%s$NF~NO$rB%$9!#(B $B%G%U%)%k%H$H$7$F%+!<%=%k0LCV$NC18l$r (length pattern) 80) (error "Too long search pattern")) (if (string-match "\n" pattern) (error "Search pattern should be one line")) (setq lookup-search-pattern pattern) (let ((query (if lookup-search-method (lookup-make-query lookup-search-method pattern) (lookup-parse-pattern pattern)))) (if (string= (lookup-query-string query) "") (error "Specify a search string")) (if (or (not (eq (lookup-query-method query) 'text)) (eq lookup-search-method 'text) (y-or-n-p "This may cost vast time. Do you realy search text? ")) (lookup-search-query module query)))) ;;; ;:: Setup functions ;;; (defun lookup-set-agent-option (id tag value) "$B8!:w%(!<%8%'%s%H$N%*%W%7%g%s$r%;%C%H$9$k!#(B ID $B$O%(!<%8%'%s%H(BID$B!#(BTAG $B$O%*%W%7%g%s$N%?%0!#(BVALUE $B$O%;%C%H$9$kCM!#(B $B$3$N4X?t$O(B `lookup-agent-options-alist' $B$NCM$r=q$-49$($k!#(B" (let ((options (lookup-assoc-ref lookup-agent-options-alist id))) (setq lookup-agent-options-alist (lookup-assoc-set lookup-agent-options-alist id (lookup-assq-set options tag value))))) (defun lookup-set-dictionary-option (id tag value) "$B<-=q$N%*%W%7%g%s$r%;%C%H$9$k!#(B ID $B$O<-=q(BID$B!#(BTAG $B$O%*%W%7%g%s$N%?%0!#(BVALUE $B$O%;%C%H$9$kCM!#(B $B$3$N4X?t$O(B `lookup-dictionary-options-alist' $B$NCM$r=q$-49$($k!#(B" (let ((options (lookup-assoc-ref lookup-dictionary-options-alist id))) (setq lookup-dictionary-options-alist (lookup-assoc-set lookup-dictionary-options-alist id (lookup-assq-set options tag value))))) ;;; ;:: Global commands ;;; ;;;###autoload (defun lookup-module-forward (&optional arg) "$B%b%8%e!<%k$rA0$K@Z$jBX$($k!#(B" (interactive "p") (let* ((module (if lookup-current-session (lookup-session-module lookup-current-session) (lookup-default-module))) (len (length (lookup-module-list))) (pos (- len (length (memq module lookup-module-list))))) (setq pos (% (+ pos (or arg 1)) len)) (if (< pos 0) (setq pos (+ pos len))) (setq module (nth pos lookup-module-list)) (if (window-live-p lookup-main-window) (lookup module)) (setq lookup-default-module module) (message (lookup-module-name module)))) ;;;###autoload (defun lookup-module-backward (&optional arg) "$B%b%8%e!<%k$r8e$K@Z$jBX$($k!#(B" (interactive "p") (lookup-module-forward (- (or arg 1)))) (defun lookup-history-next (&optional arg) "$BMzNr$rH!#8=:_!"%;%C%7%g%s$K$OH!#(B ;; ;; $BA*Br%;%C%7%g%s(B - $B<-=q0lMw$rI=<(!"A*Br$9$k%;%C%7%g%s!#(B ;; $B8!:w%;%C%7%g%s(B - $B8!:w$r9T$J$$7k2L$rI=<($9$k%;%C%7%g%s!#(B ;; ;; $B%;%C%7%g%s$KF~$k$K$O!"MxMQ$9$k%b%8%e!<%k$H%;%C%7%g%s$N%?%$%W$r;XDj$7$F(B ;; `lookup-start-session' $B$rl9g!"$=$l$bJD$8$k!#(B (let ((window (get-buffer-window buffer))) (when window (if (eq window lookup-main-window) (setq lookup-main-window nil)) (if (eq window lookup-sub-window) (setq lookup-sub-window nil)) (if (> (count-windows) 1) (delete-window window) (switch-to-buffer (other-buffer))))) (if (window-live-p lookup-main-window) (select-window lookup-main-window)) (if (buffer-live-p buffer) (bury-buffer buffer))) (defun lookup-pop-to-buffer (buffer) (if (and (window-live-p lookup-main-window) (if (fboundp 'frame-visible-p) (frame-visible-p (window-frame lookup-main-window)))) (progn (set-window-buffer (select-window lookup-main-window) buffer) (raise-frame (window-frame lookup-main-window))) (setq lookup-start-window (selected-window)) (if lookup-save-configuration (setq lookup-window-configuration (current-window-configuration))) (funcall lookup-open-function buffer) (setq lookup-main-window (get-buffer-window buffer t))) (if (window-live-p lookup-sub-window) (delete-window lookup-sub-window)) buffer) (defun lookup-display-buffer (buffer) (if (window-live-p lookup-sub-window) (set-window-buffer lookup-sub-window buffer) (when (or (eq (count-windows) 1) (eq (next-window) lookup-start-window)) (let ((height (if (integerp lookup-window-height) lookup-window-height (round (* (window-height) lookup-window-height))))) (split-window lookup-main-window (1+ height)))) (let ((pop-up-frames nil)) (display-buffer buffer)) (setq lookup-sub-window (get-buffer-window buffer))) buffer) (defun lookup-display-help (buffer) (with-current-buffer buffer (goto-char (point-min))) (if (window-live-p lookup-start-window) (set-window-buffer lookup-start-window buffer) (display-buffer buffer))) (defun lookup-full-screen (buffer) (delete-other-windows) (switch-to-buffer buffer)) (defun lookup-other-window (buffer) (let ((pop-up-windows t) (pop-up-frames nil)) (pop-to-buffer buffer))) (defun lookup-other-frame (buffer) (let ((pop-up-frames t) (default-frame-alist (cons '(name . "Lookup") lookup-frame-alist))) (pop-to-buffer buffer))) (defun lookup-exclusive-frame-p () ;; Lookup $B$N@lMQ%U%l!<%`$rMQ$$$F$$$k>l9g(B t $B$rJV$9!#(B (string= (frame-parameter (selected-frame) 'name) "Lookup")) ;;; ;:: Internal functions ;;; (defconst lookup-obarray (make-vector 1511 nil)) (defsubst lookup-intern-string (string) (symbol-name (intern string lookup-obarray))) (defun lookup-proceeding-message (work) (when lookup-proceeding-message (let ((message (concat lookup-proceeding-message "..."))) (cond ((not work) (message "%s" message)) ((eq work t) (message "%s" (concat message "done"))) (t (message "%s" (concat message " (" work ")"))))))) (eval-when-compile (defvar lookup-logo-file (if (or (featurep 'xemacs) (and (condition-case nil (require 'image) (error nil)) (image-type-available-p 'xpm))) "lookup-logo.xpm" "lookup-logo.xbm")) (defmacro logo-image () (with-temp-buffer (cond ((featurep 'xemacs) (let ((format-alist nil)) (insert-file-contents lookup-logo-file))) ((and (condition-case nil (require 'image) (error nil)) (image-type-available-p 'xpm))) ((locate-library "bitmap") (require 'bitmap) (bitmap-insert-xbm-file lookup-logo-file) (put-text-property (point-min) (point-max) 'face 'lookup-splash-face)) (t )) (buffer-substring (point-min) (point-max)))) (defmacro logo-image-xpm () (with-temp-buffer (if (and (condition-case nil (require 'image) (error nil)) (image-type-available-p 'xpm)) (progn (insert-file-contents lookup-logo-file) (re-search-forward (concat "\"[\t ]*\\([0-9]+\\)[\t ]+\\([0-9]+\\)" "[\t ]+[0-9]+[\t ]+[0-9]+[\t ]*\"")) (list 'list (string-to-number (match-string 1)) (string-to-number (match-string 2)) (buffer-string))))))) (defconst lookup-logo-image (logo-image)) (defun lookup-splash () (interactive) (when (and lookup-enable-splash window-system (or lookup-use-bitmap (featurep 'image) (featurep 'xemacs))) (let ((buffer (get-buffer-create "*Lookup Logo*"))) (set-buffer buffer) (setq fill-column (window-width)) (erase-buffer) (cond ((featurep 'xemacs) (let ((logo-glyph (make-glyph (vector 'xpm :data lookup-logo-image))) logo-ext) (indent-to (startup-center-spaces logo-glyph)) (setq logo-ext (make-extent (point) (point))) (set-extent-end-glyph logo-ext logo-glyph))) ((and (condition-case nil (require 'image) (error nil)) (image-type-available-p 'xpm)) (let* ((ww (window-width)) (wh (window-height)) (xpm (logo-image-xpm)) (lw (car xpm)) (lh (nth 1 xpm)) (image (create-image (nth 2 xpm) 'xpm t))) (insert (propertize " " 'display (list 'space ':align-to (max 0 (/ (- (* (frame-char-width) (1+ ww)) lw) 2 (frame-char-width)))))) (insert-image image))) (t (center-region (point-min)(point-max)) (insert lookup-logo-image) (goto-char (1- (point-max))) (indent-rigidly (point-min) (point-max) (max 0 (/ (- (window-width) (current-column)) 2))))) (goto-char (point-max)) (let((pt (point)) (line (count-lines (point-min)(point-max)))) (insert (format "\nLookup %s\n\n" lookup-version)) (insert "Copyright (C) 2000, 2001 Lookup Development Team") (insert "\n\n") (center-region pt (point-max)) (goto-char (point-min)) (insert-char ?\n (max 1 (+ -5 (/ (- (window-height) line) 2))))) (switch-to-buffer buffer) (sit-for 3) (kill-buffer buffer)))) ;;; ;:: Lookup Initialize ;;; (defun lookup-initialize () (load lookup-init-file t) (run-hooks 'lookup-load-hook) (lookup-splash) (lookup-init-gaiji-functions)) (defun lookup-agent-list () (or lookup-agent-list (setq lookup-agent-list (mapcar 'lookup-new-agent lookup-search-agents)))) (defun lookup-agent-alist () (or lookup-agent-alist (setq lookup-agent-alist (mapcar (lambda (agent) (cons (lookup-agent-id agent) agent)) (lookup-agent-list))))) (defun lookup-module-list () (or lookup-module-list (setq lookup-module-list (mapcar 'lookup-new-module (or lookup-search-modules '(("%EVERY" ""))))))) (defun lookup-module-alist () (or lookup-module-alist (setq lookup-module-alist (mapcar (lambda (mod) (cons (lookup-module-name mod) mod)) (lookup-module-list))))) (defun lookup-dictionary-alist (&optional reset) (or (and (not reset) lookup-dictionary-alist) (setq lookup-dictionary-alist (mapcar (lambda (dict) (cons (lookup-dictionary-id dict) dict)) (apply 'append (mapcar 'lookup-agent-dictionaries (lookup-agent-list))))))) (defun lookup-default-module () (or lookup-default-module (setq lookup-default-module (car (lookup-module-list))))) ;;; ;:: Provide Lookup ;;; (autoload 'lookup-vse-get-menu "lookup-vse") (autoload 'lookup-vse-search-query "lookup-vse") (autoload 'lookup-select-display "lookup-select") (autoload 'lookup-entry-display "lookup-entry") (autoload 'lookup-use-package "lookup-package") (autoload 'lookup-make-url-reference "ndmisc") (autoload 'stem-english "stem-english") (add-hook 'kill-emacs-hook 'lookup-exit) (provide 'lookup) (unless lookup-byte-compile (lookup-initialize)) ;;; lookup.el ends here lookup-1.4.1/lisp/lookup-utils.el0000644000076400007640000004576410005425335017247 0ustar kazuhikokazuhiko;;; lookup-utils.el --- Lookup various utilities ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup-utils.el,v 1.2 2004/01/27 09:09:49 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'evi) ;; alist by assq (defsubst lookup-assq-ref (alist key) "Return the value associated with KEY in ALIST. This compares keys with `eq'. See `assq'." (cdr (assq key alist))) (defsubst lookup-assq-del (alist key) "Delete any entry in ALIST associated with KEY. This compares keys with `eq'. See `assq'." (delq (assq key alist) alist)) (defun lookup-assq-set (alist key value) "Associate KEY in ALIST with VALUE. This compares keys with `eq'. See `assq'." (if value (cons (cons key value) (lookup-assq-del alist key)) (lookup-assq-del alist key))) ;; alist by assoc (defsubst lookup-assoc-ref (alist key) "Return the value associated with KEY in ALIST. This compares keys with `equal'. See `assoc'." (cdr (assoc key alist))) (defsubst lookup-assoc-del (alist key) "Delete any entry in ALIST associated with KEY. This compares keys with `equal'. See `assoc'." (delq (assoc key alist) alist)) (defun lookup-assoc-set (alist key value) "Associate KEY in ALIST with VALUE. This compares keys with `equal'. See `assoc'." (if value (cons (cons key value) (lookup-assoc-del alist key)) (lookup-assoc-del alist key))) ;; alist set/ref (defsubst lookup-alist-ref (symbol key) "Like `lookup-assq-ref', except SYMBOL should be a symbol. SYMBOL's value must be an alist." (lookup-assq-ref (symbol-value symbol) key)) (defsubst lookup-alist-set (symbol key value) "Like `lookup-assq-set', except SYMBOL should be a symbol. SYMBOL's value will be modified by this function." (set symbol (lookup-assq-set (symbol-value symbol) key value))) ;; multi put/get (defsubst lookup-multi-put (symbol &rest args) "`put' $B$K;w$F$$$k$,!"G$0U$N?t$NB0@-%-!<$rH=PMh$k!#(B" (set symbol (lookup-multi-put-1 (symbol-value symbol) args))) (defun lookup-multi-put-1 (alist args) ;; `lookup-multi-put' $B$NFbIt4X?t!#(B (if (cddr args) (lookup-assq-set alist (car args) (lookup-multi-put-1 (lookup-assq-ref alist (car args)) (cdr args))) (lookup-assq-set alist (car args) (cadr args)))) (defsubst lookup-multi-get (symbol &rest args) "`get' $B$K;w$F$$$k$,!"G$0U$N?t$NB0@-%-!<$rH$9$k!#(B `lookup-multi-put' $B$r;2>H!#(B" (lookup-multi-get-1 (symbol-value symbol) args)) (defun lookup-multi-get-1 (alist args) ;; `lookup-multi-get' $B$NFbIt4X?t!#(B (if args (lookup-multi-get-1 (lookup-assq-ref alist (car args)) (cdr args)) alist)) ;; misc (defun lookup-repq (list from to) "LIST $B$NCf$G(B FROM $B$K0lCW$9$k%*%V%8%'%/%H$r(B TO $B$GCV$-49$($?%j%9%H$r@8@.$9$k!#(B $B%*%V%8%'%/%H$NHf3S$O(B `eq' $B$K$h$C$F9T$J$o$l$k!#(B" (let ((result nil)) (while list (setq result (cons (if (eq from (car list)) to (car list)) result) list (cdr list))) (nreverse result))) (defun lookup-nunique (list &optional predicate) "LIST $B$NCf$G=EJ#$9$k%*%V%8%'%/%H$rJN,$5$l$?>l9g$K$O(B `equal' $B$,MQ$$$i$l$k!#(BLIST $B$O>e=q$-JQ99$5$l$k!#(B (lookup-nunique '(a a b c b c a)) => (a b c)" (let ((top list) first rest) (setq predicate (or predicate 'equal)) (while list (setq first (car list) rest list) (while (cdr rest) (if (funcall predicate first (cadr rest)) (setcdr rest (cddr rest)) (setq rest (cdr rest)))) (setq list (cdr list))) top)) (defun lookup-foreach (function list) "LIST $B$NA4$F$NMWAG$KBP$7$F(B (funcall FUNCTION ELEMENT) $B$r (a c)" (let ((value nil)) (while list (if (funcall predicate (car list)) (setq value (cons (car list) value))) (setq list (cdr list))) (nreverse value))) (defun lookup-map-until (predicate list) "LIST $B$NA4$F$NMWAG$KBP$7$F(B (funcall PREDICATE ELEMENT) $B$rl9g!"(B $B%W%m%s%W%H$K$=$NCM$r(B (defaut DEFAULT) $B$N$h$&$KI=<($9$k!#(BPROMPT $B$K$O(B $B<+F0E*$K(B \": \" $B$,IU2C$5$l$k!#(B" (read-string (if default (concat prompt " (default " default "): ") (concat prompt ": ")) init history default inherit)) (defun lookup-map-over-property (from to prop func &optional object) "FROM $B$+$i(B TO $B$^$G$N%j!<%8%g%s$K$"$k3F(B PROP $B$KBP$7$F!"(BFUNC $B$rl9g!"(Bcurrent-buffer $B$G$O$J$/(B OBJECT $B$N(B $BCf$+$i(B PROP $B$rC5$7=P$9!#(B" (let ((beg from) end value) (while (setq value (get-text-property beg prop object) end (text-property-not-all beg to prop value object)) (if value (funcall func beg end value)) (setq beg end)) (if value (funcall func beg to value)))) (put 'lookup-with-coding-system 'lisp-indent-function 1) (defmacro lookup-with-coding-system (coding &rest body) "$BF~=PNO$NJ8;z%3!<%I$r(B CODING $B$K@_Dj$7$F(B BODY $B$ruBV$G(B BODY $B$rl9g!"%+!<%=%k$,C18l$H(B $B=E$J$C$F$$$k>l9g$N$_$rBP>]$H$9$k!#(B $BJQ?t(B `lookup-use-kakasi' $B$,(B non-nil $B$K;XDj$5$l$?>l9g!"F|K\8l$NC18l$b(B $B$=$l$J$j$KH=Dj$7$F@Z$j=P$9!#(B" (save-excursion (unless (or strict (eq (char-syntax (or (char-after (point)) 0)) (if (boundp 'MULE) ?e ?w))) (let ((syntax (if (boundp 'MULE) "^w>" "^w>"))) (skip-syntax-backward syntax) (if (bolp) (skip-syntax-forward syntax) (backward-char)))) (let* ((ch (or (char-after (point)) 0)) ;; APEL $B$,Dj5A$7$F$$$k(B char-charset $B$O(B Emacs 20 $B$N$=$l$H(B ;; $BJV$jCM$,0[$J$k$N$G2sHr$9$k!#(B (charset (if (not (fboundp 'char-leading-char)) (char-charset ch) (setq ch (char-leading-char ch)) (cond ((eq ch 0) 'ascii) ((eq ch 146) 'japanese-jisx0208) (t ch))))) (cond ((eq charset 'ascii) (lookup-current-word-ascii)) ((eq charset 'japanese-jisx0208) (lookup-current-word-japanese)) (t (lookup-current-word-general)))))) (defun lookup-current-word-general () ;; `lookup-current-word' $B$NFbIt4X?t!#(B ;; syntax $B$,(B "w" $B$G$"$kJ8;z$NO"$J$j$rC18l$H$7$F@Z$j=P$9!#(B (if (fboundp 'thing-at-point) (thing-at-point 'word) (buffer-substring-no-properties (progn (skip-syntax-backward "w") (point)) (progn (skip-syntax-forward "w") (point))))) (defun lookup-current-word-ascii () ;; `lookup-current-word' $B$NFbIt4X?t!#(B ;; $B%"%k%U%!%Y%C%H$"$k$$$O?t;z$NO"$J$j$rC18l$H$7$F@Z$j=P$9!#(B ;; $B$b$7C18l$NKvHx$,(B `-' $B$G$"$j!"99$K$=$l$,9TKv$G$"$k$J$i$P(B($B$D$^$j!"(B ;; $B%9%Z%k$,6h@Z$i$l$F$$$k$h$&$J$i(B)$B!"l9g!"(BKAKASI $B$rMQ$$$F(B ;; $BF|K\8l$NC18l$r$=$l$J$j$K@Z$j=P$9!#$=$&$G$J$$>l9g$O!"(B ;; `lookup-current-word-general' $B$r8F$S=P$9!#(B (if (not lookup-use-kakasi) (lookup-current-word-general) (let ((kakasi (if (stringp lookup-use-kakasi) lookup-use-kakasi "kakasi")) (temp-buffer (lookup-temp-buffer)) (syntax (if (boundp 'MULE) "e" "w")) (start (point)) (n 1) regexp) (lookup-with-coding-system lookup-kakasi-coding-system (call-process-region (progn (skip-syntax-backward syntax) (point)) (progn (skip-syntax-forward syntax) (point)) kakasi nil temp-buffer nil "-w")) (with-current-buffer temp-buffer (goto-char (point-min)) (while (search-forward " " nil t) (replace-match "\\)\\(" nil t)) (setq regexp (concat "\\(" (buffer-string) "\\)")) (kill-buffer (current-buffer))) (re-search-backward regexp) (while (and (match-end n) (<= (match-end n) start)) (setq n (1+ n))) (buffer-substring-no-properties (match-beginning n) (match-end n))))) ;;; ;:: Lookup process ;;; ;; Description: ;; ;; Lookup $B$N$$$/$D$+$N(B agent $B$,MQ$$$F$$$k%W%m%;%9A`:n4X?t!#(B ;; $B$3$l$r;H$&$3$H$OI,?\$G$O$J$$$,!"%3%^%s%I$rH/9T$7$F=PNO$re$K%^%C%A$9$k$h$&$J$b$N$G$"$C$F$O$J$i$J$$!#$b$7(B $B$=$l0J>e$NBg$-$5$,$"$k$J$i!"JQ?t(B `lookup-process-output-separator-lines' $B$NCM$rJQ99$9$k!#(B $B%*%W%7%g%s(B FILTER $B$,@_Dj$5$l$?>l9g!"=PNO=*N;$HF1;~$K(B FILTER $B$r8F$S=P$9!#(B FILTER $B$O(B (funcall FILTER PROCESS) $B$N$h$&$K8F$S=P$5$l$k!#$=$N$H$-$N(B current-buffer $B$O%W%m%;%9$N=PNO$,=q$-9~$^$l$?%P%C%U%!$G$"$j!"=PNOItJ,$K(B $BBP$7$F(B narrowing $B$5$l$$$k!#(BSEPARATOR $B<+BN$O(B narrow $BItJ,$K4^$^$l$J$$!#(B FILTER $B$NJV5QCM$,4X?t$NCM$H$7$FJV$5$l$k!#(BFILTER $B$O(B process-filter $B$H$7$F(B $BK\BN$H$OJL$N%9%l%C%I$GJN,$5$l$?>l9g$K$O!"(B $B%W%m%;%9$N=PNO$r$=$N$^$^J8;zNs$H$7$FJV$9!#(B" (setq lookup-process-output-value nil) (setq lookup-process-output-filter filter) (setq lookup-process-output-finished nil) (setq lookup-process-output-separator separator) (let (temp-buffer) ;; $B%W%m%;%9$K%P%C%U%!$,@_Dj$5$l$F$$$k>l9g!"$=$N%P%C%U%!$r=PNO$N(B ;; $B=q$-9~$_$KMQ$$$k!#$=$&$G$J$$>l9g!"0l;~%P%C%U%!$r@8@.$9$k!#(B (unless (process-buffer process) (setq temp-buffer (lookup-temp-buffer)) (set-process-buffer process temp-buffer)) (with-current-buffer (process-buffer process) ;; FILTER $B4X?t$J$I$G=PNOFbMF$N=hM}Cf$K!"30;z>pJs$N3MF@$J$I$N$?$a$K(B ;; $BB?=E$K%W%m%;%9$,8F$P$l$k>l9g$,$"$k!#$=$l$rG[N8$7$F!"uBV$r(B ;; $BJ];}$7$F$*$/!#(B[FIXME: XEmacs $B$G$O$&$^$/$$$+$J$$(B] (save-excursion (save-restriction (save-match-data (widen) (goto-char (point-max)) ;; $BAw?.J8;zNs$r%P%C%U%!$KJ];}$7$F$+$i!"%W%m%;%9$KAw?.$9$k!#(B ;; $B$3$l$O%G%P%C%0Ey$N$H$-$KLrN)$D!#(B (insert string) (setq lookup-process-start-point (point)) (set-process-filter process 'lookup-process-accept) (process-send-string process string) ;; $B=hM}$,=*$o$k$^$GBT5!$9$k!#%^%k%A%9%l%C%I$K=PMh$k$H(B ;; $B$$$$$s$@$1$I$J$!!&!&(B (while (not lookup-process-output-finished) (unless (accept-process-output process 5) (with-current-buffer (process-buffer process) (when (> (point) lookup-process-start-point) ;; $B2?$i$+$N1~Ez$O$"$C$?$N$K!"$=$N8e(B 5 $BIC0J>e2?$b5/$3$i(B ;; $B$J$+$C$?$H$7$?$i!"$?$V$s(B separator $B$N;XDj$,$*$+$7$/$F(B ;; $B;_$^$C$F$$$k!#(B (error "Lookup BUG!! Report to the mailing list"))))) ;; $B0l;~%P%C%U%!$rMQ$$$?>l9g!"(Bkill-buffer $B$9$k!#(B (when temp-buffer (set-process-buffer process nil) (kill-buffer temp-buffer)))))) lookup-process-output-value)) (defun lookup-process-accept (process string) ;; $B%W%m%;%9$N=PNO$r=hM}$9$k!#(B`lookup-process-require' $B$,J8;zNs$rAw?.8e!"(B ;; $B%W%m%;%9$,2?$+=PNO$rJV$9EY$K$3$N4X?t$,8F$S=P$5$l$k!#(B (with-current-buffer (process-buffer process) (insert string) ;; $B=PNO$K(B `lookup-process-output-separator' $B$,4^$^$l$F$$$k$+$I$&$+!"(B ;; $B:G8e$N?t9T$@$1%A%'%C%/$9$k!#(B (forward-line (- lookup-process-output-separator-lines)) (if (< (point) lookup-process-start-point) (goto-char lookup-process-start-point)) (when (re-search-forward lookup-process-output-separator nil 0) (goto-char (match-beginning 0)) (if lookup-process-output-filter (save-current-buffer (narrow-to-region lookup-process-start-point (point)) (goto-char (point-min)) (setq lookup-process-output-value (funcall lookup-process-output-filter process)) (widen)) (setq lookup-process-output-value (buffer-substring lookup-process-start-point (point)))) (setq lookup-process-output-finished t)))) (defun lookup-process-kill (process) "PROCESS $B$r=*N;$9$k!#(B $B%W%m%;%9$K%P%C%U%!$,@_Dj$5$l$F$$$k>l9g!"$=$l$b(B kill-buffer $B$9$k!#(B" (set-process-filter process nil) (condition-case err ;; XEmacs on Windows always raises an unexpected error... (delete-process process) (error (message "Warning: delete-process: %S" err))) (if (process-buffer process) (kill-buffer (process-buffer process)))) (defun lookup-split-string (string &optional separators) (let ((rexp (or separators "[ \f\t\n\r\v]+")) (start 0) (list nil)) (while (string-match rexp string start) (or (eq (match-beginning 0) 0) (setq list (cons (substring string start (match-beginning 0)) list))) (setq start (match-end 0))) (or (eq start (length string)) (setq list (cons (substring string start) list))) (nreverse list))) (provide 'lookup-utils) ;;; lookup-utils.el ends here lookup-1.4.1/lisp/lookup-types.el0000644000076400007640000013205010005576676017253 0ustar kazuhikokazuhiko;;; lookup-types.el --- Lookup various data types ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup-types.el,v 1.9 2004/01/28 00:09:34 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'evi) (require 'lookup-utils) (require 'lookup-vars) (put 'lookup-defstruct 'lisp-indent-function 2) (defmacro lookup-defstruct (name slots &rest args) ;; Lookup $B$GMQ$$$k%G!<%?9=B$$rDj5A$9$k$?$a$N%^%/%m!#(B ;; NAME $B$O%G!<%?$NL>A0!#(BSLOTS $B$O%G!<%?$,J];}$9$k>pJs$N%j%9%H!#(B ;; ARGS $B$ODI2C$N@_Dj!#2<5-$NH!#(B ;; $B$3$l$K$h$jDj5A$5$l$?%G!<%?%?%$%W$O!"0J2<$N4X?t$r;}$D$3$H$K$J$k!#(B ;; ;; lookup-make-NAME - $B%G!<%?$r@8@.$9$k(B ;; lookup-NAME-p - $B%G!<%?%?%$%W$r%A%'%C%/$9$k(B ;; lookup-NAME-SLOT - SLOT $B$N%G!<%?$r;2>H$9$k(B ;; lookup-NAME-set-SLOT - SLOT $B$K%G!<%?$r%;%C%H$9$k(B ;; ;; ARGS $B$K(B :with-properties $B%*%W%7%g%s$rIU$1$?>l9g!"99$KH$9$k(B ;; lookup-NAME-set-PROP - PROP $B$K%G!<%?$r%;%C%H$9$k(B ;; (let* ((str (symbol-name name)) (n 0) (prefix (concat "lookup-" str "-")) (tag (list 'quote (intern (concat ":" str)))) (with-properties (memq ':with-properties args)) (properties (eval (plist-get args ':with-properties))) ;; function names (f-make (intern (concat "lookup-make-" str))) (f-p (intern (concat prefix "p"))) (f-plist (intern (concat prefix "plist"))) (f-get-prop (intern (concat prefix "get-property"))) (f-put-prop (intern (concat prefix "put-property")))) (nconc (list 'progn ;; Constructor: ;; ;; (defsubst lookup-make-NAME (SLOT...) ;; (vector :NAME SLOT... nil)) (let ((plist (if lookup-debug-mode '(lookup-new-plist)))) (list 'defsubst f-make slots (cons 'vector (cons tag (if with-properties (append slots (list plist)) slots))))) ;; Predicate: ;; ;; (defun lookup-NAME-p (NAME) ;; (and (vectorp NAME) (eq (aref NAME 0) :NAME))) (list 'defun f-p (list name) (list 'and (list 'vectorp name) (list 'eq (list 'aref name 0) tag)))) ;; Accessors: ;; (apply 'nconc (mapcar (lambda (slot) (let* ((str (symbol-name slot)) (f-ref (intern (concat prefix str))) (f-set (intern (concat prefix "set-" str)))) (list ;; (defsubst lookup-NAME-SLOT (NAME) ;; (aref NAME n)) (list 'defsubst f-ref (list name) (list 'aref name (setq n (1+ n)))) ;; (defsubst lookup-NAME-set-SLOT (NAME SLOT) ;; (aset NAME n SLOT)) (list 'defsubst f-set (list name slot) (list 'aset name n slot))))) slots)) ;; Properties: ;; (when with-properties (setq n (1+ n)) (list ;; (defmacro lookup-NAME-plist (NAME &optional plist) ;; (if plist (list 'aset NAME n plist) (list 'aref NAME n))) (list 'defmacro f-plist (list name '&optional 'plist) (list 'if 'plist (if lookup-debug-mode (` (list 'set (list 'aref (, name) (, n)) plist)) (list 'list ''aset name n 'plist)) (if lookup-debug-mode (` (list 'symbol-value (list 'aref (, name) (, n)))) (list 'list ''aref name n)))) ;; (defun lookup-NAME-get-property (NAME prop) ;; (plist-get (lookup-NAME-plist NAME) prop)) (list 'defun f-get-prop (list name 'prop) (list 'plist-get (list f-plist name) 'prop)) ;; (defun lookup-NAME-put-property (NAME prop value) ;; (lookup-NAME-plist NAME ;; (plist-put (lookup-NAME-plist NAME) prop value))) (list 'defun f-put-prop (list name 'prop 'value) (list f-plist name (list 'plist-put (list f-plist name) 'prop 'value))))) (when with-properties (apply 'nconc (mapcar (lambda (prop) (let* ((str (symbol-name prop)) (ref (intern (concat prefix str))) (set (intern (concat prefix "set-" str)))) (list ;; (defsubst lookup-NAME-PROP (NAME) ;; (lookup-NAME-get-property NAME 'PROP)) (list 'defsubst ref (list name) (list f-get-prop name (list 'quote prop))) ;;(defsubst lookup-NAME-set-PROP (NAME PROP) ;; (lookup-NAME-put-property NAME 'PROP PROP)) (list 'defsubst set (list name prop) (list f-put-prop name (list 'quote prop) prop))))) properties)))))) (defun lookup-new-plist () ;; plist $B$rJ];}$9$k$?$a$N%7%s%\%k$r@8@.$9$k!#(B ;; plist $B$r$=$N$^$^%G!<%?9=B$$KAH$_9~$`$H!"%G%P%C%0$N:]$K=PNO$,Bg$-$/(B ;; $B$J$j2a$.$F8+$E$i$/$J$k!#$=$N$?$a!"JQ?t(B `lookup-debug-mode' $B$,(B non-nil ;; $B$N>l9g$K$O!"%*%V%8%'%/%H$K$O$3$N%7%s%\%k$rJ|$j9~$s$G$*$-!"$=$NCM$H$7$F(B ;; plist $B$r=hM}$9$k!#(B (let ((plist (make-symbol "plist"))) (set plist nil) plist)) (defvar temporary-file-directory (if (boundp 'temporary-file-directory) temporary-file-directory (file-name-as-directory (cond ((memq system-type '(ms-dos windows-nt)) (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp")) ((memq system-type '(vax-vms axp-vms)) (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "SYS$SCRATCH:")) (t (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp"))))) "The directory for writing temporary files.") ;;;;;;;;;;;;;;;;;;;; ;: Search Method ;;;;;;;;;;;;;;;;;;;; ;; Description: ;; ;; $B3F$l$N8!:wJ}<0$OC10l$N%7%s%\%k$K$h$C$FI=8=$5$l$k!#(B ;; $B8=:_!"$l$N8!:wJ}<0$K$D$$$F$N0lHLE*$J(B ;; $BDj5A$O!"%^%K%e%"%k$N(B "Search Methods" $B$r;2>H!#(B (defconst lookup-word-search-methods '(exact prefix suffix substring regexp keyword stemming expansion text)) (defconst lookup-search-methods (cons 'default (cons 'reference lookup-word-search-methods))) (defconst lookup-method-key-alist '((exact . "=") (prefix . "<") (suffix . ">") (substring . "-") (regexp . "r") (keyword . "@") (stemming . "^") (text . "/") (default . "*") (reference . "%") (expansion . "#"))) (defun lookup-method-key (method) (or (lookup-assq-ref lookup-method-key-alist method) (error "Unknown search method: %s" method))) ;;;;;;;;;;;;;;;;;;;; ;: Search Query ;;;;;;;;;;;;;;;;;;;; ;; Description: ;; ;; $B8!:w$9$k%Q%?!<%s$r3JG<$9$k$?$a$N%G!<%?%?%$%W!#(BLookup $B$O%f!<%6$NF~NO$r(B ;; $B2r@O$7!"8!:wJ}<0$K1~$8$F$3$N%?%$%W$N%*%V%8%'%/%H$r@8@.$9$k!#@8@.$5$l$?(B ;; $B%G!<%?$O:G=*E*$K8!:w%(!<%8%'%s%H$KEO$5$l!"%(!<%8%'%s%HKh$K$=$NFbMF$r(B ;; $BH=CG$7$F8!:w$,$^$7$$!#(B (lookup-defstruct query (method string)) ;; Functions: ;; ;; lookup-parse-pattern - $B0z?t$NJ8;zNs$r2r@O$7!"(Bquery $B$r@8@.$9$k!#(B ;; lookup-query-to-regexp - query $B$r(B regexp $B%Q%?!<%s$KJQ49$9$k!#(B (defun lookup-parse-pattern (pattern) ;; $BF~NOJ8;zNs(B PATTERN $B$r2r@O$7!"(Bquery $B$r@8@.$7$FJV$9!#(B (let (method) (cond ;; 'word' -> match exactly ((string-match "^'\\(.*\\)'$" pattern) (setq method 'exact pattern (match-string 1 pattern))) ;; /word/ -> match regexp ((string-match "^/\\(.*\\)/$" pattern) (setq method 'regexp pattern (match-string 1 pattern))) ;; /word -> search text ((string-match "^/" pattern) (setq method 'text pattern (substring pattern 1))) ;; @word -> match keyword ((string-match "^@" pattern) (setq method 'keyword pattern (substring pattern 1))) ;; *word* -> match substring ((string-match "^\\*\\([^*?]*\\)\\*$" pattern) (setq method 'substring pattern (match-string 1 pattern))) ;; word* -> match prefixes ((string-match "^\\([^*?]*\\)\\*$" pattern) (setq method 'prefix pattern (match-string 1 pattern))) ;; *word -> match suffixes ((string-match "^\\*\\([^*?]*\\)$" pattern) (setq method 'suffix pattern (substring pattern 1))) ;; w*o?d -> "w.*o.d" ((string-match "[*?]" pattern) (setq pattern (if (string-match "^\\*" pattern) (substring pattern 1) (concat "^" pattern))) (setq pattern (if (string-match "\\*$" pattern) (substring pattern 0 (match-beginning 0)) (concat pattern "$"))) (let ((start 0)) (while (string-match "*" pattern start) (setq pattern (replace-match ".*" t t pattern) start (+ (match-end 0) 1)))) (while (string-match "?" pattern) (setq pattern (replace-match "." t t pattern))) (setq method 'regexp pattern pattern)) ;; default (t (setq method 'default))) (lookup-make-query method pattern))) (defun lookup-query-to-regexp (query) ;; QUERY $B$r(B regexp $B%Q%?!<%s$KJQ49$9$k!#(B (let* ((method (lookup-query-method query)) (string (lookup-query-string query)) (quote (regexp-quote string))) (cond ((eq method 'keyword) (concat "\\<" quote "\\>")) ((eq method 'prefix) (concat "^" quote)) ((eq method 'suffix) (concat quote "$")) ((eq method 'exact) (concat "^" quote "$")) ((eq method 'substring) quote) ((eq method 'text) string) ((eq method 'regexp) string) (t (error "Illegal search method for regexp: %s" method))))) ;;;;;;;;;;;;;;;;;;;; ;: Search Module ;;;;;;;;;;;;;;;;;;;; ;; Description: ;; ;; $B8!:w%b%8%e!<%k$rI=$o$9%G!<%?%?%$%W!#3F%b%8%e!<%k$O$3$N%?%$%W$N(B ;; $B%*%V%8%'%/%H$H$7$F@8@.$5$l$k!#(B ;; ;; $B8!:w%b%8%e!<%k$H$O!"0l2s$N8!:w$NC10L$H$J$k<-=q$N$^$H$^$j$N$3$H!#(B ;; $BJ#?t$N%b%8%e!<%k$rMQ0U$9$k$3$H$G!"BP>]$N0[$J$kJ#?t$N8!:w%3%^%s%I$r(B ;; $BDj5A$9$k$3$H$,=PMh$k!#2<5-$N(B `Setup' $B$N9`$r;2>H!#(B ;; Structure: ;; ;; [:module NAME DICTIONARIES PLIST] ;; ;; NAME $B$O!"%b%8%e!<%k$NL>>N!#(B ;; DICTIONARIES $B$O!"%b%8%e!<%k$K4^$^$l$k<-=q$N%j%9%H!#(B ;; PLIST $B$O!"B0@-%j%9%H$NJ];}$K;H$o$l$k!#(B ;; Properties: ;; ;; history - $B%b%8%e!<%k$NMzNr!#(B ;; agents - $B%b%8%e!<%k$N<-=q$,B0$9$k%(!<%8%'%s%H$N%j%9%H!#(B ;; id-list - $B%b%8%e!<%k$NDj5A$K4^$^$l$k<-=q(BID $B$N%j%9%H!#(B ;; initialized - $B%b%8%e!<%k$,=i4|2=$5$l$F$$$l$P(B `t'$B!#(B (lookup-defstruct module (name dictionaries) :with-properties '(history)) ;; Initialize: ;; ;; $B%b%8%e!<%k$N=i4|2=$OFs$D$NCJ3,$G9T$J$o$l$k!#(B ;; ;; 1) $B%*%V%8%'%/%H$N@8@.(B ;; $B%b%8%e!<%k!&%*%V%8%'%/%H$r@8@.$9$k!#$3$l$O%G!<%?$r@8@.$9$k$@$1$G!"(B ;; $B0l@Z$N=i4|2=$O9T$J$o$J$$!#$3$l$r9T$J$&4X?t$O(B `lookup-new-module'$B!#(B ;; 2) $B%(!<%8%'%s%H$N=i4|2=(B ;; $B@_Dj$K=>$C$F8!:w%(!<%8%'%s%H$r@8@.$7!"=i4|2=$r9T$J$&!#$3$l$O(B ;; $B4X?t(B `lookup-module-init' $B$G9T$J$o$l$k!#(B ;; ;; $B$3$l$i$rJ,$1$k$N$O!"%f!<%6$N;H$$>!/$7$G$b5/F0$rAa$a!"F~NO$,9T$J$o$l$F$+$i(B ;; $B=i4|2=$r;O$a$k$h$&$K$7$F$$$k!#(B (defun lookup-new-module (spec) (let ((name (car spec)) (id-list (cdr spec)) module agents) ;; get agent list (lookup-foreach (lambda (id) ;; get the list of agents matched with ID (let ((match (concat "^" (regexp-quote id))) (list (lookup-agent-list)) (start agents)) (while list (if (string-match match (lookup-agent-id (car list))) (setq agents (cons (car list) agents))) (setq list (cdr list))) (if (eq start agents) (error "No match agent: %s" id)))) ;; get a list of agent-IDs (lookup-nunique (mapcar (lambda (id) (string-match "^[^:]*" id) (substring id 0 (match-end 0))) id-list))) (setq agents (nreverse (lookup-nunique agents 'eq))) ;; construct module (setq module (lookup-make-module name nil)) (lookup-module-put-property module 'agents agents) (lookup-module-put-property module 'id-list id-list) (lookup-module-init module))) (defun lookup-module-init (module) (lookup-module-set-history module (lookup-new-history)) module) (defun lookup-module-setup (module) (unless (lookup-module-get-property module 'setup) (let ((agents (lookup-module-get-property module 'agents)) dicts dictionary-list) ;; setup agents (lookup-foreach 'lookup-agent-setup agents) ;; get dictionary list (setq dictionary-list (apply 'append (mapcar 'lookup-agent-dictionaries agents))) (lookup-foreach (lambda (id) (let ((match (concat "^" (regexp-quote id))) (list dictionary-list) (start dicts)) (while list (if (string-match match (lookup-dictionary-id (car list))) (setq dicts (cons (car list) dicts))) (setq list (cdr list))) (if (eq start agents) (error "No match dictionary: %s" id)))) (lookup-module-get-property module 'id-list)) (lookup-module-set-dictionaries module (nreverse dicts)) (lookup-module-put-property module 'setup t)))) (defun lookup-module-clear (module) (lookup-module-set-dictionaries module nil) (lookup-module-set-history module nil) (lookup-module-put-property module 'setup nil)) ;;;;;;;;;;;;;;;;;;;; ;: Search Agent ;;;;;;;;;;;;;;;;;;;; ;; Description: ;; ;; $B8!:w%(!<%8%'%s%H$rI=$o$9%G!<%?%?%$%W!#3FH!#(B ;; PLIST $B$O!"B0@-%j%9%H$NJ];}$K;H$o$l$k!#(B ;; Properties: ;; ;; id - $B%(!<%8%'%s%H(BID$B!#(B("CLASS+LOCATION") ;; title - $B%(!<%8%'%s%H$N%?%$%H%k!#(B ;; dictionaries - $B%(!<%8%'%s%H$K4^$^$l$k<-=q$rJ];}$9$k!#(B ;; defaults - $B%(!<%8%'%s%H$N%G%U%)%k%H$N@_Dj$rJ];}$9$k!#(B (lookup-defstruct agent (class location options) :with-properties '(id title dictionaries defaults)) ;; Definitions: ;; ;; $B3F%(!<%8%'%s%H$OF1L>$N(B elisp $B%U%!%$%k$K$h$C$FDj5A$5$l!"(Brequire $B$K$h$j(B ;; $BFI$_9~$^$l$k!#$D$^$j3F%(!<%8%'%s%H$O(B provide $B$5$l$J$1$l$P$J$i$J$$!#(B ;; ;; $B%(!<%8%'%s%H$O8!:we=q$-(B ;; $B2DG=$H$J$C$F$$$k!#H!#(B (defun lookup-agent-require (agent) ;; $B%(!<%8%'%s%H$NDj5A%U%!%$%k$r%m!<%I$9$k!#(B (require (lookup-agent-class agent))) (defun lookup-agent-ref (agent key) ;; $B%(!<%8%'%s%H$NI8=`@_Dj$r;2>H$9$k!#(B (get (lookup-agent-class agent) key)) (defun lookup-agent-command-p (agent command &rest args) ;; $B%(!<%8%'%s%H!&%3%^%s%I$r%A%'%C%/$9$k!#(B (lookup-agent-ref agent command)) (defun lookup-agent-command (agent command &rest args) ;; $B%(!<%8%'%s%H!&%3%^%s%I$rH!#(B ;; $BJQ?t(B `lookup-agent-options-alist', `lookup-default-agent-options' - ;; $B%f!<%6;XDj$N%*%W%7%g%s@_Dj!#(B ;; $B%G%U%)%k%H(B - $B%W%m%0%i%`$K$h$k@_Dj!#(B`lookup-agent-set-default' $B$r;2>H!#(B ;; $BI8=`@_Dj(B - $BDj5A%U%!%$%k$K8GDj$5$l$?@_Dj!#(B (defun lookup-agent-set-default (agent key value) ;; $B%(!<%8%'%s%H$N%G%U%)%k%H$N@_Dj$r9T$J$&!#$3$l$O%f!<%6$K$h$k%*%W%7%g%s(B ;; $B;XDj$,$J$$>l9g$KMxMQ$5$l$k!#(B (let ((defaults (plist-put (lookup-agent-defaults agent) key value))) (lookup-agent-set-defaults agent defaults))) (defun lookup-agent-option (agent key) ;; $B%(!<%8%'%s%H$N%*%W%7%g%s$r;2>H$9$k!#@_Dj;~$K;XDj$5$l$?%*%W%7%g%s!"(B ;; $BJQ?t(B `lookup-agent-options-alist'$B!"(B`lookup-default-agent-options'$B!"(B ;; $B%G%U%)%k%H!"I8=`@_Dj$N=g$KC5:w$9$k!#(B (or (plist-get (lookup-agent-options agent) key) (lookup-assq-ref (lookup-assoc-ref lookup-agent-options-alist (lookup-agent-id agent)) key) (lookup-assq-ref lookup-default-agent-options key) (plist-get (lookup-agent-defaults agent) key) (lookup-agent-ref agent key))) ;; Initialize: ;; ;; $B8!:w%(!<%8%'%s%H$N=i4|2=$O;M$D$NCJ3,$G9T$J$o$l$k!#(B ;; ;; 1) `lookup-new-agent' ;; $BJQ?t(B `lookup-search-agents' $B$G@_Dj$5$l$?FbMF$r2r@O$7!"%(!<%8%'%s%H!&(B ;; $B%*%V%8%'%/%H$r@8@.$9$k!#B3$$$F(B `lookup-agent-init' $B$r8F$S=i4|2=$9$k!#(B ;; 2) `lookup-agent-init' ;; $B%(!<%8%'%s%H(BID $B$d%?%$%H%k$J$I$r@_Dj$9$k!#<-=q$N%;%C%H%"%C%W$O$^$@!#(B ;; 3) `lookup-agent-setup' ;; $B%(!<%8%'%s%HKh$N(B setup $B%3%^%s%I$r (length (member name1 enable)) (length (member name2 enable)))))))) ;; Select dictionaries by the options `:select' and `:unselect'. (setq select (lookup-agent-option agent ':select) unselect (lookup-agent-option agent ':unselect)) (lookup-foreach (lambda (dict) (setq name (lookup-dictionary-name dict)) (if (and (or (not select) (member name select)) (not (member name unselect))) (lookup-dictionary-set-selected dict t))) dicts) ;; Initialize dictionaries. (lookup-foreach 'lookup-dictionary-init dicts) (lookup-agent-set-dictionaries agent dicts) (lookup-proceeding-message t) (lookup-agent-put-property agent 'setup t)))) (defun lookup-agent-clear (agent) (when (lookup-agent-get-property agent 'setup) (let ((lookup-proceeding-message (concat "Clearing " (lookup-agent-id agent)))) (lookup-proceeding-message nil) (lookup-agent-command agent 'clear) (lookup-proceeding-message t)))) ;;;;;;;;;;;;;;;;;;;; ;: Dictionary ;;;;;;;;;;;;;;;;;;;; ;; Description: ;; ;; $B<-=q$rI=$o$9%G!<%?%?%$%W!#A4$F$N<-=q$O$3$N%?%$%W$N%*%V%8%'%/%H$H$7$F(B ;; $B@8@.$5$l$k!#(B ;; Structure: ;; ;; [:dictionary AGENT CODE NAME TITLE PLIST] ;; ;; AGENT - $B<-=q$,B0$9$k8!:w%(!<%8%'%s%H$N%*%V%8%'%/%H!#(B ;; CODE - $B<-=q$rFCDj$9$k$?$a$NG$0U$N%*%V%8%'%/%H!#(BAGENT $B$H(B CODE $B$NAH$K$h$j(B ;; $B<-=q$,0l0U$K7hDj$5$l$k!#(B ;; NAME - $B<-=qL>!#(B ;; TITLE - $B<-=q$N%?%$%H%k!#(B ;; PLIST - $BB0@-%j%9%H$NJ];}!#(B ;; Properties: ;; ;; id - $B<-=q(BID$B!#(B ;; selected - $B<-=q$,A*Br$5$l$F$$$k>l9g$K(B non-nil$B!#(B ;; defaults - $B<-=q$N%G%U%)%k%H$N@_Dj$rJ];}$9$k!#(B ;; methods, gaiji-table, headings - $B%*%W%7%g%s$NJ];}!#(B (lookup-defstruct dictionary (agent code name title) :with-properties '(id methods headings gaiji-table defaults)) (defun lookup-new-dictionary (agent code name &optional title) (let ((dictionary (lookup-make-dictionary agent code name nil))) (if title (lookup-dictionary-set-default dictionary ':title title)) dictionary)) (defsubst lookup-dictionary-selected-p (dictionary) (lookup-dictionary-get-property dictionary 'selected)) (defsubst lookup-dictionary-set-selected (dictionary value) (lookup-dictionary-put-property dictionary 'selected value)) ;; Definitions: ;; ;; $B<-=q$O8!:w$N$?$a$N$$$/$D$+$N%3%^%s%I$r;}$D!#%3%^%s%I$O!"$=$l$,B0$9$k(B ;; $B8!:w%(!<%8%'%s%H$HF1%U%!%$%k$K$FDj5A$5$l$k!#<-=q%3%^%s%I$O%(!<%8%'%s%H!&(B ;; $B%3%^%s%I$HF1MM$K$7$FDj5A$5$l!"8=:_!"e5-(B `Query' $B$N@a$r;2>H!#8!:w$N7k2L8+IU$+$C$?(B entry $B$N%j%9%H$rJV$9!#(B ;; content DICTIONARY ENTRY ;; ENTRY $B$NFbMF$rJ8;zNs$H$7$FJV$9!#FC$K@07A$O9T$J$o$:$K!"<-=q$+$iF@$i$l$k(B ;; $B$^$^$=$N$^$^$rJV$;$P$h$$!#@07A$OJL$N%W%m%;%9$K$h$C$F9T$J$o$l$k!#4X?t(B ;; `lookup-insert-content' $B$r;2>H!#(B ;; open DICTIONARY ENTRY ;; ENTRY $B$rFCJL$J4X?t$G%*!<%W%s$9$k!#Nc$($P(B ENTRY $B$,(B URL $B$N>pJs$rJ];}$7$F(B ;; $B$$$k$J$i!"%V%i%&%6$G$=$l$r%*!<%W%s$9$k$3$H$,9M$($i$l$k!#(B ;; gaiji DICTIONARY CODE ;; $B<-=q$,30;z(B($BDL>o$NJ8;z%;%C%H$K4^$^$l$J$$J8;z(B)$B$r;}$D>l9g!"$=$N>pJs$rJV$9!#(B ;; CODE $B$O30;z$rFCDj$9$k$?$a$NJ8;zNs!#JV5QCM$O!"(Bxbm $B7A<0$N%S%C%H%^%C%W$r(B ;; $BI=$o$9J8;zNs$H$9$k!#(B ;; ;; $B<-=q$O$$$/$D$+$N8GM-$NI8=`@_Dj$r;}$D!#$3$l$O%(!<%8%'%s%H$NI8=`@_Dj$H(B ;; $BF1MM$KDj5A$5$l!"%f!<%6!&%*%W%7%g%s$K$h$j>e=q$-2DG=$H$J$C$F$$$k!#H!#(B (defun lookup-dictionary-command-p (dictionary command) ;; $B<-=q%3%^%s%I$r%A%'%C%/$9$k!#(B (let ((agent (lookup-dictionary-agent dictionary))) (lookup-agent-ref agent command))) (defun lookup-dictionary-command (dictionary command &rest args) ;; $B<-=q%3%^%s%I$rH!#(B ;; $B%(!<%8%'%s%H!&%*%W%7%g%s(B - $B<-=q$,B0$9$k%(!<%8%'%s%H$N%*%W%7%g%s$r7Q>5$9$k!#(B (defun lookup-dictionary-set-default (dictionary key value) ;; $B<-=q$N%G%U%)%k%H$N@_Dj$r9T$J$&!#$3$l$O%f!<%6$K$h$k%*%W%7%g%s;XDj$,(B ;; $B$J$$>l9g$KMxMQ$5$l$k!#(B (let ((defaults (plist-put (lookup-dictionary-defaults dictionary) key value))) (lookup-dictionary-set-defaults dictionary defaults))) (defun lookup-dictionary-option (dictionary key &optional inherit) ;; $B<-=q$N%*%W%7%g%s$r;2>H$9$k!#JQ?t(B `lookup-dictionary-options-alist'$B!"(B ;; `lookup-default-dictionary-options'$B!"%G%U%)%k%H$N=g$KC5:w$9$k!#(B ;; $B%*%W%7%g%s0z?t(B INHERIT $B$,(B non-nil $B$N>l9g!"0z$-B3$$$F%(!<%8%'%s%H!&(B ;; $B%*%W%7%g%s$+$i$bC5:w$9$k!%(B (or (lookup-assq-ref (lookup-assoc-ref lookup-dictionary-options-alist (lookup-dictionary-id dictionary)) key) (lookup-assq-ref lookup-default-dictionary-options key) (plist-get (lookup-dictionary-defaults dictionary) key) (if inherit (lookup-agent-option (lookup-dictionary-agent dictionary) key)))) ;; Initialize: ;; ;; $B<-=q$O%(!<%8%'%s%H$N(B :setup $B%3%^%s%I$K$h$j@8@.$5$l!"%(!<%8%'%s%H$HF1;~$K(B ;; $B=i4|2=$5$l$k!#$$$/$D$+$NBeI=E*$JB0@-$,%;%C%H$5$l$k!#(B (defsubst lookup-dictionary-default-method (dictionary) (or (lookup-dictionary-option dictionary ':default-method t) lookup-default-method)) (defsubst lookup-dictionary-hiragana (dictionary) (lookup-dictionary-option dictionary ':hiragana t)) (defsubst lookup-dictionary-expander (dictionary) (lookup-dictionary-option dictionary ':expander t)) (defsubst lookup-dictionary-expand-filter (dictionary) (lookup-dictionary-option dictionary ':expand-filter t)) (defsubst lookup-dictionary-stemmer (dictionary) (lookup-dictionary-option dictionary ':stemmer t)) (defun lookup-dictionary-init (dictionary) (let ((id (concat (lookup-agent-id (lookup-dictionary-agent dictionary)) ":" (lookup-dictionary-name dictionary)))) (lookup-dictionary-set-id dictionary id)) (let ((title (or (lookup-dictionary-option dictionary ':title) (lookup-dictionary-name dictionary)))) (lookup-dictionary-set-title dictionary title)) (if (lookup-dictionary-hiragana dictionary) (require 'lookup-kanji)) (let ((methods (lookup-dictionary-option dictionary ':methods t))) (if (or (lookup-dictionary-hiragana dictionary) (lookup-dictionary-expander dictionary)) (setq methods (append methods '(expansion)))) (if (lookup-dictionary-stemmer dictionary) (setq methods (append methods '(stemming)))) (lookup-dictionary-set-methods dictionary methods)) (let ((gaiji-table (or (lookup-dictionary-option dictionary ':gaiji-table) (lookup-make-gaiji-table)))) (lookup-dictionary-set-gaiji-table dictionary gaiji-table)) ;; Keep some options as properties to save search step. (let ((headings (lookup-dictionary-option dictionary ':headings t))) (lookup-dictionary-set-headings dictionary headings)) dictionary) ;;;;;;;;;;;;;;;;;;;; ;: Entry ;;;;;;;;;;;;;;;;;;;; ;; Description: ;; ;; $B%(%s%H%j$N>pJs$rI=$o$9%G!<%?%?%$%W!#A4$F$N%(%s%H%j$O$3$N%?%$%W$N(B ;; $B%*%V%8%'%/%H$H$7$F@8@.$5$l$k!#(B ;; Structure: ;; ;; [:entry DICTIONARY CODE HEADING PLIST] ;; ;; DICTIONARY $B$O!"%(%s%H%j$,B0$9$k<-=q$N%*%V%8%'%/%H!#(B ;; CODE $B$O!"%(%s%H%j$rFCDj$9$k$?$a$NG$0U$N%*%V%8%'%/%H!#(BDICTIONARY $B$H(B CODE ;; $B$NAH$K$h$C$F%(%s%H%j$O0l0U$K7hDj$5$l$k!#(B ;; HEADING $B$O!"%(%s%H%j$N8+=P$78l!#$3$l$OI=<($N:]$KMQ$$$i$l$k!#(B ;; PLIST $B$O!"B0@-%j%9%H$NJ];}$K;H$o$l$k!#(B ;; Properties: ;; (lookup-defstruct entry (dictionary code heading) :with-properties '(prefix compound reference jump)) (defun lookup-new-entry (dictionary code heading) (let ((entry (lookup-make-entry dictionary code heading))) (lookup-arrange-heading entry))) (defsubst lookup-entry-refered-p (entry) (lookup-contents-cache-get entry lookup-enable-format)) ;; Functions: (defun lookup-entry-id (entry) (concat (lookup-dictionary-id (lookup-entry-dictionary entry)) "/" (lookup-entry-heading entry))) (defun lookup-copy-entry (entry) (lookup-make-entry (lookup-entry-dictionary entry) (lookup-entry-code entry) (lookup-entry-heading entry))) (defun lookup-entry-compare (e1 e2) (and (eq (lookup-entry-dictionary e1) (lookup-entry-dictionary e2)) (equal (lookup-entry-code e1) (lookup-entry-code e2)))) (defsubst lookup-unique-entries (entries) (lookup-nunique entries 'lookup-entry-compare)) ;;;;;;;;;;;;;;;;;;;; ;: Reference ;;;;;;;;;;;;;;;;;;;; (defun lookup-make-reference (dictionary code heading) (let ((entry (lookup-make-entry dictionary code heading))) (aset entry 0 ':reference) entry)) (defun lookup-reference-p (object) (and (vectorp object) (eq (aref object 0) ':reference))) (defsubst lookup-reference-dynamic-p (reference) (lookup-entry-get-property reference 'dynamic-search)) (defsubst lookup-reference-make-dynamic (reference function) (lookup-entry-put-property reference 'dynamic-search function)) (defun lookup-reference-refer (reference) (let ((function (lookup-entry-get-property reference 'dynamic-search))) (when function (lookup-reference-set-entries reference (funcall function reference)) (lookup-reference-make-dynamic reference nil) (lookup-entry-put-property reference 'refered t)))) (defsubst lookup-reference-refered-p (reference) (or (lookup-entry-get-property reference 'refered) (unless (lookup-entry-get-property reference 'dynamic-search) (let ((entries (lookup-reference-entries reference))) (catch 'result (while entries (unless (lookup-entry-refered-p reference) (throw 'result nil)) (setq entries (cdr entries))) t))))) (defsubst lookup-reference-entries (reference) (lookup-entry-get-property reference 'linked-entries)) (defsubst lookup-reference-set-entries (reference entries) (lookup-entry-put-property reference 'linked-entries entries)) ;; link: (defun lookup-set-link (start end reference) ;; $B%P%C%U%!$N(B START $B$+$i(B END $B$^$G$N%j!<%8%g%s$r(B REFERENCE $B$X$N%j%s%/$K$9$k!#(B (add-text-properties start end (list 'face 'lookup-reference-face 'mouse-face 'highlight 'lookup-tab-stop t 'lookup-reference reference))) (defun lookup-get-link (position) ;; $B%P%C%U%!$N(B POSITION $B0LCV$+$i%j%s%/$5$l$F$$$k(B entry $B$rJV$9!#(B (get-text-property position 'lookup-reference)) (defun lookup-goto-next-link () ;; $B%P%C%U%!$NHEy$N$?$a$KMQ$$$i$l$k!#(B ;; Structure: ;; ;; [:session QUERY ENTRIES PLIST] ;; ;; QUERY $B$O!"8!:w%Q%?!<%s$N%*%V%8%'%/%H!#(B`Search Query' $B$r;2>H!#(B ;; ENTRIES $B$O!"8!:w$N7k2L8+IU$+$C$?%(%s%H%j$N%j%9%H!#(B ;; PLIST $B$O!"B0@-%j%9%H$NJ];}$K;H$o$l$k!#(B ;; Properties: ;; ;; excursion - $B%+!<%=%k0LCVEy$NuBV$NJ];}!#(B (lookup-defstruct session (module type) :with-properties '(query entries excursion)) (defsubst lookup-session-ref (session key) (get (lookup-session-type session) key)) (defun lookup-session-display (session) (if lookup-last-session (lookup-session-save-excursion lookup-last-session)) (funcall (lookup-session-ref session 'display) session) (setq lookup-current-session session lookup-last-session session)) (defun lookup-session-save-excursion (session) (let ((func (lookup-session-ref session 'excursion))) (when func (lookup-session-set-excursion session (funcall func))))) ;;;;;;;;;;;;;;;;;;;; ;: History ;;;;;;;;;;;;;;;;;;;; ;; Description: ;; ;; $B8!:wMzNr$rJ];}$9$k$?$a$N%G!<%?%?%$%W!#$3$l$OFbIt$K%*%V%8%'%/%H$N%j%9%H(B ;; $B$r;}$A!"$=$l$rDI2C!&;2>H$9$k$3$H$,=PMh$k!#MzNr$O%j%9%H$N0LCV(B(position) ;; $B$b5-21$7$F$*$j!"MzNr$X$N%*%V%8%'%/%H$NDI2C$O!"%j%9%H$N:G8e$K;2>H$5$l$?(B ;; $B%*%V%8%'%/%H$ND>8e$X$H9T$J$o$l$k!#(B($B$D$^$j!"MzNr$rLa$C$?$H$3$m$G%*%V%8%'(B ;; $B%/%H$rDI2C$9$k$H!"0JA0$N7R$,$j$O<:$J$o$l$k(B) ;; Structure: ;; ;; (STACK . POSITION) ;; ;; STACK $B$O!"MzNr$r@Q$s$G$$$/%*%V%8%'%/%H$N%j%9%H!#(B ;; POSITION $B$O!"8=:_;2>H$5$l$F$$$kMzNr$N0LCV!#(B ;; ;; $B?7$7$$%*%V%8%'%/%H$[$I!"(BSTACK $B$N@hF,$KCV$+$l$k!#MzNr$N0LCV$O(B 1 $B$+$i(B ;; $B;O$^$k!#$?$@$7!"MzNr$X$N%"%/%;%9$O2<5-$N@lMQ4X?t$K$F9T$J$$!"$3$l$i$N(B ;; $BJQ?t$OD>@\A`:n$7$J$$J}$,$h$$!#(B (defalias 'lookup-make-history 'cons) (defalias 'lookup-history-stack 'car) (defalias 'lookup-history-set-stack 'setcar) (defalias 'lookup-history-position 'cdr) (defalias 'lookup-history-set-position 'setcdr) (defsubst lookup-new-history () ;; $B?7$7$$(B history $B%*%V%8%'%/%H$r@8@.$7$FJV$9!#(B (lookup-make-history nil 0)) ;; Interface: ;; ;; $BMzNr$X$N%*%V%8%'%/%HDI2C$O!"4X?t(B `lookup-history-push' $B$K$h$j9T$J$&!#(B ;; $BDI2C$5$l$?%*%V%8%'%/%H$O!"4X?t(B `lookup-history-ref' $B$K$h$j;2>H$9$k$3$H(B ;; $B$,=PMh$k!#4X?t(B `lookup-history-length' $B$K$h$j!"MzNr$ND9$5$rCN$k$3$H$,(B ;; $B=PMh$k!#(B (defun lookup-history-push (history object) ;; $B8=:_$N;2>H0LCV$K%*%V%8%'%/%H$rDI2C$9$k!#$b$7$=$N0LCV$KF1$8%*%V%8%'%/%H(B ;; $B$,4{$KDI2C$5$l$F$$$l$P2?$b$7$J$$!#(B (let ((stack (lookup-history-stack history)) (position (lookup-history-position history))) (setq stack (nthcdr (- (length stack) position) stack)) (unless (eq object (car stack)) (lookup-history-set-stack history (cons object stack)) (lookup-history-set-position history (1+ position))))) (defun lookup-history-ref (history &optional n do-not-move) ;; $B8=:_$N;2>H0LCV$+$i(B N $BHVL\$K$"$k%*%V%8%'%/%H$rJV$9!#(B ;; $BIi$N?t$,;XDj$5$l$?>l9g$K$O!"MzNr$r2a5n$KLa$k!#@5$N?t$@$H!"$=$N5U!#(B ;; $B>JN,$5$l$?>l9g$K$O8=:_$N;2>H0LCV$N$b$N$rJV$9!#(B ;; $BMzNr$,$J$$>l9g$K$O(B `no-object'$B!":G=i$N0LCV$+$iA0$KLa$m$&$H$7$?$i(B ;; `first'$B!":G8e$+$i@h$K?J$b$&$H$7$?$i(B `last' $B$rJV$9!#(B ;; DO-NOT-MOVE $B$K(B non-nil $B$r;XDj$7$?>l9g!";2>H8e$N0\F0$r9T$J$o$J$$!#(B (let* ((stack (lookup-history-stack history)) (position (lookup-history-position history)) (length (length stack))) (setq n (or n 0)) (cond ((eq length 0) 'no-object) ((and (= position 1) (< n 0)) 'first) ((and (= position length) (> n 0)) 'last) (t (setq position (+ position n) position (if (< position 1) 1 (if (> position length) length position))) (unless do-not-move (lookup-history-set-position history position)) (car (nthcdr (- length position) stack)))))) (defun lookup-history-length (history) ;; $BMzNr$ND9$5$rJV$9!#(B (length (lookup-history-stack history))) (defun lookup-history-clear (history) ;; $BMzNr$r%/%j%"$9$k!#(B (lookup-history-set-stack history nil) (lookup-history-set-position history 0)) ;;;;;;;;;;;;;;;;;;;; ;: Gaiji/Images ;;;;;;;;;;;;;;;;;;;; ;; Description: ;; ;; $B30;z(B ($B$*$h$S2hA|(B) $B$r07$&$?$a$N4X?t72!#$3$l$K$OpJs$rJ];}$9$k$?$a$N%*%V%8%'%/%H(B ;; $B30;z%0%j%U(B - $B30;z$=$N$b$N$G$"$k%*%V%8%'%/%H(B ;; $B30;z%F!<%V%k(B - $B30;z$r5-O?!&;2>H$9$k$?$a$N%*%V%8%'%/%H(B ;; ;; $B30;z(B ($B$*$h$S2hA|(B) $B$N07$$$O!"(BEmacs $B$N= emacs-major-version 21)) ;; `display-images-p' has not been available prior to Emacs 21.0.105. (unless (fboundp 'display-images-p) (defalias 'display-images-p 'display-graphic-p)) (defun lookup-inline-image-p (type) "Returns non-nil if the image of type TYPE will be displayed under the present circumstances. TYPE is a symbol like `xbm' or `jpeg'." (and lookup-inline-image (display-images-p) (or (null type) (memq type image-types)))) (defun lookup-glyph-compose (xbm) (create-image xbm 'xbm t :ascent 'center)) (defun lookup-glyph-paste (start end glyph) (add-text-properties start end (list 'display glyph 'intangible glyph 'rear-nonsticky (list 'display)))) (defun lookup-glyph-insert (glyph) (insert-image glyph)) (defun lookup-img-file-insert (file type) (let ((glyph (with-temp-buffer (insert-file-contents-literally file nil 0 ndeb-max-image-size) (string-make-unibyte (buffer-substring-no-properties (point-min) (point-max)))))) (lookup-glyph-insert (create-image glyph type t :ascent 'center)))) ) (t (defun lookup-inline-image-p (type) "Returns non-nil if the images of type TYPE will be displayed under the present circumstances." nil) )) ;; define bitmap-mule interfaces so that gaiji or xbm images can be ;; displayed on Emacsen that do not natively support xbm images. ;; these functions are not used on xbm-aware Emacsen by default. (when (featurep 'mule) (defun lookup-bitmap-compose (xbm) (require 'bitmap) (with-temp-buffer (insert xbm) (mapconcat (lambda (line) (bitmap-compose line)) (bitmap-decode-xbm (bitmap-read-xbm-buffer (current-buffer))) "\n"))) (defun lookup-bitmap-paste (start end glyph) (let ((overlay (make-overlay start end))) (overlay-put overlay 'invisible t) (overlay-put overlay 'evaporate t) (overlay-put overlay 'after-string glyph))) ) ;; Gaiji: ;; ;; $B30;z%*%V%8%'%/%H$Ol9g(B ;; ;; $B30;z$O(B bitmap-mule $B%Q%C%1!<%8$rMxMQ$7$F@8@.$5$l$k!#FbItE*$K$O$3$l$O!"(B ;; `compose-string' $B$K$h$j@8@.$5$l$kJ8;zNs$G$"$k!#(B ;; ;; 2) XEmacs / GNU Emacs (ver. 21 $B0J9_(B) $B$N>l9g(B ;; ;; $BAH$_9~$_$N(B glyph $B$N5!G=$rMxMQ$7$F@8@.$9$k!#$D$^$j!"30;z$r0ll9g$K$O(B `lookup-bitmap-compose' ;; $B$H$J$j!"(BXEmacs / GNU Emacs (ver. 21 $B0J9_(B) $B$N>l9g$K$O(B ;; `lookup-glyph-compose' $B$H$J$k!#$3$l$i$N4X?t$O(B"lookup-gaiji.el" $B$GDj5A(B ;; $B$7$F$$$k!#(B ;; ;; $B$^$?!"F1MM$K30;z$rA^F~$9$k4X?t$O!"JQ?t(B `lookup-gaiji-paste-function' ;; $B$K$h$jM?$($i$l$k!#$3$l$O$=$l$>$l!"(B`lookup-bitmap-paste' $B5Z$S(B ;; `lookup-glyph-paste' $B$H$J$k!#(B (defun lookup-gaiji-glyph-possible-p () ;; $B30;z%0%j%U$rI=<(2DG=$J>uBV$K$"$k$+$I$&$+%A%'%C%/$9$k!#(B (and window-system lookup-gaiji-compose-function)) (defun lookup-gaiji-glyph-compose (xbm) ;; $B30;z%0%j%U$r@8@.$9$k!#%G!<%?$O(B XBM $B7A<0$NJ8;zNs$H$7$FM?$($k!#(B (funcall lookup-gaiji-compose-function xbm)) (defun lookup-gaiji-glyph-paste (start end glyph) ;; $B30;z%0%j%U$rE=$jIU$1$k!#(B (funcall lookup-gaiji-paste-function start end glyph)) ;; Gaiji Table: ;; ;; $B30;z%F!<%V%k$O!"30;z%*%V%8%'%/%H$r5-O?!&;2>H$9$k$?$a$N%*%V%8%'%/%H!#(B ;; $B30;z%*%V%8%'%/%H$O?t$,B?$$>e$KIQHK$K;2>H$5$l$k$?$a!"%O%C%7%e(B(obarray)$B$r(B ;; $BMQ$$$F9bB.$K;2>H=PMh$k$h$&$K$7$F$$$k!#(B (defsubst lookup-make-gaiji-table () ;; $B30;z%F!<%V%k$r@8@.$9$k!#(B (make-vector 377 0)) (defun lookup-gaiji-table-set (table code gaiji) ;; $B30;z%F!<%V%k$K30;z%*%V%8%'%/%H$r%;%C%H$9$k!#(B (set (intern code table) gaiji)) (defun lookup-gaiji-table-ref (table code) ;; $B30;z%F!<%V%k$+$i30;z%*%V%8%'%/%H$r;2>H$9$k!#(B (let ((symbol (intern code table))) (if (boundp symbol) (symbol-value symbol)))) ;; Table Format: ;; ;; $B4X?t(B `lookup-new-gaiji-table' $B$K$h$j!"30;z%F!<%V%k$N=i4|CM$rDj5A$9$k$3$H$,(B ;; $B=PMh$k!#$3$l$K$h$j!"30;z$rFCDj$NJ8;zNs$GCV$-49$($k$h$&$J$3$H$,2DG=$H$J$k!#(B ;; $B$3$l$O2A2DG=$J<0!#(BALTERNATE $B$O>JN,2DG=$G!"(B ;; $B30;z$NBeBXJ8;zNs$r;XDj$9$k!#(B ;; ;; $BF1$8J8;zNs$r@_Dj$9$k>l9g$K$b!"(BGLYPH $B$H(B ALTERNATE $B$H$G$O0UL#$,0[$J$k!#(B ;; GLYPH $B$O2hLL=PNO$KMQ$$$i$l$k$?$a!"%"%/%;%s%HJ8;z$J$I$r4^$`G$0U$NJ8;z(B ;; $BNs$r;XDj=PMh$k$,!"(BALTERNATE $B$O8!:wEy$KMQ$$$i$l$k$?$a!"0lHLE*$J(B ASCII ;; $B%3!<%I$J$I$r;XDj$7$?J}$,$h$$!#(B (defun lookup-new-gaiji-table (spec) ;; SPEC $B$N;XDj$K=>$C$F30;z%F!<%V%k$r:n@.$9$k!#(B (let ((table (lookup-make-gaiji-table)) form glyph alter) (while spec (setq form (car spec) glyph (cadr form) alter (or (nth 2 form) glyph)) (if (and (featurep 'xemacs) glyph) (setq glyph (make-glyph (vector 'string ':data glyph)))) (lookup-gaiji-table-set table (car form) (lookup-make-gaiji glyph alter)) (setq spec (cdr spec))) table)) (provide 'lookup-types) ;;; lookup-types.el ends here lookup-1.4.1/lisp/lookup-vse.el0000644000076400007640000003100407404163674016700 0ustar kazuhikokazuhiko;;; lookup-vse.el --- Lookup Virtual Search Engine ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup-vse.el,v 1.4 2001/12/07 16:01:00 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) ;;;;;;;;;;;;;;;;;;;; ;: Search Query ;;;;;;;;;;;;;;;;;;;; (defun lookup-vse-search-query (dictionary query) ;; DICTIONARY $B$+$i(B QUERY $B$r8!:w$9$k!#(B ;; $BJQ?t(B `lookup-force-update' $B$,(B non-nil $B$N>l9g!"%-%c%C%7%e$rL5;k$9$k!#(B ;; $Bl9g(B (let* ((method (lookup-dictionary-default-method dictionary)) (expander (if (lookup-dictionary-hiragana dictionary) 'lookup-kanji-get-readings (lookup-dictionary-expander dictionary))) (filter (if (lookup-dictionary-hiragana dictionary) 'lookup-kanji-filter (lookup-dictionary-expand-filter dictionary))) (string (lookup-query-string query)) (candidates (nreverse (funcall expander string))) (prefix (concat "[" string " ->] "))) (setq entries (apply 'nconc (delq nil (mapcar (lambda (candidate) (mapcar (lambda (entry) (setq entry (lookup-copy-entry entry)) (lookup-entry-set-prefix entry prefix) entry) (lookup-vse-search-query-internal dictionary (lookup-make-query method candidate)))) candidates)))) (if filter (setq entries (funcall filter string entries))))) ((eq (lookup-query-method query) 'stemming) ;; stemming $B$r9T$&>l9g(B (let* ((method (lookup-dictionary-default-method dictionary)) (stemmer (lookup-dictionary-stemmer dictionary)) (string (lookup-query-string query)) (candidates (nreverse (funcall stemmer string)))) (while candidates (setq query (lookup-make-query method (car candidates))) (setq entries (lookup-vse-search-query dictionary query)) (setq candidates (if entries nil (cdr candidates)))) (if entries (let ((prefix (concat "[" string " ->] "))) (setq entries (mapcar (lambda (entry) (setq entry (lookup-copy-entry entry)) (lookup-entry-set-prefix entry prefix) entry) entries)))))) (t ;; $B%G%U%)%k%H$NF0:n(B (setq entries (lookup-dictionary-command dictionary 'search query)))) (lookup-foreach 'lookup-arrange-heading entries) entries)) ;;;;;;;;;;;;;;;;;;;; ;: Insert content ;;;;;;;;;;;;;;;;;;;; (defun lookup-vse-insert-content (entry) ;; ENTRY $B$NFbMF$r%P%C%U%!$KA^F~$7!"@07A=hM}$r9T$J$&!#(B ;; $BJQ?t(B `lookup-force-update' $B$,(B non-nil $B$N>l9g!"%-%c%C%7%e$rL5;k$9$k!#(B (let ((cache (lookup-contents-cache-get entry lookup-enable-format))) (if (or (not cache) lookup-force-update) ;; insert content (let ((lookup-proceeding-message (format "Inserting `%s'" (lookup-entry-heading entry))) (dictionary (lookup-entry-dictionary entry))) (lookup-proceeding-message nil) (insert (lookup-dictionary-command dictionary 'content entry)) (if lookup-enable-format (lookup-arrange-content entry)) (lookup-contents-cache-put entry lookup-enable-format (buffer-string)) (if lookup-enable-format (lookup-adjust-content entry)) (lookup-proceeding-message t)) ;; use cache (insert cache) (if lookup-enable-format (lookup-adjust-content entry))))) (defvar lookup-contents-cache nil) (defun lookup-contents-cache-put (entry formatted content) (lookup-multi-put 'lookup-contents-cache (lookup-entry-dictionary entry) formatted (lookup-assoc-set (lookup-multi-get 'lookup-contents-cache (lookup-entry-dictionary entry) formatted) (lookup-entry-code entry) content))) (defun lookup-contents-cache-get (entry formatted) (lookup-assoc-ref (lookup-multi-get 'lookup-contents-cache (lookup-entry-dictionary entry) formatted) (lookup-entry-code entry))) (defun lookup-contents-cache-clear () (setq lookup-contents-cache nil)) ;;; ;:: Interface functions ;;; (defun lookup-arrange-heading (entry) (let* ((dictionary (lookup-entry-dictionary entry)) (funcs (lookup-dictionary-headings dictionary))) (when funcs (with-temp-buffer (insert (lookup-entry-heading entry)) (lookup-foreach (lambda (func) (goto-char (point-min)) (funcall func entry)) funcs) (lookup-entry-set-heading entry (buffer-string)))))) (defun lookup-arrange-content (entry) (let* ((dictionary (lookup-entry-dictionary entry)) (arranges (lookup-dictionary-option dictionary ':arranges t))) (lookup-format entry arranges "formatting"))) (defun lookup-adjust-content (entry) (let* ((dictionary (lookup-entry-dictionary entry)) (adjusts (lookup-dictionary-option dictionary ':adjusts t)) (arranges (lookup-dictionary-option dictionary ':arranges t)) (work (concat "formatting" (make-string (length arranges) ?.)))) (lookup-format entry adjusts work))) ;;; ;:: Internal functions ;;; (defun lookup-format (entry functions work) (let ((n 1)) (lookup-foreach (lambda (func) (lookup-proceeding-message (concat work (make-string (setq n (1+ n)) ?.))) (widen) (goto-char (point-min)) (funcall func entry)) functions))) (defun lookup-heading-face (level) (or (nth (1- level) '(lookup-heading-1-face lookup-heading-2-face lookup-heading-3-face lookup-heading-4-face lookup-heading-5-face)) 'lookup-heading-low-face)) ;;; ;:: Arrange functions ;;; (defsubst lookup-make-region-heading (start end level) (add-text-properties start end (list 'face (lookup-heading-face level) 'lookup-heading level))) (defun lookup-arrange-default-headings (entry) (lookup-make-region-heading (point) (progn (end-of-line) (point)) 1)) (defun lookup-arrange-references (entry) (let* ((case-fold-search nil) (dictionary (lookup-entry-dictionary entry)) (pattern (lookup-dictionary-option dictionary ':reference-pattern t)) (regexp (car pattern)) (region-field (nth 1 pattern)) (heading-field (nth 2 pattern)) (code-field (nth 3 pattern)) region heading code reference) (while (re-search-forward regexp nil t) (save-match-data (setq region (if (integerp region-field) (match-string region-field) (eval region-field))) (setq heading (if (integerp heading-field) (match-string heading-field) (eval heading-field))) (if (integerp code-field) (setq code (match-string code-field) reference (lookup-make-entry dictionary code heading)) (setq reference (lookup-make-reference dictionary heading heading)) (lookup-reference-make-dynamic reference code-field))) (replace-match region t t) (lookup-set-link (match-beginning 0) (point) reference) (lookup-arrange-heading reference)))) (defun lookup-dynamic-code-search (reference) "$B%j%U%!%l%s%9$N%3!<%I$r%@%$%J%_%C%/$K8!:w$9$k!#(B" (let ((dictionary (lookup-entry-dictionary reference)) (query (lookup-make-query 'exact (lookup-entry-code reference)))) (lookup-vse-search-query dictionary query))) (defun lookup-arrange-gaijis (entry) (let* ((case-fold-search t) (dictionary (lookup-entry-dictionary entry)) (regexp (lookup-dictionary-option dictionary ':gaiji-regexp t)) start end gaiji) (while (re-search-forward regexp nil t) (setq start (match-beginning 0) end (match-end 0)) (when (setq gaiji (lookup-vse-get-gaiji dictionary (match-string 1))) (delete-region start end) (lookup-gaiji-insert gaiji))))) (defun lookup-arrange-fill-lines (entry) (let ((fill-column (if (integerp lookup-fill-column) lookup-fill-column (round (* (window-width) lookup-fill-column)))) start) (while (not (eobp)) (setq start (point)) (end-of-line) (if (> (current-column) fill-column) (fill-region start (point))) (forward-line)))) (defun lookup-arrange-fill-paragraphs (entry) (text-mode) (let ((fill-column (if (integerp lookup-fill-column) lookup-fill-column (round (* (window-width) lookup-fill-column))))) (while (not (eobp)) (fill-paragraph nil) (forward-paragraph)))) (defun lookup-arrange-squeezed-references (entry) (if (lookup-dictionary-option (lookup-entry-dictionary entry) ':squeezed nil) (while (search-forward-regexp "$B"*""(B\\(#0001\\|\\)?" nil t) (replace-match "")))) ;;; ;:: Adjust functions ;;; (defun lookup-adjust-show-gaijis (entry) (lookup-map-over-property (point-min) (point-max) 'lookup-gaiji 'lookup-gaiji-glyph-paste)) (defun lookup-adjust-check-references (entry) (lookup-map-over-property (point-min) (point-max) 'lookup-reference (lambda (start end reference) (if (if (lookup-reference-p reference) (lookup-reference-refered-p reference) (lookup-entry-refered-p reference)) (put-text-property start end 'face 'lookup-refered-face) (put-text-property start end 'face 'lookup-reference-face))))) (defun lookup-adjust-goto-min (entry) (goto-char (point-min))) ;;;;;;;;;;;;;;;;;;;; ;: Other Functions ;;;;;;;;;;;;;;;;;;;; (defun lookup-vse-get-menu (dictionary) (let ((entries (lookup-dictionary-get-property dictionary 'menu-entries))) (unless entries (when (lookup-dictionary-command-p dictionary 'menu) (setq entries (lookup-dictionary-command dictionary 'menu)) (lookup-foreach 'lookup-arrange-heading entries) (lookup-dictionary-put-property dictionary 'menu-entries entries))) entries)) (defun lookup-vse-get-copyright (dictionary) (let ((entries (lookup-dictionary-get-property dictionary 'copyright-entries))) (unless entries (when (lookup-dictionary-command-p dictionary 'copyright) (setq entries (lookup-dictionary-command dictionary 'copyright)) (lookup-foreach 'lookup-arrange-heading entries) (lookup-dictionary-put-property dictionary 'copyright-entries entries))) entries)) (defun lookup-vse-open-entry (entry) (let ((dictionary (lookup-entry-dictionary entry))) (when (lookup-dictionary-command-p dictionary 'open) (lookup-dictionary-command dictionary 'open entry) t))) (defun lookup-vse-get-gaiji (dictionary code) (let* ((table (lookup-dictionary-gaiji-table dictionary)) (gaiji (lookup-gaiji-table-ref table code)) (glyph (if gaiji (lookup-gaiji-glyph gaiji))) (alter (if gaiji (lookup-gaiji-alternate gaiji)))) (unless (and gaiji glyph alter) (if (or (not lookup-enable-gaiji) (not (lookup-gaiji-glyph-possible-p))) (if alter (lookup-gaiji-set-glyph gaiji alter)) (setq alter (format lookup-gaiji-alternate code)) (if glyph (lookup-gaiji-set-alternate gaiji alter) (when (setq glyph (lookup-dictionary-command dictionary 'gaiji code)) (setq glyph (lookup-gaiji-glyph-compose glyph)) (if gaiji (lookup-gaiji-set-glyph gaiji glyph) (setq gaiji (lookup-make-gaiji glyph alter)) (lookup-gaiji-table-set table code gaiji)))))) gaiji)) (provide 'lookup-vse) ;;; lookup-vse.el ends here lookup-1.4.1/lisp/lookup-package.el0000644000076400007640000002053407401226720017471 0ustar kazuhikokazuhiko;;; lookup-package.el --- management of supplement package ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup-package.el,v 1.1.1.1 2001/11/28 18:32:48 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Commentary: ;; $BJd=u%Q%C%1!<%8$H$O!"(BLookup $B$GMxMQ$9$k<-=q$NJdB-E*$J@_Dj$r!"FCDj$N=q<0(B ;; $B$K=>$C$FDj5A$7$?@_Dj%U%!%$%k=8$N$3$H$r8@$&!#$3$N%U%!%$%k$G$O!"Jd=u%Q%C(B ;; $B%1!<%8$r9=C[!&MxMQ$9$k$?$a$KI,MW$J4X?t$rMQ0U$7$F$$$k!#(B ;; ;; $B0J2l9g$K$b!"%Q%C%1!<%8$K(B ;; $B$O8GM-$N%Q%C%1!<%8L>$rIU$1$kI,MW$,$"$k!#Nc$($P(B "space" $B$H$$$&L>$N%Q%C(B ;; $B%1!<%8$r:n$k>l9g$K$O!"9=@.$Ol9g(B ;; ;; space.el $B@_Dj%U%!%$%k(B ;; ;; o $BJ#?t%U%!%$%k$N>l9g(B ;; ;; space/ $B%G%#%l%/%H%j(B ;; space.el $B%^%9%?!<%U%!%$%k(B ;; sun.el $B@_Dj%U%!%$%k(B1 ;; earth.el $B@_Dj%U%!%$%k(B2 ;; ... ($B$$$/$D$"$C$F$b$h$$(B) ;; ;; $B@_Dj%U%!%$%k$O(B "$B%Q%C%1!<%8L>(B.el" $B$H$9$k!#J#?t%U%!%$%k$rMQ$$$k>l9g$K$O!"(B ;; $B%Q%C%1!<%8L>$N%G%#%l%/%H%j$r:n$C$F!"$=$NCf$KI,MW$J$@$1$N%U%!%$%k$rMQ0U(B ;; $B$9$k!#$3$N>l9g!"%a%$%s$H$J$k@_Dj%U%!%$%k(B($B%^%9%?!<%U%!%$%k(B)$B$+$i!"$N%*%W%7%g%s@_Dj$HF1MM$G$"$k!#$?$@$7!"$3$3$G(B "sun" $B$H$+(B ;; "earch" $B$H$+$J$C$F$$$k$N$O<-=qL>$G$"$j!"<-=q(BID $B$G$O$J$$$3$H$KCm0U!#8e$+(B ;; $B$i%f!<%6$K$h$j%(!<%8%'%s%H(BID $B$,;XDj$5$l!"%*%W%7%g%s$H$7$F40@.$9$k!#(B ;; ;; $B@_Dj$O<-=qKh$K9T$J$&J}$,@0M}$,IU$/$N$G!"<-=q%*%W%7%g%s$O8DJL$N%U%!%$%k(B ;; $B$GDj5A$7$F!"$=$l$r%m!<%I$77k2L$r$^$H$a$k$H$$$&J}K!$,9M$($i$l$k!#$=$l$r(B ;; $B%5%]!<%H$9$k$?$a$NJ}K!$,MQ0U$5$l$F$$$k!#(B ;; Supplement Files: ;; ;; $B<-=q$N%*%W%7%g%s$rH4$-$N(B)$B%*%W%7%g%s$N$_$r%;%C%H$9$k!#Jd=u%U%!%$%k$O(B ;; $B4X?t(B `lookup-package-load' $B$K$h$C$FFI$_9~$^$l!"%;%C%H$5$l$?CM$,JV$5$l(B ;; $B$k!#Nc$($P$l$N%(!<%8%'%s%H$KBP1~$5$;$?J}$,ET9g$,$$$$!#(B ;; $B$b$7@_Dj$r%(!<%8%'%s%H$K$h$j6hJL$7$?$$>l9g!"Jd=u%U%!%$%k$G$OJQ?t(B ;; `lookup-package-agent' $B$r;2>H$9$k$3$H$,=PMh$k!#$3$NJQ?t$K$O!"%Q%C%1!<%8(B ;; $B$,FI$_9~$^$l$k$H$-!"$=$l$,E,MQ$7$h$&$H$9$k%(!<%8%'%s%H$N%/%i%9$,%;%C%H(B ;; $B$5$l$k!#$3$l$K$h$j!"Nc$($P$N%U%!%$%k$rMxMQ$9$kEy$NL\E*$N$?$a$K!"(B ;; `lookup-package-file-directory' $B$r;2>H$G$-$k!#$3$l$K$OJd=u%U%!%$%k$N(B ;; $B$"$k%G%#%l%/%H%j$HF1$8%G%#%l%/%H%j$,<($5$l$k!#(B ;; Package Example: ;; ;; $BH$7$F(B ;; $B$[$7$$!#$$$/$D$+$N%Q%C%1!<%8$O(B Lookup $B$N%[!<%`%Z!<%8$+$iF@$k$3$H$,=PMh$k!#(B ;; ;; http://www.ring.gr.jp/openlab/lookup/packages/ ;;; Code: (require 'lookup) (defconst lookup-package-version "1.1" "$BJd=u%Q%C%1!<%8$N=q<0%P!<%8%g%s!#(B") ;;; ;:: Customizable variables ;;; (defcustom lookup-package-directory (expand-file-name "packages" lookup-data-directory) "*$BJd=u%Q%C%1!<%8$,<}$a$i$l$k%G%#%l%/%H%j!#(B" :type 'directory :group 'lookup-setup) ;;; ;:: Package variables ;;; (defvar lookup-package-agent nil "$B%Q%C%1!<%8$rMxMQ$7$h$&$H$9$k%(!<%8%'%s%H$N%/%i%9$,@_Dj$5$l$k!#(B") (defvar lookup-package-file-directory nil "$BJd=u%U%!%$%k$N$"$k%G%#%l%/%H%j$,@_Dj$5$l$k!#(B") (defvar lookup-package-agent-options nil "$B%Q%C%1!<%8$,Ds6!$9$k%(!<%8%'%s%H!&%*%W%7%g%s$r@_Dj$9$k!#(B") (defvar lookup-package-dictionary-options nil "$BJd=u%U%!%$%k$,Ds6!$9$k<-=q%*%W%7%g%s$r@_Dj$9$k!#(B") (defvar lookup-package-dictionary-options-alist nil "$B%Q%C%1!<%8$,Ds6!$9$k<-=q%*%W%7%g%s$NO"A[%j%9%H$r@_Dj$9$k!#(B") ;;; ;:: Construct functions ;;; (defun lookup-package-load (name) "$BJd=u%U%!%$%k$rFI$_9~$_!"$=$3$G@_Dj$5$l$F$$$k<-=q%*%W%7%g%s$rJV$9!#(B NAME $B$K$OJd=u%U%!%$%kL>$r;XDj$9$k!#3HD%;R$OI,MW$J$$!#(B $BJd=u%U%!%$%k$G$O!"JQ?t(B `lookup-package-dictionary-options' $B$r;XDj$9$k(B $BI,MW$,$"$k!#$=$NCM$,$3$N4X?t$NJV5QCM$H$J$k!#(B" (load (expand-file-name name lookup-package-file-directory) nil t) lookup-package-dictionary-options) ;;; ;:: Setup functions ;;; (defun lookup-use-package (agent-id package-name) "$BJd=u%Q%C%1!<%8$r%m!<%I$9$k!#(B AGENT-ID $B$O!"%Q%C%1!<%8$rE,MQ$9$k%(!<%8%'%s%H(BID$B!#(B PACKAGE-NAME $B$O!"%Q%C%1!<%8L>!"$"$k$$$O%Q%C%1!<%8$N@dBP%Q%9!#(B $B@dBP%Q%9$G$J$$>l9g!"%Q%C%1!<%8$OJQ?t(B `lookup-package-directory' $B$,(B $B<($9%G%#%l%/%H%j$KE83+$7$F$*$/I,MW$,$"$k!#(B $B$3$N4X?t$O(B `lookup-agent-options-alist' $B5Z$S(B `lookup-dictionary-options-alist' $B$NCM$r=q$-49$($k!#(B" (let ((path (expand-file-name package-name lookup-package-directory)) (lookup-package-agent (progn (string-match "^[^+]+" agent-id) (intern (match-string 0 agent-id)))) (lookup-package-file-directory lookup-package-directory) lookup-package-agent-options lookup-package-dictionary-options-alist) (message "Loading package %s..." package-name) ;; load package (unless (load path t t) (setq lookup-package-file-directory path) (unless (load (expand-file-name package-name path) t t) (error "Cannot find supplement package: %s" package-name))) ;; set agent options (lookup-foreach (lambda (option) (lookup-set-agent-option agent-id (car option) (cdr option))) lookup-package-agent-options) ;; set dicitonary options (lookup-foreach (lambda (pair) (let ((id (concat agent-id ":" (car pair)))) (lookup-foreach (lambda (option) (lookup-set-dictionary-option id (car option) (cdr option))) (cdr pair)))) lookup-package-dictionary-options-alist) (message "Loading package %s...done" package-name) t)) (provide 'lookup-package) ;;; lookup-package.el ends here lookup-1.4.1/lisp/lookup-kanji.el0000644000076400007640000000757707401226711017206 0ustar kazuhikokazuhiko;;; lookup-kanji.el --- Lookup Kanji-Kana Converter ;; Copyright (C) 1999 Lookup Development Team ;; Author: TSUCHIYA Masatoshi ;; Version: $Id: lookup-kanji.el,v 1.1.1.1 2001/11/28 18:32:41 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'evi) (require 'lookup-utils) (require 'lookup-vars) (defcustom lookup-kanji-command "kakasi" "*´Á»ú¤Ò¤é¤¬¤ÊÊÑ´¹¥×¥í¥°¥é¥à(KAKASI)¤Î̾Á°" :type 'string :group 'lookup-kanji) (defcustom lookup-kanji-option '("-JH" "-p") "*´Á»ú¤Ò¤é¤¬¤ÊÊÑ´¹¥×¥í¥°¥é¥à(KAKASI)¤Î¥ª¥×¥·¥ç¥ó" :type 'list :group 'lookup-kanji) (defcustom lookup-kanji-coding-system lookup-kakasi-coding-system "*´Á»ú¤Ò¤é¤¬¤ÊÊÑ´¹¥×¥í¥°¥é¥à(KAKASI)¤Î¸Æ¤Ó½Ð¤·¤ËÍѤ¤¤ëʸ»ú¥³¡¼¥É" :type 'symbol :group 'lookup-kanji) (defvar lookup-kanji-process nil "´Á»ú¤Ò¤é¤¬¤ÊÊÑ´¹¥×¥í¥°¥é¥à¤Î¥×¥í¥»¥¹(ÆâÉôÊÑ¿ô)") (defvar lookup-kanji-buffer nil "´Á»ú¤Ò¤é¤¬¤ÊÊÑ´¹¥×¥í¥°¥é¥à¤Î¥×¥í¥»¥¹¤ò´ØÏ¢¤Å¤±¤é¤ì¤¿¥Ð¥Ã¥Õ¥¡(ÆâÉôÊÑ¿ô)") (defun lookup-kanji-generate-buffer () "ºî¶ÈÍѥХåե¡¤òÀ¸À®¤¹¤ë´Ø¿ô" (unless (and (bufferp lookup-kanji-buffer) (buffer-name lookup-kanji-buffer)) (setq lookup-kanji-buffer (generate-new-buffer " *lookup-kanji*") lookup-buffer-list (cons lookup-kanji-buffer lookup-buffer-list)) (buffer-disable-undo lookup-kanji-buffer)) lookup-kanji-buffer) (defun lookup-kanji-start-process () "´Á»ú¤Ò¤é¤¬¤ÊÊÑ´¹¥×¥í¥°¥é¥à¤òµ¯Æ°¤¹¤ë´Ø¿ô" (unless (and (processp lookup-kanji-process) (eq (process-status lookup-kanji-process) 'run)) (lookup-with-coding-system lookup-kanji-coding-system (setq lookup-kanji-process (apply 'start-process "lookup-kanji" (lookup-kanji-generate-buffer) lookup-kanji-command lookup-kanji-option))) (sit-for 0.1) (process-kill-without-query lookup-kanji-process)) lookup-kanji-process) (defun lookup-kanji-send-string (str) "STR ¤ò¥×¥í¥»¥¹¤Îɸ½àÆþÎϤËÅϤ·¤Æ¡¢¤½¤Î·ë²Ì¤òÊÖ¤¹´Ø¿ô" (lookup-process-require (lookup-kanji-start-process) (concat str "\n") "\n") (save-excursion (set-buffer lookup-kanji-buffer) (goto-char (point-min)) (forward-line 1) (prog1 (buffer-substring (point) (progn (end-of-line) (point))) (delete-region (point-min) (point-max))))) (defun lookup-kanji-analysis-output (str) "KAKASI ¤Î½ÐÎÏ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë³ç¸Ì¤ò²òÀϤ·¤Æ¥ê¥¹¥È¤ËŸ³«¤¹¤ë" (if (string-match "{\\([^}]+\\)}" str) (let ((x (substring str 0 (match-beginning 0))) (y (substring str (match-end 0)))) (apply 'nconc (mapcar 'lookup-kanji-analysis-output (mapcar (lambda (s) (concat x s y)) (lookup-split-string (substring str (match-beginning 1) (match-end 1)) "|"))))) (list str))) (defun lookup-kanji-get-readings (str) "STR ¤ò´Á»ú¤Ò¤é¤¬¤ÊÊÑ´¹¤·¤ÆÆÀ¤é¤ì¤¿·ë²Ì¤Î¥ê¥¹¥È¤òÊÖ¤¹´Ø¿ô" (lookup-kanji-analysis-output (lookup-kanji-send-string str))) (defun lookup-kanji-filter (str entries) "STR ¤¬¸«½Ð¤·¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤è¤¦¤Ê¥¨¥ó¥È¥ê¤Î¤ß¤ò¼è¤ê½Ð¤¹¥Õ¥£¥ë¥¿´Ø¿ô" (let ((regex (mapconcat 'char-to-string (string-to-char-list string) ".?.?.?"))) (delq nil (mapcar (lambda (entry) (if (string-match regex (lookup-entry-heading entry)) entry)) entries)))) (provide 'lookup-kanji) ;;; lookup-kanji.el ends here lookup-1.4.1/lisp/lookup-entry.el0000644000076400007640000005177607404163674017266 0ustar kazuhikokazuhiko;;; lookup-entry.el --- lookup-entry-mode ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup-entry.el,v 1.2 2001/12/07 16:01:00 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (require 'lookup-content) ;;; ;:: Internal variables ;;; (defvar lookup-entry-line-pattern "") (defvar lookup-entry-line-number "0") (make-variable-buffer-local 'lookup-entry-line-pattern) (make-variable-buffer-local 'lookup-entry-line-number) (defvar lookup-entry-insert-format "%-19s ") ;;;;;;;;;;;;;;;;;;;; ;: Construct Buffer ;;;;;;;;;;;;;;;;;;;; (defun lookup-entry-display (session) (with-current-buffer (lookup-open-buffer (lookup-entry-buffer)) (let ((query (lookup-session-query session)) (entries (lookup-session-entries session)) (excursion (lookup-session-excursion session))) ;; insert entries (let ((inhibit-read-only t)) (lookup-entry-mode) (erase-buffer) (lookup-foreach 'lookup-entry-insert entries)) ;; set mode line (setq lookup-entry-line-pattern (lookup-query-string query)) (setq lookup-entry-line-number (number-to-string (length entries))) ;; display buffer (if excursion (lookup-entry-set-excursion excursion) (lookup-pop-to-buffer (current-buffer)) (goto-char (point-min)) (lookup-entry-goto-link) (if lookup-dynamic-display (sit-for 0)) (lookup-entry-display-content) (if lookup-dynamic-display (sit-for 0)))))) (defun lookup-entry-append (session entries) (with-current-buffer (lookup-entry-buffer) (goto-char (prog1 (point) (let ((inhibit-read-only t)) (goto-char (point-max)) (lookup-foreach 'lookup-entry-insert entries)))) (let ((entries (append (lookup-session-entries session) entries))) (lookup-session-set-entries session entries)) (setq lookup-entry-line-number (number-to-string (+ (string-to-number lookup-entry-line-number) (length entries)))) (if lookup-dynamic-display (sit-for 0)))) (defun lookup-entry-expand-reference (reference) (let ((entries (lookup-reference-entries reference))) (when entries ;; replace buffer (let ((start (progn (beginning-of-line) (point))) (inhibit-read-only t)) (delete-region start (progn (forward-line) (point))) (lookup-foreach 'lookup-entry-insert entries) (goto-char start) (lookup-entry-goto-link)) ;; replace cache (let ((list (lookup-session-entries lookup-current-session))) (if (eq reference (car list)) (setq list (append entries (cdr list))) (while (not (eq reference (cadr list))) (setq list (cdr list))) (when list (setcdr list (append entries (cddr list)))))) (setq lookup-entry-line-number (number-to-string (+ (string-to-number lookup-entry-line-number) (1- (length entries)))))))) (defun lookup-entry-insert (entry) ;; $B%(%s%H%j9T$r%P%C%U%!$KA^F~$7!"%j%s%/$r%;%C%H$9$k!#(B (let ((dictionary (lookup-entry-dictionary entry)) (prefix (lookup-entry-prefix entry)) (heading (lookup-entry-heading entry)) start end) (insert (format lookup-entry-insert-format (lookup-dictionary-title dictionary))) ;; property $B$d(B extent $B$r" 'lookup-entry-end-of-content) (define-key lookup-entry-mode-map "n" 'lookup-entry-next-entry) (define-key lookup-entry-mode-map "p" 'lookup-entry-previous-entry) (define-key lookup-entry-mode-map "\en" 'lookup-history-next) (define-key lookup-entry-mode-map "\ep" 'lookup-history-previous) (define-key lookup-entry-mode-map "\ef" 'lookup-module-forward) (define-key lookup-entry-mode-map "\eb" 'lookup-module-backward) (define-key lookup-entry-mode-map "i" 'lookup-entry-info) (define-key lookup-entry-mode-map "o" 'lookup-entry-open) (define-key lookup-entry-mode-map "O" 'lookup-entry-open-other) ; (define-key lookup-entry-mode-map "e" 'lookup-entry-edit) (define-key lookup-entry-mode-map "v" 'lookup-entry-overview-mode) (define-key lookup-entry-mode-map "t" 'lookup-entry-toggle-format) (define-key lookup-entry-mode-map "s" 'lookup-entry-isearch-content) (define-key lookup-entry-mode-map "w" 'lookup-entry-cite-content) (define-key lookup-entry-mode-map "f" 'lookup-entry-search-pattern) ; (define-key lookup-entry-mode-map "I" 'lookup-entry-show-index) (define-key lookup-entry-mode-map "M" 'lookup-entry-show-menu) (define-key lookup-entry-mode-map "C" 'lookup-entry-show-copyright) (define-key lookup-entry-mode-map "L" 'lookup-entry-list-references) ; (define-key lookup-entry-mode-map "H" 'lookup-entry-list-history) (define-key lookup-entry-mode-map "S" 'lookup-entry-select-dictionary) (define-key lookup-entry-mode-map "r" 'lookup-entry-start-window) (define-key lookup-entry-mode-map "h" 'lookup-entry-content-window) (define-key lookup-entry-mode-map "g" 'lookup-entry-update) (define-key lookup-entry-mode-map "q" 'lookup-suspend) (define-key lookup-entry-mode-map "Q" 'lookup-exit) (define-key lookup-entry-mode-map "R" 'lookup-restart) (define-key lookup-entry-mode-map "?" 'lookup-entry-help) (if (featurep 'xemacs) (define-key lookup-entry-mode-map 'button2 'lookup-entry-mouse-follow) (define-key lookup-entry-mode-map [mouse-2] 'lookup-entry-mouse-follow)) ) (defconst lookup-entry-mode-help "Lookup Entry $B%b!<%I(B: `n'(ext) - $BpJsI=<((B `t'(oggle) - $B@07A=hM}$r%H%0%k(B `w'(rite) - $BFbMF$r%-%k%j%s%0$KJ]B8(B `f'(ind) - $B8!:w8l$rF~NO(B `M'(enu) - $B<-=q$N%a%K%e!$9(B `Q' - Lookup $B$r=*N;$9$k(B `R' - Lookup $B$r:F5/F0$9$k(B") (defvar lookup-entry-overview-mode nil) (make-variable-buffer-local 'lookup-entry-overview-mode) (or (assq 'lookup-entry-overview-mode minor-mode-alist) (setq minor-mode-alist (cons '(lookup-entry-overview-mode " Overview") minor-mode-alist))) (defvar lookup-entry-overview-mode-map nil "*Keymap for Lookup Entry Overview mode.") (unless lookup-entry-overview-mode-map (setq lookup-entry-overview-mode-map (make-sparse-keymap)) (define-key lookup-entry-overview-mode-map "n" 'next-line) (define-key lookup-entry-overview-mode-map "p" 'previous-line)) (or (assq 'lookup-entry-overview-mode minor-mode-map-alist) (setq minor-mode-map-alist (cons (cons 'lookup-entry-overview-mode lookup-entry-overview-mode-map) minor-mode-map-alist))) (defun lookup-entry-mode () "Lookup Entry $B%b!<%I!#(B $B$3$l$O8!:w$N7k2L!"8+IU$+$C$?%(%s%H%j$r0lMw$9$k$?$a$N%b!<%I!#(B $B%b!<%I$KF~$k$H$-$K(B `lookup-entry-mode-hook' $B$,8F$P$l$k!#(B" (interactive) (kill-all-local-variables) (buffer-disable-undo) (setq major-mode 'lookup-entry-mode) (setq mode-name "Entry") (setq mode-line-buffer-identification '("Lookup:%b {" lookup-entry-line-pattern "} [" lookup-entry-line-number "]")) (setq truncate-lines t) (setq buffer-read-only t) (use-local-map lookup-entry-mode-map) (if (and (featurep 'xemacs) (featurep 'scrollbar)) (set-specifier scrollbar-height (cons (current-buffer) 0))) (run-hooks 'lookup-entry-mode-hook)) (defun lookup-entry-overview-mode (&optional arg) "Overview $B%b!<%I$KF~$k!#(B Cotent $B%P%C%U%!$,%/%m!<%:$5$l!"(B`n' $B$H(B `p' $B$,C1$K%]%$%s%H0\F0$@$1$r(B $B9T$J$&$h$&$K$J$k!#(B" (interactive) (setq lookup-entry-overview-mode (if arg (> (prefix-numeric-value arg) 0) (not lookup-entry-overview-mode))) (if lookup-entry-overview-mode (lookup-hide-buffer (lookup-content-buffer)) (lookup-display-buffer (lookup-content-buffer))) (force-mode-line-update)) ;;; ;:: Interactive commands ;;; (defun lookup-entry-display-content () "$B%]%$%s%H9T$N%(%s%H%j$NK\J8$rI=<($9$k!#(B Overview $B%b!<%I$K$J$C$F$$$k>l9g$K$O$=$l$r2r=|$7!"(BContent $B%P%C%U%!$r(B $B%*!<%W%s$9$k!#%(%s%H%j$,%j%U%!%l%s%9$N>l9g$K$O!"$=$l$r;2>H$9$k!#(B" (interactive) (lookup-entry-goto-link) (let ((entry (lookup-entry-current-line-entry))) (when (lookup-reference-p entry) (lookup-reference-refer entry) (lookup-entry-expand-reference entry) ;; dynamic reference $B$r;2>H$7$?>l9g!"%P%C%U%!$,=q$-49$o$k$3$H$,$"$k!#(B (setq entry (lookup-entry-current-line-entry))) (when entry (lookup-content-display entry) (lookup-entry-overview-mode 0)))) (defun lookup-entry-mouse-follow (event) "$B%^%&%9$G%/%j%C%/$7$?%(%s%H%j$NK\J8$rI=<($9$k!#(B" (interactive "e") (mouse-set-point event) (lookup-entry-display-content)) (defun lookup-entry-next-page () "$B%(%s%H%jK\J8$NI=<($r0l%Z!<%8?J$a$k!#(B $B%P%C%U%!$N=*$o$j$^$GC#$7$?$i!"pJs$r=PNO$9$k!#(B" (interactive) (let ((entry (lookup-entry-current-line-entry))) (with-current-buffer (lookup-open-buffer "*Entry Information*") (help-mode) (let ((inhibit-read-only t)) (erase-buffer) (insert (format "Entry information for `%s':\n" (lookup-entry-heading entry))) (newline) (insert (format "Dictionary: %s\n" (lookup-dictionary-id (lookup-entry-dictionary entry)))) (insert (format "Heading: %s\n" (lookup-entry-heading entry))) (insert (format "Code: %s\n" (lookup-entry-code entry))) (goto-char (point-min)) (forward-line 2)) (lookup-display-buffer (current-buffer))))) (defun lookup-entry-open () "$B%(%s%H%jK\J8$r2hLL0lGU$KI=<($9$k!#(B" (interactive) (delete-other-windows) (lookup-entry-display-content)) (defun lookup-entry-open-other () "$B%(%s%H%jK\J8$rJL%W%m%0%i%`$GI=<($9$k!#(B" (interactive) (unless (lookup-vse-open-entry (lookup-entry-current-line-entry)) (error "This entry doesn't have a open command"))) (defun lookup-entry-toggle-format () "$B%(%s%H%jK\J8$N@07A=hM}$r%H%0%k$9$k!#(B" (interactive) (with-current-buffer (lookup-content-buffer) (lookup-content-toggle-format))) (defun lookup-entry-isearch-content (&optional rexexp-p) "Content $B%P%C%U%!$G(B isearch-forward $B$rl9g!"$=$l$r;2>H$9$k!#(B" (interactive) (let* ((dict (lookup-entry-dictionary (lookup-entry-current-line-entry))) (entries (lookup-vse-get-menu dict))) (if entries (let* ((module (lookup-session-module lookup-current-session)) (title (lookup-dictionary-title dict)) (query (lookup-make-query 'reference title))) (lookup-display-entries module query entries)) (error "This dictionary has no menu")))) (defun lookup-entry-show-copyright () "$B<-=q$,%3%T!<%i%$%HI=<($KBP1~$7$F$$$k>l9g!"$=$l$r;2>H$9$k!#(B" (interactive) (let* ((dict (lookup-entry-dictionary (lookup-entry-current-line-entry))) (entries (lookup-vse-get-copyright dict))) (if entries (let* ((module (lookup-session-module lookup-current-session)) (title (lookup-dictionary-title dict)) (query (lookup-make-query 'reference title))) (lookup-display-entries module query entries)) (error "This dictionary has no copyright")))) (defun lookup-entry-list-references () "$B%(%s%H%jK\J8$K4^$^$l$k%j%U%!%l%s%9$r0lMw$9$k!#(B" (interactive) (unless (lookup-entry-content-visible-p) (lookup-entry-display-content)) (let ((entries (lookup-content-collect-references))) (if entries (let* ((module (lookup-session-module lookup-current-session)) (entry (lookup-entry-current-line-entry)) (heading (lookup-entry-heading entry)) (query (lookup-make-query 'reference heading))) (lookup-display-entries module query entries)) (error "No valid reference in current content")))) (defun lookup-entry-select-dictionary () "$B<-=qA*Br%P%C%U%!$K0\F0!#(B" (interactive) (lookup-select-dictionary (lookup-session-module lookup-current-session))) (defun lookup-entry-start-window () "$B8!:w$r3+;O$7$?%&%#%s%I%&$K0\F0$9$k!#(B" (interactive) (if (window-live-p lookup-start-window) (select-window lookup-start-window) (lookup-hide-buffer (current-buffer)) (delete-other-windows) (let ((lookup-open-function 'lookup-other-window)) (lookup)))) (defun lookup-entry-content-window () "Content $B%P%C%U%!$K0\F0$9$k!#(B" (interactive) (unless (lookup-entry-content-visible-p) (lookup-entry-display-content)) (select-window (get-buffer-window (lookup-content-buffer)))) (defun lookup-entry-update (&optional module) "$B:#2s$HF1$88!:w8l$G!"%(%s%H%j$r:F8!:w$9$k!#(B" (interactive (list (if current-prefix-arg (lookup-input-module)))) (let ((query (lookup-session-query lookup-last-session))) (if (eq (lookup-query-method query) 'reference) (error "This is reference session") (let ((lookup-force-update t)) (setq module (or module (lookup-session-module lookup-last-session))) (lookup-search-query module query))))) (defun lookup-entry-update-content () "$B%(%s%H%jK\J8$r:FI=<($9$k!#@07A=hM}$bA4$F$d$jD>$5$l$k!#(B" (interactive) (let ((lookup-force-update t)) (lookup-entry-display-content))) (defun lookup-entry-help () "Entry $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B" (interactive) (with-current-buffer (lookup-open-buffer (lookup-help-buffer)) (help-mode) (let ((inhibit-read-only t)) (erase-buffer) (insert lookup-entry-mode-help)) (lookup-display-help (current-buffer)))) ;;; ;:: Internal functions ;;; (defun lookup-entry-set-link (start end entry) ;; $B%P%C%U%!$N(B START $B$+$i(B END $B$^$G$N%j!<%8%g%s$r(B ENTRY $B$X$N%j%s%/$K$9$k!#(B (add-text-properties start end (list 'mouse-face 'highlight 'lookup-entry entry))) (defun lookup-entry-goto-link () ;; $B%]%$%s%H9T$N%j%s%/0LCV$K0\F0$9$k!#(B (let ((p (progn (beginning-of-line) (point)))) (if (setq p (next-single-property-change p 'lookup-entry)) (goto-char p)))) (defun lookup-entry-current-line-entry () ;; $B%]%$%s%H9T$N(B entry $B$rJV$9!#(B (save-excursion (end-of-line) (get-text-property (1- (point)) 'lookup-entry))) (defun lookup-entry-content-visible-p () ;; content $B$,I=<($5$l$F$$$l$P(B `t'$B!#(B (and (get-buffer-window (lookup-content-buffer)) (eq (lookup-entry-current-line-entry) (with-current-buffer (lookup-content-buffer) lookup-content-current-entry)))) (provide 'lookup-entry) ;;; lookup-entry.el ends here lookup-1.4.1/lisp/lookup-content.el0000644000076400007640000002523710005425335017552 0ustar kazuhikokazuhiko;;; lookup-content.el --- lookup-content-mode ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup-content.el,v 1.2 2004/01/27 09:09:49 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (require 'lookup-vse) ;;; ;:: Internal variables ;;; ;; $B%P%C%U%!$,I=<($7$F$$$k%(%s%H%j$rJ];}$9$k!#(B (defvar lookup-content-current-entry nil) ;; $B%b!<%I%i%$%s9T$KI=<($9$k>pJs!#(B (defvar lookup-content-line-heading nil) (make-variable-buffer-local 'lookup-content-current-entry) (make-variable-buffer-local 'lookup-content-line-heading) ;;;;;;;;;;;;;;;;;;;; ;: Construct Buffer ;;;;;;;;;;;;;;;;;;;; ;; Content $B%P%C%U%!$K$O%(%s%H%j$NFbMF$,=PNO$5$l$k!#(B ;; $B4X?t(B `lookup-content-display' $B$K$h$j!"$3$l$r9T$J$&!#(B (defun lookup-content-display (entry) ;; Content $B%P%C%U%!$r@8@.$7!"(BENTRY $B$NFbMF$rI=<($9$k!#(B ;; $B" 'end-of-buffer) (define-key lookup-content-mode-map "\C-i" 'lookup-content-next-tab-stop) (define-key lookup-content-mode-map [(shift tab)] 'lookup-content-previous-tab-stop) (define-key lookup-content-mode-map "\C-m" 'lookup-content-follow-link) (define-key lookup-content-mode-map "t" 'lookup-content-toggle-format) (define-key lookup-content-mode-map "w" 'lookup-content-cite-region) (define-key lookup-content-mode-map "h" 'lookup-content-entry-window) (define-key lookup-content-mode-map "f" 'lookup-entry-search-pattern) (define-key lookup-content-mode-map "g" 'lookup-content-update) (define-key lookup-content-mode-map "q" 'lookup-content-leave) (define-key lookup-content-mode-map "?" 'lookup-content-help) (if (featurep 'xemacs) (define-key lookup-content-mode-map 'button2 'lookup-content-mouse-follow) (define-key lookup-content-mode-map [mouse-2] 'lookup-content-mouse-follow)) ) (defconst lookup-content-mode-help "Lookup Content $B%b!<%I(B: `SPC' - $B%Z!<%8$r?J$a$k(B `<' - $B%P%C%U%!$N:G=i$X(B `DEL' - $B%Z!<%8$rLa$k(B `>' - $B%P%C%U%!$N:G8e$X(B `TAB' - $BH$9$k!#(B" (interactive) (let ((entry (lookup-get-link (point)))) (if entry (let* ((module (lookup-session-module lookup-current-session)) (heading (lookup-entry-heading lookup-content-current-entry)) (query (lookup-make-query 'reference heading)) (entries (if (not (lookup-reference-p entry)) (list entry) (lookup-reference-refer entry) (lookup-reference-entries entry)))) (if entries (lookup-display-entries module query entries) (error "This link is torn off"))) (error "No link here")))) (defun lookup-content-mouse-follow (event) "$B%^%&%9$G%/%j%C%/$7$?%j%s%/$r;2>H$9$k!#(B" (interactive "e") (mouse-set-point event) (lookup-content-follow-link)) (defun lookup-content-toggle-format () "$BK\J8$N@07A=hM}$r%H%0%k$9$k!#(B" (interactive) (setq lookup-enable-format (not lookup-enable-format)) (lookup-content-display lookup-content-current-entry)) (defun lookup-content-cite-region (start end) "$B%j!<%8%g%s$NFbMF$r%-%k%j%s%0$KJ]B8$9$k!#(B $B$=$N:]!"JQ?t(B `lookup-cite-header' $B$^$?$O<-=q%*%W%7%g%s(B `cite-header' $B$K$h$j0zMQ;~$N%X%C%@$r!"JQ?t(B `lookup-cite-prefix' $B$^$?$O<-=q%*%W%7%g%s(B `cite-prefix' $B$K$h$j0zMQ;~$N%W%l%U%#%/%9$r;XDj$9$k$3$H$,=PMh$k!#(B" (interactive "r") (let* ((dictionary (lookup-entry-dictionary lookup-content-current-entry)) (header (or (lookup-dictionary-option dictionary ':cite-header t) lookup-cite-header)) (prefix (or (lookup-dictionary-option dictionary ':cite-prefix t) lookup-cite-prefix)) (contents (buffer-substring-no-properties start end))) (when prefix (with-temp-buffer (insert contents) (goto-char (point-min)) (while (not (eobp)) (insert prefix) (forward-line)) (setq contents (buffer-string)))) (when header (let ((title (lookup-dictionary-title dictionary))) (while (string-match "%T" header) (setq header (replace-match title t t header)))) (setq contents (concat header contents))) (kill-new contents) (if (featurep 'xemacs) (zmacs-deactivate-region) (deactivate-mark)) (when (interactive-p) (if (pos-visible-in-window-p (mark) (selected-window)) (let ((inhibit-quit t)) (save-excursion (goto-char (mark)) (sit-for 1))) (let ((len (min (abs (- end start)) 40))) (if (= (point) start) (message "Saved text until \"%s\"" (buffer-substring (- end len) end)) (message "Saved text from \"%s\"" (buffer-substring start (+ start len))))))))) (defun lookup-content-entry-window () "Entry $B%P%C%U%!$K0\F0$9$k!#(B" (interactive) (select-window (get-buffer-window (lookup-entry-buffer)))) (defun lookup-content-update () "$B%-%c%C%7%e$rMQ$$$:$KK\J8$rFI$_D>$9!#(B" (interactive) (let ((lookup-force-update t)) (lookup-content-display lookup-content-current-entry))) (defun lookup-content-leave () "Content $B%P%C%U%!$rH4$1$k!#(B" (interactive) (lookup-hide-buffer (current-buffer)) (lookup-entry-display-content)) (defun lookup-content-help () "Content $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B" (interactive) (with-current-buffer (lookup-open-buffer (lookup-help-buffer)) (help-mode) (let ((inhibit-read-only t)) (erase-buffer) (insert lookup-content-mode-help)) (lookup-display-help (current-buffer)))) ;;; ;:: Useful functions ;;; (defun lookup-content-collect-references () ;; Content $B%P%C%U%!$N%j%U%!%l%s%9$rA4$F=8$a$F%j%9%H$K$7$FJV$9!#(B (with-current-buffer (lookup-content-buffer) (let (entries) (lookup-map-over-property (point-min) (point-max) 'lookup-reference (lambda (start end entry) (setq entries (if (and (lookup-reference-p entry) (not (lookup-reference-dynamic-p entry))) (nconc (reverse (lookup-reference-entries entry)) entries) (cons entry entries))))) (nreverse entries)))) (provide 'lookup-content) ;;; lookup-content.el ends here lookup-1.4.1/lisp/lookup-select.el0000644000076400007640000002420607646555477017406 0ustar kazuhikokazuhiko;;; lookup-select.el --- lookup-select-mode ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: lookup-select.el,v 1.3 2003/04/14 16:01:03 tnemoto Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) ;;;;;;;;;;;;;;;;;;;; ;: Construct Buffer ;;;;;;;;;;;;;;;;;;;; (defun lookup-select-display (session) (with-current-buffer (lookup-open-buffer (lookup-select-buffer)) (lookup-select-mode) (let ((inhibit-read-only t)) (erase-buffer) (insert "Type `m' to select, `u' to unselect, `?' for help.\n\n") (lookup-table-insert "%c %-12t %-20t %s\n" (append '((?% "Identifier" "Title" "Method") (?- "----------" "-----" "------")) (mapcar (lambda (dic) (list (if (lookup-dictionary-selected-p dic) ?* ? ) (lookup-dictionary-id dic) (lookup-dictionary-title dic) (mapconcat 'lookup-method-key (lookup-dictionary-methods dic) ""))) (lookup-module-dictionaries (lookup-session-module session))))) (lookup-select-goto-first)) (lookup-pop-to-buffer (current-buffer)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;: Lookup Select mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar lookup-select-mode-map nil "*Keymap for Lookup Select mode.") (unless lookup-select-mode-map (setq lookup-select-mode-map (make-sparse-keymap)) (define-key lookup-select-mode-map " " 'lookup-select-next-line) (define-key lookup-select-mode-map "n" 'lookup-select-next-line) (define-key lookup-select-mode-map "p" 'lookup-select-previous-line) (define-key lookup-select-mode-map "\en" 'lookup-history-next) (define-key lookup-select-mode-map "\ep" 'lookup-history-previous) (define-key lookup-select-mode-map "\ef" 'lookup-module-forward) (define-key lookup-select-mode-map "\eb" 'lookup-module-backward) (define-key lookup-select-mode-map "m" 'lookup-select-do-select) (define-key lookup-select-mode-map "u" 'lookup-select-do-unselect) (define-key lookup-select-mode-map "a" 'lookup-select-do-select-all) (define-key lookup-select-mode-map "\C-m" 'lookup-select-do-select-only) (define-key lookup-select-mode-map "d" 'lookup-select-mark-disable) (define-key lookup-select-mode-map "x" 'lookup-select-do-execute) ; (define-key lookup-select-mode-map "i" 'lookup-select-info) (define-key lookup-select-mode-map "M" 'lookup-select-menu) (define-key lookup-select-mode-map "C" 'lookup-select-copyright) (define-key lookup-select-mode-map "f" 'lookup-select-search-pattern) (define-key lookup-select-mode-map "o" 'delete-other-windows) (define-key lookup-select-mode-map "/" 'lookup-select-text-search) (define-key lookup-select-mode-map "g" 'lookup-select-update) (define-key lookup-select-mode-map "q" 'lookup-suspend) (define-key lookup-select-mode-map "Q" 'lookup-exit) (define-key lookup-select-mode-map "R" 'lookup-restart) (define-key lookup-select-mode-map "?" 'lookup-select-help)) (defconst lookup-select-mode-help "Lookup Select $B%b!<%I(B: `n'(ext) - $B$9(B `Q' - Lookup $B$r=*N;$9$k(B `R' - Lookup $B$r:F5/F0$9$k(B") (defvar lookup-select-mode-hook nil) (defun lookup-select-mode () (interactive) (kill-all-local-variables) (buffer-disable-undo) (setq major-mode 'lookup-select-mode) (setq mode-name "Select") (setq mode-line-buffer-identification '("Lookup:%12b")) (setq buffer-read-only t) (setq truncate-lines t) (use-local-map lookup-select-mode-map) (run-hooks 'lookup-select-mode-hook)) ;;; ;:: Interactive commands ;;; (defun lookup-select-next-line () "$BuBV$r%H%0%k$9$k!#(B" (interactive) (let ((dict (lookup-select-point-dictionary))) (lookup-select-set-selected (not (lookup-dictionary-selected-p dict))))) (defun lookup-select-do-select-all () "$BA4$F$N<-=q$rA*Br$9$k!#(B" (interactive) (save-excursion (lookup-select-goto-first) (while (not (eobp)) (lookup-select-set-selected t)))) (defun lookup-select-do-select-only () "$B%]%$%s%H9T$N<-=q$N$_$rA*Br$9$k!#(B" (interactive) (if (not (lookup-select-point-dictionary)) (error "No dictionary on current line") (save-excursion (lookup-select-goto-first) (while (not (eobp)) (lookup-select-set-selected nil))) (lookup-select-set-selected t t))) (defun lookup-select-mark-disable () "$B%]%$%s%H9T$N<-=q$KL58z2=$N%^!<%/$rIU$1$k!#(B" (interactive) (lookup-select-mark ?D t)) (defun lookup-select-do-execute () "$BL58z2=$rl9g!"$=$l$r;2>H$9$k!#(B" (interactive) (let* ((dict (lookup-select-point-dictionary)) (entries (lookup-vse-get-menu dict))) (if entries (let* ((module (lookup-session-module lookup-current-session)) (title (lookup-dictionary-title dict)) (query (lookup-make-query 'reference title))) (lookup-display-entries module query entries)) (error "This dictionary has no menu")))) (defun lookup-select-copyright () "$B<-=q$,%3%T!<%i%$%HI=<($KBP1~$7$F$$$k>l9g!"$=$l$r;2>H$9$k!#(B" (interactive) (let* ((dict (lookup-select-point-dictionary)) (entries (lookup-vse-get-copyright dict))) (if entries (let* ((module (lookup-session-module lookup-current-session)) (title (lookup-dictionary-title dict)) (query (lookup-make-query 'reference title))) (lookup-display-entries module query entries)) (error "This dictionary has no copyright")))) (defun lookup-select-search-pattern (pattern) "$BA*Br$5$l$?<-=q$+$i8!:w$r9T$J$&!#(B" (interactive (list (lookup-read-string "Look up" nil 'lookup-input-history))) (lookup-search-pattern (lookup-session-module lookup-last-session) pattern)) (defun lookup-select-text-search (string &optional force) "$B%]%$%s%H9T$N<-=q$+$iA4J88!:w$r9T$J$&!#(B" (interactive (list (let ((dictionary (lookup-select-point-dictionary))) (if (memq 'text (lookup-dictionary-methods dictionary)) (lookup-read-string "Look up" nil 'lookup-input-history) (error "This dictionary does not support text search"))) current-prefix-arg)) (let ((module (lookup-session-module lookup-current-session)) (dictionary (lookup-select-point-dictionary)) (query (lookup-make-query 'text string))) (message "searcing...") (lookup-display-entries module query (lookup-vse-search-query dictionary query)) (message "searcing...done"))) (defun lookup-select-update () "$B8=:_$N8!:w%b%8%e!<%k$r=i4|2=$7D>$9!#(B $B$?$@$7@_Dj%U%!%$%k$rJQ99$7$?>l9g$K$O!"JQ99$rH?1G$9$k$K$O(B \\[lookup-restart] $B$rMQ$$$kI,MW$,$"$k!#(B" (interactive) (let ((module (lookup-session-module lookup-current-session))) (message "Updating %s..." (lookup-module-name module)) (lookup-module-clear module) (lookup-module-init module) (lookup-select-dictionary module) (message "Updating %s...done" (lookup-module-name module)))) (defun lookup-select-help () "Select $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B" (interactive) (with-current-buffer (lookup-open-buffer (lookup-help-buffer)) (help-mode) (let ((inhibit-read-only t)) (erase-buffer) (insert lookup-select-mode-help)) (lookup-display-help (current-buffer)))) ;;; ;:: Internal functions ;;; (defun lookup-select-goto-first () (goto-char (point-min)) (forward-line 4)) (defun lookup-select-point-dictionary () (save-excursion (beginning-of-line) (forward-char 2) (if (looking-at "[^ ]+") (lookup-get-dictionary (match-string 0))))) (defun lookup-select-set-selected (value &optional dont-move) (let ((dict (lookup-select-point-dictionary))) (when dict (lookup-dictionary-set-selected dict value) (lookup-select-mark (if value ?* ? ) (not dont-move))))) (defun lookup-select-mark (mark &optional down-after) (save-excursion (let ((inhibit-read-only t)) (beginning-of-line) (delete-char 1) (insert-char mark 1))) (if down-after (forward-line))) (provide 'lookup-select) ;;; lookup-select.el ends here lookup-1.4.1/lisp/ndic.el0000644000076400007640000001633407401226713015511 0ustar kazuhikokazuhikoe;;; ndic.el --- Lookup by free dictionaries ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndic.el,v 1.1.1.1 2001/11/28 18:32:43 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (defconst ndic-version "1.0") ;;; ;:: Customizable variables ;;; (defgroup ndic nil "Lookup by free dictionaries." :group 'lookup-agents) (defcustom ndic-dictzip-program "dictzip" "*Program name of dictzip." :type 'string :group 'ndic) ;;; ;:: types ;;; ;; ndic agent: ;; ;; (ndic DIRECTORY) ;; ;; DIRECTORY - dictionary directory (defun ndic-agent-directory (agent) (expand-file-name (lookup-agent-location agent))) (put 'ndic ':arranges '(lookup-arrange-default-headings)) (put 'ndic ':adjusts '(lookup-adjust-goto-min)) ;; ndic dictionary: ;; ;; CODE - cons of TYPE and OBJ: ;; [SDIC] `sdic' and the sdic object ;; [dictd] `dictd' and the buffer of index file (*.index) ;; NAME - filename without directory and extension ;; ;; [property] ;; ndic-dict - [dictd] dictionary file name (i.e. *.dict[.dz]) (defun ndic-make-dictionary (agent type obj name) (lookup-new-dictionary agent (cons type obj) name)) (defun ndic-dictionary-type (dictionary) (car (lookup-dictionary-code dictionary))) (defun ndic-dictionary-obj (dictionary) (cdr (lookup-dictionary-code dictionary))) ;; ndic entry: ;; ;; CODE - [SDIC] entry returned by sdic-search ;; [dictd] cons of entry position (START . LENGTH) ;; HEADING - headword ;;; ;:: Interface functions ;;; (put 'ndic 'setup 'ndic-setup) (defun ndic-setup (agent) (mapcar (lambda (file) (let ((name (file-name-sans-extension (file-name-nondirectory file)))) (if (string-match "\\.sdic$" name) (setq name (substring name 0 (match-beginning 0)))) (if (string-match "\\.sdic\\(.\\(gz\\|bz2\\)\\)?$" file) (ndic-setup-sdic agent file name) (ndic-setup-dictd agent file name)))) (directory-files (ndic-agent-directory agent) t "\\.\\(sdic\\(\\.\\(gz\\|bz2\\)\\)?\\|index\\)$"))) (defun ndic-setup-sdic (agent file name) (require 'sdicf) (let ((dictionary (ndic-make-dictionary agent 'sdic (sdicf-open file) name))) (lookup-dictionary-set-default dictionary ':methods '(exact prefix suffix regexp text)) dictionary)) (defun ndic-setup-dictd (agent file name) (let* ((dict (concat (file-name-sans-extension file) ".dict")) (buffer (get-buffer-create (concat " *ndic " file "*"))) (dictionary (ndic-make-dictionary agent 'dictd buffer name))) (unless (file-exists-p dict) (setq dict (concat dict ".dz")) (unless (file-exists-p dict) (error "No .dict file for %s" dict))) (lookup-dictionary-put-property dictionary 'ndic-dict dict) (with-current-buffer buffer (insert-file-contents file) (goto-char (point-min)) (when (re-search-forward "^00-database-short\t\\([^\t]+\\)\t\\(.*\\)" nil t) (let* ((code (cons (match-string 1) (match-string 2))) (entry (lookup-make-entry dictionary code nil)) (title (ndic-dictionary-content dictionary entry))) (if (string-match "\n *\\(.*\\)\n" title) (setq title (match-string 1 title))) (lookup-dictionary-set-default dictionary ':title title)))) (lookup-dictionary-set-default dictionary ':methods '(exact prefix suffix substring regexp keyword)) dictionary)) (put 'ndic 'clear 'ndic-clear) (defun ndic-clear (agent) (lookup-foreach (lambda (dictionary) (let ((type (ndic-dictionary-type dictionary))) (cond ((eq type 'sdic) (sdicf-close (ndic-dictionary-obj dictionary))) ((eq type 'dictd) (kill-buffer (ndic-dictionary-obj dictionary)))))) (lookup-agent-dictionaries agent))) (put 'ndic 'search 'ndic-dictionary-search) (defun ndic-dictionary-search (dictionary query) (let ((type (ndic-dictionary-type dictionary))) (cond ((eq type 'sdic) (ndic-search-sdic dictionary query)) ((eq type 'dictd) (ndic-search-dictd dictionary query))))) (defun ndic-search-sdic (dictionary query) (mapcar (lambda (entry) (lookup-make-entry dictionary entry (sdicf-entry-headword entry))) (sdicf-search (ndic-dictionary-obj dictionary) (lookup-query-method query) (lookup-query-string query)))) (defun ndic-search-dictd (dictionary query) (let* ((method (lookup-query-method query)) (string (lookup-query-string query)) (regexp (regexp-quote string))) (setq regexp (cond ((eq method 'keyword) (concat "^[^\t]*\\<" regexp "\\>")) ((eq method 'prefix) (concat "^[^\t]*\\<" regexp)) ((eq method 'suffix) (concat "^[^\t]*" regexp "\\>")) ((eq method 'exact) (concat "^" regexp "\t")) ((eq method 'substring) (concat "^[^\t]*" regexp)) ((eq method 'regexp) string))) (let ((case-fold-search t) entries) (with-current-buffer (ndic-dictionary-obj dictionary) (goto-char (point-min)) (while (re-search-forward regexp nil t) (setq string (buffer-substring (progn (beginning-of-line) (point)) (1- (search-forward "\t")))) (if (looking-at "\\([^\t]+\\)\t\\(.*\\)") (setq entries (cons (lookup-make-entry dictionary (cons (match-string 1) (match-string 2)) string) entries)))) (nreverse entries))))) (put 'ndic 'content 'ndic-dictionary-content) (defun ndic-dictionary-content (dictionary entry) (let ((type (ndic-dictionary-type dictionary))) (cond ((eq type 'sdic) (ndic-content-sdic dictionary entry)) ((eq type 'dictd) (ndic-content-dictd dictionary entry))))) (defun ndic-content-sdic (dictionary entry) (setq entry (lookup-entry-code entry)) (format "%s\n\n %s\n" (sdicf-entry-headword entry) (sdicf-entry-text entry))) (defun ndic-content-dictd (dictionary entry) (let ((code (lookup-entry-code entry)) (dict (lookup-dictionary-get-property dictionary 'ndic-dict))) (with-temp-buffer (if (string-match "\\.dz$" dict) (call-process ndic-dictzip-program nil t nil "-cdk" "-S" (car code) "-E" (cdr code) dict) (let ((offset (ndic-b64-decode (car code))) (length (ndic-b64-decode (cdr code)))) (insert-file-contents dict nil offset (+ offset length)))) (buffer-string)))) ;;; ;:: Internal functions ;;; (defconst ndic-b64-table "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/") (defun ndic-b64-decode (code) (let ((n 0) (len (length code)) (value 0) (case-fold-search nil)) (while (< n len) (if (string-match (substring code n (1+ n)) ndic-b64-table) (setq value (+ (* value 64) (match-beginning 0)))) (setq n (1+ n))) value)) (provide 'ndic) ;;; ndic.el ends here lookup-1.4.1/lisp/ndeb.el0000644000076400007640000003105410005576676015512 0ustar kazuhikokazuhiko;;; ndeb.el --- Lookup eblook interface ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndeb.el,v 1.29 2004/01/28 00:09:34 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (defconst ndeb-version "1.2") ;;; ;:: Customizable variables ;;; (defgroup ndeb nil "Lookup eblook interface." :group 'lookup-agents) (defcustom ndeb-program-name "eblook" "*Program name of eblook." :type 'string :group 'ndeb) (defcustom ndeb-program-arguments "-e euc-jp" "*Arguments for eblook." :type 'string :group 'ndeb) (defcustom ndeb-prompt-string "eblook> " "*Prompt string of eblook." :type 'string :group 'ndeb) (defcustom ndeb-process-coding-system lookup-process-coding-system "*Coding system for eblook process." :type 'symbol :group 'ndeb) (defcustom ndeb-max-image-size 1048576 "*ndeb $B8!:w;~$KI=<($9$k2hA|$N:GBg%5%$%:(B ($B%P%$%H(B)$B!#(B $B%G%U%)%k%H$O(B 1MB$B!#(Bnil $B$r;XDj$9$k$H!"L5@)8B$K$J$k!#(B" :type 'integer :group 'ndeb) ;;; ;:: Internal varialbes ;;; (defvar ndeb-current-agent nil) (defvar ndeb-current-dictionary nil) (defvar ndeb-current-process nil) (defconst ndeb-method-table '((exact . "exact") (prefix . "word") (suffix . "endword"))) ;;; ;:: types ;;; ;; ndeb agent: ;; ;; (ndeb DIRECTORY :appendix APPENDIX) ;; ;; DIRECTORY - dictionary directory ;; APPENDIX - appendix directory ;; ;; [property] ;; ndeb-process - eblook process related with agent ;; ndeb-dict - last used dictionary ;; ndeb-method - last used value of search-method ;; ndeb-stop - last used value of stop-code (defun ndeb-agent-directory (agent) (let ((dir (lookup-agent-location agent))) (if dir (expand-file-name dir) (error "You should specify a dictionary directory")))) (defun ndeb-agent-appendix (agent) (let ((dir (lookup-agent-option agent ':appendix))) (if dir (expand-file-name dir)))) (defun ndeb-agent-coding (agent) (or (lookup-agent-option agent ':coding) ndeb-process-coding-system)) (require 'ndeb-binary) (put 'ndeb ':methods '(exact prefix suffix)) (put 'ndeb ':gaiji-regexp "]*\\)>") (put 'ndeb ':reference-pattern '("\\($B"*(B?\\(\\([^<]\\|]*>\\)+\\)\\)]*\\)>" 1 2 4)) (put 'ndeb ':ignore-regexp "\\(\\|\\)") (put 'ndeb ':headings '(lookup-arrange-gaijis)) (put 'ndeb ':arranges '(ndeb-arrange-xbm ndeb-arrange-bmp ndeb-arrange-jpeg ndeb-arrange-ignore ndeb-arrange-no-newline ndeb-arrange-prev-next lookup-arrange-references lookup-arrange-gaijis lookup-arrange-squeezed-references lookup-arrange-default-headings ndeb-arrange-fill-lines)) (put 'ndeb ':adjusts '(lookup-adjust-show-gaijis lookup-adjust-check-references lookup-adjust-goto-min)) ;; ndeb dictionary: ;; ;; CODE - same as NAME below ;; NAME - given by eblook `list' command ;; ;; [option] ;; :coding - process coding system ;; :stop-code - stop-code used by eblook (defun ndeb-new-dictionary (name title) (lookup-new-dictionary ndeb-current-agent name name title)) (defun ndeb-dictionary-coding (dictionary) (or (lookup-dictionary-option dictionary ':coding t) ndeb-process-coding-system)) (defun ndeb-dictionary-stopcode (dictionary) (lookup-dictionary-option dictionary ':stop-code t)) ;; ndeb entry: ;; ;; CODE - entry specific code (e.g. "2c00:340") by eblook `search' command ;; HEADING - given by eblook `search' command (defun ndeb-make-entry (code heading) (lookup-make-entry ndeb-current-dictionary code heading)) ;;; ;:: macros ;;; (put 'ndeb-with-agent 'lisp-indent-function 1) (defmacro ndeb-with-agent (agent &rest body) (` (let ((ndeb-current-agent (, agent)) (ndeb-current-process (ndeb-agent-process (, agent)))) (,@ body)))) (put 'ndeb-with-dictionary 'lisp-indent-function 1) (defmacro ndeb-with-dictionary (dictionary &rest body) (` (ndeb-with-agent (lookup-dictionary-agent (, dictionary)) (let ((ndeb-current-dictionary (, dictionary))) (unless (eq (, dictionary) (lookup-agent-get-property ndeb-current-agent 'ndeb-dict)) ;; $BI,MW$J$H$-$@$1<-=q$r(B select $B$9$k!#(B ;; $B30It%W%m%;%9$H$d$j$H$j$9$k$h$j$3$NJ}$,9bB.$@$m$&$7!"(B ;; $B%G%P%C%0$N$H$-%P%C%U%!$,$4$A$c$4$A$c$9$k$N$O$&$6$C$?$$!#(B (ndeb-process-require (concat "select " (lookup-dictionary-code (, dictionary)))) (lookup-agent-put-property ndeb-current-agent 'ndeb-dict (, dictionary)) ;; $B<-=qKh$KJ8;z%3!<%I$r@_Dj$9$k!#(B (let ((code (ndeb-dictionary-coding (, dictionary)))) (when code (set-process-coding-system ndeb-current-process code code)))) (,@ body))))) (defun ndeb-agent-process (agent) (let ((process (lookup-agent-get-property agent 'ndeb-process))) (unless (and process (eq (process-status process) 'run)) (if process (lookup-process-kill process)) (setq process (ndeb-process-open (ndeb-agent-directory agent) (ndeb-agent-appendix agent))) ;; $B:G=i$K<-=q0lMw$rF@$k$N$KJ8;z%3!<%I$N@_Dj$,I,MW!#(B (let ((coding (ndeb-agent-coding agent))) (when coding (set-process-coding-system process coding coding))) ;; $B%3%^%s%I$N" nil t) (let (start end) (replace-match "") (setq start (point)) (search-forward "" nil t) (replace-match "") (setq end (1+ (point))) (put-text-property start end 'read-only t)))) (defun ndeb-arrange-prev-next (entry) (goto-char (point-min)) (while (re-search-forward "\\(\\|\\)" nil t) (if (equal (match-string 0) "") (replace-match "\n($BA09`L\"M(B") (replace-match "($B\\|\\)" nil t) (replace-match ")")))) (defun ndeb-arrange-ignore (entry) (let* ((dictionary (lookup-entry-dictionary entry)) (regexp (lookup-dictionary-option dictionary ':ignore-regexp t))) (while (re-search-forward regexp nil t) (replace-match "")))) (defun ndeb-arrange-fill-lines (entry) (let ((inhibit-read-only nil) (buffer-read-only nil) (fill-column (if (integerp lookup-fill-column) lookup-fill-column (round (* (window-width) lookup-fill-column)))) start) (while (not (eobp)) (setq start (point)) (end-of-line) (when (> (current-column) fill-column) ;; Emacs 21.3: fill-region may or may not move the point. (save-restriction (narrow-to-region start (point)) (condition-case nil (fill-region start (point-max)) (error nil)) (goto-char (point-max)))) (forward-line)))) ;;; ;:: eblook process ;;; (defun ndeb-process-open (directory appendix) (let* ((args (cons "-q" (cons ndeb-program-arguments (cons directory (if appendix (list appendix)))))) (buffer (lookup-open-process-buffer (concat " *ndeb+" directory "*"))) (process (apply 'start-process "ndeb" buffer ndeb-program-name args))) (process-kill-without-query process) (accept-process-output process) (with-current-buffer (or buffer (lookup-temp-buffer)) (save-excursion (goto-char (point-min)) (if (search-forward "Warning: invalid book directory" nil t) (error "Invalid dictionary directory: %s" directory)) (goto-char (point-min)) (if (search-forward "Warning: invalid appendix directory" nil t) (error "Invalid appendix directory: %s" appendix))) (if (not (eq buffer (current-buffer))) (kill-buffer (current-buffer)))) process)) (put 'ndeb-process-require 'lisp-indent-function 1) (defun ndeb-process-require (command &optional filter) (lookup-process-require ndeb-current-process (concat command "\n") (concat "^" ndeb-prompt-string) filter)) (provide 'ndeb) ;;; ndeb.el ends here lookup-1.4.1/lisp/ndeb-binary.el0000644000076400007640000004712410555011407016763 0ustar kazuhikokazuhiko;;; ndeb-binary.el --- binary data support for ndeb agent ;; Copyright (C) 1999-2002 Lookup Development Team ;; Author: Satomi I. ;; Version: $Id: ndeb-binary.el,v 1.3 2004/01/28 00:09:34 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: ;;(require 'cl) ;;(load "cl-seq") ;;; ;;; Customizable variables ;;; (defgroup ndeb-binary nil "Binary data support for ndeb agent." :group 'ndeb) (defcustom ndeb-binary-programs nil "A list of programs to play binary data on an ndeb entry. Each element is like a property list of the following form: (TYPE PROGRAM [KEY VALUE ...]) Where TYPE is a symbol that represents the binary type. At this time `xbm', `bmp' and `jpeg' are recognized. PROGRAM is eigher a program name or a list of command-line parametrs to play a binary of this TYPE. The rest, pairs of KEY and VALUE, are optional properties to control how to invoke PROGRAM. Valid properties are: :directory-separator STRING Convert directory separators (/) in the binary filename to STRING when constructing the actual command line. :disable-sentinel BOOLEAN If non-nil, do not use the process sentinel to delete the temporary file used by PROGRAM." :type '(repeat (list (choice :tag "Type" (const xbm) (const bmp) (const jpeg) symbol) (cons :format "%v" (string :tag "Program") (repeat :tag "Options" string)) (set :format "%v" :inline t (list :format "%v" :inline t (const :format "" :inline t (:directory-separator)) (string :tag "Directory seperator" :value "/")) (list :format "%v" :inline t (const :format "" :inline t (:disable-sentinel)) (boolean :tag "Disable process sentinel"))))) :get (lambda (symbol) (mapcar (lambda (elem) (let ((program (nth 1 elem))) (append (list (car elem) (if (stringp program) (list program) program)) (cdr (cdr elem))))) (symbol-value symbol))) :group 'ndeb-binary) (defcustom ndeb-binary-extensions '((xbm . "xbm") (bmp . "bmp") (tiff . "tif") (jpeg . "jpg")) "Alist of binary type vs. filename extension used to create a temporary file. Each element looks like: (TYPE . EXTENSION) Where TYPE is a symbol that represents the binary type. EXTENSION is a filename extension without the leading dot." :type '(repeat (cons (symbol :tag "Type") (choice :tag "Extension" (const nil) string))) :group 'ndeb-binary) (defcustom ndeb-binary-temporary-directory temporary-file-directory "Path to the directory where temporary binary files will be created." :type 'directory :group 'ndeb-binary) (defcustom ndeb-image-default-caption "$B2hA|(B" "Default string to be used when the caption of an image is empty." :type 'string :group 'ndeb-binary) (defcustom ndeb-image-caption-format "$B!R(B%s$B!S(B" "Format string for the caption of an image. This string is passed to `format' function with the original text." :type '(choice (const nil) string) :group 'ndeb-binary) (defface ndeb-image-caption-face '((((class color) (background light)) (:foreground "Gray50")) (((class color) (background dark)) (:foreground "Gray75"))) "Face used to highlight the caption of an image." :group 'ndeb-binary :group 'lookup-faces) (defface ndeb-image-reference-face '((((class color) (background light)) (:foreground "Green4")) (((class color) (background dark)) (:foreground "GreenYellow"))) "Face used to highlight the caption of an image link that invokes the external program." :group 'ndeb-binary :group 'lookup-faces) (defface ndeb-image-mono-face '((t (:foreground "Black" :background "White"))) "Face applied to the monochrome images." :group 'ndeb-binary :group 'lookup-faces) ;;; ;;; Internal variables ;;; (defvar ndeb-binary-link-map nil "Keymap for binary links.") (defvar ndeb-binary-processes nil "A list of external processes started by executing a link. Each element looks like: (PROCESS-ID DICTIONARY-ID ENTRY-POSITION)") (put 'ndeb :xbm-regexp '("" . "]+\\)>")) (put 'ndeb :bmp-regexp '("" . "]+\\)>")) (put 'ndeb :jpeg-regexp '("" . "]+\\)>")) (defconst ndeb-binary-extract-commands ;; or should be set as dictionary options...?? '((xbm . "xbm %s %s %s") (bmp . "bmp %s %%s") (tiff . "bmp2tiff %s %%s") (jpeg . "jpeg %s %%s")) "Alist of binary type vs. format string of an eblook command to extract the target entry.") (defvar ndeb-binary-glyph-compose-function nil) (defvar ndeb-binary-glyph-insert-function nil) ;;; ;;; Internal functions ;;; (defvar ndeb-binary-temporary-subdirectory nil) (defun ndeb-binary-temporary-subdirectory-initialize () "Initialize temporary subdirectory for ndeb-binary." (setq ndeb-binary-temporary-subdirectory (make-temp-name (ndeb-binary-expand-file-name "nb" ndeb-binary-temporary-directory))) (make-directory ndeb-binary-temporary-subdirectory) ;; error if already exists (set-file-modes ndeb-binary-temporary-subdirectory 448) ;; octal 0700 (add-hook 'kill-emacs-hook 'ndeb-binary-temporary-subdirectory-cleanup)) (defun ndeb-binary-temporary-subdirectory-cleanup () "Cleanup temporary subdirectory for ndeb-binary." (remove-hook 'kill-emacs-hook 'ndeb-binary-temporary-subdirectory-cleanup) (if (and ndeb-binary-temporary-subdirectory (file-directory-p ndeb-binary-temporary-subdirectory)) (condition-case nil (let ((files (directory-files ndeb-binary-temporary-subdirectory 'full "[^.]" 'nosort))) (while files (delete-file (car files)) (setq files (cdr files))) (delete-directory ndeb-binary-temporary-subdirectory)) (error nil))) (setq ndeb-binary-temporary-subdirectory nil)) (defun ndeb-binary-initialize () "Initialize ndeb-binary module." (ndeb-binary-temporary-subdirectory-initialize) (unless ndeb-binary-link-map (setq ndeb-binary-link-map (copy-keymap lookup-content-mode-map)) (define-key ndeb-binary-link-map "\C-m" 'ndeb-binary-follow-link) (define-key ndeb-binary-link-map "e" 'ndeb-binary-extract-link) (if (featurep 'xemacs) (define-key ndeb-binary-link-map 'button2 'ndeb-binary-mouse-follow) (define-key ndeb-binary-link-map [mouse-2] 'ndeb-binary-mouse-follow))) (when window-system (cond ((lookup-inline-image-p 'xbm) (setq ndeb-binary-glyph-compose-function 'lookup-glyph-compose ndeb-binary-glyph-insert-function 'lookup-glyph-insert)) ((featurep 'bitmap) (setq ndeb-binary-glyph-compose-function 'lookup-bitmap-compose ndeb-binary-glyph-insert-function 'insert))))) (defun ndeb-binary-set-link (start end face type target &optional params) "Create a link between the range from START to END to play the binary on the current dictionary. FACE is a face for the link or `lookup-reference-face' if nil. TYPE is a symbol that represents the binary type. TARGET is a string that specifies the binary location. PARAMS is a list of additional parameters used to format the eblook command defined in `ndeb-binary-extract-commands'." (let ((binary (list (cons 'type type) (cons 'target target)))) (if params (setq binary (append binary (list (append (list 'parameters) params))))) (add-text-properties start end (list (if (< emacs-major-version 21) 'local-map 'keymap) ndeb-binary-link-map 'face (or face 'lookup-reference-face) 'mouse-face 'highlight 'help-echo (format "[%s] mouse-2: play, e: extract" type) 'lookup-tab-stop t 'ndeb-binary binary)))) (defun ndeb-binary-get-link (pos) "Return the binary link at POS." (get-text-property pos 'ndeb-binary)) (defun ndeb-binary-expand-file-name (name &optional dir) (let ((directory-sep-char ?/)) (expand-file-name name dir))) (defun ndeb-binary-bind-temporary-file (dictionary target type) (let* ((files (lookup-dictionary-get-property dictionary 'binary-files)) (file (assq target files)) name lock) (if file (setq files (delq file files) name (nth 1 file) lock (1+ (nth 2 file))) (let* ((suffix (lookup-assq-ref ndeb-binary-extensions type)) (rest 10)) (setq name (catch 'done (while (< 0 rest) (let ((name (make-temp-name (ndeb-binary-expand-file-name "nb" ndeb-binary-temporary-subdirectory)))) (when suffix (setq name (concat name "." suffix))) (unless (file-exists-p name) (throw 'done name))) (setq rest (1- rest)))) lock 1) (unless name (error "Unable to create unique filename")))) (lookup-dictionary-put-property dictionary 'binary-files (append files (list (list target name lock)))) name)) (defun ndeb-binary-unbind-temporary-file (dictionary target) (let* ((files (lookup-dictionary-get-property dictionary 'binary-files)) (file (assq target files))) (when file (let ((name (nth 1 file)) (lock (1- (nth 2 file)))) (setq files (delq file files)) (if (< lock 1) (condition-case nil (progn (delete-file name) (message "Deleted %s" name)) (error nil)) (setq files (append files (list (list target name lock))))) (lookup-dictionary-put-property dictionary 'binary-files files))))) (defun ndeb-binary-extract (dictionary type target params file) "Extract the binary into a file named FILE. DICTIONARY is a dictionary that contains the target binary. TYPE is a symbol that represents the binary type. TARGET is a string that specifies the binary location. PARAMS is a list of additional parameters used to format the eblook command or nil if not needed. See `ndeb-binary-extract-commands' for the available binary types and corresponding eblook commands." (let ((case-fold-search nil) (command (apply 'format (lookup-assq-ref ndeb-binary-extract-commands type) (append (list target) params)))) (ndeb-with-dictionary dictionary (save-match-data ;; if the command still contains "%s", eblook will create the ;; output file. (if (string-match "%s" command) (let (ret) (setq command (replace-match file t t command)) (message command) (setq ret (ndeb-process-require command)) (unless (string-match "^OK" ret) (when (string-match "[ \t\r\n]+$" ret) (setq ret (replace-match "" t t ret))) (error ret))) ;; otherwise write the eblook output to a temporary file. ;; TODO: how eblook returns an error in this case? (with-temp-buffer (message command) (buffer-disable-undo) (set-buffer-file-coding-system 'raw-text) (insert (ndeb-process-require command)) (let ((out (with-output-to-string (write-file file)))) (lookup-proceeding-message out)))))))) ;;; ;;; Functions for a link ;;; (defun ndeb-binary-process-sentinel (process event) (let ((pi (assq (process-id process) ndeb-binary-processes))) (ndeb-binary-unbind-temporary-file (lookup-get-dictionary (nth 1 pi)) (nth 2 pi)) (setq ndeb-binary-processes (delq pi ndeb-binary-processes)))) (defun ndeb-binary-follow-link () "Play the binary at point." (interactive) (let ((case-fold-search nil) (lookup-proceeding-message "Playing binary") (dictionary (lookup-entry-dictionary lookup-content-current-entry)) link type target file) (lookup-proceeding-message nil) (setq link (ndeb-binary-get-link (point)) type (lookup-assq-ref link 'type) target (lookup-assq-ref link 'target) file (ndeb-binary-bind-temporary-file dictionary target type)) (if (file-exists-p file) (lookup-proceeding-message (concat "Reusing " file)) (ndeb-binary-extract dictionary type target (lookup-assq-ref link 'parameters) file)) (condition-case err (let* ((program (assq type ndeb-binary-programs)) (params (nth 1 program)) (sep (plist-get program :directory-separator)) process) (if (stringp params) (setq params (list params))) (when sep (save-match-data (while (string-match "/" file) (setq file (replace-match sep t t file))))) (setq params (append params (list file))) (message (mapconcat (lambda (x) x) params " ")) (setq process (or (apply 'start-process "ndeb-binary" (get-buffer "*Messages*") (car params) (cdr params)) (error "Invalid process object"))) (sit-for 3) (unless (plist-get program :disable-sentinel) (setq ndeb-binary-processes (append ndeb-binary-processes (list (list (process-id process) (lookup-dictionary-id dictionary) target)))) (set-process-sentinel process 'ndeb-binary-process-sentinel)) (lookup-proceeding-message t)) (ndeb-binary-unbind-temporary-file dictionary target) (error (message "%s" err))))) (defun ndeb-binary-mouse-follow (event) "Play the binary you click on." (interactive "e") (mouse-set-point event) (ndeb-binary-follow-link)) (defun ndeb-binary-extract-link (link file &optional confirm) "Save the binary at LINK into a file FILE. If the optional argument CONFIRM is non-nil, prompt before overwriting an existing file. Interactively, this function obtains the link at point, prompts for FILE and confirm overwriting if necessary." (interactive (let ((ref (or (ndeb-binary-get-link (point)) (error "No binary at point")))) (list ref (read-file-name (format "Save %s into file: " (lookup-assq-ref ref 'type))) t))) (setq file (expand-file-name file)) (and confirm (file-exists-p file) (or (y-or-n-p (format "File %s exists; overwrite? " file)) (error "Canceled"))) (ndeb-binary-extract (lookup-entry-dictionary lookup-content-current-entry) (lookup-assq-ref link 'type) (lookup-assq-ref link 'target) (lookup-assq-ref link 'parameters) file)) ;;; ;;; Functions for constructing the content buffer ;;; (defun ndeb-binary-format-image-caption (start end type target &rest params) "Format the caption of an image." (let (caption) (goto-char start) (if (= start end) (setq caption ndeb-image-default-caption) (setq caption (buffer-substring start end)) (delete-region start end)) (insert (if ndeb-image-caption-format (format ndeb-image-caption-format caption) caption)) (if (assq type ndeb-binary-programs) (ndeb-binary-set-link start (point) 'ndeb-image-reference-face type target params) (put-text-property start (point) 'face 'ndeb-image-caption-face)))) (defun ndeb-binary-insert-mono-image (dictionary target width height) "Insert an inline monochrome image." (when ndeb-binary-glyph-compose-function (let ((command (format "xbm %s %s %s" target width height)) xbm glyph start) (lookup-proceeding-message command) (setq xbm (ndeb-with-dictionary dictionary (ndeb-process-require command))) (condition-case nil (setq glyph (funcall ndeb-binary-glyph-compose-function xbm)) (if (string-match "[ \t\r\n]+$" xbm) (setq xbm (replace-match "" t t xbm))) (error xbm)) (insert ?\n) (setq start (point)) (funcall ndeb-binary-glyph-insert-function glyph) (if (featurep 'xemacs) (set-glyph-property glyph 'face 'ndeb-image-mono-face) (if (fboundp 'line-beginning-position) ;; just for safe. (save-excursion (while (<= start (point)) (put-text-property (line-beginning-position) (line-end-position) 'face 'ndeb-image-mono-face) (forward-line -1))))) (unless (= (following-char) ?\n) (insert ?\n))))) (defun ndeb-binary-insert-color-image (dictionary type target) "Insert an inline color image of type TYPE." (when (lookup-inline-image-p type) (let ((file (make-temp-name (ndeb-binary-expand-file-name "nb" ndeb-binary-temporary-subdirectory)))) (ndeb-binary-extract dictionary type target nil file) (insert ?\n) (lookup-img-file-insert file type) (unless (= (following-char) ?\n) (insert ?\n)) (condition-case nil (delete-file file) (error nil)) t))) ;;; ;;; Arrange functions ;;; (defun ndeb-arrange-xbm (entry) "Arrange monochrome images on an ndeb entry." (let* ((dictionary (lookup-entry-dictionary entry)) (regexp (lookup-dictionary-option dictionary :xbm-regexp t))) (while (re-search-forward (car regexp) nil t) (let ((width (match-string 1)) (height (match-string 2)) (start (match-beginning 0))) (replace-match "" t t) (condition-case err (let (end target) (re-search-forward (cdr regexp)) (setq end (match-beginning 0) target (match-string 1)) (replace-match "" t t) (ndeb-binary-format-image-caption start end 'xbm target width height) (when lookup-inline-image (ndeb-binary-insert-mono-image dictionary target width height))) (error (message "%s" err))))))) (defun ndeb-arrange-bmp (entry) "Arrange bmp images on an ndeb entry." (let* ((dictionary (lookup-entry-dictionary entry)) (regexp (lookup-dictionary-option dictionary :bmp-regexp t))) (while (re-search-forward (car regexp) nil t) (let ((start (match-beginning 0))) (replace-match "" t t) (condition-case err (let (end target) (re-search-forward (cdr regexp)) (setq end (match-beginning 0) target (match-string 1)) (replace-match "" t t) (ndeb-binary-format-image-caption start end 'bmp target) (when lookup-inline-image ;; use tiff if available to support RLE. (or (ndeb-binary-insert-color-image dictionary 'tiff target) (ndeb-binary-insert-color-image dictionary 'bmp target)))) (error (message "%s" err))))))) (defun ndeb-arrange-jpeg (entry) "Arrange jpeg images on an ndeb entry." (let* ((dictionary (lookup-entry-dictionary entry)) (regexp (lookup-dictionary-option dictionary :jpeg-regexp t))) (while (re-search-forward (car regexp) nil t) (let ((start (match-beginning 0))) (replace-match "" t t) (condition-case err (let (end target) (re-search-forward (cdr regexp)) (setq end (match-beginning 0) target (match-string 1)) (replace-match "" t t) (ndeb-binary-format-image-caption start end 'jpeg target) (when lookup-inline-image (ndeb-binary-insert-color-image dictionary 'jpeg target))) (error (message "%s" err))))))) ;;; ;;; Setup ;;; (eval-after-load "lookup-content" '(ndeb-binary-initialize)) ;;; ;;; Cleanup ;;; (defun ndeb-binary-clear-dictionary (dictionary) "Clear temporary files for DICTIONARY." (lookup-foreach (lambda (file) (condition-case nil (let ((name (nth 1 file))) (when (file-exists-p name) (let ((lookup-proceeding-message (format "Deleting %s" name))) (lookup-proceeding-message nil) (delete-file name) (lookup-proceeding-message t)))) (error nil))) (lookup-dictionary-get-property dictionary 'binary-files)) (lookup-dictionary-put-property dictionary 'binary-files nil)) (defun ndeb-binary-clear (agent) "Clear temporary files used by ndeb-binary." (let ((dictionaries (append (lookup-agent-dictionaries agent) nil))) (lookup-foreach 'ndeb-binary-clear-dictionary dictionaries))) (provide 'ndeb-binary) lookup-1.4.1/lisp/ndtp.el0000644000076400007640000002403507547201036015540 0ustar kazuhikokazuhiko;;; ndtp.el --- Lookup NDTP client ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndtp.el,v 1.2 2002/10/04 02:51:10 yamagata Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (defconst ndtp-version "1.0") ;;; ;:: Internal variables ;;; (defvar ndtp-current-agent nil) (defvar ndtp-current-dictionary nil) (defvar ndtp-current-process nil) (defconst ndtp-process-coding-system (if (featurep 'evi-mule) (evi-coding-system 'euc-jp))) (put 'ndtp ':methods '(exact prefix suffix)) (put 'ndtp ':gaiji-regexp "]*\\)>") (put 'ndtp ':reference-pattern '("\\($B"*(B\\(\\([^<\n]\\|]*>\\)+\\)\\)?<\\([0-9a-f:]+\\)>" (or (match-string 1) "(->link)") (or (match-string 2) (match-string 4)) 4)) (put 'ndtp ':headings '(lookup-arrange-gaijis)) (put 'ndtp ':arranges '(lookup-arrange-references lookup-arrange-gaijis lookup-arrange-squeezed-references lookup-arrange-default-headings lookup-arrange-fill-lines)) (put 'ndtp ':adjusts '(lookup-adjust-show-gaijis lookup-adjust-check-references lookup-adjust-goto-min)) ;;; ;:: types ;;; ;; ndtp agent: ;; ;; (ndtp SERVER) ;; ;; SERVER - host name of NDTP server ;; ;; [option] ;; :service - same as SERVICE above ;; :port - same as PORT above ;; :account - same as `ndtp-account-name' ;; ;; [property] ;; ndtp-process - NDTP connection related with agent ;; ndtp-dict - last used dictionary (defalias 'ndtp-agent-server 'lookup-agent-location) (defun ndtp-agent-service (agent) (or (lookup-agent-option agent ':port) (lookup-agent-option agent ':service) "ndtp")) (defun ndtp-agent-alternates (agent) (lookup-agent-option agent ':alternates)) (defun ndtp-agent-account (agent) (or (lookup-agent-option agent ':account) (concat (user-login-name) "@" (system-name)))) (defun ndtp-agent-coding (agent) (or (lookup-agent-option agent ':coding) ndtp-process-coding-system)) ;; ndtp dictionary: ;; ;; CODE - same as NAME below ;; NAME - given by server `t' command ;; ;; [option] ;; :coding - same as `ndtp-process-coding-system' ;; ;; [property] ;; ndtp-gaiji-cache - cache buffer for gaiji datas or `disable' if no support (defun ndtp-make-dictionary (name title) (lookup-new-dictionary ndtp-current-agent name name title)) (defun ndtp-dictionary-coding (dictionary) (or (lookup-dictionary-option dictionary ':coding t) ndtp-process-coding-system)) ;; ndtp entry: ;; ;; CODE - entry specific code (e.g. "2c00:340") by server `Px' command ;; HEADING - given by server `Px' command (defun ndtp-make-entry (code heading) (lookup-make-entry ndtp-current-dictionary code heading)) ;;; ;:: macros ;;; (put 'ndtp-with-agent 'lisp-indent-function 1) (defmacro ndtp-with-agent (agent &rest body) (` (let ((ndtp-current-agent (, agent)) (ndtp-current-process (ndtp-agent-process (, agent)))) (,@ body)))) (put 'ndtp-with-dictionary 'lisp-indent-function 1) (defmacro ndtp-with-dictionary (dictionary &rest body) (` (ndtp-with-agent (lookup-dictionary-agent (, dictionary)) (let ((ndtp-current-dictionary (, dictionary))) (unless (eq (, dictionary) (lookup-agent-get-property ndtp-current-agent 'ndtp-dict)) ;; $BI,MW$J$H$-$@$1<-=q$r(B select $B$9$k!#(B ;; $B30It%W%m%;%9$H$d$j$H$j$9$k$h$j$3$NJ}$,9bB.$@$m$&$7!"(B ;; $B%G%P%C%0$N$H$-%P%C%U%!$,$4$A$c$4$A$c$9$k$N$O$&$6$C$?$$!#(B (ndtp-require-select (, dictionary)) (lookup-agent-put-property ndtp-current-agent 'ndtp-dict (, dictionary)) ;; $B<-=qKh$KJ8;z%3!<%I$r@_Dj$9$k!#(B (let ((code (ndtp-dictionary-coding (, dictionary)))) (when code (set-process-coding-system ndtp-current-process code code)))) (,@ body))))) (defun ndtp-agent-process (agent) (let ((process (lookup-agent-get-property agent 'ndtp-process))) (unless (and process (eq (process-status process) 'open)) (let ((servers (cons (ndtp-agent-server agent) (ndtp-agent-alternates agent))) (service (ndtp-agent-service agent))) (if process (lookup-process-kill process)) (while servers (condition-case error (progn (setq process (ndtp-process-open (car servers) service)) (setq servers nil)) (error (setq servers (cdr servers)) (if (not servers) (signal (car error) (cdr error))))))) ;; $B:G=i$K<-=q0lMw$rF@$k$N$KJ8;z%3!<%I$N@_Dj$,I,MW!#(B (let ((coding (ndtp-agent-coding agent))) (when coding (set-process-coding-system process coding coding))) ;; $B%5!<%P$X$N@\B3Kh$K9T$J$&I,MW$N$"$k=hM}!#(B (let ((ndtp-current-process process)) (ndtp-process-require (concat "A" (ndtp-agent-account agent)) "\n")) (lookup-foreach (lambda (dictionary) (lookup-dictionary-put-property dictionary 'ndtp-gaiji-enable nil)) (lookup-agent-dictionaries agent)) (lookup-agent-put-property agent 'ndtp-process process) (lookup-agent-put-property agent 'ndtp-dict nil)) process)) (defun ndtp-agent-kill-process (agent) (let ((process (lookup-agent-get-property agent 'ndtp-process))) (when process (if (eq (process-status process) 'open) (process-send-string process "Q\n")) (lookup-process-kill process) (lookup-agent-put-property agent 'ndtp-process nil)))) ;;; ;:: Interface functions ;;; (defconst ndtp-dictionary-regexp (eval-when-compile (let ((_ "[ \t]+") (num "[0-9]+") (title ".+") (name "[^ \t\n]+")) (concat "^ *" num _ "\\(" title "\\)" _ "\\(" name "\\)" _ num _ num _ num "[ \t]*$")))) (put 'ndtp 'setup 'ndtp-setup) (defun ndtp-setup (agent) (ndtp-with-agent agent (ndtp-process-require "t" "^$\\*\n" (lambda (process) (let (name title dicts) (while (re-search-forward ndtp-dictionary-regexp nil t) (setq title (match-string 1) name (match-string 2)) (setq dicts (cons (ndtp-make-dictionary name title) dicts))) (nreverse dicts)))))) (put 'ndtp 'clear 'ndtp-clear) (defun ndtp-clear (agent) (ndtp-agent-kill-process agent)) (put 'ndtp 'search 'ndtp-dictionary-search) (defun ndtp-dictionary-search (dictionary query) (let ((method (lookup-query-method query)) (string (lookup-query-string query))) ;; build the search command (setq string (if (and (featurep 'mule) (memq 'japanese-jisx0208 (find-charset-string string))) (cond ((eq method 'prefix) (concat "Pk" string "*")) ((eq method 'suffix) (concat "PK" (lookup-reverse-string string) "*")) (t (concat "Pk" string))) (cond ((eq method 'prefix) (concat "Pa" string "*")) ((eq method 'suffix) (concat "PA" (lookup-reverse-string string) "*")) (t (concat "Pa" string))))) ;; search the pattern (ndtp-with-dictionary dictionary (ndtp-process-require string "^$[$N&<]\n" (lambda (process) (let (code heading last-code last-heading entries) (while (re-search-forward "^[^$].*" nil t) (if (not heading) (setq heading (match-string 0)) (setq code (match-string 0)) ;; $BF1$8%(%s%H%j$,O"B3$7$F$$$J$$$+%A%'%C%/$9$k!#(B ;; $B$3$l$,$1$C$3$&$"$k$s$@!&!&(B (when (or (not (string= code last-code)) (not (string= heading last-heading))) (setq entries (cons (ndtp-make-entry code heading) entries)) (setq last-code code last-heading heading)) (setq heading nil))) (nreverse entries))))))) (put 'ndtp 'content 'ndtp-dictionary-content) (defun ndtp-dictionary-content (dictionary entry) (ndtp-with-dictionary dictionary (let ((command (concat "S" (lookup-entry-code entry)))) (substring (ndtp-process-require command "^$$\n") 3)))) (put 'ndtp 'gaiji 'ndtp-dictionary-gaiji) (defun ndtp-dictionary-gaiji (dictionary code) (let ((buffer (lookup-dictionary-get-property dictionary 'ndtp-gaiji-cache))) (when (bufferp buffer) (with-current-buffer buffer (goto-char (point-min)) (if (re-search-forward (format "^$=%s$" code) nil t) (buffer-substring (point) (or (search-forward "$=" nil t) (point-max)))))))) ;;; ;:: Internal functions ;;; (defun ndtp-require-select (dictionary) (ndtp-process-require (concat "L" (lookup-dictionary-code dictionary)) "\n") (and lookup-enable-gaiji (lookup-gaiji-glyph-possible-p) (ndtp-process-require "XL16" "^$.\n") (let ((buffer (lookup-dictionary-get-property dictionary 'ndtp-gaiji-cache))) (unless buffer (if (not (string-match "16" (ndtp-process-require "XI" "^$[$N?<]\n"))) (setq buffer 'disable) (setq buffer (generate-new-buffer (format " *ndtp gaiji table for %s*" (lookup-dictionary-id dictionary)))) (ndtp-process-require "XL16" "^$.\n") (with-current-buffer buffer (insert (ndtp-process-require "XB" "^$[<$]\n"))) (if (eq 0 (buffer-size buffer)) (setq buffer 'disable))) (lookup-dictionary-put-property dictionary 'ndtp-gaiji-cache buffer))))) ;;; ;:: ndtp process ;;; (defun ndtp-process-open (server service) (lookup-proceeding-message (format "connecting to %s..." server)) (let* ((buffer (lookup-open-process-buffer (concat " *ndtp+" server "*"))) (process (open-network-stream "ndtp" buffer server service))) (process-kill-without-query process) process)) (put 'ndtp-process-require 'lisp-indent-function 2) (defun ndtp-process-require (command separator &optional filter) (lookup-process-require ndtp-current-process (concat command "\n") separator filter)) (provide 'ndtp) ;;; ndtp.el ends here lookup-1.4.1/lisp/ndict.el0000644000076400007640000001752707401226704015702 0ustar kazuhikokazuhiko;;; ndict.el --- Lookup DICT client ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndict.el,v 1.1.1.1 2001/11/28 18:32:36 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (defconst ndict-version "1.0") ;;; ;:: Internal variables ;;; (defvar ndict-current-agent nil) (defvar ndict-current-dictionary nil) (defvar ndict-current-process nil) (defvar ndict-match-exact nil) (defconst ndict-system-info-alist '(;; dictd-1.4.x (dictd (methods . ((exact . "exact") (prefix . "prefix") (suffix . "suffix") (substring . "substring") (regexp . "re")))) ;; minimam feature defined in RFC2229 (t (methods . ((exact . "exact") (prefix . "prefix")))))) (defconst ndict-process-coding-system (if (featurep 'evi-mule) (evi-coding-system 'euc-jp-dos))) ;;; ;:: types ;;; ;; ndict agent: ;; ;; (ndict SERVER) ;; ;; SERVER - host name of DICT server ;; ;; [option] ;; :service - same as SERVICE above ;; :port - same as PORT above ;; :coding - same as `ndict-process-coding-system' ;; :auth - cons of username and authentication-string ;; :method-table - table to transfer a search method from Lookup internal ;; to DICT server defined ;; ;; [property] ;; ndict-process - DICT connection related with agent (defalias 'ndict-agent-server 'lookup-agent-location) (defun ndict-agent-service (agent) (or (lookup-agent-option agent ':port) (lookup-agent-option agent ':service) "dict")) (defun ndict-agent-coding (agent) (or (lookup-agent-option agent ':coding) ndict-process-coding-system)) (defun ndict-agent-auth (agent) (lookup-agent-option agent ':auth)) (defun ndict-agent-method-table (agent) (lookup-agent-option agent ':method-table)) (put 'ndict ':arranges '(lookup-arrange-default-headings)) (put 'ndict ':adjusts '(lookup-adjust-goto-min)) ;; ndict dictionary: ;; ;; CODE - same as NAME below ;; NAME - given by server `SHOW DB' command ;; TITLE - given by server `SHOW DB' command (defun ndict-make-dictionary (name title) (lookup-new-dictionary ndict-current-agent name name title)) ;; ndict entry: ;; ;; CODE - returned value of `MATCH' command ;; HEADING - given by server `MATCH' command (defsubst ndict-make-entry (code heading) (lookup-make-entry ndict-current-dictionary code heading)) ;;; ;:: macros ;;; (put 'ndict-with-agent 'lisp-indent-function 1) (defmacro ndict-with-agent (agent &rest body) (` (let ((ndict-current-agent (, agent)) (ndict-current-process (ndict-agent-process (, agent)))) (,@ body)))) (put 'ndict-with-dictionary 'lisp-indent-function 1) (defmacro ndict-with-dictionary (dictionary &rest body) (` (ndict-with-agent (lookup-dictionary-agent (, dictionary)) (let ((ndict-current-dictionary (, dictionary))) (,@ body))))) (defun ndict-agent-process (agent) (let ((process (lookup-agent-get-property agent 'ndict-process))) (unless (and process (eq (process-status process) 'open)) (if process (lookup-process-kill process)) (setq process (ndict-process-open (ndict-agent-server agent) (ndict-agent-service agent))) ;; initial setup (when (featurep 'evi-mule) (let ((coding (ndict-agent-coding agent))) (set-process-coding-system process coding coding))) (let ((ndict-current-process process) (auth (ndict-agent-auth agent))) (ndict-process-require (concat "CLIENT ndict " ndict-version)) (when auth (ndict-process-require (concat "AUTH" (car auth) (cdr auth))))) (lookup-agent-put-property agent 'ndict-process process)) process)) (defun ndict-agent-kill-process (agent) (let ((process (lookup-agent-get-property agent 'ndict-process))) (when process (if (eq (process-status process) 'open) (process-send-string process "QUIT\n")) (lookup-process-kill process)))) ;;; ;:: Interface functions ;;; (put 'ndict 'setup 'ndict-setup) (defun ndict-setup (agent) (ndict-with-agent agent ;; get server information (let* ((server (ndict-process-require "SHOW SERVER" (lambda (process) (forward-line) (buffer-substring (point) (progn (end-of-line) (point)))))) (system (if (string-match "^dictd " server) 'dictd t)) (table (lookup-assq-ref ndict-system-info-alist system))) ;; set methods and method-table (let ((methods (lookup-assq-ref table 'methods))) (lookup-agent-set-default agent ':methods (mapcar 'car methods)) (lookup-agent-set-default agent ':method-table methods))) ;; get dictionary list (ndict-process-require "SHOW DB" (lambda (process) (let (name title dicts) (when (looking-at "110") (forward-line) (narrow-to-region (point) (re-search-forward "^\\.$")) (while (re-search-backward "^\\([^ ]+\\) \\(.*\\)" nil t) (setq name (match-string 1) title (read (match-string 2))) (setq dicts (cons (ndict-make-dictionary name title) dicts))) dicts)))))) (put 'ndict 'clear 'ndict-clear) (defun ndict-clear (agent) (ndict-agent-kill-process agent)) (put 'ndict 'search 'ndict-dictionary-search) (defun ndict-dictionary-search (dictionary query) (ndict-with-dictionary dictionary (let* ((method (lookup-query-method query)) (string (lookup-query-string query)) (db (lookup-dictionary-code dictionary)) (table (ndict-agent-method-table ndict-current-agent)) (strategy (lookup-assq-ref table method)) (ndict-match-exact (if (eq method 'exact) (concat "^" string "$")))) (when (or (not (fboundp 'find-charset-string)) (equal (find-charset-string string) '(ascii)) (equal (find-charset-string string) 'nil)) (ndict-process-require (format "MATCH %s %s '%s'" db strategy string) (lambda (process) (when (looking-at "152") (forward-line) (narrow-to-region (point) (re-search-forward "^\\.$")) (let ((case-fold-search t) code heading entries) (while (re-search-backward "^[^ ]+ \\(.*\\)" nil t) (setq code (match-string 1) heading (read code)) (if (or (not ndict-match-exact) (string-match ndict-match-exact heading)) (setq entries (cons (ndict-make-entry code heading) entries)))) entries)))))))) (put 'ndict 'content 'ndict-dictionary-content) (defun ndict-dictionary-content (dictionary entry) (ndict-with-dictionary dictionary (let ((db (lookup-dictionary-code dictionary)) (word (lookup-entry-code entry))) (ndict-process-require (format "DEFINE %s %s" db word) (lambda (process) (when (looking-at "150") (forward-line 2) (buffer-substring (point) (progn (re-search-forward "^\\.$") (match-beginning 0))))))))) ;;; ;:: ndict process ;;; (defun ndict-process-open (server service) (lookup-proceeding-message (format "connecting to %s..." server)) (let* ((buffer (lookup-open-process-buffer " *ndict*")) (process (open-network-stream "ndict" buffer server service))) (accept-process-output process) (process-kill-without-query process) process)) (put 'ndict-process-require 'lisp-indent-function 1) (defun ndict-process-require (command &optional filter) (lookup-process-require ndict-current-process (concat command "\n") "^[245][0-8][0-9] .*\n" filter)) (provide 'ndict) ;;; ndict.el ends here lookup-1.4.1/lisp/ndkks.el0000644000076400007640000001215707401226705015706 0ustar kazuhikokazuhiko;;; ndkks.el --- Lookup KAKASI interface ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndkks.el,v 1.1.1.1 2001/11/28 18:32:37 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (defconst ndkks-version "1.0") ;;; ;:: Customizable variables ;;; (defgroup ndkks nil "Lookup KAKASI interface." :group 'lookup-agents) (defcustom ndkks-program-name "kakasi" "*KAKASI $B$N%W%m%0%i%`L>!#(B" :type 'string :group 'ndkks) (defcustom ndkks-dictionary-title "$B4A;z$+$J<-E5(B" "*ndkks $B<-=q$N%?%$%H%k!#(B" :type 'string :group 'ndkks) (defcustom ndkks-content-format '(t "\n" ("-JH") "\n" "$B!Z?6$j2>L>![(B" ("-JH" "-f" "-p") "\n") "*ndkks $B<-=q$,=PNO$9$k%(%s%H%jFbMF$N%U%)!<%^%C%H!#(B $B%j%9%H$N3FMWAG$H$7$F!"J8;zNs!"J8;zNs$N%j%9%H!"5Z$S(B `t' $B$r;XDj$G$-$k!#(B $BJ8;zNs$N>l9g!"$=$l$,$=$N$^$^A^F~$5$l$k!#(B $B%j%9%H$N>l9g!"$=$l$r0z?t$H$7$F(B KAKASI $B$,8F$S=P$5$l!"$=$N7k2L$,A^F~$5$l$k!#(B `t' $B$N>l9g!"8!:w8l$,A^F~$5$l$k!#(B" :type '(repeat (radio :tag "$B=PNOFbMF(B" (const :tag "$B8!:w8l(B" t) (string :tag "$BJ8;zNs(B") (repeat :tag "KAKASI $B8F$S=P$7(B" (string :tag "option")))) :group 'ndkks) (defcustom ndkks-process-coding-system lookup-kakasi-coding-system "*Coding system for KAKASI process." :type 'symbol :group 'ndkks) ;;; ;:: Internal variables ;;; (if (string-match "^19" emacs-version) (defconst ndkks-valid-charsets (list lc-jp)) (defconst ndkks-valid-charsets '(japanese-jisx0208))) ;;; ;:: types ;;; ;; ndkks agent: ;; ;; (ndkks) (put 'ndkks ':methods '(exact)) (put 'ndkks ':arranges '(lookup-arrange-default-headings lookup-arrange-fill-lines)) (put 'ndkks ':adjusts '(lookup-adjust-goto-min)) ;; ndkks dictionary: ;; ;; CODE - none ;; NAME - same as `ndkks-program-name' ;; ndkks entry: ;; ;; CODE - input string ;; HEADING - same as CODE above ;;; ;:: Interface functions ;;; (put 'ndkks 'setup 'ndkks-setup) (defun ndkks-setup (agent) (unless (featurep 'mule) (error "ndkks requires `mule' feauture.")) (call-process ndkks-program-name nil 0) ; check KAKASI exists (list (lookup-new-dictionary agent nil ndkks-program-name ndkks-dictionary-title))) (put 'ndkks 'clear 'ndkks-clear) (defun ndkks-clear (agent) (ndkks-process-kill)) (put 'ndkks 'search 'ndkks-dictionary-search) (defun ndkks-dictionary-search (dictionary query) (let ((string (lookup-query-string query))) (and ;; xxx: $B4A;z$,4^$^$l$F$$$k$+D4$Y$?$$$N$@$,!"$I$&$d$l$P$$$$$s$@$m$&(B? ;; xxx: $B$H$j$"$($:!"E,Ev$K%A%'%C%/!#(B (let ((charsets (find-charset-string string))) (catch 'return (while charsets (if (memq (car charsets) ndkks-valid-charsets) (throw 'return t) (setq charsets (cdr charsets)))))) (string-match "[^$B$"(B-$B$s%"(B-$B%s!<#A(B-$B#Z#a(B-$B#z(B]" string) (list (lookup-make-entry dictionary string string))))) (put 'ndkks 'content 'ndkks-dictionary-content) (defun ndkks-dictionary-content (dictionary entry) (let ((string (lookup-entry-code entry))) (mapconcat (lambda (element) (cond ((eq element t) string) ((stringp element) element) ((listp element) (ndkks-process-require element string)) (t (error "Invalid format element: %S" element)))) ndkks-content-format ""))) ;;; ;:: KAKASI process ;;; (defvar ndkks-process-alist nil) (defun ndkks-get-process (args) (let ((process (lookup-assoc-ref ndkks-process-alist args))) (unless (and process (eq (process-status process) 'run)) (if process (kill-process process)) (let ((buffer (lookup-open-process-buffer " *ndkks*"))) (setq process (apply 'start-process "ndkks" buffer ndkks-program-name args)) (process-kill-without-query process) ;; $B5/F08e!">/$7;~4V$rCV$+$J$$$H!":G=i$N8!:w$,$&$^$/$$$+$J$$!#(B (sleep-for 0.1) (let ((coding ndkks-process-coding-system)) (when coding (set-process-coding-system process coding coding))) (setq ndkks-process-alist (lookup-assoc-set ndkks-process-alist args process)))) process)) (defun ndkks-process-require (args string) (lookup-process-require (ndkks-get-process args) (concat string "\n") "\n")) (defun ndkks-process-kill () (while ndkks-process-alist (lookup-process-kill (cdar ndkks-process-alist)) (setq ndkks-process-alist (cdr ndkks-process-alist)))) (provide 'ndkks) ;;; ndkks.el ends here lookup-1.4.1/lisp/ndspell.el0000644000076400007640000001430307401226705016230 0ustar kazuhikokazuhiko;;; ndspell.el --- Lookup spell checker ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndspell.el,v 1.1.1.1 2001/11/28 18:32:37 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (defconst ndspell-version "1.0") ;;; ;:: Customizable variables ;;; (defgroup ndspell nil "Lookup spell checker." :group 'lookup-agents) (defcustom ndspell-ispell-program "ispell" "*Program name of Ispell." :type 'string :group 'ndspell) (defcustom ndspell-grep-program "grep" "*Program name of grep." :type 'string :group 'ndspell) (defcustom ndspell-words-dictionary "/usr/share/dict/words" "*Dictionary file." :type 'file :group 'ndspell) (defcustom ndspell-dictionary-title "Spell Checker" "*Title of ndspell dictionary." :type 'string :group 'ndspell) (defcustom ndspell-search-dictionaries t "*List of dictionary ID to be searched by dynamic reference. `t' means all selected dictionaries are used." :type '(radio (const :tag "Selected dictionaries" t) (repeat :tag "Specific dictionaries" (string :tag "ID"))) :group 'ndspell) (defcustom ndspell-process-coding-system lookup-process-coding-system "*Coding system for Ispell process." :type 'symbol :group 'ndspell) ;;; ;:: types ;;; (put 'ndspell ':methods '(exact prefix suffix substring regexp)) ;;; ;:: Interface functions ;;; (put 'ndspell 'setup 'ndspell-setup) (defun ndspell-setup (agent) (list (lookup-new-dictionary agent nil ndspell-ispell-program ndspell-dictionary-title))) (put 'ndspell 'clear 'ndspell-clear) (defun ndspell-clear (agent) (ndspell-process-kill)) (put 'ndspell 'search 'ndspell-dictionary-search) (defun ndspell-dictionary-search (dictionary query) (when (or (not lookup-search-found) lookup-force-update) (let ((string (lookup-query-string query))) (when (or (not (fboundp 'find-charset-string)) (equal (find-charset-string string) '(ascii)) (equal (find-charset-string string) 'nil)) (mapcar (lambda (candidate) (let* ((heading (format "[%s -> %s]" string candidate)) (reference (lookup-make-reference dictionary candidate heading))) (lookup-reference-make-dynamic reference 'ndspell-dynamic-search) reference)) (if (eq (lookup-query-method query) 'exact) (ndspell-check-spelling string) (ndspell-search-spelling (lookup-query-to-regexp query)))))))) (defun ndspell-dynamic-search (reference) (let ((self (lookup-entry-dictionary reference)) (query (lookup-make-query 'exact (lookup-entry-code reference))) (lookup-proceeding-message "Rechecking") entries) (lookup-proceeding-message nil) ;; search entries (setq entries (apply 'append (mapcar (lambda (dic) (when (and (not (eq dic self)) (if (eq ndspell-search-dictionaries t) (lookup-dictionary-selected-p dic) (member (lookup-dictionary-id dic) ndspell-search-dictionaries))) (lookup-proceeding-message (format "by %s..." (lookup-dictionary-title dic))) (lookup-vse-search-query dic query))) (lookup-module-dictionaries (lookup-session-module lookup-current-session))))) ;; rebuild entry (setq entries (mapcar (lambda (entry) (let ((heading (lookup-entry-heading reference))) (string-match "->" heading) (setq heading (concat (substring heading 0 (match-end 0)) "] " (lookup-entry-heading entry))) (lookup-make-entry (lookup-entry-dictionary entry) (lookup-entry-code entry) heading))) entries)) (lookup-proceeding-message t) entries)) ;;; ;:: Internal functions ;;; (defun ndspell-check-spelling (string) (let ((check (ndspell-spell-check string))) (cond ((consp check) (nreverse check)) ((stringp check) (list check))))) (defun ndspell-spell-check (string) (let ((output (ndspell-process-require string))) (cond ((string= output "") nil) ; empty ((eq (aref output 0) ?*) t) ; match ((eq (aref output 0) ?-) 'compound) ; compound ((eq (aref output 0) ?#) nil) ; no match ((string-match "^\\+ \\(.*\\)" output) ; root match (downcase (match-string 1 output))) ((string-match "^&[^:]*: " output) ; some candidates (lookup-split-string (substring output (match-end 0)) "[,\n] ?"))))) (defun ndspell-search-spelling (regexp) (with-temp-buffer (call-process ndspell-grep-program nil t nil regexp ndspell-words-dictionary) (let ((candidates nil)) (while (not (bobp)) (setq candidates (cons (buffer-substring-no-properties (1- (point)) (progn (forward-line -1) (point))) candidates))) candidates))) ;;; ;:: Ispell process ;;; (defvar ndspell-process nil) (defun ndspell-get-process () (unless (and ndspell-process (eq (process-status ndspell-process) 'run)) (if ndspell-process (lookup-process-kill ndspell-process)) (let ((buffer (lookup-open-process-buffer " *ndspell*"))) (setq ndspell-process (start-process "ndspell" buffer ndspell-ispell-program "-a" "-m" "-C")) (process-kill-without-query ndspell-process) (accept-process-output ndspell-process) (let ((coding ndspell-process-coding-system)) (when coding (set-process-coding-system ndspell-process coding coding))))) ndspell-process) (defun ndspell-process-require (string) (lookup-process-require (ndspell-get-process) (concat string "\n") "^\n")) (defun ndspell-process-kill () (if ndspell-process (lookup-process-kill ndspell-process))) (provide 'ndspell) ;;; ndspell.el ends here lookup-1.4.1/lisp/ndcookie.el0000644000076400007640000000357307401226702016366 0ustar kazuhikokazuhiko;;; ndcookie.el --- Lookup from cookie file ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndcookie.el,v 1.1.1.1 2001/11/28 18:32:34 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (require 'cookie1) (defconst ndcookie-version "1.0") (put 'ndcookie ':methods lookup-word-search-methods) (put 'ndcookie 'setup 'ndcookie-setup) (defun ndcookie-setup (agent) (let* ((file (expand-file-name (lookup-agent-location agent) data-directory)) (name (file-name-sans-extension (file-name-nondirectory file)))) (list (lookup-new-dictionary agent file name)))) (put 'ndcookie 'clear 'ndcookie-clear) (defun ndcookie-clear (agent) nil) (put 'ndcookie 'search 'ndcookie-dictionary-search) (defun ndcookie-dictionary-search (dictionary query) (let* ((cookie (cookie (lookup-dictionary-code dictionary) "" "")) (heading (substring cookie 0 (string-match "\n" cookie)))) (list (lookup-make-entry dictionary cookie heading)))) (put 'ndcookie 'content 'ndcookie-dictionary-content) (defun ndcookie-dictionary-content (dictionary entry) (lookup-entry-code entry)) (provide 'ndcookie) ;;; ndcookie.el ends here lookup-1.4.1/lisp/ndmisc.el0000644000076400007640000000462707401226723016054 0ustar kazuhikokazuhiko;;; ndmisc.el --- miscellaneous pseudo-agents ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndmisc.el,v 1.1.1.1 2001/11/28 18:32:51 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup) (defconst ndmisc-version "0.3") ;;; ;:: Internal variables ;;; (defconst ndmisc-agent (lookup-make-agent 'ndmisc nil nil)) (put 'ndmisc ':arranges '(lookup-arrange-default-headings)) (put 'ndmisc ':adjusts '(lookup-adjust-goto-min)) ;;; ;:: URL dictionary ;;; (defvar ndmisc-url-dictionary nil) (defun lookup-make-url-reference (url heading) (unless ndmisc-url-dictionary (setq ndmisc-url-dictionary (lookup-new-dictionary ndmisc-agent nil "URL")) (lookup-dictionary-init ndmisc-url-dictionary)) (let ((entry (lookup-make-entry ndmisc-url-dictionary url heading))) (lookup-entry-set-jump entry 'ndmisc-url-jump) entry)) (defun ndmisc-url-jump (entry) (browse-url (lookup-entry-code entry))) ;;; ;:: Interface functions ;;; (put 'ndmisc 'content 'ndmisc-dictionary-content) (defun ndmisc-dictionary-content (dictionary entry) (cond ((eq dictionary ndmisc-url-dictionary) (let ((heading (lookup-entry-heading entry)) (url (lookup-entry-code entry)) (keys (with-current-buffer (lookup-entry-buffer) (substitute-command-keys "\\[lookup-entry-open-other]")))) (if (eq heading url) (setq heading "See also:")) (format "%s\n\n %s\n\nType `%s' to go to this site.\n" heading url keys))))) (put 'ndmisc 'open 'ndmisc-dictionary-open) (defun ndmisc-dictionary-open (dictionary entry) (cond ((eq dictionary ndmisc-url-dictionary) (ndmisc-url-jump entry)))) (provide 'ndmisc) ;;; ndmisc.el ends here lookup-1.4.1/lisp/ndsrd.el0000644000076400007640000000666307401226716015715 0ustar kazuhikokazuhiko;;; ndsrd.el --- search agent for $B>.3X4[!X%i%s%@%`%O%&%91Q8l<-E5!Y(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Version: $Id: ndsrd.el,v 1.1.1.1 2001/11/28 18:32:46 kazuhiko Exp $ ;; This file is part of Lookup. ;; Lookup 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 of the License, or ;; (at your option) any later version. ;; Lookup 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 Lookup; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Commentary: ;; $BMxMQ$9$k$K$O!"(B~/.emacs $B$G!#(B" :type 'string :group 'ndsrd) (defcustom ndsrd-process-coding-system lookup-process-coding-system "*Coding system for csrd process." :type 'symbol :group 'ndsrd) ;;; ;:: types ;;; (put 'ndsrd ':methods '(exact prefix suffix substring)) (put 'ndsrd ':arranges '(lookup-arrange-default-headings lookup-arrange-fill-lines)) (put 'ndsrd ':adjusts '(lookup-adjust-goto-min)) ;;; ;:: Interface functions ;;; (put 'ndsrd 'setup 'ndsrd-setup) (defun ndsrd-setup (agent) (let* ((directory (lookup-agent-location agent)) (format (lookup-agent-option agent ':fmt)) (gaiji (lookup-agent-option agent ':gai)) opts dictionary) (if gaiji (setq opts (cons (concat "-g" gaiji) opts))) (if format (setq opts (cons (concat "-f" format) opts))) (setq opts (cons (concat "-d" directory) opts)) (list (lookup-new-dictionary agent opts "srd" "$B%i%s%@%`%O%&%91Q8l<-E5(B")))) (put 'ndsrd 'clear 'ndsrd-clear) (defun ndsrd-clear (agent) nil) (put 'ndsrd 'search 'ndsrd-dictionary-search) (defun ndsrd-dictionary-search (dictionary query) (with-temp-buffer (lookup-with-coding-system ndsrd-process-coding-system (apply 'call-process ndsrd-program-name nil t nil (append (lookup-dictionary-code dictionary) (list (lookup-query-string query))))) (goto-char (point-min)) (let (start content heading entries) (while (re-search-forward "^$B""(B \\([^ \n]*\\)" nil 0) (when start (setq content (buffer-substring start (match-beginning 0))) (setq entries (cons (lookup-make-entry dictionary content heading) entries))) (setq start (match-beginning 0) heading (match-string 1))) (when start (setq content (buffer-substring start (point))) (setq entries (cons (lookup-make-entry dictionary content heading) entries))) (nreverse entries)))) (put 'ndsrd 'content 'ndsrd-dictionary-content) (defun ndsrd-dictionary-content (dictionary entry) (lookup-entry-code entry)) (provide 'ndsrd) ;;; ndsrd.el ends here lookup-1.4.1/lisp/sdicf.el0000644000076400007640000005037207401226713015664 0ustar kazuhikokazuhiko;;; sdicf.el --- Search library for SDIC format dictionary ;;; $Id: sdicf.el,v 1.1.1.1 2001/11/28 18:32:43 kazuhiko Exp $ ;; Copyright (C) 1999 TSUCHIYA Masatoshi ;; Author: TSUCHIYA Masatoshi ;; NISHIDA Keisuke ;; Created: 1 Feb 1999 ;; Version: 0.9 ;; Keywords: dictionary ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ;;; Commentary: ;; $B$3$l$O!"(BSDIC$B7A<0<-=q$r8!:w$9$k$?$a$N%i%$%V%i%j$G$9!#$l$N4X?t$N>\:Y$O!"4X?t$N@bL@J8;zNs$K5-=R$5$l$F$$$^$9!#(B ;;; Note: ;; * GNU Emacs 19.30 $B0J9_$G$"$l$P!"(B`auto-compression-mode' $B$rM-8z$K$9$k(B ;; $B$3$H$G!"(B`direct' $BJ}<0$G05=L$7$?<-=q$rMQ$$$k$3$H$,=PMh$k!#E83+$O<+(B ;; $BF0$G9T$J$o$l$k$?$a!"FCJL$J@_Dj$OI,MW$"$j$^$;$s!#(B ;; ;; * $BB.EY=E;k$N$?$a(B `save-match-data' $B$K$h$k0lCW%G!<%?$NB`Hr$H2sI|$O0l(B ;; $B@Z$7$F$$$^$;$s!#(B ;;;------------------------------------------------------------ ;;; Customizable variables ;;;------------------------------------------------------------ (defun sdicf-find-program (&rest programs) (if programs (catch 'which (mapcar (lambda (file) (mapcar (lambda (path) (if (file-executable-p (expand-file-name file path)) (throw 'which (expand-file-name file path)))) exec-path)) programs)))) (defvar sdicf-egrep-command (sdicf-find-program "egrep" "egrep.exe" "grep" "grep.exe") "*Executable file name of egrep") (defvar sdicf-fgrep-command (sdicf-find-program "fgrep" "fgrep.exe" "grep" "grep.exe") "*Executable file name of fgrep") (defvar sdicf-array-command (sdicf-find-program "array" "array.exe") "*Executable file name of array") (defvar sdicf-default-coding-system (if (>= emacs-major-version 20) (if (featurep 'mule) (if (string-match "XEmacs" emacs-version) (cond ((memq 'euc-japan-unix (coding-system-list)) 'euc-japan-unix) ((memq 'euc-jp-unix (coding-system-list)) 'euc-jp-unix)) 'euc-japan-unix)) (and (boundp 'MULE) *euc-japan*unix)) "*Default coding system for sdicf.el") ;; Error Symbols (put 'sdicf-missing-file 'error-conditions '(error sdicf-errors sdicf-missing-file)) (put 'sdicf-missing-file 'error-message "Can't find file") (put 'sdicf-missing-executable 'error-conditions '(error sdicf-errors sdicf-missing-executable)) (put 'sdicf-missing-executable 'error-message "Can't find executable") (put 'sdicf-invalid-strategy 'error-conditions '(error sdicf-errors sdicf-invalid-strategy)) (put 'sdicf-invalid-strategy 'error-message "Invalid search strategy") (put 'sdicf-decide-strategy 'error-conditions '(error sdicf-errors sdicf-decide-strategy)) (put 'sdicf-decide-strategy 'error-message "Can't decide strategy automatically") (put 'sdicf-invalid-method 'error-conditions '(error sdicf-errors sdicf-invalid-method)) (put 'sdicf-invalid-method 'error-message "Invalid search method") ;;;------------------------------------------------------------ ;;; Internal variables ;;;------------------------------------------------------------ (defconst sdicf-version "0.9" "Version number of sdicf.el") (defconst sdicf-strategy-alist '((array sdicf-array-available sdicf-array-init sdicf-array-quit sdicf-array-search) (grep sdicf-grep-available sdicf-grep-init sdicf-grep-quit sdicf-grep-search) (direct sdicf-direct-available sdicf-direct-init sdicf-direct-quit sdicf-direct-search)) "$BMxMQ$G$-$k(B strategy $B$NO"A[G[Ns(B $BG[Ns$N3FMWAG$O!"(B strategy $B$N%7%s%\%k(B strategy $B$NMxMQ2DG=@-$r8!::$9$k4X?t(B strategy $B$r=i4|2=$9$k4X?t(B strategy $B$r=*N;$9$k4X?t(B strategy $B$r;H$C$F8!:w$9$k4X?t(B $B$N(B4$B$D$NMWAG$+$i$J$k%j%9%H$H$J$C$F$$$k!#(Bstrategy $B$N<+F0H=Dj$r9T$&$H$-$O!"(B $B$3$NO"A[G[Ns$K@h$KEPO?$5$l$F$$$k(B strategy $B$,;H$o$l$k!#(B") ;;;------------------------------------------------------------ ;;; Internal functions ;;;------------------------------------------------------------ (if (fboundp 'buffer-live-p) (defalias 'sdicf-buffer-live-p 'buffer-live-p) (defun sdicf-buffer-live-p (object) "\ Return non-nil if OBJECT is a buffer which has not been killed. Value is nil if OBJECT is not a buffer or if it has been killed." (and object (bufferp object) (buffer-name object)))) (defsubst sdicf-object-p (sdic) "$B<-=q%*%V%8%'%/%H$+$I$&$+8!::$9$k(B" (and (vectorp sdic) (eq 'SDIC (aref sdic 0)))) (defsubst sdicf-entry-p (entry) (and (stringp entry) (string-match "^<.>\\([^<]+\\)" entry))) (defsubst sdicf-get-filename (sdic) "$B<-=q%*%V%8%'%/%H$+$i%U%!%$%kL>$rF@$k(B" (aref sdic 1)) (defsubst sdicf-get-coding-system (sdic) "$B<-=q%*%V%8%'%/%H$+$i(B coding-system $B$rF@$k(B" (aref sdic 2)) (defsubst sdicf-get-strategy (sdic) "$B<-=q%*%V%8%'%/%H$+$i(B strategy $B$rF@$k(B" (aref sdic 3)) (defsubst sdicf-get-buffer (sdic) "$B<-=q%*%V%8%'%/%H$+$i8!:wMQ%P%C%U%!$rF@$k(B" (aref sdic 4)) (defun sdicf-common-init (sdic) "\ $B6&DL$N<-=q=i4|2=4X?t(B $B:n6HMQ%P%C%U%!$,B8:_$9$k$3$H$r3NG'$7!"$J$1$l$P?7$7$/@8@.$9$k!#:n6HMQ%P%C(B $B%U%!$rJV$9!#(B" (or (and (sdicf-buffer-live-p (sdicf-get-buffer sdic)) (sdicf-get-buffer sdic)) (let ((buf (generate-new-buffer (format " *sdic %s*" (sdicf-get-filename sdic))))) (buffer-disable-undo buf) (aset sdic 4 buf)))) (defun sdicf-common-quit (sdic) "\ $B6&DL$N<-=q=*N;4X?t(B" (if (sdicf-buffer-live-p (sdicf-get-buffer sdic)) (kill-buffer (sdicf-get-buffer sdic)))) (defsubst sdicf-search-internal () "\ $B8=:_9T$r%A%'%C%/$7!"%(%s%H%j$J$i$P8=:_9T$NFbMF$r(B entries $B$K2C$($k!#(B $B%]%$%s%H$r9T$N@hF,$K0\F0$7$F$*$+$J$1$l$P$J$i$J$$!#4X?t$N\n]" string start) (setq ch (aref string (match-beginning 0)) list (cons (if (eq ch ?&) "&" (if (eq ch ?<) "<" (if (eq ch ?>) ">" "&lf;"))) (cons (substring string start (match-beginning 0)) list)) start (match-end 0))) (eval (cons 'concat (nreverse (cons (substring string start) list)))))) (defun sdicf-decode-string (string) "\ STRING $B$r%G%3!<%I$9$k(B $B%G%3!<%I$7$?J8;zNs$rJV$9(B" (let ((start 0) list) (while (string-match "&\\(\\(lt\\)\\|\\(gt\\)\\|\\(lf\\)\\|\\(amp\\)\\);" string start) (setq list (cons (if (match-beginning 2) "<" (if (match-beginning 3) ">" (if (match-beginning 4) "\n" "&"))) (cons (substring string start (match-beginning 0)) list)) start (match-end 0))) (eval (cons 'concat (nreverse (cons (substring string start) list)))))) (defun sdicf-insert-file-contents (filename coding-system &optional visit beg end replace) "\ CODING-SYSTEM $B$rL@<(E*$K;XDj$7$F(B insert-file-contents $B$r8F$S=P$9(B CODING-SYSTEM $B0J30$N0z?t$N0UL#$O(B insert-file-contents $B$HF1$8(B" (let ((coding-system-for-read coding-system) (file-coding-system-for-read coding-system)) (insert-file-contents filename visit beg end replace))) (defun sdicf-call-process (program coding-system &optional infile buffer display &rest args) "\ CODING-SYSTEM $B$rL@<(E*$K;XDj$7$F(B call-process $B$r8F$S=P$9(B CODING-SYSTEM $B0J30$N0z?t$N0UL#$O(B call-process $B$HF1$8(B" (let ((coding-system-for-read coding-system) (coding-system-for-write coding-system) (process-input-coding-system coding-system) (process-output-coding-system coding-system) (file-name-coding-system coding-system) (default-process-coding-system (cons coding-system coding-system))) (apply 'call-process program infile buffer display args))) (defun sdicf-start-process (name buffer program coding-system &rest args) "\ start-process $B$r]$N%U%!%$%k$r%P%C%U%!$KFI$_9~$s$G8!:w$r9T$&(B $B8+$D$+$C$?%(%s%H%j$N%j%9%H$rJV$9!#(BCASE $B$,(B nil $B$J$i$P!"BgJ8;z>.J8;z$N0c(B $B$$$r6hJL$7$F8!:w$9$k!#(BREGEXP $B$,(B Non-nil $B$J$i$P!"(BPATTERN $B$r@55,I=8=$H8+(B $B$J$7$F8!:w$9$k!#(B" (sdicf-direct-init sdic) (save-excursion (set-buffer (sdicf-get-buffer sdic)) (let ((case-fold-search case) entries) (goto-char (point-min)) (if regexp (while (re-search-forward pattern nil t) (forward-line 0) (sdicf-search-internal)) (while (search-forward pattern nil t) (forward-line 0) (sdicf-search-internal))) (nreverse entries)))) ;;; Strategy `grep' (defun sdicf-grep-available (sdic) (and (or (file-readable-p (sdicf-get-filename sdic)) (signal 'sdicf-missing-file (list (sdicf-get-filename sdic)))) (or (and (stringp sdicf-fgrep-command) (file-executable-p sdicf-fgrep-command)) (signal 'sdicf-missing-executable '(fgrep grep))) (or (and (stringp sdicf-egrep-command) (file-executable-p sdicf-egrep-command)) (signal 'sdicf-missing-executable '(egrep grep))))) (defalias 'sdicf-grep-init 'sdicf-common-init) (defalias 'sdicf-grep-quit 'sdicf-common-quit) (defun sdicf-grep-search (sdic pattern &optional case regexp) "\ fgrep / egrep $B$^$?$O(B grep $B$r;H$C$F8!:w$r9T$&(B $B8+$D$+$C$?%(%s%H%j$N%j%9%H$rJV$9!#(BCASE $B$,(B nil $B$J$i$P!"BgJ8;z>.J8;z$N0c(B $B$$$r6hJL$7$F8!:w$9$k!#(BREGEXP $B$,(B nil $B$J$i$P(B sdicf-fgrep-command $B$G;XDj(B $B$5$l$?%3%^%s%I$r;H$C$F8!:w$9$k!#(BREGEXP $B$,(B Non-nil $B$J$i$P(B sdicf-egrep-command $B$G;XDj$5$l$?%3%^%s%I$r;H$&!#(B" (sdicf-grep-init sdic) (save-excursion (set-buffer (sdicf-get-buffer sdic)) (delete-region (point-min) (point-max)) (apply 'sdicf-call-process (if regexp sdicf-egrep-command sdicf-fgrep-command) (sdicf-get-coding-system sdic) nil t nil (if regexp (if case (list "-i" "-e" pattern (sdicf-get-filename sdic)) (list "-e" pattern (sdicf-get-filename sdic))) (if case (list "-i" pattern (sdicf-get-filename sdic)) (list "-e" pattern (sdicf-get-filename sdic))))) (goto-char (point-min)) (let (entries) (while (not (eobp)) (sdicf-search-internal)) (nreverse entries)))) ;;; Strategy `array' (defun sdicf-array-available (sdic) (and (or (file-readable-p (sdicf-get-filename sdic)) (signal 'sdicf-missing-file (list (sdicf-get-filename sdic)))) (or (file-readable-p (concat (sdicf-get-filename sdic) ".ary")) (signal 'sdicf-missing-file (list (concat (sdicf-get-filename sdic) ".ary")))) (or (and (stringp sdicf-array-command) (file-executable-p sdicf-array-command)) (signal 'sdicf-missing-executable '(array))))) (defun sdicf-array-init (sdic) (sdicf-common-init sdic) (let ((proc (get-buffer-process (sdicf-get-buffer sdic)))) (or (and proc (eq (process-status proc) 'run)) (progn (setq proc (sdicf-start-process "array" (sdicf-get-buffer sdic) sdicf-array-command (sdicf-get-coding-system sdic) (sdicf-get-filename sdic))) (accept-process-output proc) (process-send-string proc "style line\n") (accept-process-output proc) (process-send-string proc "order index\n") (accept-process-output proc) (process-kill-without-query proc) (set-process-filter proc 'sdicf-array-wait-prompt) t)))) (defun sdicf-array-quit (sdic) (if (sdicf-buffer-live-p (sdicf-get-buffer sdic)) (let ((proc (get-buffer-process (sdicf-get-buffer sdic)))) (and proc (eq (process-status proc) 'run) (set-process-filter proc nil) (process-send-string proc "quit\n")) (kill-buffer (sdicf-get-buffer sdic))))) (defun sdicf-array-send-string (proc string) "\ $B;XDj$5$l$?J8;zNs(B STRING $B$r%3%^%s%I$H$7$F(B PROC $B$KEO$7$F%W%m%s%W%H$,8=$l$k$^$GBT$D4X?t(B" (save-excursion (let ((sdicf-array-wait-prompt-flag t)) (set-buffer (process-buffer proc)) (set-marker (process-mark proc) (point-max)) (process-send-string proc (concat string "\n")) (while sdicf-array-wait-prompt-flag (accept-process-output proc))))) (defun sdicf-array-wait-prompt (proc string) "\ $B%W%m%s%W%H(B ok $B$,8=$l$?$3$H$r8!CN$7$F!"(Bsdicf-array-wait-prompt-flag $B$r(B nil $B$K$9$k%U%#%k%?4X?t(B" (save-excursion (save-match-data ; Emacs-19.34 $B0J9_$O<+F0E*$K8!:w7k2L$NBTHr(B/$B2sI|$,9T$o$l$k$N$GITMW(B (set-buffer (process-buffer proc)) (goto-char (process-mark proc)) (insert string) (set-marker (process-mark proc) (point)) (skip-chars-backward " \t\n") (forward-line 0) (if (looking-at "ok\n") (setq sdicf-array-wait-prompt-flag nil)) ))) (defun sdicf-array-search (sdic pattern &optional case regexp) "\ array $B$r;H$C$F8!:w$r9T$&(B $B8+$D$+$C$?%(%s%H%j$N%j%9%H$rJV$9!#(Barray $B$O@55,I=8=8!:w$*$h$SBgJ8;z>.J8(B $B;z$N0c$$$r6hJL$7$J$$8!:w$O=PMh$J$$!#=>$C$F!"(BCASE $B$,(B Non-nil $B$N>l9g$O!"(B $BBgJ8;z>.J8;z$r6hJL$7$F8!:w$7$?>l9g$N7k2L$rJV$9!#(BREGEXP $B$,(B Non-nil $B$N>l(B $B9g$O6u$j%9%H$rJV$9!#(B" (sdicf-array-init sdic) (if regexp (signal 'sdicf-invalid-method '(regexp)) (save-excursion (let ((proc (get-buffer-process (set-buffer (sdicf-get-buffer sdic)))) (case-fold-search nil)) (sdicf-array-send-string proc "init") (delete-region (point-min) (point-max)) (sdicf-array-send-string proc (concat "search " pattern)) (if (looking-at "FOUND:") (progn (delete-region (point-min) (point-max)) (sdicf-array-send-string proc "show") (let (entries cons) (while (not (eobp)) (sdicf-search-internal)) (setq entries (sort entries 'string<) cons entries) (while (cdr cons) (if (equal (car cons) (car (cdr cons))) (setcdr cons (cdr (cdr cons))) (setq cons (cdr cons)))) entries))))))) ;;;------------------------------------------------------------ ;;; Interface functions ;;;------------------------------------------------------------ (defun sdicf-open (filename &optional coding-system strategy) "\ SDIC$B7A<0$N<-=q$r%*!<%W%s$9$k(B FILENAME $B$O<-=q$N%U%!%$%kL>!#(BSTRATEGY $B$O8!:w$r9T$J$&J}<0$r;XDj$9$k0z?t(B $B$G!"@\8!:w!#(B `grep' - grep $B%3%^%s%I$rMQ$$$F8!:w!#(B `array' - SUFARY $B$rMQ$$$?9bB.8!:w!#(B STRATEGY $B$,>JN,$5$l$?>l9g$O(B sdicf-strategy-alist $B$NCM$r;H$C$F<+F0E*$K(B $BH=Dj$9$k!#(BCODING-SYSTEM $B$,>JN,$5$l$?>l9g$O!"(Bsdicf-default-coding-system $B$NCM$r;H$&!#(B SDIC $B<-=q%*%V%8%'%/%H$O(B CAR $B$,(B `SDIC' $B$N%Y%/%?$G$"$k!#0J2<$N(B4$B$D$NMWAG(B $B$r;}$D!#(B $B!&%U%!%$%kL>(B $B!&<-=q$N(B coding-system $B!&(Bstrategy $B!&:n6HMQ%P%C%U%!(B " (let ((sdic (vector 'SDIC filename (or coding-system sdicf-default-coding-system) nil nil))) (aset sdic 3 (if strategy (if (assq strategy sdicf-strategy-alist) (if (funcall (nth 1 (assq strategy sdicf-strategy-alist)) sdic) strategy) (signal 'sdicf-invalid-strategy (list strategy))) (catch 'found-strategy (mapcar (lambda (e) (if (condition-case nil (funcall (nth 1 e) sdic) (sdicf-errors nil)) (throw 'found-strategy (car e)))) sdicf-strategy-alist) (signal 'sdicf-decide-strategy nil)))) sdic)) (defun sdicf-close (sdic) "SDIC$B7A<0$N<-=q$r%/%m!<%:$9$k(B" (or (sdicf-object-p sdic) (signal 'wrong-type-argument (list 'sdicf-object-p sdic))) (funcall (nth 3 (assq (sdicf-get-strategy sdic) sdicf-strategy-alist)) sdic)) (defun sdicf-search (sdic method word) "\ SDIC$B7A<0$N<-=q$+$i(B WORD $B$r%-!<$H$7$F8!:w$r9T$&(B $B8+IU$+$C$?%(%s%H%j$N%j%9%H$rJV$9!#(BMETHOD $B$O8!:wK!$G!"l9g$OBgJ8;z(B/$B>.J8;z$r6hJL$7(B $B$F8!:w$r9T$&!#A4J88!:w$*$h$S@55,I=8=8!:w$N>l9g$O!"(Bcase-fold-search $B$N(B $BCM$K$h$C$FJQ2=$9$k!#$?$@$7!"(Bstrategy $B$K$h$C$F$O!";XDj$5$l$?8!:wJ}<0$K(B $BBP1~$7$F$$$J$$>l9g$,$"$k$N$G!"Cm0U$9$k$3$H!#BP1~$7$F$$$J$$>l9g$NJV$jCM(B $B$O!"(Bstrategy $B$K$h$k!#(B" (or (sdicf-object-p sdic) (signal 'wrong-type-argument (list 'sdicf-object-p sdic))) (or (stringp word) (signal 'wrong-type-argument (list 'stringp word))) (let ((case-fold-search (if (eq method 'text) case-fold-search))) (funcall (nth 4 (assq (sdicf-get-strategy sdic) sdicf-strategy-alist)) sdic (cond ((eq method 'prefix) (concat "" (sdicf-encode-string (downcase word)))) ((eq method 'suffix) (concat (sdicf-encode-string (downcase word)) "")) ((eq method 'exact) (concat "" (sdicf-encode-string (downcase word)) "")) ((eq method 'text) word) ((eq method 'regexp) word) (t (signal 'sdicf-invalid-method (list method)))) (and (or (eq method 'text) (eq method 'regexp)) case-fold-search) (eq method 'regexp)))) (defun sdicf-entry-headword (entry) "$B%(%s%H%j(B ENTRY $B$N8+=P$78l$rJV$9!#(B" (or (sdicf-entry-p entry) (signal 'wrong-type-argument (list 'sdicf-entry-p entry))) (sdicf-decode-string (substring entry (match-beginning 1) (match-end 1)))) (defun sdicf-entry-keywords (entry &optional add-headword) "\ $B%(%s%H%j(B ENTRY $B$N8!:w%-!<$N%j%9%H$rJV$9(B ADD-HEADWORD $B$,(B Non-nil $B$N>l9g$O8!:w%-!<$K8+=P$78l$r2C$($?%j%9%H$rJV$9(B" (or (sdicf-entry-p entry) (signal 'wrong-type-argument (list 'sdicf-entry-p entry))) (let ((start (match-end 0)) (keywords (if (or add-headword (string= "" (substring entry 0 3))) (list (sdicf-decode-string (substring entry (match-beginning 1) (match-end 1))))))) (while (eq start (string-match "<.>\\([^<]+\\)" entry start)) (setq start (match-end 0) keywords (cons (sdicf-decode-string (substring entry (match-beginning 1) (match-end 1))) keywords))) (nreverse keywords))) (defun sdicf-entry-text (entry) "$B%(%s%H%j(B ENTRY $B$NK\J8$rJV$9!#(B" (or (stringp entry) (signal 'wrong-type-argument (list 'stringp entry))) (sdicf-decode-string (substring entry (string-match "[^>]*$" entry)))) (provide 'sdicf) ;;; sdicf.el ends here lookup-1.4.1/lisp/stem-english.el0000644000076400007640000005746607401226724017210 0ustar kazuhikokazuhiko;;; stem.el ---- routines for stemming ;;; $Id: stem-english.el,v 1.1.1.1 2001/11/28 18:32:52 kazuhiko Exp $ ;;; Author: Tsuchiya Masatoshi ;;; Keywords: stemming ;;; Commentary: ;; ÏÀʸ¡ØAn algorithm for suffix stripping (M.F.Porter)¡Ù¤Ëµ­½Ò¤µ¤ì¤Æ ;; ¤¤¤ë¥¢¥ë¥´¥ê¥º¥à¤Ë´ð¤Å¤¤¤Æ¡¢±Ññ¸ì¤Î¸ìÈø¤ò¼è¤ê½ü¤¯¤¿¤á¤Î¥é¥¤¥Ö¥é¥ê¡£ ;; ÍøÍѵڤӺÆÇÛÉۤκݤϡ¢GNU °ìÈ̸øÍѵöÂú½ñ¤ÎŬÅö¤Ê¥Ð¡¼¥¸¥ç¥ó¤Ë¤·¤¿¤¬¤Ã ;; ¤Æ²¼¤µ¤¤¡£ ;; °ì¼¡ÇÛÉÛ¸µ ;; http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/index.html ;; -*- Emacs-Lisp -*- (provide 'stem) (defvar stem:minimum-word-length 4 "Porter ¤Î¥¢¥ë¥´¥ê¥º¥à¤¬Å¬ÍѤǤ­¤ëºÇ¾®¸ìĹ") ;;;============================================================ ;;; Èó¸ø³«´Ø¿ô ;;;============================================================ ;; ưºî®ÅÙ¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤Ë¡¢´Ø¿ôÆâÉô¤Ç³°ÉôÊÑ¿ô¤ò¤¤¤¸¤Ã¤Æ¤¤¤ë ;; ´Ø¿ô¤¬¤¢¤ê¡¢Í½´ü¤·¤Ê¤¤ÉûºîÍѤ¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¹â¤¤¡£½¾¤Ã¤Æ¡¢ ;; Èó¸ø³«´Ø¿ô¤òľÀܸƤӽФ¹¤³¤È¤ÏÈò¤±¤ë¤³¤È¡£ ;;------------------------------------------------------------ ;; stemming-rule ¤Î¾ò·ïÀá¤òµ­½Ò¤¹¤ë´Ø¿ô·² ;;------------------------------------------------------------ (defsubst stem:match (arg) "\ ÊÑ¿ô str ¤ò¸¡ºº¤¹¤ëÈó¸ø³«´Ø¿ô (¸ì´´¤ÎÉôʬ¤òÊÑ¿ô stem ¤ËÂåÆþ¤¹¤ë)" (and (string-match arg str) (setq stem (substring str 0 (match-beginning 0))))) (defsubst stem:m () "\ ÊÑ¿ô stem ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë VC ¤Î¿ô¤òµá¤á¤ëÈó¸ø³«´Ø¿ô" (save-match-data (let ((pos 0)(m 0)) (while (string-match "\\(a\\|e\\|i\\|o\\|u\\|[^aeiou]y+\\)[aeiou]*" stem pos) (setq m (1+ m)) (setq pos (match-end 0))) (if (= pos (length stem)) (1- m) m)))) (defsubst stem:m> (i) "\ ÊÑ¿ô stem ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë VC ¤Î¿ô¤Î¾ò·ï¤òµ­½Ò¤¹¤ëÈó¸ø³«´Ø¿ô" (< i (stem:m))) (defsubst stem:m= (i) "\ ÊÑ¿ô stem ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë VC ¤Î¿ô¤Î¾ò·ï¤òµ­½Ò¤¹¤ëÈó¸ø³«´Ø¿ô" (= i (stem:m))) (defsubst stem:*v* () "\ ÊÑ¿ô stem ¤¬Êì²»¤ò´Þ¤ó¤Ç¤¤¤ë¤«¸¡ºº¤¹¤ë´Ø¿ô" (save-match-data (if (string-match "\\(a\\|e\\|i\\|o\\|u\\|[^aeiou]y\\)" stem) t))) (defsubst stem:*o () "\ ÊÑ¿ô stem ¤¬ cvc ¤Î·Á¤Ç½ª¤Ã¤Æ¤¤¤ë¤«¸¡ºº¤¹¤ë´Ø¿ô" (save-match-data (if (string-match "[^aeiou][aeiouy][^aeiouwxy]$" stem) t))) ;;------------------------------------------------------------ ;; stemming-rule ¤òµ­½Ò¤·¤¿´Ø¿ô·² ;;------------------------------------------------------------ (defun stem:step1a (str) "Âè1aÃʳ¬¤Î stemming rule (Èó¸ø³«´Ø¿ô)" (let ((s)(stem)) (if (setq s (cond ((stem:match "sses$") "ss") ((stem:match "ies$") "i") ((stem:match "ss$") "ss") ((stem:match "s$") ""))) (concat stem s) str))) (defun stem:step1b (str) "Âè1bÃʳ¬¤Î stemming rule (Èó¸ø³«´Ø¿ô)" (let ((s)(stem)) (cond ((and (stem:match "eed$") (stem:m> 0)) (concat stem "ee")) ((or (and (not stem) (stem:match "ed$") (stem:*v*)) (and (stem:match "ing$") (stem:*v*))) (if (and (stem:m= 1) (stem:*o)) (concat stem "e") (setq str stem) (if (setq s (cond ((stem:match "at$") "ate") ((stem:match "bl$") "ble") ((stem:match "iz$") "ize") ((stem:match "\\([^lsz]\\)\\1$") (substring str (match-beginning 1) (match-end 1))))) (concat stem s) str))) (t str)))) (defun stem:step1c (str) "Âè1cÃʳ¬¤Î stemming rule (Èó¸ø³«´Ø¿ô)" (let ((stem)) (if (and (stem:match "y$") (stem:*v*)) (concat stem "i") str))) (defun stem:step1 (str) "Âè1Ãʳ¬¤Î stemming rule (Èó¸ø³«´Ø¿ô)" (stem:step1c (stem:step1b (stem:step1a str)))) (defun stem:step2 (str) "Âè2Ãʳ¬¤Î stemming rule (Èó¸ø³«´Ø¿ô)" (let ((s)(stem)) (if (and (setq s (cond ((stem:match "ational$") "ate") ((stem:match "tional$") "tion") ((stem:match "enci$") "ence") ((stem:match "anci$") "ance") ((stem:match "izer$") "ize") ((stem:match "abli$") "able") ((stem:match "alli$") "al") ((stem:match "entli$") "ent") ((stem:match "eli$") "e") ((stem:match "ousli$") "ous") ((stem:match "ization$") "ize") ((stem:match "ation$") "ate") ((stem:match "ator$") "ate") ((stem:match "alism$") "al") ((stem:match "iveness$") "ive") ((stem:match "fulness$") "ful") ((stem:match "ousness$") "ous") ((stem:match "aliti$") "al") ((stem:match "iviti$") "ive") ((stem:match "biliti$") "ble"))) (stem:m> 0)) (concat stem s) str))) (defun stem:step3 (str) "Âè3Ãʳ¬¤Î stemming rule (Èó¸ø³«´Ø¿ô)" (let ((s)(stem)) (if (and (setq s (cond ((stem:match "icate$") "ic") ((stem:match "ative$") "") ((stem:match "alize$") "al") ((stem:match "iciti$") "ic") ((stem:match "ical$") "ic") ((stem:match "ful$") "") ((stem:match "ness$") ""))) (stem:m> 0)) (concat stem s) str))) (defun stem:step4 (str) "Âè4Ãʳ¬¤Î stemming rule (Èó¸ø³«´Ø¿ô)" (let ((stem)) (if (and (or (stem:match "al$") (stem:match "ance$") (stem:match "ence$") (stem:match "er$") (stem:match "ic$") (stem:match "able$") (stem:match "ible$") (stem:match "ant$") (stem:match "ement$") (stem:match "ment$") (stem:match "ent$") (and (string-match "[st]\\(ion\\)$" str) (setq stem (substring str 0 (match-beginning 1)))) (stem:match "ou$") (stem:match "ism$") (stem:match "ate$") (stem:match "iti$") (stem:match "ous$") (stem:match "ive$") (stem:match "ize$")) (stem:m> 1)) stem str))) (defun stem:step5 (str) "Âè5Ãʳ¬¤Î stemming rule (Èó¸ø³«´Ø¿ô)" (let ((stem)) (if (or (and (stem:match "e$") (or (stem:m> 1) (and (stem:m= 1) (not (stem:*o))))) (and (stem:match "ll$") (setq stem (concat stem "l")) (stem:m> 1))) stem str))) (defvar stem:irregular-verb-alist '(("abode" "abide") ("abided" "abide") ("alighted" "alight") ("arose" "arise") ("arisen" "arise") ("awoke" "awake") ("awaked" "awake") ("awoken" "awake") ("baby-sat" "baby-sit") ("backbit" "backbite") ("backbitten" "backbite") ("backslid" "backslide") ("backslidden" "backslide") ("was" "be" "am" "is" "are") ("were" "be" "am" "is" "are") ("been" "be" "am" "is" "are") ("bore" "bear") ("bare" "bear") ("borne" "bear") ("born" "bear") ("beat" "beat") ("beaten" "beat") ("befell" "befall") ("befallen" "befall") ("begot" "beget") ("begat" "beget") ("begotten" "beget") ("began" "begin") ("begun" "begin") ("begirt" "begird") ("begirded" "begird") ("beheld" "behold") ("bent" "bend") ("bended" "bend") ("bereaved" "bereave") ("bereft" "bereave") ("besought" "beseech") ("beseeched" "beseech") ("beset" "beset") ("bespoke" "bespeak") ("bespoken" "bespeak") ("bestrewed" "bestrew") ("bestrewn" "bestrew") ("bestrode" "bestride") ("bestrid" "bestride") ("bestridden" "bestride") ("bet" "bet") ("betted" "bet") ("betook" "betake") ("betaken" "betake") ("bethought" "bethink") ("bade" "bid") ("bid" "bid") ("bad" "bid") ("bedden" "bid") ("bided" "bide") ("bode" "bide") ("bound" "bind") ("bit" "bite") ("bitten" "bite") ("bled" "bleed") ("blended" "blend") ("blent" "blend") ("blessed" "bless") ("blest" "bless") ("blew" "blow") ("blown" "blow") ("blowed" "blow") ("bottle-fed" "bottle-feed") ("broke" "break") ("broken" "break") ("breast-fed" "breast-feed") ("bred" "breed") ("brought" "bring") ("broadcast" "broadcast") ("broadcasted" "broadcast") ("browbeat" "browbeat") ("browbeaten" "browbeat") ("built" "build") ("builded" "build") ("burned" "burn") ("burnt" "burn") ("burst" "burst") ("busted" "bust") ("bust" "bust") ("bought" "buy") ("cast" "cast") ("chid" "chide") ("chided" "chide") ("chidden" "chide") ("chose" "choose") ("chosen" "choose") ("clove" "cleave") ("cleft" "cleave") ("cleaved" "cleave") ("cloven" "cleave") ("clave" "cleave") ("clung" "cling") ("clothed" "clothe") ("clad" "clothe") ("colorcast" "colorcast") ("clorcasted" "colorcast") ("came" "come") ("come" "come") ("cost" "cost") ("costed" "cost") ("countersank" "countersink") ("countersunk" "countersink") ("crept" "creep") ("crossbred" "crossbreed") ("crowed" "crow") ("crew" "crow") ("cursed" "curse") ("curst" "curse") ("cut" "cut") ("dared" "dare") ("durst" "dare") ("dealt" "deal") ("deep-froze" "deep-freeze") ("deep-freezed" "deep-freeze") ("deep-frozen" "deep-freeze") ("dug" "dig") ("digged" "dig") ("dived" "dive") ("dove" "dive") ("did" "do") ("done" "do") ("drew" "draw") ("drawn" "draw") ("dreamed" "dream") ("dreamt" "dream") ("drank" "drink") ("drunk" "drink") ("dripped" "drip") ("dript" "drip") ("drove" "drive") ("drave" "drive") ("driven" "drive") ("dropped" "drop") ("dropt" "drop") ("dwelt" "dwell") ("dwelled" "dwell") ("ate" "eat") ("eaten" "eat") ("fell" "fall") ("fallen" "fall") ("fed" "feed") ("felt" "feel") ("fought" "fight") ("found" "find") ("fled" "fly" "flee") ("flung" "fling") ("flew" "fly") ("flied" "fly") ("flown" "fly") ("forbore" "forbear") ("forborne" "forbear") ("forbade" "forbid") ("forbad" "forbid") ("forbidden" "forbid") ("forecast" "forecast") ("forecasted" "forecast") ("forewent" "forego") ("foregone" "forego") ("foreknew" "foreknow") ("foreknown" "foreknow") ("foreran" "forerun") ("forerun" "forerun") ("foresaw" "foresee") ("foreseen" "foresee") ("foreshowed" "foreshow") ("foreshown" "foreshow") ("foretold" "foretell") ("forgot" "forget") ("forgotten" "forget") ("forgave" "forgive") ("forgiven" "forgive") ("forwent" "forgo") ("forgone" "forgo") ("forsook" "forsake") ("forsaken" "forsake") ("forswore" "forswear") ("forsworn" "forswear") ("froze" "freeze") ("frozen" "freeze") ("gainsaid" "gainsay") ("gelded" "geld") ("gelt" "geld") ("got" "get") ("gotten" "get") ("ghostwrote" "ghostwrite") ("ghostwritten" "ghostwrite") ("gilded" "gild") ("gilt" "gild") ("girded" "gird") ("girt" "gird") ("gave" "give") ("given" "give") ("gnawed" "gnaw") ("gnawn" "gnaw") ("went" "go" "wend") ("gone" "go") ("graved" "grave") ("graven" "grave") ("ground" "grind") ("gripped" "grip") ("gript" "grip") ("grew" "grow") ("grown" "grow") ("hamstrung" "hamstring") ("hamstringed" "hamstring") ("hung" "hang") ("hanged" "hang") ("had" "have") ("heard" "hear") ("heaved" "heave") ("hove" "heave") ("hewed" "hew") ("hewn" "hew") ("hid" "hide") ("hidden" "hide") ("hit" "hit") ("held" "hold") ("hurt" "hurt") ("indwelt" "indwell") ("inlaid" "inlay") ("inlet" "inlet") ("inputted" "input") ("input" "input") ("inset" "inset") ("insetted" "inset") ("interwove" "interweave") ("interweaved" "interweave") ("jigsawed" "jigsaw") ("jigsawn" "jigsaw") ("kept" "keep") ("knelt" "kneel") ("kneeled" "kneel") ("knitted" "knit") ("knit" "knit") ("knew" "know") ("known" "know") ("laded" "lade") ("laden" "lade") ("laid" "lay") ("led" "lead") ("leaned" "lean") ("leant" "lean") ("leaped" "leap") ("leapt" "leap") ("learned" "learn") ("learnt" "learn") ("left" "leave") ("lent" "lend") ("let" "let") ("lay" "lie") ("lain" "lie") ("lighted" "light") ("lit" "light") ("lip-read" "lip-read") ("lost" "lose") ("made" "make") ("meant" "mean") ("met" "meet") ("melted" "melt") ("methougt" "methinks") ;; ("-" "methinks") ("misbecame" "misbecome") ("misbecome" "misbecome") ("miscast" "miscast") ("miscasted" "miscast") ("misdealt" "misdeal") ("misdid" "misdo") ("misdone" "misdo") ("misgave" "misgive") ("misgiven" "misgive") ("mishit" "mishit") ("mislaid" "mislay") ("misled" "mislead") ("misread" "misread") ("misspelt" "misspell") ("missplled" "misspell") ("misspent" "misspend") ("mistook" "mistake") ("mistaken" "mistake") ("misunderstood" "misunderstand") ("mowed" "mow") ("mown" "mow") ("offset" "offset") ("outbid" "outbid") ("outbade" "outbid") ("outbidden" "outbid") ("outdid" "outdo") ("outdone" "outdo") ("outfought" "outfight") ("outgrew" "outgrown") ("outgrown" "outgrown") ("outlaid" "outlay") ("output" "output") ("outputted" "output") ("ooutputted" "output") ("outrode" "outride") ("outridden" "outride") ("outran" "outrun") ("outrun" "outrun") ("outsold" "outsell") ("outshone" "outshine") ("outshot" "outshoot") ("outwore" "outwear") ("outworn" "outwear") ("overbore" "overbear") ("overborne" "overbear") ("overbid" "overbid") ("overblew" "overblow") ("overblown" "overblow") ("overcame" "overcome") ("overcome" "overcome") ("overdid" "overdo") ("overdone" "overdo") ("overdrew" "overdraw") ("overdrawn" "overdraw") ("overdrank" "overdrink") ("overdrunk" "overdrink") ("overate" "overeat") ("overeaten" "overeat") ("overfed" "overfeed") ("overflowed" "overflow") ("overflown" "overfly" "overflow") ("overflew" "overfly") ("overgrew" "overgrow") ("overgrown" "overgrow") ("overhung" "overhang") ("overhanged" "overhang") ("ovearheard" "overhear") ("overlaid" "overlay") ("overleaped" "overleap") ("overleapt" "overleap") ("overlay" "overlie") ("overlain" "overlie") ("overpaid" "overpay") ("overrode" "override") ("overridden" "override") ("overran" "overrun") ("overrun" "overrun") ("oversaw" "oversee") ("overseen" "oversee") ("oversold" "oversell") ("overset" "overset") ("overshot" "overshoot") ("overspent" "overspend") ("overspread" "overspread") ("overtook" "overtake") ("overtaken" "overtake") ("overthrew" "overthrow") ("overthrown" "overthrow") ("overworked" "overwork") ("overwrought" "overwork") ("partook" "partake") ("partaken" "partake") ("paid" "pay") ("penned" "pen") ("pent" "pen") ("pinch-hit" "pinch-hit") ("pleaded" "plead") ("plead" "plead") ("pled" "plead") ("prepaid" "prepay") ("preset" "preset") ("proofread" "proofread") ("proved" "prove") ("proven" "prove") ("put" "put") ("quick-froze" "quick-freeze") ("quick-frozen" "quick-freeze") ("quit" "quit") ("quitted" "quit") ("read" "read") ("reaved" "reave") ("reft" "reave") ("rebound" "rebind") ("rebroadcast" "rebroadcast") ("rebroadcasted" "rebroadcast") ("rebuilt" "rebuild") ("recast" "recast") ("recasted" "recast") ("re-did" "re-do") ("re-done" "re-do") ("reeved" "reeve") ("rove" "reeve") ("reheard" "rehear") ("relaid" "relay") ("remade" "remake") ("rent" "rend") ("repaid" "repay") ("reread" "reread") ("reran" "rerun") ("rerun" "rerun") ("resold" "resell") ("reset" "reset") ("retook" "retake") ("retaken" "retake") ("retold" "retell") ("rethought" "rethink") ("rewound" "rewind") ("rewinded" "rewind") ("rewrote" "rewrite") ("rewritten" "rewrite") ("rid" "ride") ;; ("rid" "ride" "rid") ("ridded" "rid") ("rode" "ride") ("ridden" "ride") ("rang" "ring") ("rung" "ring") ("rose" "rise") ("risen" "rise") ("rived" "rive") ("riven" "rive") ("roughcast" "roughcast") ("roughhewed" "roughhew") ("roughhewn" "roughhew") ("ran" "run") ("run" "run") ("sawed" "saw") ("sawn" "saw") ("said" "say") ("saw" "see") ("seen" "see") ("sought" "seek") ("sold" "sell") ("sent" "send") ("set" "set") ("sewed" "sew") ("sewn" "sew") ("shook" "shake") ("shaken" "shake") ("shaved" "shave") ("shaven" "shave") ("sheared" "shear") ("shore" "shear") ("shorn" "shear") ("shed" "shed") ("shone" "shine") ("shined" "shine") ("shit" "shit") ("shat" "shit") ("shitted" "shit") ("shod" "shoe") ("shoed" "shoe") ("shot" "shoot") ("showed" "show") ("shown" "show") ("shredded" "shred") ("shred" "shred") ("shrank" "shrink") ("shrunk" "shrink") ("shrunken" "shrink") ("shrived" "shrive") ("shrove" "shrive") ("shriven" "shrive") ("shut" "shut") ("sight-read" "sight-read") ("simulcast" "simulcast") ("simulcasted" "simulcast") ("sang" "sing") ("sung" "sing") ("sank" "sink") ("sunk" "sink") ("sunken" "sink") ("sat" "sit") ("sate" "sit") ("slew" "slay") ("slain" "slay") ("slept" "sleep") ("slid" "slide") ("slidden" "slide") ("slunk" "slink") ("smelled" "smell") ("smelt" "smell") ("smote" "smite") ("smitten" "smite") ("smit" "smite") ("sowed" "sow") ("sown" "sow") ("spoke" "speak") ("spoken" "speak") ("sped" "speed") ("speeded" "speed") ("spelled" "spell") ("spelt" "spell") ("spellbound" "spellbind") ("spent" "spend") ("spilled" "spill") ("spilt" "spill") ("spun" "spin") ("span" "spin") ("spat" "spit") ("spit" "spit") ("split" "split") ("spoiled" "spoil") ("spoilt" "spoil") ("spoon-fed" "spoon-feed") ("spread" "spread") ("sprang" "spring") ("sprung" "spring") ("stood" "stand") ("staved" "stave") ("stove" "stave") ("stayed" "stay") ("staid" "stay") ("stole" "steal") ("stolen" "steal") ("stuck" "stick") ("stung" "sting") ("stank" "stink") ("stunk" "stink") ("strewed" "strew") ("strewn" "strew") ("strode" "stride") ("stridden" "stride") ("struck" "strike") ("stricken" "strike") ("strung" "string") ("strove" "strive") ("striven" "strive") ("sublet" "sublet") ("sunburned" "sunburn") ("sunburnt" "sunburn") ("swore" "swear") ("sware" "swear") ("sworn" "swear") ("sweat" "sweat") ("sweated" "sweat") ("swept" "sweep") ("swelled" "swell") ("swollen" "swell") ("swam" "swim") ("swum" "swim") ("swung" "swing") ("took" "take") ("taken" "take") ("taught" "teach") ("tore" "tear") ("torn" "tear") ("telecast" "telecast") ("telecasted" "telecast") ("told" "tell") ("thought" "think") ("thrived" "thrive") ("throve" "thrive") ("thriven" "thrive") ("threw" "thrown") ("thrown" "thrown") ("thrust" "thrust") ("tossed" "toss") ("tost" "toss") ("trod" "tread") ("treaded" "tread") ("trode" "tread") ("trodden" "tread") ("typecast" "typecast") ("typewrote" "typewrite") ("typewritten" "typewrite") ("unbent" "unbend") ("unbended" "unbend") ("unbound" "unbind") ("underbid" "underbid") ("underbidden" "underbid") ("undercut" "undercut") ("underwent" "undergo") ("undergone" "undergo") ("underlaid" "underlay") ("underlay" "underlie") ("underlain" "underlie") ("underpaid" "underpay") ("undersold" "undersell") ("undershot" "undershoot") ("understood" "understand") ("undertook" "undertake") ("undertaken" "undertake") ("underwrote" "underwrite") ("underwritten" "underwrite") ("undid" "undo") ("undone" "undo") ("undrew" "undraw") ("undrawn" "undraw") ("ungirded" "ungird") ("ungirt" "ungird") ("unlearnt" "unlearn") ("unlearned" "unlearn") ("unmade" "unmake") ("unsaid" "unsay") ("unstuck" "unstick") ("unstrung" "unstring") ("unwound" "unwind") ("upheld" "uphold") ("uprose" "uprise") ("uprisen" "uprise") ("upset" "upset") ("upswept" "upsweep") ("woke" "wake") ("waked" "wake") ("woken" "wake") ("waylaid" "waylay") ("wore" "wear") ("worn" "wear") ("wove" "weave") ("weaved" "weave") ("woven" "weave") ("wed" "wed") ("wedded" "wed") ("wept" "weep") ("wended" "wend") ("wetted" "wet") ("wet" "wet") ("won" "win") ("wound" "wind") ("winded" "wind") ("wiredrew" "wiredraw") ("wiredrawn" "wiredraw") ("wist" "wit") ("withdrew" "withdraw") ("withdrawn" "withdraw") ("withheld" "withhold") ("withstood" "withstand") ("worked" "work") ("wrought" "work") ("wrapped" "wrap") ("wrapt" "wrap") ("wrung" "wring") ("wrote" "write") ("writ" "write") ("written" "write")) "ÉÔµ¬Â§Æ°»ì¤È¸¶·Á¤ÎÏ¢ÁÛÇÛÎó") (defun stem:extra (str) "\ ư»ì/·ÁÍÆ»ì¤Î³èÍÑ·Á¤È̾»ì¤ÎÊ£¿ô·Á¤Î³èÍѸìÈø¤ò¼è¤ê½ü¤¯Èó¸ø³«´Ø¿ô Í¿¤¨¤é¤ì¤¿¸ì¤Î¸¶·Á¤È¤·¤Æ²ÄǽÀ­¤Î¤¢¤ë¸ì¤Î¥ê¥¹¥È¤òÊÖ¤¹" (or (assoc str stem:irregular-verb-alist) (if (string= str "as") (list "as")) (let (c l stem) (setq l (cond ;; Èæ³Óµé/ºÇ¾åµé ((stem:match "\\([^aeiou]\\)\\1e\\(r\\|st\\)$") (list (substring str (match-beginning 1) (match-end 1)) (substring str (match-beginning 0) (match-beginning 2)))) ((stem:match "\\([^aeiou]\\)ie\\(r\\|st\\)$") (setq c (substring str (match-beginning 1) (match-end 1))) (list c (concat c "y") (concat c "ie"))) ((stem:match "e\\(r\\|st\\)$") '("" "e")) ;; 3ñ¸½/Ê£¿ô·Á ((stem:match "ches$") '("ch" "che")) ((stem:match "shes$") '("sh" "che")) ((stem:match "ses$") '("s" "se")) ((stem:match "xes$") '("x" "xe")) ((stem:match "zes$") '("z" "ze")) ((stem:match "ves$") '("f" "fe")) ((stem:match "\\([^aeiou]\\)oes$") (setq c (substring str -4 -3)) (list c (concat c "o") (concat c "oe"))) ((stem:match "\\([^aeiou]\\)ies$") (setq c (substring str -4 -3)) (list c (concat c "y") (concat c "ie"))) ((stem:match "es$") '("" "e")) ((stem:match "s$") '("")) ;; ²áµî·Á/²áµîʬ»ì ((stem:match "\\([^aeiou]\\)ied$") (setq c (substring str -4 -3)) (list c (concat c "y") (concat c "ie"))) ((stem:match "\\([^aeiou]\\)\\1ed$") (list (substring str -4 -3) (substring str -4 -1))) ((stem:match "cked$") '("c" "cke")) ((stem:match "ed$") '("" "e")) ;; ¸½ºßʬ»ì ((stem:match "\\([^aeiou]\\)\\1ing$") (list (substring str -5 -4))) ((stem:match "ing$") '("" "e")) )) (append (mapcar '(lambda (s) (concat stem s)) l) (list str)) ))) ;;;============================================================ ;;; ¸ø³«´Ø¿ô ;;;============================================================ (defun stem:stripping-suffix (str) "\ ³èÍѸìÈø¤ò¼è¤ê½ü¤¯´Ø¿ô Í¿¤¨¤é¤ì¤¿¸ì¤Î¸µ¤Î¸ì¤È¤·¤Æ²ÄǽÀ­¤Î¤¢¤ë¸ì¤Î¼­½ñ½ç¤Î¥ê¥¹¥È¤òÊÖ¤¹" (save-match-data (delq nil (let ((w "")) (mapcar (function (lambda (x) (if (string= x w) nil (setq w x)))) (sort (append ;; Âçʸ»ú¤ò¾®Ê¸»ú¤ËÊÑ´¹ (list (prog1 str (setq str (downcase str)))) ;; ÆÈ¼«¤Î¥Ò¥å¡¼¥ê¥¹¥Æ¥£¥Ã¥¯¥¹¤òŬÍÑ (stem:extra str) (if (> (length str) stem:minimum-word-length) ;; ñ¸ìŤ¬¾ò·ï¤òËþ¤¿¤»¤Ð¡¢Porter ¤Î¥¢¥ë¥´¥ê¥º¥à¤òŬÍÑ (mapcar '(lambda (func) (setq str (funcall func str))) '(stem:step1 stem:step2 stem:step3 stem:step4 stem:step5)))) 'string<)))))) (defun stem-english (str) "\ ³èÍѸìÈø¤ò¼è¤ê½ü¤¯´Ø¿ô Í¿¤¨¤é¤ì¤¿¸ì¤Î¸µ¤Î¸ì¤È¤·¤Æ²ÄǽÀ­¤Î¤¢¤ë¸ì¤Îʸ»úÎóĹ¤Î¾º½ç¤Î¥ê¥¹¥È¤òÊÖ¤¹" (sort (stem:stripping-suffix str) (function (lambda (a b) (< (length a) (length b)))))) ;; ¤³¤Î stem-english ¤Îưºî¤Ï¡¢ ;; ;; Id: stem.el,v 1.4 1998/11/30 09:27:27 tsuchiya Exp tsuchiya ;; ;; °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î stem.el ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤¿ stem:stripping-suffix ;; ¤Îưºî¤È¸ß´¹¤Ç¤¢¤ë¡£¸½ºß¤Î stem:stripping-suffix ¤Ï¼­½ñ½ç¤Î¥ê¥¹¥È¤ò ;; ÊÖ¤¹¤¿¤á¡¢°Û¤Ê¤ëưºî¤È¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ ;;; Porter ¤Î¥¢¥ë¥´¥ê¥º¥à¤òŬÍѤ¹¤ë´Ø¿ô (defun stem:stripping-inflection (word) "\ Porter ¤Î¥¢¥ë¥´¥ê¥º¥à¤Ë´ð¤Å¤¤¤ÆÇÉÀ¸¸ì¤ò½èÍý¤¹¤ë´Ø¿ô" (save-match-data (stem:step5 (stem:step4 (stem:step3 (stem:step2 (stem:step1 word))))))) lookup-1.4.1/texi/0000755000076400007640000000000010557547477014270 5ustar kazuhikokazuhikolookup-1.4.1/texi/README0000644000076400007640000000065707401226736015142 0ustar kazuhikokazuhiko$B%^%K%e%"%k$r0u:~$9$k>l9g$O!"(BTexinfo $B$HF|K\8l$NDL$k(B TeX $B$r%$%s%9%H!<%k$7!"(B $BNc$($Pe$2(B % dvi2ps lookup.dvi # PostScript $B$KJQ49(B % lpr lookup.ps # $B0u:~/dev/null 2>&1; then \ list='$(INFOS)'; \ for file in $$list; do \ echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ done; \ else : ; fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lookup-1.4.1/texi/ChangeLog0000644000076400007640000000414007404163674016027 0ustar kazuhikokazuhiko2001-12-08 Kazuhiko * lookup.texi: Add information about lookup-select-copyright. 2001-12-01 Kazuhiko * lookup.texi: Add information about image support and emacs-21 support. 1999-12-14 Keisuke Nishida * Makefile.am (MAINTAINERCLEANFILES): Remove generated files. 1999-12-01 Satoru Takabayashi * Makefile.am: Apply KOREEDA's patch [lookup-ja 1115] (DVIS): For making *.dvi (clean-generic): For purging temporary files. 1999-11-30 Satoru Takabayashi * Makefile.am (info_TEXINFOS): Commented out for not to use makeinfo to generate *.info. [lookup-ja 1028] (INFOS): New variable for defining generated info files. (install-data-local): New command for installing info files. (TEXIS): New variable for storing *.texi file names. (EXTRA_DIST): Include $(TEXIS) $(INFOS) (SUB_INFOS): New variable for defining *.info-[0-9] files. 1999-10-22 Kazuhiro Ito * lookup.texi: remove documents for old version. 1999-07-30 Satoru Takabayashi * lookup.texi: Fix typos and Clean garbages. 1999-07-27 Masatoshi Tsuchiya * lookup.texi: Add documents of dictionary options `:hiragana', `:expander', and `:expand-filter'. 1999-07-27 Satoru Takabayashi * lookup.texi: remove explanation for ndnmz agent. * lookup.texi: add explanation for ndsrd agent. 1999-07-02 Kazuhiro Ito * lookup.texi: remove explanation for dictionary option `:filters' 1999-02-06 NISHIDA Keisuke * lookup-guide.texi: New file. 1999-01-12 NISHIDA Keisuke * README: New file. 1998-10-20 NISHIDA Keisuke * texinfo.tex, texinfo-js.tex: New file with Japanized patch. (Thanks to Uichi Katsuta!) 1998-06-13 NISHIDA Keisuke * Version 0.9 released. 1998-03-05 NISHIDA Keisuke * Version 0.8 released. lookup-1.4.1/texi/Makefile.am0000644000076400007640000000316607401231060016276 0ustar kazuhikokazuhiko# We cannot use makeinfo to generate *.info because of incompatibility # between Emacs and XEmacs on Japanese character handling. [lookup-ja 1028] # info_TEXINFOS = lookup.texi lookup-guide.texi # EXTRA_DIST = texinfo-js.tex TEXIS = lookup.texi lookup-guide.texi INFOS = lookup.info lookup-guide.info DVIS = $(TEXIS:.texi=.dvi) SUB_INFOS = lookup.info-1 lookup.info-2 lookup.info-3 EXTRA_DIST = texinfo-js.tex $(TEXIS) $(INFOS) $(SUB_INFOS) MOSTLYCLEANFILES = lookup.pgs lookup-guide.pgs $(DVIS) MAINTAINERCLEANFILES = Makefile.in SUFFIXES = .texi .dvi .info .texi.dvi: ptex $< texindex $(<:.texi=.??) ptex $< clean-generic: rm -f *.aux *.toc *.log *.vrs *.cp *.pg *.cps *.fn *.fns\ *.ky *.kys *.tp *.tps *.vr all: lookup.info lookup-guide.info %.info: %.texi $(EMACS) -batch -q -no-site-file -l texinfmt \ -f batch-texinfo-format $? install-data-local: @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(infodir) @list='$(INFOS)'; \ for file in $$list; do \ d=$(srcdir); \ for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ if test -f $$d/$$ifile; then \ echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \ $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \ else : ; fi; \ done; \ done @$(POST_INSTALL) @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ list='$(INFOS)'; \ for file in $$list; do \ echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ done; \ else : ; fi lookup-1.4.1/texi/texinfo.tex0000644000076400007640000055724107401227015016455 0ustar kazuhikokazuhiko% texinfo.tex -- TeX macros to handle Texinfo files. \def\texinfoversion{1998-09-30}% % % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98 % Free Software Foundation, Inc. % % This texinfo.tex file 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. % % This texinfo.tex file 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 this texinfo.tex file; see the file COPYING. If not, write % to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % % In other words, you are welcome to use, share and improve this program. % You are forbidden to forbid anyone else to use, share and improve % what you give them. Help stamp out software-hoarding! % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % ftp://ftp.gnu.org/pub/gnu/texinfo.tex % /home/gd/gnu/doc/texinfo.tex on the GNU machines. % (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) % ftp://tug.org/tex/texinfo.tex % ftp://ctan.org/macros/texinfo/texinfo.tex % (and all CTAN mirrors, finger ctan@ctan.org for a list). % The texinfo.tex in the texinfo distribution itself could well be out % of date, so if that's what you're using, please check. % % Send bug reports to bug-texinfo@gnu.org. % Please include a precise test case in each bug report, % including a complete document with which we can reproduce the problem. % % To process a Texinfo manual with TeX, it's most reliable to use the % texi2dvi shell script that comes with the distribution. For simple % manuals, however, you can get away with: % tex foo.texi % texindex foo.?? % tex foo.texi % tex foo.texi % dvips foo.dvi -o # or whatever, to process the dvi file. % The extra runs of TeX get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. %************************************************ % Patch for ASCII/NTT Jtexinfo by ntp@isl.mei.co.jp, kusumi@isl.mei.co.jp % Original patch for NTT Jtexinfo by S. Tomura %************************************************ \newif\ifisJTeX \newif\ifisASCII \expandafter\ifx\csname gtfam\endcsname\relax % not ASCIITeX \expandafter\ifx\csname jfont\endcsname\relax % nor NTTTeX \isJTeXfalse \else \isJTeXtrue \isASCIIfalse \fi \else \isJTeXtrue \isASCIItrue \fi \ifisJTeX \def\ASCJtexinfoversion{j1.05} \message{ with ASCII/NTT jtexinfo extension [Version \ASCJtexinfoversion]:} \ifisASCII \message{Hmm, Your Japanese-TeX seems to be an ASCII version. Loading.} \else \message{Hmm, Your Japanese-TeX seems to be an NTT version. Loading.} \fi \fi % Make it possible to create a .fmt file just by loading this file: % if the underlying format is not loaded, start by loading it now. % Added by gildea November 1993. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi \message{Loading texinfo [version \texinfoversion]:} % If in a .fmt file, print the version number % and turn on active characters that we couldn't do earlier because % they might have appeared in the input file name. \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} % Save some parts of plain tex whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c \let\ptexcomma=\, \let\ptexdot=\. \let\ptexdots=\dots \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexi=\i \let\ptexlbrace=\{ \let\ptexrbrace=\} \let\ptexstar=\* \let\ptext=\t % We never want plain's outer \+ definition in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax \message{Basics,} \chardef\other=12 % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordon\undefined \gdef\putwordon{on}\fi \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi \ifx\putwordShortContents\undefined \gdef\putwordShortContents{Short Contents}\fi \ifx\putwordTableofContents\undefined\gdef\putwordTableofContents{Table of Contents}\fi % Ignore a token. % \def\gobble#1{} \hyphenation{ap-pen-dix} \hyphenation{mini-buf-fer mini-buf-fers} \hyphenation{eshell} \hyphenation{white-space} % Margin to add to right of even pages, to left of odd pages. \newdimen \bindingoffset \newdimen \normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% \ifx\eTeXversion\undefined \def\loggingall{\tracingcommands2 \tracingstats2 \tracingpages1 \tracingoutput1 \tracinglostchars1 \tracingmacros2 \tracingparagraphs1 \tracingrestores1 \showboxbreadth\maxdimen\showboxdepth\maxdimen }% \else \def\loggingall{\tracingcommands3 \tracingstats2 \tracingpages1 \tracingoutput1 \tracinglostchars1 \tracingmacros2 \tracingparagraphs1 \tracingrestores1 \tracingscantokens1 \tracingassigns1 \tracingifs1 \tracinggroups1 \tracingnesting2 \showboxbreadth\maxdimen\showboxdepth\maxdimen }% \fi % For @cropmarks command. % Do @cropmarks to get crop marks. % \newif\ifcropmarks \let\cropmarks = \cropmarkstrue % % Dimensions to add cropmarks at corners. % Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\cornerlong \cornerlong=1pc \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} \newbox\headlinebox \newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. \def\onepageout#1{% \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% % Have to do this stuff outside the \shipout because we want it to % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % \escapechar = `\\ % use backslash in output files. \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. \shipout\vbox{% \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize \line{\ewtop\hfil\ewtop}% \nointerlineskip \line{% \vbox{\moveleft\cornerthick\nstop}% \hfill \vbox{\moveright\cornerthick\nstop}% }% \vskip\topandbottommargin \line\bgroup \hfil % center the page within the outer (page) hsize. \ifodd\pageno\hskip\bindingoffset\fi \vbox\bgroup \fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingxxx.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 2\baselineskip \unvbox\footlinebox \fi % \ifcropmarks \egroup % end of \vbox\bgroup \hfil\egroup % end of (centering) \line\bgroup \vskip\topandbottommargin plus1fill minus1fill \boxmaxdepth = \cornerthick \line{% \vbox{\moveleft\cornerthick\nsbot}% \hfill \vbox{\moveright\cornerthick\nsbot}% }% \nointerlineskip \line{\ewbot\hfil\ewbot}% \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox }% end of group with \turnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} {\catcode`\@ =11 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi \dimen@=\dp#1 \unvbox#1 \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Here are the rules for the cropmarks. Note that they are % offset so that the space between them is truly \outerhsize or \outervsize % (P. A. MacKay, 12 November, 1986) % \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} \def\nstop{\vbox {\hrule height\cornerthick depth\cornerlong width\cornerthick}} \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} \def\nsbot{\vbox {\hrule height\cornerlong depth\cornerthick width\cornerthick}} % Parse an argument, then pass it to #1. The argument is the rest of % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % \def\parsearg#1{% \let\next = #1% \begingroup \obeylines \futurelet\temp\parseargx } % If the next token is an obeyed space (from an @example environment or % the like), remove it and recurse. Otherwise, we're done. \def\parseargx{% % \obeyedspace is defined far below, after the definition of \sepspaces. \ifx\obeyedspace\temp \expandafter\parseargdiscardspace \else \expandafter\parseargline \fi } % Remove a single space (as the delimiter token to the macro call). {\obeyspaces % \gdef\parseargdiscardspace {\futurelet\temp\parseargx}} {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. % % First remove any @c comment, then any @comment. % Result of each macro is put in \toks0. \argremovec #1\c\relax % \expandafter\argremovecomment \the\toks0 \comment\relax % % % Call the caller's macro, saved as \next in \parsearg. \expandafter\next\expandafter{\the\toks0}% }% } % Since all \c{,omment} does is throw away the argument, we can let TeX % do that for us. The \relax here is matched by the \relax in the call % in \parseargline; it could be more or less anything, its purpose is % just to delimit the argument to the \c. \def\argremovec#1\c#2\relax{\toks0 = {#1}} \def\argremovecomment#1\comment#2\relax{\toks0 = {#1}} % \argremovec{,omment} might leave us with trailing spaces, though; e.g., % @end itemize @c foo % will have two active spaces as part of the argument with the % `itemize'. Here we remove all active spaces from #1, and assign the % result to \toks0. % % This loses if there are any *other* active characters besides spaces % in the argument -- _ ^ +, for example -- since they get expanded. % Fortunately, Texinfo does not define any such commands. (If it ever % does, the catcode of the characters in questionwill have to be changed % here.) But this means we cannot call \removeactivespaces as part of % \argremovec{,omment}, since @c uses \parsearg, and thus the argument % that \parsearg gets might well have any character at all in it. % \def\removeactivespaces#1{% \begingroup \ignoreactivespaces \edef\temp{#1}% \global\toks0 = \expandafter{\temp}% \endgroup } % Change the active space to expand to nothing. % \begingroup \obeyspaces \gdef\ignoreactivespaces{\obeyspaces\let =\empty} \endgroup \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} %% These are used to keep @begin/@end levels from running away %% Call \inENV within environments (after a \begingroup) \newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi} \def\ENVcheck{% \ifENV\errmessage{Still within an environment; press RETURN to continue} \endgroup\fi} % This is not perfect, but it should reduce lossage % @begin foo is the same as @foo, for now. \newhelp\EMsimple{Press RETURN to continue.} \outer\def\begin{\parsearg\beginxxx} \def\beginxxx #1{% \expandafter\ifx\csname #1\endcsname\relax {\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else \csname #1\endcsname\fi} % @end foo executes the definition of \Efoo. % \def\end{\parsearg\endxxx} \def\endxxx #1{% \removeactivespaces{#1}% \edef\endthing{\the\toks0}% % \expandafter\ifx\csname E\endthing\endcsname\relax \expandafter\ifx\csname \endthing\endcsname\relax % There's no \foo, i.e., no ``environment'' foo. \errhelp = \EMsimple \errmessage{Undefined command `@end \endthing'}% \else \unmatchedenderror\endthing \fi \else % Everything's ok; the right environment has been started. \csname E\endthing\endcsname \fi } % There is an environment #1, but it hasn't been started. Give an error. % \def\unmatchedenderror#1{% \errhelp = \EMsimple \errmessage{This `@end #1' doesn't have a matching `@#1'}% } % Define the control sequence \E#1 to give an unmatched @end error. % \def\defineunmatchedend#1{% \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}% } % Single-spacing is done by various environments (specifically, in % \nonfillstart and \quotations). \newskip\singlespaceskip \singlespaceskip = 12.5pt \def\singlespace{% % Why was this kern here? It messes up equalizing space above and below % environments. --karl, 6may93 %{\advance \baselineskip by -\singlespaceskip %\kern \baselineskip}% \setleading \singlespaceskip } %% Simple single-character @ commands % @@ prints an @ % Kludge this until the fonts are right (grr). \def\@{{\tt\char64}} % This is turned off because it was never documented % and you can use @w{...} around a quote to suppress ligatures. %% Define @` and @' to be the same as ` and ' %% but suppressing ligatures. %\def\`{{`}} %\def\'{{'}} % Used to generate quoted braces. \def\mylbrace {{\tt\char123}} \def\myrbrace {{\tt\char125}} \let\{=\mylbrace \let\}=\myrbrace \begingroup % Definitions to produce actual \{ & \} command in an index. \catcode`\{ = 12 \catcode`\} = 12 \catcode`\[ = 1 \catcode`\] = 2 \catcode`\@ = 0 \catcode`\\ = 12 @gdef@lbracecmd[\{]% @gdef@rbracecmd[\}]% @endgroup % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H. \let\, = \c \let\dotaccent = \. \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \t \let\ubaraccent = \b \let\udotaccent = \d % Other special characters: @questiondown @exclamdown % Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% \ifx\temp\imacro \ptexi \else\ifx\temp\jmacro \j \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } % @: forces normal size whitespace following. \def\:{\spacefactor=1000 } % @* forces a line break. \def\*{\hfil\break\hbox{}\ignorespaces} % @. is an end-of-sentence period. \def\.{.\spacefactor=3000 } % @! is an end-of-sentence bang. \def\!{!\spacefactor=3000 } % @? is an end-of-sentence query. \def\?{?\spacefactor=3000 } % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would % produce a whole line of output instead of starting the paragraph. \def\w#1{\leavevmode\hbox{#1}} % @group ... @end group forces ... to be all on one page, by enclosing % it in a TeX vbox. We use \vtop instead of \vbox to construct the box % to keep its height that of a normal line. According to the rules for % \topskip (p.114 of the TeXbook), the glue inserted is % max (\topskip - \ht (first item), 0). If that height is large, % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % \def\group{\begingroup \ifnum\catcode13=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi % % The \vtop we start below produces a box with normal height and large % depth; thus, TeX puts \baselineskip glue before it, and (when the % next line of text is done) \lineskip glue after it. (See p.82 of % the TeXbook.) Thus, space below is not quite equal to space % above. But it's pretty close. \def\Egroup{% \egroup % End the \vtop. \endgroup % End the \group. }% % \vtop\bgroup % We have to put a strut on the last line in case the @group is in % the midst of an example, rather than completely enclosing it. % Otherwise, the interline space between the last line of the group % and the first line afterwards is too small. But we can't put the % strut in \Egroup, since there it would be on a line by itself. % Hence this just inserts a strut at the beginning of each line. \everypar = {\strut}% % % Since we have a strut on every line, we don't need any of TeX's % normal interline spacing. \offinterlineskip % % OK, but now we have to do something about blank % lines in the input in @example-like environments, which normally % just turn into \lisppar, which will insert no space now that we've % turned off the interline space. Simplest is to make them be an % empty paragraph. \ifx\par\lisppar \edef\par{\leavevmode \par}% % % Reset ^^M's definition to new definition of \par. \obeylines \fi % % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after % the `@group' to put extra space in the output. Since @group % should appear on a line by itself (according to the Texinfo % manual), we don't worry about eating any user text. \comment } % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % \newhelp\groupinvalidhelp{% group can only be used in environments such as @example,^^J% where each line of input produces a line of output.} % @need space-in-mils % forces a page break if there is not space-in-mils remaining. \newdimen\mil \mil=0.001in \def\need{\parsearg\needx} % Old definition--didn't work. %\def\needx #1{\par % %% This method tries to make TeX break the page naturally %% if the depth of the box does not fit. %{\baselineskip=0pt% %\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak %\prevdepth=-1000pt %}} \def\needx#1{% % Go into vertical mode, so we don't make a big box in the middle of a % paragraph. \par % % Don't add any leading before our big empty box, but allow a page % break, since the best break might be right here. \allowbreak \nointerlineskip \vtop to #1\mil{\vfil}% % % TeX does not even consider page breaks if a penalty added to the % main vertical list is 10000 or more. But in order to see if the % empty box we just added fits on the page, we must make it consider % page breaks. On the other hand, we don't want to actually break the % page after the empty box. So we use a penalty of 9999. % % There is an extremely small chance that TeX will actually break the % page at this \penalty, if there are no other feasible breakpoints in % sight. (If the user is using lots of big @group commands, which % almost-but-not-quite fill up a page, TeX will have a hard time doing % good page breaking, for example.) However, I could not construct an % example where a page broke at this \penalty; if it happens in a real % document, then we can reconsider our strategy. \penalty9999 % % Back up by the size of the box, whether we did a page break or not. \kern -#1\mil % % Do not allow a page break right after this kern. \nobreak } % @br forces paragraph break \let\br = \par % @dots{} output an ellipsis using the current font. % We do .5em per period so that it has the same spacing in a typewriter % font as three actual period characters. % \def\dots{% \leavevmode \hbox to 1.5em{% \hskip 0pt plus 0.25fil minus 0.25fil .\hss.\hss.% \hskip 0pt plus 0.5fil minus 0.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \leavevmode \hbox to 2em{% \hskip 0pt plus 0.25fil minus 0.25fil .\hss.\hss.\hss.% \hskip 0pt plus 0.5fil minus 0.5fil }% \spacefactor=3000 } % @page forces the start of a new page % \def\page{\par\vfill\supereject} % @exdent text.... % outputs text on separate line in roman font, starting at standard page margin % This records the amount of indent in the innermost environment. % That's how much \exdent should take out. \newskip\exdentamount % This defn is used inside fill environments such as @defun. \def\exdent{\parsearg\exdentyyy} \def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}} % This defn is used inside nofill environments such as @example. \def\nofillexdent{\parsearg\nofillexdentyyy} \def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{TEXT} puts TEXT in the margin next to the current paragraph. \def\inmargin#1{% \strut\vadjust{\nobreak\kern-\strutdepth \vtop to \strutdepth{\baselineskip\strutdepth\vss \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}} \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} %\hbox{{\rm#1}}\hfil\break}} % @include file insert text of that file as input. % Allow normal characters that we make active in the argument (a file name). \def\include{\begingroup \catcode`\\=12 \catcode`~=12 \catcode`^=12 \catcode`_=12 \catcode`|=12 \catcode`<=12 \catcode`>=12 \catcode`+=12 \parsearg\includezzz} % Restore active chars for included file. \def\includezzz#1{\endgroup\begingroup % Read the included file in a group so nested @include's work. \def\thisfile{#1}% \input\thisfile \endgroup} \def\thisfile{} % @center line outputs that line, centered \def\center{\parsearg\centerzzz} \def\centerzzz #1{{\advance\hsize by -\leftskip \advance\hsize by -\rightskip \centerline{#1}}} % @sp n outputs n lines of vertical space \def\sp{\parsearg\spxxx} \def\spxxx #1{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment \def\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} \let\c=\comment % @paragraphindent is defined for the Info formatting commands only. \let\paragraphindent=\comment % Prevent errors for section commands. % Used in @ignore and in failing conditionals. \def\ignoresections{% \let\chapter=\relax \let\unnumbered=\relax \let\top=\relax \let\unnumberedsec=\relax \let\unnumberedsection=\relax \let\unnumberedsubsec=\relax \let\unnumberedsubsection=\relax \let\unnumberedsubsubsec=\relax \let\unnumberedsubsubsection=\relax \let\section=\relax \let\subsec=\relax \let\subsubsec=\relax \let\subsection=\relax \let\subsubsection=\relax \let\appendix=\relax \let\appendixsec=\relax \let\appendixsection=\relax \let\appendixsubsec=\relax \let\appendixsubsection=\relax \let\appendixsubsubsec=\relax \let\appendixsubsubsection=\relax \let\contents=\relax \let\smallbook=\relax \let\titlepage=\relax } % Used in nested conditionals, where we have to parse the Texinfo source % and so want to turn off most commands, in case they are used % incorrectly. % \def\ignoremorecommands{% \let\defcodeindex = \relax \let\defcv = \relax \let\deffn = \relax \let\deffnx = \relax \let\defindex = \relax \let\defivar = \relax \let\defmac = \relax \let\defmethod = \relax \let\defop = \relax \let\defopt = \relax \let\defspec = \relax \let\deftp = \relax \let\deftypefn = \relax \let\deftypefun = \relax \let\deftypevar = \relax \let\deftypevr = \relax \let\defun = \relax \let\defvar = \relax \let\defvr = \relax \let\ref = \relax \let\xref = \relax \let\printindex = \relax \let\pxref = \relax \let\settitle = \relax \let\setchapternewpage = \relax \let\setchapterstyle = \relax \let\everyheading = \relax \let\evenheading = \relax \let\oddheading = \relax \let\everyfooting = \relax \let\evenfooting = \relax \let\oddfooting = \relax \let\headings = \relax \let\include = \relax \let\lowersections = \relax \let\down = \relax \let\raisesections = \relax \let\up = \relax \let\set = \relax \let\clear = \relax \let\item = \relax } % Ignore @ignore ... @end ignore. % \def\ignore{\doignore{ignore}} % Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text. % \def\ifinfo{\doignore{ifinfo}} \def\ifhtml{\doignore{ifhtml}} \def\ifnottex{\doignore{ifnottex}} \def\html{\doignore{html}} \def\menu{\doignore{menu}} \def\direntry{\doignore{direntry}} % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory = \comment % Ignore text until a line `@end #1'. % \def\doignore#1{\begingroup % Don't complain about control sequences we have declared \outer. \ignoresections % % Define a command to swallow text until we reach `@end #1'. % This @ is a catcode 12 token (that is the normal catcode of @ in % this texinfo.tex file). We change the catcode of @ below to match. \long\def\doignoretext##1@end #1{\enddoignore}% % % Make sure that spaces turn into tokens that match what \doignoretext wants. \catcode32 = 10 % % Ignore braces, too, so mismatched braces don't cause trouble. \catcode`\{ = 9 \catcode`\} = 9 % % We must not have @c interpreted as a control sequence. \catcode`\@ = 12 % % Make the letter c a comment character so that the rest of the line % will be ignored. This way, the document can have (for example) % @c @end ifinfo % and the @end ifinfo will be properly ignored. % (We've just changed @ to catcode 12.) \catcode`\c = 14 % % And now expand that command. \doignoretext } % What we do to finish off ignored text. % \def\enddoignore{\endgroup\ignorespaces}% \newif\ifwarnedobs\warnedobsfalse \def\obstexwarn{% \ifwarnedobs\relax\else % We need to warn folks that they may have trouble with TeX 3.0. % This uses \immediate\write16 rather than \message to get newlines. \immediate\write16{} \immediate\write16{***WARNING*** for users of Unix TeX 3.0!} \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).} \immediate\write16{If you are running another version of TeX, relax.} \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} \immediate\write16{ Then upgrade your TeX installation if you can.} \immediate\write16{ (See ftp://ftp.gnu.ai.mit.edu/pub/gnu/TeX.README.)} \immediate\write16{If you are stuck with version 3.0, run the} \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} \immediate\write16{ to use a workaround.} \immediate\write16{} \global\warnedobstrue \fi } % **In TeX 3.0, setting text in \nullfont hangs tex. For a % workaround (which requires the file ``dummy.tfm'' to be installed), % uncomment the following line: %%%%%\font\nullfont=dummy\let\obstexwarn=\relax % Ignore text, except that we keep track of conditional commands for % purposes of nesting, up to an `@end #1' command. % \def\nestedignore#1{% \obstexwarn % We must actually expand the ignored text to look for the @end % command, so that nested ignore constructs work. Thus, we put the % text into a \vbox and then do nothing with the result. To minimize % the change of memory overflow, we follow the approach outlined on % page 401 of the TeXbook: make the current font be a dummy font. % \setbox0 = \vbox\bgroup % Don't complain about control sequences we have declared \outer. \ignoresections % % Define `@end #1' to end the box, which will in turn undefine the % @end command again. \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}% % % We are going to be parsing Texinfo commands. Most cause no % trouble when they are used incorrectly, but some commands do % complicated argument parsing or otherwise get confused, so we % undefine them. % % We can't do anything about stray @-signs, unfortunately; % they'll produce `undefined control sequence' errors. \ignoremorecommands % % Set the current font to be \nullfont, a TeX primitive, and define % all the font commands to also use \nullfont. We don't use % dummy.tfm, as suggested in the TeXbook, because not all sites % might have that installed. Therefore, math mode will still % produce output, but that should be an extremely small amount of % stuff compared to the main input. % \nullfont \let\tenrm = \nullfont \let\tenit = \nullfont \let\tensl = \nullfont \let\tenbf = \nullfont \let\tentt = \nullfont \let\smallcaps = \nullfont \let\tensf = \nullfont % Similarly for index fonts (mostly for their use in % smallexample) \let\indrm = \nullfont \let\indit = \nullfont \let\indsl = \nullfont \let\indbf = \nullfont \let\indtt = \nullfont \let\indsc = \nullfont \let\indsf = \nullfont % % Don't complain when characters are missing from the fonts. \tracinglostchars = 0 % % Don't bother to do space factor calculations. \frenchspacing % % Don't report underfull hboxes. \hbadness = 10000 % % Do minimal line-breaking. \pretolerance = 10000 % % Do not execute instructions in @tex \def\tex{\doignore{tex}}% % Do not execute macro definitions. % `c' is a comment character, so the word `macro' will get cut off. \def\macro{\doignore{ma}}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. Make sure the catcode of space is correct to avoid % losing inside @example, for instance. % \def\set{\begingroup\catcode` =10 \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. \parsearg\setxxx} \def\setxxx#1{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% \def\temp{#2}% \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted. \fi \endgroup } % Can't use \xdef to pre-expand #2 and save some time, since \temp or % \next or other control sequences that we've defined might get us into % an infinite loop. Consider `@set foo @cite{bar}'. \def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}} % @clear VAR clears (i.e., unsets) the variable VAR. % \def\clear{\parsearg\clearxxx} \def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax} % @value{foo} gets the text saved in variable foo. % { \catcode`\_ = \active % % We might end up with active _ or - characters in the argument if % we're called from @code, as @code{@value{foo-bar_}}. So \let any % such active characters to their normal equivalents. \gdef\value{\begingroup \catcode`\-=12 \catcode`\_=12 \indexbreaks \let_\normalunderscore \valuexxx} } \def\valuexxx#1{\expandablevalue{#1}\endgroup} % We have this subroutine so that we can handle at least some @value's % properly in indexes (we \let\value to this in \indexdummies). Ones % whose names contain - or _ still won't work, but we can't do anything % about that. The command has to be fully expandable, since the result % winds up in the index file. This means that if the variable's value % contains other Texinfo commands, it's almost certain it will fail % (although perhaps we could fix that with sufficient work to do a % one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']v}% \else \csname SET#1\endcsname \fi } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % \def\ifset{\parsearg\ifsetxxx} \def\ifsetxxx #1{% \expandafter\ifx\csname SET#1\endcsname\relax \expandafter\ifsetfail \else \expandafter\ifsetsucceed \fi } \def\ifsetsucceed{\conditionalsucceed{ifset}} \def\ifsetfail{\nestedignore{ifset}} \defineunmatchedend{ifset} % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % \def\ifclear{\parsearg\ifclearxxx} \def\ifclearxxx #1{% \expandafter\ifx\csname SET#1\endcsname\relax \expandafter\ifclearsucceed \else \expandafter\ifclearfail \fi } \def\ifclearsucceed{\conditionalsucceed{ifclear}} \def\ifclearfail{\nestedignore{ifclear}} \defineunmatchedend{ifclear} % @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text % following, through the first @end iftex (etc.). Make `@end iftex' % (etc.) valid only after an @iftex. % \def\iftex{\conditionalsucceed{iftex}} \def\ifnothtml{\conditionalsucceed{ifnothtml}} \def\ifnotinfo{\conditionalsucceed{ifnotinfo}} \defineunmatchedend{iftex} \defineunmatchedend{ifnothtml} \defineunmatchedend{ifnotinfo} % We can't just want to start a group at @iftex (for example) and end it % at @end iftex, since then @set commands inside the conditional have no % effect (they'd get reverted at the end of the group). So we must % define \Eiftex to redefine itself to be its previous value. (We can't % just define it to fail again with an ``unmatched end'' error, since % the @ifset might be nested.) % \def\conditionalsucceed#1{% \edef\temp{% % Remember the current value of \E#1. \let\nece{prevE#1} = \nece{E#1}% % % At the `@end #1', redefine \E#1 to be its previous value. \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% }% \temp } % We need to expand lots of \csname's, but we don't want to expand the % control sequences after we've constructed them. % \def\nece#1{\expandafter\noexpand\csname#1\endcsname} % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math means output in math mode. % We don't use $'s directly in the definition of \math because control % sequences like \math are expanded when the toc file is written. Then, % we read the toc file back, the $'s will be normal characters (as they % should be, according to the definition of Texinfo). So we must use a % control sequence to switch into and out of math mode. % % This isn't quite enough for @math to work properly in indices, but it % seems unlikely it will ever be needed there. % \let\implicitmath = $ \def\math#1{\implicitmath #1\implicitmath} % @bullet and @minus need the same treatment as @math, just above. \def\bullet{\implicitmath\ptexbullet\implicitmath} \def\minus{\implicitmath-\implicitmath} % @refill is a no-op. \let\refill=\relax % If working on a large document in chapters, it is convenient to % be able to disable indexing, cross-referencing, and contents, for test runs. % This is done with @novalidate (before @setfilename). % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % @setfilename is done at the beginning of every texinfo file. % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% \iflinks \readauxfile \fi % \openindices needs to do some work in any case. \openindices \fixbackslash % Turn off hack to swallow `\input texinfo'. \global\let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. % Just to be on the safe side, close the input stream before the \input. \openin 1 texinfo.cnf \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi \closein1 \temp % \comment % Ignore the actual filename. } % Called from \setfilename. % \def\openindices{% \newindex{cp}% \newcodeindex{fn}% \newcodeindex{vr}% \newcodeindex{tp}% \newcodeindex{ky}% \newcodeindex{pg}% } % @bye. \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} \message{fonts,} % Font-change commands. % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf analogous to plain's \rm, etc. \newfam\sffam \def\sf{\fam=\sffam \tensf} \let\li = \sf % Sometimes we call it \li, not \sf. % We don't need math for this one. \def\ttsl{\tenttsl} %** % For NTT TeX, define dummy font families compatible with ASCII. % Unfortunately, \newfam in the \if..\fi raise an error, so we should % redefine \newfam even with ASCII Japanese TeX. % \newfam\minfam \def\mc{\fam\minfam\tenmin}% \newfam\gtfam \def\gt{\fam\gtfam\tengt}% \ifisJTeX\else \let\mc=\relax \let\gt=\relax \fi %** by ntp@isl.mei % Use Computer Modern fonts at \magstephalf (11pt). \newcount\mainmagstep \mainmagstep=\magstephalf % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). % #3 is the font's design size, #4 is a scale factor \def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\undefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} \def\rmbshape{bx} %where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} \def\ttbshape{tt} %\def\ttslshape{sltt} \def\ttslshape{ti} \def\itshape{ti} \def\itbshape{ti} \def\slshape{sl} \def\slbshape{bx} \def\sfshape{ss} \def\sfbshape{ss} \def\scshape{csc} \def\scbshape{csc} \ifx\bigger\relax \let\mainmagstep=\magstep1 \setfont\textrm\rmshape{12}{1000} \setfont\texttt\ttshape{12}{1000} \else \setfont\textrm\rmshape{10}{\mainmagstep} \setfont\texttt\ttshape{10}{\mainmagstep} \fi % Instead of cmb10, you many want to use cmbx10. % cmbx10 is a prettier font on its own, but cmb10 % looks better when embedded in a line with cmr10. \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} \setfont\textsl\slshape{10}{\mainmagstep} \setfont\textsf\sfshape{10}{\mainmagstep} \setfont\textsc\scshape{10}{\mainmagstep} \setfont\textttsl\ttslshape{10}{\mainmagstep} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep %** \ifisJTeX \ifisASCII \font\textmin=min10 scaled \mainmagstep \font\textgt=goth10 scaled \mainmagstep \else \jfont\textmin=dm10 scaled \mainmagstep \jfont\textgt=dg10 scaled \mainmagstep \fi \else \let\textmin=\relax \let\textgt=\relax \fi % ntp@isl.mei.co.jp %** % A few fonts for @defun, etc. \setfont\defbf\bxshape{10}{\magstep1} %was 1314 \setfont\deftt\ttshape{10}{\magstep1} %\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} %** \ifisJTeX \ifisASCII \font\defgt=min10 scaled \magstep1 \else \jfont\defgt=dg10 scaled \magstep1 \fi \else \let\defgt=\relax \fi \def\df{\let\tentt=\deftt\let\tenbf=\defbf \let\tengt=\defgt \bf\gt} % ntp % Fonts for indices and small examples (9pt). % We actually use the slanted font rather than the italic, % because texinfo normally uses the slanted fonts for that. % Do not make many font distinctions in general in the index, since they % aren't very useful. \setfont\ninett\ttshape{9}{1000} \setfont\ninettsl\ttslshape{10}{900} \setfont\indrm\rmshape{9}{1000} \setfont\indit\itshape{9}{1000} \setfont\indsl\slshape{9}{1000} \let\indtt=\ninett \let\indttsl=\ninettsl \let\indsf=\indrm \let\indbf=\indrm \setfont\indsc\scshape{10}{900} \font\indi=cmmi9 \font\indsy=cmsy9 \ifisJTeX \ifisASCII \font\indmin=min9 \font\indgt=goth9 \else \jfont\indmin=dm9 \jfont\indgt=dg9 \fi \else \let\indmin=\relax \let\indgt=\relax \fi \let\indmc=\indmin % ntp % Fonts for title page: \setfont\titlerm\rmbshape{12}{\magstep3} \setfont\titleit\itbshape{10}{\magstep4} \setfont\titlesl\slbshape{10}{\magstep4} \setfont\titlett\ttbshape{12}{\magstep3} \setfont\titlettsl\ttslshape{10}{\magstep4} \setfont\titlesf\sfbshape{17}{\magstep1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \ifisJTeX \ifisASCII \font\titlemc=goth10 scaled \magstep4 \else \jfont\titlemc=dg10 scaled \magstep4 \fi \else \let\titlemc=\relax \fi \def\authorrm{\secrm} % Chapter (and unnumbered) fonts (17.28pt). \setfont\chaprm\rmbshape{12}{\magstep2} \setfont\chapit\itbshape{10}{\magstep3} \setfont\chapsl\slbshape{10}{\magstep3} \setfont\chaptt\ttbshape{12}{\magstep2} \setfont\chapttsl\ttslshape{10}{\magstep3} \setfont\chapsf\sfbshape{17}{1000} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3} %\font\chapi=cmmi12 scaled \magstep2 \font\chapi=cmmi10 scaled \magstep3 % ntp \font\chapsy=cmsy10 scaled \magstep3 %** \ifisJTeX \ifisASCII \font\chapmin=goth10 scaled \magstep3 \else \jfont\chapmin=dg10 scaled \magstep3 \fi \else \let\chapmin=\relax \fi \let\chapgt=\chapmin %** % Section fonts (14.4pt). \setfont\secrm\rmbshape{12}{\magstep1} \setfont\secit\itbshape{10}{\magstep2} \setfont\secsl\slbshape{10}{\magstep2} \setfont\sectt\ttbshape{12}{\magstep1} \setfont\secttsl\ttslshape{10}{\magstep2} \setfont\secsf\sfbshape{12}{\magstep1} \let\secbf\secrm %** \ifisJTeX \ifisASCII \font\secmin=goth10 scaled \magstep2 \else \jfont\secmin=dg10 scaled \magstep2 \fi \else \let\secmin=\relax \fi \let\secgt=\secmin \ifisJTeX \let\authormc=\secmin \else \let\authormc=\relax \fi %** \setfont\secsc\scbshape{10}{\magstep2} %\font\seci=cmmi12 scaled \magstep1 \font\seci=cmmi10 scaled \magstep2 \font\secsy=cmsy10 scaled \magstep2 % \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad. % \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded. % \setfont\ssecsl\slshape{10}{\magstep1} % \setfont\ssectt\ttshape{10}{\magstep1} % \setfont\ssecsf\sfshape{10}{\magstep1} %\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx. %\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than %\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1. %\setfont\ssectt\ttshape{10}{1315} %\setfont\ssecsf\sfshape{10}{1315} %\let\ssecbf=\ssecrm % Subsection fonts (13.15pt). \setfont\ssecrm\rmbshape{12}{\magstephalf} \setfont\ssecit\itbshape{10}{1315} \setfont\ssecsl\slbshape{10}{1315} \setfont\ssectt\ttbshape{12}{\magstephalf} \setfont\ssecttsl\ttslshape{10}{1315} \setfont\ssecsf\sfbshape{12}{\magstephalf} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{\magstep1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 %** \ifisJTeX \ifisASCII \font\ssecmin=goth10 scaled \magstep1 \else \jfont\ssecmin=dg10 scaled \magstep1 \fi \else \let\ssecmin=\relax \fi \let\ssecgt=\ssecmin %** % The smallcaps and symbol fonts should actually be scaled \magstep1.5, % but that is not a standard magnification. % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since % texinfo doesn't allow for producing subscripts and superscripts, we % don't bother to reset \scriptfont and \scriptscriptfont (which would % also require loading a lot more fonts). % \def\resetmathfonts{% \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf \textfont\ttfam = \tentt \textfont\sffam = \tensf \ifisJTeX \ifisASCII \textfont\minfam = \tenmin \textfont\gtfam = \tengt % ntp \fi \fi } % The font-changing commands redefine the meanings of \tenSTYLE, instead % of just \STYLE. We do this so that font changes will continue to work % in math mode, where it is the current \fam that is relevant in most % cases, not the current font. Plain TeX does \def\bf{\fam=\bffam % \tenbf}, for example. By redefining \tenbf, we obviate the need to % redefine \bf itself. \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl \let\tenmin=\textmin \let\tengt=\textgt % ntp@isl.mei.co.jp \resetmathfonts} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl \resetmathfonts \setleading{25pt}} \def\titlefont#1{{\titlefonts\rm\titlemc #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl \let\tenmin=\chapmin \let\tengt=\chapgt % ntp@isl.mei.co.jp \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl \let\tenmin=\secmin \let\tengt=\secgt % ntp@isl.mei.co.jp \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl \let\tenmin=\ssecmin \let\tengt=\ssecgt % ntp@isl.mei.co.jp \resetmathfonts \setleading{15pt}} \let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf? \def\indexfonts{% \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl \let\tenmin=\indmin \let\tengt=\indgt % ntp@isl.mei.co.jp \resetmathfonts \setleading{12pt}} % Set up the default fonts, so we can use them for creating boxes. % \textfonts % Define these so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000} \setfont\shortcontbf\bxshape{12}{1000} \setfont\shortcontsl\slshape{12}{1000} %** \ifisJTeX \ifisASCII \font\shortcontmc=min10 \font\shortcontgt=goth10 \else \jfont\shortcontmc=dm10 \jfont\shortcontgt=dg10 \fi \else \let\shortcontmc=\relax \let\shortcontgt=\relax \fi %** %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} \def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx} \def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx} \let\i=\smartitalic \let\var=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic \let\cite=\smartslanted \def\b#1{{\bf #1}} \let\strong=\b % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } \def\t#1{% {\tt \rawbackslash \frenchspacing #1}% \null } \let\ttfont=\t \def\samp#1{`\tclose{#1}'\null} \setfont\smallrm\rmshape{8}{1000} \font\smallsy=cmsy9 \def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% \vbox{\hrule\kern-0.4pt \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% \kern-0.4pt\hrule}% \kern-.06em\raise0.4pt\hbox{\angleright}}}} % The old definition, with no lozenge: %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @file, @option are the same as @samp. \let\file=\samp \let\option=\samp % @code is a modification of @t, % which makes spaces the same size as normal in the surrounding text. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \rawbackslash \frenchspacing #1% }% \null } % We *must* turn on hyphenation at `-' and `_' in \code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. % -- rms. { \catcode`\-=\active \catcode`\_=\active % \global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex } % % If we end up with any active - characters when handling the index, % just treat them as a normal -. \global\def\indexbreaks{\catcode`\-=\active \let-\realdash} } \def\realdash{-} \def\codedash{-\discretionary{}{}{}} \def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}} \def\codex #1{\tclose{#1}\endgroup} %\let\exp=\tclose %Was temporary % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \def\kbdinputstyle{\parsearg\kbdinputstylexxx} \def\kbdinputstylexxx#1{% \def\arg{#1}% \ifx\arg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\arg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\arg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is kbdinputdistinct. (Too much of a hassle to call the macro, % the catcodes are wrong for parsearg to work.) \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\look}}\fi \else{\tclose{\kbdfont\look}}\fi} % For @url, @env, @command quotes seem unnecessary, so use \code. \let\url=\code \let\env=\code \let\command=\code % @uref (abbreviation for `urlref') takes an optional second argument % specifying the text to display. First (mandatory) arg is the url. % Perhaps eventually put in a hypertex \special here. % \def\uref#1{\urefxxx #1,,\finish} \def\urefxxx#1,#2,#3\finish{% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \unhbox0\ (\code{#1})% \else \code{#1}% \fi } % rms does not like the angle brackets --karl, 17may97. % So now @email is just like @uref. %\def\email#1{\angleleft{\tt #1}\angleright} \let\email=\uref % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. % \def\ifmonospace{\ifdim\fontdimen3\font=0pt } % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} \def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} % Explicit font changes: @r, @sc, undocumented @ii. %\def\r#1{{\rm #1}} % roman font \def\r#1{{\rm\mc #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @acronym downcases the argument and prints in smallcaps. \def\acronym#1{{\smallcaps \lowercase{#1}}} % @pounds{} is a sterling sign. \def\pounds{{\it\$}} \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. \newif\ifseenauthor \newif\iffinishedtitlepage % Do an implicit @contents or @shortcontents after @end titlepage if the % user says @contentsaftertitlepage or @shortcontentsaftertitlepage. % \newif\ifsetcontentsaftertitlepage \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue \def\shorttitlepage{\parsearg\shorttitlepagezzz} \def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} \def\titlepage{\begingroup \parindent=0pt \textfonts \let\subtitlerm=\tenrm %** \let\subtitlemc=\tenmin %** % \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% %** \def\subtitlefont{\subtitlerm \subtitlemc \normalbaselineskip = 13pt \normalbaselines}% %** % % \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% %** \def\authorfont{\authorrm\authormc \normalbaselineskip = 16pt \normalbaselines}% %** % % Leave some space at the very top of the page. \vglue\titlepagetopglue % % Now you can print the title using @title. \def\title{\parsearg\titlezzz}% \def\titlezzz##1{\leftline{\titlefonts\rm ##1} % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue % % Now you can put text using @subtitle. \def\subtitle{\parsearg\subtitlezzz}% \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}% % % @author should come last, but may come many times. \def\author{\parsearg\authorzzz}% \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi {\authorfont \leftline{##1}}}% % % Most title ``pages'' are actually two pages long, with space % at the top of the second. We don't want the ragged left on the second. \let\oldpage = \page \def\page{% \iffinishedtitlepage\else \finishtitlepage \fi \oldpage \let\page = \oldpage \hbox{}}% % \def\page{\oldpage \hbox{}} } \def\Etitlepage{% \iffinishedtitlepage\else \finishtitlepage \fi % It is important to do the page break before ending the group, % because the headline and footline are only empty inside the group. % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage \endgroup % % If they want short, they certainly want long too. \ifsetshortcontentsaftertitlepage \shortcontents \contents \global\let\shortcontents = \relax \global\let\contents = \relax \fi % \ifsetcontentsaftertitlepage \contents \global\let\contents = \relax \global\let\shortcontents = \relax \fi % \HEADINGSon } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } %%% Set up page headings and footings. \let\thispage=\folio \newtoks\evenheadline % headline on even pages \newtoks\oddheadline % headline on odd pages \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make Tex use those variables \headline={{\textfonts\rm \mc \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \mc \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}\HEADINGShook} \let\HEADINGShook=\relax % Commands to set those variables. % For example, this is what @headings on does % @evenheading @thistitle|@thispage|@thischapter % @oddheading @thischapter|@thispage|@thistitle % @evenfooting @thisfile|| % @oddfooting ||@thisfile \def\evenheading{\parsearg\evenheadingxxx} \def\oddheading{\parsearg\oddheadingxxx} \def\everyheading{\parsearg\everyheadingxxx} \def\evenfooting{\parsearg\evenfootingxxx} \def\oddfooting{\parsearg\oddfootingxxx} \def\everyfooting{\parsearg\everyfootingxxx} {\catcode`\@=0 % \gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish} \gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish} \gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} \gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} \gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. \global\advance\pageheight by -\baselineskip \global\advance\vsize by -\baselineskip } \gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}} % }% unbind the catcode of @. % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \def\headings #1 {\csname HEADINGS#1\endcsname} \def\HEADINGSoff{ \global\evenheadline={\hfil} \global\evenfootline={\hfil} \global\oddheadline={\hfil} \global\oddfootline={\hfil}} \HEADINGSoff % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. \def\HEADINGSdouble{ \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{ \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } \def\HEADINGSon{\HEADINGSdouble} \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter \def\HEADINGSdoublex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } % Subroutines used in generating headings % Produces Day Month Year style of output. \def\today{\number\day\space \ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\year} % Use this if you want the Month Day, Year style of output. %\def\today{\ifcase\month\or %January\or February\or March\or April\or May\or June\or %July\or August\or September\or October\or November\or December\fi %\space\number\day, \number\year} % @settitle line... specifies the title of the document, for headings % It generates no output of its own \def\thistitle{No Title} \def\settitle{\parsearg\settitlezzz} \def\settitlezzz #1{\gdef\thistitle{#1}} \message{tables,} % Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in % default indentation of @itemize and @enumerate text \newdimen\itemindent \itemindent=.3in % margin between end of table item and start of table text. \newdimen\itemmargin \itemmargin=.1in % used internally for \itemindent minus \itemmargin \newdimen\itemmax % Note @table, @vtable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). \newif\ifitemxneedsnegativevskip \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} \def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz} \def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz} \def\internalBkitem{\smallbreak \parsearg\kitemzzz} \def\internalBkitemx{\itemxpar \parsearg\kitemzzz} \def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}% \itemzzz {#1}} \def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}% \itemzzz {#1}} \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent \setbox0=\hbox{\itemfont{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % % If the item text does not fit in the space we have, put it on a line % by itself, and do not allow a page break either before or after that % line. We do not start a paragraph here because then if the next % command is, e.g., @kindex, the whatsit would get put into the % horizontal list on a line by itself, resulting in extra blank space. \ifdim \wd0>\itemmax % % Make this a paragraph so we get the \parskip glue and wrapping, % but leave it ragged-right. \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent \advance\rightskip by0pt plus1fil \leavevmode\unhbox0\par \endgroup % % We're going to be starting a paragraph, but we don't want the % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % % Stop a page break at the \parskip glue coming up. Unfortunately % we can't prevent a possible page break at the following % \baselineskip glue. \nobreak \endgroup \itemxneedsnegativevskipfalse \else % The item text fits into the space. Start a paragraph, so that the % following text (if any) will end up on the same line. \noindent % Do this with kerns and \unhbox so that if there is a footnote in % the item text, it can migrate to the main vertical list and % eventually be printed. \nobreak\kern-\tableindent \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 \unhbox0 \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue \fi } \def\item{\errmessage{@item while not in a table}} \def\itemx{\errmessage{@itemx while not in a table}} \def\kitem{\errmessage{@kitem while not in a table}} \def\kitemx{\errmessage{@kitemx while not in a table}} \def\xitem{\errmessage{@xitem while not in a table}} \def\xitemx{\errmessage{@xitemx while not in a table}} % Contains a kludge to get @end[description] to work. \def\description{\tablez{\dontindex}{1}{}{}{}{}} % @table, @ftable, @vtable. \def\table{\begingroup\inENV\obeylines\obeyspaces\tablex} {\obeylines\obeyspaces% \gdef\tablex #1^^M{% \tabley\dontindex#1 \endtabley}} \def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex} {\obeylines\obeyspaces% \gdef\ftablex #1^^M{% \tabley\fnitemindex#1 \endtabley \def\Eftable{\endgraf\afterenvbreak\endgroup}% \let\Etable=\relax}} \def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex} {\obeylines\obeyspaces% \gdef\vtablex #1^^M{% \tabley\vritemindex#1 \endtabley \def\Evtable{\endgraf\afterenvbreak\endgroup}% \let\Etable=\relax}} \def\dontindex #1{} \def\fnitemindex #1{\doind {fn}{\code{#1}}}% \def\vritemindex #1{\doind {vr}{\code{#1}}}% {\obeyspaces % \gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup% \tablez{#1}{#2}{#3}{#4}{#5}{#6}}} \def\tablez #1#2#3#4#5#6{% \aboveenvbreak % \begingroup % \def\Edescription{\Etable}% Necessary kludge. \let\itemindex=#1% \ifnum 0#3>0 \advance \leftskip by #3\mil \fi % \ifnum 0#4>0 \tableindent=#4\mil \fi % \ifnum 0#5>0 \advance \rightskip by #5\mil \fi % \def\itemfont{#2}% \itemmax=\tableindent % \advance \itemmax by -\itemmargin % \advance \leftskip by \tableindent % \exdentamount=\tableindent \parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi% \def\Etable{\endgraf\afterenvbreak\endgroup}% \let\item = \internalBitem % \let\itemx = \internalBitemx % \let\kitem = \internalBkitem % \let\kitemx = \internalBkitemx % \let\xitem = \internalBxitem % \let\xitemx = \internalBxitemx % } % This is the counter used by @enumerate, which is really @itemize \newcount \itemno \def\itemize{\parsearg\itemizezzz} \def\itemizezzz #1{% \begingroup % ended by the @end itemize \itemizey {#1}{\Eitemize} } \def\itemizey #1#2{% \aboveenvbreak % \itemmax=\itemindent % \advance \itemmax by -\itemmargin % \advance \leftskip by \itemindent % \exdentamount=\itemindent \parindent = 0pt % \parskip = \smallskipamount % \ifdim \parskip=0pt \parskip=2pt \fi% \def#2{\endgraf\afterenvbreak\endgroup}% \def\itemcontents{#1}% \let\item=\itemizeitem} % Set sfcode to normal for the chars that usually have another value. % These are `.?!:;,' \def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. % \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% % Allow an optional argument of an uppercase letter, lowercase letter, % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % \def\enumerate{\parsearg\enumeratezzz} \def\enumeratezzz #1{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% \begingroup % ended by the @end enumerate % % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi % % Detect if the argument is a single token. If so, it might be a % letter. Otherwise, the only valid thing it can be is a number. % (We will always have one token, because of the test we just made. % This is a good thing, since \splitoff doesn't work given nothing at % all -- the first parameter is undelimited.) \expandafter\splitoff\thearg\endmark \ifx\rest\empty % Only one token in the argument. It could still be anything. % A ``lowercase letter'' is one whose \lccode is nonzero. % An ``uppercase letter'' is one whose \lccode is both nonzero, and % not equal to itself. % Otherwise, we assume it's a number. % % We need the \relax at the end of the \ifnum lines to stop TeX from % continuing to look for a . % \ifnum\lccode\expandafter`\thearg=0\relax \numericenumerate % a number (we hope) \else % It's a letter. \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax \lowercaseenumerate % lowercase letter \else \uppercaseenumerate % uppercase letter \fi \fi \else % Multiple tokens in the argument. We hope it's a number. \numericenumerate \fi } % An @enumerate whose labels are integers. The starting integer is % given in \thearg. % \def\numericenumerate{% \itemno = \thearg \startenumeration{\the\itemno}% } % The starting (lowercase) letter is in \thearg. \def\lowercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more lowercase letters in @enumerate; get a bigger alphabet}% \fi \char\lccode\itemno }% } % The starting (uppercase) letter is in \thearg. \def\uppercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more uppercase letters in @enumerate; get a bigger alphabet} \fi \char\uccode\itemno }% } % Call itemizey, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 \itemizey{#1.}\Eenumerate\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg % to @enumerate. % \def\alphaenumerate{\enumerate{a}} \def\capsenumerate{\enumerate{A}} \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} % Definition of @item while inside @itemize. \def\itemizeitem{% \advance\itemno by 1 {\let\par=\endgraf \smallbreak}% \ifhmode \errmessage{In hmode at itemizeitem}\fi {\parskip=0in \hskip 0pt \hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% \vadjust{\penalty 1200}}% \flushcr} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 % % @multitable ... @end multitable will make as many columns as desired. % Contents of each column will wrap at width given in preamble. Width % can be specified either with sample text given in a template line, % or in percent of \hsize, the current width of text on page. % Table can continue over pages but will only break between lines. % To make preamble: % % Either define widths of columns in terms of percent of \hsize: % @multitable @columnfractions .25 .3 .45 % @item ... % % Numbers following @columnfractions are the percent of the total % current hsize to be used for each column. You may use as many % columns as desired. % Or use a template: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. % % For those who want to use more than one line's worth of words in % the preamble, break the line within one argument and it % will parse correctly, i.e., % % @multitable {Column 1 template} {Column 2 template} {Column 3 % template} % Not: % @multitable {Column 1 template} {Column 2 template} % {Column 3 template} % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. % @item, @tab, @multitable or @end multitable do not need to be on their % own lines, but it will not hurt if they are. % Sample multitable: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item first col stuff @tab second col stuff @tab third col % @item % first col stuff % @tab % second col stuff % @tab % third col % @item first col stuff @tab second col stuff % @tab Many paragraphs of text may be used in any column. % % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. % @end multitable % Default dimensions may be reset by user. % @multitableparskip is vertical space between paragraphs in table. % @multitableparindent is paragraph indent in table. % @multitablecolmargin is horizontal space to be left between columns. % @multitablelinespace is space to leave between table items, baseline % to baseline. % 0pt means it depends on current normal line spacing. % \newskip\multitableparskip \newskip\multitableparindent \newdimen\multitablecolspace \newskip\multitablelinespace \multitableparskip=0pt \multitableparindent=6pt \multitablecolspace=12pt \multitablelinespace=0pt % Macros used to set up halign preamble: % \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} \let\columnfractions\relax \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent % 2/1/96, to allow fractions to be given with more than one digit. \def\pickupwholefraction#1 {\global\advance\colcount by1 % \expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}% \setuptable} \newcount\colcount \def\setuptable#1{\def\firstarg{#1}% \ifx\firstarg\xendsetuptable\let\go\relax% \else \ifx\firstarg\xcolumnfractions\global\setpercenttrue% \else \ifsetpercent \let\go\pickupwholefraction % In this case arg of setuptable % is the decimal point before the % number given in percent of hsize. % We don't need this so we don't use it. \else \global\advance\colcount by1 \setbox0=\hbox{#1 }% Add a normal word space as a separator; % typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi% \fi% \ifx\go\pickupwholefraction\else\let\go\setuptable\fi% \fi\go} % multitable syntax \def\tab{&\hskip1sp\relax} % 2/2/96 % tiny skip here makes sure this column space is % maintained, even if it is never used. % @multitable ... @end multitable definitions: \def\multitable{\parsearg\dotable} \def\dotable#1{\bgroup \vskip\parskip \let\item\crcr \tolerance=9500 \hbadness=9500 \setmultitablespacing \parskip=\multitableparskip \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}% % % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % % \everycr will reset column counter, \colcount, at the end of % each line. Every column entry will cause \colcount to advance by one. % The table preamble % looks at the current \colcount to find the correct column width. \everycr{\noalign{% % % \filbreak%% keeps underfull box messages off when table breaks over pages. % Maybe so, but it also creates really weird page breaks when the table % breaks over pages. Wouldn't \vfil be better? Wait until the problem % manifests itself, so it can be fixed for real --karl. \global\colcount=0\relax}}% % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup&\global\advance\colcount by 1\relax \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname % % In order to keep entries from bumping into each other % we will add a \leftskip of \multitablecolspace to all columns after % the first one. % % If a template has been used, we will add \multitablecolspace % to the width of each template entry. % % If the user has set preamble in terms of percent of \hsize we will % use that dimension as the width of the column, and the \leftskip % will keep entries from bumping into each other. Table will start at % left margin and final column will justify at right margin. % % Make sure we don't inherit \rightskip from the outer environment. \rightskip=0pt \ifnum\colcount=1 % The first column will be indented with the surrounding text. \advance\hsize by\leftskip \else \ifsetpercent \else % If user has not set preamble in terms of percent of \hsize % we will advance \hsize by \multitablecolspace. \advance\hsize by \multitablecolspace \fi % In either case we will make \leftskip=\multitablecolspace: \leftskip=\multitablecolspace \fi % Ignoring space at the beginning and end avoids an occasional spurious % blank line, when TeX decides to break the line at the space before the % box from the multistrut, so the strut ends up on a line by itself. % For example: % @multitable @columnfractions .11 .89 % @item @code{#} % @tab Legal holiday which is valid in major parts of the whole country. % Is automatically provided with highlighting sequences respectively marking % characters. \noindent\ignorespaces##\unskip\multistrut}\cr } \def\setmultitablespacing{% test to see if user has set \multitablelinespace. % If so, do nothing. If not, give it an appropriate dimension based on % current baselineskip. \ifdim\multitablelinespace=0pt %% strut to put in table in case some entry doesn't have descenders, %% to keep lines equally spaced \let\multistrut = \strut %% Test to see if parskip is larger than space between lines of %% table. If not, do nothing. %% If so, set to same dimension as multitablelinespace. \else \gdef\multistrut{\vrule height\multitablelinespace depth\dp0 width0pt\relax} \fi \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller %% than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller %% than skip between lines in the table. \fi} \message{indexing,} % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite % except not \outer, so it can be used within \newindex. {\catcode`\@=11 \gdef\newwrite{\alloc@7\write\chardef\sixt@@n}} % \newindex {foo} defines an index named foo. % It automatically defines \fooindex such that % \fooindex ...rest of line... puts an entry in the index foo. % It also defines \fooindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is foo. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 % Open the file \fi \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. \def\newcodeindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 \fi \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}} } \def\defcodeindex{\parsearg\newcodeindex} % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \def\synindex#1 #2 {% \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname \expandafter\closeout\csname#1indfile\endcsname \expandafter\let\csname#1indfile\endcsname=\synindexfoo \expandafter\xdef\csname#1index\endcsname{% define \xxxindex \noexpand\doindex{#2}}% } % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. \def\syncodeindex#1 #2 {% \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname \expandafter\closeout\csname#1indfile\endcsname \expandafter\let\csname#1indfile\endcsname=\synindexfoo \expandafter\xdef\csname#1index\endcsname{% define \xxxindex \noexpand\docodeindex{#2}}% } % Define \doindex, the driver for all \fooindex macros. % Argument #1 is generated by the calling \fooindex macro, % and it is "foo", the name of the index. % \doindex just uses \parsearg; it calls \doind for the actual work. % This is because \doind is more useful to call from other macros. % There is also \dosubind {index}{topic}{subtopic} % which makes an entry in a two-level index such as the operation index. \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} \def\singleindexer #1{\doind{\indexname}{#1}} %********************************************* %*** For the compat'y with texinfo.tex.ntt %*** jtexinfo patch by S.Tomura 89-Dec-7 \def\Jempty{} \def\singleindexer #1{\singleindexerB#1[]\singleindexerA} \def\singleindexerB#1[#2]{\edef\Jone{#1}\edef\Jtwo{#2}% \ifx\Jempty\Jtwo\let\Jnext=\relax\let\singleindexerA=\singleindexerD% \else\let\Jnext=\singleindexerC\let\singleindexerA=\singleindexerE\fi% \Jnext} \def\singleindexerC#1[]{} \def\singleindexerD{\doind{\indexname}{\Jone}} \def\singleindexerE{\Jdoind{\indexname}{\Jone}{\Jtwo}} %**** end of patch %********************************************* % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} \def\indexdummies{% \def\ { }% % Take care of the plain tex accent commands. \def\"{\realbackslash "}% \def\`{\realbackslash `}% \def\'{\realbackslash '}% \def\^{\realbackslash ^}% \def\~{\realbackslash ~}% \def\={\realbackslash =}% \def\b{\realbackslash b}% \def\c{\realbackslash c}% \def\d{\realbackslash d}% \def\u{\realbackslash u}% \def\v{\realbackslash v}% \def\H{\realbackslash H}% % Take care of the plain tex special European modified letters. \def\oe{\realbackslash oe}% \def\ae{\realbackslash ae}% \def\aa{\realbackslash aa}% \def\OE{\realbackslash OE}% \def\AE{\realbackslash AE}% \def\AA{\realbackslash AA}% \def\o{\realbackslash o}% \def\O{\realbackslash O}% \def\l{\realbackslash l}% \def\L{\realbackslash L}% \def\ss{\realbackslash ss}% % Take care of texinfo commands likely to appear in an index entry. % (Must be a way to avoid doing expansion at all, and thus not have to % laboriously list every single command here.) \def\@{@}% will be @@ when we switch to @ as escape char. %\let\{ = \lbracecmd %\let\} = \rbracecmd \def\_{{\realbackslash _}}% \def\w{\realbackslash w }% \def\bf{\realbackslash bf }% %\def\rm{\realbackslash rm }% \def\sl{\realbackslash sl }% \def\sf{\realbackslash sf}% \def\tt{\realbackslash tt}% \def\gtr{\realbackslash gtr}% \def\less{\realbackslash less}% \def\hat{\realbackslash hat}% \def\TeX{\realbackslash TeX}% \def\dots{\realbackslash dots }% \def\result{\realbackslash result}% \def\equiv{\realbackslash equiv}% \def\expansion{\realbackslash expansion}% \def\print{\realbackslash print}% \def\error{\realbackslash error}% \def\point{\realbackslash point}% \def\copyright{\realbackslash copyright}% \def\tclose##1{\realbackslash tclose {##1}}% \def\code##1{\realbackslash code {##1}}% \def\dotless##1{\realbackslash dotless {##1}}% \def\samp##1{\realbackslash samp {##1}}% \def\,##1{\realbackslash ,{##1}}% \def\t##1{\realbackslash t {##1}}% \def\r##1{\realbackslash r {##1}}% \def\i##1{\realbackslash i {##1}}% \def\b##1{\realbackslash b {##1}}% \def\sc##1{\realbackslash sc {##1}}% \def\cite##1{\realbackslash cite {##1}}% \def\key##1{\realbackslash key {##1}}% \def\file##1{\realbackslash file {##1}}% \def\var##1{\realbackslash var {##1}}% \def\kbd##1{\realbackslash kbd {##1}}% \def\dfn##1{\realbackslash dfn {##1}}% \def\emph##1{\realbackslash emph {##1}}% % % Handle some cases of @value -- where the variable name does not % contain - or _, and the value does not contain any % (non-fully-expandable) commands. \let\value = \expandablevalue % \unsepspaces } % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the % expansion of \tie (\\leavevmode \penalty \@M \ ). {\obeyspaces \gdef\unsepspaces{\obeyspaces\let =\space}} % \indexnofonts no-ops all font-change commands. % This is used when outputting the strings to sort the index by. \def\indexdummyfont#1{#1} \def\indexdummytex{TeX} \def\indexdummydots{...} \def\indexnofonts{% % Just ignore accents. \let\,=\indexdummyfont \let\"=\indexdummyfont \let\`=\indexdummyfont \let\'=\indexdummyfont \let\^=\indexdummyfont \let\~=\indexdummyfont \let\==\indexdummyfont \let\b=\indexdummyfont \let\c=\indexdummyfont \let\d=\indexdummyfont \let\u=\indexdummyfont \let\v=\indexdummyfont \let\H=\indexdummyfont \let\dotless=\indexdummyfont % Take care of the plain tex special European modified letters. \def\oe{oe}% \def\ae{ae}% \def\aa{aa}% \def\OE{OE}% \def\AE{AE}% \def\AA{AA}% \def\o{o}% \def\O{O}% \def\l{l}% \def\L{L}% \def\ss{ss}% \let\w=\indexdummyfont \let\t=\indexdummyfont \let\r=\indexdummyfont \let\i=\indexdummyfont \let\b=\indexdummyfont \let\emph=\indexdummyfont \let\strong=\indexdummyfont \let\cite=\indexdummyfont \let\sc=\indexdummyfont %Don't no-op \tt, since it isn't a user-level command % and is used in the definitions of the active chars like <, >, |... %\let\tt=\indexdummyfont \let\tclose=\indexdummyfont \let\code=\indexdummyfont \let\file=\indexdummyfont \let\samp=\indexdummyfont \let\kbd=\indexdummyfont \let\key=\indexdummyfont \let\var=\indexdummyfont \let\TeX=\indexdummytex \let\dots=\indexdummydots \def\@{@}% } % To define \realbackslash, we must make \ not be an escape. % We must first make another character (@) an escape % so we do not become unable to do a definition. {\catcode`\@=0 \catcode`\\=\other @gdef@realbackslash{\}} \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? % For \ifx comparisons. \def\emptymacro{\empty} % Most index entries go through here, but \dosubind is the general case. % \def\doind#1#2{\dosubind{#1}{#2}\empty} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- % \empty if called from \doind, as we usually are. The main exception % is with defuns, which call us directly. % \def\dosubind#1#2#3{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% \fi {% \count255=\lastpenalty {% \indexdummies % Must do this here, since \bf, etc expand at this stage \escapechar=`\\ {% \let\folio = 0% We will expand all macros now EXCEPT \folio. \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % \def\thirdarg{#3}% % % If third arg is present, precede it with space in sort key. \ifx\thirdarg\emptymacro \let\subentry = \empty \else \def\subentry{ #3}% \fi % % First process the index-string with all font commands turned off % to get the string to sort by. {\indexnofonts \xdef\indexsorttmp{#2\subentry}}% % % Now produce the complete index entry, with both the sort key and the % original text, including any font commands. \toks0 = {#2}% \edef\temp{% \write\csname#1indfile\endcsname{% \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}% }% % % If third (subentry) arg is present, add it to the index string. \ifx\thirdarg\emptymacro \else \toks0 = {#3}% \edef\temp{\temp{\the\toks0}}% \fi % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write will make \lastskip zero. The result is that sequences % like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % \iflinks \ifvmode \skip0 = \lastskip \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi \fi % \temp % do the write % % \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi \fi }% }% \penalty\count255 }% } % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each subtopic. % Define the user-accessible indexing commands % @findex, @vindex, @kindex, @cindex. \def\findex {\fnindex} \def\kindex {\kyindex} \def\cindex {\cpindex} \def\vindex {\vrindex} \def\tindex {\tpindex} \def\pindex {\pgindex} \def\cindexsub {\begingroup\obeylines\cindexsub} {\obeylines % \gdef\cindexsub "#1" #2^^M{\endgroup % \dosubind{cp}{#2}{#1}}} %********************************************* %*** jtexinfo patch by S.Tomura 89-Nov-23 %*** \def\Jdoind #1#2#3{% {\indexdummies % Must do this here, since \bf, etc expand at this stage \count10=\lastpenalty % \escapechar=`\\% {\let\folio=0% Expand all macros now EXCEPT \folio \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash in the indx. % % Now process the index-string once, with all font commands turned off, % to get the string to sort the index by. {\indexnofonts \xdef\temp1{#3}% }% % Now produce the complete index entry. We process the index-string again, % this time with font commands expanded, to get what to print in the index. \edef\temp{% \write \csname#1indfile\endcsname{% \realbackslash entry {\temp1}{\folio}{#2}}}% \temp }% \penalty\count10}} %*** end of patch %********************************************* % Define the macros used in formatting output of the sorted index material. % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % \def\printindex{\parsearg\doprintindex} \def\doprintindex#1{\begingroup \dobreak \chapheadingskip{10000}% % \indexfonts \rm \mc \tolerance = 9500 \indexbreaks % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains % \initial {@} % as its first line, TeX doesn't complain about mismatched braces % (because it thinks @} is a control sequence). \catcode`\@ = 11 \openin 1 \jobname.#1s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the % index. The easiest way to prevent this problem is to make sure % there is some text. (Index is nonexistent) \else % % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. \read 1 to \temp \ifeof 1 (Index is empty) \else % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. \def\indexbackslash{\rawbackslashxx}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns \input \jobname.#1s \enddoublecolumns \fi \fi \closein 1 \endgroup} % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. \def\initial#1{{% % Some minor font changes for the special characters. \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt % % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. \penalty -300 % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column % to column. It still won't often be perfect, because of the stretch % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus .5\baselineskip \leftline{\secbf\secgt #1}% \vskip .33\baselineskip plus .1\baselineskip % % Do our best not to break after the initial. \nobreak }} % This typesets a paragraph consisting of #1, dot leaders, and then #2 % flush to the right margin. It is used for index and table of contents % entries. The paragraph is indented by \leftskip. % \def\entry#1#2{\begingroup % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % Do not fill out the last line with white space. \parfillskip = 0in % % No extra space above this paragraph. \parskip = 0in % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % \hangindent is only relevant when the entry text and page number % don't both fit on one line. In that case, bob suggests starting the % dots pretty far over on the line. Unfortunately, a large % indentation looks wrong when the entry text itself is broken across % lines. So we use a small indentation and put up with long leaders. % % \hangafter is reset to 1 (which is the value we want) at the start % of each paragraph, so we need not do anything with that. \hangindent = 2em % % When the entry text needs to be broken, just fill out the first line % with blank space. \rightskip = 0pt plus1fil % % A bit of stretch before each entry for the benefit of balancing columns. \vskip 0pt plus1pt % % Start a ``paragraph'' for the index entry so the line breaking % parameters we've set above will have an effect. \noindent % % Insert the text of the index entry. TeX will do line-breaking on it. #1% % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. \def\tempa{{\rm }}% \def\tempb{#2}% \edef\tempc{\tempa}% \edef\tempd{\tempb}% \ifx\tempc\tempd\ \else% % % If we must, put the page number on a line of its own, and fill out % this line with blank space. (The \hfil is overwhelmed with the % fill leaders glue in \indexdotfill if the page number does fit.) \hfil\penalty50 \null\nobreak\indexdotfill % Have leaders before the page number. % % The `\ ' here is removed by the implicit \unskip that TeX does as % part of (the primitive) \par. Without it, a spurious underfull % \hbox ensues. \ #2% The page number ends the paragraph. \fi% \par \endgroup} % Like \dotfill except takes at least 1 em. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} \newskip\secondaryindent \secondaryindent=0.5cm \def\secondary #1#2{ {\parfillskip=0in \parskip=0in \hangindent =1in \hangafter=1 \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par }} % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. \catcode`\@=11 \newbox\partialpage \newdimen\doublecolumnhsize \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % Grab any single-column material above us. \output = {\global\setbox\partialpage = \vbox{% % % Here is a possibility not foreseen in manmac: if we accumulate a % whole lot of material, we might end up calling this \output % routine twice in a row (see the doublecol-lose test, which is % essentially a couple of indexes with @setchapternewpage off). In % that case, we must prevent the second \partialpage from % simply overwriting the first, causing us to lose the page. % This will preserve it until a real output routine can ship it % out. Generally, \partialpage will be empty when this runs and % this will be a no-op. \unvbox\partialpage % % Unvbox the main output page. \unvbox255 \kern-\topskip \kern\baselineskip }}% \eject % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant % below is chosen so that the gutter has the same value (well, +-<1pt) % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) % been clobbered. % \doublecolumnhsize = \hsize \advance\doublecolumnhsize by -.04154\hsize \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) \advance\vsize by -\ht\partialpage \vsize = 2\vsize } % The double-column output routine for all double-column pages except % the last. % \def\doublecolumnout{% \splittopskip=\topskip \splitmaxdepth=\maxdepth % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \dimen@ = \vsize \divide\dimen@ by 2 % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \penalty\outputpenalty } \def\pagesofar{% % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split, in box0 and box2. \advance\vsize by \ht\partialpage \unvbox\partialpage % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } \def\enddoublecolumns{% \output = {% % Split the last of the double-column material. Leave on the % current page, no automatic page break. \balancecolumns % % If we end up splitting too much material for the current page, % though, there will be another page break right after this \output % invocation ends. Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. (We hope \balancecolumns will never be % called on to balance too much material, but if it is, this makes % the output somewhat more palatable.) \global\output = {\onepageout{\pagecontents\PAGE}}% % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column % typesetting, so reset \pagegoal to the normal \vsize. \pagegoal = \vsize }% \eject \endgroup % started in \begindoublecolumns } \def\balancecolumns{% % Called at the end of the double column material. \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 % target to split to %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% \splittopskip = \topskip % Loop until we get a decent breakpoint. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht3>\dimen@ \global\advance\dimen@ by 1pt \repeat }% %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% \setbox0=\vbox to\dimen@{\unvbox1}% \setbox2=\vbox to\dimen@{\unvbox3}% % \pagesofar } \catcode`\@ = \other \message{sectioning,} % Define chapters, sections, etc. \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 \newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ \def\appendixletter{\char\the\appendixno} % Each @chapter defines this as the name of the chapter. % page headings and footings can use it. @section does likewise. \def\thischapter{} \def\thissection{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raise/lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} \let\up=\raisesections % original BFox name % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name % Choose a numbered-heading macro % #1 is heading level if unmodified by @raisesections or @lowersections % #2 is text for heading \def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 \ifcase\absseclevel \chapterzzz{#2} \or \seczzz{#2} \or \numberedsubseczzz{#2} \or \numberedsubsubseczzz{#2} \else \ifnum \absseclevel<0 \chapterzzz{#2} \else \numberedsubsubseczzz{#2} \fi \fi } % like \numhead, but chooses appendix heading levels \def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 \ifcase\absseclevel \appendixzzz{#2} \or \appendixsectionzzz{#2} \or \appendixsubseczzz{#2} \or \appendixsubsubseczzz{#2} \else \ifnum \absseclevel<0 \appendixzzz{#2} \else \appendixsubsubseczzz{#2} \fi \fi } % like \numhead, but chooses numberless heading levels \def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 \ifcase\absseclevel \unnumberedzzz{#2} \or \unnumberedseczzz{#2} \or \unnumberedsubseczzz{#2} \or \unnumberedsubsubseczzz{#2} \else \ifnum \absseclevel<0 \unnumberedzzz{#2} \else \unnumberedsubsubseczzz{#2} \fi \fi } % @chapter, @appendix, @unnumbered. \def\thischaptername{No Chapter Title} \outer\def\chapter{\parsearg\chapteryyy} \def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz #1{% \secno=0 \subsecno=0 \subsubsecno=0 \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% \chapmacro {#1}{\the\chapno}% \gdef\thissection{#1}% \gdef\thischaptername{#1}% % We don't substitute the actual chapter name into \thischapter % because we don't want its macros evaluated now. \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% {\the\chapno}}}% \temp \donoderef \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\def\appendix{\parsearg\appendixyyy} \def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz \def\appendixzzz #1{% \secno=0 \subsecno=0 \subsubsecno=0 \global\advance \appendixno by 1 \message{\putwordAppendix\space \appendixletter}% \chapmacro {#1}{\putwordAppendix{} \appendixletter}% \gdef\thissection{#1}% \gdef\thischaptername{#1}% \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% {\putwordAppendix{} \appendixletter}}}% \temp \appendixnoderef \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. \outer\def\centerchap{\parsearg\centerchapyyy} \def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}} % @top is like @unnumbered. \outer\def\top{\parsearg\unnumberedyyy} \outer\def\unnumbered{\parsearg\unnumberedyyy} \def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz \def\unnumberedzzz #1{% \secno=0 \subsecno=0 \subsubsecno=0 % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX % expanded them. For example, in `@unnumbered The @cite{Book}', TeX % expanded @cite (which turns out to cause errors because \cite is meant % to be executed, not expanded). % % Anyway, we don't want the fully-expanded definition of @cite to appear % as a result of the \message, we just want `@cite' itself. We use % \the to achieve this: TeX expands \the only once, % simply yielding the contents of . (We also do this for % the toc entries.) \toks0 = {#1}\message{(\the\toks0)}% % \unnumbchapmacro {#1}% \gdef\thischapter{#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}% \temp \unnumbnoderef \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } % Sections. \outer\def\numberedsec{\parsearg\secyyy} \def\secyyy #1{\numhead1{#1}} % normally calls seczzz \def\seczzz #1{% \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% {\the\chapno}{\the\secno}}}% \temp \donoderef \nobreak } \outer\def\appendixsection{\parsearg\appendixsecyyy} \outer\def\appendixsec{\parsearg\appendixsecyyy} \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz #1{% \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% {\appendixletter}{\the\secno}}}% \temp \appendixnoderef \nobreak } \outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} \def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz \def\unnumberedseczzz #1{% \plainsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}% \temp \unnumbnoderef \nobreak } % Subsections. \outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} \def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz \def\numberedsubseczzz #1{% \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% {\the\chapno}{\the\secno}{\the\subsecno}}}% \temp \donoderef \nobreak } \outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} \def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz \def\appendixsubseczzz #1{% \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% {\appendixletter}{\the\secno}{\the\subsecno}}}% \temp \appendixnoderef \nobreak } \outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} \def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz #1{% \plainsubsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% {\the\toks0}}}% \temp \unnumbnoderef \nobreak } % Subsubsections. \outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} \def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz \def\numberedsubsubseczzz #1{% \gdef\thissection{#1}\global\advance \subsubsecno by 1 % \subsubsecheading {#1} {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% \temp \donoderef \nobreak } \outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} \def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz \def\appendixsubsubseczzz #1{% \gdef\thissection{#1}\global\advance \subsubsecno by 1 % \subsubsecheading {#1} {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% \temp \appendixnoderef \nobreak } \outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} \def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz #1{% \plainsubsubsecheading {#1}\gdef\thissection{#1}% \toks0 = {#1}% \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% {\the\toks0}}}% \temp \unnumbnoderef \nobreak } % These are variants which are not "outer", so they can appear in @ifinfo. % Actually, they should now be obsolete; ordinary section commands should work. \def\infotop{\parsearg\unnumberedzzz} \def\infounnumbered{\parsearg\unnumberedzzz} \def\infounnumberedsec{\parsearg\unnumberedseczzz} \def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz} \def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz} \def\infoappendix{\parsearg\appendixzzz} \def\infoappendixsec{\parsearg\appendixseczzz} \def\infoappendixsubsec{\parsearg\appendixsubseczzz} \def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz} \def\infochapter{\parsearg\chapterzzz} \def\infosection{\parsearg\sectionzzz} \def\infosubsection{\parsearg\subsectionzzz} \def\infosubsubsection{\parsearg\subsubsectionzzz} % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading % NOTE on use of \vbox for chapter headings, section headings, and such: % 1) We use \vbox rather than the earlier \line to permit % overlong headings to fold. % 2) \hyphenpenalty is set to 10000 because hyphenation in a % heading is obnoxious; this forbids it. % 3) Likewise, headings look best if no \parindent is used, and % if justification is not attempted. Hence \raggedright. \def\majorheading{\parsearg\majorheadingzzz} \def\majorheadingzzz #1{% {\advance\chapheadingskip by 10pt \chapbreak }% {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm\mc #1\hfill}}\bigskip \par\penalty 200} \def\chapheading{\parsearg\chapheadingzzz} \def\chapheadingzzz #1{\chapbreak % {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm\mc #1\hfill}}\bigskip \par\penalty 200} % @heading, @subheading, @subsubheading. \def\heading{\parsearg\plainsecheading} \def\subheading{\parsearg\plainsubsecheading} \def\subsubheading{\parsearg\plainsubsubsecheading} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. %%% Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} %%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} \def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\let\pagealignmacro=\chappager} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{ \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon \def\CHAPFplain{ \global\let\chapmacro=\chfplain \global\let\unnumbchapmacro=\unnchfplain \global\let\centerchapmacro=\centerchfplain} % Plain chapter opening. % #1 is the text, #2 the chapter number or empty if unnumbered. \def\chfplain#1#2{% \pchapsepmacro {% \chapfonts \rm\mc \def\chapnum{#2}% \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}% \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent = \wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } % Plain opening for unnumbered. \def\unnchfplain#1{\chfplain{#1}{}} % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax \def\centerchfplain#1{{% \def\centerparametersmaybe{% \advance\rightskip by 3\rightskip \leftskip = \rightskip \parfillskip = 0pt }% \chfplain{#1}{}% }} \CHAPFplain % The default \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm\mc #1\hfill}}\bigskip \par\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt \hfill {\rm\mc #1}\hfill}}\bigskip \par\nobreak } \def\CHAPFopen{ \global\let\chapmacro=\chfopen \global\let\unnumbchapmacro=\unnchfopen \global\let\centerchapmacro=\centerchfopen} % Section titles. \newskip\secheadingskip \def\secheadingbreak{\dobreak \secheadingskip {-1000}} \def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}} \def\plainsecheading#1{\sectionheading{sec}{}{#1}} % Subsection titles. \newskip \subsecheadingskip \def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} \def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}} \def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}} % Subsubsection titles. \let\subsubsecheadingskip = \subsecheadingskip \let\subsubsecheadingbreak = \subsecheadingbreak \def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}} \def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}} % Print any size section title. % % #1 is the section type (sec/subsec/subsubsec), #2 is the section % number (maybe empty), #3 the text. \def\sectionheading#1#2#3{% {% \expandafter\advance\csname #1headingskip\endcsname by \parskip \csname #1headingbreak\endcsname }% {% % Switch to the right set of fonts. \csname #1fonts\endcsname \rm\mc % % Only insert the separating space if we have a section number. \def\secnum{#2}% \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}% % \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent = \wd0 % zero if no section number \unhbox0 #3}% }% \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak } \message{toc,} \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. % Called from @chapter, etc. We supply {\folio} at the end of the % argument, which will end up as the last argument to the \...entry macro. % % We open the .toc file here instead of at @setfilename or any other % given time so that @contents can be put in the document anywhere. % \newif\iftocfileopened \def\writetocentry#1{% \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi \iflinks \write\tocfile{#1{\folio}}\fi } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Finish up the main text and prepare to read what we've written % to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. Thus, we maintain % \contentsalignmacro in parallel with \pagealignmacro. % From: Torbjorn Granlund \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \unnumbchapmacro{#1}\def\thischapter{}% \savepageno = \pageno \begingroup % Set up to handle contents files properly. \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 % We can't do this, because then an actual ^ in a section % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \pageno = \lastnegativepageno \fi } % Normal (long) toc. \def\contents{% \startcontents{\putwordTableofContents}% \openin 1 \jobname.toc \ifeof 1 \else \closein 1 \input \jobname.toc \fi \vfill \eject \endgroup \lastnegativepageno = \pageno \pageno = \savepageno } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortContents}% % \let\chapentry = \shortchapentry \let\unnumbchapentry = \shortunnumberedentry % We want a true roman here for the page numbers. \secfonts \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \let\mc=\shortcontmc \let\gt=\shortcontgt \rm\mc \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\secentry ##1##2##3##4{} \def\unnumbsecentry ##1##2{} \def\subsecentry ##1##2##3##4##5{} \def\unnumbsubsecentry ##1##2{} \def\subsubsecentry ##1##2##3##4##5##6{} \def\unnumbsubsubsecentry ##1##2{} \openin 1 \jobname.toc \ifeof 1 \else \closein 1 \input \jobname.toc \fi \vfill \eject \endgroup \lastnegativepageno = \pageno \pageno = \savepageno } \let\shortcontents = \summarycontents % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. % The last argument is the page number. % The arguments in between are the chapter number, section number, ... % Chapter-level things, for both the long and short contents. \def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} % See comments in \dochapentry re vbox and related settings \def\shortchapentry#1#2#3{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}% } % Typeset the label for a chapter or appendix for the short contents. % The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter. % We could simplify the code here by writing out an \appendixentry % command in the toc file for appendices, instead of using \chapentry % for both, but it doesn't seem worth it. \setbox0 = \hbox{\shortcontrm \putwordAppendix } \newdimen\shortappendixwidth \shortappendixwidth = \wd0 \def\shortchaplabel#1{% % We typeset #1 in a box of constant width, regardless of the text of % #1, so the chapter titles will come out aligned. \setbox0 = \hbox{#1}% \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi % % This space should be plenty, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) \advance\dimen0 by 1.1em \hbox to \dimen0{#1\hfil}% } \def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} \def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}} % Sections. \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} \def\unnumbsecentry#1#2{\dosecentry{#1}{#2}} % Subsections. \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} \def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}} % And subsubsections. \def\subsubsecentry#1#2#3#4#5#6{% \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} \def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}} % This parameter controls the indentation of the various levels. \newdimen\tocindent \tocindent = 3pc % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. % % If the toc has to be broken over pages, we want it to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup \chapentryfonts \tocentry{#1}{\dopageno{#2}}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent \tocentry{#1}{\dopageno{#2}}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent \tocentry{#1}{\dopageno{#2}}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent \tocentry{#1}{\dopageno{#2}}% \endgroup} % Final typesetting of a toc entry; we use the same \entry macro as for % the index entries, but we want to suppress hyphenation here. (We % can't do that in the \entry macro, since index entries might consist % of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) \def\tocentry#1#2{\begingroup \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks % Do not use \turnoffactive in these arguments. Since the toc is % typeset in cmr, so characters such as _ would come out wrong; we % have to do the usual translation tricks. \entry{#1}{#2}% \endgroup} % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} \def\dopageno#1{{\rm\mc #1}} \def\doshortpageno#1{{\rm\mc #1}} \def\chapentryfonts{\secfonts \rm\mc} \def\secentryfonts{\textfonts} \let\subsecentryfonts = \textfonts \let\subsubsecentryfonts = \textfonts \message{environments,} % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % Furthermore, these definitions must come after we define our fonts. \newbox\dblarrowbox \newbox\longdblarrowbox \newbox\pushcharbox \newbox\bullbox \newbox\equivbox \newbox\errorbox %{\tentt %\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil} %\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil} %\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil} %\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil} % Adapted from the manmac format (p.420 of TeXbook) %\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex % depth .1ex\hfil} %} % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. \def\point{$\star$} \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} % Adapted from the TeXbook's \boxit. {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} \global\setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. \vbox{ \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} % The @error{} command. \def\error{\leavevmode\lower.7ex\copy\errorbox} % @tex ... @end tex escapes into raw Tex temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain tex @ character. \def\tex{\begingroup \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie \catcode `\%=14 \catcode 43=12 % plus \catcode`\"=12 \catcode`\==12 \catcode`\|=12 \catcode`\<=12 \catcode`\>=12 \escapechar=`\\ % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc \let\,=\ptexcomma \let\.=\ptexdot \let\dots=\ptexdots \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace \let\*=\ptexstar \let\t=\ptext % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% \let\Etex=\endgroup} % Define @lisp ... @endlisp. % @lisp does a \begingroup so it can rebind things, % including the definition of @endlisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % Make each space character in the input produce a normal interword % space in the output. Don't allow a line break at this space, as this % is used only in environments like @example, where each line of input % should produce a line of output anyway. % {\obeyspaces % \gdef\sepspaces{\obeyspaces\let =\tie}} % Define \obeyedspace to be our active space, whatever it is. This is % for use in \parsearg. {\sepspaces% \global\let\obeyedspace= } % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip % \def\aboveenvbreak{{\advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip \penalty-50 \vskip\envskipamount \fi}} \let\afterenvbreak = \aboveenvbreak % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around % environment contents. \font\circle=lcircle10 \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \circthick=\fontdimen8\circle % \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth \def\ctr{{\hskip 6pt\circle\char'010}} \def\cbl{{\circle\char'012\hskip -6pt}} \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip \ctl\leaders\hrule height\circthick\hfil\ctr \hskip\rskip}} \def\cartbot{\hbox to \cartouter{\hskip\lskip \cbl\leaders\hrule height\circthick\hfil\cbr \hskip\rskip}} % \newskip\lskip\newskip\rskip \long\def\cartouche{% \begingroup \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt %we want these *outside*. \cartinner=\hsize \advance\cartinner by-\lskip \advance\cartinner by-\rskip \cartouter=\hsize \advance\cartouter by 18.4pt % allow for 3pt kerns on either % side, and for 6pt waste from % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing=\comment \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup \hskip\lskip \vrule\kern3pt \vbox\bgroup \hsize=\cartinner \kern3pt \begingroup \baselineskip=\normbskip \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip \def\Ecartouche{% \endgroup \kern3pt \egroup \kern3pt\vrule \hskip\rskip \egroup \cartbot \egroup \endgroup }} % This macro is called at the beginning of all the @example variants, % inside a group. \def\nonfillstart{% \aboveenvbreak \inENV % This group ends at the end of the body \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \singlespace \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt \parindent = 0pt \emergencystretch = 0pt % don't try to avoid overfull boxes % @cartouche defines \nonarrowing to inhibit narrowing % at next level down. \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \let\exdent=\nofillexdent \let\nonarrowing=\relax \fi } % Define the \E... control sequence only if we are inside the particular % environment, so the error checking in \end will work. % % To end an @example-like environment, we first end the paragraph (via % \afterenvbreak's vertical glue), and then the group. That way we keep % the zero \parskip that the environments set -- \parskip glue will be % inserted at the beginning of the next paragraph in the document, after % the environment. % \def\nonfillfinish{\afterenvbreak\endgroup} % @lisp: indented, narrowed, typewriter font. \def\lisp{\begingroup \nonfillstart \let\Elisp = \nonfillfinish \tt \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } % @example: Same as @lisp. \def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} % @small... is usually equivalent to the non-small (@smallbook % redefines). We must call \example (or whatever) last in the % definition, since it reads the return following the @example (or % whatever) command. % % This actually allows (for example) @end display inside an % @smalldisplay. Too bad, but makeinfo will catch the error anyway. % \def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display} \def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp} \def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format} \def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp} % Real @smallexample and @smalllisp (when @smallbook): use smaller fonts. % Originally contributed by Pavel@xerox. \def\smalllispx{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}% \def\Esmallexample{\nonfillfinish\endgroup}% \indexfonts \lisp } % @display: same as @lisp except keep current font. % \def\display{\begingroup \nonfillstart \let\Edisplay = \nonfillfinish \gobble } % @smalldisplay (when @smallbook): @display plus smaller fonts. % \def\smalldisplayx{\begingroup \def\Esmalldisplay{\nonfillfinish\endgroup}% \indexfonts \rm \mc \display } % @format: same as @display except don't narrow margins. % \def\format{\begingroup \let\nonarrowing = t \nonfillstart \let\Eformat = \nonfillfinish \gobble } % @smallformat (when @smallbook): @format plus smaller fonts. % \def\smallformatx{\begingroup \def\Esmallformat{\nonfillfinish\endgroup}% \indexfonts \rm \mc \format } % @flushleft (same as @format). % \def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format} % @flushright. % \def\flushright{\begingroup \let\nonarrowing = t \nonfillstart \let\Eflushright = \nonfillfinish \advance\leftskip by 0pt plus 1fill \gobble } % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. % \def\quotation{% \begingroup\inENV %This group ends at the end of the @quotation body {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \singlespace \parindent=0pt % We have retained a nonzero parskip for the environment, since we're % doing normal filling. So to avoid extra space below the environment... \def\Equotation{\parskip = 0pt \nonfillfinish}% % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \advance\rightskip by \lispnarrowing \exdentamount = \lispnarrowing \let\nonarrowing = \relax \fi } \message{defuns,} % Define formatter for defuns % First, allow user to change definition object font (\df) internally \def\setdeffont #1 {\csname DEF#1\endcsname} \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deftypemargin \deftypemargin=12pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\parencount % define \functionparens, which makes ( and ) and & do special things. % \functionparens affects the group it is contained in. \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\&=\active \catcode`\[=\active \catcode`\]=\active} % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) {\activeparens % Now, smart parens don't turn on until &foo (see \amprm) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 } \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} % This is used to turn on special parens % but make & act ordinary (given that it's active). \gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr} % Definitions of (, ) and & used in args for functions. % This is the definition of ( outside of all parentheses. \gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested \global\advance\parencount by 1 } % % This is the definition of ( when already inside a level of parens. \gdef\opnested{\char`\(\global\advance\parencount by 1 } % \gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. % also in that case restore the outer-level definition of (. \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi \global\advance \parencount by -1 } % If we encounter &foo, then turn on ()-hacking afterwards \gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } % \gdef\normalparens{\boldbrax\let&=\ampnr} } % End of definition inside \activeparens %% These parens (in \boldbrax) actually are a little bolder than the %% contained text. This is especially needed for [ and ] \def\opnr{{\sf\char`\(}\global\advance\parencount by 1 } \def\clnr{{\sf\char`\)}\global\advance\parencount by -1 } \def\ampnr{\&} \def\lbrb{{\bf\char`\[}} \def\rbrb{{\bf\char`\]}} % First, defname, which formats the header line itself. % #1 should be the function name. % #2 should be the type of definition, such as "Function". \def\defname #1#2{% % Get the values of \leftskip and \rightskip as they were % outside the @def... \dimen2=\leftskip \advance\dimen2 by -\defbodyindent \noindent \setbox0=\hbox{\hskip \deflastargmargin{\rm\mc #2}\hskip \deftypemargin}% \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line \dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations \parshape 2 0in \dimen0 \defargsindent \dimen1 % Now output arg 2 ("Function" or some such) % ending at \deftypemargin from the right margin, % but stuck inside a box of width 0 so it does not interfere with linebreaking {% Adjust \hsize to exclude the ambient margins, % so that \rightline will obey them. \advance \hsize by -\dimen2 \rlap{\rightline{{\rm\mc #2}\hskip -1.25pc }}}% % Make all lines underfull and no complaints: \tolerance=10000 \hbadness=10000 \advance\leftskip by -\defbodyindent \exdentamount=\defbodyindent {\df #1}\enskip % Generate function name } % Actually process the body of a definition % #1 should be the terminating control sequence, such as \Edefun. % #2 should be the "another name" control sequence, such as \defunx. % #3 should be the control sequence that actually processes the header, % such as \defunheader. \def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup % \catcode 61=\active % 61 is `=' \obeylines\activeparens\spacesplit#3} % #1 is the \E... control sequence to end the definition (which we define). % #2 is the \...x control sequence for consecutive fns (which we define). % #3 is the control sequence to call to resume processing. % #4, delimited by the space, is the class name. % \def\defmethparsebody#1#2#3#4 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\activeparens\spacesplit{#3{#4}}} % @deftypemethod has an extra argument that nothing else does. Sigh. % #1 is the \E... control sequence to end the definition (which we define). % #2 is the \...x control sequence for consecutive fns (which we define). % #3 is the control sequence to call to resume processing. % #4, delimited by the space, is the class name. % #5 is the method's return type. % \def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}} \def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 ##2 {\def#4{##1}% \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\activeparens\spacesplit{#3{#5}}} % These parsing functions are similar to the preceding ones % except that they do not make parens into active characters. % These are used for "variables" since they have no arguments. \def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2{\begingroup\obeylines\spacesplit#3}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup % \catcode 61=\active % \obeylines\spacesplit#3} % This is used for \def{tp,vr}parsebody. It could probably be used for % some of the others, too, with some judicious conditionals. % \def\parsebodycommon#1#2#3{% \begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines } \def\defvrparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% \spacesplit{#3{#4}}% } % This loses on `@deftp {Data Type} {struct termios}' -- it thinks the % type is just `struct', because we lose the braces in `{struct % termios}' when \spacesplit reads its undelimited argument. Sigh. % \let\deftpparsebody=\defvrparsebody % % So, to get around this, we put \empty in with the type name. That % way, TeX won't find exactly `{...}' as an undelimited argument, and % won't strip off the braces. % \def\deftpparsebody #1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% \spacesplit{\parsetpheaderline{#3{#4}}}\empty } % Fine, but then we have to eventually remove the \empty *and* the % braces (if any). That's what this does. % \def\removeemptybraces\empty#1\relax{#1} % After \spacesplit has done its work, this is called -- #1 is the final % thing to call, #2 the type name (which starts with \empty), and #3 % (which might be empty) the arguments. % \def\parsetpheaderline#1#2#3{% #1{\removeemptybraces#2\relax}{#3}% }% \def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % \medbreak % % Define the end token that this defining construct specifies % so that it will exit this group. \def#1{\endgraf\endgroup\medbreak}% \def#2##1 ##2 {\def#4{##1}% \begingroup\obeylines\spacesplit{#3{##2}}}% \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent \begingroup\obeylines\spacesplit{#3{#5}}} % Split up #2 at the first space token. % call #1 with two arguments: % the first is all of #2 before the space token, % the second is all of #2 after that space token. % If #2 contains no space token, all of it is passed as the first arg % and the second is passed as empty. {\obeylines \gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% \long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% \ifx\relax #3% #1{#2}{}\else #1{#2}{#3#4}\fi}} % So much for the things common to all kinds of definitions. % Define @defun. % First, define the processing that is wanted for arguments of \defun % Use this to expand the args and terminate the paragraph they make up \def\defunargs #1{\functionparens \sl % Expand, preventing hyphenation at `-' chars. % Note that groups don't affect changes in \hyphenchar. \hyphenchar\tensl=0 #1% \hyphenchar\tensl=45 \ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% \interlinepenalty=10000 \advance\rightskip by 0pt plus 1fil \endgraf\nobreak\vskip -\parskip\nobreak } \def\deftypefunargs #1{% % Expand, preventing hyphenation at `-' chars. % Note that groups don't affect changes in \hyphenchar. % Use \boldbraxnoamp, not \functionparens, so that & is not special. \boldbraxnoamp \tclose{#1}% avoid \code because of side effects on active chars \interlinepenalty=10000 \advance\rightskip by 0pt plus 1fil \endgraf\nobreak\vskip -\parskip\nobreak } % Do complete processing of one @defun or @defunx line already parsed. % @deffn Command forward-char nchars \def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader} \def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% \begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @defun == @deffn Function \def\defun{\defparsebody\Edefun\defunx\defunheader} \def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{Function}% \defunargs {#2}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @deftypefun int foobar (int @var{foo}, float @var{bar}) \def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader} % #1 is the data type. #2 is the name and args. \def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax} % #1 is the data type, #2 the name, #3 the args. \def\deftypefunheaderx #1#2 #3\relax{% \doind {fn}{\code{#2}}% Make entry in function index \begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}% \deftypefunargs {#3}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) \def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} % \defheaderxcond#1\relax$$$ % puts #1 in @code, followed by a space, but does nothing if #1 is null. \def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi} % #1 is the classification. #2 is the data type. #3 is the name and args. \def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} % #1 is the classification, #2 the data type, #3 the name, #4 the args. \def\deftypefnheaderx #1#2#3 #4\relax{% \doind {fn}{\code{#3}}% Make entry in function index \begingroup \normalparens % notably, turn off `&' magic, which prevents % at least some C++ text from working \defname {\defheaderxcond#2\relax$$$#3}{#1}% \deftypefunargs {#4}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @defmac == @deffn Macro \def\defmac{\defparsebody\Edefmac\defmacx\defmacheader} \def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{Macro}% \defunargs {#2}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % @defspec == @deffn Special Form \def\defspec{\defparsebody\Edefspec\defspecx\defspecheader} \def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{Special Form}% \defunargs {#2}\endgroup % \catcode 61=\other % Turn off change made in \defparsebody } % This definition is run if you use @defunx % anywhere other than immediately after a @defun or @defunx. \def\deffnx #1 {\errmessage{@deffnx in invalid context}} \def\defunx #1 {\errmessage{@defunx in invalid context}} \def\defmacx #1 {\errmessage{@defmacx in invalid context}} \def\defspecx #1 {\errmessage{@defspecx in invalid context}} \def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}} \def\deftypemethodx #1 {\errmessage{@deftypemethodx in invalid context}} \def\deftypefunx #1 {\errmessage{@deftypefunx in invalid context}} % @defmethod, and so on % @defop CATEGORY CLASS OPERATION ARG... \def\defop #1 {\def\defoptype{#1}% \defopparsebody\Edefop\defopx\defopheader\defoptype} \def\defopheader #1#2#3{% \dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index \begingroup\defname {#2}{\defoptype{} on #1}% \defunargs {#3}\endgroup % } % @deftypemethod CLASS RETURN-TYPE METHOD ARG... % \def\deftypemethod{% \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} % % #1 is the class name, #2 the data type, #3 the method name, #4 the args. \def\deftypemethodheader#1#2#3#4{% \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index \begingroup \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}% \deftypefunargs{#4}% \endgroup } % @defmethod == @defop Method % \def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} % % #1 is the class name, #2 the method name, #3 the args. \def\defmethodheader#1#2#3{% \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index \begingroup \defname{#2}{\putwordMethodon\ \code{#1}}% \defunargs{#3}% \endgroup } % @defcv {Class Option} foo-class foo-flag \def\defcv #1 {\def\defcvtype{#1}% \defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} \def\defcvarheader #1#2#3{% \dosubind {vr}{\code{#2}}{of #1}% Make entry in var index \begingroup\defname {#2}{\defcvtype{} of #1}% \defvarargs {#3}\endgroup % } % @defivar == @defcv {Instance Variable} \def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} \def\defivarheader #1#2#3{% \dosubind {vr}{\code{#2}}{of #1}% Make entry in var index \begingroup\defname {#2}{Instance Variable of #1}% \defvarargs {#3}\endgroup % } % These definitions are run if you use @defmethodx, etc., % anywhere other than immediately after a @defmethod, etc. \def\defopx #1 {\errmessage{@defopx in invalid context}} \def\defmethodx #1 {\errmessage{@defmethodx in invalid context}} \def\defcvx #1 {\errmessage{@defcvx in invalid context}} \def\defivarx #1 {\errmessage{@defivarx in invalid context}} % Now @defvar % First, define the processing that is wanted for arguments of @defvar. % This is actually simple: just print them in roman. % This must expand the args and terminate the paragraph they make up \def\defvarargs #1{\normalparens #1% \interlinepenalty=10000 \endgraf\nobreak\vskip -\parskip\nobreak} % @defvr Counter foo-count \def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader} \def\defvrheader #1#2#3{\doind {vr}{\code{#2}}% \begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup} % @defvar == @defvr Variable \def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader} \def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index \begingroup\defname {#1}{Variable}% \defvarargs {#2}\endgroup % } % @defopt == @defvr {User Option} \def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader} \def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index \begingroup\defname {#1}{User Option}% \defvarargs {#2}\endgroup % } % @deftypevar int foobar \def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} % #1 is the data type. #2 is the name, perhaps followed by text that % is actually part of the data type, which should not be put into the index. \def\deftypevarheader #1#2{% \dovarind#2 \relax% Make entry in variables index \begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}% \interlinepenalty=10000 \endgraf\nobreak\vskip -\parskip\nobreak \endgroup} \def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} % @deftypevr {Global Flag} int enable \def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} \def\deftypevrheader #1#2#3{\dovarind#3 \relax% \begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1} \interlinepenalty=10000 \endgraf\nobreak\vskip -\parskip\nobreak \endgroup} % This definition is run if you use @defvarx % anywhere other than immediately after a @defvar or @defvarx. \def\defvrx #1 {\errmessage{@defvrx in invalid context}} \def\defvarx #1 {\errmessage{@defvarx in invalid context}} \def\defoptx #1 {\errmessage{@defoptx in invalid context}} \def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}} \def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}} % Now define @deftp % Args are printed in bold, a slight difference from @defvar. \def\deftpargs #1{\bf \defvarargs{#1}} % @deftp Class window height width ... \def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader} \def\deftpheader #1#2#3{\doind {tp}{\code{#2}}% \begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup} % This definition is run if you use @deftpx, etc % anywhere other than immediately after a @deftp, etc. \def\deftpx #1 {\errmessage{@deftpx in invalid context}} \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\undefined \newwrite\macscribble \def\scanmacro#1{% \begingroup \newlinechar`\^^M \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{#1}% \immediate\closeout\macscribble \let\xeatspaces\eatspaces \input \jobname.tmp \endgroup } \else \def\scanmacro#1{% \begingroup \newlinechar`\^^M \let\xeatspaces\eatspaces\scantokens{#1}\endgroup} \fi \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % Utility routines. % Thisdoes \let #1 = #2, except with \csnames. \def\cslet#1#2{% \expandafter\expandafter \expandafter\let \expandafter\expandafter \csname#1\endcsname \csname#2\endcsname} % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). {\catcode`\@=11 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} \def\unbrace#1{#1} \unbrace{\gdef\trim@@@ #1 } #2@{#1} } % Trim a single trailing ^^M off a string. {\catcode`\^^M=12\catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% } % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \. % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. \def\macrobodyctxt{% \catcode`\~=12 \catcode`\^=12 \catcode`\_=12 \catcode`\|=12 \catcode`\<=12 \catcode`\>=12 \catcode`\+=12 \catcode`\{=12 \catcode`\}=12 \catcode`\@=12 \catcode`\^^M=12 \usembodybackslash} \def\macroargctxt{% \catcode`\~=12 \catcode`\^=12 \catcode`\_=12 \catcode`\|=12 \catcode`\<=12 \catcode`\>=12 \catcode`\+=12 \catcode`\@=12 \catcode`\\=12} % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments \paramno=0% \else \expandafter\parsemargdef \argl;% \fi \expandafter\ifx \csname macsave.\the\macname\endcsname \relax \cslet{macsave.\the\macname}{\the\macname}% \else \message{Warning: redefining \the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} \def\unmacro{\parsearg\unmacroxxx} \def\unmacroxxx#1{% \expandafter\ifx \csname macsave.\the\macname\endcsname \relax \errmessage{Macro \the\macname\ not defined.}% \else \cslet{#1}{macsave.#1}% \expandafter\let \csname macsave.\the\macname\endcsname \undefined \fi } % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname #1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % Parse the optional {params} list. Set up \paramno and \paramlist % so \defmacro knows what to do. Define \macarg.blah for each blah % in the params list, to be ##N where N is the position in that list. % That gets used by \mbodybackslash (above). % We need to get `macro parameter char #' into several definitions. % The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. \def\parsemargdef#1;{\paramno=0\def\paramlist{}% \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx \advance\paramno by 1% \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% % This defines the macro itself. There are six cases: recursive and % nonrecursive macros of zero, one, and many arguments. % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\scanmacro{\temp}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% \else % many \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\csname\the\macname xx\endcsname} \expandafter\xdef\csname\the\macname xx\endcsname##1{% \csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{\egroup\noexpand\scanmacro{\temp}}% \fi \else \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % many \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\csname\the\macname xx\endcsname} \expandafter\xdef\csname\the\macname xx\endcsname##1{% \csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \fi \fi} \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg) \def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg \fi \next} \message{cross references,} \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} \def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's job is to define \lastnode. \def\node{\ENVcheck\parsearg\nodezzz} \def\nodezzz#1{\nodexxx [#1,]} \def\nodexxx[#1,#2]{\gdef\lastnode{#1}} \let\nwnode=\node \let\lastnode=\relax % The sectioning commands (@chapter, etc.) call these. \def\donoderef{% \ifx\lastnode\relax\else \expandafter\expandafter\expandafter\setref{\lastnode}% {Ysectionnumberandtype}% \global\let\lastnode=\relax \fi } \def\unnumbnoderef{% \ifx\lastnode\relax\else \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}% \global\let\lastnode=\relax \fi } \def\appendixnoderef{% \ifx\lastnode\relax\else \expandafter\expandafter\expandafter\setref{\lastnode}% {Yappendixletterandtype}% \global\let\lastnode=\relax \fi } % @anchor{NAME} -- define xref target at arbitrary point. % \def\anchor#1{\setref{#1}{Ynothing}} % \setref{NAME}{SNT} defines a cross-reference point NAME, namely % NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have % to set \indexdummies so commands such as @code in a section title % aren't expanded. It would be nicer not to expand the titles in the % first place, but there's so many layers that that is hard to do. % \def\setref#1#2{{% \indexdummies \dosetq{#1-title}{Ytitle}% \dosetq{#1-pg}{Ypagenumber}% \dosetq{#1-snt}{#2} }} % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \def\printedmanual{\ignorespaces #5}% \def\printednodename{\ignorespaces #3}% \setbox1=\hbox{\printedmanual}% \setbox0=\hbox{\printednodename}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax % Use the node name inside the square brackets. \def\printednodename{\ignorespaces #1}% \else % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. \ifdim \wd1 > 0pt % It is in another manual, so we don't have it. \def\printednodename{\ignorespaces #1}% \else \ifhavexrefs % We know the real title if we have the xref values. \def\printednodename{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. \def\printednodename{\ignorespaces #1}% \fi% \fi \fi \fi % % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not % insert empty discretionaries after hyphens, which means that it will % not find a line break at a hyphen in a node names. Since some manuals % are best written with fairly long node names, containing hyphens, this % is a loss. Therefore, we give the text of the node name again, so it % is as if TeX is seeing it for the first time. \ifdim \wd1 > 0pt \putwordsection{} ``\printednodename'' in \cite{\printedmanual}% \else % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. {\normalturnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% % [mynode], [\printednodename],\space % page 3 \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi \endgroup} % \dosetq is the interface for calls from other macros % Use \normalturnoffactive so that punctuation chars such as underscore % and backslash work in node names. (\turnoffactive doesn't do \.) \def\dosetq#1#2{% {\let\folio=0 \normalturnoffactive \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% \iflinks \next \fi }% } % \internalsetq {foo}{page} expands into % CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} % When the aux file is read, ' is the escape character \def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} % Things to be expanded by \internalsetq \def\Ypagenumber{\folio} \def\Ytitle{\thissection} \def\Ynothing{} \def\Ysectionnumberandtype{% \ifnum\secno=0 \putwordChapter\xreftie\the\chapno % \else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % \else \ifnum \subsubsecno=0 % \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % \else % \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % \fi \fi \fi } \def\Yappendixletterandtype{% \ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% \else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % \else \ifnum \subsubsecno=0 % \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % \else % \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % \fi \fi \fi } \gdef\xreftie{'tie} % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined \let\linenumber = \empty % Non-3.0. \else \def\linenumber{\the\inputlineno:\space} \fi % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. \def\refx#1#2{% \expandafter\ifx\csname X#1\endcsname\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs \message{\linenumber Undefined cross reference `#1'.}% \else \ifwarnedxrefs\else \global\warnedxrefstrue \message{Cross reference values unknown; you must run TeX again.}% \fi \fi \fi \else % It's defined, so just use it. \csname X#1\endcsname \fi #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. % \def\xrdef#1{\begingroup % Reenable \ as an escape while reading the second argument. \catcode`\\ = 0 \afterassignment\endgroup \expandafter\gdef\csname X#1\endcsname } % Read the last existing aux file, if any. No error if none exists. \def\readauxfile{\begingroup \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other \catcode`\^^C=\other \catcode`\^^D=\other \catcode`\^^E=\other \catcode`\^^F=\other \catcode`\^^G=\other \catcode`\^^H=\other \catcode`\^^K=\other \catcode`\^^L=\other \catcode`\^^N=\other \catcode`\^^P=\other \catcode`\^^Q=\other \catcode`\^^R=\other \catcode`\^^S=\other \catcode`\^^T=\other \catcode`\^^U=\other \catcode`\^^V=\other \catcode`\^^W=\other \catcode`\^^X=\other \catcode`\^^Z=\other \catcode`\^^[=\other \catcode`\^^\=\other \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other \catcode`\@=\other \catcode`\^=\other % It was suggested to define this as 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ % character, we would end up writing a line like this: 'xrdef {'hat % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first % argument, and \hat is not an expandable control sequence. It could % all be worked out, but why? Either we support ^^ or we don't. % % The other change necessary for this was to define \auxhat: % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % Make the characters 128-255 be printing characters {% \count 1=128 \def\loop{% \catcode\count 1=\other \advance\count 1 by 1 \ifnum \count 1<256 \loop \fi }% }% % The aux file uses ' as the escape (for now). % Turn off \ as an escape so we do not lose on % entries which were dumped with control sequences in their names. % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ % Reference to such entries still does not work the way one would wish, % but at least they do not bomb out when the aux file is read in. \catcode`\{=1 \catcode`\}=2 \catcode`\%=\other \catcode`\'=0 \catcode`\\=\other % \openin 1 \jobname.aux \ifeof 1 \else \closein 1 \input \jobname.aux \global\havexrefstrue \global\warnedobstrue \fi % Open the new aux file. TeX will close it automatically at exit. \openout\auxfile=\jobname.aux \endgroup} % Footnotes. \newcount \footnoteno % The trailing space in the following definition for supereject is % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is % removed. (Generally, numeric constants should always be followed by a % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } % @footnotestyle is meaningful for info output only. \let\footnotestyle=\comment \let\ptexfootnote=\footnote {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf \footnotezzz }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % % Oh yes, they do; otherwise, @ifset and anything else that uses % \parseargline fail inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % \long\gdef\footnotezzz{\insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox \floatingpenalty\@MM \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip \parindent\defaultparindent % % Hang the footnote text off the number. \hang \textindent{\thisfootno}% % % Don't crash into the line above the footnote text. Since this % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut \futurelet\next\fo@t } \def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t \else\let\next\f@t\fi \next} \def\f@@t{\bgroup\aftergroup\@foot\let\next} \def\f@t#1{#1\@foot} \def\@foot{\strut\egroup} }%end \catcode `\@=11 % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. % \def\lineskipfactor{.08333} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % \def\setleading#1{% \normalbaselineskip = #1\relax \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % @| inserts a changebar to the left of the current line. It should % surround any changed text. This approach does *not* work if the % change spans more than two lines of output. To handle that, we would % have adopt a much more difficult approach (putting marks into the main % vertical list for the beginning and end of each change). % \def\|{% % \vadjust can only be used in horizontal mode. \leavevmode % % Append this vertical mode material after the current line in the output. \vadjust{% % We want to insert a rule with the height and depth of the current % leading; that is exactly what \strutbox is supposed to record. \vskip-\baselineskip % % \vadjust-items are inserted at the left edge of the type. So % the \llap here moves out into the left-hand margin. \llap{% % % For a thicker or thinner bar, change the `1pt'. \vrule height\baselineskip width1pt % % This is the space between the bar and the text. \hskip 12pt }% }% } % For a final copy, take out the rectangles % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % \def\finalout{\overfullrule=0pt} % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else \closein 1 % Do not bother showing banner with post-v2.7 epsf.tex (available in % doc/epsf.tex until it shows up on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi % \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from ftp://ftp.tug.org/tex/epsf.tex.} % % Only complain once about lack of epsf.tex. \def\image#1{% \ifx\epsfbox\undefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% \global\warnednoepsftrue \fi \else \imagexxx #1,,,\finish \fi } % % Arguments to @image: % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. % #4 is just the usual extra ignored arg for parsing this stuff. \def\imagexxx#1,#2,#3,#4\finish{% % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi % If the image is by itself, center it. \ifvmode \nobreak\medskip \nobreak \centerline{\epsfbox{#1.eps}}% \bigbreak \else \epsfbox{#1.eps}% \fi } \message{paper sizes,} % And other related parameters. \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be so finicky about underfull hboxes, either. \hbadness = 2000 % Following George Bush, just get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. This makes it come to about 9pt for the 8.5x11 format. We % call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = \hsize \divide\emergencystretch by 45 \fi } % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; % 4) hoffset; 5) binding offset; 6) topskip. Then whoever calls us can % set \parskip and call \setleading for \baselineskip. % \def\internalpagesizes#1#2#3#4#5#6{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 0.6in \pageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \pagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \setleading{13.2pt}% % % If page is nothing but text, make it come out even. \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% }} % Use @smallbook to reset parameters for 7x9.5 (or so) format. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \setleading{12pt}% % \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \deftypemargin = 0pt \defbodyindent = .5cm % \let\smalldisplay = \smalldisplayx \let\smallexample = \smalllispx \let\smallformat = \smallformatx \let\smalllisp = \smalllispx }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \setleading{12pt}% \parskip = 3pt plus 2pt minus 1pt % \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% % \tolerance = 700 \hfuzz = 1pt }} % A specific text layout, 24x15cm overall, intended for A4 paper. Top margin % 29mm, hence bottom margin 28mm, nominal side margin 3cm. \def\afourlatex{{\globaldefs = 1 \setleading{13.6pt}% % \afourpaper \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% % \globaldefs = 0 }} % Use @afourwide to print on European A4 paper in wide format. \def\afourwide{% \afourpaper \internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% % \globaldefs = 0 } % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % \def\pagesizes{\parsearg\pagesizesxxx} \def\pagesizesxxx#1{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 % \parskip = 3pt plus 2pt minus 1pt \setleading{13.2pt}% % \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% }} % Set default to letter. % \letterpaper \ifisJTeX % a4 is common alson in Japan \afourpaper \def\smallbook{\message{@smallbook is disabled in jtexinfo mode}} \input texinfo-js.tex \else \def\strappendix{Appendix } \def\strchapapp{Chapter } \def\strchaptail{} \def\strsecapp{Section} \def\strsectail{} \def\strsecref{section ``\printednodename'' in \cite{\printedmanual}} \def\strseeapp{see } \def\strseetail{} \def\strSeeapp{See } \def\strSeetail{} \def\strpageapp{page} \def\strpagetail{} \def\strtoc{Table Of Contents} \def\strstoc{Short Contents} \fi \message{and turning on texinfo input format.} % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \catcode`\~=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\+=\other \def\normaldoublequote{"} \def\normaltilde{~} \def\normalcaret{^} \def\normalunderscore{_} \def\normalverticalbar{|} \def\normalless{<} \def\normalgreater{>} \def\normalplus{+} % This macro is used to make a character print one way in ttfont % where it can probably just be output, and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print % otherwise. Since all the Computer Modern typewriter fonts have zero % interword stretch (and shrink), and it is reasonable to expect all % typewriter fonts to have this, we can check that font parameter. % \def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi} % Turn off all special characters except @ % (and those which the user can use as if they were ordinary). % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote \catcode`\~=\active \def~{{\tt\char126}} \chardef\hat=`\^ \catcode`\^=\active \def^{{\tt \hat}} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. \def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def<{{\tt \less}} \chardef \gtr=`\> \catcode`\>=\active \def>{{\tt \gtr}} \catcode`\+=\active \def+{{\tt \char 43}} %\catcode 27=\active %\def^^[{$\diamondsuit$} % Set up an active definition for =, but don't enable it most of the time. {\catcode`\==\active \global\def={{\tt \char 61}}} \catcode`+=\active \catcode`\_=\active % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have \everyjob (or @setfilename) turn them on. % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} \catcode`\@=0 % \rawbackslashxx output one backslash character in current font \global\chardef\rawbackslashxx=`\\ %{\catcode`\\=\other %@gdef@rawbackslashxx{\}} % \rawbackslash redefines \ as input to do \rawbackslashxx. {\catcode`\\=\active @gdef@rawbackslash{@let\=@rawbackslashxx }} % \normalbackslash outputs one backslash in fixed width font. \def\normalbackslash{{\tt\rawbackslashxx}} % Say @foo, not \foo, in error messages. \escapechar=`\@ % \catcode 17=0 % Define control-q \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. @def@turnoffactive{@let"=@normaldoublequote @let\=@realbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let<=@normalless @let>=@normalgreater @let+=@normalplus} @def@normalturnoffactive{@let"=@normaldoublequote @let\=@normalbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let<=@normalless @let>=@normalgreater @let+=@normalplus} % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. % @gdef@eatinput input texinfo{@fixbackslash} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then % the first `\{ in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. % Also back turn on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi @catcode`+=@active @catcode`@_=@active} % These look ok in all fonts, so just make them not special. The @rm below % makes sure that the current font starts out as the newly loaded cmr10 @catcode`@$=@other @catcode`@%=@other @catcode`@&=@other @catcode`@#=@other @textfonts @rm @c Local variables: @c page-delimiter: "^\\\\message" @c update-date-leading-regexp: "def\\texinfoversion{" @c update-date-date-regexp: "[-0-9.]+" @c update-date-format-string: "%Y-%m-%d" @c update-date-trailing-regexp: "}" @c eval: (and(load "update-date" t t)(add-hook 'write-file-hooks 'update-date)) @c End: lookup-1.4.1/texi/texinfo-js.tex0000644000076400007640000000174407401226775017073 0ustar kazuhikokazuhiko% Japanse Strings for texinfo.tex %This texinfo-js.tex file 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 this texinfo.tex file; see the file COPYING. If not, write %to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, %USA. \def\strappendix{$BIUO?(B} \def\strchapapp{$BBh(B} \def\strchaptail{$B>O(B} \def\strsecapp{$BBh(B} \def\strsectail{$B@a(B} \def\strsecref{\cite{\printedmanual}$B$N@a!V(B\printednodename $B!W(B} \def\strseeapp{} \def\strseetail{$B;2>H(B} \def\strSeeapp{} \def\strSeetail{$B;2>H(B} \def\strpageapp{} \def\strpagetail{$B%Z!<%8(B} \def\strtoc{$BL\(B $B6!K(B} \def\today{\number\year $BG/(B \number\month $B7n(B \number\day $BF|(B} lookup-1.4.1/texi/lookup.texi0000644000076400007640000047175507404163674016505 0ustar kazuhikokazuhiko\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename lookup.info @settitle Lookup Manual @footnotestyle end @setchapternewpage odd @c %**end of header @set UPDATED 2000-2-12 @set EDITION 1.4 @set VERSION 1.4 @ifinfo @dircategory The Emacs editor and associated tools @direntry * Lookup: (lookup). Lookup, a Search Interface. @end direntry This file documents Lookup, a search interface. Copyright @copyright{} 1997,1998,1999 Keisuke Nishida Copyright @copyright{} 1999-2001 Lookup Development Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. @ignore Permission is granted to process this file through TeX and print the results, provided the printed document carries a copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). @end ignore Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. @end ifinfo @titlepage @title Lookup Manual @subtitle for Lookup @value{VERSION} @author Keisuke Nishida @page @vskip 0pt plus 1filll Edition @value{EDITION} @* Updated for Lookup @value{VERSION} @* @value{UPDATED} @* Copyright @copyright{} 1997,1998,1999 Keisuke Nishida Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. @end titlepage @contents @c ##################################################################### @node Top, Introduction, (dir), (dir) @ifinfo @top Lookup Manual Lookup $B$O(B Emacs $B%(%G%#%?$GMxMQ$G$-$k<-=q8!:w%$%s%?!<%U%'!<%9$G$9!#;THN$N(B CD-ROM $B<-=q$d%M%C%H%o!<%/$N<-=q%5!<%P$r;O$a!"MM!9$J>pJs8;$+$i4JC1$JA`:n(B $B$H@_Dj$G<-=q8!:w$,9T$J$($^$9!#(B $BK\=q$O(B Lookup @value{VERSION} $B$K$D$$$F@bL@$7$^$9!#(B @end ifinfo @menu * Introduction:: $B$O$8$a$K(B * Quick Tour:: $BBg$^$+$J;H$$J}(B * Getting Started:: Lookup $B$rMxMQ$9$k$K$O(B * How To Lookup:: $B8!:w$r9T$J$&$K$O(B * Customization:: $B<+J,9%$_$KD4@a$9$k(B * Dictionary Types:: $B<-=q7A<00lMw(B * Search Agents:: $B8!:w%(!<%8%'%s%H0lMw(B * Mode Details:: $B3F%b!<%I$N>\:Y(B * How To Get:: $B:G?7>pJs$r$N$N\$7$/8+$k(B * Make Reference:: $B%j%U%!%l%s%9$r;2>H$9$k(B * Cite Contents:: $BK\J8$r0zMQ$9$k(B $B<+J,9%$_$KD4@a$9$k(B * Customize General:: $B0lHLE*$J%+%9%?%^%$%:(B * Customize Option:: $B<-=q$H%(!<%8%'%s%H$N%+%9%?%^%$%:(B * Customize Contents:: $B%(%s%H%jK\J8$N%+%9%?%^%$%:(B * Supplement Package:: $BJd=u%Q%C%1!<%8$r:n$k(B * Customize Example:: $B>\:Y$J@_DjNc(B $B0lHLE*$J%+%9%?%^%$%:(B * Customize Variables:: $B~$N%+%9%?%^%$%:(B $B<-=q$H%(!<%8%'%s%H$N%+%9%?%^%$%:(B * Agent Options:: $B%(!<%8%'%s%H!&%*%W%7%g%s0lMw(B * Dictionary Options:: $B<-=q%*%W%7%g%s0lMw(B $B%(%s%H%jK\J8$N%+%9%?%^%$%:(B * Reference Pattern:: $B%j%U%!%l%s%9$N@_Dj(B * Gaiji Table:: $B30;zCV$-49$($N@_Dj(B * Format Contents:: $B%F%-%9%H$N@07A(B $B<-=q%U%)!<%^%C%H0lMw(B * Setup SDIC:: SDIC $B%U%)!<%^%C%H(B * Setup dictd:: dictd $B%U%)!<%^%C%H(B * Setup cookie:: cookie $B%U%!%$%k(B * Setup CD-ROM:: $B3F\:Y(B * Select Mode:: Select $B%b!<%I(B * Entry Mode:: Entry $B%b!<%I(B * Content Mode:: Content $B%b!<%I(B Select $B%b!<%I(B * Select Mode Details:: Select $B%b!<%I$N>\:Y(B * Select Mode Commands:: Select $B%b!<%I$N%3%^%s%I0lMw(B Entry $B%b!<%I(B * Entry Mode Details:: Entry $B%b!<%I$N>\:Y(B * Entry Mode Commands:: Entry $B%b!<%I$N%3%^%s%I0lMw(B Content $B%b!<%I(B * Content Mode Details:: Content $B%b!<%I$N>\:Y(B * Content Mode Commands:: Content $B%b!<%I$N%3%^%s%I0lMw(B @end detailmenu @end menu @c ********************************************************************* @node Introduction, Quick Tour, Top, Top @unnumbered $B$O$8$a$K(B $B6aG/!"%3%s%T%e!<%?$GEE;R<-=q$rMxMQ$9$k$3$H$b$:$$$V$s0lHLE*$H$J$j!"5!G=E*(B $B$KM%$l$?B??t$N(B CD-ROM $B<-=q$,HNGd$5$l$k$h$&$K$J$j$^$7$?!#$7$+$7!"F|:"$+$i(B $B%(%G%#%?$G$N:n6H$K47$l?F$7$s$G$$$k/$J$+$i$:$"$k$N$G$O$J$$$+$H;W$$$^$9!#(B $B<+J,$b(B Emacs $B$N0l%U%!%s$H$7$F!"F|>oE*$J8!:w:n6H$r$h$j2wE,$K9T$J$$$?$$$H(B $B$$$&K0$/L5$-M_5a$r;}$C$F$*$j!"$=$&$7$F@8$^$l$?$N$,$3$N(B Lookup $B$G$9!#$5$[(B $B$I9bEY$J$3$H$O$d$l$:$H$b!";H$C$F$$$F$l$G$7$g$&!#:#8e%=%U%H%&%'%"$r$h$j$$$C$=$&;H(B $B$$$d$9$$$b$N$X$H0i$F$F$$$/$?$a!"%W%m%0%i%`$r;H$C$F$_$F46$8$?B4D>$J$40U8+(B $B$rD:$1$^$9$H9,$$$G$9!#$R$$$F$O!"$3$N%W%m%0%i%`$rMxMQ$9$k$3$H$G!"$h$jB?$/(B $B$N3'$5$s$,2wE,$K<-=q8!:w$r9T$J$($k$h$&$K$J$j$^$7$?$J$i4r$7$/;W$$$^$9!#(B @menu * Features:: Lookup $B$NFCD'(B * Environment:: $BF0:n4D6-(B * Copying:: $BCx:n8"$K$D$$$F(B @end menu @c ===================================================================== @node Features, Environment, Introduction, Introduction @section Lookup $B$NFCD'(B Lookup $B$N4pK\E*$J8!:w%9%?%$%k$O!"F|:"$h$/MQ$$$k<-=q$r$^$H$a$FMQ0U$7$F$*(B $B$-!"$=$3$+$i0l5$$KL\E*$N8l$r8+IU$1=P$9$3$H$G$9!#>/$7$G$b8!:w$N$?$a$NO+NO(B $B$r8:$i$;$k$h$&!"B?$/$N9)IW$r9T$J$C$F$$$^$9!#(B @itemize @bullet @item $BJ#?t$N<-=q$+$i0lEY$K8!:w$r9T$J$$$^$9!#:G=i$KMxMQ$7$?$$<-=q$rA4$FEPO?$7$F(B $B$*$/$3$H$G!"8!:w7k2L$,$^$H$a$FI=<($5$l$^$9!#8!:w$OIaDL!"==J,9bB.$K9T$J$o(B $B$l$k$N$G!"$$$A$$$AL\E*$N<-=q$r@Z$jBX$($k$h$j$b8zN(E*$G$9!#(B @item $BMM!9$Je$N(B $B<-=q%5!<%P$d!"%U%j!<$KG[I[$5$l$F$$$kMQ8l=8$J$I!"B?$/$N>pJs8;$+$i$=$N0c$$(B $B$r5$$K$9$k$3$H$J$/8!:w$,9T$J$($^$9!#(B(@pxref{Setup Agent}) @item $BL\E*$4$H$K!"<-=q$N$^$H$^$j$rJ,$1$F8!:w$,9T$J$($^$9!#Nc$($P!"1Q8l3X=,MQ$K(B $B1QOB!&OB1Q<-E5$N%0%k!<%W!"%K%e!<%95-;v$rFI$`$?$a$K8=BeMQ8l=8!&%3%s%T%e!<(B $B%?MQ8l=8$N%0%k!<%W!"$H$$$C$?6q9g$K$^$H$a$F$*$-!"$=$l$>$l$K8DJL$N8!:w%3%^(B $B%s%I$r3d$jEv$F$k$3$H$,2DG=$G$9!#(B(@pxref{Setup Command}) @item CD-ROM $B<-=q$J$I$K4^$^$l$k30;z$b$=$N$^$^I=<(=PMh$^$9!#30;zCV$-49$($N$?$a(B $B$KDI2C$N@_Dj$r9T$J$&$3$H$J$/!"<-=q$r$=$N$^$^MxMQ=PMh$^$9!#5U$KCV$-49$(J8(B $B;zNs$r;XDj$9$k$3$H$G!"=hM}$r9bB.2=$9$k$h$&$J$3$H$b2DG=$G$9!#(B (@pxref{Setup Gaiji}) @item $B%9%Z%k%A%'%C%/$N$?$a$N;EAH$_$rHw$($F$$$^$9!#1QC18l$NJ#?t7A$d!"DV$j$K8m$j(B $B$,$"$k>l9g$K$G$b!"E,@Z$JC18l$r?dB,$7$F!"<+F0E*$K:F8!:w$r9T$J$&$h$&$K@_Dj(B $B$9$k$3$H$,=PMh$^$9!#(B(@pxref{Setup Query Expansion}) @item $B<-=q$r$h$j2wE,$K;H$($k$h$&9T$J$C$?%+%9%?%^%$%:$r!"FCDj$N=q<0$G%U%!%$%k$K(B $B$^$H$a$k$3$H$G!"@_DjMQ%Q%C%1!<%8$H$7$FB>$N?M$H$b6&M-=PMh$k$h$&$K$J$j$^$9!#(B $B$b$74{$K/$7LdBj$,;D$5$l$F$$$^$9!#(B Mule 2.3 $B$G$b0l1~$NF0:n$O3NG'$7$F$$$^$9!#$?$@$7!"0lIt$N5!G=$,E,@Z$KF0:n(B $B$7$J$$$H$$$C$?$$$/$D$+$N@)8B$O$"$j$^$9!#6(NOe5-$N(B Emacsen $B$GF0:n$,$&$^$/$$$+$J$+$C$?$j!"$"$k$$$O$3$l$i0J30$N(B Emacs $B$G$NF0:n$r4uK>$5$l$kJ}$O!"(BLookup $B$N%a!<%j%s%0%j%9%H!"$b$7$/$O4IM}(B $B?M$^$G%a!<%k$r$*4j$$$7$^$9!#(B(@pxref{How To Get}) @c ===================================================================== @node Copying, , Environment, Introduction @section $BCx:n8"$K$D$$$F(B Lookup $B$O%U%j!r9`$K=>$C$F(B Lookup $B$r:FG[I[$^$?$OJQ99$9$k$3$H$,$G$-$^$9!#(B Lookup $B$OM-MQ$H$O;W$$$^$9$,!"HRI[$K$"$?$C$F$O!";T>l@-5Z$SFCDjL\E*E,9g@-(B $B$K$D$$$F$N0EL[$NJ]>Z$r4^$a$F!"$$$+$J$kJ]>Z$b9T$J$$$^$;$s!#>\:Y$K$D$$$F$O(B GNU General Public License $B$r$*FI$_$/$@$5$$!#(B $B$"$J$?$O!"(BLookup $B$H0l=o$K(B GNU General Public License $B$Nl9g$O!"(BFree Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA $B$Xr7oEy$N7hDj$O$=$N4V$N9g0U$K$h$j9T$J$o$l$^$9!#Ld(B $B$$9g$o$;Ey$O(B @email{lookup@@ring.gr.jp} $B$^$G$*4j$$$7$^$9!#(B @c ********************************************************************* @node Quick Tour, Getting Started, Introduction, Top @chapter $BBg$^$+$J;H$$J}(B $B$5$"!"$=$l$G$O(B Lookup $B$r;H$C$F$_$^$7$g$&!#%d%d%3%7%$@bL@$O8e2s$7$K$7$F!"(B $B$H$b$+$/F0$+$9$3$H$+$i;O$a$F$$$-$^$9!#(B @menu * Quick Prepare:: $B<-=q$N=`Hw(B * Quick Setup:: $B@_Dj$9$Y$-$3$H(B * Quick Example:: $B4JC1$J@_DjNc(B * Quick Startup:: $B5/F0$9$k$K$O(B * Quick Search:: $B8!:w$7$F$_$h$&(B * Quick View:: $B7k2L$r8+$F$$$/(B @end menu @c ===================================================================== @node Quick Prepare, Quick Setup, Quick Tour, Quick Tour @section $B<-=q$N=`Hw(B $B$^$:!"2?$O$J$/$H$b<-=q$,I,MW$G$9!#$H$O$$$($?$V$s!"$3$N%W%m%0%i%`$r;H$*$&(B $B$H;W$o$l$?;~E@$G4{$K!"MxMQ$7$?$$<-=q$O7h$^$C$F$$$k$G$7$g$&$M!#<-=q$r$b$&(B $BMQ0U$7$F$$$k$H$$$&J}$O!"K\@a$OFI$_Ht$P$7$FR2p$7$F$*$-$^$7$g$&!#(B Zippy $B%U%!%$%k$H$O!"%"%a%j%+$N%3%_%C%/(B "Zippy the Pinhead" $B$NCf$+$i$$$/(B $B$D$+$N%;%j%U$rH4$-=P$7%G!<%?%Y!<%92=$7$?$b$N$G!"(BEmacs $B$N(B etc/yow.lines $B$H$$$&%U%!%$%k$K<}$a$i$l$F$$$^$9!#$=$7$F(B Lookup $B$OI8=`$G!"$3$N%U%!%$%k$+(B $B$i%-!<%o!<%I$r4^$s$@%;%j%U$r8!:w=PMh$k$h$&$K$J$C$F$$$k$N$G$9(B! Zippy $B%U%!%$%k$rMQ$$$k$K$O!"2?$b9M$($:$K$C$F2<$5$$!#(B $B$=$7$F5-=R$N$^$^$K!"$3$3$m$f$/$^$G(B Lookup $B$N5!G=$r$*;n$72<$5$$!#0lDL$j$N(B $BF0:n$r3NG'$7$?8e!"$"$J$?$O$U$C!"$H7Z$/>P$_$rIb$+$Y!"$b$C$H$7$C$+$j9M$($?(B $B>e$G9TF0$9$Y$-$@$H<+J,$r8+$D$aD>$9$3$H$G$7$g$&!#%V%i%\!<(B! @c ===================================================================== @node Quick Setup, Quick Example, Quick Prepare, Quick Tour @section $B@_Dj$9$Y$-$3$H(B @cindex $B8!:w%(!<%8%'%s%H(B $B$5$F!"<-=q$NMQ0U$,=PMh$?$i(B Lookup $B$N@_Dj$G$9!#$7$+$7BT$C$?!#(BLookup $B$,BP(B $B1~$7$F$$$k<-=q$K$O?tB?$/$N$l0[$J$k@-3J$r;}$C(B $B$F$$$^$9!#$=$l$>$l$N@bL@$r;2>H$7$F!"<+J,$NL\E*$K9g$C$?$b$N$r%T%C%/%"%C%W(B $B$7$F2<$5$$!#(B @subheading $BMQ8l8!:w$K8~$$$?%(!<%8%'%s%H(B @table @code @item ndic $B%U%j!<<-=q$+$i$ND>@\8!:w(B (@pxref{ndic}) @item ndeb EPWING $B$J$I$K=`5r$7$?(B CD-ROM $B=q@R$N8D?MMxMQ(B (@pxref{ndeb}) @item ndtp NDTP $B%5!<%P$rMQ$$$?!"%M%C%H%o!<%/<-=q$NMxMQ(B (@pxref{ndtp}) @item ndict DICT $B%5!<%P$rMQ$$$?!"%M%C%H%o!<%/<-=q$NMxMQ(B (@pxref{ndict}) @end table @subheading $B%i%s%@%`%O%&%91Q8l<-E5(B Windows $BHG$r8!:w$9$k%(!<%8%'%s%H(B @table @code @item ndsrd $B%i%s%@%`%O%&%91Q8l<-E5(B Windows $BHG$r8!:w$9$k(B (@pxref{ndsrd}) @item ndcookie cookie $B%U%!%$%k$+$i8!:w(B (@pxref{ndcookie}) @end table @subheading $BJd=uE*$J%(!<%8%'%s%H(B @table @code @item ndkks $BF|K\8l$NFI$_$rD4$Y$k(B (@pxref{ndkks}) @item ndspell $B%9%Z%k%A%'%C%/$d%9%Z%k8!:w(B (@pxref{ndspell}) @end table $BMxMQ$9$k%(!<%8%'%s%H$,7h$^$C$?$i!"@bL@$K=>$C$F=`Hw$r@0$($F2<$5$$!#<-=q$N(B $B@_Dj$d%$%s%9%H!<%k!"30It%W%m%0%i%`$,I,MW$K$J$k$3$H$b$"$j$^$9!#(BEmacs $B$N@_(B $BDj$K$D$$$F$bNc$b5s$2$i$l$F$$$k$O$:$G$9$+$i!"<+J,$N>l9g$N@_DjFbMF$rGD0.$7(B $B$F2<$5$$!#(B $B0J>e$,=*$o$l$P!"(B@file{~/.emacs} $B%U%!%$%k$K@_Dj$r=q$-9~$_$^$9!#4pK\E*$K$O(B $BJQ?t(B @code{lookup-search-agents} $B$r%;%C%H$9$k$@$1$G$9!#MxMQ$7$?$$8!:w%(!<(B $B%8%'%s%H$N?t$@$1!"@_Dj$rJB$Y$k$3$H$,=PMh$^$9!#(B $BNc$($P!"(BNDTP $B%5!<%P$,%[%9%H(B @samp{dserver} $B$GF0$$$F$*$j!"(BCD-ROM $B<-=q$r(B @file{/cdrom} $B$K%^%&%s%H$7$F$$$k$N$G$"$l$P!"@_Dj$O$K$b$$$/$D$+$N@_Dj$,I,MW$H$J$j$^$9!#e!"(B @file{~/.emacs} $B$K$Oe5-$N%3%^%s%I$O$h$/MQ$$$k$N$G!"E,Ev$J%-!<$K(B $B3d$jEv$F$F$*$/$HJXMx$G$9!#3F<+$G9%$_$N%-!<$K%P%$%s%I$7$F2<$5$$!#(B $B:G8e$NCJMn$G$O!"MxMQ$9$k8!:w%(!<%8%'%s%H$r@_Dj$7$F$$$^$9!#$3$l$OA0@a$G@b(B $BL@$7$?DL$j$G$9!#3F<+$N$b$N$K9g$o$;$F@_Dj$7$F2<$5$$!#(B $B0J>e$,=*$o$l$P!"<0$rI>2A$9$k$J$j!"(BEmacs $B$r:F5/F0$9$k$J$j$7$F!"@_Dj$rM-8z(B $B$K$7$F2<$5$$!#$5$"!"$$$h$$$h(B Lookup $B$N * ndeb+/cdrom:EIWA $B1QOB<-E5(B =<> * ndeb+/cdrom:WAEI $BOB1Q<-E5(B =<> ---------------------------------------------------------------- -J:%* Lookup: *Dictionary List* (Select Abbrev)--L5--C0--A ---------------------------------------------------------------- ================================================================ @end example $B>e$N$h$&$J2hLL$,I=<($5$l$^$7$?$+(B? $B$b$7%(%i!<$,5/$3$C$?$j!"$"$k$$$O0lMw$,(B $BI=<($5$l$J$$$h$&$J$i!"<-=q$d%W%m%0%i%`$N@_Dj$K<:GT$7$F$$$k$+$b$7$l$^$;$s!#(B $BLdBjE@$r3NG'$7$F!"$b$&0lEY$d$jD>$7$F$_$F2<$5$$!#$h$/$"$k%_%9$J$i(B FAQ $B$K(B $B>pJs$,$"$k$+$b$7$l$^$;$s$7!"$o$+$i$J$$$3$H$,$"$l$P%a!<%k$G?R$M$F$b$i$C$F(B $B$b0l8~$K9=$$$^$;$s!#(B @cindex $B<-=q0lMw%P%C%U%!(B $B$3$N$H$-I=<($5$l$k%P%C%U%!$r(B @dfn{$B<-=q0lMw%P%C%U%!(B} $B$H8F$S$^$9!#>e$NNc$G(B $B$O!"!V9q8l<-E5!W!V1QOB<-E5!W!VOB1Q<-E5!W$N;0$D$N<-=q$,;H$($k$h$&$K$J$C$F(B $B$$$^$9!#0J2e$N>l(B $B9g!";0$DA4$F$N<-=q$+$i0lEY$K8!:w$,9T$J$o$l$k$H$$$&0UL#$K$J$j$^$9!#DL>o!"(B $B:G=i$OMxMQ=PMh$kA4$F$N<-=q$,A*Br>uBV$K$J$C$F$$$^$9!#(B @cindex $B<-=qL>(B @cindex $B<-=q(B ID @cindex $B%(!<%8%'%s%H(B ID @samp{Identifier} $B$H$"$k%3%i%`$K$O!"<-=q$rFCDj$9$k$?$a$NL>>N$,I=<($5$l$F(B $B$$$^$9!#$3$l$OMxMQ$7$F$$$k8!:w%(!<%8%'%s%H(B (@var{agent}) $B$H!"<-=q$N=j:_(B (@var{location})$B!"5Z$S<-=qL>(B (@var{name}) $B$H$rAH$_9g$o$;$F!"(B @samp{@var{agent+location:name}} $B$H$$$&7A$GI=$o$5$l$^$9!#K\=q$G$O$3$l$r(B @dfn{$B<-=q(B ID} $B$H8F$S!"(B@samp{@var{name}} $B$GI=$o$5$l$k(B @dfn{$B<-=qL>(B} $B$H$O6h(B $BJL$7$^$9!#$^$?F1MM$K!"(B@samp{@var{agent+location}} $B$NItJ,$O(B @dfn{$B%(!<%8%'(B $B%s%H(B ID} $B$H8F$S$^$9!#(B @samp{Title} $B$H$"$k%3%i%`$K$O!"<-=q$N%?%$%H%k$,I=<($5$l$^$9!#$3$l$O8!:w(B $B7k2L$N=PNO$J$I$K!"IaCJMQ$$$i$l$k$b$N$G$9!#%*%W%7%g%s@_Dj$K$h$j<+M3$KJQ99(B $B$9$k$3$H$b2DG=$G$9$+$i!"8e$G8+$d$9$$$b$N$KJQ$($F$*$-$^$7$g$&!#(B $B:G8e$N(B @samp{Methods} $B$H$"$k%3%i%`$K$O!"<-=q$,BP1~$7$F$$$k8!:wJ}<0$,<($5(B $B$l$F$$$^$9!#$3$l$O3F$l0l$D$N5-9f$GI=$o$5$l$F$*$j!">e$N(B $B>l9g$O$I$N<-=q$b!VA0J}0lCW8!:w!W!V8eJ}0lCW8!:w!W!V40A40lCW8!:w!W$KBP1~$7(B $B$F$$$k$H$$$&0UL#$K$J$j$^$9!#>\$7$/$O8e$[$I@bL@$7$^$9!#(B $B$3$N%P%C%U%!$G$O<-=q$N0lMw$r3NG'$9$k0J30$K$b!"<-=q$NA*Br>uBV$r@Z$jBX$($k(B $B$J$I$$$/$D$+$NA`:n$,2DG=$H$J$C$F$$$^$9!#;n$7$K(B @kbd{?} $B$r2!$7$F$_$F2<$5(B $B$$!#JL$N%P%C%U%!$K%3%^%s%I$N0lMw$,I=<($5$l$^$7$?$M(B? Lookup $B$N3F%P%C%U%!(B $B$G$O!"(B@kbd{?} $B%-!<$r2!$9$3$H$G4JC1$J%3%^%s%I0lMw$,=P$k$h$&$K$J$C$F$$$k$N(B $B$G!"$A$g$C$HD4$Y$?$$$H$-$K$4MxMQ2<$5$$!#(B $B$I$3$G$b;H$($k%-!$l(B $B%j!<%8%g%s$NFbMF!"5Z$S%_%K%P%C%U%!$+$i$NF~NO$r8!:w8l$K!"8!:w$r3+;O$7$^$9!#(B @example @kbd{M-x lookup-pattern @key{RET} test @key{RET}} @result{} ======== Lookup Windows ======================================== ---------------------------------------------------------------- $B9q8l<-E5(B @point{}$B%F%9%H(B $B1QOB<-E5(B test ---------------------------------------------------------------- -J:%* Lookup: *Entry* @{*:test@} [2] (Entry Abbrev)--L1--C20 ---------------------------------------------------------------- $B%F%9%H(B [$BL>(B] 1. $B;n83(B.... ---------------------------------------------------------------- -J:%* Lookup: *Content* @{$B%F%9%H(B@} (Content Abbrev)--L1--C0- ---------------------------------------------------------------- ================================================================ @end example @cindex Entry $B%P%C%U%!(B $BFs$D$N%P%C%U%!$,I=<($5$l$^$7$?!#>eB&$N%P%C%U%!$O(B @dfn{Entry $B%P%C%U%!(B} $B$H(B $B8@$$!"8!:w$N7k2L8+IU$+$C$?%(%s%H%j$r0lMw$7$^$9!#$3$3$G$OFs$D$N%(%s%H%j$,(B $BI=<($5$l$F$$$^$9!#(B@point{} $B$H$"$k$N$O!"$=$3$K%]%$%s%H$,$"$k$H$$$&0u$G$9!#(B $B$D$^$j!"8=:_0l$DL\$N!V%F%9%H!W$H$$$&%(%s%H%j$,A*Br$5$l$F$$$^$9!#(B @cindex Content $B%P%C%U%!(B $B2e$NNc$G$O(B @samp{test} $B$H$$$&8!:w8l$G8!:w$r9T$J$$$^$7$?$,!"$3$3$GF~NO$r(B $B$K$b$^$@$$$/$D$+(B $B$"$j$^$9$,!">\$7$/$O8e$[$I@bL@$7$^$9!#$3$3$G$O$b$&>/$7!"8!:w7k2L$N8+J}$K(B $B$D$$$FOC$r?J$a$F$$$-$^$9!#(B @c ===================================================================== @node Quick View, , Quick Search, Quick Tour @section $B7k2L$r8+$F$$$/(B $B0J2 $B%P%C%U%!$N:G8e$X?J$`!#(B @end table @item $B%(%s%H%j$NA*Br(B @table @kbd @item n $BuBV$,$9$3$H$,=PMh$^$9!#(B $B8!:w7k2L$rI=<($7$?$^$^:G=i$N%P%C%U%!$KLa$j$?$$$H$-$K$O!"(B@kbd{r} $B$r2!$;$P(B OK $B$G$9!#(B@kbd{h} $B$rO"BG$9$l$P!"(BEntry $B%P%C%U%!$H(B Content $B%P%C%U%!$N4V$r(B $B1}I|$9$k$3$H$b=PMh$^$9!#(B $B$3$l$@$13P$($F$*$1$P!"F|>o$N:n6H$O==J,$K9T$J$($k$G$7$g$&!#$7$+$7(B Lookup $B$K$O!">l9g$K$h$C$FLr$KN)$D$$$/$D$+$N%3%^%s%I$,B>$K$bMQ0U$5$l$F$$$^$9!#(B $BO0J9_$G!"$=$l$i$r4^$`(B Lookup $B$N40A4$J5!G=$K$D$$$F@bL@$7$^$9!#(B $B$5$F!"0J>e$G(B Lookup $B$r;H$&$?$a$NC;$+$$%D%"!<$b=*N;$G$9!#$$$+$,$G$7$g$&$+(B? Lookup $B$O$"$J$?$NMWK>$rK~$?$7$F$/$l$=$&$G$9$+(B? $B$b$7;H$C$F$$$F!V$b$C$H$3(B $B$s$J5!G=$,M_$7$$$>!W$H$+$$$&$3$H$,$"$j$^$7$?$i!"1sN8$J$/%a!<%k$G$G$bEA$((B $B$F2<$5$$!#(B $B$=$l$G$O!"$"$J$?$N$h$j2wE,$J8!:w%i%$%U$r5'$C$F!#(BHappy Looking Up! @c ********************************************************************* @node Getting Started, How To Lookup, Quick Tour, Top @chapter Lookup $B$rMxMQ$9$k$K$O(B $B$3$N>O$G$O!"(BLookup $B$N%$%s%9%H!<%k8e$K9T$J$o$J$1$l$P$J$i$J$$@_Dj9`L\$K$D(B $B$$$F@bL@$7$^$9!#%W%m%0%i%`$N%$%s%9%H!<%k$K$D$$$F$O!"(BLookup $BG[I[J*$KImB0(B $B$N%U%!%$%k(B INSTALL $B$r;2>H$7$F2<$5$$!#@_Dj8e$N99$J$k%+%9%?%^%$%:$K$D$$$F(B $B$O!"(B@ref{Customization} $B$r;2>H$7$F2<$5$$!#(B @menu * Setup Dictionary:: $B<-=q$N=`Hw$r@0$($k(B * Setup Agent:: $B<-=q$K9g$o$;$F@_Dj$9$k(B * Setup Command:: $B?7$7$$8!:w%3%^%s%I$r:n$k(B * Setup Others:: $B$=$NB>$N$l$N2<=`Hw$r@0$($F2<$5$$!#(B @c ===================================================================== @node Setup Agent, Setup Command, Setup Dictionary, Getting Started @section $B<-=q$K9g$o$;$F@_Dj$9$k(B @menu * Setup Basis:: $B4pK\E*$J@_DjJ}K!(B * Setup Option:: $B3F@\$N%$%s%?!<%U%'!<%9$H$J$k(B @dfn{$B8!:w%(!<%8%'%s%H(B} $B$rA*$VI,MW$,$"$j$^$9!#MxMQ=PMh$k8!:w%(!<%8%'%s%H(B $B$O(B @ref{Search Agents} $B$K0lMw$,$"$k$N$G!"$=$A$i$r;2>H$7$F$I$l$rMQ$$$k$+(B $B7h$a$F2<$5$$!#(B @vindex lookup-search-agents $BMQ$$$k%(!<%8%'%s%H$,7h$^$l$P!"JQ?t(B @code{lookup-search-agents} $B$r@_Dj$7(B $B$^$9!#$3$l$O%(!<%8%'%s%H$N@_Dj$N%j%9%H$G!"%j%9%H$N3FMWAG$OA0$=$N$b$N$G$9!#(B @var{location} $B$K$O!"<-=q$N=j:_$rJ8;zNs$K$h$jI=$7$^$9!#2?$r;XDj$9$Y$-$+(B $B$OMxMQ$9$k%(!<%8%'%s%H$K$h$j0[$J$k$N$G!"$=$l$>$l$N%(!<%8%'%s%H$K$D$$$F$N(B $B@bL@$r;2>H$7$F2<$5$$!#$3$l$O>JN,2DG=$J>l9g$b$"$j$^$9!#(B @var{option} $B$O!"%(!<%8%'%s%H$KBP$9$k>JN,2DG=$J%*%W%7%g%s$G$9!#$3$l$O(B $B%Q%i%a!<%?$rL>A0IU$-$GM?$($k$?$a$N$b$N$G!"%?%0$H$J$k%7%s%\%k$H!"CM$H$J$k(B $BG$0U$N%*%V%8%'%/%H$H$N(B cons $B$K$h$C$FI=$o$7$^$9!#$$$/$D$G$b;XDj$G$-$^$9!#(B $B6qBNE*$JNc$r5s$2$^$7$g$&!#Nc$($P!"$l;XDj$7$F$$$^$9!#(B $B3F%(!<%8%'%s%H$G6qBNE*$K2?$r@_Dj$9$Y$-$+$O!"$=$l$>$l$N%(!<%8%'%s%H$K$D$$(B $B$F$N@bL@$r;2>H$7$F2<$5$$!#%*%W%7%g%s$K$D$$$F$O!"$9$Y$F$N%(!<%8%'%s%H$G6&(B $BDL$K;H$($k$b$N$b$"$j$^$9!#(B@ref{Agent Options} $B$r;2>H$7$F2<$5$$!#(B $B>e$N$h$&$J@_Dj$r!"MxMQ$9$k%(!<%8%'%s%H$N?t$@$1JB$Y$?$b$N$,!"l9g!#(B (setq lookup-search-agents '((ndtp "dserver") (ndspell))) @end lisp @c --------------------------------------------------------------------- @node Setup Option, Setup Restriction, Setup Basis, Setup Agent @subsection $B3FlLL$G=P$F$/$k$N$G!"$3(B $B$3$G0lEY>\$7$/@bL@$7$F$*$-$^$9!#(B @cindex $B%*%W%7%g%s(B Lookup $B$G(B @dfn{$B%*%W%7%g%s(B} $B$H$O!"L>A0IU$-%Q%i%a!<%?$N$3$H$r0UL#$7$^$9!#(B $B$D$^$jFCDj$N%7%s%\%k$r%?%0$H$7$F!"$=$l$KBP1~$5$;$k7A$GCM$r@_Dj$7$^$9!#(B $B$3$l$OE57?E*$K$O!"(B@code{(@var{key} . @var{value})} $B$H$$$&(B cons $B$N7A$G(B $BI=8=$5$l$^$9!#(B @vindex lookup-dictionary-options-alist $B@hDx$O%(!<%8%'%s%H$N%*%W%7%g%s$H$7$F!"(B@code{lookup-search-agents} $B$K(B $B%*%W%7%g%s$N(B cons $B$N%j%9%H$r@_Dj$7$^$7$?$,!"<-=q$N>l9g$K$OJQ?t(B @code{lookup-dictionary-options-alist} $B$rMQ$$$k$3$H$,=PMh$^$9!#(B $BNc$($P<-=q$K%*%W%7%g%s(B @code{:title} $B$r@_Dj$9$k$3$H$r9M$($F$_$^$7$g$&!#(B $B$3$l$O<-=q$N%?%$%H%k$rJQ99$9$k$?$a$N6&DL%*%W%7%g%s$G$9!#/!9$o$+$j$E$i(B $B$/$J$C$F$7$^$$$^$9!#$=$3$Ge$O$3$N4X?t(B $B$rMxMQ$7!"(B@code{lookup-dictionary-options-alist} $B$OD>@\$KJQ99$7$J$$J}$,(B $B$$$$$G$7$g$&!#>e$NNc$O!"8e$K@_Dj$,40N;$9$k$h$&!"(B Lookup $B@lMQ$N=i4|2=%U%!%$%k(B @file{~/.lookup} $B$rMQ$$$k$3$H$,=PMh$^$9!#$3(B $B$l$O8e$G$^$?>\$7$/@bL@$7$^$9!#(B(@pxref{Setup Example}) @vindex lookup-default-dictionary-options $B$^$?!"A4$F$N<-=q$KBP$7$F%G%U%)%k%H$N%*%W%7%g%s$r@_Dj$9$k$?$a$K!"JQ?t(B @code{lookup-default-dictionary-options} $B$,MxMQ=PMh$^$9!#%*%W%7%g%s$N(B cons $B$r%j%9%H$K$7$FJB$Y$^$9!#Nc$($Pl9g!"$l(B @code{lookup-agent-options-alist}$B!"(B @code{lookup-set-agent-option}$B!"(B@code{lookup-default-agent-options} $B$G$9!#(B $BNc$($P<-=q$rL58z2=$9$k$K$O!"o!"(BLookup $B$N5/F0$HF1;~$KA4$F=i4|2=$5$l!"$=$3$K4^$^$l$kA4$F$N<-=q$,MxMQ$5$l$k$b$N$H(B $B$7$FA*Br$5$l$^$9!#$7$+$7>l9g$K$h$C$F$O!"$=$N$&$A0lIt$N<-=q$7$+I,MW$H$7$J(B $B$$$3$H$b$"$k$+$b$7$l$^$;$s!#%(!<%8%'%s%H$K$N%j%9%H!#(B @item :disable $BL58z$H$9$k<-=qL>$N%j%9%H!#(B @end table $BNc$($P!"$"$k%(!<%8%'%s%H$,;0$D$N<-=q(B @samp{KOKUGO}, @samp{EIWA}, @samp{WAEI} $B$r;}$C$F$$$k$H$7$^$7$g$&!#$3$NFb(B @samp{EIWA} $B$@$1$r(B $BM-8z$K$7$?$$$N$G$"$l$P!"$O!"(B@kbd{M-x lookup} $B$H$7$FI=<($5$l$k<-=q0lMw$N(B $B%P%C%U%!$+$iCN$k$3$H$,=PMh$^$9(B (@pxref{Quick Startup})$B!#:G=i$K%*%W%7%g%s(B $B$J$7$G5/F0$7$F4^$^$l$k<-=q$r3NG'$7!"8e$+$i@_Dj$rJQ99$9$k$H$h$$$G$7$g$&!#(B $B$"$k$$$O!"L58z$K$O$7$?$/$J$$$,!"LGB?$KMQ$$$J$$$H$$$&<-=q$b$"$k$+$b$7$l$^(B $B$;$s!#>e$HF1MM$K!"uBV$r(B $BJQ$($k$3$H$,=PMh$^$9!#(B @table @code @item :select $BA*Br$9$k<-=qL>$N%j%9%H!#(B @item :unselect $BL$A*Br$K$9$k<-=qL>$N%j%9%H!#(B @end table $BL$A*Br$K$5$l$?<-=q$O!"8e$+$iA*Br$9$k$3$H$GMxMQ2DG=$H$J$j$^$9!#(B (@pxref{Specify Dictionary}) @c --------------------------------------------------------------------- @node Setup Package, , Setup Restriction, Setup Agent @subsection $BJd=u%Q%C%1!<%8$NMxMQ(B @cindex $BJd=u%Q%C%1!<%8(B Lookup $B$G$OMM!9$Jc$O$"$j$^$;$s$,!"$=$l$rMQ$$$k$3$H$G=PNO(B $B$,$h$j8+$d$9$/@07A$5$l$?$j!"ITB-$9$k@_Dj$,Jd$o$l$?$j$H!";H$$>!(B $B$^$:!"Jd=u%Q%C%1!<%8$rE,Ev$J%G%#%l%/%H%j$KE83+$7$F2<$5$$!#E83+$9$k(B $B%G%#%l%/%H%j$r0J2<$G$O(B @dfn{$B%Q%C%1!<%8!&%G%#%l%/%H%j(B} $B$H8F$S$^$9!#(B $B%Q%C%1!<%8$rE83+$9$k$H%G%#%l%/%H%j$,0l$D@8@.$5$l$^$9$,!"Cf$N%U%!%$%k$r(B $B%Q%C%1!<%8!&%G%#%l%/%H%j$K0\F0$7$F$b9=$$$^$;$s!#(B $B$^$?!"@8@.$5$l$?%G%#%l%/%H%j$NL>A0$r(B @dfn{$B%Q%C%1!<%8L>(B} $B$H8F$S$^$9!#(B $B$G$9!#(B @code{lookup-use-package} $B$OFbItE*$K$O!"(B@ref{Setup Option} $B$G@bL@$7$?(B $B@_DjMQ4X?t(B @code{lookup-set-agent-option} $B$H(B @code{lookup-set-dictionary-option} $B$rMQ$$$F%*%W%7%g%s@_Dj$r9T$J$C$F$$$k(B $B$@$1$G$9!#=>$C$F0lEY%Q%C%1!<%8$rFI$_9~$s$@8e$G$b!"$3$l$i$N4X?t$rMQ$$$F(B $B99$K@_Dj$r>e=q$-$9$k$3$H$d!"F1$8%(!<%8%'%s%H$KJL$N%Q%C%1!<%8$r=E$M$F(B $BE,MQ$9$k$3$H$b2DG=$G$9!#(B $Bl9g!"$=$l$r<+J,$G:n$k$3$H$b=PMh$^$9!#(B (@pxref{Supplement Package}) @c ===================================================================== @node Setup Command, Setup Others, Setup Agent, Getting Started @section $B?7$7$$8!:w%3%^%s%I$r:n$k(B $B4{B8$N%=!<%9$r;29M$K$7$F$/$@$5$$!#$b$7J,$+$i$J$$$3$H$,$"$l$P!"(B $B%a%$%j%s%0%j%9%H(B ( @email{lookup@@ring.gr.jp} ) $B$K$N$l$N8!:w%(!<%8%'%s%H$GE,@Z$J@_Dj$r9T$J$C$?>e$G!"(B Lookup $B$rl9g(B: $BFCJL$J=`Hw$OI,MW$"$j$^$;$s!#(BLookup $B$O(B XEmacs/Emacs $B$N(B glyph $B$N5!G=$rMxMQ(B $B$7$F!"30;z$r0ll9g(B: @url{http://openlab.ring.gr.jp/lookup/info/gaiji.html} $B$r;29M$K(B bitmap-mule $B$r%$%s%9%H!<%k$7$F2<$5$$!#l9g!"l9g$K$O!"JQ?t(B @code{lookup-enable-gaiji} $B$r(B @code{nil} $B$K@_Dj$7$F2<$5$$!#$3$l$O%G%U%)%k%H$G(B @code{t} $B$H$J$C$F$$$^$9!#(B @c --------------------------------------------------------------------- @node Setup Query Expansion, , Setup Gaiji, Setup Others @subsection $B3HD%8!:w$N=`Hw(B $BF|:"$+$i8!:w$r$7$F$$$k$H!"F~NO$N$A$g$C$H$7$?8m$j$/$i$$$O<+F0E*$K=$@5$7$F(B $B8!:w$r9T$J$C$F$/$l$k$HM-$jFq$/;W$$$^$9!#(BLookup $B$K$O!"F~NO$5$l$?8!:w8l$r(B $BJd@5$9$k$?$a$N$$$/$D$+$N5!G=$,Hw$o$C$F$$$^$9!#(B @menu * Stemming:: $BC18l$N8lHx$rJ,$JJ8;zNs$r$l$K$D$$$F!"<-=q$+$iC18l$,8+IU$+$k$^$G8!:w$r7+$jJV(B $B$7$^$9!#8!:w8l$,C1=c$JJ#?t7A$d2a5n7A$r$7$F$$$l$P!"0lEY$N$d$jD>$7$G7k2L$K(B $B$?$I$jIU$1$k$O$:$G$9!#(B @item $B6&DL$N8lF,$r;}$C$?;w$?C18l$rC5$7=P$9!#(B $BNc$($P!"(B@samp{lexicographer} $B$H$$$&8l$O:\$C$F$$$J$$$,!"(B @samp{lexicography} $B$J$i:\$C$F$$$k$H$$$&<-=q$,$"$k$+$b$7$l$^$;$s!#(B stemming $B$G$O$=$N$h$&$J%1!<%9$KBP1~$9$k$3$H$O=PMh$^$;$s$,!";29MDxEY$K$=(B $B$N>pJs$r<($7$F$/$l$k$H?F@Z$G$9!#$=$3$G!"$"$kDxEY$N8lD9$r;}$D8l$r8!:w$7$?(B $B>l9g$K8B$C$F!"(BLookup $B$O6&DL8lF,$r;}$D8l$N8!:w$KD)@o$7$^$9!#(B @end enumerate $B$3$l$G$b2?$b8+IU$+$i$J$1$l$P8!:w$rD|$a$^$9!#$=$N>l9g!"Fs2s$+;02s$N8!:w=h(B $BM}$,L5BL$K$J$j$^$9$,!"1s3VCO$N<-=q%5!<%P$K%"%/%;%9$7$F$$$k$N$G$b$J$$8B$j!"(B $B$3$l$OBg$7$?%3%9%H$G$O$"$j$^$;$s!#$h$C$F$"$i$+$8$a873J$J%9%Z%k%A%'%C%/$r(B $B9T$J$&$h$j$b!"$3$NJ}<0$rMQ$$$kJ}$,!"8zN(E*$K<+F0Jd@5$r9T$J$($^$9!#(B @c ..................................................................... @node Spell Checking, Kanji-Kana Expansion, Stemming, Setup Query Expansion @subsubheading $B%9%Z%k%A%'%C%/$r9T$J$&(B $B8lHx$@$1$NLdBj$G$O$J$/!"DV$j$=$N$b$N$r4V0c$($?$N$G$O2?$b8+IU$+$j$^$;$s!#(B $B$=$3$G8!:w8l$N%9%Z%k%A%'%C%/$r9T$J$$!"$=$N>e$G8!:w$r9T$J$&5!G=$,M_$7$/$J(B $B$j$^$9!#(B Lookup $B$N%9%Z%k%A%'%C%/5!G=$O!"8!:w%(!<%8%'%s%H(B `ndspell' $B$H$7$F$N<-=q$G0lEY8!:w$r(B $B9T$J$$!"$=$l$G$b2?$b8+IU$+$i$J$+$C$?$H$-$N$_!"(Bndspell $B$G%9%Z%k%A%'%C%/$r(B $B9T$J$&$h$&$K$9$k$3$H$,=PMh$^$9!#(Bndspell $B$O!"$=$N$h$&$JMxMQ$rA[Dj$7$F:n$i(B $B$l$F$$$^$9!#(B $B$b$7$I$&$7$F$b%9%Z%k%A%'%C%/$r9T$J$$$?$$$H$$$&$3$H$,$"$l$P!"(BEntry $B%P%C%U%!(B $B$G(B @kbd{g} $B$r2!$7$F:F8!:w$r9T$J$&$3$H$G!"(Bndspell $B$K%9%Z%k%A%'%C%/$r6/@)(B $B$9$k$3$H$b2DG=$G$9!#$h$j>\$7$/$O!"(B@ref{ndspell} $B$r;2>H$7$F2<$5$$!#(B @c ..................................................................... @node Kanji-Kana Expansion, Universal Query Expansion, Spell Checking, Setup Query Expansion @subsubheading $B4A;z$R$i$,$J3HD%8!:w$N=`Hw(B $B<-=q$K$h$C$F$O!"4A;z$r4^$`8!:w8l$rMQ$$$F8!:w$9$k$3$H$,$G$-$:!"4A;z$r$R$i(B $B$,$J$KJQ49$9$kI,MW$,$"$k>l9g$,$"$j$^$9!#<-=q%*%W%7%g%s(B :hiragana $B$r@_Dj(B $B$9$k$H!"$3$N$h$&$J<-=q$r2wE,$K8!:w$9$k$3$H$,$G$-$^$9!#(B @lisp (lookup-set-dictionary-option "agent:DICT" ':hiragana t) @end lisp $B4A;z$R$i$,$J3HD%8!:w$r9T$&$h$&$K@_Dj$9$k$H!"l9g$,$"$k$+$b(B $BCN$l$^$;$s!#$=$N$h$&$J>l9g$K$O!"(B:expander $B%*%W%7%g%s$H(B :expand-filter $B%*(B $B%W%7%g%s$,MxMQ$G$-$^$9!#(B $BNc$($P!"o!"7W$J$3$H$r5$$K$;$:$KA4$F$N@_Dj$r9T$J$($^$9!#(B @item @vindex lookup-load-hook @code{lookup-load-hook} $B$rMQ$$$k!#(B $B%5%$%H$G6&DL$N@_Dj$r9T$J$&$h$&$J>l9g!"(B@file{~/.lookup} $B$rMQ$$$k$o$1$K$O(B $B$$$-$^$;$s!#$"$k$$$O!"A4$F$r(B @file{~/.emacs} $B$G9T$&$H$$$&%]%j%7!<$N?M$b(B $B$$$k$+$b$7$l$^$;$s!#$=$N$h$&$JL\E*$N$?$a$K!"(B@file{~/.lookup} $B$HF1MM$N(B $B%?%$%_%s%0$G=i4|2=$r9T$J$&$?$a$N(B hook @code{lookup-load-hook} $B$rMQ$$$k(B $B$3$H$,=PMh$^$9!#l9g(B (define-key help-map "\C-e" 'english-search-pattern) (autoload 'english-search-pattern "lookup" nil t) ;; $B=i4|2=%U%!%$%k$rJQ99$9$k>l9g(B (setq lookup-init-file "~/.lookup") @end lisp @c --------------------------------------------------------------------- @node ~/.lookup, site-start.el, ~/.emacs, Setup Example @subsection @file{~/.lookup} $B$N@_Dj(B @file{~/.lookup} $B$G<-=q$N@_Dj$r9T$J$$$^$9!#$3$l$^$G@bL@$7$?DL$j$G$9!#(B @lisp ;;; .lookup --- setup for Lookup -*- emacs-lisp -*- ;; $B8!:w%(!<%8%'%s%H$N@_Dj(B (setq lookup-search-agents '((ndeb "/cdrom") (ndspell))) ;; $BJd=u%Q%C%1!<%8$NFI$_9~$_(B (setq lookup-package-directory "~/emacs/lookup/packages") (lookup-use-package "ndeb+/cdrom" "mydict") ;; $B%*%W%7%g%s$N@_Dj(B (lookup-set-dictionary-option "ndeb+/cdrom:EIWA" ':title "$B1QOB<-E5(B") ;; $B30;zMxMQ$N@_Dj(B (setq lookup-use-bitmap t) ;;; .lookup ends here @end lisp @c --------------------------------------------------------------------- @node site-start.el, , ~/.lookup, Setup Example @subsection $B%5%$%HKh$N6&DL@_Dj(B Lookup $B$N@_Dj$r%5%$%H$G6&M-$9$k$N$G$"$l$P!"(B@file{site-start.el} $B%U%!%$%k(B $B$K@_Dj$r2C$($^$9!#!#%G%U%)%k%H$O(B @file{~/.lookup}$B!#(B $B$3$N%U%!%$%k$O(B @file{lookup.el} $B$N%m!<%ID>8e$KFI$_9~$^$l$k!#(B @item @code{lookup-load-hook} Lookup $B$N%m!<%I40N;D>8e$K8e$KJN,2DG=$G!"%(!<%8%'%s%H$KBP$9$kDI2C$N0z?t$r;XDj$9$k!#(B @var{options} $B$O>JN,2DG=$G!"F1$8$/DI2C$N%*%W%7%g%s$r;XDj$9$k!#(B @lisp $BNc(B: (setq lookup-search-agents '((ndtp "dserver" :port 2010) (ndeb "/cdrom" :enable ("EIWA")))) @end lisp @item @code{lookup-default-agent-options} $B8!:w%(!<%8%'%s%H$K%G%U%)%k%H$GM?$($k%*%W%7%g%s$N%j%9%H!#(B $B3F%*%W%7%g%s$O!"%?%0$H$J$k%7%s%\%k$H!"CM$H$J$kG$0U$N%*%V%8%'%/%H$H$N(B cons $B$K$h$C$FI=$o$9!#(B @item @code{lookup-agent-options-alist} $B8!:w%(!<%8%'%s%H$N%*%W%7%g%s$r@_Dj$9$kO"A[%j%9%H!#(B $B3FMWAG$N(B car $B$K$O%(!<%8%'%s%H(B ID (@code{"@var{class+location}"}) $B$r;XDj$7!"(B cdr $B$K$O%*%W%7%g%s$N%j%9%H$r;XDj$9$k!#(B @item @code{lookup-default-dictionary-options} $B<-=q$K%G%U%)%k%H$GM?$($k%*%W%7%g%s$N%j%9%H!#(B $B3F%*%W%7%g%s$O!"%?%0$H$J$k%7%s%\%k$H!"CM$H$J$kG$0U$N%*%V%8%'%/%H$H$N(B cons $B$K$h$C$FI=$o$9!#(B @item @code{lookup-dictionary-options-alist} $B<-=q$N%*%W%7%g%s$r@_Dj$9$kO"A[%j%9%H!#(B $B3FMWAG$N(B car $B$K$O<-=q(B ID (@code{"@var{class+location:name}"}) $B$r;XDj$7!"(B cdr $B$K$O%*%W%7%g%s$N%j%9%H$r;XDj$9$k!#(B @item @code{lookup-package-directory} $BJd=u%Q%C%1!<%8$,<}$a$i$l$k%G%#%l%/%H%j!#(B @end table @c ===================================================================== @node Setup Functions, , Setup Variables, Getting Started @section $B%;%C%H%"%C%W4X?t0lMw(B @table @asis @item @code{lookup-set-agent-option} @var{id} @var{tag} @var{value} $B8!:w%(!<%8%'%s%H$N%*%W%7%g%s$r%;%C%H$9$k!#(B @var{id} $B$O%(!<%8%'%s%H(B ID$B!#(B@var{tag} $B$O%*%W%7%g%s$N%?%0!#(B @var{value} $B$O%;%C%H$9$kCM!#(B @item @code{lookup-set-dictionary-option} @var{id} @var{tag} @var{value} $B<-=q$N%*%W%7%g%s$r%;%C%H$9$k!#(B @var{id} $B$O<-=q(B ID$B!#(B@var{tag} $B$O%*%W%7%g%s$N%-!!"$"$k$$$O%Q%C%1!<%8$N@dBP%Q%9!#(B $B@dBP%Q%9$G$J$$>l9g!"%Q%C%1!<%8$OJQ?t(B @code{lookup-package-directory} $B$,(B $B<($9%G%#%l%/%H%j$KE83+$7$F$*$/I,MW$,$"$k!#(B $B$3$N4X?t$O(B @code{lookup-agent-options-alist} $B5Z$S(B @code{lookup-dictionary-options-alist} $B$NCM$r=q$-49$($k!#(B @end table @c ********************************************************************* @node How To Lookup, Customization, Getting Started, Top @chapter $B8!:w$r9T$J$&$K$O(B $B$3$N>O$G$O!"(BLookup $B$G8!:w$r9T$J$&J}K!$K$D$$$F>\$7$/@bL@$7$^$9!#$^$?!"(B $BFCDj$N<-=q$+$i>pJs$rF@$k$?$a$NJ}K!$K$D$$$F$b@bL@$7$^$9!#(B @menu * Startup Commands:: $B5/F0$H=*N;(B * Search String:: $BJ8;zNs8!:w(B * See Result:: $B8!:w7k2L$ND/$aJ}(B * Specify Dictionary:: $BFCDj$N<-=q$rMxMQ$9$k(B @end menu @c ===================================================================== @node Startup Commands, Search String, How To Lookup, How To Lookup @section $B5/F0$H=*N;(B @findex lookup $B:G=i$K(B Lookup $B$r5/F0$9$k$?$a$N%3%^%s%I$O(B @kbd{M-x lookup} $B$G$9!#$3$l$O(B $BMxMQ=PMh$k<-=q$N0lMw$r%P%C%U%!$KI=<($7!"<-=qA*Br%b!<%I$KF~$j$^$9!#$3$N(B $B%P%C%U%!$G$NA`:n$K$D$$$F$O!"(B@ref{Specify Dictionary} $B$r;2>H$7$F2<$5$$!#(B @kbd{M-x lookup} $B$rMQ$$$:$H$b!"$l(B @kbd{q} $B$H(B @kbd{Q} $B$K$h$C$F(B $BD>@\!"$^$?$O4V@\E*$K8F$S=P$5$l$^$9!#(B @vindex lookup-save-configuration Lookup $B$rH4$1$?$H$-!"JQ?t(B @code{lookup-save-configuration} $B$NCM$,(B @code{non-nil} $B$G$"$l$P!"2hLL$,8!:w$r3+;O$7$?$H$-$N>uBV$KLa$5$l$^$9!#(B $B$3$l$O%G%U%)%k%H$G(B @code{t} $B$K@_Dj$5$l$F$$$^$9!#(B @findex lookup-restart Lookup $B$N=i4|2=%U%!%$%k$r=q$-49$($?$H$-$K$O!"%3%^%s%I(B @kbd{M-x lookup-restart} $B$,MxMQ=PMh$^$9!#$3$l$O(B Lookup $B$r$$$C$?$s=*N;(B $B$5$;$?8e!"(B@file{~/.lookup} $B$rFI$_D>$7$F:F=i4|2=$r9T$J$$$^$9!#$3$l$ODL>o(B @kbd{R} $B$K3d$jEv$F$i$l$F$$$^$9!#(B @c ===================================================================== @node Search String, See Result, Startup Commands, How To Lookup @section $BJ8;zNs8!:w(B Lookup $B$N$b$C$H$b0lHLE*$J8!:wJ}K!$O!"8!:w8l$H$J$kJ8;zNs$r;XDj$7$F8!:w$r(B $B9T$J$&$3$H$G$9!#0J2\$7$/@bL@$7$^$9!#(B @menu * Search Commands:: $BI8=`$N8!:w%3%^%s%I(B * Default Method:: $BI8=`$N8!:wJ}<0(B * Search Methods:: $B8!:wJ}<0$N$$$m$$$m(B @end menu @c --------------------------------------------------------------------- @node Search Commands, Default Method, Search String, Search String @subsection $BI8=`$N8!:w%3%^%s%I(B Lookup $BI8=`$N8!:w%3%^%s%I$K$O!"BeI=$7$F$N%"%W%j%1!<%7%g%s>e$G$"$C$F(B $B$b9=$$$^$;$s!#(B $B$3$l$O%$%a!<%8$H$7$F$O!"(BX Window System $B$G$N%^%&%9$K$h$k%3%T!o!"8!:w8l$H40A4$K%^%C%A$7$?%(%s%H%j$rC5$7=P$9$3$H$r!V40A40lCW8!:w!W$H(B $B8@$$$^$9$,!"(BLookup $B$G$OB?/$7LdBj$,$"$j$^$9!#Nc$($P(B @samp{emacs} $B$H$$$&C18l$r8!:w$9(B $B$k$H$-!"<-=q$K$h$C$F$O8+=P$78l$H$7$F(B @samp{GNU Emacs} $B$H$7$+;}$?$J$$$?$a(B $B$K!"$=$l$,8+IU$+$i$J$$$H$$$&$3$H$,$"$j$^$9!#$3$l$O<-=qB&$NLdBj$@$H8@$($P(B $B$=$&$+$b$7$l$^$;$s$,!"$d$O$j$=$l$G$OITJX$J$N$G!">/$79)IW$,I,MW$G$9!#(B $B$b$7<-=q$,(B @samp{GNU Emacs} $B$H$$$&8+=P$78l$7$+;}$?$J$/$H$b!"40A40lCW8!:w(B $B$G$O$J$/!V%-!<%o!<%I8!:w!W$G$H$$$&$3$H$J$i!"$=$l$r8+IU$1=P$9$3$H$b=PMh$k(B $B$+$b$7$l$^$;$s!#$=$N$?$aI8=`$N8!:wJ}<0$H$7$F$O!"<-=q$K$h$C$Fu67$K(B $B1~$8$F$K$D$$$F$O!"(B @ref{Search Methods} $B$r;2>H$7$F2<$5$$!#(B $B$$$/$D$+$N8!:w%(!<%8%'%s%H$G$O!"%G%U%)%k%H$N8!:wJ}<0$r>e=q$-$7$F!"Nc$($P(B $B%-!<%o!<%I8!:w$r9T$J$&$h$&$K@_Dj$5$l$F$$$^$9!#>\$7$/$O%(!<%8%'%s%H$N3F@a(B $B$r;2>H$7$F2<$5$$!#$^$?!"FCDj$N%(!<%8%'%s%H$d<-=q$G$N8!:wJ}<0$rJQ$($k$K$O!"(B $B<-=q%*%W%7%g%s(B @code{:default-method} $B$rMQ$$$k$3$H$,=PMh$^$9!#(B @c --------------------------------------------------------------------- @node Search Methods, , Default Method, Search String @subsection $B8!:wJ}<0$N$$$m$$$m(B @cindex $B%Q%?!<%s8!:w(B $BJ8;zNs$r;XDj$9$k8!:w$NCf$G$bFC$K!"(B@kbd{M-x lookup-pattern} $B$N$h$&$KFCDj(B $B$N%Q%?!<%s$rF~NO$7$F9T$J$&8!:w$N$3$H$r!"(BLookup $B$G$O(B @dfn{$B%Q%?!<%s8!:w(B} $B$H8F$S$^$9!#%Q%?!<%s8!:w$G$O!"$l$N8!:wJ}<0$K$O8GM-$N(B $B%7%s%\%kL>$H5-9f$,4XO"IU$1$i$l$F$*$j!"$$$/$D$+$N>l=j$GMxMQ$5$l$^$9!#(B @table @asis @item @t{word} @itemx $BC18l8!:w(B (@code{default}, @code{~}) $BI8=`$N8!:wJ}<0$G$9!#$3$l$O}) @cindex $B8eJ}0lCW8!:w(B $BM?$($i$l$?J8;zNs$r8+=P$78l$NKvHx$K;}$D$h$&$J%(%s%H%j$r8!:w$7$^$9!#(B $B$3$NNc$G$O(B @samp{keyword} $B$d(B @samp{headword} $B$J$I$,8+IU$+$j$^$9!#(B @item @t{*word*} @itemx $BItJ,0lCW8!:w(B (@code{substring}, @code{-}) @cindex $BItJ,0lCW8!:w(B $BM?$($i$l$?J8;zNs$r8+=P$78l$N0lIt$K4^$`$h$&$J%(%s%H%j$r8!:w$7$^$9!#(B $B$3$NNc$G$O(B @samp{unwordy} $B$d(B @samp{swordsman} $B$J$I$,8+IU$+$j$^$9!#(B @item @t{w*o?d} @itemx $B%0%m%V%Q%?!<%s(B $B>e$N;0$D$r99$K?J$a$?I=8=$H$7$F!"G$0U$N%0%m%V%Q%?!<%s$,;XDj=PMh$^$9!#(B $B$D$^$jJ8;z(B @samp{*} $B$,G$0U$NJ8;zNs$H%^%C%A$7!"J8;z(B @samp{?} $B$,G$0U$N(B $B0lJ8;z$H%^%C%A$7$^$9!#$3$NNc$G$O(B @samp{word} $B$d(B @samp{womanhood} $B$J$I$,(B $B8+IU$+$j$^$9!#(B $B$3$N8!:w%Q%?!<%s$O!"$C$F!"$3$l$rMQ$$$k$K(B $B$O<-=q$,l9g!"$3$N%Q%?!<%s$K(B $B$h$C$F$=$l$r8!:w$9$k$3$H$,=PMh$^$9!#2?$r%-!<%o!<%I$H$7$F;}$D$+$OMxMQ$9$k(B $B8!:w%(!<%8%'%s%H$K$h$C$F0[$J$k$?$a!"$=$l$>$l$N%(!<%8%'%s%H$K$D$$$F$N@bL@(B $B$r;2>H$7$F2<$5$$!#(B @item @t{/word} @itemx $BA4J88!:w(B (@code{text}, @code{/}) @cindex $BA4J88!:w(B $B$3$l$OB>$N8!:wJ}<0$H$O>/$70[$J$j$^$9!#B>$N$b$N$O<-=q$K$"$i$+$8$aMQ0U$5$l(B $B$F$$$k%$%s%G%C%/%9$+$i8!:w$r9T$J$$$^$9$,!"$3$l$O<-=q$NA4BN$+$iNO$:$/$G(B $B8!:w8l$rC5$7=P$7$^$9!#$=$N$?$a$7$P$7$PHs>o$KB?$/$N8!:w;~4V$rI,MW$H$9$k(B $B$?$a!"$3$N8!:w%Q%?!<%s$r;XDj$9$k$H3NG'$N$?$a$N%W%m%s%W%H$,I=<($5$l$^$9!#(B @item $B%j%U%!%l%s%9(B (@code{:reference}, @code{%}) @cindex $B%j%U%!%l%s%9(B $B$3$l$O8!:wJ}<0$G$O$"$j$^$;$s$,!"F1$8$/5-9f$,3d$jEv$F$i$l$F$$$k$N$G$3$3$G(B $B@bL@$7$F$*$-$^$9!#(B@dfn{$B%j%U%!%l%s%9(B} $B$H$O!"$"$k%(%s%H%j$H4XO"IU$1$i$l$F(B $B$$$kJL$N%(%s%H%j$N$3$H$r8@$$$^$9!#DL>o!"(BWeb $B%Z!<%8$HF1MM$K!"%(%s%H%jK\J8(B $B$+$iJL$N%(%s%H%j$X$H%j%s%/$,D%$i$l$F$$$^$9!#(B $BB>$N8!:wJ}<0$rMxMQ$7$?$N$G$O$J$/!"%j%s%/$rC)$C$F%j%U%!%l%s%9$rI=<($7$?$H(B $B$-$K$O!"$=$N$H$-$N8!:wJ}<0$H$7$F>e$N5-9f$,MQ$$$i$l$^$9!#(B @end table $B0J>e$NA4$F$N8!:wJ}<0$K<-=q$,BP1~$7$F$$$k$o$1$G$O$"$j$^$;$s!#<-=q$,BP1~$7(B $B$F$$$k8!:wJ}<0$rCN$k$?$a$K$O!":G=i$K(B @kbd{M-x lookup} $B$H$7$?$H$-=PNO$5$l(B $B$k<-=q0lMw%P%C%U%!$r;2>H$7$F2<$5$$!#(B(@pxref{Specify Dictionary}) $B<-=q$,BP1~$7$F$$$J$$8!:wK!$,;XDj$5$l$?>l9g$K$O!"8=:_$OC1=c$KL5;k$5$l$^$9!#(B $B$3$l$O>-MhE*$K$OL$BP1~$NDLCN$r=P$9$h$&$KJQ99$9$k$+$b$7$l$^$;$s!#(B @c ===================================================================== @node See Result, Specify Dictionary, Search String, How To Lookup @section $B8!:w7k2L$ND/$aJ}(B Lookup $B$G8!:w$,9T$J$o$l$k$H!"$=$N7k2L$OFs$D$N%&%#%s%I%&$KJ,$+$l$FI=<($5(B $B$l$^$9!#0l$D$O8+$D$+$C$?%(%s%H%j$N0lMw$rJB$Y$k$?$a$N$b$N$G!"$b$&0l$D$O3F(B $B%(%s%H%j$NK\J8$r8+$k$?$a$N$b$N$G$9!#0J2\$7$/(B $B@bL@$7$^$9!#(B @menu * See Entries:: $B%(%s%H%j$r=g$K8+$k(B * See Contents:: $BK\J8$r>\$7$/8+$k(B * Make Reference:: $B%j%U%!%l%s%9$r;2>H$9$k(B * Cite Contents:: $BK\J8$r0zMQ$9$k(B @end menu @c --------------------------------------------------------------------- @node See Entries, See Contents, See Result, See Result @subsection $B%(%s%H%j$r=g$K8+$k(B Entry $B%P%C%U%!(B (@pxref{Quick Search}) $B$K$O!"8!:w$N7k2L!"8+IU$+$C$?%(%s%H%j(B $B$N0lMw$,I=<($5$l$^$9!#(B@kbd{n}(ext) $B$H(B @kbd{p}(revious) $B$r2!$9$3$H$G!"%](B $B%$%s%H$rA08e$K0\F0$7$FI=<($9$k%(%s%H%j$r@Z$j49$($k$3$H$,=PMh$^$9!#%^%&%9(B $B$NCf%\%?%s$G%/%j%C%/$9$k$3$H$G!"%(%s%H%j$rD>@\A*Br$9$k$3$H$b2DG=$G$9!#(B @kbd{v}(iew) $B$K$h$j(B Overview $B%b!<%I$KF~$j$^$9!#$3$l$O(B Content $B%P%C%U%!$N(B $B%&%#%s%I%&$r%/%m!<%:$7!"%(%s%H%j$N0lMw$r0l;~E*$K8+$d$9$/$7$^$9!#(BOverview $B%P%C%U%!$G$O!"(B@kbd{n} $B$H(B @kbd{p} $B$,C1$K%]%$%s%H$N0\F0$@$1$r9T$J$&$h$&$K(B $B$J$j$^$9!#$b$&0lEY(B @kbd{v} $B$H$9$k$+(B @key{SPC} $B$r2!$9$3$H$G!"(BOverview $B%b!<%I$r=*N;$7$F85$NF0:n$KLa$j$^$9!#(B Lookup $B$O!"2a5n$K9T$J$o$l$?8!:w$N7k2L$rMzNr$H$7$F5-21$7$F$$$^$9!#2a5n$N(B $B8!:w7k2L$r;2>H$9$k$K$O(B @kbd{M-p} $B$r2!$7$F$$$C$F2<$5$$!#5U$K!"85$N8!:w7k(B $B2L$KLa$k$K$O(B @kbd{M-n} $B$r2!$7$F2<$5$$!#(B @c --------------------------------------------------------------------- @node See Contents, Make Reference, See Entries, See Result @subsection $BK\J8$r>\$7$/8+$k(B Content $B%P%C%U%!(B (@pxref{Quick Search}) $B$K$O!"A*Br$5$l$F$$$k%(%s%H%j$NK\J8(B $B$,I=<($5$l$^$9!#$3$l$O(B @key{SPC} $B$H(B @key{DEL} $B$K$h$C$F!"(BEntry $B%P%C%U%!Fb(B $B$+$iA08e$K%9%/%m!<%k$9$k$3$H$,=PMh$^$9!#%P%C%U%!$N:G8e(B ($B:G=i(B) $B$^$GC#$9$k$H!"(B $B} $B$K$h$C$F!"K\J8$N(B $B:G=i$H:G8e$K0\F0$9$k$3$H$b=PMh$^$9!#(B @kbd{o}(pen) $B$r2!$9$H!"(BLookup $B$N%&%#%s%I%&$r2hLLA4BN$K3H$2$F!"(BContent $B%P%C(B $B%U%!$NFbMF$r9-$/8+$k$3$H$,=PMh$^$9!#(BLookup $B$N%&%#%s%I%&$r0lEYJD$8$l$P!"(B $BH$7$F$$$k%(%s%H%j$N>pJs$r(B @kbd{i}(nfo) $B$K$h$C$FCN$k$3$H$,=PMh$^$9!#(B $B$^$?!"(B@kbd{t}(oggle) $B$K$h$C$F!"K\J8$r@07A$9$kA0$N%*%j%8%J%k$N<-=qFbMF$r(B $B8+$k$3$H$,=PMh$^$9!#$3$l$i$N>pJs$OK\J8$r%+%9%?%^%$%:$9$k:]$KMxMQ$9$k$3$H(B $B$,=PMh$^$9!#(B @c --------------------------------------------------------------------- @node Make Reference, Cite Contents, See Contents, See Result @subsection $B%j%U%!%l%s%9$r;2>H$9$k(B $B%(%s%H%j$,%j%U%!%l%s%9$r;}$D>l9g!"(B@kbd{L}(inks) $B$r2!$9$3$H$G$=$l$r?7$?$K(B Entry $B%P%C%U%!$K0lMw$7$^$9!#C10l$N%j%U%!%l%s%9$N$_;2>H$7$?$$>l9g$K$O!"$^(B $B$:(B @kbd{h} $B$G(B Content $B%P%C%U%!$K0\F0$7!"(B@key{TAB} $B$NO"BG$GL\E*$N%j%s%/$K(B $B0\F0$7$?8e!"(B@key{RET} $B$H$9$l$P$=$l$rC)$k$3$H$,=PMh$^$9!#$"$k$$$OL\E*$N%j(B $B%s%/$rD>@\!"%^%&%9$NCf%\%?%s$G%/%j%C%/$7$F$b9=$$$^$;$s!#(B $BMQ$$$k<-=q$d8!:w%(!<%8%'%s%H$K$h$C$F$O!"%j%s%/$,8+?I$+$C$?$j!"%j%s%/$r(B $BC)$k$H0lMw$N8+=P$7$,$*$+$7$/$J$k$J$I$NITK~$,$"$k$+$b$7$l$^$;$s!#$3$l$O(B $B<-=qKh$N:90[$K(B Lookup $B$,%G%U%)%k%H$G$OBP1~$7$-$l$J$$$?$a$G$9!#%j%s%/$r(B $B$h$j8+$d$9$/$9$k$?$a$K$O!"(B@ref{Reference Pattern} $B$r;2>H$7$F3F<+$G@_Dj$r(B $B9T$J$C$F2<$5$$!#(B @c --------------------------------------------------------------------- @node Cite Contents, , Make Reference, See Result @subsection $BK\J8$r0zMQ$9$k(B Entry $B%P%C%U%!$G(B @kbd{w}(rite) $B$r2!$9$H!"%(%s%H%j$NK\J8$r%-%k%j%s%0$K(B $BJ]B8$7$^$9!#$3$N$H$-l9g!"<-=q$N%?%$%H%k$KCV$-49$($i$l$k!#(B @item lookup-cite-prefix $B%(%s%H%jK\J8$r0zMQ$9$k$H$-$N%W%l%U%#%/%9!#(B $B%3%^%s%I(B @kbd{M-x lookup-entry-cite-content} $B5Z$S(B @kbd{M-x lookup-content-cite-region} $B$K$h$jFbMF$r$l<-=q%*%W%7%g%s(B @code{:cite-style}, @code{:cite-header}, @code{:cite-prefix} $B$,;XDj$9$k$3$H$G!"$=$N@_Dj$,(B $BM%@hE*$KMxMQ$5$l$^$9!#(B(@pxref{Dictionary Options}) $B$^$?!"(BContent $B%P%C%U%!$K0\F0$7$F(B @kbd{w} $B$r2!$9$3$H$G!"$=$N$H$-$N(B $B%j!<%8%g%s$NJ8;zNs$@$1%3%T!<$9$k$3$H$b2DG=$G$9!#(B @footnote{$B$?$@$78=:_!"$3$N$H$-(B cite-style $B$N;XDj$OL58z$G$9!#uBV$,<($5$l$F$*$j!"(B@samp{*} $B$,A*Br!"6uGr(B (@samp{ }) $B$,L$A*Br(B $B$G$"$k$3$H$rI=$o$7$F$$$^$9!#(B @samp{Identifier} $B$H$"$kNs$K$O<-=q$N(B ID $B$,<($5$l$^$9!#$3$l$O(B (@var{name}) $B$rMQ$$$F(B @var{class+location:name} $B$H$7$FI=$5$l$^$9!#(B @samp{title} $B$H$"$kNs$K$O!"<-=q$N%?%$%H%k$,<($5$l$^$9!#$3$l$O$l0l$D$N8!:wJ}<0$r0UL#$7$F$$$^(B $B$9!#$=$NBP1~$K$D$$$F$O!"(B@ref{Search Methods} $B$K$"$k0lMw$r;2>H$7$F2<$5$$!#(B $B%P%C%U%!$G(B @kbd{?}$B$HF~NO$9$k$H!"MxMQ2DG=$J%3(B $B%^%s%I$K$D$$$F$N4J0W%X%k%W$,I=<($5$l$^$9!#%P%C%U%!$rH4$1$k$H%X%k%W$bJD$8(B $B$i$l$^$9!#(B $B%3%^%s%I(B @kbd{g}$B$G8=:_$N%b%8%e!<%k$r=i4|2=(B $B$7D>$7!"%P%C%U%!$r99?7$7$^$9!#$?$@$7!"$3$l$O%b%8%e!<%k<+BN$r:F@_Dj$9$k$o(B $B$1$G$O$J$$$N$G!"@_Dj%U%!%$%k$G%b%8%e!<%k$N@_Dj$rJQ$($?>l9g$K$O!"(B @kbd{R}$B$K$h$j(B Lookup $B$r:F5/F0$9$kI,MW$,$"$j$^$9!#(B @kbd{q}$B$G%P%C%U%!$rH4$1$^$9!#(B @kbd{Q}$B$G(B Lookup $B$r=*N;$7$^$9!#(B @kbd{n}$B$H(B @kbd{p}$B$K$h$C$F!"%]%$%s%H$r>e2<$K(B $B0\F0$7$^$9!#(B @kbd{m}$B$K$h$j$=$N9T$N<-=q$rA*Br$7!"(B @kbd{u}$B$K$h$jHsA*Br$K$7$^$9!#$^$?!"(B @kbd{M-x lookup-select-toggle-selected}$B$K$h$jA*Br>uBV$r%H%0%k$9$k$3$H$b(B $B2DG=$G$9!#(B @findex lookup-select-do-select-all @findex lookup-select-do-select-only @kbd{a}$B$K$h$j!"A4$F$N<-=q$rA*Br>uBV(B $B$K$7$^$9!#(B@key{RET}$B$K$h$j!"$=$N9T$N(B $B<-=q$@$1$rA*Br>uBV$K$9$k$3$H$b=PMh$^$9!#(B @kbd{d}$B$r2!$9$H!"<-=q$KL58z2=$N%^!<%/(B $B$,IU$1$i$l$^$9!#$3$l$O(B @kbd{x}$B$r2!$9$3(B $B$H$GuBV$K$"$k<-=q(B $B$+$i8!:w$r9T$J$$$^$9!#$3$l$Oo$K;~4V$,3]$+$k>l9g$,$"$k$N$GCm0U$7$F2<(B $B$5$$!#(B(@pxref{Search Methods}) @c ********************************************************************* @node Customization, Dictionary Types, How To Lookup, Top @chapter $B<+J,9%$_$KD4@a$9$k(B $B$3$N>O$G$O!"(BLookup $B$r8D?M$N9%$_$K1~$8$FD4@a$9$k$?$a$NJ}K!$K$D$$$F@bL@$7(B $B$^$9!#$^$?!"<-=qKh$N0lHLE*$J%+%9%?%^%:$r$^$H$a$F@_Dj%U%!%$%k=8$H$7$FG[I[(B $B$9$kJ}K!$K$D$$$F$b@bL@$7$^$9!#(B [ $B$3$N>O$O$^$@@0HwESCf$G$9(B ] @menu * Customize General:: $B0lHLE*$J%+%9%?%^%$%:(B * Customize Option:: $B<-=q$H%(!<%8%'%s%H$N%+%9%?%^%$%:(B * Customize Contents:: $B%(%s%H%jK\J8$N%+%9%?%^%$%:(B * Supplement Package:: $BJd=u%Q%C%1!<%8$r:n$k(B * Customize Example:: $B>\:Y$J@_DjNc(B @end menu @c ===================================================================== @node Customize General, Customize Option, Customization, Customization @section $B0lHLE*$J%+%9%?%^%$%:(B Lookup $B$NA4HL$K4X$o$k%+%9%?%^%$%:JQ?t$NB?$/$O!"(BCustom $B%Q%C%1!<%8$rMxMQ$9(B $B$k$3$H$GJQ992DG=$G$9!#(BLookup $B$r5/F08e(B @kbd{M-x customize-group @key{RET} lookup @key{RET}} $B$H$9$l$P!"@_Dj=PMh$kJQ?t$N0lMw$r8+$k$3$H$,=PMh$^$9!#(B @menu * Customize Variables:: $B~$N%+%9%?%^%$%:(B @end menu @c --------------------------------------------------------------------- @node Customize Variables, Customize Face, Customize General, Customize General @subsection $BuBV$,(B $B8!:w3+;O;~$N$b$N$KLa$5$l$k!#(B @item lookup-use-bitmap non-nil $B$K;XDj$9$k$H!"(Bbitmap-mule $B$rMxMQ$7$?30;zI=<($r9T$J$&$h$&$K$J$j$^(B $B$9!#(Bbitmap-mule $B$,4{$K%m!<%I$5$l$F$$$l$P<+F0E*$K(B @code{t} $B$K$J$j$^$9!#(B @ref{Setup Gaiji} $B$r;2>H$7$F2<$5$$!#(B @item lookup-use-kakasi non-nil $B$K;XDj$9$k$H!"(BKAKASI $B$rMQ$$$FF|K\8l$N8!:w8l$N@Z$j=P$7$r9T$J$&$h(B $B$&$K$J$j$^$9!#(B@ref{Search Commands} $B$r;2>H$7$F2<$5$$!#(B @item lookup-enable-gaiji nil $B$K;XDj$9$k$H!"30;z$NI=<($r9T$J$o$J$/$J$j$^$9!#(B@ref{Setup Gaiji} $B$r;2(B $B>H$7$F2<$5$$!#(B @item lookup-max-hits @item lookup-max-text @vindex lookup-max-hits @vindex lookup-max-text $BI=<($9$k%(%s%H%j$N>e8B?t!"5Z$S%(%s%H%jK\J8$N>e8B%5%$%:$rDj$a$^$9!#(B $B$3$l$i$O8=:_(B ndeb $B$G$N$_M-8z$G$9!#(B @item lookup-cite-style @itemx lookup-cite-header @itemx lookup-cite-header $B%(%s%H%jK\J8$r0zMQ$9$k$H$-$N%9%?%$%k!"%X%C%@!"%W%l%U%#%/%9$r@_Dj$9$k!#(B @ref{Cite Contents} $B$r;2>H!#(B @item lookup-inline-image @vindex lookup-inline-image nil $B$K;XDj$9$k$H2hA|$N%$%s%i%$%sI=<($r9T$$$^$;$s!#(B @end table @c --------------------------------------------------------------------- @node Customize Face, , Customize Variables, Customize General @subsection $BJ8;zAu>~$N%+%9%?%^%$%:(B Lookup $B$G$O%U%'%$%9(B ($BJ8;zAu>~(B) $B$N@_Dj$K(B Custom $B%Q%C%1!<%8$N(B @code{defface} $B$rMQ$$$F$$$^$9!#$3$l$r%+%9%?%^%$%:$9$k$K$O!"(B@kbd{M-x customize-group @key{RET} lookup-faces @key{RET}} $B$J$I$H$7$F@_Dj$r9T$J$C$F2<$5$$!#(B Mule $B$rMxMQ$7$F$$$k$J$I!"(BCustom $B$,%$%s%9%H!<%k$5$l$F$J$$>l9g$K$O!"(BLookup $B$N=i4|2=%U%!%$%k(B (@file{~/.lookup}) $B$G@_Dj$r9T$J$&I,MW$,$"$j$^$9!#$3$l$O(B $Bo!"0l9TL\(B) $B$KIU$1$i$l$k%U%'%$%9!#(B @item lookup-heading-2-face $BK\J8$,9=B$$r;}$D>l9g!"FsHVL\$N8+=P$7$KIU$1$i$l$k%U%'%$%9!#(B @item lookup-heading-3-face $BK\J8$,9=B$$r;}$D>l9g!";0HVL\$N8+=P$7$KIU$1$i$l$k%U%'%$%9!#(B @item lookup-heading-4-face $BK\J8$,9=B$$r;}$D>l9g!";MHVL\$N8+=P$7$KIU$1$i$l$k%U%'%$%9!#(B @item lookup-heading-5-face $BK\J8$,9=B$$r;}$D>l9g!"8^HVL\$N8+=P$7$KIU$1$i$l$k%U%'%$%9!#(B @item lookup-heading-low-face $BK\J8$,9=B$$r;}$D>l9g!"$"$^$j=EMW$G$J$$ItJ,$KIU$1$i$l$k%U%'%$%9!#(B @item lookup-reference-face $BK\J8$N%j%s%/ItJ,$KMQ$$$i$l$k%U%'%$%9!#(B @item lookup-refered-face $BK\J8$N;2>H:Q$_%j%s%/$KMQ$$$i$l$k%U%'%$%9!#(B @end vtable $B@_Dj$K$O$l$N%(!<(B $B%8%'%s%H$K$D$$$F$N@bL@$r;2>H$7$F2<$5$$!#6&DL%*%W%7%g%s$H$7$F$O!"$rM?$($k!#%(!<%8%'%s%H(B ID $B$OIaDL(B @samp{@var{class+location}} $B$H$7$FM?$($i$l$k$,(B (@pxref{Quick Startup})$B!"(B $B$3$N%*%W%7%g%s$K$h$j(B @var{location} $B$NItJ,$rCV$-49$($i$l$k!#EvA3$J$,$i!"(B $B$3$l$O(B @code{lookup-search-agents} $B$G@_Dj$7$J$1$l$P$J$i$J$$!#$N%j%9%H!#(B(@pxref{Setup Restriction}) @item :disable $BL58z$H$9$k<-=qL>$N%j%9%H!#(B(@pxref{Setup Restriction}) @item :select $BA*Br$9$k<-=qL>$N%j%9%H!#(B(@pxref{Setup Restriction}) @item :unselect $BL$A*Br$K$9$k<-=qL>$N%j%9%H!#(B(@pxref{Setup Restriction}) @end table @c --------------------------------------------------------------------- @node Dictionary Options, , Agent Options, Customize Option @subsection $B<-=q%*%W%7%g%s0lMw(B $B<-=q$O!"%*%W%7%g%s$r@_Dj$9$k$3$H$K$h$j%+%9%?%^%$%:$,2DG=$G$9!#(B (@pxref{Setup Option}) $Be=q$-$9$k!#(B@xref{Kanji-Kana Expansion}. @item :expander expander $B4X?t$r;XDj$9$k!#$3$l$O8!:w8l$rE,Ev$JB>$N8!:w8l$KCV$-49$($k$?$a$N(B $B4X?t$G!"J8;zNs$r$l!"(B@code{lookup-cite-style}, @code{lookup-cite-header}, @code{lookup-cite-prefix} $B$NBe$o$j$KM%@h$7$FMQ$$$i$l$k!#(B (@pxref{Cite Contents}) @end table $B$3$NFb!"(B@code{:title} $B$H(B @code{:gaiji-table} $B$r=|$/A4$F$N%*%W%7%g%s$O!"(B $B%(!<%8%'%s%H!&%*%W%7%g%s$H$7$F@_Dj$9$k$3$H$b2DG=$G$9!#(B $B%(!<%8%'%s%H$K$h$C$F$O!"$3$l0J30$K$bFCJL$J<-=q%*%W%7%g%s$,MxMQ=PMh$k>l9g(B $B$,$"$j$^$9!#$=$l$>$l$N%(!<%8%'%s%H$N@bL@$r;2>H$7$F2<$5$$!#(B @c ===================================================================== @node Customize Contents, Supplement Package, Customize Option, Customization @section $B%(%s%H%jK\J8$N%+%9%?%^%$%:(B @menu * Reference Pattern:: $B%j%U%!%l%s%9$N@_Dj(B * Gaiji Table:: $B30;zCV$-49$($N@_Dj(B * Format Contents:: $B%F%-%9%H$N@07A(B @end menu @c --------------------------------------------------------------------- @node Reference Pattern, Gaiji Table, Customize Contents, Customize Contents @subsection $B%j%U%!%l%s%9$N@_Dj(B $B%j%U%!%l%s%9$N=q<0$O$7$P$7$P<-=q$K$h$C$F0[$J$k$N$G!"(BLookup $B$N%G%U%)%k%H(B $B$N@_Dj$@$1$G$O$I$&$7$F$bBP1~$7@Z$l$^$;$s!#(BEntry $B%P%C%U%!$G(B @kbd{t} $B$r(B $B2!$9$H!"K\J8@07AA0$N%*%j%8%J%k$NFbMF$r8+$k$3$H$,=PMh$k$N$G!"$=$NFbMF$r(B $B3NG'$7$F$_$F2<$5$$!#(B $B$b$7%G%U%)%k%H$G@8@.$5$l$k%j%s%/$KITK~$,$"$k>l9g!"<-=q%*%W%7%g%s(B @code{:reference-pattern} $B$K$h$j%+%9%?%^%$%:$9$k$3$H$,2DG=$G$9!#(B $B@_Dj$9$Y$-CM$Ol9g!"(B @example @samp{heading} @end example @noindent @var{regexp} $B$O.+?<[0-9a-f:]+>"} $B$H$9$k$3$H$,=PMh$^$9!#(B} @lisp "[^<\n]+<[0-9a-f:]+>" @end lisp @var{link}, @var{heading}, @var{code} $B$K$O$=$l$>$l!"%j%s%/$H$J$kJ8;zNs!"(B $B%j%U%!%l%s%9$N8+=P$78l!"5Z$S$=$N%3!<%IHV9f$r;XDj$7$^$9!#:#$N>l9g!"(B $B%j%s%/$O(B @samp{heading}$B!"8+=P$78l$O(B @samp{heading}$B!"(B $B%3!<%IHV9f$O(B @samp{a456:789} $B$H$9$l$P$h$$$G$7$g$&!#$3$l$K$O(B @var{regexp} $B$N%^%C%AFbMF$rMxMQ$7$F!"\\([^<\n]+\\)\\)<\\([0-9a-f:]+\\)>" (match-string 1) (match-string 2) (match-string 3)) @end lisp $B$3$N$h$&$K(B @code{link}, @var{heading}, @var{code} $B$K$OJ8;zNs$rJV$9G$0U$N(B $B<0$rMQ$$$k$3$H$,2DG=$G$9$,!">e$N$h$&$K(B @code{match-string} $B$G%^%C%AFbMF(B $B$rC1=c$Kl9g!"FCJL$K>JN,$7$FHV9f$r;XDj$9$k$@$1$G$h$$$h$&$K(B $B$J$C$F$$$^$9!#(B @lisp ("\\(\\([^<\n]+\\)\\)<\\([0-9a-f:]+\\)>" 1 2 3) @end lisp $B$^$?!"30;zCV$-49$($OJL$N%9%F%C%W$G9T$J$o$l$k$?$a!"$3$N;~E@$G$O$I$&$3$&(B $B$9$kI,MW$O$"$j$^$;$s!#8+=P$78l$K30;z$,4^$^$l$k>l9g$K$b!"$=$l$r$=$N$^$^(B $BJV$9$h$&$K@_Dj$7$F2<$5$$!#E57?E*$K$O" 1 2 3)} $B$G(B OK $B$G$9!#(B} @lisp ("\\($B"*(B\\(\\([^<\n]\\|]>\\) +\\)\\)<\\([0-9a-f:]+\\)>" 1 2 4) @end lisp $B<+J,$N<-=q$K9g$o$;$?E,@Z$J%Q%?!<%s$r:n$i$l$?J}$O!"%a!<%j%s%0%j%9%H$K$G$b(B $B>pJs$rD:$1$^$9$H9,$$$G$9!#(B @c --------------------------------------------------------------------- @node Gaiji Table, Format Contents, Reference Pattern, Customize Contents @subsection $B30;zCV$-49$($N@_Dj(B $B<-=q%*%W%7%g%s(B @code{:gaiji-table} $B$K$h$j!"<-=q$N30;z$NCV$-49$(%F!<%V%k$r(B $B@_Dj$9$k$3$H$,=PMh$^$9!#(B @cindex $B30;z%F!<%V%k(B @findex lookup-new-gaiji-table $B30;zCV$-49$($H$O!"30;zI=<($N:]$K<-=q$KMQ0U$5$l$F$$$k30;z$rMQ$$$k$3$H$r$;(B $B$:$K!"$"$i$+$8$aDj5A$7$F$*$$$?@_Dj$K=>$C$F$=$l$NCV49J8;zNs$rMxMQ$9$k$3$H(B $B$r8@$$$^$9!#$3$N$?$a$NJQ49I=$r(B @dfn{$B30;z%F!<%V%k(B} $B$H8F$S!"4X?t(B @code{lookup-new-gaiji-table} $B$K$h$j@8@.$7$^$9!#(B $B$3$l$O2A2DG=$J<0(B $B$r;XDj$7!"$=$NCM$,30;z$NCV49J8;zNs$H$7$FMxMQ$5$l$^$9!#(B@var{alternate} $B$O(B $B>JN,2DG=$G!"30;z$NBeBXJ8;zNs$r;XDj$7$^$9!#$3$l$O(B@var{glyph} $B$H0c$C$F!"(B $B0lHLE*$KMxMQ$5$l$kJ8;z%;%C%H$G$J$1$l$P$J$j$^$;$s!#(B @var{glyph} $B$H(B @var{alternate} $B$H$N0c$$$O!"$=$l$,8+$?L\$r=E;k$9$k$+MxJX(B $B@-$r=E;k$9$k$+$K$"$j$^$9!#(B@var{glyph} $B$K$O%"%/%;%s%HJ8;z$J$I$r4^$`J8;zNs(B $B$r;XDj$9$k$3$H$G8+$?L\$rNI$/$9$k$3$H$,=PMh$^$9$,!"$=$N>l9g!"8!:w$d%3%T!<(B $B$N$?$a$NMxJX@-$,5>@7$K$J$j$^$9!#$=$N$?$a!"I=<($N$?$a$K$O(B@var{glyph} $B$rMQ(B $B$$!"MxJX@-$r=E;k$9$k>u67$G$O(B @var{alternate} $B$rMQ$$$k$H$$$&;H$$J,$1$,9T(B $B$J$o$l$^$9!#(B @c --------------------------------------------------------------------- @node Format Contents, , Gaiji Table, Customize Contents @subsection $B%F%-%9%H$N@07A(B @cindex arrange @cindex adjust $B%(%s%H%jFbMF$N@07A=hM}$O!"Fs$D$N%9%F%C%W$G9T$J$o$l$^$9!#0l$D$O(B @dfn{arrange} $B$H8F$S!"$l4X?t$N%j%9%H$r@_Dj$7$^$9!#(B arrange $B4X?t$b(B adjust $B4X?t$b!"8F$S=P$5$l$k%?%$%_%s%0$,0c$&$@$1$G!"FbItE*(B $B$K$OF1$8$b$N$G$9!#$I$A$i$b0l$D$N0z?t$r$C(B $B$F(B adjust $B4X?t$N:G8e$K$O!"%P%C%U%!$N@hF,$X$N0\F0$@$1$r9T$J$&4X?t$r@_$1$F(B $B$*$/$N$,IaDL$G$9!#(B $B$3$l$i$N4X?t$r=q$/$K$O!"$"$kDxEY(B Lookup $B$NFbIt9=B$$K$D$$$F$NCN<1$,I,MW$K(B $B$J$k$+$b$7$l$^$;$s!#(BLookup $B$,MQ$$$k%G!<%?%?%$%W$K$D$$$F$O!"%U%!%$%k(B @file{lookup-types.el} $B$r;2>H$7$F2<$5$$!#I8=`$N(B arrange $B4X?t!"(Badjust $B4X(B $B?t$K$D$$$F$O!"%U%!%$%k(B @file{lookup-vse.el} $B$r;2>H$7$F2<$5$$!#(B @c ===================================================================== @node Supplement Package, Customize Example, Customize Contents, Customization @section $BJd=u%Q%C%1!<%8$r:n$k(B @cindex $BJd=u%Q%C%1!<%8(B $BA0=R$N(B arrange $B4X?t$d30;zCV$-49$(%F!<%V%k$J$I$O!"8D?M$N9%$_$r1[$($FB>?M(B $B$N$?$a$K$bM-MQ$J>l9g$,B?$$$N$G!"$=$l$i$N@_Dj$r$^$H$a$FJd=u%Q%C%1!<%8$r:n(B $B$k$3$H$,=PMh$^$9!#(B(@pxref{Setup Package}) $BJd=u%Q%C%1!<%8$H$OH$7$F2<$5$$!#(B $B%Q%C%1!<%8$r$"$kDxEY<+F0E*!&BPOCE*$K@8@.$9$k%D!<%k$b0JA0$O$"$j$^$7$?$,!"(B $B:#$G$OF0$$$F$$$^$;$s!#=q$-D>$9$3$H$K6=L#$N$"$kJ}$$$i$7$^$7$?$i!"%a!<%j%s(B $B%0%j%9%H$NJ}$^$GO"Mm2<$5$$!#(B(@pxref{How To Get}) $B$b$7;THN$N<-=qMQ$NJd=u%Q%C%1!<%8$r:n$i$l$^$7$?$i!"%a!<%j%s%0%j%9%H$KO"Mm(B $B2<$5$$!#(BLookup $B$N%[!<%`%Z!<%8$KEPO?$5$;$FD:$-$^$9!#(B @c ===================================================================== @node Customize Example, , Supplement Package, Customization @section $B>\:Y$J@_DjNc(B [ $B$3$N@a$O$^$@@0HwESCf$G$9(B ] @c ********************************************************************* @node Dictionary Types, Search Agents, Customization, Top @chapter $B<-=q%U%)!<%^%C%H0lMw(B @menu * Setup SDIC:: SDIC $B%U%)!<%^%C%H(B * Setup dictd:: dictd $B%U%)!<%^%C%H(B * Setup cookie:: cookie $B%U%!%$%k(B * Setup CD-ROM:: $B3FFoofooThis is first entry. Bar BazbarbazThis is second entry. ... @end cartouche @end example @code{} @dots{} @code{} $B$H$J$C$F$$$kItJ,$,%(%s%H%j$N8+=P$7!"(B @code{} @dots{} @code{} $B$H$J$C$F$$$kItJ,$,8!:w$KMQ$$$i$l$k(B $B%-!<%o!<%I!":G8e$NItJ,$,@bL@FbMF$G$9!#8!:w$Oword dict.sdic $B40A40lCW8!:w(B @item grep word dict.sdic $BA0J}0lCW8!:w(B @item grep word dict.sdic $B8eJ}0lCW8!:w(B @item grep word dict.sdic $BA4J88!:w(B @end table $B$h$j>\:Y$J@bL@$O!"(BSDIC $B$KImB0$N;EMM=q$r;2>H$7$F2<$5$$!#(B @subheading SDIC $B<-=q$NMxMQ(B $B<-=q%U%!%$%k$rE,Ev$J%G%#%l%/%H%j$KMQ0U$7!"(Bndic $B%(!<%8%'%s%H$r@_Dj$7$F2<(B $B$5$$!#(B @c --------------------------------------------------------------------- @node Setup dictd, Setup cookie, Setup SDIC, Dictionary Types @section dictd $B%U%)!<%^%C%H(B @cindex dictd $B%U%)!<%^%C%H(B @dfn{dictd $B%U%)!<%^%C%H(B} $B$H$O!"(BDICT $B%W%m%8%'%/%H(B @footnote{@url{http://www.dict.org/}} $B$GG[I[$5$l$F$$$k<-=q%5!<%P(B @code{dictd} $B$GMQ$$$i$l$F$$$kHf3SE*C1=c$J<-=q7A<0$G$9!#(B Lookup $B$G$O(B ndic $B5Z$S(B ndict $B%(!<%8%'%s%H$K$h$j8!:w$,9T$J$($^$9!#(B (@pxref{ndic}, @pxref{ndict}) @subheading dictd $B%U%)!<%^%C%H$NFCD'(B @itemize @bullet @item $B%$%s%G%C%/%9%U%!%$%k$HK\J8%U%!%$%k$,J,N%!#(B @item $B%W%l!<%s%F%-%9%H$K$h$k<-=qFbMF$N5-=R!#(B @item $B$$$/$D$+$N%U%j!<<-=q$,F~$l$l$N%(%s%H%j$N>pJs$,JB$Y$i$l$^$9!#=g$K!":G=i$N%3%i%`$,8+(B $B=P$78l!"FsHVL\$,K\J8$N3+;O0LCV!";0HVL\$,K\J8$ND9$5$rI=$o$7$^$9!#3F%3%i%`(B $B$O%?%V$G6h@Z$i$l!"FsHVL\!";0HVL\$NCM$O(B base64 $B$G%(%s%3!<%I$5$l$F$$$^$9!#(B $B8!:w;~$O$^$:%$%s%G%C%/%9%U%!%$%k$+$iL\E*$N8+=P$78l$,8+IU$1=P$5$l!"$=$&$7(B $B$FF@$i$l$?>pJs$+$i8zN(E*$KK\J8$,\:Y$J@bL@$O!"(B@code{dictd} $B$N%^%K%e%"%k%Z!<%8$r;2>H$7$F2<$5$$!#(B @subheading dictd $B<-=q$NMxMQ(B dictd $B<-=q$O!"(Bndic $B5Z$S(B ndict $B%(!<%8%'%s%H$+$i8!:w$9$k$3$H$,2DG=$G$9!#(B ndict $B%(!<%8%'%s%H$rMQ$$$kJ}$,$h$j9bB.$J8!:w$,2DG=$G$9$,!"%5!<%P$N@_Dj$,(B $BI,MW$J$V$s$$$/$i$+H$7$F2<$5$$!#(B ndic $B%(!<%8%'%s%H$G$"$l$P@_Dj$O:G>.8B$G:Q$_$^$9$,!"(Bndic $B$O:G=i$K%$%s%G%C(B $B%/%9$rA4$FFI$_9~$`$?$a!"Hf3SE*B?$/$N%a%b%j$rI,MW$H$9$k$3$H$KCm0U$7$F2<$5(B $B$$!#>/$J$/$H$bMxMQ$9$k%$%s%G%C%/%9%U%!%$%k$h$j$b==J,Bg$-$J%a%b%j$NM>M5$N(B $B$"$k$3$H$,I,MW$G$9!#(B ndic $B%(!<%8%'%s%H$rMQ$$$k>l9g!"%$%s%G%C%/%9%U%!%$%k$HK\J8%U%!%$%k$NN>J}(B $B$r$=$m$($F!"E,Ev$J%G%#%l%/%H%j$KCV$$$F2<$5$$!#K\J8%U%!%$%k$O(B @code{dictd} $BG[I[J*$K4^$^$l$k(B @code{dictzip} $B%3%^%s%I$G05=L$7$F$*$$$F$b(B $B9=$$$^$;$s!#$3$l$OO$O$^$@@0HwESCf$G$9(B ] @ignore @cindex dictd $B%U%)!<%^%C%H(B @dfn{dictd $B%U%)!<%^%C%H(B} $B$H$O!"(BDICT $B%W%m%8%'%/%H(B @footnote{@url{http://www.dict.org/}} $B$GG[I[$5$l$F$$$k<-=q%5!<%P(B @code{dictd} $B$GMQ$$$i$l$F$$$kHf3SE*C1=c$J<-=q7A<0$G$9!#(B Lookup $B$G$O(B ndic $B5Z$S(B ndict $B%(!<%8%'%s%H$K$h$j8!:w$,9T$J$($^$9!#(B (@pxref{ndic}, @pxref{ndict}) @subheading dictd $B%U%)!<%^%C%H$NFCD'(B @itemize @bullet @item $B%$%s%G%C%/%9%U%!%$%k$HK\J8%U%!%$%k$,J,N%!#(B @item $B%W%l!<%s%F%-%9%H$K$h$k<-=qFbMF$N5-=R!#(B @item $B$$$/$D$+$N%U%j!<<-=q$,F~$l$l$N%(%s%H%j$N>pJs$,JB$Y$i$l$^$9!#=g$K!":G=i$N%3%i%`$,8+(B $B=P$78l!"FsHVL\$,K\J8$N3+;O0LCV!";0HVL\$,K\J8$ND9$5$rI=$o$7$^$9!#3F%3%i%`(B $B$O%?%V$G6h@Z$i$l!"FsHVL\!";0HVL\$NCM$O(B base64 $B$G%(%s%3!<%I$5$l$F$$$^$9!#(B $B8!:w;~$O$^$:%$%s%G%C%/%9%U%!%$%k$+$iL\E*$N8+=P$78l$,8+IU$1=P$5$l!"$=$&$7(B $B$FF@$i$l$?>pJs$+$i8zN(E*$KK\J8$,\:Y$J@bL@$O!"(B@code{dictd} $B$N%^%K%e%"%k%Z!<%8$r;2>H$7$F2<$5$$!#(B @subheading dictd $B<-=q$N=`Hw(B $B%$%s%G%C%/%9%U%!%$%k$HK\J8%U%!%$%k$r$=$m$($F!"E,Ev$J%G%#%l%/%H%j$KCV$$$F(B $B$*$/$@$1$G$9!#K\J8%U%!%$%k$O!"(B@code{dictd} $B$NG[I[J*$K4^$^$l$k(B @code{dictzip} $B%3%^%s%I$K$h$j05=L$9$k$3$H$b2DG=$G$9!#$3$l$O.$5$/$9$k$3$H$,L\E*$G$"$l$P!"$^$:(B epwutil $B$H$$$&$b$N$rMxMQ$9(B $B$k$3$H$G!"2hA|$J$I$NBg$-$J%G!<%?$r:o=|$7$F!"<-=q$r%9%j%`$K$9$k$3$H$,(B $B=PMh$^$9!#<-=q$K$b$h$j$^$9$,!"$3$l$G(B 25$B!A(B100% $BDxEY$NBg$-$5$K$J$j$^$9!#(B $BJ}$rAH$_9g$o$;$k$3$H$G!"<-=q$K$h$C$F$O85$N(B 1/10 $BDxEY$NBg$-$5$K(B $B$^$G:o8:=PMh$^$9!#(B @end ignore @c --------------------------------------------------------------------- @node Setup NDTP, Setup DICT, Setup CD-ROM, Dictionary Types @section NDTP $B<-=q%5!<%P(B @cindex NDTP @dfn{NDTP} $B$H$O!"%M%C%H%o!<%/$G(B CD-ROM $B<-=q$r6&M-$9$k$?$a$K:n$i$l$?8!:w(B $BMQ%W%m%H%3%k$G$9!#(BLookup $B$G$O(B ndtp $B%(!<%8%'%s%H$K$h$j(B NDTP $B%5!<%P$H$d$j(B $B$H$j$9$k$3$H$,=PMh$^$9!#(B(@pxref{ndtp}) @subheading NDTP $B$NFCD'(B @itemize @bullet @item $BF|K\$N;THN(B CD-ROM $B<-=q$K:,:9$7$?FbMF!#(B @item $BNI$/$b0-$/$b!"$$$$$+$2$s$J@_7W!#(B @item $B2?EY$+3HD%$5$l!":#$G$O30;z>pJs$b07$($k$h$&$K$J$C$F$$$k!#(B @end itemize @subheading NDTP $B$N35MW(B @sc{ndtp} (Network Dictionary Transport Protocol) $B$O(B dserver @footnote{ftp://ftp.pu-toyama.ac.jp/pub/misc/} $B$H$$$&8!:w%=%U%H%&%'%"$N(B $BCf$GFH<+$KDj5A$5$l$?$b$N$G!"4J7i$J%3%^%s%IBN7O$r;}$D%F%-%9%H%Y!<%9$N(B $B%W%m%H%3%k$G$9!# @b{Akei} S> $A C> @b{t} S> 1 $B9q8l<-E5(B KOKUGO 0 0 900 S> 2 $B1QOB<-E5(B EIWA 0 0 900 S> 3 $BOB1Q<-E5(B WAEI 0 0 900 S> $* C> @b{L1} S> $* C> @b{Patest} S> $0 S> $B%F%9%H(B S> 668c:73e S> $$ C> @b{S668c:73e} S> $1 S> $B%F%9%H(B S> [$BL>(B] 1. $B;n83(B.... S> $$ C> @b{Q} Connection closed by foreign host. % @end cartouche @end example @subheading NDTP $B%5!<%P$N@_Dj(B [ $B$3$N@a$O$^$@@0HwESCf$G$9(B ] @c --------------------------------------------------------------------- @node Setup DICT, , Setup NDTP, Dictionary Types @section DICT $B<-=q%5!<%P(B @cindex DICT $B%W%m%H%3%k(B @dfn{DICT} $B$H$O!"(B@sc{rfc 2229} $B$H$7$FDj5A$5$l$F$$$k<-=q8!:wMQ%W%m%H%3%k(B $B$G$9!#(BLookup $B$G$O(B ndict $B%(!<%8%'%s%H$K$h$j(B DICT $B%5!<%P$H$d$j$H$j$9$k$3$H(B $B$,=PMh$^$9!#(B(@pxref{ndict}) @subheading DICT $B$NFCD'(B @itemize @bullet @item @sc{rfc} $B$H$7$FL@3N$KDj5A!#(B @item $BJ8;z%3!<%I$O(B @sc{utf-8}(Unicode)$B!#(B @end itemize @subheading DICT $B$N35MW(B @example @cartouche % @b{telnet localhost dict} Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. S> 220 localhost dictd 1.4.8/rf <27831.860032493@@localhost> C> @b{CLIENT ndict} S> 250 ok C> @b{SHOW DB} S> 110 3 databases present S> jargon "Jargon File (4.0.0/24 July 1996)" S> foldoc "The Free On-line Dictionary of Computing (15Feb98)" S> vera "Virtual Entity of Relevant Acronyms (1.4a)" S> . S> 250 ok C> @b{MATCH * exact "test"} S> 152 1 matches found S> jargon "test" S> . S> 250 ok [d/m/c = 0/1/27; 0.000r 0.000u 0.000s] C> @b{DEFINE jargon "test"} S> 150 1 definitions retrieved S> 151 "test" jargon "Jargon File (4.0.0/24 July 1996)" S> test /n./ 1. Real users bashing on a prototype long enough to S> get thoroughly acquainted with it, with careful monitoring and S> followup of the results. 2. Some bored random user trying a couple S> of the simpler features with a developer looking over his or her S> shoulder, ready to pounce on mistakes. Judging by the quality of S> most software, the second definition is far more prevalent. See S> also @{demo@}. S> S> S> . S> 250 ok [d/m/c = 1/0/11; 0.033r 0.000u 0.009s] C> @b{QUIT} S> 221 bye [d/m/c = 0/0/0; 179.328r 0.000u 0.011s] Connection closed by foreign host. % @end cartouche @end example @subheading DICT $B%5!<%P$N@_Dj(B [ $B$3$N@a$O$^$@@0HwESCf$G$9(B ] @c ********************************************************************* @node Search Agents, Mode Details, Dictionary Types, Top @chapter $B8!:w%(!<%8%'%s%H0lMw(B $B$3$N>O$G$O!"(BLookup $B$GMxMQ$G$-$k8!:w%(!<%8%'%s%H$K$D$$$F!"$=$l$rMxMQ$9$k(B $B$?$a$K9T$J$o$J$1$l$P$J$i$J$$=`Hw$d@_Dj9`L\$K$D$$$F>\:Y$K@bL@$7$^$9!#(B @menu * ndic:: $B%U%j!<<-=q$+$i8!:w$9$k(B * ndeb:: CD-ROM $B<-=q$+$i8!:w$9$k(B * ndtp:: NDTP $B%5!<%P$+$i8!:w$9$k(B * ndict:: DICT $B%5!<%P$+$i8!:w$9$k(B * ndsrd:: $B%i%s%@%`%O%&%91Q8l<-E5(B Windows $BHG$r8!:w$9$k(B * ndkks:: $BF|K\8l$NFI$_$rD4$Y$k(B * ndspell:: $B%9%Z%k%A%'%C%/$H%9%Z%k8!:w(B * ndcookie:: cookie $B%U%!%$%k$+$i8!:w$9$k(B @end menu @c ===================================================================== @node ndic, ndeb, Search Agents, Search Agents @section ndic `ndic' $B$O!"$KMQ0U$9$Y$-$b$N$b$J$$$N$G!"(B $B$H$j$"$($:(B Lookup $B$r;n$7$F$_$k$K$O$A$g$&$I$$$$$G$7$g$&!#(B dictd $B<-=q$O(B ndict $B%(!<%8%'%s%H$G$bMxMQ2DG=$G$9!#@-G=$r=E;k$9$k>l9g$K$O!"(B $B$=$A$i$r;2>H$7$F$_$F2<$5$$!#(B(@pxref{ndict}) @menu * ndic prepare:: ndic $B$N=`Hw(B * ndic setup:: ndic $B$N@_Dj(B * ndic dictionary:: ndic $B$N<-=q(B * ndic customize:: ndic $B$N%+%9%?%^%$%:(B @end menu @c --------------------------------------------------------------------- @node ndic prepare, ndic setup, ndic, ndic @subsection ndic $B$N=`Hw(B ndic $B$G$O8=:_!"(Bdictd-1.4.x $BMQ$KMQ0U$5$l$?<-=q(B $B$H(B SDIC $B<-=q$+$i8!:w$r(B $B9T$J$&$3$H$,2DG=$H$J$C$F$$$^$9!#$$$/$D$+$N%U%j!<$J<-=q$,!"(BLookup $B$N%[!<%`(B $B%Z!<%8$+$iF~(B $B$NFCJL$J@_Dj$O$"$j$^$;$s!#(B $BNc$($P$,<-=qL>$H$J$j$^$9!#<-=q$N%?%$%H%k$O<+F0E*$KG'<1$5$l$^$9!#(B $BA4J88!:w$r=|$/!"A4$F$N8!:wJ}<0$,M-8z$G$9!#(B(@pxref{Search Methods}) @c --------------------------------------------------------------------- @node ndic customize, , ndic dictionary, ndic @subsection ndic $B$N%+%9%?%^%$%:(B @vindex ndic-dictzip-program $B<-=q$,(B dictzip $B%3%^%s%I$K$h$j05=L$7$F$"$k>l9g!"$=$NE83+$K(B dictzip $B$r8F$S(B $B=P$7$^$9!#JQ?t(B @code{ndic-dictzip-program} $B$K$h$j!"$=$N%W%m%0%i%`L>$r;X(B $BDj$7$^$9!#%G%U%)%k%H$G$O(B "dictzip" $B$K$J$C$F$$$^$9!#(B @c ===================================================================== @node ndeb, ndtp, ndic, Search Agents @section ndeb `ndeb' $B$O!"EE;R%V%C%/$d(B EPWING $B5,Ls$K=`5r$7$?(B CD-ROM $B=q@R$N8D?MMxMQ$K8~(B $B$$$?8!:w%(!<%8%'%s%H$G$9!#(Beblook $B$H$$$&30It%3%^%s%I$rMQ$$$k$3$H$G!"FCJL(B $B$J@_Dj$NI,MW$J$7$K$C$?(B CD-ROM $B<-=q$r%"%/%;%9$9$k$?$a$N4J0W8!:w%3%^%s%I$G$9!#(B ndeb $B$O30It%3%^%s%I$H$7$F(B eblook $B$rMxMQ$7$F$$$^$9!#(Beblook $B$O!"EE;R%V%C%/(B $B$d(B EPWING $B$H$$$C$?5,Ls$K=>$C$?(B CD-ROM $B=q@R$r%"%/%;%9$9$k$?$a$N%D!<%k$G$9!#(B @subsubheading CD-ROM $B$N=`Hw(B $BMxMQ=PMh$k(B CD-ROM $B$O!"0lHL$N=qE9$G9XF~$9$k$3$H$,=PMh$^$9!#BgBN!"?t@i1_$+(B $B$i?tK|1_DxEY$GGd$C$F$$$^$9!#$3$l$+$i9XF~$9$k>l9g$K$O!"$=$l$,(B EPWING $B$H$$(B $B$&5,3J$K=>$C$F$$$k$3$H$r3NG'$7$F2<$5$$!#%Q%C%1!<%8$NN"$K(B EPWING $B$H$$$&%^!<(B $B%/$,IU$$$F$$$k$O$:$G$9!#(B CD-ROM $B$OE,Ev$J%G%#%l%/%H%j$K%^%&%s%H$7$F$*$$$F2<$5$$!#%G%#%9%/$KM>M5$,(B $B$"$k>l9g$K$O!"%O!<%I%G%#%9%/$K%3%T!<$7$F$*$$$F$b9=$$$^$;$s!#$?$@$7!"%3%T!<(B $B$,5v$5$l$k$+$I$&$+$OCx:n.$5$l$^$9!#(B @subsubheading eblook eblook $B$OpJs$,F@$i$l$^$9!#(B @table @asis @item eblook @url{http://openlab.ring.gr.jp/edict/eblook/} @end table $B%$%s%9%H!<%k$OE,Ev$J%G%#%l%/%H%j$K9T$J$C$F2<$5$$!#(B @subsubheading $B30;zI=<($N=`Hw(B Lookup $B$O(B CD-ROM $B=q@R$K4^$^$l$k30;z$NI=<($r%5%]!<%H$7$F$$$^$9!#30;zI=<((B $B$r9T$J$&$?$a$N@_Dj$K$D$$$F$O!"(B@ref{Setup Gaiji} $B$r;2>H$7$F2<$5$$!#(B $B30;z$rI=<($7$?$/$J$$!"$b$7$/$O$=$l$,IT2DG=$J>l9g$K$O!"(BAppendix $B$H8F$P$l(B $B$k30;z$NCV$-49$(%F!<%V%k$rMxMQ$9$k$3$H$G!"30;z$rDL>o$NJ8;zNs$GCV$-49$($k(B $B$3$H$b2DG=$G$9!#;THN$N<-=q$KBP1~$7$?$$$/$D$+$N(B Appendix $B$,!"(BEB $B%i%$%V%i(B $B%j$N(B Web $B%Z!<%8$G8x3+$5$l$F$$$^$9!#(B @table @asis @item Appendix @url{http://www.sra.co.jp/people/m-kasahr/eb/} @end table $B$"$k$$$OMxMQ$9$k<-=q$NJd=u%Q%C%1!<%8$,$"$k>l9g$K$O!"$=$3$GFH<+$K30;z$NCV(B $B$-49$(%F!<%V%k$,MQ0U$5$l$F$$$k>l9g$,$"$j$^$9!#L\E*$NJd=u%Q%C%1!<%8$,$J$$(B $B$+3NG'$7$F$_$F2<$5$$!#(B(@pxref{Setup Package}) @c --------------------------------------------------------------------- @node ndeb setup, ndeb dictionary, ndeb prepare, ndeb @subsection ndeb $B$N@_Dj(B ndeb $B$O!"JN,$5$l$?>l9g$K$O!"<-=q%*(B $B%W%7%g%s(B @code{:gaiji-table} $B$K=>$C$F30;z$,CV$-49$($i$l$^$9!#(B (@pxref{Gaiji Table}) @item :coding eblook $B$KBP$9$k(B process-coding-system$B!#(B $B%G%U%)%k%H$O(B @code{euc-jp}$B!#(B @end table $BH!#(B @end table $BNc$($PA0$H%?%$%H%k$O(B eblook $B$+$iM?$($i$l$^$9!#(B $B8!:wJ}<0$O!V40A40lCW8!:w!W!VA0J}0lCW8!:w!W!V8eJ}0lCW8!:w!W$G$9!#(B (@pxref{Search Methods}) ndeb $B$O%a%K%e!<%3%^%s%I$H%3%T!<%i%$%H%3%^%s%I$KBP1~$7$F$$$^$9!#(B (@pxref{Specify Dictionary}) @c --------------------------------------------------------------------- @node ndeb customize, , ndeb dictionary, ndeb @subsection ndeb $B$N%+%9%?%^%$%:(B @vindex ndeb-program-name $BJQ?t(B @code{ndeb-program-name} $B$K$h$j!"(Beblook $B$N%3%^%s%IL>$r;XDj$7$^$9!#(B $B%G%U%)%k%H$G$O(B "eblook" $B$H$J$C$F$$$^$9!#(B @vindex ndeb-prompt-string $BJQ?t(B @code{ndeb-prompt-string} $B$K$h$j!"(Beblook $B$N%W%m%s%W%H$r;XDj$7$^$9!#(B $B%G%U%)%k%H$G$O(B "eblook> " $B$H$J$C$F$$$^$9!#(B @c ===================================================================== @node ndtp, ndict, ndeb, Search Agents @section ndtp `ndtp' $B$O!"l9g$K$O!"$h$jl9g$K$O!"<+J,$G=`Hw$9$kI,MW$,$"$j$^$9!#(B @subsubheading NDTP server NDTP $B%5!<%P$H$7$F!"(Bdserver $B$H(B NDTPD $B$NFs$D$,F~$l$N%W%m%0%i%`$KImB0$N%I%-%e%a%s%H$r;2>H(B $B$7$F2<$5$$!#(B @subsubheading $B30;zI=<($N=`Hw(B NDTP $B%5!<%P$H$7$F(B NDTPD $B%P!<%8%g%s(B 2.0 $B0J9_$rMQ$$$k$H!"<-=q$N30;z>pJs$r(B $B07$($k$h$&$K$J$j$^$9!#30;zI=<($N$?$a$N@_Dj$K$D$$$F$O!"(B@ref{Setup Gaiji} $B$r;2>H$7$F2<$5$$!#(B @c --------------------------------------------------------------------- @node ndtp setup, ndtp dictionary, ndtp prepare, ndtp @subsection ndtp $B$N@_Dj(B ndtp $B$O!"$r;XDj$7$^$9!#(B $B!#(B @item :port NDTP $B$N%]!<%HHV9f!#(B $B%5!<%S%9L>$H%]!<%HHV9f$NN>J}$r>JN,$7$?>l9g$O!"(B $B%5!<%S%9L>$H$7$F(B "ndtp" $B$,MxMQ$5$l$^$9!#(B @item :account $B%5!<%P$X$N%"%+%&%s%H!#$3$l$O%m%0$K;D$k$H$$$&0J>e$N0UL#$O$J$$!#(B $B%G%U%)%k%H$O(B "@@")$B!#(B @item :coding $B%5!<%P$KBP$9$k(B process-coding-system$B!#%G%U%)%k%H$O(B @code{euc-jp}$B!#(B @end table $BNc$($PA0$H%?%$%H%k$O%5!<(B $B%P$+$iM?$($i$l$^$9!#(B $B8!:wJ}<0$O!V40A40lCW8!:w!W!VA0J}0lCW8!:w!W!V8eJ}0lCW8!:w!W$G$9!#(B (@pxref{Search Methods}) @c ===================================================================== @node ndict, ndsrd, ndtp, Search Agents @section ndict `ndict' $B$O!"H$7$F$_$F2<$5$$!#(B(@pxref{ndic}) @menu * ndict prepare:: ndict $B$N=`Hw(B * ndict setup:: ndict $B$N@_Dj(B * ndict dictionary:: ndict $B$N<-=q(B @end menu @c --------------------------------------------------------------------- @node ndict prepare, ndict setup, ndict, ndict @subsection ndict $B$N=`Hw(B ndict $B$O(B DICT $B%W%m%H%3%k$KBP1~$7$?<-=q%5!<%P$K%"%/%;%9$7$^$9!#%5!<%P$K@\(B $BB3$G$-$k4D6-$G$"$l$P!"FCJL$J=`Hw$O2?$bI,MW$"$j$^$;$s!#<+J,$G%5!<%P$rF3F~(B $B$9$k>l9g$K$O!"(BDICT $B%W%m%8%'%/%H$+$i(B dictd $B$,F~$C$FE,@Z$K<-=q!"5Z$S%5!<%P$rF3F~$7$F2<$5$$!#(Bdictd $B$GMxMQ$G$-$k$$$/$D$+$N<-=q$O!">e5-%Z!<%80J30$K$b(B Lookup $B$N%[!<%`%Z!<%8$+(B $B$i$bF~$r;XDj$7$^$9!#(B $B!#(B @item :port DICT $B$N%]!<%HHV9f!#(B @vindex ndict-service-name $B%5!<%S%9L>$H%]!<%HHV9f$NN>J}$r>JN,$7$?>l9g$O!"(B $B%5!<%S%9L>$H$7$FJQ?t(B @code{ndict-service-name} $B$NCM(B ("dict") $B$,MxMQ$5$l$^$9!#(B @item :coding $B%5!<%P$KBP$9$k(B process-coding-system$B!#(B $B%G%U%)%k%H$O(B @code{euc-jp-dos}$B!#(B @item :auth $B%5!<%P$X$N(B authentication ($BG'>Z(B) $B$r;XDj$9$k!#%f!<%6L>$H%Q%9%o!<%I$N(B $BAH(B (cons) $B$K$h$C$FI=$o$9!#(B @item :methods $B%5!<%P$,BP1~$7$F$$$k8!:wJ}<0$N%j%9%H$r;XDj$9$k!#%G%U%)%k%H$G$O!"(B $B%5!<%P$N%=%U%H%&%'%"$r8+$F8!:wJ}<0$rM=B,$7$F$$$k!#$H$$$&$N$b!"(B DICT $B%W%m%H%3%k$G$O8!:wJ}<0$O%5!<%P$,<+M3$K@_$1$k$3$H$,=PMh$k$N$G!"(B $B%W%m%0%i%`$+$i$O40A4$J<+F0H=Dj$,=PMh$J$$!#=>$C$F%f!<%6$,BP1~$r;XDj$9$k(B $BI,MW$,$"$k!#(Bdictd-1.4.x $B$rIaDL$KMQ$$$k>l9g$K$O!"$3$l$r;XDj$9$k(B $BI,MW$O$J$$!#H!#(B @item :method-table Lookup $B$N8!:wJ}<0$H%5!<%P$N(B strategy $B$H$NBP1~4X78$r(B alist $B$G;XDj$9$k!#(B $BNc$($P%5!<%P$,(B dictd-1.4.x $B$G$"$k>l9g!"$3$l$O<+F0E*$K(B @lisp ((keyword . "exact") (prefix . "prefix") (suffix . "suffix") (substring . "substring") (exact . "exact") (regexp . "re")) @end lisp $B$N$h$&$K@_Dj$5$l$k!#>e$N(B @code{:methods} $B$bF1;~$K;XDj$9$kI,MW$,$"$k!#(B @end table $BNc$($PA0$H%?%$%H%k$O%5!<(B $B%P$+$iM?$($i$l$^$9!#(B($B$7$+$7!"%5!<%P$+$iM?$($i$l$k%?%$%H%k$O$+$J$jD9$$>l(B $B9g$,$"$k$N$G!"<+J,$G:F@_Dj$7$?J}$,$h$$$+$b$7$l$^$;$s(B (@pxref{Dictionary Options})) $B8!:wJ}<0$OAjl9g$K$O!"!VA4J88!:w!W0J30$NA4$F$N8!:w$,M-8z$H$J$j$^$9!#$G$J$1$l$P!"(B $B!V%-!<%o!<%I8!:w!W$H!VA0J}0lCW8!:w!W$N$_M-8z$H$J$j$^$9!#(B (@pxref{Search Methods}) @c ===================================================================== @node ndsrd, ndkks, ndict, Search Agents @section ndsrd `ndsrd' $B$O!"%i%s%@%`%O%&%91Q8l<-E5(B Windows $BHG$r8!:w$9$k8!:w%(!<%8%'%s%H$G(B $B$9!#30It%3%^%s%I$H$7$FB@ED=c$5$s:n$N(B CSRD $B$rMQ$$$^$9!#(B @menu * ndsrd prepare:: ndsrd $B$N=`Hw(B * ndsrd setup:: ndsrd $B$N@_Dj(B * ndsrd dictionary:: ndsrd $B$N<-=q(B * ndsrd customize:: ndsrd $B$N%+%9%?%^%$%:(B @end menu @c --------------------------------------------------------------------- @node ndsrd prepare, ndsrd setup, ndsrd, ndsrd @subsection ndsrd $B$N=`Hw(B ndsrd $B$O%P!<%8%g%s(B 1.0 $B0J9_$N(B CSRD $B$KBP1~$7$F$$$^$9!#(BCSRD $B$O$C$F%$%s%9%H!<%k$r9T$J$C$F$/$@$5$$!#(B @c --------------------------------------------------------------------- @node ndsrd setup, ndsrd dictionary, ndsrd prepare, ndsrd @subsection ndsrd $B$N@_Dj(B ndsrd $B$O!"$r;XDj$7$^$9!#(B $B%G%U%)%k%H$G$O(B "csrd" $B$H$J$C$F$$$^$9!#(B @c ===================================================================== @node ndkks, ndspell, ndsrd, Search Agents @section ndkks `ndkks' $B$O!"8!:w$G$O$J$/F|K\8l$NFI$_$rD4$Y$k$?$a$N8!:w%(!<%8%'%s%H$G$9!#(B $B4A;z$N4^$^$l$k8!:w8l$r;XDj$7$?>l9g!"4A;z$+$JJQ49%W%m%0%i%`(B KAKASI $B$rMQ$$(B $B$F$=$NFI$_$rD4$Y$FI=<($7$^$9!#(B @menu * ndkks prepare:: ndkks $B$N=`Hw(B * ndkks setup:: ndkks $B$N@_Dj(B * ndkks dictionary:: ndkks $B$N<-=q(B * ndkks customize:: ndkks $B$N%+%9%?%^%$%:(B @end menu @c --------------------------------------------------------------------- @node ndkks prepare, ndkks setup, ndkks, ndkks @subsection ndkks $B$N=`Hw(B KAKASI $B$O4A;z$+$JJQ49%W%m%0%i%`$G!">N$GF~$NFCJL$J@_Dj$O$"$j$^$;$s!#(B @c --------------------------------------------------------------------- @node ndkks dictionary, ndkks customize, ndkks setup, ndkks @subsection ndkks $B$N<-=q(B ndkks $B<+BN$,0l$D$N<-=q$H$J$j$^$9!#<-=qL>$OJQ?t(B @code{ndkks-program-name} $B$G;XDj$5$l$k(B KAKASI $B%W%m%0%i%`$NL>A0$G$9!#%?%$%H%k$OJQ?t(B @code{ndkks-dictionary-title} $B$K$h$jM?$($i$l$^$9!#(B $B%-!<%o!<%I8!:w$K$*$$$F!"4A;z$N4^$^$l$k8!:w8l$,;XDj$5$l$?$H$-=PNO$5$l$^$9!#(B @c --------------------------------------------------------------------- @node ndkks customize, , ndkks dictionary, ndkks @subsection ndkks $B$N%+%9%?%^%$%:(B @vindex ndkks-program-name $BJQ?t(B @code{ndkks-program-name} $B$K$h$j!"(BKAKASI $B$N%3%^%s%IL>$r;XDj$7$^$9!#(B $B%G%U%)%k%H$G$O(B "kakasi" $B$H$J$C$F$$$^$9!#(B @vindex ndkks-dictionary-title $BJQ?t(B @code{ndkks-dictionary-title} $B$K$h$j!"(Bndkks $B<-=q$N%?%$%H%k$r;XDj$7(B $B$^$9!#%G%U%)%k%H$G$O(B "$B4A;z$+$J<-E5(B" $B$H$J$C$F$$$^$9!#(B @vindex ndkks-content-format $BJQ?t(B @code{ndkks-content-format} $B$K$h$j!"=PNOFbMF$N%U%)!<%^%C%H$r%j%9%H(B $B$G;XDj$7$^$9!#%j%9%H$N3FMWAG$K$O$N%(!<%8%'%s%H$GFH<+$K%9%Z%k%A%'%C%/$r9T$J$o$:$H$b!"(Bndspell $B$,$=$l$r=h(B $BM}$7$F<+F0E*$K:F8!:w$r9T$J$C$F$/$l$^$9!#$^$?!"%9%Z%k$N8!:w$b9T$J$($^$9!#(B @menu * ndspell prepare:: ndspell $B$N=`Hw(B * ndspell setup:: ndspell $B$N@_Dj(B * ndspell dictionary:: ndspell $B$N<-=q(B * ndspell customize:: ndspell $B$N%+%9%?%^%$%:(B @end menu @c --------------------------------------------------------------------- @node ndspell prepare, ndspell setup, ndspell, ndspell @subsection ndspell $B$N=`Hw(B ndspell $B$O30It%3%^%s%I$H$7$F(B Ispell $B$H(B grep $B$rMxMQ$7$F$$$^$9!#(BIspell $B$O(B $BBPOC7?$N%9%Z%k%A%'%C%/%3%^%s%I$G!"(Bgrep $B$O8@$o$:$HCN$l$?(B UNIX $B%D!<%k$G$9!#(B $B$I$A$i$b(B GNU $B$N(B FTP $B%5%$%H$J$I$+$iF~$NFCJL$J@_Dj$O$"$j$^$;$s!#(B @c --------------------------------------------------------------------- @node ndspell dictionary, ndspell customize, ndspell setup, ndspell @subsection ndspell $B$N<-=q(B ndspell $B<+BN$,0l$D$N<-=q$H$J$j$^$9!#<-=qL>$OJQ?t(B @code{ndspell-ispell-program} $B$G;XDj$5$l$k(B Ispell $B%3%^%s%I$NL>A0$G$9!#(B $B%?%$%H%k$OJQ?t(B @code{ndspell-dictionary-title} $B$K$h$jM?$($i$l$^$9!#(B $Bl9g$K$O8uJd$r%(%s%H%j$H$7$F@8@.!#(B @item $BA0J}0lCW8!:w(B @itemx $B8eJ}0lCW8!:w(B @itemx $BItJ,0lCW8!:w(B @itemx $B@55,I=8=8!:w(B $B%Q%?!<%s$K%^%C%A$9$kC18l$r8!:w$7!"%(%s%H%j$r@8@.!#(B @end table $B$I$N>l9g$b!"@8@.$5$l$?%(%s%H%j$OIaDL$K(B Entry $B%P%C%U%!$K=PNO$5$l!"$=$l$r(B $BA*Br$7$FFbMF$rI=<($7$h$&$H$7$?CJ3,$G:F8!:w$,9T$J$o$l$^$9!#$r;XDj$7$^(B $B$9!#%G%U%)%k%H$G$O(B "ispell" $B$H$J$C$F$$$^$9!#(B @vindex ndspell-grep-program $BJQ?t(B @code{ndspell-grep-program} $B$K$h$j!"(Bgrep $B$N%3%^%s%IL>$r;XDj$7$^$9!#(B $B%G%U%)%k%H$G$O(B "grep" $B$H$J$C$F$$$^$9!#(B @vindex ndspell-words-dictionary $BJQ?t(B @code{ndspell-words-dictionary} $B$K$h$j!"%9%Z%k$r8!:w$9$k:]$NC18l<-(B $B=q$r;XDj$7$^$9!#%G%U%)%k%H$G$O(B @file{/usr/share/dict/words} $B$H$J$C$F$$$^(B $B$9!#(B @vindex ndspell-dictionary-title $BJQ?t(B @code{ndspell-dictionary-title} $B$K$h$j!"(Bndspell $B<-=q$N%?%$%H%k$r;X(B $BDj$7$^$9!#%G%U%)%k%H$G$O(B "Spell Checker" $B$H$J$C$F$$$^$9!#(B @vindex ndspell-search-dictionaries $BJQ?t(B @code{ndspell-search-dictionaries} $B$K$h$j!":F8!:w$NBP>]$H$9$k<-=q$r(B $B$=$N<-=q(B ID $B$N%j%9%H$H$7$F;XDj$7$^$9!#%G%U%)%k%H$G$O(B @code{t} $B$H$J$C$F$*(B $B$j!"$3$N>l9g!"A*Br$5$l$F$$$kA4$F$N<-=q$+$i:F8!:w$,9T$J$o$l$^$9!#(B @c ===================================================================== @node ndcookie, , ndspell, Search Agents @section ndcookie `ndcookie' $B$O!"(Bcookie $B%U%!%$%k(B ($B0zMQ=8(B) $B$+$i8!:w$r9T$J$&$?$a$N8!:w%(!<%8%'(B $B%s%H$G$9!#$*$^$1$_$?$$$J$b$s$G$9!#(B @menu * ndcookie prepare:: ndcookie $B$N=`Hw(B * ndcookie setup:: ndcookie $B$N@_Dj(B * ndcookie dictionary:: ndcookie $B$N<-=q(B @end menu @c --------------------------------------------------------------------- @node ndcookie prepare, ndcookie setup, ndcookie, ndcookie @subsection ndcookie $B$N=`Hw(B $BMxMQ=PMh$k%U%!%$%k$NNc$H$7$F$O!"(BEmacs $B$KImB0$N(B Zippy $B%U%!%$%k$,$"$j$^$9!#(B @table @asis @item Zippy @file{$(EMACS)/etc/yow.lines} @end table @c --------------------------------------------------------------------- @node ndcookie setup, ndcookie dictionary, ndcookie prepare, ndcookie @subsection ndcookie $B$N@_Dj(B ndcookie $B$O!"l9g!"JQ?t(B @code{data-directory} $B$+$i$NAjBP%Q%9$H$7$F07$o(B $B$l$^$9!#(B $BNc$($P$O%U%!%$%kL>$K0lCW(B $B$7$^$9!#%?%$%H%k$O@_Dj$5$l$^$;$s!#(B $BA4$F$N8!:wJ}<0$,M-8z$H$J$j$^$9!#(B(@pxref{Search Methods}) @c ********************************************************************* @node Mode Details, How To Get, Search Agents, Top @chapter $B3F%b!<%I$K$D$$$F$N>\:Y(B $B$3$N>O$G$O!"(BLookup $B$N3F%b!<%I$G$NA4$F$N@_Dj!&A`:n$K$D$$$F@bL@$7$^$9!#(B @menu * Select Mode:: Select $B%b!<%I(B * Entry Mode:: Entry $B%b!<%I(B * Content Mode:: Content $B%b!<%I(B @end menu @c ===================================================================== @node Select Mode, Entry Mode, Mode Details, Mode Details @section Select $B%b!<%I(B Select $B%b!<%I$G$O!"MxMQ2DG=$J<-=q$N0lMw$rI=<($7!"uBV$r@Z$jBX$($k$3$H$,=PMh$^$9!#$^$?!"$=$l$>$l$N<-=q$K8GM-$N>pJs$rF@$k(B $B$3$H$b=PMh$^$9!#(B @menu * Select Mode Details:: Select $B%b!<%I$N>\:Y(B * Select Mode Commands:: Select $B%b!<%I$N%3%^%s%I0lMw(B @end menu @c --------------------------------------------------------------------- @node Select Mode Details, Select Mode Commands, Select Mode, Select Mode @subsection Select $B%b!<%I$N>\:Y(B @findex lookup-select-mode @vindex lookup-select-mode-map @vindex lookup-select-mode-hook $B:G=i$K(B @kbd{M-x lookup} $B$r$l<-=q$NA*Br>uBV!"<-=q(B ID$B!"<-=q$N%?%$%H%k$,I=<($5$l$^$9!#(B @ref{Quick Startup} $B$r;2>H$7$F2<$5$$!#(B @samp{Methods} $B$H$"$k%3%i%`$K$O!"<-=q$,BP1~$7$F$$$k8!:wJ}<0$,<($5$l$^$9!#(B $B$3$3$KJB$s$G$$$k5-9f$NNs$O!"0lJ8;z$,$=$l$>$l0l$D$N8!:wJ}<0$rI=$o$7$F$$$^(B $B$9!#3F5-9f$H8!:wJ}<0$NBP1~$K$D$$$F$O!"(B@ref{Search Methods} $B$r;2>H$7$F2<(B $B$5$$!#(B $B$3$N%P%C%U%!$G$N6qBNE*$JA`:n$K$D$$$F$O!"(B @ref{Specify Dictionary} $B$r;2>H$7$F2<$5$$!#(B @c --------------------------------------------------------------------- @node Select Mode Commands, , Select Mode Details, Select Mode @subsection Select $B%b!<%I$N%3%^%s%I0lMw(B @table @kbd @item @key{SPC} @itemx n @itemx M-x lookup-select-next-line @findex lookup-select-next-line $BuBV$r%H%0%k$9$k!#(B @item a @itemx M-x lookup-select-do-select-all @findex lookup-select-do-select-all $BA4$F$N<-=q$rA*Br$9$k!#(B @item @key{RET} @itemx M-x lookup-select-do-select-only @findex lookup-select-do-select-only $B%]%$%s%H9T$N<-=q$N$_$rA*Br$9$k!#(B @item d @itemx M-x lookup-select-mark-disable @findex lookup-select-mark-disable $B%]%$%s%H9T$N<-=q$KL58z2=$N%^!<%/$rIU$1$k!#(B @item x @itemx M-x lookup-select-do-execute @findex lookup-select-do-execute $BL58z2=$rl9g!"$=$l$r;2>H$9$k!#(B @item M @itemx M-x lookup-select-copyright @findex lookup-select-copyright $B<-=q$,%3%T!<%i%$%HI=<($KBP1~$7$F$$$k>l9g!"$=$l$r;2>H$9$k!#(B @item f @itemx M-x lookup-select-search-pattern @findex lookup-select-search-pattern $BA*Br$5$l$?<-=q$+$i8!:w$r9T$J$&!#(B @item / @itemx M-x lookup-select-text-search @findex lookup-select-text-search $B%]%$%s%H9T$N<-=q$+$iA4J88!:w$r9T$J$&!#(B @item g @itemx M-x lookup-select-update @findex lookup-select-update $B8=:_$N8!:w%b%8%e!<%k$r=i4|2=$7D>$9!#(B $B$?$@$7!"@_Dj%U%!%$%k$G@_Dj$rJQ99$7$?>l9g!"$=$l$rH?1G$5$;$k$K$O(B @kbd{M-x lookup-restart} $B$rMQ$$$kI,MW$,$"$k!#(B @item q @itemx M-x lookup-quit $B<-=qA*Br%P%C%U%!$rH4$1$k!#(B @item Q @itemx M-x lookup-exit Lookup $B$r=*N;$9$k!#(B @item R @itemx M-x lookup-restart Lookup $B$r:F5/F0$9$k!#(B @item ? @itemx M-x lookup-select-help @findex lookup-select-help Select $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B @end table @c ===================================================================== @node Entry Mode, Content Mode, Select Mode, Mode Details @section Entry $B%b!<%I(B Entry $B%b!<%I$G$O!"8!:w$N7k2L8+IU$+$C$?%(%s%H%j$r0lMw$7!"$=$l$i$r=g$K;2>H(B $B$7$F$$$/$3$H$,=PMh$^$9!#(B @menu * Entry Mode Details:: Entry $B%b!<%I$N>\:Y(B * Entry Mode Commands:: Entry $B%b!<%I$N%3%^%s%I0lMw(B @end menu @c --------------------------------------------------------------------- @node Entry Mode Details, Entry Mode Commands, Entry Mode, Entry Mode @subsection Entry $B%b!<%I$N>\:Y(B @findex lookup-entry-mode @vindex lookup-entry-mode-map @vindex lookup-entry-mode-hook $B3FH$7$F2<$5$$!#8e$KB3$/%V%i%1%C%H(B ($B3Q3g8L(B) $B$H(B $B?t;z$O!"8+IU$+$C$?%(%s%H%j$N?t$G$9!#(B $B$3$N%P%C%U%!$G$N6qBNE*$JA`:n$K$D$$$F$O!"(B @ref{See Result} $B;2>H$7$F2<$5$$!#(B @c --------------------------------------------------------------------- @node Entry Mode Commands, , Entry Mode Details, Entry Mode @subsection Entry $B%b!<%I$N%3%^%s%I0lMw(B @table @kbd @item M-x lookup-entry-display-content @findex lookup-entry-display-content $B%]%$%s%H9T$N%(%s%H%j$NK\J8$rI=<($9$k!#(B Overview $B%b!<%I$K$J$C$F$$$k>l9g$K$O$=$l$r2r=|$7!"(BContent $B%P%C%U%!$r(B $B%*!<%W%s$9$k!#%(%s%H%j$,%j%U%!%l%s%9$N>l9g$K$O!"$=$l$r;2>H$9$k!#(B @item @key{mouse-2} @item @code{lookup-entry-mouse-follow} @findex lookup-entry-mouse-follow $B%^%&%9$G%/%j%C%/$7$?%(%s%H%j$NK\J8$rI=<($9$k!#(B @item @key{SPC} @itemx M-x lookup-entry-next-page @findex lookup-entry-next-page $B%(%s%H%jK\J8$NI=<($r0l%Z!<%8?J$a$k!#(B $B%P%C%U%!$N=*$o$j$^$GC#$7$?$i!" @itemx M-x lookup-entry-end-of-content @findex lookup-entry-end-of-content $B%(%s%H%jK\J8$NI=<($rKvHx$^$G?J$a$k!#(B @item n @itemx M-x lookup-entry-next-entry @findex lookup-entry-next-entry $BpJs$r=PNO$9$k!#(B @item o @itemx M-x lookup-entry-open @findex lookup-entry-open $B%(%s%H%jK\J8$r2hLL0lGU$KI=<($9$k!#(B @item O @itemx M-x lookup-entry-open-other @findex lookup-entry-open-other $B%(%s%H%jK\J8$rJL%W%m%0%i%`$GI=<($9$k!#(B @item v @itemx M-x lookup-entry-overview-mode @findex lookup-entry-overview-mode Overview $B%b!<%I$KF~$k!#(B Cotent $B%P%C%U%!$,%/%m!<%:$5$l!"(B@kbd{n} $B$H(B @kbd{p} $B$,C1$K%]%$%s%H0\F0$@$1$r(B $B9T$J$&$h$&$K$J$k!#(B @item t @itemx M-x lookup-entry-toggle-format @findex lookup-entry-toggle-format $B%(%s%H%jK\J8$N@07A=hM}$r%H%0%k$9$k!#(B @item s @itemx M-x lookup-entry-isearch-content @findex lookup-entry-isearch-content Content $B%P%C%U%!$G(B isearch-forward $B$rH!#(B @item f @itemx M-x lookup-entry-search-pattern @findex lookup-entry-search-pattern $B%_%K%P%C%U%!$+$i8!:w<0$rF~NO$7$F8!:w$9$k!#(B @item L @itemx M-x lookup-entry-list-references @findex lookup-entry-list-references $B%(%s%H%jK\J8$K4^$^$l$k%j%U%!%l%s%9$r0lMw$9$k!#(B @item S @itemx M-x lookup-select-dictionary $B<-=qA*Br%P%C%U%!$K@Z$j49$($k!#(B @item r @itemx M-x lookup-entry-start-window @findex lookup-entry-start-window $B8!:w$r3+;O$7$?%&%#%s%I%&$K0\F0$9$k!#(B @item h @itemx M-x lookup-entry-content-window @findex lookup-entry-content-window Content $B%P%C%U%!$K0\F0$9$k!#(B @item g @itemx M-x lookup-entry-update @findex lookup-entry-update $B:#2s$HF1$88!:w8l$G!"%(%s%H%j$r:F8!:w$9$k!#(B @item M-x lookup-entry-update-content @findex lookup-entry-update-content $B%(%s%H%jK\J8$r:FI=<($9$k!#@07A=hM}$bA4$F$d$jD>$5$l$k!#(B @item q @itemx M-x lookup-quit Entry $B%P%C%U%!$rH4$1$k!#(B @item Q @itemx M-x lookup-exit Lookup $B$r=*N;$9$k!#(B @item R @itemx M-x lookup-restart Lookup $B$r:F5/F0$9$k!#(B @item ? @itemx M-x lookup-entry-help @findex lookup-entry-help Entry $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B @end table @c ===================================================================== @node Content Mode, , Entry Mode, Mode Details @section Content $B%b!<%I(B Content $B%b!<%I$G$O!"%(%s%H%j$NK\J8$rI=<($7!"FbMF$r;2>H$9$k$3$H$,=PMh$^$9!#(B @menu * Content Mode Details:: Content $B%b!<%I$N>\:Y(B * Content Mode Commands:: Content $B%b!<%I$N%3%^%s%I0lMw(B @end menu @c --------------------------------------------------------------------- @node Content Mode Details, Content Mode Commands, Content Mode, Content Mode @subsection Content $B%b!<%I$N>\:Y(B @findex lookup-content-mode @vindex lookup-content-mode-map @vindex lookup-content-mode-hook Entry $B%P%C%U%!$GK\J8$rI=<($9$k$h$&A`:n$9$k$H(B Content $B%P%C%U%!$,8=$l!"(B Content $B%b!<%I(B (@code{lookup-content-mode}) $B$KF~$j$^$9!#%-!<%^%C%W$O(B @code{lookup-content-mode-map} $B$G!":G=i$K(B @code{lookup-content-mode-hook} $B$,8F$P$l$^$9!#(B $B%P%C%U%!$K$O%(%s%H%j$NK\J8$,I=<($5$l!"8+=P$7$,%b!<%I%i%$%s$K<($5$l$^$9!#(B $B$3$N%P%C%U%!$KBP$9$k@\$3$N%b!<%I$rMxMQ$9$k$3$H$O$"$^$j$"$j$^$;$s!#6qBNE*$JA`:n$K$D$$$F$O!"(B @ref{See Result} $B;2>H$7$F2<$5$$!#(B @c --------------------------------------------------------------------- @node Content Mode Commands, , Content Mode Details, Content Mode @subsection Content $B%b!<%I$N%3%^%s%I0lMw(B @table @kbd @item @key{SPC} @itemx M-x scroll-up $B%P%C%U%!$r%9%/%m!<%k!&%"%C%W$9$k!#(B @item @key{DEL} @itemx M-x scroll-down $B%P%C%U%!$r%9%/%m!<%k!&%@%&%s$9$k!#(B @item < @itemx M-x beginning-of-buffer $B%P%C%U%!$N@hF,$K0\F0$9$k!#(B @item > @itemx M-x end-of-buffer $B%P%C%U%!$NKvHx$K0\F0$9$k!#(B @item @key{TAB} @itemx M-x lookup-content-next-link @findex lookup-content-next-link $BH$9$k!#(B @item @key{mouse-2} @itemx @code{lookup-content-mouse-follow} @findex lookup-content-mouse-follow $B%^%&%9$G%/%j%C%/$7$?%j%s%/$r;2>H$9$k!#(B @item t @itemx M-x lookup-content-toggle-format @findex lookup-content-toggle-format $BK\J8$N@07A=hM}$r%H%0%k$9$k!#(B @item w @itemx M-x lookup-content-cite-region @findex lookup-content-cite-region $B%j!<%8%g%s$NFbMF$r%-%k%j%s%0$KJ]B8$9$k!#(B $B$=$N:]!"JQ?t(B @code{lookup-cite-header} $B$^$?$O<-=q%*%W%7%g%s(B @code{:cite-header} $B$K$h$j0zMQ;~$N%X%C%@$r!"JQ?t(B @code{lookup-cite-prefix} $B$^$?$O<-=q%*%W%7%g%s(B @code{:cite-prefix} $B$K$h$j0zMQ;~$N%W%l%U%#%/%9$r;XDj$9$k$3$H$,=PMh$k!#(B @footnote{$B8=:_!"(B@code{:cite-style} $B$K$OL$BP1~(B} @item h @itemx M-x lookup-content-entry-window @findex lookup-content-entry-window Entry $B%P%C%U%!$K0\F0$9$k!#(B @item g @itemx M-x lookup-content-update @findex lookup-content-update $B%-%c%C%7%e$rMQ$$$:$KK\J8$rFI$_D>$9!#(B @item q @itemx M-x lookup-content-leave @findex lookup-content-leave Content $B%P%C%U%!$rH4$1$k!#(B @item ? @itemx M-x lookup-content-help @findex lookup-content-help Content $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B @end table @c ********************************************************************* @node How To Get, Troubleshooting, Mode Details, Top @appendix $B:G?7>pJs$rpJs8r49$O!"@lMQ$N%a!<%j%s%0%j%9%H$K$F9T$o$l$F$$$^$9!#;2(B $B2C$r4uK>$9$kJ}$O!"(B@email{lookup-subscribe@@ring.gr.jp} $B08$F$K!"6u$N%a!<(B $B%k$rAw$C$F2<$5$$!#(B Lookup $B$O!"(Blookup@@ring.gr.jp $B%a%$%j%s%0%j%9%H$NM-;V(B (lookup@@ring.gr.jp) $B$,4IM}$7$F$$$^$9!#(BLookup $B$K4X$9$kLd$$9g$o$;$O$3$A$i(B $B$^$G$*4j$$$7$^$9!#(B @c ********************************************************************* @node Troubleshooting, Glossary, How To Get, Top @appendix $B%H%i%V%k%7%e!<%F%#%s%0(B $B$$$/$D$+$N%H%i%V%k$X$NBP=hK!$,!"(BLookup $BG[I[J*$K4^$^$l$k%U%!%$%k(B FAQ $B$K(B $B$^$H$a$F$"$k$N$G!"$=$A$i$r;2>H$7$F2<$5$$!#$=$l$G$bITL@$J>l9g$O!"%a!<%j(B $B%s%0%j%9%H$J$I$GpJs8;!#(BLookup $B$G$O(B CD-ROM $B=q@R$d<-=q%5!<%P$J$I$,;H$($k!#(B @item CD-ROM $B=q@R(B (CD-ROM book) $BEE;R%V%C%/(B (EB/EBG/EBXA) $B$d(B EPWING $B5,Ls$K=`5r$7$?EE;R=q@R!#(B @item $B<-=q%5!<%P(B (dictionary server) NDTP $B$d(B DICT $B%W%m%H%3%k$J$I$KBP1~$7$?!"MQ8l8!:w$N5!G=$rDs6!$9$k%5!<%P!#(B @item NDTP (Network Dictionary Transport Protocol) CD-ROM $B=q@R$r%M%C%H%o!<%/$GMxMQ$9$k$?$a$N%W%m%H%3%k!#(Bdserver $B$H$$$&%=%U(B $B%H%&%'%"$,FH<+$KDj5A$7$?$b$N!#(B @item DICT $B%W%m%H%3%k(B $B%M%C%H%o!<%/$G8!:w$r9T$J$&$?$a$N%W%m%H%3%k!#(BRFC 2229$B!#(B @item $B8!:w%(!<%8%'%s%H(B (search agent) $B<-=q$r]$H$J$k<-=q$N$^$H$^$j!#(B @item $B8!:w(B (search) Lookup $B$G$O!"<-=q$+$iL\E*$N%(%s%H%j$rD4$Y=P$9$3$H!#%a%K%e!<$+$iL\E*$N%((B $B%s%H%j$^$G$r=g$KC)$C$F$$$/!V%a%K%e!<8!:w!W$d!"8!:w8l$r;XDj$7$F%(%s%H%j$r(B $B8+IU$1=P$9!VJ8;zNs8!:w!W$,$"$k!#(B @item $B%a%K%e!<8!:w(B (menu) $B<-=q$K$"$i$+$8$aMQ0U$5$l$?%a%K%e!<$rC)$C$F!"L\E*$N%(%s%H%j$r8+IU$1=P$9$3(B $B$H!#(B @item $BJ8;zNs8!:w(B (search string) $B8!:w8l$rMQ$$$?8!:w!#%_%K%P%C%U%!$+$i8!:w<0$rF~NO$9$k>l9g$rFC$K(B $B!V%Q%?!<%s8!:w!W$H8F$V!#%j!<%8%g%s$J$I$r;XDj$7$?>l9g$K$O!VC18l8!:w!W$,(B $B9T$J$o$l$k!#(B @item $B%Q%?!<%s8!:w(B (search pattern) $B%_%K%P%C%U%!$+$i8!:w<0$rF~NO$7$F9T$J$&8!:w$N$3$H!#%Q%?!<%s$N;XDjJ}K!$K$h$C(B $B$F!"pJs$r%3%s%Q%/%H$K$^$H$a$F$"$k$N$G!"$^$:$O$3$3$G35MW(B $B$rGD0.$7!"=i4|@_Dj$r@0$($F2<$5$$!#(B @end ifinfo @menu $B=`HwJT(B * Free Dictionary:: $B%U%j!<<-=q$rMxMQ$9$k(B * CD-ROM Dictionary:: CD-ROM $B<-=q$rMxMQ$9$k(B * Network Dictionary:: $B%M%C%H%o!<%/<-=q$rMxMQ$9$k(B * Miscellaneous Dictionary:: $B$=$NB>$NFCpJsJT(B * Lookup Homepage:: $B%[!<%`%Z!<%8$N9=@.(B * Source of Information:: $BCN$C$F$*$/$H4r$7$$>pJs8;(B * Attention for Emacsen:: $B3F$NFCH$7$F2<$5$$!#(B Lookup $B$,I8=`$GBP1~$7$F$$$k%U%j!<<-=q$N7A<0$O!"!V(BSDIC $B%U%)!<%^%C%H!W$H(B $B!V(Bdictd $B%U%)!<%^%C%H!W$NFs$D$G$9!#MxMQ$9$k<-=q$K9g$o$;$F=`Hw$7$F2<$5$$!#(B @menu * SDIC format:: SDIC $B%U%)!<%^%C%H(B * dictd format:: dictd $B%U%)!<%^%C%H(B @end menu @c --------------------------------------------------------------------- @node SDIC format, dictd format, Free Dictionary, Free Dictionary @subsection SDIC $B%U%)!<%^%C%H(B @dfn{SDIC $B%U%)!<%^%C%H(B} $B$H$O!"(BEmacs $B$G;H$($k%7%s%W%k$J<-=q8!:w%=%U%H(B @uref{http://pine.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/index.html, SDIC} $B$G:NMQ$5$l$F$$$k9T;X8~$N<-=q7A<0$G$9!#(Bgrep $B0l$D$G9bB.$K8!:w$r9T$J$($k$N$,(B $BFCD'$G$9!#(B @subsubheading SDIC $B<-=q$N=`Hw(B SDIC $B<-=q$O(B @file{.sdic} $B$r3HD%;R$K;}$DC10l$N%U%!%$%k$+$i$J$j$^$9!#(B $BC1=c$f$($N=@Fp@-$G!"MW5a$K1~$8$F;0$D$N8!:wJ}<0$,MQ0U$5$l$F$$$^$9!#(B @enumerate @item direct $BJ}<0(B $B<-=q$r(B Emacs $B$N%P%C%U%!$KFI$_9~$s$G!"D>@\8!:w$r9T$J$&J}<0$G$9!#(B $B%a%b%j$r05Gw$9$k$J$I$N%G%a%j%C%H$b$"$j$^$9$,!"(BEmacs $B0J30$N30It%3%^%s%I$r(B $BI,MW$H$7$J$$$?$a(B Windows $B%f!<%6$K$bo$O$3$l$rMxMQ$7$^$9!#(B @item array $BJ}<0(B $B30It%3%^%s%I$H$7$F(B @uref{http://cactus.aist-nara.ac.jp/lab/nlt/ss/, SUFARY} $B$H$$$&%=%U%H%&%'%"$rMQ$$$F8!:w$r9T$J$&J}<0$G$9!#(B $B$3$l$O$"$i$+$8$aFCJL$J%$%s%G%C%/%9$r@8@.$9$k$3$H$G8!:w$r9bB.2=$7$^$9!#(B 5MB $B$rD6$($k$h$&$JBg$-$J%5%$%:$N<-=q$rMQ$$$k>l9g$K$O!"$3$A$i$NMxMQ$,(B $BM-8z$+$b$7$l$^$;$s!#(B @end enumerate grep $BJ}<0$rMQ$$$k$K$O!"30It%3%^%s%I$H$7$F(B @code{fgrep} $B$b$7$/$O(B @code{grep} $B$rl9g$O!"(B Emacs 19.34 $B0J9_$J$i<-=q$r(B @code{gzip} $B$J$I$G05=L$7$F$*$/$3$H$b=PMh$^$9!#(B @file{~/.emacs} $B$G(B @code{(auto-compression-mode t)} $B$H$7$F$*$$$F2<$5$$!#(B @subsubheading SDIC $B<-=q$NMxMQ(B SDIC $B<-=q$O!"(BLookup $B$N(B ndic $B%(!<%8%'%s%H$GMxMQ$9$k$3$H$,=PMh$^$9!#(B $B<-=q$rCV$$$?%G%#%l%/%H%j$r0z?t$K$7$F!"Nc$($PJ}$N%U%!%$%k$rE,Ev$JF1$8%G%#%l%/%H%j$KCV$$$F2<$5$$!#(B @file{.dict} $B%U%!%$%k$O(B dictd $B$KImB0$N(B @code{dictzip} $B$H$$$&%3%^%s%I$G(B $B05=L$9$k$3$H$,=PMh$^$9!#>\$7$/$O(B dictd $B$N%^%K%e%"%k$r;2>H$7$F2<$5$$!#(B @subsubheading dictd $B<-=q$NMxMQ(B dictd $B<-=q$O!"(BLookup $B$N(B ndic $B$b$7$/$O(B ndict $B%(!<%8%'%s%H$GMxMQ$9$k$3$H$,(B $B=PMh$^$9!#(Bndic $B$G$O<-=q$ND>@\8!:w$r9T$J$$!"(Bndict $B$G$O(B DICT $B%W%m%H%3%k$r(B $BMQ$$$F%5!<%P$+$i8!:w$r9T$J$$$^$9!#(Bndic $B$NJ}$,$*l9g(B $B<-=q$rCV$$$?%G%#%l%/%H%j$r0z?t$K$7$F!"Nc$($Pl9g$K$O!"(B @code{dictzip} $B%3%^%s%I$rl9g(B $B$"$i$+$8$a(B DICT $B%5!<%P$rN)$A>e$2$F$*$$$F!"e$2$K$D$$$F$O!"(B@ref{DICT server} $B$r;2>H$7$F2<$5$$!#(B @end enumerate @c ===================================================================== @node CD-ROM Dictionary, Network Dictionary, Free Dictionary, Preparation @section CD-ROM $B<-=q$rMxMQ$9$k(B Lookup $B$G$OB?$/$N;THN$N(B CD-ROM $B<-=q$rMxMQ$9$k$3$H$,=PMh$^$9!#MxMQ2DG=$J(B $B<-=q$N0lMw$,!"(B@uref{http://openlab.ring.gr.jp/lookup/dicts/, $B<-=q%G!<%?%Y!<%9(B} $B$N%Z!<%8$K$^$H$a$i$l$F$$$k$N$G;2>H$7$F2<$5$$!#(B Lookup $B$OI8=`$G!"EE;R%V%C%/$d(B EPWING $B5,Ls$K=`5r$7$?(B CD-ROM $B=q@R$NMxMQ$K(B $BBP1~$7$F$$$^$9!#JLG[I[$N@lMQ%W%m%0%i%`$rMQ0U$9$k$3$H$G!"FH<+%U%)!<%^%C%H(B $B$N(B CD-ROM $B<-=q$K$D$$$F$bMxMQ=PMh$k$b$N$,$"$j$^$9!#(B @menu * EPWING format:: $BEE;R%V%C%/!&(BEPWING * Original format:: $BFH<+%U%)!<%^%C%H(B * Setup Gaiji:: $B30;zI=<($N@_Dj(B @end menu @c --------------------------------------------------------------------- @node EPWING format, Original format, CD-ROM Dictionary, CD-ROM Dictionary @subsection $BEE;R%V%C%/!&(BEPWING $BEE;R%V%C%/$d(B EPWING $B5,Ls$O!"F|K\$G0lHLE*$JEE;R<-=q$N6&DL5,3J$G$9!#(B $B%Q%C%1!<%8$N30H"$K=q$+$l$?!V(B@sc{EBXA}$B!W$H$+!V(B@sc{EPWING}$B!W$H$$$C$?%m%4$,(B $BL\0u$G$9!#(B($B0J2@\8!:w$;$:$H$b!"$"$i$+$8$a%O!<%I%G%#%9%/$K(B $B%3%T!<$7$F$*$/$3$H$G!"$h$jJXMx$K9bB.$K8!:w$r9T$J$($^$9!#%G%#%9%/MFNL$K(B $BM>M5$N$"$k?M$O!"G'$a$i$l$?HO0OFb$G%3%T!<$7$F$*$/$H$$$$$G$7$g$&!#(B $B$3$N$H$-!"B@ED;a:n$N(B @uref{ftp://ftp.nerimadors.or.jp/pub/epwutil/, EPWUTIL} $B$d!"3^86;a:n$N(B @uref{http://www.sra.co.jp/people/m-kasahr/eb/, EB $B%i%$%V%i%j(B} $B$K4^$^$l$k(B @code{ebzip} $B$H$$$C$?%D!<%k$rMQ$$$k$3$H$G!"<-=q$N%5%$%:$r(B $B>.$5$/<}$a$k$3$H$,2DG=$G$9(B(1/2 $B!A(B 1/10 $BDxEY(B)$B!#>\$7$/$O!"$=$l$>$l$N(B $B%W%m%0%i%`$KImB0$N%I%-%e%a%s%H$r;2>H$7$F2<$5$$!#(B @subsubheading EPWING $B<-=q$NMxMQ(B EPWING $B<-=q$O!"(BLookup $B$N(B ndeb $B$b$7$/$O(B ndtp $B%(!<%8%'%s%H$GMxMQ$9$k$3$H$,(B $B=PMh$^$9!#(Bndeb $B$O8D?M$G$N(B CD-ROM $B<-=qMxMQ$K8~$$$F$*$j!"(Bndtp $B$O%M%C%H%o!<%/$r(B $B2p$7$?<-=q$N6&M-$K8~$$$F$$$^$9!#(B @enumerate @item ndeb $B$rMQ$$$k>l9g(B $B8!:w$r9T$J$&$?$a$N30It%3%^%s%I$H$7$F(B @uref{http://openlab.ring.gr.jp/edict/eblook/, eblook} $B$,I,MW$G$9!#(B $B$"$i$+$8$aF~l9g$K$O!"(B $B30;zCV$-49$(@_Dj%U%!%$%k$G$"$k(B @uref{http://www.sra.co.jp/people/m-kasahr/eb/, Appendix} $B$bF~l9g(B $B$"$i$+$8$a(B NDTP $B%5!<%P$rN)$A>e$2$F$*$$$F!"e$2$K$D$$$F$O!"(B@ref{NDTP server} $B$r;2>H$7$F2<$5$$!#(B @end enumerate @c --------------------------------------------------------------------- @node Original format, Setup Gaiji, EPWING format, CD-ROM Dictionary @subsection $BFH<+%U%)!<%^%C%H(B $B8=:_!">.3X4[$N!V%i%s%@%`%O%&%91Q8l<-E5!W$+$i8!:w$,9T$J$($k$h$&$K$J$C$F(B $B$$$^$9$,!"$^$@3+H/CJ3,$K$"$j$^$9!#6=L#$N$"$kJ}$O!"(B @uref{http://openlab.ring.gr.jp/edict/, $BEE;R<-=q%*!<%W%s%i%\(B} $B$N(B edict ML $B$G?R$M$F2<$5$$!#(B @c --------------------------------------------------------------------- @node Setup Gaiji, , Original format, CD-ROM Dictionary @subsection $B30;zI=<($N@_Dj(B Lookup $B$O(B CD-ROM $B=q@R$J$I$K4^$^$l$k30;z$NI=<($r%5%]!<%H$7$F$$$^$9!#(B $B30;z$rI=<($9$k$K$O!"$=$l$>$l$N8!:w%(!<%8%'%s%H$GE,@Z$J@_Dj$r9T$J$C$?>e$G!"(B Lookup $B$rl9g(B: $BFCJL$J=`Hw$OI,MW$"$j$^$;$s!#(BLookup $B$O(B XEmacs/Emacs $B$N(B glyph $B$N5!G=$rMxMQ(B $B$7$F!"30;z$r0ll9g(B: @url{http://openlab.ring.gr.jp/lookup/info/gaiji.html} $B$r;29M$K(B bitmap-mule $B$r%$%s%9%H!<%k$7$F2<$5$$!#l9g!"l9g$K$O!"JQ?t(B @code{lookup-enable-gaiji} $B$r(B @code{nil} $B$K@_Dj$7$F2<$5$$!#$3$l$O%G%U%)%k%H$G(B @code{t} $B$H$J$C$F$$$^$9!#(B @c ===================================================================== @node Network Dictionary, Miscellaneous Dictionary, CD-ROM Dictionary, Preparation @section $B%M%C%H%o!<%/<-=q$rMxMQ$9$k(B $BEE;R<-=q$r%M%C%H%o!<%/$G6&M-$7$FMxMQ$7$?$$>l9g$O!"<-=q%5!<%P$rN)$A>e$2$F(B $B8!:w%5!<%S%9$rDs6!$9$k$N$,0l$D$NJ}K!$G$9!#$^$?!"%$%s%?!<%M%C%H$K$O<+M3$K(B $B%"%/%;%9=PMh$k<-=q%5!<%P$bB8:_$7!"$=$l$i$K%"%/%;%9$9$k$3$H$b2DG=$G$9!#(B Lookup $B$,BP1~$7$F$$$k<-=q%5!<%P$O!"(B@dfn{NDTP $B%5!<%P(B} $B$H(B @dfn{DICT $B%5!<%P(B} $B$NFs$D$G$9!#$3$3$G$O$=$l$>$l$K$D$$$F!"(B $B%5!<%P$N>R2p$H(B Lookup $B$N@_Dj$K$D$$$F@bL@$7$^$9!#(B @menu * NDTP server:: NDTP $B%5!<%P(B * DICT server:: DICT $B%5!<%P(B @end menu @c --------------------------------------------------------------------- @node NDTP server, DICT server, Network Dictionary, Network Dictionary @subsection NDTP $B%5!<%P(B NDTP(Network Dictionary Transport Protocol)$B$H$O!"H$7$F!"(B $B%$%s%9%H!<%k!"5Z$S@_Dj$r9T$J$C$F2<$5$$!#(B @table @asis @item NDPTD @end table @subsubheading NDTP $B%5!<%P$NMxMQ(B $BNc$($PH$7$F!"%$%s%9%H!<%k!"(B $B5Z$S@_Dj$r9T$J$C$F2<$5$$!#(B @subsubheading DICT $B%5!<%P$NMxMQ(B $BNc$($P$NFC$K$b!"l9g!"4A;z$+$JJQ49%W%m%0%i%`(B KAKASI $B$rMQ$$$F$=$N(B $BFI$_$rD4$Y$^$9!#(B $B4A;z$N4^$^$l$k8!:w8l$r;XDj$7$?>l9g!"4A;z$+$JJQ49%W%m%0%i%`(B KAKASI $B$rMQ$$(B $B$F$=$NFI$_$rD4$Y$FI=<($7$^$9!#(B KAKASI $B$O>N$GF~l9g!"%9%Z%k%A%'%C%/$r(B $B9T$J$C$F$+$i$b$&0lEY:F8!:w$r;n$_$^$9!#(B ndspell $B$O30It%3%^%s%I$H$7$F(B Ispell $B$H(B grep $B$rMxMQ$7$F$$$^$9!#(BIspell $B$O(B $BBPOC7?$N%9%Z%k%A%'%C%/%3%^%s%I$G!"(Bgrep $B$O8@$o$:$HCN$l$?(B UNIX $B%D!<%k$G$9!#(B $B$I$A$i$b(B GNU $B$N(B FTP $B%5%$%H$J$I$+$iF~$N<-=q$HAH$_9g$o$;$F!"Nc$($P(B $Be$,=*$o$l$P!"(B@file{~/.emacs} $B%U%!%$%k$K@_Dj$r=q$-9~$_$^$9!#4pK\E*$K$O(B $BJQ?t(B @code{lookup-search-agents} $B$r%;%C%H$9$k$@$1$G$9!#MxMQ$7$?$$8!:w%(!<(B $B%8%'%s%H$N?t$@$1!"@_Dj$rJB$Y$k$3$H$,=PMh$^$9!#(B $BNc$($P!"(BNDTP $B%5!<%P$,%[%9%H(B @samp{dserver} $B$GF0$$$F$*$j!"(BCD-ROM $B<-=q$r(B @file{/cdrom} $B$K%^%&%s%H$7$F$$$k$N$G$"$l$P!"@_Dj$O$K$b$$$/$D$+$N@_Dj$,I,MW$H$J$j$^$9!#e!"(B @file{~/.emacs} $B$K$Oe5-$N%3%^%s%I$O$h$/MQ$$$k$N$G!"E,Ev$J%-!<$K(B $B3d$jEv$F$F$*$/$HJXMx$G$9!#3F<+$G9%$_$N%-!<$K%P%$%s%I$7$F2<$5$$!#(B $B:G8e$NCJMn$G$O!"MxMQ$9$k8!:w%(!<%8%'%s%H$r@_Dj$7$F$$$^$9!#$3$l$OA0@a$G@b(B $BL@$7$?DL$j$G$9!#3F<+$N$b$N$K9g$o$;$F@_Dj$7$F2<$5$$!#(B $B0J>e$,=*$o$l$P!"<0$rI>2A$9$k$J$j!"(BEmacs $B$r:F5/F0$9$k$J$j$7$F!"@_Dj$rM-8z(B $B$K$7$F2<$5$$!#(B @c ===================================================================== @node Run Lookup, Search Pattern, Setup Example, Utilization @section $B5/F0$9$k$K$O(B $B$*BT$?$;$7$^$7$?!#$=$l$G$O(B Lookup $B$rF0$+$7$F$$$-$^$7$g$&!#$^$: * ndeb+/cdrom:EIWA $B1QOB<-E5(B =<> * ndeb+/cdrom:WAEI $BOB1Q<-E5(B =<> ---------------------------------------------------------------- -J:%* Lookup: *Dictionary List* (Select Abbrev)--L5--C0--A ---------------------------------------------------------------- ================================================================ @end example $B>e$N$h$&$J2hLL$,I=<($5$l$^$7$?$+(B? $B$b$7%(%i!<$,5/$3$C$?$j!"$"$k$$$O0lMw$,(B $BI=<($5$l$J$$$h$&$J$i!"<-=q$d%W%m%0%i%`$N@_Dj$K<:GT$7$F$$$k$+$b$7$l$^$;$s!#(B $BLdBjE@$r3NG'$7$F!"$b$&0lEY$d$jD>$7$F$_$F2<$5$$!#$h$/$"$k%_%9$J$i(B FAQ $B$K(B $B>pJs$,$"$k$+$b$7$l$^$;$s$7!"$o$+$i$J$$$3$H$,$"$l$P%a!<%k$G?R$M$F$b$i$C$F(B $B$b0l8~$K9=$$$^$;$s!#(B @cindex $B<-=q0lMw%P%C%U%!(B $B$3$N$H$-I=<($5$l$k%P%C%U%!$r(B @dfn{$B<-=q0lMw%P%C%U%!(B} $B$H8F$S$^$9!#>e$NNc$G(B $B$O!"!V9q8l<-E5!W!V1QOB<-E5!W!VOB1Q<-E5!W$N;0$D$N<-=q$,;H$($k$h$&$K$J$C$F(B $B$$$^$9!#0J2e$N>l(B $B9g!";0$DA4$F$N<-=q$+$i0lEY$K8!:w$,9T$J$o$l$k$H$$$&0UL#$K$J$j$^$9!#DL>o!"(B $B:G=i$OMxMQ=PMh$kA4$F$N<-=q$,A*Br>uBV$K$J$C$F$$$^$9!#(B @cindex $B<-=qL>(B @cindex $B<-=q(BID @cindex $B%(!<%8%'%s%H(BID @samp{Identifier} $B$H$"$k%3%i%`$K$O!"<-=q$rFCDj$9$k$?$a$NL>>N$,I=<($5$l$F(B $B$$$^$9!#$3$l$OMxMQ$7$F$$$k8!:w%(!<%8%'%s%H(B(@var{agent})$B$H!"<-=q$N=j:_(B (@var{location})$B!"5Z$S<-=qL>(B(@var{name})$B$H$rAH$_9g$o$;$F!"(B @samp{@var{agent+location:name}} $B$H$$$&7A$GI=$o$5$l$^$9!#K\=q$G$O$3$l$r(B @dfn{$B<-=q(BID} $B$H8F$S!"(B@samp{@var{name}} $B$GI=$o$5$l$k(B @dfn{$B<-=qL>(B} $B$H$O6h(B $BJL$7$^$9!#$^$?F1MM$K!"(B@samp{@var{agent+location}} $B$NItJ,$O(B @dfn{$B%(!<%8%'(B $B%s%H(BID} $B$H8F$S$^$9!#(B @samp{Title} $B$H$"$k%3%i%`$K$O!"<-=q$N%?%$%H%k$,I=<($5$l$^$9!#$3$l$O8!:w(B $B7k2L$N=PNO$J$I$K!"IaCJMQ$$$i$l$k$b$N$G$9!#%*%W%7%g%s@_Dj$K$h$j<+M3$KJQ99(B $B$9$k$3$H$b2DG=$G$9$+$i!"8e$G8+$d$9$$$b$N$KJQ$($F$*$-$^$7$g$&!#(B $B:G8e$N(B @samp{Methods} $B$H$"$k%3%i%`$K$O!"<-=q$,BP1~$7$F$$$k8!:wJ}<0$,<($5(B $B$l$F$$$^$9!#$3$l$O3F$l0l$D$N5-9f$GI=$o$5$l$F$*$j!">e$N(B $B>l9g$O$I$N<-=q$b!VA0J}0lCW8!:w!W!V8eJ}0lCW8!:w!W!V40A40lCW8!:w!W$KBP1~$7(B $B$F$$$k$H$$$&0UL#$K$J$j$^$9!#>\$7$/$O8e$[$I@bL@$7$^$9!#(B $B$3$N%P%C%U%!$G$O<-=q$N0lMw$r3NG'$9$k0J30$K$b!"<-=q$NA*Br>uBV$r@Z$jBX$($k(B $B$J$I$$$/$D$+$NA`:n$,2DG=$H$J$C$F$$$^$9!#;n$7$K(B @kbd{?} $B$r2!$7$F$_$F2<$5(B $B$$!#JL$N%P%C%U%!$K%3%^%s%I$N0lMw$,I=<($5$l$^$7$?$M(B? Lookup $B$N3F%P%C%U%!(B $B$G$O!"(B@kbd{?} $B%-!<$r2!$9$3$H$G4JC1$J%3%^%s%I0lMw$,=P$k$h$&$K$J$C$F$$$k$N(B $B$G!"$A$g$C$HD4$Y$?$$$H$-$K$4MxMQ2<$5$$!#(B $B$I$3$G$b;H$($k%-!$l(B $B%j!<%8%g%s$NFbMF!"5Z$S%_%K%P%C%U%!$+$i$NF~NO$r8!:w8l$K!"8!:w$r3+;O$7$^$9!#(B @example @kbd{M-x lookup-pattern @key{RET} test @key{RET}} @result{} ======== Lookup Windows ======================================== ---------------------------------------------------------------- $B9q8l<-E5(B @point{}$B%F%9%H(B $B1QOB<-E5(B test ---------------------------------------------------------------- -J:%* Lookup: *Entry* @{*:test@} [2] (Entry Abbrev)--L1--C20 ---------------------------------------------------------------- $B%F%9%H(B [$BL>(B] 1. $B;n83(B.... ---------------------------------------------------------------- -J:%* Lookup: *Content* @{$B%F%9%H(B@} (Content Abbrev)--L1--C0- ---------------------------------------------------------------- ================================================================ @end example @cindex Entry $B%P%C%U%!(B $BFs$D$N%P%C%U%!$,I=<($5$l$^$7$?!#>eB&$N%P%C%U%!$O(B @dfn{Entry $B%P%C%U%!(B} $B$H(B $B8@$$!"8!:w$N7k2L8+IU$+$C$?%(%s%H%j$r0lMw$7$^$9!#$3$3$G$OFs$D$N%(%s%H%j$,(B $BI=<($5$l$F$$$^$9!#(B@point{} $B$H$"$k$N$O!"$=$3$K%]%$%s%H$,$"$k$H$$$&0u$G$9!#(B $B$D$^$j!"8=:_0l$DL\$N!V%F%9%H!W$H$$$&%(%s%H%j$,A*Br$5$l$F$$$^$9!#(B @cindex Content $B%P%C%U%!(B $B2e$NNc$G$O(B @samp{test} $B$H$$$&8!:w8l$G8!:w$r9T$J$$$^$7$?$,!"$3$3$GF~NO$r(B $B$K$b$^$@$$$/$D$+(B $B$"$j$^$9$,!">\$7$/$O8e$[$I@bL@$7$^$9!#$3$3$G$O$b$&>/$7!"8!:w7k2L$N8+J}$K(B $B$D$$$FOC$r?J$a$F$$$-$^$9!#(B @c ===================================================================== @node See Result, , Search Pattern, Utilization @section $B7k2L$r8+$F$$$/(B $B0J2 $B%P%C%U%!$N:G8e$X?J$`!#(B @end table @item $B%(%s%H%j$NA*Br(B @table @kbd @item n $BuBV$,$9$3$H$,=PMh$^$9!#(B $B8!:w7k2L$rI=<($7$?$^$^:G=i$N%P%C%U%!$KLa$j$?$$$H$-$K$O!"(B@kbd{r} $B$r2!$;$P(B OK $B$G$9!#(B@kbd{h} $B$rO"BG$9$l$P!"(BEntry $B%P%C%U%!$H(B Content $B%P%C%U%!$N4V$r(B $B1}I|$9$k$3$H$b=PMh$^$9!#(B $B$3$l$@$13P$($F$*$1$P!"F|>o$N:n6H$O==J,$K9T$J$($k$G$7$g$&!#$7$+$7(B Lookup $B$K$O!">l9g$K$h$C$FLr$KN)$D$$$/$D$+$N%3%^%s%I$,B>$K$bMQ0U$5$l$F$$$^$9!#(B $BO0J9_$G!"$=$l$i$r4^$`(B Lookup $B$N40A4$J5!G=$K$D$$$F@bL@$7$^$9!#(B $B$5$F!"0J>e$G(B Lookup $B$r;H$&$?$a$NC;$+$$%D%"!<$b=*N;$G$9!#$$$+$,$G$7$g$&$+(B? Lookup $B$O$"$J$?$NMWK>$rK~$?$7$F$/$l$=$&$G$9$+(B? $B$b$7;H$C$F$$$F!V$b$C$H$3(B $B$s$J5!G=$,M_$7$$$>!W$H$+$$$&$3$H$,$"$j$^$7$?$i!"1sN8$J$/%a!<%k$G$G$bEA$((B $B$F2<$5$$!#(B $B$=$l$G$O!"$"$J$?$N$h$j2wE,$J8!:w%i%$%U$r5'$C$F!#(BHappy Looking Up! @c ********************************************************************* @node Information, , Utilization, Top @chapter $B>pJsJT(B $B$3$3$G$O(B Lookup $B$H4XO"$N$"$k>pJs$K$D$$$F$^$H$a$F>R2p$7$^$9!#(B @menu * Lookup Homepage:: $B%[!<%`%Z!<%8$N9=@.(B * Source of Information:: $BCN$C$F$*$/$H4r$7$$>pJs8;(B * Attention for Emacsen:: $B3FpJs(B * User Information:: $B%f!<%6>pJs(B * Developer Information:: $B3+H/pJs(B @end menu @c --------------------------------------------------------------------- @node General Information, User Information, Lookup Homepage, Lookup Homepage @subsection $B0lHL>pJs(B @table @asis @item $B%@%&%s%m!<%I%5%$%H0lMw(B @item $B%9%/%j!<%s%7%g%C%H(B @item $B%a!<%j%s%0%j%9%H(B @item $BA4J88!:w(B @end table @c --------------------------------------------------------------------- @node User Information, Developer Information, General Information, Lookup Homepage @subsection $B%f!<%6>pJs(B @table @asis @item $B%f!<%6!<%:%,%$%I(B (@inforef{Top, Lookup User's Guide, lookup-guide}) $B$3$N%,%$%I$G$9!#(B @item $B%f!<%6!<%:%^%K%e%"%k(B (@inforef{Top, Lookup Manual, lookup}) Lookup $B$N@_Dj$HMxMQJ}K!$K$D$$$F40A4$K@bL@$7$?%^%K%e%"%k$G$9!#(B $B$3$N%,%$%I$NpJs8;$G$9!#(B @item $B<-=q%G!<%?%Y!<%9(B (@url{http://openlab.ring.gr.jp/lookup/dicts/}) Lookup $B$G;H$($k<-=q$N>pJs$r=8$a$?%Z!<%8$G$9!#%U%j!<$J<-=q%G!<%?$d!"(B $B<-=q$r$h$j;H$$$d$9$/$9$k$?$a$N@_Dj%U%!%$%k=8$J$I$,$^$H$a$i$l$F$$$^$9!#(B @item Lookup NEWS (@file{NEWS}) Lookup $B$N%P!<%8%g%s%"%C%W$KH<$J$&pJs(B @table @asis @item Lookup TODO (@file{etc/TODO}) $B$3$l$+$i$d$k$Y$-$3$H$N%j%9%H$G$9!#(B @end table @c ===================================================================== @node Source of Information, Attention for Emacsen, Lookup Homepage, Information @section $BCN$C$F$*$/$H4r$7$$>pJs8;(B $B$3$l$+$i99$K(B Lookup $B$rCN$m$&$H$9$k?M$N$?$a$K!"$$$/$D$+$NLrN)$D>pJs8;$r(B $B$^$H$a$F>R2p$7$F$*$-$^$9!#(B @menu * Related Softwares:: $B4XO"%=%U%H%&%'%"(B * Dictionary Links:: $BEE;R<-=q4XO"%j%s%/(B * Mailing Lists:: $B%a!<%j%s%0%j%9%H(B @end menu @c --------------------------------------------------------------------- @node Related Softwares, Dictionary Links, Source of Information, Source of Information @subsection $B4XO"%=%U%H%&%'%"(B @table @asis @item SDIC (@url{http://pine.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/index.html}) $B%U%j!<$KG[I[$5$l$F$$$k1Q8l<-=q$+$ipJs$r$"$i$+$8$a%$%s%G%C%/%92=$7$F$*$/$3$H$G!"(B $BL\E*$N8l$r4^$s$@%U%!%$%k$rB(:B$K8+IU$1=P$;$^$9!#(B @end table @c --------------------------------------------------------------------- @node Dictionary Links, Mailing Lists, Related Softwares, Source of Information @subsection $BEE;R<-=q4XO"%j%s%/(B @table @asis @item $BEE;R%V%C%/$N9->l(B (@url{http://www.ebxa.gr.jp/}) $BEE;R%V%C%/5,3J$N8x<0>pJs%Z!<%8$G$9!#5,3J$N@bL@$d@=IJ>R2p$J$I$,$"$j$^$9!#(B @item EPWING $B%3%s%=!<%7%"%`(B (@url{http://www.epwing.or.jp/}) EPWING $B5,Ls$N8x<0>pJs%Z!<%8$G$9!#5,Ls$N@bL@$d@=IJ>R2p$J$I$,$"$j$^$9!#(B @item EB $B%i%$%V%i%j(B (@url{http://www.sra.co.jp/people/m-kasahr/eb/}) $BEE;R%V%C%/$d(B EPWING $B5,Ls$KBP1~$7$?8!:wMQ%i%$%V%i%j$G$9!#>e5-$N(B eblook $B$d(B NDTPD $B$O$3$l$rMQ$$$F8!:w$7$F$k$?$a!"(BLookup $B$N(B CD-ROM $B8!:w$O$[$H$s$I(B $B$3$N%i%$%V%i%j$K0MB8$7$F$$$^$9!#(B @item $BEE;R<-=q%*!<%W%s%i%\(B (@url{http://openlab.ring.gr.jp/edict/}) $BEE;R<-=q4X78$N>pJs8r49$d3+H/$rL\E*$H$7$?%[!<%`%Z!<%8$G$9!#(B EB $B%i%$%V%i%j$,BP1~$7$F$J$$$$$/$D$+$N(B CD-ROM $B<-=q$+$i8!:w$r9T$J$&$?$a$N(B $B%=%U%H$J$I$,G[I[$5$l$F$$$^$9!#(B @end table @c --------------------------------------------------------------------- @node Mailing Lists, , Dictionary Links, Source of Information @subsection $B%a!<%j%s%0%j%9%H(B @table @asis @item lookup ML (@url{http://openlab.ring.gr.jp/lookup/ml.html}) Lookup $B$K$D$$$F>pJs8r49$r9T$J$&$?$a$N%a!<%j%s%0%j%9%H$G$9!#1Q8lHG$H(B $BF|K\8lHG$H$,$"$j$^$9!#(BLookup $B$N:G?7>pJs$O!"$3$N%a!<%j%s%0%j%9%H$G(B $BF@$k$3$H$,=PMh$^$9!#(B @item edict ML (@url{http://openlab.ring.gr.jp/edict/}) $BEE;R<-=q0lHL$K$D$$$F>pJs8r49$r9T$J$&$?$a$N%a!<%j%s%0%j%9%H$G$9!#(B $B<-=q$r9XF~$9$k>e$G$N%N%&%O%&$d!"%U%j!<$J8!:w%D!<%k$K$D$$$F$N(B $BOCBj$J$I$,=P$F$$$^$9!#(B @item ndtpd ML (@url{http://www.sra.co.jp/people/m-kasahr/ndtpd/ml-ja.html}) $B<-=q%5!<%P(B NDTPD $B$N%a!<%j%s%0%j%9%H$G$9!#;THN$N(B CD-ROM $B<-=q$r(B $BMxMQ$9$k$?$a$N>pJs$,$d$j$H$j$5$l$^$9!#$3$N%=%U%H%&%'%"$K4^$^$l$k(B EB $B%i%$%V%i%j$O(B Lookup $B$N(B CD-ROM $B8!:w$N$+$J$a$H$J$C$F$$$k$N$G!"(B CD-ROM $B<-=q$rMxMQ$5$l$kJ}$O$3$A$i$K$b;22C$5$l$k$3$H$r$*4+$a$7$^$9!#(B @end table @c ===================================================================== @node Attention for Emacsen, , Source of Information, Information @section $B3FH!#(B @bye @c Local Variables: @c mode:outline-minor @c outline-regexp:"@\\(ch\\|sec\\|subs\\)" @c End: lookup-1.4.1/texi/lookup.info0000644000076400007640000001044210557543403016440 0ustar kazuhikokazuhikoInfo file: lookup.info, -*-Text-*- produced by `texinfo-format-buffer' from file `lookup.texi' using `texinfmt.el' version 2.38 of 3 July 1998. INFO-DIR-SECTION The Emacs editor and associated tools START-INFO-DIR-ENTRY * Lookup: (lookup). Lookup, a Search Interface. END-INFO-DIR-ENTRY This file documents Lookup, a search interface. Copyright (C) 1997,1998,1999 Keisuke Nishida Copyright (C) 1999-2001 Lookup Development Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.  Indirect: lookup.info-1: 1119 lookup.info-2: 50498 lookup.info-3: 100731  Tag table: (Indirect) Node: Top1122 Node: Introduction6870 Node: Features7586 Node: Environment8721 Node: Copying9490 Node: Quick Tour10183 Node: Quick Prepare10607 Node: Quick Setup11391 Node: Quick Example12810 Node: Quick Startup13949 Node: Quick Search16076 Node: Quick View17708 Node: Getting Started19092 Node: Setup Dictionary19693 Node: Setup Agent19895 Node: Setup Basis20217 Node: Setup Option21450 Node: Setup Restriction24023 Node: Setup Package24942 Node: Setup Command26195 Node: Setup Others26423 Node: Setup Coding26692 Node: Setup Gaiji26878 Node: Setup Query Expansion27801 Node: Stemming28195 Node: Spell Checking29384 Node: Kanji-Kana Expansion30242 Node: Universal Query Expansion30847 Node: Setup Example31717 Node: Initialization32189 Node: ~/.emacs33263 Node: ~/.lookup34003 Node: site-start.el34628 Node: Setup Variables35354 Node: Setup Functions36674 Node: How To Lookup37388 Node: Startup Commands37750 Node: Search String38622 Node: Search Commands38946 Node: Default Method42128 Node: Search Methods43157 Node: See Result45278 Node: See Entries45710 Node: See Contents46295 Node: Make Reference46925 Node: Cite Contents47423 Node: Specify Dictionary48941 Node: Customization50501 Node: Customize General50970 Node: Customize Variables51343 Node: Customize Face52430 Node: Customize Option53641 Node: Agent Options53907 Node: Dictionary Options54897 Node: Customize Contents56539 Node: Reference Pattern56832 Node: Gaiji Table58332 Node: Format Contents59182 Node: Supplement Package60379 Node: Customize Example60965 Node: Dictionary Types61096 Node: Setup SDIC61500 Node: Setup dictd62531 Node: Setup cookie64039 Node: Setup CD-ROM64885 Node: Setup NDTP65066 Node: Setup DICT66261 Node: Search Agents68061 Node: ndic68660 Node: ndic prepare69122 Node: ndic setup69533 Node: ndic dictionary69830 Node: ndic customize70126 Node: ndeb70362 Node: ndeb prepare70748 Node: ndeb setup72012 Node: ndeb dictionary72679 Node: ndeb customize72976 Node: ndtp73240 Node: ndtp prepare73670 Node: ndtp setup74375 Node: ndtp dictionary74948 Node: ndict75150 Node: ndict prepare75595 Node: ndict setup76033 Node: ndict dictionary77194 Node: ndsrd77560 Node: ndsrd prepare77913 Node: ndsrd setup78169 Node: ndsrd dictionary78414 Node: ndsrd customize78569 Node: ndkks78757 Node: ndkks prepare79133 Node: ndkks setup79388 Node: ndkks dictionary79612 Node: ndkks customize79894 Node: ndspell80344 Node: ndspell prepare80762 Node: ndspell setup81062 Node: ndspell dictionary81302 Node: ndspell customize81788 Node: ndcookie82380 Node: ndcookie prepare82684 Node: ndcookie setup82895 Node: ndcookie dictionary83254 Node: Mode Details83471 Node: Select Mode83776 Node: Select Mode Details84092 Node: Select Mode Commands84717 Node: Entry Mode85950 Node: Entry Mode Details86229 Node: Entry Mode Commands87045 Node: Content Mode89374 Node: Content Mode Details89632 Node: Content Mode Commands90092 Node: How To Get91196 Node: Troubleshooting91625 Node: Glossary91845 Node: Concept Index93698 Node: Command Index95971 Node: Variable Index100734  End tag table lookup-1.4.1/texi/lookup-guide.info0000644000076400007640000007566210557543410017550 0ustar kazuhikokazuhikoInfo file: lookup-guide.info, -*-Text-*- produced by `texinfo-format-buffer' from file `lookup-guide.texi' using `texinfmt.el' version 2.38 of 3 July 1998. INFO-DIR-SECTION The Emacs editor and associated tools START-INFO-DIR-ENTRY * Lookup Guide: (lookup-guide). The Lookup User's Guide. END-INFO-DIR-ENTRY This file documents Lookup, a search interface. Copyright (C) 1999 Keisuke Nishida Copyright (C) 1999-2001 Lookup Development Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.  File: lookup-guide.info, Node: Top, Next: Preparation, Prev: (dir), Up: (dir) Lookup User's Guide ******************* ¤³¤ì¤Ï Lookup ¤òÍøÍѤ¹¤ë¤¿¤á¤ÎºÇ½é¤Î¥¹¥Æ¥Ã¥×¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤¿¼ê°ú¤­½ñ¤Ç ¤¹¡£½é¿´¼Ô¤Ë¤È¤Ã¤Æ½ÅÍפʾðÊó¤ò¥³¥ó¥Ñ¥¯¥È¤Ë¤Þ¤È¤á¤Æ¤¢¤ë¤Î¤Ç¡¢¤Þ¤º¤Ï¤³¤³ ¤Ç³µÍפòÇİ®¤·¡¢½é´üÀßÄê¤òÀ°¤¨¤Æ²¼¤µ¤¤¡£ * Menu: ½àÈ÷ÊÔ * Free Dictionary:: ¥Õ¥ê¡¼¼­½ñ¤òÍøÍѤ¹¤ë * CD-ROM Dictionary:: CD-ROM ¼­½ñ¤òÍøÍѤ¹¤ë * Network Dictionary:: ¥Í¥Ã¥È¥ï¡¼¥¯¼­½ñ¤òÍøÍѤ¹¤ë * Miscellaneous Dictionary:: ¤½¤Î¾¤ÎÆÃ¼ì¤Ê¸¡º÷¥·¥¹¥Æ¥à ³èÍÑÊÔ * Setup Example:: ´ðËÜŪ¤ÊÀßÄêÎã * Run Lookup:: µ¯Æ°¤¹¤ë¤Ë¤Ï * Search Pattern:: ¸¡º÷¤·¤Æ¤ß¤è¤¦ * See Result:: ·ë²Ì¤ò¸«¤Æ¤¤¤¯ ¾ðÊóÊÔ * Lookup Homepage:: ¥Û¡¼¥à¥Ú¡¼¥¸¤Î¹½À® * Source of Information:: ÃΤäƤª¤¯¤È´ò¤·¤¤¾ðÊó¸» * Attention for Emacsen:: ³Æ¼ï Emacs Ëè¤ÎÃí°ÕÅÀ  File: lookup-guide.info, Node: Preparation, Next: Utilization, Prev: Top, Up: Top ½àÈ÷ÊÔ ****** ¤³¤³¤Ç¤Ï Lookup ¤ÇÍѤ¤¤ë¼­½ñ¤Î½àÈ÷¹àÌܤˤĤ¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ * Menu: * Free Dictionary:: ¥Õ¥ê¡¼¼­½ñ¤òÍøÍѤ¹¤ë * CD-ROM Dictionary:: CD-ROM ¼­½ñ¤òÍøÍѤ¹¤ë * Network Dictionary:: ¥Í¥Ã¥È¥ï¡¼¥¯¼­½ñ¤òÍøÍѤ¹¤ë * Miscellaneous Dictionary:: ¤½¤Î¾¤ÎÆÃ¼ì¤Ê¸¡º÷¥·¥¹¥Æ¥à  File: lookup-guide.info, Node: Free Dictionary, Next: CD-ROM Dictionary, Prev: Preparation, Up: Preparation ¥Õ¥ê¡¼¼­½ñ¤òÍøÍѤ¹¤ë ==================== Lookup ¤Ç¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¤ÇÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë¤¤¤¯¤Ä¤«¤Î¥Õ¥ê¡¼¤Þ¤¿¤Ï̵ÎÁ¤Î¼­ ½ñ¤òÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤½¤Î¤è¤¦¤Ê¼­½ñ¤Î°ìÍ÷¤¬¡¢¼­½ñ¥Ç¡¼¥¿¥Ù¡¼¥¹ (http://openlab.ring.gr.jp/lookup/dicts/) ¤Î¥Ú¡¼¥¸¤Ë¤Þ¤È¤á¤é¤ì¤Æ¤¤¤ë¤Î ¤Ç»²¾È¤·¤Æ²¼¤µ¤¤¡£ Lookup ¤¬É¸½à¤ÇÂбþ¤·¤Æ¤¤¤ë¥Õ¥ê¡¼¼­½ñ¤Î·Á¼°¤Ï¡¢¡ÖSDIC ¥Õ¥©¡¼¥Þ¥Ã¥È¡×¤È ¡Ödictd ¥Õ¥©¡¼¥Þ¥Ã¥È¡×¤ÎÆó¤Ä¤Ç¤¹¡£ÍøÍѤ¹¤ë¼­½ñ¤Ë¹ç¤ï¤»¤Æ½àÈ÷¤·¤Æ²¼¤µ¤¤¡£ * Menu: * SDIC format:: SDIC ¥Õ¥©¡¼¥Þ¥Ã¥È * dictd format:: dictd ¥Õ¥©¡¼¥Þ¥Ã¥È  File: lookup-guide.info, Node: SDIC format, Next: dictd format, Prev: Free Dictionary, Up: Free Dictionary SDIC ¥Õ¥©¡¼¥Þ¥Ã¥È ----------------- "SDIC ¥Õ¥©¡¼¥Þ¥Ã¥È" ¤È¤Ï¡¢Emacs ¤Ç»È¤¨¤ë¥·¥ó¥×¥ë¤Ê¼­½ñ¸¡º÷¥½¥Õ¥ÈSDIC (http://pine.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/index.html) ¤ÇºÎ ÍѤµ¤ì¤Æ¤¤¤ë¹Ô»Ø¸þ¤Î¼­½ñ·Á¼°¤Ç¤¹¡£grep °ì¤Ä¤Ç¹â®¤Ë¸¡º÷¤ò¹Ô¤Ê¤¨¤ë¤Î¤¬ ÆÃħ¤Ç¤¹¡£ SDIC ¼­½ñ¤Î½àÈ÷ ............... SDIC ¼­½ñ¤Ï `.sdic' ¤ò³ÈÄ¥»Ò¤Ë»ý¤Äñ°ì¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Ê¤ê¤Þ¤¹¡£Ã±½ã¤æ¤¨ ¤Î½ÀÆðÀ­¤Ç¡¢Í×µá¤Ë±þ¤¸¤Æ»°¤Ä¤Î¸¡º÷Êý¼°¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£ 1. direct Êý¼° ¼­½ñ¤ò Emacs ¤Î¥Ð¥Ã¥Õ¥¡¤ËÆÉ¤ß¹þ¤ó¤Ç¡¢Ä¾Àܸ¡º÷¤ò¹Ô¤Ê¤¦Êý¼°¤Ç¤¹¡£¥á ¥â¥ê¤ò°µÇ÷¤¹¤ë¤Ê¤É¤Î¥Ç¥á¥ê¥Ã¥È¤â¤¢¤ê¤Þ¤¹¤¬¡¢Emacs °Ê³°¤Î³°Éô¥³¥Þ ¥ó¥É¤òɬÍפȤ·¤Ê¤¤¤¿¤á Windows ¥æ¡¼¥¶¤Ë¤â¼ê·Ú¤ËÍøÍѽÐÍè¤ë¤È¤¤¤¦Íø ÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ 2. grep Êý¼° ³°Éô¥³¥Þ¥ó¥É¤È¤·¤Æ `fgrep' ¤â¤·¤¯¤Ï `grep' ¤òÍѤ¤¤Æ¸¡º÷¤ò¹Ô¤Ê¤¦Êý ¼°¤Ç¤¹¡£½½Ê¬¤Ë¹â®¤ÇÊØÍø¤Ê¤¿¤á¡¢Ä̾ï¤Ï¤³¤ì¤òÍøÍѤ·¤Þ¤¹¡£ 3. array Êý¼° ³°Éô¥³¥Þ¥ó¥É¤È¤·¤Æ SUFARY (http://cactus.aist-nara.ac.jp/lab/nlt/ss/) ¤È¤¤¤¦¥½¥Õ¥È¥¦¥§¥¢¤ò ÍѤ¤¤Æ¸¡º÷¤ò¹Ô¤Ê¤¦Êý¼°¤Ç¤¹¡£¤³¤ì¤Ï¤¢¤é¤«¤¸¤áÆÃÊ̤ʥ¤¥ó¥Ç¥Ã¥¯¥¹¤ò À¸À®¤¹¤ë¤³¤È¤Ç¸¡º÷¤ò¹â®²½¤·¤Þ¤¹¡£5MB ¤òͤ¨¤ë¤è¤¦¤ÊÂ礭¤Ê¥µ¥¤¥º ¤Î¼­½ñ¤òÍѤ¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤Á¤é¤ÎÍøÍѤ¬Í­¸ú¤«¤â¤·¤ì¤Þ¤»¤ó¡£ grep Êý¼°¤òÍѤ¤¤ë¤Ë¤Ï¡¢³°Éô¥³¥Þ¥ó¥É¤È¤·¤Æ `fgrep' ¤â¤·¤¯¤Ï`grep' ¤ò¼Â ¹Ô¥Ñ¥¹¤ËÃÖ¤¤¤Æ²¼¤µ¤¤¡£°ìÈÌŪ¤Ê UNIX ¥·¥¹¥Æ¥à¤Ç¤¢¤ì¤Ðɸ½à¤ÇÉí°¤·¤Æ¤¤¤Þ ¤¹¡£array Êý¼°¤òÍѤ¤¤ë¤Ë¤Ï¡¢SUFARY ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ`mkary' ¤Ç¥¤¥ó¥Ç¥Ã ¥¯¥¹¤òÀ¸À®¤·¤Æ²¼¤µ¤¤¡£ ¼­½ñ¤Ï¹¥¤­¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¤¤Æ¹½¤¤¤Þ¤»¤ó¡£direct Êý¼°¤òÍѤ¤¤ë¾ì¹ç¤Ï¡¢ Emacs 19.34 °Ê¹ß¤Ê¤é¼­½ñ¤ò `gzip' ¤Ê¤É¤Ç°µ½Ì¤·¤Æ¤ª¤¯¤³¤È¤â½ÐÍè¤Þ¤¹¡£ `~/.emacs' ¤Ç `(auto-compression-mode t)' ¤È¤·¤Æ¤ª¤¤¤Æ²¼¤µ¤¤¡£ SDIC ¼­½ñ¤ÎÍøÍÑ ............... SDIC ¼­½ñ¤Ï¡¢Lookup ¤Î ndic ¥¨¡¼¥¸¥§¥ó¥È¤ÇÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¼­½ñ ¤òÃÖ¤¤¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò°ú¿ô¤Ë¤·¤Æ¡¢Î㤨¤Ð¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ¤¤¡£ (setq lookup-search-agents '((ndic "/usr/local/dict"))) ¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î `.sdic' ¥Õ¥¡¥¤¥ë¤¬¼­½ñ¤È¤·¤ÆÇ§¼±¤µ¤ì¤Þ¤¹¡£  File: lookup-guide.info, Node: dictd format, Prev: SDIC format, Up: Free Dictionary dictd ¥Õ¥©¡¼¥Þ¥Ã¥È ------------------ "dictd ¥Õ¥©¡¼¥Þ¥Ã¥È" ¤È¤Ï¡¢DICT ¥×¥í¥È¥³¥ë(RFC 2229)¤ËÂбþ¤·¤¿¼­½ñ¥µ¡¼ ¥Ð¤Ç¤¢¤ë dictd (http://www.dict.org/) ¤¬ÆÈ¼«¤ËºÎÍѤ·¤Æ¤¤¤ë¼­½ñ·Á¼°¤Ç¤¹¡£ ñ½ã¤«¤Ä½½Ê¬¤Ë¼ÂÍÑŪ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¹¡£ dictd ¼­½ñ¤Î½àÈ÷ ................ dictd ¼­½ñ¤Ï¡¢`.index' ¤ò³ÈÄ¥»Ò¤Ë»ý¤Ä¥¤¥ó¥Ç¥Ã¥¯¥¹¡¦¥Õ¥¡¥¤¥ë¤È¡¢`.dict' ¤ò³ÈÄ¥»Ò¤Ë»ý¤Ä¥Ç¡¼¥¿¡¦¥Õ¥¡¥¤¥ë¤ÎÆó¤Ä¤«¤é¤Ê¤ê¤Þ¤¹¡£Î¾Êý¤Î¥Õ¥¡¥¤¥ë¤òŬÅö ¤ÊƱ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¤¤Æ²¼¤µ¤¤¡£ `.dict' ¥Õ¥¡¥¤¥ë¤Ï dictd ¤ËÉí°¤Î `dictzip' ¤È¤¤¤¦¥³¥Þ¥ó¥É¤Ç°µ½Ì¤¹¤ë¤³ ¤È¤¬½ÐÍè¤Þ¤¹¡£¾Ü¤·¤¯¤Ï dictd ¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£ dictd ¼­½ñ¤ÎÍøÍÑ ................ dictd ¼­½ñ¤Ï¡¢Lookup ¤Î ndic ¤â¤·¤¯¤Ï ndict ¥¨¡¼¥¸¥§¥ó¥È¤ÇÍøÍѤ¹¤ë¤³¤È ¤¬½ÐÍè¤Þ¤¹¡£ndic ¤Ç¤Ï¼­½ñ¤ÎľÀܸ¡º÷¤ò¹Ô¤Ê¤¤¡¢ndict ¤Ç¤Ï DICT ¥×¥í¥È¥³ ¥ë¤òÍѤ¤¤Æ¥µ¡¼¥Ð¤«¤é¸¡º÷¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ndic ¤ÎÊý¤¬¤ª¼ê·Ú¤Ç¤¹¤¬¡¢ndict ¤ÎÊý¤¬¤è¤ê¹â®¤Ê¸¡º÷¤¬²Äǽ¤Ç¤¹¡£ 1. ndic ¤òÍѤ¤¤ë¾ì¹ç ¼­½ñ¤òÃÖ¤¤¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò°ú¿ô¤Ë¤·¤Æ¡¢Î㤨¤Ð¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼ ¤µ¤¤¡£ (setq lookup-search-agents '((ndic "/usr/local/dict"))) ¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ëÁ´¤Æ¤Î `.index' ¥Õ¥¡¥¤¥ë¤¬¼­½ñ¤È¤·¤ÆÇ§¼±¤µ ¤ì¤Þ¤¹¡£Àè¤Î SDIC ¼­½ñ¤Èº®ºß¤·¤Æ¤¢¤Ã¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£¼­½ñ¤ò°µ½Ì¤· ¤Æ¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢`dictzip' ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¥Ñ¥¹¤ÎÄ̤俥ǥ£¥ì¥¯¥È¥ê ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤¤¤Æ²¼¤µ¤¤¡£ 2. ndict ¤òÍѤ¤¤ë¾ì¹ç ¤¢¤é¤«¤¸¤á DICT ¥µ¡¼¥Ð¤òΩ¤Á¾å¤²¤Æ¤ª¤¤¤Æ¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ ¤¤¡£ (setq lookup-search-agents '((ndict "dict-server"))) DICT ¥µ¡¼¥Ð¤ÎΩ¤Á¾å¤²¤Ë¤Ä¤¤¤Æ¤Ï¡¢*Note DICT server:: ¤ò»²¾È¤·¤Æ²¼ ¤µ¤¤¡£  File: lookup-guide.info, Node: CD-ROM Dictionary, Next: Network Dictionary, Prev: Free Dictionary, Up: Preparation CD-ROM ¼­½ñ¤òÍøÍѤ¹¤ë ===================== Lookup ¤Ç¤Ï¿¤¯¤Î»ÔÈΤΠCD-ROM ¼­½ñ¤òÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ÍøÍѲÄǽ ¤Ê¼­½ñ¤Î°ìÍ÷¤¬¡¢¼­½ñ¥Ç¡¼¥¿¥Ù¡¼¥¹ (http://openlab.ring.gr.jp/lookup/dicts/) ¤Î¥Ú¡¼¥¸¤Ë¤Þ¤È¤á¤é¤ì¤Æ¤¤¤ë¤Î ¤Ç»²¾È¤·¤Æ²¼¤µ¤¤¡£ Lookup ¤Ïɸ½à¤Ç¡¢ÅŻҥ֥寤ä EPWING µ¬Ìó¤Ë½àµò¤·¤¿ CD-ROM ½ñÀÒ¤ÎÍøÍÑ ¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ÊÌÇÛÉÛ¤ÎÀìÍÑ¥×¥í¥°¥é¥à¤òÍѰդ¹¤ë¤³¤È¤Ç¡¢ÆÈ¼«¥Õ¥©¡¼¥Þ¥Ã ¥È¤Î CD-ROM ¼­½ñ¤Ë¤Ä¤¤¤Æ¤âÍøÍѽÐÍè¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ * Menu: * EPWING format:: ÅŻҥ֥寡¦EPWING * Original format:: ÆÈ¼«¥Õ¥©¡¼¥Þ¥Ã¥È * Setup Gaiji:: ³°»úɽ¼¨¤ÎÀßÄê  File: lookup-guide.info, Node: EPWING format, Next: Original format, Prev: CD-ROM Dictionary, Up: CD-ROM Dictionary ÅŻҥ֥寡¦EPWING ------------------ ÅŻҥ֥寤ä EPWING µ¬Ìó¤Ï¡¢ÆüËܤǰìÈÌŪ¤ÊÅŻҼ­½ñ¤Î¶¦Ä̵¬³Ê¤Ç¤¹¡£¥Ñ¥Ã ¥±¡¼¥¸¤Î³°È¢¤Ë½ñ¤«¤ì¤¿¡ÖEBXA¡×¤È¤«¡ÖEPWING¡×¤È¤¤¤Ã¤¿¥í¥´¤¬Ìܰõ¤Ç¤¹¡£ (°Ê²¼¡¢¤Þ¤È¤á¤Æ EPWING ¼­½ñ¤È¸Æ¤Ö) EPWING ¼­½ñ¤Î½àÈ÷ ................. EPWING ¼­½ñ¤Ï CD-ROM ¤«¤éľÀܸ¡º÷¤»¤º¤È¤â¡¢¤¢¤é¤«¤¸¤á¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ë ¥³¥Ô¡¼¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¤è¤êÊØÍø¤Ë¹â®¤Ë¸¡º÷¤ò¹Ô¤Ê¤¨¤Þ¤¹¡£¥Ç¥£¥¹¥¯ÍÆÎÌ¤Ë Í¾Íµ¤Î¤¢¤ë¿Í¤Ï¡¢Ç§¤á¤é¤ì¤¿ÈÏ°ÏÆâ¤Ç¥³¥Ô¡¼¤·¤Æ¤ª¤¯¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£ ¤³¤Î¤È¤­¡¢ÂÀÅÄ»áºî¤Î EPWUTIL (ftp://ftp.nerimadors.or.jp/pub/epwutil/) ¤ä¡¢³Þ¸¶»áºî¤Î EB ¥é¥¤¥Ö¥é¥ê (http://www.sra.co.jp/people/m-kasahr/eb/) ¤Ë´Þ¤Þ¤ì¤ë `ebzip' ¤È¤¤¤Ã¤¿ ¥Ä¡¼¥ë¤òÍѤ¤¤ë¤³¤È¤Ç¡¢¼­½ñ¤Î¥µ¥¤¥º¤ò¾®¤µ¤¯¼ý¤á¤ë¤³¤È¤¬²Äǽ¤Ç¤¹(1/2 ¡Á 1/10 ÄøÅÙ)¡£¾Ü¤·¤¯¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥×¥í¥°¥é¥à¤ËÉí°¤Î¥É¥­¥å¥á¥ó¥È¤ò»²¾È¤· ¤Æ²¼¤µ¤¤¡£ EPWING ¼­½ñ¤ÎÍøÍÑ ................. EPWING ¼­½ñ¤Ï¡¢Lookup ¤Î ndeb ¤â¤·¤¯¤Ï ndtp ¥¨¡¼¥¸¥§¥ó¥È¤ÇÍøÍѤ¹¤ë¤³¤È ¤¬½ÐÍè¤Þ¤¹¡£ndeb ¤Ï¸Ä¿Í¤Ç¤Î CD-ROM ¼­½ñÍøÍѤ˸þ¤¤¤Æ¤ª¤ê¡¢ndtp ¤Ï¥Í¥Ã¥È ¥ï¡¼¥¯¤ò²ð¤·¤¿¼­½ñ¤Î¶¦Í­¤Ë¸þ¤¤¤Æ¤¤¤Þ¤¹¡£ 1. ndeb ¤òÍѤ¤¤ë¾ì¹ç ¸¡º÷¤ò¹Ô¤Ê¤¦¤¿¤á¤Î³°Éô¥³¥Þ¥ó¥É¤È¤·¤Æeblook (http://openlab.ring.gr.jp/edict/eblook/) ¤¬É¬ÍפǤ¹¡£¤¢¤é¤«¤¸¤á Æþ¼ê¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ª¤¤¤Æ²¼¤µ¤¤¡£ ¤â¤·³°»ú¤òɽ¼¨½ÐÍè¤ë´Ä¶­¤Ë¤Ê¤¤¤«¡¢³°»ú¤òÍѤ¤¤¿¤¯¤Ê¤¤¤È¤¤¤¦¾ì¹ç¤Ë ¤Ï¡¢³°»úÃÖ¤­´¹¤¨ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¢¤ëAppendix (http://www.sra.co.jp/people/m-kasahr/eb/) ¤âÆþ¼ê¤·¤Æ²¼¤µ¤¤¡£ Lookup ¤ÎÀßÄê¤Ï¡¢Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤·¤Æ²¼¤µ¤¤¡£ (setq lookup-search-agents '((ndeb "/cdrom" :appendix "/your/appendix"))) 2. ndtp ¤òÍѤ¤¤ë¾ì¹ç ¤¢¤é¤«¤¸¤á NDTP ¥µ¡¼¥Ð¤òΩ¤Á¾å¤²¤Æ¤ª¤¤¤Æ¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ ¤¤¡£ (setq lookup-search-agents '((ndtp "dserver"))) NDTP ¥µ¡¼¥Ð¤ÎΩ¤Á¾å¤²¤Ë¤Ä¤¤¤Æ¤Ï¡¢*Note NDTP server:: ¤ò»²¾È¤·¤Æ²¼ ¤µ¤¤¡£  File: lookup-guide.info, Node: Original format, Next: Setup Gaiji, Prev: EPWING format, Up: CD-ROM Dictionary ÆÈ¼«¥Õ¥©¡¼¥Þ¥Ã¥È ---------------- ¸½ºß¡¢¾®³Ø´Û¤Î¡Ö¥é¥ó¥À¥à¥Ï¥¦¥¹±Ñ¸ì¼­Åµ¡×¤«¤é¸¡º÷¤¬¹Ô¤Ê¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ ¤¤¤Þ¤¹¤¬¡¢¤Þ¤À³«È¯Ãʳ¬¤Ë¤¢¤ê¤Þ¤¹¡£¶½Ì£¤Î¤¢¤ëÊý¤Ï¡¢ÅŻҼ­½ñ¥ª¡¼¥×¥ó¥é¥Ü (http://openlab.ring.gr.jp/edict/) ¤Î edict ML ¤Ç¿Ò¤Í¤Æ²¼¤µ¤¤¡£  File: lookup-guide.info, Node: Setup Gaiji, Prev: Original format, Up: CD-ROM Dictionary ³°»úɽ¼¨¤ÎÀßÄê -------------- Lookup ¤Ï CD-ROM ½ñÀҤʤɤ˴ޤޤì¤ë³°»ú¤Îɽ¼¨¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£³° »ú¤òɽ¼¨¤¹¤ë¤Ë¤Ï¡¢¤½¤ì¤¾¤ì¤Î¸¡º÷¥¨¡¼¥¸¥§¥ó¥È¤ÇŬÀÚ¤ÊÀßÄê¤ò¹Ô¤Ê¤Ã¤¿¾å¤Ç¡¢ Lookup ¤ò¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ¤¤¡£ 1. XEmacs ¤ª¤è¤Ó GNU Emacs (ver.21 °Ê¹ß) ¤Î¾ì¹ç: ÆÃÊ̤ʽàÈ÷¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£Lookup ¤Ï XEmacs/Emacs ¤Î glyph ¤Îµ¡ ǽ¤òÍøÍѤ·¤Æ¡¢³°»ú¤ò°ì¼ï¤Î²èÁü¤È¤·¤Æ°·¤¤¤Þ¤¹¡£ÀßÄê¤Ï¼«Æ°¤Ç¹Ô¤Ê¤ï ¤ì¤Þ¤¹¡£ 2. GNU Emacs (ver. 20 °ÊÁ°) µÚ¤Ó Mule ¤Î¾ì¹ç: `http://openlab.ring.gr.jp/lookup/info/gaiji.html' ¤ò»²¹Í¤Ë bitmap-mule ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ²¼¤µ¤¤¡£¼¡¤Î¤¤¤º¤ì¤«¤ÎÊýË¡¤Ç½àÈ÷¤¬ ´°Î»¤Ç¤¹¡£ 1. Lookup ¤Îµ¯Æ°Á°¤Ë bitmap-mule ¤ò¥í¡¼¥É¤¹¤ë¡£ Î㤨¤Ð `~/.emacs' ¤Ë `(require 'bitmap)' ¤È½ñ¤¤¤Æ¤ª¤¤¤Æ²¼¤µ ¤¤¡£ 2. ½é´ü²½¥Õ¥¡¥¤¥ë¤Ç `lookup-use-bitmap' ¤ò `t' ¤Ë¥»¥Ã¥È¤¹¤ë¡£ ¤³¤Î¾ì¹ç¡¢¼ÂºÝ¤Ë³°»ú¤òɽ¼¨¤¹¤ëºÝ¤Ë bitmap-mule ¤¬ÆÉ¤ß¹þ¤Þ¤ì ¤Þ¤¹¡£ µÕ¤Ë¡¢³°»ú¤òɽ¼¨¤µ¤»¤¿¤¯¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ÊÑ¿ô `lookup-enable-gaiji' ¤ò `nil' ¤ËÀßÄꤷ¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç `t' ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£  File: lookup-guide.info, Node: Network Dictionary, Next: Miscellaneous Dictionary, Prev: CD-ROM Dictionary, Up: Preparation ¥Í¥Ã¥È¥ï¡¼¥¯¼­½ñ¤òÍøÍѤ¹¤ë ========================== ÅŻҼ­½ñ¤ò¥Í¥Ã¥È¥ï¡¼¥¯¤Ç¶¦Í­¤·¤ÆÍøÍѤ·¤¿¤¤¾ì¹ç¤Ï¡¢¼­½ñ¥µ¡¼¥Ð¤òΩ¤Á¾å¤² ¤Æ¸¡º÷¥µ¡¼¥Ó¥¹¤òÄ󶡤¹¤ë¤Î¤¬°ì¤Ä¤ÎÊýË¡¤Ç¤¹¡£¤Þ¤¿¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ë¤Ï¼« ͳ¤Ë¥¢¥¯¥»¥¹½ÐÍè¤ë¼­½ñ¥µ¡¼¥Ð¤â¸ºß¤·¡¢¤½¤ì¤é¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤â²Äǽ¤Ç ¤¹¡£ Lookup ¤¬Âбþ¤·¤Æ¤¤¤ë¼­½ñ¥µ¡¼¥Ð¤Ï¡¢"NDTP ¥µ¡¼¥Ð" ¤È"DICT ¥µ¡¼¥Ð" ¤ÎÆó ¤Ä¤Ç¤¹¡£¤³¤³¤Ç¤Ï¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ¡¢¥µ¡¼¥Ð¤Î¾Ò²ð¤È Lookup ¤ÎÀßÄê¤Ë¤Ä¤¤¤Æ ÀâÌÀ¤·¤Þ¤¹¡£ * Menu: * NDTP server:: NDTP ¥µ¡¼¥Ð * DICT server:: DICT ¥µ¡¼¥Ð  File: lookup-guide.info, Node: NDTP server, Next: DICT server, Prev: Network Dictionary, Up: Network Dictionary NDTP ¥µ¡¼¥Ð ----------- NDTP(Network Dictionary Transport Protocol)¤È¤Ï¡¢¼ç¤ËÆüËܤǻȤï¤ì¤Æ¤¤ ¤ë¡¢CD-ROM ¼­½ñ¤ò¥Í¥Ã¥È¥ï¡¼¥¯¤ÇÍøÍѤ¹¤ë¤¿¤á¤Î¸¡º÷ÍÑ¥×¥í¥È¥³¥ë¤Ç¤¹¡£ NDTP ¥µ¡¼¥Ð¤Î½àÈ÷ ................. NDTP ¥µ¡¼¥Ð¤È¤·¤Æ¤Ï¡¢¸½ºßNDTPD (http://www.sra.co.jp/people/m-kasahr/ndtpd/) ¤¬¼ç¤ËÍѤ¤¤é¤ì¤Æ¤¤¤Þ¤¹¡£ Éí°¤Î¥É¥­¥å¥á¥ó¥È¤ò»²¾È¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¡¢µÚ¤ÓÀßÄê¤ò¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£ NDPTD NDTP ¥µ¡¼¥Ð¤ÎÍøÍÑ ................. Î㤨¤Ð¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ¤¤¡£ (setq lookup-search-agents '((ndtp "dserver")))  File: lookup-guide.info, Node: DICT server, Prev: NDTP server, Up: Network Dictionary DICT ¥µ¡¼¥Ð ----------- DICT ¤È¤Ï¡¢RFC 2229 ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¼­½ñ¸¡º÷¤Î¤¿¤á¤Î¥×¥í¥È¥³¥ë¤Ç¤¹¡£ DICT ¥µ¡¼¥Ð¤Î½àÈ÷ ................. DICT ¥µ¡¼¥Ð¤È¤·¤Æ¡¢DICT ¥×¥í¥¸¥§¥¯¥È (http://www.dict.org/) ¤Ë¤è¤ê dictd ¤¬¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Éí°¤Î¥É¥­¥å¥á¥ó¥È¤ò»²¾È¤·¤Æ¡¢¥¤¥ó¥¹¥È¡¼¥ë¡¢ µÚ¤ÓÀßÄê¤ò¹Ô¤Ê¤Ã¤Æ²¼¤µ¤¤¡£ DICT ¥µ¡¼¥Ð¤ÎÍøÍÑ ................. Î㤨¤Ð¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ¤¤¡£ (setq lookup-search-agents '((ndict "dict.org")))  File: lookup-guide.info, Node: Miscellaneous Dictionary, Prev: Network Dictionary, Up: Preparation ¤½¤Î¾¤ÎÆÃ¼ì¤Ê¸¡º÷¥·¥¹¥Æ¥à ========================== Lookup ¤Ç¤Ï¾¤Ë¤â¡¢¼¡¤Î¤è¤¦¤ÊÆÃ¼ì¤Ê¸¡º÷¥¨¡¼¥¸¥§¥ó¥È¤¬É¸½à¤ÇÍøÍѲÄǽ¤Ç ¤¹¡£¹¥¤ß¤Ë±þ¤¸¤Æ½àÈ÷¤òÀ°¤¨¤Æ²¼¤µ¤¤¡£ * Menu: * ndkks agent:: ÆüËܸì¤ÎÆÉ¤ß¤òÄ´¤Ù¤ë * ndspell agent:: ¥¹¥Ú¥ë¥Á¥§¥Ã¥¯¤È¥¹¥Ú¥ë¸¡º÷ * ndcookie agent:: º£Æü¤Î±¿Àª¤ò¥Á¥§¥Ã¥¯¤¹¤ë  File: lookup-guide.info, Node: ndkks agent, Next: ndspell agent, Prev: Miscellaneous Dictionary, Up: Miscellaneous Dictionary ÆüËܸì¤ÎÆÉ¤ß¤òÄ´¤Ù¤ë -------------------- `ndkks' ¤Ï¡¢ÆüËܸì¤Î´Á»ú¤ÎÆÉ¤ß¤òÄ´¤Ù¤ë¤¿¤á¤Î¸¡º÷¥¨¡¼¥¸¥§¥ó¥È¤Ç¤¹¡£´Á»ú ¤ò´Þ¤à¸¡º÷¸ì¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢´Á»ú¤«¤ÊÊÑ´¹¥×¥í¥°¥é¥à KAKASI ¤òÍѤ¤¤Æ¤½ ¤ÎÆÉ¤ß¤òÄ´¤Ù¤Þ¤¹¡£ ´Á»ú¤Î´Þ¤Þ¤ì¤ë¸¡º÷¸ì¤ò»ØÄꤷ¤¿¾ì¹ç¡¢´Á»ú¤«¤ÊÊÑ´¹¥×¥í¥°¥é¥à KAKASI ¤òÍÑ ¤¤¤Æ¤½¤ÎÆÉ¤ß¤òÄ´¤Ù¤ÆÉ½¼¨¤·¤Þ¤¹¡£ KAKASI ¤Ï¼¡¤Î¤È¤³¤í¤«¤é `kakasi-2.2.5.tar.gz'(ËÜÂÎ¥Õ¥¡¥¤¥ë)¤È `kakasidict.940620.gz'(¼­½ñ¥Õ¥¡¥¤¥ë)¤Î̾¾Î¤ÇÆþ¼ê²Äǽ¤Ç¤¹¡£ `ftp://sunsite.sut.ac.jp/pub/asia-info/japanese-src/packages/' ¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ¤¤¡£ (setq lookup-search-agents '((ndkks)))  File: lookup-guide.info, Node: ndspell agent, Next: ndcookie agent, Prev: ndkks agent, Up: Miscellaneous Dictionary ¥¹¥Ú¥ë¥Á¥§¥Ã¥¯¤È¥¹¥Ú¥ë¸¡º÷ -------------------------- `ndspell' ¤Ï¡¢Lookup ¤Ç¥¹¥Ú¥ë¥Á¥§¥Ã¥¯¤ò¹Ô¤Ê¤¦¤¿¤á¤Î¸¡º÷¥¨¡¼¥¸¥§¥ó¥È¤Ç ¤¹¡£¤â¤·¸¡º÷¸ì¤òÉáÄ̤˸¡º÷¤·¤Æ²¿¤â¸«ÉÕ¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥¹¥Ú¥ë¥Á¥§¥Ã¥¯ ¤ò¹Ô¤Ê¤Ã¤Æ¤«¤é¤â¤¦°ìÅٺƸ¡º÷¤ò»î¤ß¤Þ¤¹¡£ ndspell ¤Ï³°Éô¥³¥Þ¥ó¥É¤È¤·¤Æ Ispell ¤È grep ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£Ispell ¤ÏÂÐÏ÷¿¤Î¥¹¥Ú¥ë¥Á¥§¥Ã¥¯¥³¥Þ¥ó¥É¤Ç¡¢grep ¤Ï¸À¤ï¤º¤ÈÃΤ줿 UNIX ¥Ä¡¼¥ë ¤Ç¤¹¡£¤É¤Á¤é¤â GNU ¤Î FTP ¥µ¥¤¥È¤Ê¤É¤«¤éÆþ¼ê²Äǽ¤Ç¤¹¡£ `ftp://ftp.gnu.org/pub/GNU/' ¤³¤Î¥¨¡¼¥¸¥§¥ó¥È¤ÏñÆÈ¤Ç¤ÏÍѤ¤¤º¤Ë¡¢Â¾¤Î¼­½ñ¤ÈÁȤ߹ç¤ï¤»¤Æ¡¢Î㤨¤Ð¼¡¤Î ¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ¤¤¡£ (setq lookup-search-agents '((ndic "/usr/local/dict") (ndspell)))  File: lookup-guide.info, Node: ndcookie agent, Prev: ndspell agent, Up: Miscellaneous Dictionary º£Æü¤Î±¿Àª¤ò¥Á¥§¥Ã¥¯¤¹¤ë ------------------------ `ndcookie' ¤Ï¡¢¸¡º÷»þ¤Ë cookie ¥Õ¥¡¥¤¥ë(°úÍѽ¸)¤«¤é°ì¶çÈ´¤­½Ð¤·¤ÆÉ½¼¨ ¤¹¤ë¤¿¤á¤Î¸¡º÷¥¨¡¼¥¸¥§¥ó¥È¤Ç¤¹¡£`fortune' ¥×¥í¥°¥é¥à¤ÈƱÍÍ¤ÎÆ¯¤­¤ò¤·¤Þ ¤¹¡£ ÍøÍѽÐÍè¤ë¥Õ¥¡¥¤¥ë¤ÎÎã¤È¤·¤Æ¤Ï¡¢Emacs ¤ËÉí°¤Î Zippy ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ ¤¹¡£¼¡¤Î¤è¤¦¤ËÀßÄꤷ¤Æ²¼¤µ¤¤¡£ (setq lookup-search-agents '((ndcookie "yow.lines")))  File: lookup-guide.info, Node: Utilization, Next: Information, Prev: Preparation, Up: Top ³èÍÑÊÔ ****** ¤³¤³¤Ç¤Ï Lookup ¤Ç¼ÂºÝ¤Ë¼­½ñ¤òÍѤ¤¤Æ¸¡º÷¤ò¹Ô¤Ê¤¦ÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ * Menu: * Setup Example:: ´ðËÜŪ¤ÊÀßÄêÎã * Run Lookup:: µ¯Æ°¤¹¤ë¤Ë¤Ï * Search Pattern:: ¸¡º÷¤·¤Æ¤ß¤è¤¦ * See Result:: ·ë²Ì¤ò¸«¤Æ¤¤¤¯  File: lookup-guide.info, Node: Setup Example, Next: Run Lookup, Prev: Utilization, Up: Utilization ´ðËÜŪ¤ÊÀßÄêÎã ============== °Ê¾å¤¬½ª¤ï¤ì¤Ð¡¢`~/.emacs' ¥Õ¥¡¥¤¥ë¤ËÀßÄê¤ò½ñ¤­¹þ¤ß¤Þ¤¹¡£´ðËÜŪ¤Ë¤ÏÊÑ ¿ô `lookup-search-agents' ¤ò¥»¥Ã¥È¤¹¤ë¤À¤±¤Ç¤¹¡£ÍøÍѤ·¤¿¤¤¸¡º÷¥¨¡¼¥¸¥§ ¥ó¥È¤Î¿ô¤À¤±¡¢ÀßÄê¤òʤ٤뤳¤È¤¬½ÐÍè¤Þ¤¹¡£ Î㤨¤Ð¡¢NDTP ¥µ¡¼¥Ð¤¬¥Û¥¹¥È `dserver' ¤Çư¤¤¤Æ¤ª¤ê¡¢CD-ROM ¼­½ñ¤ò `/cdrom' ¤Ë¥Þ¥¦¥ó¥È¤·¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢ÀßÄê¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ (setq lookup-search-agents '((ndtp "dserver") (ndeb "/cdrom"))) ¤µ¤¢¡¢¼­½ñ¤ÎÀßÄê¤Ï½ª¤ï¤ê¤Þ¤·¤¿¡£¤·¤«¤·¼ÂºÝ¤Ë¤Ï¡¢´ÉÍý¼Ô¤ÎÊý¤¬ÆÃÊ̤ËÀßÄê ¤ò¹Ô¤Ê¤Ã¤Æ¤Ç¤â¤¤¤Ê¤¤¸Â¤ê¡¢Â¾¤Ë¤â¤¤¤¯¤Ä¤«¤ÎÀßÄ꤬ɬÍפȤʤê¤Þ¤¹¡£¼ÂÍѾ塢 `~/.emacs' ¤Ë¤Ï¼¡¤Î¤è¤¦¤Ë½ñ¤¤¤Æ¤ª¤¯¤È¤è¤¤¤Ç¤·¤ç¤¦¡£ ;;; ;;; Lookup Setup Example ;;; ;; ¥ª¡¼¥È¥í¡¼¥É¤ÎÀßÄê (autoload 'lookup "lookup" nil t) (autoload 'lookup-region "lookup" nil t) (autoload 'lookup-pattern "lookup" nil t) ;; ¥­¡¼¥Ð¥¤¥ó¥É¤ÎÀßÄê (define-key ctl-x-map "l" 'lookup) ; C-x l - lookup (define-key ctl-x-map "y" 'lookup-region) ; C-x y - lookup-region (define-key ctl-x-map "\C-y" 'lookup-pattern) ; C-x C-y - lookup-pattern ;; ¸¡º÷¥¨¡¼¥¸¥§¥ó¥È¤ÎÀßÄê (setq lookup-search-agents '((ndtp "dserver") (ndeb "/cdrom"))) ºÇ½é¤ÎÃÊÍî¤Ç¤Ï¡¢Lookup ¤Î³Æ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿¤È¤­¡¢¼«Æ°Åª¤Ë¥×¥í¥°¥é¥à ¤òÆÉ¤ß¹þ¤à¤è¤¦¤ËÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£¤â¤· Emacs µ¯Æ°»þ¤Ë½é´ü²½¤òºÑ¤Þ¤»¤Æ¤· ¤Þ¤¦¤³¤È¤¬¤ª¹¥¤ß¤Ê¤é¡¢Âå¤ï¤ê¤Ë `(require 'lookup)' ¤Ê¤É¤È½ñ¤¤¤Æ¤ª¤±¤Ð ¤è¤¤¤Ç¤·¤ç¤¦¡£ ÆóÈÖÌܤÎÃÊÍî¤Ç¤Ï¡¢¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Î¥­¡¼¥Ð¥¤¥ó¥É¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤Ïɬ¿Ü¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¾åµ­¤Î¥³¥Þ¥ó¥É¤Ï¤è¤¯ÍѤ¤¤ë¤Î¤Ç¡¢Å¬Åö¤Ê¥­¡¼ ¤Ë³ä¤êÅö¤Æ¤Æ¤ª¤¯¤ÈÊØÍø¤Ç¤¹¡£³Æ¼«¤Ç¹¥¤ß¤Î¥­¡¼¤Ë¥Ð¥¤¥ó¥É¤·¤Æ²¼¤µ¤¤¡£ ºÇ¸å¤ÎÃÊÍî¤Ç¤Ï¡¢ÍøÍѤ¹¤ë¸¡º÷¥¨¡¼¥¸¥§¥ó¥È¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ÏÁ°Àá¤Ç ÀâÌÀ¤·¤¿Ä̤ê¤Ç¤¹¡£³Æ¼«¤Î¤â¤Î¤Ë¹ç¤ï¤»¤ÆÀßÄꤷ¤Æ²¼¤µ¤¤¡£ °Ê¾å¤¬½ª¤ï¤ì¤Ð¡¢¼°¤òɾ²Á¤¹¤ë¤Ê¤ê¡¢Emacs ¤òºÆµ¯Æ°¤¹¤ë¤Ê¤ê¤·¤Æ¡¢ÀßÄê¤òÍ­ ¸ú¤Ë¤·¤Æ²¼¤µ¤¤¡£  File: lookup-guide.info, Node: Run Lookup, Next: Search Pattern, Prev: Setup Example, Up: Utilization µ¯Æ°¤¹¤ë¤Ë¤Ï ============ ¤ªÂÔ¤¿¤»¤·¤Þ¤·¤¿¡£¤½¤ì¤Ç¤Ï Lookup ¤òư¤«¤·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£¤Þ¤º¼ê»Ï¤á¤Ë `M-x lookup' ¤È¤·¤Æ¡¢¥×¥í¥°¥é¥à¤¬µ¯Æ°¤¹¤ë¤³¤È¤ò³Îǧ¤·¤Æ²¼¤µ¤¤¡£ M-x lookup RET => ======== Lookup Windows ======================================== ---------------------------------------------------------------- Type `m' to select, `u' to unselect, `?' for help. % Identifier Title Method - ---------- ----- ------ * ndtp+dserver:KOKUGO ¹ñ¸ì¼­Åµ =<> * ndeb+/cdrom:EIWA ±Ñϼ­Åµ =<> * ndeb+/cdrom:WAEI ϱѼ­Åµ =<> ---------------------------------------------------------------- -J:%* Lookup: *Dictionary List* (Select Abbrev)--L5--C0--A ---------------------------------------------------------------- ================================================================ ¾å¤Î¤è¤¦¤Ê²èÌ̤¬É½¼¨¤µ¤ì¤Þ¤·¤¿¤«? ¤â¤·¥¨¥é¡¼¤¬µ¯¤³¤Ã¤¿¤ê¡¢¤¢¤ë¤¤¤Ï°ìÍ÷ ¤¬É½¼¨¤µ¤ì¤Ê¤¤¤è¤¦¤Ê¤é¡¢¼­½ñ¤ä¥×¥í¥°¥é¥à¤ÎÀßÄê¤Ë¼ºÇÔ¤·¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ ¤»¤ó¡£ÌäÂêÅÀ¤ò³Îǧ¤·¤Æ¡¢¤â¤¦°ìÅÙ¤ä¤êľ¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£¤è¤¯¤¢¤ë¥ß¥¹¤Ê¤é FAQ ¤Ë¾ðÊ󤬤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤·¡¢¤ï¤«¤é¤Ê¤¤¤³¤È¤¬¤¢¤ì¤Ð¥á¡¼¥ë¤Ç¿Ò¤Í¤Æ ¤â¤é¤Ã¤Æ¤â°ì¸þ¤Ë¹½¤¤¤Þ¤»¤ó¡£ ¤³¤Î¤È¤­É½¼¨¤µ¤ì¤ë¥Ð¥Ã¥Õ¥¡¤ò "¼­½ñ°ìÍ÷¥Ð¥Ã¥Õ¥¡" ¤È¸Æ¤Ó¤Þ¤¹¡£¾å¤ÎÎã¤Ç¤Ï¡¢ ¡Ö¹ñ¸ì¼­Åµ¡×¡Ö±Ñϼ­Åµ¡×¡ÖϱѼ­Åµ¡×¤Î»°¤Ä¤Î¼­½ñ¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤ ¤Þ¤¹¡£°Ê²¼¡¢¤³¤ì¤é¤Î¼­½ñ¤òÎã¤ËÀâÌÀ¤·¤Æ¤¤¤­¤Þ¤¹¡£ ¹ÔƬ¤Ë `*'(¥¢¥¹¥¿¥ê¥¹¥¯)¤Î¥Þ¡¼¥¯¤¬ÉÕ¤¤¤Æ¤¤¤ë¤Î¤Ï¡¢¤½¤Î¼­½ñ¤ò¸¡º÷¤ËÍѤ¤ ¤ë¤â¤Î¤È¤·¤Æ¡¢¼­½ñ¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤òɽ¤ï¤·¤Æ¤¤¤Þ¤¹¡£¾å¤Î¾ì¹ç¡¢ »°¤ÄÁ´¤Æ¤Î¼­½ñ¤«¤é°ìÅ٤˸¡º÷¤¬¹Ô¤Ê¤ï¤ì¤ë¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡£Ä̾ºÇ ½é¤ÏÍøÍѽÐÍè¤ëÁ´¤Æ¤Î¼­½ñ¤¬ÁªÂò¾õÂ֤ˤʤäƤ¤¤Þ¤¹¡£ `Identifier' ¤È¤¢¤ë¥³¥é¥à¤Ë¤Ï¡¢¼­½ñ¤òÆÃÄꤹ¤ë¤¿¤á¤Î̾¾Î¤¬É½¼¨¤µ¤ì¤Æ¤¤ ¤Þ¤¹¡£¤³¤ì¤ÏÍøÍѤ·¤Æ¤¤¤ë¸¡º÷¥¨¡¼¥¸¥§¥ó¥È(AGENT)¤È¡¢¼­½ñ¤Î½êºß (LOCATION)¡¢µÚ¤Ó¼­½ñ̾(NAME)¤È¤òÁȤ߹ç¤ï¤»¤Æ¡¢`AGENT+LOCATION:NAME' ¤È ¤¤¤¦·Á¤Çɽ¤ï¤µ¤ì¤Þ¤¹¡£Ëܽñ¤Ç¤Ï¤³¤ì¤ò"¼­½ñID" ¤È¸Æ¤Ó¡¢`NAME' ¤Çɽ¤ï¤µ¤ì ¤ë "¼­½ñ̾" ¤È¤Ï¶èÊ̤·¤Þ¤¹¡£¤Þ¤¿Æ±Íͤˡ¢`AGENT+LOCATION' ¤ÎÉôʬ¤Ï "¥¨¡¼ ¥¸¥§¥ó¥ÈID" ¤È¸Æ¤Ó¤Þ¤¹¡£ `Title' ¤È¤¢¤ë¥³¥é¥à¤Ë¤Ï¡¢¼­½ñ¤Î¥¿¥¤¥È¥ë¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¸¡º÷·ë²Ì ¤Î½ÐÎϤʤɤˡ¢ÉáÃÊÍѤ¤¤é¤ì¤ë¤â¤Î¤Ç¤¹¡£¥ª¥×¥·¥ç¥óÀßÄê¤Ë¤è¤ê¼«Í³¤ËÊѹ¹¤¹ ¤ë¤³¤È¤â²Äǽ¤Ç¤¹¤«¤é¡¢¸å¤Ç¸«¤ä¤¹¤¤¤â¤Î¤ËÊѤ¨¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£ ºÇ¸å¤Î `Methods' ¤È¤¢¤ë¥³¥é¥à¤Ë¤Ï¡¢¼­½ñ¤¬Âбþ¤·¤Æ¤¤¤ë¸¡º÷Êý¼°¤¬¼¨¤µ¤ì ¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï³Æ¼ï¸¡º÷Êý¼°¤¬¤½¤ì¤¾¤ì°ì¤Ä¤Îµ­¹æ¤Çɽ¤ï¤µ¤ì¤Æ¤ª¤ê¡¢¾å¤Î ¾ì¹ç¤Ï¤É¤Î¼­½ñ¤â¡ÖÁ°Êý°ìÃ׸¡º÷¡×¡Ö¸åÊý°ìÃ׸¡º÷¡×¡Ö´°Á´°ìÃ׸¡º÷¡×¤ËÂбþ ¤·¤Æ¤¤¤ë¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡£¾Ü¤·¤¯¤Ï¸å¤Û¤ÉÀâÌÀ¤·¤Þ¤¹¡£ ¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¼­½ñ¤Î°ìÍ÷¤ò³Îǧ¤¹¤ë°Ê³°¤Ë¤â¡¢¼­½ñ¤ÎÁªÂò¾õÂÖ¤òÀÚ¤êÂØ¤¨ ¤ë¤Ê¤É¤¤¤¯¤Ä¤«¤ÎÁàºî¤¬²Äǽ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£»î¤·¤Ë `?' ¤ò²¡¤·¤Æ¤ß¤Æ²¼¤µ ¤¤¡£Ê̤ΥХåե¡¤Ë¥³¥Þ¥ó¥É¤Î°ìÍ÷¤¬É½¼¨¤µ¤ì¤Þ¤·¤¿¤Í? Lookup ¤Î³Æ¥Ð¥Ã¥Õ¥¡ ¤Ç¤Ï¡¢`?' ¥­¡¼¤ò²¡¤¹¤³¤È¤Ç´Êñ¤Ê¥³¥Þ¥ó¥É°ìÍ÷¤¬½Ð¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢ ¤Á¤ç¤Ã¤ÈÄ´¤Ù¤¿¤¤¤È¤­¤Ë¤´ÍøÍѲ¼¤µ¤¤¡£ ¤É¤³¤Ç¤â»È¤¨¤ë¥­¡¼Áàºî¤ò¤â¤¦°ì¤Ä¡£`q' ¤ò²¡¤»¤Ð¡¢¤½¤Î¥Ð¥Ã¥Õ¥¡¤òÈ´¤±¤Æ¸µ ¤Îºî¶È¤ËÌá¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£¤µ¤¢¡¢¤½¤ì¤Ç¤Ï¼­½ñ¤Î³Îǧ¤Ï¤³¤ÎÊդˤ·¤Æ¡¢¼¡ ¤Î¥¹¥Æ¥Ã¥×¤Ë¿Ê¤ß¤Þ¤·¤ç¤¦¡£  File: lookup-guide.info, Node: Search Pattern, Next: See Result, Prev: Run Lookup, Up: Utilization ¸¡º÷¤·¤Æ¤ß¤è¤¦ ============== ¤¤¤è¤¤¤è¸¡º÷¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ºÇ¤âÂåɽŪ¤Ê¸¡º÷¥³¥Þ¥ó¥É¤È¤·¤Æ¡¢`M-x lookup-region' ¤È `M-x lookup-pattern' ¤ÎÆó¤Ä¤¬¤¢¤ê¤Þ¤¹¡£¤½¤ì¤¾¤ì¥ê¡¼ ¥¸¥ç¥ó¤ÎÆâÍÆ¡¢µÚ¤Ó¥ß¥Ë¥Ð¥Ã¥Õ¥¡¤«¤é¤ÎÆþÎϤò¸¡º÷¸ì¤Ë¡¢¸¡º÷¤ò³«»Ï¤·¤Þ¤¹¡£ M-x lookup-pattern RET test RET => ======== Lookup Windows ======================================== ---------------------------------------------------------------- ¹ñ¸ì¼­Åµ -!-¥Æ¥¹¥È ±Ñϼ­Åµ test ---------------------------------------------------------------- -J:%* Lookup: *Entry* {*:test} [2] (Entry Abbrev)--L1--C20 ---------------------------------------------------------------- ¥Æ¥¹¥È [̾] 1. »î¸³.... ---------------------------------------------------------------- -J:%* Lookup: *Content* {¥Æ¥¹¥È} (Content Abbrev)--L1--C0- ---------------------------------------------------------------- ================================================================ Æó¤Ä¤Î¥Ð¥Ã¥Õ¥¡¤¬É½¼¨¤µ¤ì¤Þ¤·¤¿¡£¾å¦¤Î¥Ð¥Ã¥Õ¥¡¤Ï "Entry ¥Ð¥Ã¥Õ¥¡" ¤È¸À ¤¤¡¢¸¡º÷¤Î·ë²Ì¸«ÉÕ¤«¤Ã¤¿¥¨¥ó¥È¥ê¤ò°ìÍ÷¤·¤Þ¤¹¡£¤³¤³¤Ç¤ÏÆó¤Ä¤Î¥¨¥ó¥È¥ê¤¬ ɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£-!- ¤È¤¢¤ë¤Î¤Ï¡¢¤½¤³¤Ë¥Ý¥¤¥ó¥È¤¬¤¢¤ë¤È¤¤¤¦°õ¤Ç¤¹¡£¤Ä ¤Þ¤ê¡¢¸½ºß°ì¤ÄÌܤΡ֥ƥ¹¥È¡×¤È¤¤¤¦¥¨¥ó¥È¥ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ²¼Â¦¤Î¥Ð¥Ã¥Õ¥¡¤Ï "Content ¥Ð¥Ã¥Õ¥¡" ¤È¸À¤¤¡¢ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥¨¥ó¥È¥ê¤ÎËÜ Ê¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£Entry ¥Ð¥Ã¥Õ¥¡¤Ç SPC ¤ò²¡¤·¤Æ¤¤¤±¤Ð¡¢ÆâÍÆ¤¬¼¡¡¹¤Èɽ ¼¨¤µ¤ì¤Þ¤¹¡£ ¾å¤ÎÎã¤Ç¤Ï `test' ¤È¤¤¤¦¸¡º÷¸ì¤Ç¸¡º÷¤ò¹Ô¤Ê¤¤¤Þ¤·¤¿¤¬¡¢¤³¤³¤ÇÆþÎϤò¼¡¤Î ¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢¸¡º÷Êý¼°¤òÍÍ¡¹¤ËÀڤ괹¤¨¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ word ñ¸ì¸¡º÷¡£É¸½à¤Î¸¡º÷ÊýË¡¡£ word* Á°Êý°ìÃ׸¡º÷¡£»ØÄꤷ¤¿Ê¸»úÎó¤Ç»Ï¤Þ¤ë¸ì¤ò¸«ÉÕ¤±¤ë¡£ *word ¸åÊý°ìÃ׸¡º÷¡£»ØÄꤷ¤¿Ê¸»úÎó¤Ç½ª¤ï¤ë¸ì¤ò¸«ÉÕ¤±¤ë¡£ *word* Éôʬ°ìÃ׸¡º÷¡£»ØÄꤷ¤¿Ê¸»úÎó¤ò´Þ¤ó¤À¸ì¤ò¸«ÉÕ¤±¤ë¡£ 'word' ´°Á´°ìÃ׸¡º÷¡£»ØÄꤷ¤¿Ê¸»úÎó¤È°ìÃפ¹¤ë¸ì¤ò¸«ÉÕ¤±¤ë¡£ @word ¥­¡¼¥ï¡¼¥É¸¡º÷¡£»ØÄꤷ¤¿Ê¸»úÎó¤ò¥­¡¼¥ï¡¼¥É¤Ë»ý¤Ä¥¨¥ó¥È¥ê¤ò¸«ÉÕ¤± ¤ë¡£ ¤Ò¤È¤Þ¤º¤³¤ì¤À¤±³Ð¤¨¤Æ¤ª¤±¤Ð½½Ê¬¤Ç¤·¤ç¤¦¡£¸¡º÷Êý¼°¤Ï¾¤Ë¤â¤Þ¤À¤¤¤¯¤Ä¤« ¤¢¤ê¤Þ¤¹¤¬¡¢¾Ü¤·¤¯¤Ï¸å¤Û¤ÉÀâÌÀ¤·¤Þ¤¹¡£¤³¤³¤Ç¤Ï¤â¤¦¾¯¤·¡¢¸¡º÷·ë²Ì¤Î¸«Êý ¤Ë¤Ä¤¤¤ÆÏäò¿Ê¤á¤Æ¤¤¤­¤Þ¤¹¡£  File: lookup-guide.info, Node: See Result, Prev: Search Pattern, Up: Utilization ·ë²Ì¤ò¸«¤Æ¤¤¤¯ ============== °Ê²¼¡¢Entry ¥Ð¥Ã¥Õ¥¡¤Ç¤è¤¯ÍѤ¤¤é¤ì¤ë¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£¥­¡¼Áà ºî¤ò˺¤ì¤Æ¤·¤Þ¤Ã¤¿¤È¤­¤Ë¤Ï¡¢`?' ¤ò²¡¤»¤Ð³Îǧ½ÐÍè¤Þ¤¹¡£ * ËÜʸ¤Î¥¹¥¯¥í¡¼¥ë `SPC' °ì²èÌÌʬ¡¢Àè¤Ë¿Ê¤à¡£ `DEL' °ì²èÌÌʬ¡¢Á°¤ËÌá¤ë¡£ `<' ¥Ð¥Ã¥Õ¥¡¤ÎÀèÆ¬¤ØÌá¤ë¡£ `>' ¥Ð¥Ã¥Õ¥¡¤ÎºÇ¸å¤Ø¿Ê¤à¡£ * ¥¨¥ó¥È¥ê¤ÎÁªÂò `n' ¼¡¤Î¥¨¥ó¥È¥ê¤Ë°Üư¡£ `p' Á°¤Î¥¨¥ó¥È¥ê¤Ë°Üư¡£ `M-n' ¸¡º÷ÍúÎò¤ò¼¡¤Ë¿Ê¤à¡£ `M-p' ¸¡º÷ÍúÎò¤òÁ°¤ËÌá¤ë¡£ * ËÜʸ¤ËÂФ¹¤ëÁàºî `s' Content ¥Ð¥Ã¥Õ¥¡¤Ç `isearch-forward' ¤ò¼Â¹Ô¡£ `w' Content ¥Ð¥Ã¥Õ¥¡¤ÎÆâÍÆ¤ò¥­¥ë¥ê¥ó¥°¤Ë¥»¡¼¥Ö¡£ `L' ¥ê¥Õ¥¡¥ì¥ó¥¹¤ò°ìÍ÷¡£ ¤Þ¤À¤Þ¤À¤¢¤ê¤Þ¤¹¡£¸«ÉÕ¤«¤Ã¤¿¥¨¥ó¥È¥ê¤¬Â¿¤¯¤Æ°ìÍ÷¤¬¸«¿É¤¤¤È¤­¤Ë¤Ï¡¢`v' ¤ò²¡¤¹¤³¤È¤Ç "Overview ¥â¡¼¥É" ¤ËÆþ¤ê¤Þ¤¹¡£Overview ¥â¡¼¥É¤Ç¤Ï Content ¥Ð¥Ã¥Õ¥¡¤¬¥¯¥í¡¼¥º¤µ¤ì¡¢Entry ¥Ð¥Ã¥Õ¥¡¤ò¹­¤¯¸«¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ Overview ¥â¡¼¥É¤òÈ´¤±¤ë¤Ë¤Ï¡¢¤â¤¦°ìÅÙ `v' ¤È¤¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï SPC ¤ò²¡ ¤·¤Æ²¼¤µ¤¤¡£ µÕ¤Ë¥¨¥ó¥È¥ê¤ÎËÜʸ¤ò¹­¤¯¸«¤¿¤¤¤È¤­¤Ë¤Ï¡¢`o' ¤¬»È¤¨¤Þ¤¹¡£¤³¤ì¤ÏLookup ¤Î¥¦¥£¥ó¥É¥¦¤ò¥Õ¥ì¡¼¥à°ìÇդ˹­¤²¡¢°ì»þŪ¤Ëɽ¼¨Îΰè¤ò¹­¤¯¼è¤ê¤Þ¤¹¡£`q' ¤Ç¥Ð¥Ã¥Õ¥¡¤òÊĤ¸¤ì¤Ð¡¢¼¡¤«¤é¤Þ¤¿¸µ¤ËÌá¤ê¤Þ¤¹¡£ °ìÅ٥Хåե¡¤òÊĤ¸¤¿¸å¤Ç¤â¡¢¤â¤¦°ìÅÙ `M-x lookup' ¤È¤¹¤ë¤³¤È¤Ç¡¢ºÇ¸å¤Ë Lookup ¤òÈ´¤±¤¿¤È¤­¤Î¾õÂÖ¤¬¼è¤êÌᤵ¤ì¤Þ¤¹¡£`q' ¤È `M-x lookup' ¤ò·«¤ê ÊÖ¤¹¤³¤È¤Ç¡¢²¿Å٤Ǥ⸡º÷·ë²Ì¤ò¸«Ä¾¤¹¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ ¸¡º÷·ë²Ì¤òɽ¼¨¤·¤¿¤Þ¤ÞºÇ½é¤Î¥Ð¥Ã¥Õ¥¡¤ËÌá¤ê¤¿¤¤¤È¤­¤Ë¤Ï¡¢`r' ¤ò²¡¤»¤ÐOK ¤Ç¤¹¡£`h' ¤òÏ¢ÂǤ¹¤ì¤Ð¡¢Entry ¥Ð¥Ã¥Õ¥¡¤È Content ¥Ð¥Ã¥Õ¥¡¤Î´Ö¤ò±ýÉü¤¹ ¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£ ¤³¤ì¤À¤±³Ð¤¨¤Æ¤ª¤±¤Ð¡¢Æü¾ï¤Îºî¶È¤Ï½½Ê¬¤Ë¹Ô¤Ê¤¨¤ë¤Ç¤·¤ç¤¦¡£¤·¤«¤· Lookup ¤Ë¤Ï¡¢¾ì¹ç¤Ë¤è¤Ã¤ÆÌò¤ËΩ¤Ä¤¤¤¯¤Ä¤«¤Î¥³¥Þ¥ó¥É¤¬Â¾¤Ë¤âÍѰդµ¤ì¤Æ ¤¤¤Þ¤¹¡£¼¡¾Ï°Ê¹ß¤Ç¡¢¤½¤ì¤é¤ò´Þ¤à Lookup ¤Î´°Á´¤Êµ¡Ç½¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£ ¤µ¤Æ¡¢°Ê¾å¤Ç Lookup ¤ò»È¤¦¤¿¤á¤Îû¤«¤¤¥Ä¥¢¡¼¤â½ªÎ»¤Ç¤¹¡£¤¤¤«¤¬¤Ç¤·¤ç¤¦ ¤«? Lookup ¤Ï¤¢¤Ê¤¿¤ÎÍ×˾¤òËþ¤¿¤·¤Æ¤¯¤ì¤½¤¦¤Ç¤¹¤«? ¤â¤·»È¤Ã¤Æ¤¤¤Æ¡Ö¤â¤Ã ¤È¤³¤ó¤Êµ¡Ç½¤¬Íߤ·¤¤¤¾¡×¤È¤«¤¤¤¦¤³¤È¤¬¤¢¤ê¤Þ¤·¤¿¤é¡¢±óθ¤Ê¤¯¥á¡¼¥ë¤Ç¤Ç ¤âÅÁ¤¨¤Æ²¼¤µ¤¤¡£ ¤½¤ì¤Ç¤Ï¡¢¤¢¤Ê¤¿¤Î¤è¤ê²÷Ŭ¤Ê¸¡º÷¥é¥¤¥Õ¤òµ§¤Ã¤Æ¡£Happy Looking Up!  File: lookup-guide.info, Node: Information, Prev: Utilization, Up: Top ¾ðÊóÊÔ ****** ¤³¤³¤Ç¤Ï Lookup ¤È´ØÏ¢¤Î¤¢¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤Æ¾Ò²ð¤·¤Þ¤¹¡£ * Menu: * Lookup Homepage:: ¥Û¡¼¥à¥Ú¡¼¥¸¤Î¹½À® * Source of Information:: ÃΤäƤª¤¯¤È´ò¤·¤¤¾ðÊó¸» * Attention for Emacsen:: ³Æ¼ï Emacs Ëè¤ÎÃí°ÕÅÀ  File: lookup-guide.info, Node: Lookup Homepage, Next: Source of Information, Prev: Information, Up: Information ¥Û¡¼¥à¥Ú¡¼¥¸¤Î¹½À® ================== * Menu: * General Information:: °ìÈ̾ðÊó * User Information:: ¥æ¡¼¥¶¾ðÊó * Developer Information:: ³«È¯¼Ô¾ðÊó  File: lookup-guide.info, Node: General Information, Next: User Information, Prev: Lookup Homepage, Up: Lookup Homepage °ìÈ̾ðÊó -------- ¥À¥¦¥ó¥í¡¼¥É¥µ¥¤¥È°ìÍ÷ ¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È Á´Ê¸¸¡º÷  File: lookup-guide.info, Node: User Information, Next: Developer Information, Prev: General Information, Up: Lookup Homepage ¥æ¡¼¥¶¾ðÊó ---------- ¥æ¡¼¥¶¡¼¥º¥¬¥¤¥É (*Note Lookup User's Guide: (lookup-guide)Top) ¤³¤Î¥¬¥¤¥É¤Ç¤¹¡£ ¥æ¡¼¥¶¡¼¥º¥Þ¥Ë¥å¥¢¥ë (*Note Lookup Manual: (lookup)Top) Lookup ¤ÎÀßÄê¤ÈÍøÍÑÊýË¡¤Ë¤Ä¤¤¤Æ´°Á´¤ËÀâÌÀ¤·¤¿¥Þ¥Ë¥å¥¢¥ë¤Ç¤¹¡£¤³¤Î ¥¬¥¤¥É¤Î¼¡¤ËÆÉ¤à¤Ù¤­¾ðÊ󸻤Ǥ¹¡£ ¼­½ñ¥Ç¡¼¥¿¥Ù¡¼¥¹ (`http://openlab.ring.gr.jp/lookup/dicts/') Lookup ¤Ç»È¤¨¤ë¼­½ñ¤Î¾ðÊó¤ò½¸¤á¤¿¥Ú¡¼¥¸¤Ç¤¹¡£¥Õ¥ê¡¼¤Ê¼­½ñ¥Ç¡¼¥¿¤ä¡¢ ¼­½ñ¤ò¤è¤ê»È¤¤¤ä¤¹¤¯¤¹¤ë¤¿¤á¤ÎÀßÄê¥Õ¥¡¥¤¥ë½¸¤Ê¤É¤¬¤Þ¤È¤á¤é¤ì¤Æ¤¤ ¤Þ¤¹¡£ Lookup NEWS (`NEWS') Lookup ¤Î¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤Ëȼ¤Ê¤¦¼ç¤ÊÊѹ¹ÅÀ¤ò¤Þ¤È¤á¤¿¥Õ¥¡¥¤¥ë¤Ç¤¹¡£ ¤É¤³¤¬ÊѤï¤Ã¤¿¤«³Îǧ¤·¡¢É¬ÍפǤ¢¤ì¤ÐÀßÄê¥Õ¥¡¥¤¥ë¤ò¹¹¿·¤·¤Æ²¼¤µ¤¤¡£ Lookup FAQ (`etc/FAQ') ¤è¤¯¤¢¤ë¼ÁÌä¤È¤½¤Î²óÅú¤Î¥ê¥¹¥È¤Ç¤¹¡£²¿¤«µ¿Ìä¤Ë»×¤¦¤³¤È¤¬¤¢¤ë¤È¤­ ¤Ë¤Ï¡¢¤Þ¤ººÇ½é¤Ë¤³¤ì¤ò¸«¤Æ¤ß¤Æ²¼¤µ¤¤¡£ Lookup PROBLEMS (`etc/PROBLEMS') ´ûÃΤÎÌäÂêÅÀ¤Î¥ê¥¹¥È¤Ç¤¹¡£¥Ð¥°¤«¤Ê? ¤È»×¤¦Á°¤Ë¡¢´û¤ËÃΤé¤ì¤¿ÌäÂê ¤Ç¤Ê¤¤¤«³Îǧ¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£  File: lookup-guide.info, Node: Developer Information, Prev: User Information, Up: Lookup Homepage ³«È¯¼Ô¾ðÊó ---------- Lookup TODO (`etc/TODO') ¤³¤ì¤«¤é¤ä¤ë¤Ù¤­¤³¤È¤Î¥ê¥¹¥È¤Ç¤¹¡£  File: lookup-guide.info, Node: Source of Information, Next: Attention for Emacsen, Prev: Lookup Homepage, Up: Information ÃΤäƤª¤¯¤È´ò¤·¤¤¾ðÊó¸» ======================== ¤³¤ì¤«¤é¹¹¤Ë Lookup ¤òÃÎ¤í¤¦¤È¤¹¤ë¿Í¤Î¤¿¤á¤Ë¡¢¤¤¤¯¤Ä¤«¤ÎÌòΩ¤Ä¾ðÊ󸻤ò ¤Þ¤È¤á¤Æ¾Ò²ð¤·¤Æ¤ª¤­¤Þ¤¹¡£ * Menu: * Related Softwares:: ´ØÏ¢¥½¥Õ¥È¥¦¥§¥¢ * Dictionary Links:: ÅŻҼ­½ñ´ØÏ¢¥ê¥ó¥¯ * Mailing Lists:: ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È  File: lookup-guide.info, Node: Related Softwares, Next: Dictionary Links, Prev: Source of Information, Up: Source of Information ´ØÏ¢¥½¥Õ¥È¥¦¥§¥¢ ---------------- SDIC (`http://pine.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/index.html') ¥Õ¥ê¡¼¤ËÇÛÉÛ¤µ¤ì¤Æ¤¤¤ë±Ñ¸ì¼­½ñ¤«¤é¼ê·Ú¤Ë¸¡º÷¤ò¹Ô¤Ê¤¦¤³¤È¤òÌÜŪ¤È ¤·¤¿elisp ¤Î¸¡º÷¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹¡£¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤ÇÍѤ¤¤é¤ì¤Æ¤¤ ¤ë SDIC ¤È¤¤¤¦¼­½ñ·Á¼°¤Ï¡¢Lookup ¤Î ndic ¥¨¡¼¥¸¥§¥ó¥È¤Ç¤âÍøÍѽÐÍè ¤Þ¤¹¡£ eblook (`http://openlab.ring.gr.jp/edict/eblook/') Lookup ¤«¤é¤ÎÍøÍѤòÁÛÄꤷ¤Æºî¤é¤ì¤Æ¤¤¤ë CD-ROM ¼­½ñ¸¡º÷¥³¥Þ¥ó¥É¤Ç ¤¹¡£¸¡º÷¤Î¤¿¤á¤Ë EB ¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ·¤Æ¤ª¤ê¡¢Â¿¤¯¤ÎÅŻҥ֥寤ä EPWING µ¬Ìó¤Ë½àµò¤·¤¿ CD-ROM ¼­½ñ¤ò°·¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ NDTPD (`http://www.sra.co.jp/people/m-kasahr/ndtpd/') CD-ROM ¼­½ñ¤«¤é¸¡º÷¤ò¹Ô¤Ê¤¦¼­½ñ¥µ¡¼¥Ð¤Ç¤¹¡£NDTP ¤È¤¤¤¦¸¡º÷¥×¥í¥È ¥³¥ë¤ò¼ÂÁõ¤·¤Æ¤ª¤ê¡¢EPWING ¤Ê¤É¤Ë½àµò¤·¤¿»ÔÈΤΠCD-ROM ½ñÀÒ¤ò¥Í¥Ã ¥È¥ï¡¼¥¯¤Ç¶¦Í­¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹(¼­½ñ¤Î¥é¥¤¥»¥ó¥¹¤ÏÊÌÅÓɬÍפǤ¹)¡£ DICT ¥×¥í¥¸¥§¥¯¥È (`http://www.dict.org/') ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¼­½ñ¸¡º÷¥×¥í¥È¥³¥ë DICT(RFC 2229) ¤Ê¤É¤ò³«È¯¤·¤Æ ¤¤¤ë¥×¥í¥¸¥§¥¯¥È¤Ç¤¹¡£¼­½ñ¥µ¡¼¥Ð dictd ¤ä¡¢¤½¤ì¤ÇÍѤ¤¤ë¤³¤È¤Î½ÐÍè ¤ë¥Õ¥ê¡¼¤Ê¼­½ñ¤Ê¤É¤¬ÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Namazu (`http://www.namazu.org/"') ¿¿ô¤Î¥Õ¥¡¥¤¥ë¤«¤é¹â®¤Ë¸¡º÷¤ò¹Ô¤Ê¤¦¤¿¤á¤ÎÁ´Ê¸¸¡º÷¥¨¥ó¥¸¥ó¤Ç¤¹¡£ ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ê¤ÉÂçÎ̤ξðÊó¤ò¤¢¤é¤«¤¸¤á¥¤¥ó¥Ç¥Ã¥¯¥¹²½¤·¤Æ¤ª¤¯ ¤³¤È¤Ç¡¢ÌÜŪ¤Î¸ì¤ò´Þ¤ó¤À¥Õ¥¡¥¤¥ë¤ò¨ºÂ¤Ë¸«ÉÕ¤±½Ð¤»¤Þ¤¹¡£  File: lookup-guide.info, Node: Dictionary Links, Next: Mailing Lists, Prev: Related Softwares, Up: Source of Information ÅŻҼ­½ñ´ØÏ¢¥ê¥ó¥¯ ------------------ ÅŻҥ֥寤ι­¾ì (`http://www.ebxa.gr.jp/') ÅŻҥ֥寵¬³Ê¤Î¸ø¼°¾ðÊó¥Ú¡¼¥¸¤Ç¤¹¡£µ¬³Ê¤ÎÀâÌÀ¤äÀ½ÉʾҲð¤Ê¤É¤¬¤¢ ¤ê¤Þ¤¹¡£ EPWING ¥³¥ó¥½¡¼¥·¥¢¥à (`http://www.epwing.or.jp/') EPWING µ¬Ìó¤Î¸ø¼°¾ðÊó¥Ú¡¼¥¸¤Ç¤¹¡£µ¬Ìó¤ÎÀâÌÀ¤äÀ½ÉʾҲð¤Ê¤É¤¬¤¢¤ê¤Þ ¤¹¡£ EB ¥é¥¤¥Ö¥é¥ê (`http://www.sra.co.jp/people/m-kasahr/eb/') ÅŻҥ֥寤ä EPWING µ¬Ìó¤ËÂбþ¤·¤¿¸¡º÷Íѥ饤¥Ö¥é¥ê¤Ç¤¹¡£¾åµ­¤Î eblook ¤ä NDTPD ¤Ï¤³¤ì¤òÍѤ¤¤Æ¸¡º÷¤·¤Æ¤ë¤¿¤á¡¢Lookup ¤Î CD-ROM ¸¡ º÷¤Ï¤Û¤È¤ó¤É¤³¤Î¥é¥¤¥Ö¥é¥ê¤Ë°Í¸¤·¤Æ¤¤¤Þ¤¹¡£ ÅŻҼ­½ñ¥ª¡¼¥×¥ó¥é¥Ü (`http://openlab.ring.gr.jp/edict/') ÅŻҼ­½ñ´Ø·¸¤Î¾ðÊó¸ò´¹¤ä³«È¯¤òÌÜŪ¤È¤·¤¿¥Û¡¼¥à¥Ú¡¼¥¸¤Ç¤¹¡£EB ¥é¥¤ ¥Ö¥é¥ê¤¬Âбþ¤·¤Æ¤Ê¤¤¤¤¤¯¤Ä¤«¤Î CD-ROM ¼­½ñ¤«¤é¸¡º÷¤ò¹Ô¤Ê¤¦¤¿¤á¤Î ¥½¥Õ¥È¤Ê¤É¤¬ÇÛÉÛ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£  File: lookup-guide.info, Node: Mailing Lists, Prev: Dictionary Links, Up: Source of Information ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È ---------------- lookup ML (`http://openlab.ring.gr.jp/lookup/ml.html') Lookup ¤Ë¤Ä¤¤¤Æ¾ðÊó¸ò´¹¤ò¹Ô¤Ê¤¦¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤¹¡£±Ñ¸ìÈÇ ¤ÈÆüËܸìÈǤȤ¬¤¢¤ê¤Þ¤¹¡£Lookup ¤ÎºÇ¿·¾ðÊó¤Ï¡¢¤³¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È ¤ÇÆÀ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ edict ML (`http://openlab.ring.gr.jp/edict/') ÅŻҼ­½ñ°ìÈ̤ˤĤ¤¤Æ¾ðÊó¸ò´¹¤ò¹Ô¤Ê¤¦¤¿¤á¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤¹¡£ ¼­½ñ¤ò¹ØÆþ¤¹¤ë¾å¤Ç¤Î¥Î¥¦¥Ï¥¦¤ä¡¢¥Õ¥ê¡¼¤Ê¸¡º÷¥Ä¡¼¥ë¤Ë¤Ä¤¤¤Æ¤ÎÏÃÂê ¤Ê¤É¤¬½Ð¤Æ¤¤¤Þ¤¹¡£ ndtpd ML (`http://www.sra.co.jp/people/m-kasahr/ndtpd/ml-ja.html') ¼­½ñ¥µ¡¼¥Ð NDTPD ¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ç¤¹¡£»ÔÈΤΠCD-ROM ¼­½ñ¤òÍøÍÑ ¤¹¤ë¤¿¤á¤Î¾ðÊ󤬤ä¤ê¤È¤ê¤µ¤ì¤Þ¤¹¡£¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ë´Þ¤Þ¤ì¤ëEB ¥é ¥¤¥Ö¥é¥ê¤Ï Lookup ¤Î CD-ROM ¸¡º÷¤Î¤«¤Ê¤á¤È¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢CD-ROM ¼­½ñ¤òÍøÍѤµ¤ì¤ëÊý¤Ï¤³¤Á¤é¤Ë¤â»²²Ã¤µ¤ì¤ë¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£  File: lookup-guide.info, Node: Attention for Emacsen, Prev: Source of Information, Up: Information ³Æ¼ï Emacs Ëè¤ÎÃí°ÕÅÀ ===================== Lookup PROBLEMS(`etc/PROBLEMS')¤ò»²¾È¡£  Tag table: Node: Top1121 Node: Preparation1844 Node: Free Dictionary2169 Node: SDIC format2639 Node: dictd format4000 Node: CD-ROM Dictionary5121 Node: EPWING format5659 Node: Original format7005 Node: Setup Gaiji7275 Node: Network Dictionary8115 Node: NDTP server8584 Node: DICT server9078 Node: Miscellaneous Dictionary9477 Node: ndkks agent9825 Node: ndspell agent10356 Node: ndcookie agent10901 Node: Utilization11251 Node: Setup Example11568 Node: Run Lookup12958 Node: Search Pattern15084 Node: See Result16722 Node: Information18113 Node: Lookup Homepage18380 Node: General Information18649 Node: User Information18824 Node: Developer Information19576 Node: Source of Information19745 Node: Related Softwares20099 Node: Dictionary Links21126 Node: Mailing Lists21788 Node: Attention for Emacsen22448  End tag table lookup-1.4.1/texi/lookup.info-10000644000076400007640000023407310557543403016606 0ustar kazuhikokazuhikoInfo file: lookup.info, -*-Text-*- produced by `texinfo-format-buffer' from file `lookup.texi' using `texinfmt.el' version 2.38 of 3 July 1998. INFO-DIR-SECTION The Emacs editor and associated tools START-INFO-DIR-ENTRY * Lookup: (lookup). Lookup, a Search Interface. END-INFO-DIR-ENTRY This file documents Lookup, a search interface. Copyright (C) 1997,1998,1999 Keisuke Nishida Copyright (C) 1999-2001 Lookup Development Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.  File: lookup.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) Lookup Manual ************* Lookup $B$O(B Emacs $B%(%G%#%?$GMxMQ$G$-$k<-=q8!:w%$%s%?!<%U%'!<%9$G$9!#;THN(B $B$N(BCD-ROM $B<-=q$d%M%C%H%o!<%/$N<-=q%5!<%P$r;O$a!"MM!9$J>pJs8;$+$i4JC1$J(B $BA`:n$H@_Dj$G<-=q8!:w$,9T$J$($^$9!#(B $BK\=q$O(B Lookup 1.4 $B$K$D$$$F@bL@$7$^$9!#(B * Menu: * Introduction:: $B$O$8$a$K(B * Quick Tour:: $BBg$^$+$J;H$$J}(B * Getting Started:: Lookup $B$rMxMQ$9$k$K$O(B * How To Lookup:: $B8!:w$r9T$J$&$K$O(B * Customization:: $B<+J,9%$_$KD4@a$9$k(B * Dictionary Types:: $B<-=q7A<00lMw(B * Search Agents:: $B8!:w%(!<%8%'%s%H0lMw(B * Mode Details:: $B3F%b!<%I$N>\:Y(B * How To Get:: $B:G?7>pJs$r$N$N\$7$/8+$k(B * Make Reference:: $B%j%U%!%l%s%9$r;2>H$9$k(B * Cite Contents:: $BK\J8$r0zMQ$9$k(B $B<+J,9%$_$KD4@a$9$k(B * Customize General:: $B0lHLE*$J%+%9%?%^%$%:(B * Customize Option:: $B<-=q$H%(!<%8%'%s%H$N%+%9%?%^%$%:(B * Customize Contents:: $B%(%s%H%jK\J8$N%+%9%?%^%$%:(B * Supplement Package:: $BJd=u%Q%C%1!<%8$r:n$k(B * Customize Example:: $B>\:Y$J@_DjNc(B $B0lHLE*$J%+%9%?%^%$%:(B * Customize Variables:: $B~$N%+%9%?%^%$%:(B $B<-=q$H%(!<%8%'%s%H$N%+%9%?%^%$%:(B * Agent Options:: $B%(!<%8%'%s%H!&%*%W%7%g%s0lMw(B * Dictionary Options:: $B<-=q%*%W%7%g%s0lMw(B $B%(%s%H%jK\J8$N%+%9%?%^%$%:(B * Reference Pattern:: $B%j%U%!%l%s%9$N@_Dj(B * Gaiji Table:: $B30;zCV$-49$($N@_Dj(B * Format Contents:: $B%F%-%9%H$N@07A(B $B<-=q%U%)!<%^%C%H0lMw(B * Setup SDIC:: SDIC $B%U%)!<%^%C%H(B * Setup dictd:: dictd $B%U%)!<%^%C%H(B * Setup cookie:: cookie $B%U%!%$%k(B * Setup CD-ROM:: $B3F\:Y(B * Select Mode:: Select $B%b!<%I(B * Entry Mode:: Entry $B%b!<%I(B * Content Mode:: Content $B%b!<%I(B Select $B%b!<%I(B * Select Mode Details:: Select $B%b!<%I$N>\:Y(B * Select Mode Commands:: Select $B%b!<%I$N%3%^%s%I0lMw(B Entry $B%b!<%I(B * Entry Mode Details:: Entry $B%b!<%I$N>\:Y(B * Entry Mode Commands:: Entry $B%b!<%I$N%3%^%s%I0lMw(B Content $B%b!<%I(B * Content Mode Details:: Content $B%b!<%I$N>\:Y(B * Content Mode Commands:: Content $B%b!<%I$N%3%^%s%I0lMw(B  File: lookup.info, Node: Introduction, Next: Quick Tour, Prev: Top, Up: Top $B$O$8$a$K(B ******** $B6aG/!"%3%s%T%e!<%?$GEE;R<-=q$rMxMQ$9$k$3$H$b$:$$$V$s0lHLE*$H$J$j!"5!G=(B $BE*$KM%$l$?B??t$N(B CD-ROM $B<-=q$,HNGd$5$l$k$h$&$K$J$j$^$7$?!#$7$+$7!"F|:"(B $B$+$i%(%G%#%?$G$N:n6H$K47$l?F$7$s$G$$$k/$J$+$i$:$"$k$N$G$O$J$$$+$H;W$$$^$9!#(B $B<+J,$b(B Emacs $B$N0l%U%!%s$H$7$F!"F|>oE*$J8!:w:n6H$r$h$j2wE,$K9T$J$$$?$$(B $B$H$$$&K0$/L5$-M_5a$r;}$C$F$*$j!"$=$&$7$F@8$^$l$?$N$,$3$N(B Lookup $B$G$9!#(B $B$5$[$I9bEY$J$3$H$O$d$l$:$H$b!";H$C$F$$$F$l$G$7$g$&!#:#8e%=%U%H%&%'%"$r$h$j$$$C$=$&(B $B;H$$$d$9$$$b$N$X$H0i$F$F$$$/$?$a!"%W%m%0%i%`$r;H$C$F$_$F46$8$?B4D>$J$4(B $B0U8+$rD:$1$^$9$H9,$$$G$9!#$R$$$F$O!"$3$N%W%m%0%i%`$rMxMQ$9$k$3$H$G!"$h(B $B$jB?$/$N3'$5$s$,2wE,$K<-=q8!:w$r9T$J$($k$h$&$K$J$j$^$7$?$J$i4r$7$/;W$$(B $B$^$9!#(B * Menu: * Features:: Lookup $B$NFCD'(B * Environment:: $BF0:n4D6-(B * Copying:: $BCx:n8"$K$D$$$F(B  File: lookup.info, Node: Features, Next: Environment, Prev: Introduction, Up: Introduction Lookup $B$NFCD'(B ============= Lookup $B$N4pK\E*$J8!:w%9%?%$%k$O!"F|:"$h$/MQ$$$k<-=q$r$^$H$a$FMQ0U$7$F(B $B$*$-!"$=$3$+$i0l5$$KL\E*$N8l$r8+IU$1=P$9$3$H$G$9!#>/$7$G$b8!:w$N$?$a$N(B $BO+NO$r8:$i$;$k$h$&!"B?$/$N9)IW$r9T$J$C$F$$$^$9!#(B * $BJ#?t$N<-=q$+$i0lEY$K8!:w$r9T$J$$$^$9!#:G=i$KMxMQ$7$?$$<-=q$rA4$F(B $BEPO?$7$F$*$/$3$H$G!"8!:w7k2L$,$^$H$a$FI=<($5$l$^$9!#8!:w$OIaDL!"(B $B==J,9bB.$K9T$J$o$l$k$N$G!"$$$A$$$AL\E*$N<-=q$r@Z$jBX$($k$h$j$b8z(B $BN(E*$G$9!#(B * $BMM!9$Je$N<-=q%5!<%P$d!"%U%j!<$KG[I[$5$l$F$$$kMQ8l=8$J$I!"B?$/$N>pJs(B $B8;$+$i$=$N0c$$$r5$$K$9$k$3$H$J$/8!:w$,9T$J$($^$9!#(B(*Note Setup Agent::) * $BL\E*$4$H$K!"<-=q$N$^$H$^$j$rJ,$1$F8!:w$,9T$J$($^$9!#Nc$($P!"1Q8l(B $B3X=,MQ$K1QOB!&OB1Q<-E5$N%0%k!<%W!"%K%e!<%95-;v$rFI$`$?$a$K8=BeMQ(B $B8l=8!&%3%s%T%e!<%?MQ8l=8$N%0%k!<%W!"$H$$$C$?6q9g$K$^$H$a$F$*$-!"(B $B$=$l$>$l$K8DJL$N8!:w%3%^%s%I$r3d$jEv$F$k$3$H$,2DG=$G$9!#(B(*Note Setup Command::) * CD-ROM $B<-=q$J$I$K4^$^$l$k30;z$b$=$N$^$^I=<(=PMh$^$9!#30;zCV$-49$((B $B$N$?$a$KDI2C$N@_Dj$r9T$J$&$3$H$J$/!"<-=q$r$=$N$^$^MxMQ=PMh$^$9!#(B $B5U$KCV$-49$(J8;zNs$r;XDj$9$k$3$H$G!"=hM}$r9bB.2=$9$k$h$&$J$3$H$b(B $B2DG=$G$9!#(B(*Note Setup Gaiji::) * $B%9%Z%k%A%'%C%/$N$?$a$N;EAH$_$rHw$($F$$$^$9!#1QC18l$NJ#?t7A$d!"DV(B $B$j$K8m$j$,$"$k>l9g$K$G$b!"E,@Z$JC18l$r?dB,$7$F!"<+F0E*$K:F8!:w$r(B $B9T$J$&$h$&$K@_Dj$9$k$3$H$,=PMh$^$9!#(B(*Note Setup Query Expansion::) * $B<-=q$r$h$j2wE,$K;H$($k$h$&9T$J$C$?%+%9%?%^%$%:$r!"FCDj$N=q<0$G%U%!(B $B%$%k$K$^$H$a$k$3$H$G!"@_DjMQ%Q%C%1!<%8$H$7$FB>$N?M$H$b6&M-=PMh$k(B $B$h$&$K$J$j$^$9!#$b$74{$K/$7LdBj$,;D$5$l$F$$$^$9!#(B Mule 2.3 $B$G$b0l1~$NF0:n$O3NG'$7$F$$$^$9!#$?$@$7!"0lIt$N5!G=$,E,@Z$KF0(B $B:n$7$J$$$H$$$C$?$$$/$D$+$N@)8B$O$"$j$^$9!#6(NOe5-$N(B Emacsen $B$GF0:n$,$&$^$/$$$+$J$+$C$?$j!"$"$k$$$O$3$l$i0J30$N(B Emacs $B$G$NF0:n$r4uK>$5$l$kJ}$O!"(BLookup $B$N%a!<%j%s%0%j%9%H!"$b$7$/$O4I(B $BM}?M$^$G%a!<%k$r$*4j$$$7$^$9!#(B(*Note How To Get::)  File: lookup.info, Node: Copying, Prev: Environment, Up: Introduction $BCx:n8"$K$D$$$F(B ============== Lookup $B$O%U%j!r9`$K=>$C$F(B Lookup $B$r:FG[I[$^$?$OJQ99$9$k$3$H$,$G$-$^$9!#(B Lookup $B$OM-MQ$H$O;W$$$^$9$,!"HRI[$K$"$?$C$F$O!";T>l@-5Z$SFCDjL\E*E,9g(B $B@-$K$D$$$F$N0EL[$NJ]>Z$r4^$a$F!"$$$+$J$kJ]>Z$b9T$J$$$^$;$s!#>\:Y$K$D$$(B $B$F$O(BGNU General Public License $B$r$*FI$_$/$@$5$$!#(B $B$"$J$?$O!"(BLookup $B$H0l=o$K(B GNU General Public License $B$Nl9g$O!"(BFree Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA $B$Xr7oEy$N7hDj$O$=$N4V$N9g0U$K$h$j9T$J$o$l$^$9!#(B $BLd$$9g$o$;Ey$O(B $B$^$G$*4j$$$7$^$9!#(B  File: lookup.info, Node: Quick Tour, Next: Getting Started, Prev: Introduction, Up: Top $BBg$^$+$J;H$$J}(B ************** $B$5$"!"$=$l$G$O(B Lookup $B$r;H$C$F$_$^$7$g$&!#%d%d%3%7%$@bL@$O8e2s$7$K$7$F!"(B $B$H$b$+$/F0$+$9$3$H$+$i;O$a$F$$$-$^$9!#(B * Menu: * Quick Prepare:: $B<-=q$N=`Hw(B * Quick Setup:: $B@_Dj$9$Y$-$3$H(B * Quick Example:: $B4JC1$J@_DjNc(B * Quick Startup:: $B5/F0$9$k$K$O(B * Quick Search:: $B8!:w$7$F$_$h$&(B * Quick View:: $B7k2L$r8+$F$$$/(B  File: lookup.info, Node: Quick Prepare, Next: Quick Setup, Prev: Quick Tour, Up: Quick Tour $B<-=q$N=`Hw(B ========== $B$^$:!"2?$O$J$/$H$b<-=q$,I,MW$G$9!#$H$O$$$($?$V$s!"$3$N%W%m%0%i%`$r;H$*(B $B$&$H;W$o$l$?;~E@$G4{$K!"MxMQ$7$?$$<-=q$O7h$^$C$F$$$k$G$7$g$&$M!#<-=q$r(B $B$b$&MQ0U$7$F$$$k$H$$$&J}$O!"K\@a$OFI$_Ht$P$7$FR2p$7$F$*$-$^$7$g$&!#(B Zippy $B%U%!%$%k$H$O!"%"%a%j%+$N%3%_%C%/(B "Zippy the Pinhead" $B$NCf$+$i$$(B $B$/$D$+$N%;%j%U$rH4$-=P$7%G!<%?%Y!<%92=$7$?$b$N$G!"(BEmacs $B$N(B etc/yow.lines $B$H$$$&%U%!%$%k$K<}$a$i$l$F$$$^$9!#$=$7$F(B Lookup $B$OI8=`$G!"(B $B$3$N%U%!%$%k$+$i%-!<%o!<%I$r4^$s$@%;%j%U$r8!:w=PMh$k$h$&$K$J$C$F$$$k$N(B $B$G$9(B! Zippy $B%U%!%$%k$rMQ$$$k$K$O!"2?$b9M$($:$K$C$F2<$5$$!#(B $B$=$7$F5-=R$N$^$^$K!"$3$3$m$f$/$^$G(B Lookup $B$N5!G=$r$*;n$72<$5$$!#0lDL$j(B $B$NF0:n$r3NG'$7$?8e!"$"$J$?$O$U$C!"$H7Z$/>P$_$rIb$+$Y!"$b$C$H$7$C$+$j9M(B $B$($?>e$G9TF0$9$Y$-$@$H<+J,$r8+$D$aD>$9$3$H$G$7$g$&!#%V%i%\!<(B!  File: lookup.info, Node: Quick Setup, Next: Quick Example, Prev: Quick Prepare, Up: Quick Tour $B@_Dj$9$Y$-$3$H(B ============== $B$5$F!"<-=q$NMQ0U$,=PMh$?$i(B Lookup $B$N@_Dj$G$9!#$7$+$7BT$C$?!#(BLookup $B$,(B $BBP1~$7$F$$$k<-=q$K$O?tB?$/$N$l0[$J$k@-3J(B $B$r;}$C$F$$$^$9!#$=$l$>$l$N@bL@$r;2>H$7$F!"<+J,$NL\E*$K9g$C$?$b$N$r%T%C(B $B%/%"%C%W$7$F2<$5$$!#(B $BMQ8l8!:w$K8~$$$?%(!<%8%'%s%H(B ---------------------------- `ndic' $B%U%j!<<-=q$+$i$ND>@\8!:w(B (*Note ndic::) `ndeb' EPWING $B$J$I$K=`5r$7$?(B CD-ROM $B=q@R$N8D?MMxMQ(B (*Note ndeb::) `ndtp' NDTP $B%5!<%P$rMQ$$$?!"%M%C%H%o!<%/<-=q$NMxMQ(B (*Note ndtp::) `ndict' DICT $B%5!<%P$rMQ$$$?!"%M%C%H%o!<%/<-=q$NMxMQ(B (*Note ndict::) $B%i%s%@%`%O%&%91Q8l<-E5(B Windows $BHG$r8!:w$9$k%(!<%8%'%s%H(B ------------------------------------------------------- `ndsrd' $B%i%s%@%`%O%&%91Q8l<-E5(B Windows $BHG$r8!:w$9$k(B (*Note ndsrd::) `ndcookie' cookie $B%U%!%$%k$+$i8!:w(B (*Note ndcookie::) $BJd=uE*$J%(!<%8%'%s%H(B -------------------- `ndkks' $BF|K\8l$NFI$_$rD4$Y$k(B (*Note ndkks::) `ndspell' $B%9%Z%k%A%'%C%/$d%9%Z%k8!:w(B (*Note ndspell::) $BMxMQ$9$k%(!<%8%'%s%H$,7h$^$C$?$i!"@bL@$K=>$C$F=`Hw$r@0$($F2<$5$$!#<-=q(B $B$N@_Dj$d%$%s%9%H!<%k!"30It%W%m%0%i%`$,I,MW$K$J$k$3$H$b$"$j$^$9!#(BEmacs $B$N@_Dj$K$D$$$F$bNc$b5s$2$i$l$F$$$k$O$:$G$9$+$i!"<+J,$N>l9g$N@_DjFbMF$r(B $BGD0.$7$F2<$5$$!#(B $B0J>e$,=*$o$l$P!"(B`~/.emacs' $B%U%!%$%k$K@_Dj$r=q$-9~$_$^$9!#4pK\E*$K$OJQ(B $B?t(B `lookup-search-agents' $B$r%;%C%H$9$k$@$1$G$9!#MxMQ$7$?$$8!:w%(!<%8%'(B $B%s%H$N?t$@$1!"@_Dj$rJB$Y$k$3$H$,=PMh$^$9!#(B $BNc$($P!"(BNDTP $B%5!<%P$,%[%9%H(B `dserver' $B$GF0$$$F$*$j!"(BCD-ROM $B<-=q$r(B `/cdrom' $B$K%^%&%s%H$7$F$$$k$N$G$"$l$P!"@_Dj$O$K$b$$$/$D$+$N@_Dj$,I,MW$H$J$j$^$9!#e!"(B `~/.emacs' $B$K$Oe5-$N%3%^%s%I$O$h$/MQ$$$k$N$G!"E,Ev$J%-!<(B $B$K3d$jEv$F$F$*$/$HJXMx$G$9!#3F<+$G9%$_$N%-!<$K%P%$%s%I$7$F2<$5$$!#(B $B:G8e$NCJMn$G$O!"MxMQ$9$k8!:w%(!<%8%'%s%H$r@_Dj$7$F$$$^$9!#$3$l$OA0@a$G(B $B@bL@$7$?DL$j$G$9!#3F<+$N$b$N$K9g$o$;$F@_Dj$7$F2<$5$$!#(B $B0J>e$,=*$o$l$P!"<0$rI>2A$9$k$J$j!"(BEmacs $B$r:F5/F0$9$k$J$j$7$F!"@_Dj$rM-(B $B8z$K$7$F2<$5$$!#$5$"!"$$$h$$$h(B Lookup $B$N ======== Lookup Windows ======================================== ---------------------------------------------------------------- Type `m' to select, `u' to unselect, `?' for help. % Identifier Title Method - ---------- ----- ------ * ndtp+dserver:KOKUGO $B9q8l<-E5(B =<> * ndeb+/cdrom:EIWA $B1QOB<-E5(B =<> * ndeb+/cdrom:WAEI $BOB1Q<-E5(B =<> ---------------------------------------------------------------- -J:%* Lookup: *Dictionary List* (Select Abbrev)--L5--C0--A ---------------------------------------------------------------- ================================================================ $B>e$N$h$&$J2hLL$,I=<($5$l$^$7$?$+(B? $B$b$7%(%i!<$,5/$3$C$?$j!"$"$k$$$O0lMw(B $B$,I=<($5$l$J$$$h$&$J$i!"<-=q$d%W%m%0%i%`$N@_Dj$K<:GT$7$F$$$k$+$b$7$l$^(B $B$;$s!#LdBjE@$r3NG'$7$F!"$b$&0lEY$d$jD>$7$F$_$F2<$5$$!#$h$/$"$k%_%9$J$i(B FAQ $B$K>pJs$,$"$k$+$b$7$l$^$;$s$7!"$o$+$i$J$$$3$H$,$"$l$P%a!<%k$G?R$M$F(B $B$b$i$C$F$b0l8~$K9=$$$^$;$s!#(B $B$3$N$H$-I=<($5$l$k%P%C%U%!$r(B "$B<-=q0lMw%P%C%U%!(B" $B$H8F$S$^$9!#>e$NNc$G$O!"(B $B!V9q8l<-E5!W!V1QOB<-E5!W!VOB1Q<-E5!W$N;0$D$N<-=q$,;H$($k$h$&$K$J$C$F$$(B $B$^$9!#0J2e$N>l(B $B9g!";0$DA4$F$N<-=q$+$i0lEY$K8!:w$,9T$J$o$l$k$H$$$&0UL#$K$J$j$^$9!#DL>o!"(B $B:G=i$OMxMQ=PMh$kA4$F$N<-=q$,A*Br>uBV$K$J$C$F$$$^$9!#(B `Identifier' $B$H$"$k%3%i%`$K$O!"<-=q$rFCDj$9$k$?$a$NL>>N$,I=<($5$l$F$$(B $B$^$9!#$3$l$OMxMQ$7$F$$$k8!:w%(!<%8%'%s%H(B (AGENT) $B$H!"<-=q$N=j:_(B (LOCATION)$B!"5Z$S<-=qL>(B (NAME) $B$H$rAH$_9g$o$;$F!"(B`AGENT+LOCATION:NAME' $B$H$$$&7A$GI=$o$5$l$^$9!#K\=q$G$O$3$l$r(B"$B<-=q(B ID" $B$H8F$S!"(B`NAME' $B$GI=$o(B $B$5$l$k(B "$B<-=qL>(B" $B$H$O6hJL$7$^$9!#$^$?F1MM$K!"(B`AGENT+LOCATION' $B$NItJ,$O(B "$B%(!<%8%'%s%H(B ID" $B$H8F$S$^$9!#(B `Title' $B$H$"$k%3%i%`$K$O!"<-=q$N%?%$%H%k$,I=<($5$l$^$9!#$3$l$O8!:w7k2L(B $B$N=PNO$J$I$K!"IaCJMQ$$$i$l$k$b$N$G$9!#%*%W%7%g%s@_Dj$K$h$j<+M3$KJQ99$9(B $B$k$3$H$b2DG=$G$9$+$i!"8e$G8+$d$9$$$b$N$KJQ$($F$*$-$^$7$g$&!#(B $B:G8e$N(B `Methods' $B$H$"$k%3%i%`$K$O!"<-=q$,BP1~$7$F$$$k8!:wJ}<0$,<($5$l(B $B$F$$$^$9!#$3$l$O3F$l0l$D$N5-9f$GI=$o$5$l$F$*$j!">e$N(B $B>l9g$O$I$N<-=q$b!VA0J}0lCW8!:w!W!V8eJ}0lCW8!:w!W!V40A40lCW8!:w!W$KBP1~(B $B$7$F$$$k$H$$$&0UL#$K$J$j$^$9!#>\$7$/$O8e$[$I@bL@$7$^$9!#(B $B$3$N%P%C%U%!$G$O<-=q$N0lMw$r3NG'$9$k0J30$K$b!"<-=q$NA*Br>uBV$r@Z$jBX$((B $B$k$J$I$$$/$D$+$NA`:n$,2DG=$H$J$C$F$$$^$9!#;n$7$K(B `?' $B$r2!$7$F$_$F2<$5(B $B$$!#JL$N%P%C%U%!$K%3%^%s%I$N0lMw$,I=<($5$l$^$7$?$M(B? Lookup $B$N3F%P%C%U%!(B $B$G$O!"(B`?' $B%-!<$r2!$9$3$H$G4JC1$J%3%^%s%I0lMw$,=P$k$h$&$K$J$C$F$$$k$N$G!"(B $B$A$g$C$HD4$Y$?$$$H$-$K$4MxMQ2<$5$$!#(B $B$I$3$G$b;H$($k%-!$l%j!<(B $B%8%g%s$NFbMF!"5Z$S%_%K%P%C%U%!$+$i$NF~NO$r8!:w8l$K!"8!:w$r3+;O$7$^$9!#(B M-x lookup-pattern RET test RET => ======== Lookup Windows ======================================== ---------------------------------------------------------------- $B9q8l<-E5(B -!-$B%F%9%H(B $B1QOB<-E5(B test ---------------------------------------------------------------- -J:%* Lookup: *Entry* {*:test} [2] (Entry Abbrev)--L1--C20 ---------------------------------------------------------------- $B%F%9%H(B [$BL>(B] 1. $B;n83(B.... ---------------------------------------------------------------- -J:%* Lookup: *Content* {$B%F%9%H(B} (Content Abbrev)--L1--C0- ---------------------------------------------------------------- ================================================================ $BFs$D$N%P%C%U%!$,I=<($5$l$^$7$?!#>eB&$N%P%C%U%!$O(B "Entry $B%P%C%U%!(B" $B$H8@(B $B$$!"8!:w$N7k2L8+IU$+$C$?%(%s%H%j$r0lMw$7$^$9!#$3$3$G$OFs$D$N%(%s%H%j$,(B $BI=<($5$l$F$$$^$9!#(B-!- $B$H$"$k$N$O!"$=$3$K%]%$%s%H$,$"$k$H$$$&0u$G$9!#$D(B $B$^$j!"8=:_0l$DL\$N!V%F%9%H!W$H$$$&%(%s%H%j$,A*Br$5$l$F$$$^$9!#(B $B2e$NNc$G$O(B `test' $B$H$$$&8!:w8l$G8!:w$r9T$J$$$^$7$?$,!"$3$3$GF~NO$r$K$b$^$@$$$/$D$+(B $B$"$j$^$9$,!">\$7$/$O8e$[$I@bL@$7$^$9!#$3$3$G$O$b$&>/$7!"8!:w7k2L$N8+J}(B $B$K$D$$$FOC$r?J$a$F$$$-$^$9!#(B  File: lookup.info, Node: Quick View, Prev: Quick Search, Up: Quick Tour $B7k2L$r8+$F$$$/(B ============== $B0J2' $B%P%C%U%!$N:G8e$X?J$`!#(B * $B%(%s%H%j$NA*Br(B `n' $BuBV$,$9$3$H$,=PMh$^$9!#(B $B8!:w7k2L$rI=<($7$?$^$^:G=i$N%P%C%U%!$KLa$j$?$$$H$-$K$O!"(B`r' $B$r2!$;$P(B OK $B$G$9!#(B`h' $B$rO"BG$9$l$P!"(BEntry $B%P%C%U%!$H(B Content $B%P%C%U%!$N4V$r1}I|(B $B$9$k$3$H$b=PMh$^$9!#(B $B$3$l$@$13P$($F$*$1$P!"F|>o$N:n6H$O==J,$K9T$J$($k$G$7$g$&!#$7$+$7(B Lookup $B$K$O!">l9g$K$h$C$FLr$KN)$D$$$/$D$+$N%3%^%s%I$,B>$K$bMQ0U$5$l$F(B $B$$$^$9!#O0J9_$G!"$=$l$i$r4^$`(B Lookup $B$N40A4$J5!G=$K$D$$$F@bL@$7$^$9!#(B $B$5$F!"0J>e$G(B Lookup $B$r;H$&$?$a$NC;$+$$%D%"!<$b=*N;$G$9!#$$$+$,$G$7$g$&(B $B$+(B? Lookup $B$O$"$J$?$NMWK>$rK~$?$7$F$/$l$=$&$G$9$+(B? $B$b$7;H$C$F$$$F!V$b$C(B $B$H$3$s$J5!G=$,M_$7$$$>!W$H$+$$$&$3$H$,$"$j$^$7$?$i!"1sN8$J$/%a!<%k$G$G(B $B$bEA$($F2<$5$$!#(B $B$=$l$G$O!"$"$J$?$N$h$j2wE,$J8!:w%i%$%U$r5'$C$F!#(BHappy Looking Up!  File: lookup.info, Node: Getting Started, Next: How To Lookup, Prev: Quick Tour, Up: Top Lookup $B$rMxMQ$9$k$K$O(B ********************* $B$3$N>O$G$O!"(BLookup $B$N%$%s%9%H!<%k8e$K9T$J$o$J$1$l$P$J$i$J$$@_Dj9`L\$K(B $B$D$$$F@bL@$7$^$9!#%W%m%0%i%`$N%$%s%9%H!<%k$K$D$$$F$O!"(BLookup $BG[I[J*$K(B $BImB0$N%U%!%$%k(B INSTALL $B$r;2>H$7$F2<$5$$!#@_Dj8e$N99$J$k%+%9%?%^%$%:$K(B $B$D$$$F$O!"(B*Note Customization:: $B$r;2>H$7$F2<$5$$!#(B * Menu: * Setup Dictionary:: $B<-=q$N=`Hw$r@0$($k(B * Setup Agent:: $B<-=q$K9g$o$;$F@_Dj$9$k(B * Setup Command:: $B?7$7$$8!:w%3%^%s%I$r:n$k(B * Setup Others:: $B$=$NB>$N$l$N2<=`Hw$r@0$($F2<$5$$!#(B  File: lookup.info, Node: Setup Agent, Next: Setup Command, Prev: Setup Dictionary, Up: Getting Started $B<-=q$K9g$o$;$F@_Dj$9$k(B ====================== * Menu: * Setup Basis:: $B4pK\E*$J@_DjJ}K!(B * Setup Option:: $B3F@\$N%$%s%?!<%U%'!<%9$H$J$k(B" $B8!:w%(!<%8%'%s%H(B" $B$rA*$VI,MW$,$"$j$^$9!#MxMQ=PMh$k8!:w%(!<%8%'%s%H$O(B *Note Search Agents:: $B$K0lMw$,$"$k$N$G!"$=$A$i$r;2>H$7$F$I$l$rMQ$$$k$+(B $B7h$a$F2<$5$$!#(B $BMQ$$$k%(!<%8%'%s%H$,7h$^$l$P!"JQ?t(B `lookup-search-agents' $B$r@_Dj$7$^$9!#(B $B$3$l$O%(!<%8%'%s%H$N@_Dj$N%j%9%H$G!"%j%9%H$N3FMWAG$OA0$=$N$b$N$G$9!#(B LOCATION $B$K$O!"<-=q$N=j:_$rJ8;zNs$K$h$jI=$7$^$9!#2?$r;XDj$9$Y$-$+$OMx(B $BMQ$9$k%(!<%8%'%s%H$K$h$j0[$J$k$N$G!"$=$l$>$l$N%(!<%8%'%s%H$K$D$$$F$N@b(B $BL@$r;2>H$7$F2<$5$$!#$3$l$O>JN,2DG=$J>l9g$b$"$j$^$9!#(B OPTION $B$O!"%(!<%8%'%s%H$KBP$9$k>JN,2DG=$J%*%W%7%g%s$G$9!#$3$l$O%Q%i%a!<(B $B%?$rL>A0IU$-$GM?$($k$?$a$N$b$N$G!"%?%0$H$J$k%7%s%\%k$H!"CM$H$J$kG$0U$N(B $B%*%V%8%'%/%H$H$N(B cons $B$K$h$C$FI=$o$7$^$9!#$$$/$D$G$b;XDj$G$-$^$9!#(B $B6qBNE*$JNc$r5s$2$^$7$g$&!#Nc$($P!"$l;XDj$7(B $B$F$$$^$9!#(B $B3F%(!<%8%'%s%H$G6qBNE*$K2?$r@_Dj$9$Y$-$+$O!"$=$l$>$l$N%(!<%8%'%s%H$K$D(B $B$$$F$N@bL@$r;2>H$7$F2<$5$$!#%*%W%7%g%s$K$D$$$F$O!"$9$Y$F$N%(!<%8%'%s%H(B $B$G6&DL$K;H$($k$b$N$b$"$j$^$9!#(B*Note Agent Options:: $B$r;2>H$7$F2<$5$$!#(B $B>e$N$h$&$J@_Dj$r!"MxMQ$9$k%(!<%8%'%s%H$N?t$@$1JB$Y$?$b$N$,!"l9g!#(B (setq lookup-search-agents '((ndtp "dserver") (ndspell)))  File: lookup.info, Node: Setup Option, Next: Setup Restriction, Prev: Setup Basis, Up: Setup Agent $B3FlLL$G=P$F$/$k(B $B$N$G!"$3$3$G0lEY>\$7$/@bL@$7$F$*$-$^$9!#(B Lookup $B$G(B "$B%*%W%7%g%s(B" $B$H$O!"L>A0IU$-%Q%i%a!<%?$N$3$H$r0UL#$7$^$9!#$D(B $B$^$jFCDj$N%7%s%\%k$r%?%0$H$7$F!"$=$l$KBP1~$5$;$k7A$GCM$r@_Dj$7$^$9!#$3(B $B$l$OE57?E*$K$O!"(B`(KEY . VALUE)' $B$H$$$&(B cons $B$N7A$GI=8=$5$l$^$9!#(B $B@hDx$O%(!<%8%'%s%H$N%*%W%7%g%s$H$7$F!"(B`lookup-search-agents' $B$K%*%W%7%g(B $B%s$N(B cons $B$N%j%9%H$r@_Dj$7$^$7$?$,!"<-=q$N>l9g$K$OJQ?t(B `lookup-dictionary-options-alist' $B$rMQ$$$k$3$H$,=PMh$^$9!#(B $BNc$($P<-=q$K%*%W%7%g%s(B `:title' $B$r@_Dj$9$k$3$H$r9M$($F$_$^$7$g$&!#$3$l(B $B$O<-=q$N%?%$%H%k$rJQ99$9$k$?$a$N6&DL%*%W%7%g%s$G$9!#/!9$o$+$j$E(B $B$i$/$J$C$F$7$^$$$^$9!#$=$3$Ge$O$3$N4X?t$rMx(B $BMQ$7!"(B`lookup-dictionary-options-alist' $B$OD>@\$KJQ99$7$J$$J}$,$$$$$G$7$g(B $B$&!#>e$NNc$O!"8e$K@_Dj$,40N;$9$k(B $B$h$&!"(BLookup $B@lMQ$N=i4|2=%U%!%$%k(B `~/.lookup' $B$rMQ$$$k$3$H$,=PMh$^$9!#(B $B$3$l$O8e$G$^$?>\$7$/@bL@$7$^$9!#(B(*Note Setup Example::) $B$^$?!"A4$F$N<-=q$KBP$7$F%G%U%)%k%H$N%*%W%7%g%s$r@_Dj$9$k$?$a$K!"JQ?t(B `lookup-default-dictionary-options' $B$,MxMQ=PMh$^$9!#%*%W%7%g%s$N(Bcons $B$r%j%9%H$K$7$FJB$Y$^$9!#Nc$($Pl9g!"(B $B$l(B `lookup-agent-options-alist'$B!"(B `lookup-set-agent-option'$B!"(B`lookup-default-agent-options' $B$G$9!#Nc$($P(B $B<-=q$rL58z2=$9$k$K$O!"o!"(BLookup $B$N(B $B5/F0$HF1;~$KA4$F=i4|2=$5$l!"$=$3$K4^$^$l$kA4$F$N<-=q$,MxMQ$5$l$k$b$N$H(B $B$7$FA*Br$5$l$^$9!#$7$+$7>l9g$K$h$C$F$O!"$=$N$&$A0lIt$N<-=q$7$+I,MW$H$7(B $B$J$$$3$H$b$"$k$+$b$7$l$^$;$s!#%(!<%8%'%s%H$K$N%j%9%H!#(B `:disable' $BL58z$H$9$k<-=qL>$N%j%9%H!#(B $BNc$($P!"$"$k%(!<%8%'%s%H$,;0$D$N<-=q(B `KOKUGO', `EIWA', `WAEI' $B$r;}$C$F(B $B$$$k$H$7$^$7$g$&!#$3$NFb(B `EIWA' $B$@$1$rM-8z$K$7$?$$$N$G$"$l$P!"$O!"(B`M-x lookup' $B$H$7$FI=<($5$l$k<-=q0lMw$N%P%C(B $B%U%!$+$iCN$k$3$H$,=PMh$^$9(B (*Note Quick Startup::)$B!#:G=i$K%*%W%7%g%s$J(B $B$7$G5/F0$7$F4^$^$l$k<-=q$r3NG'$7!"8e$+$i@_Dj$rJQ99$9$k$H$h$$$G$7$g$&!#(B $B$"$k$$$O!"L58z$K$O$7$?$/$J$$$,!"LGB?$KMQ$$$J$$$H$$$&<-=q$b$"$k$+$b$7$l(B $B$^$;$s!#>e$HF1MM$K!"u(B $BBV$rJQ$($k$3$H$,=PMh$^$9!#(B `:select' $BA*Br$9$k<-=qL>$N%j%9%H!#(B `:unselect' $BL$A*Br$K$9$k<-=qL>$N%j%9%H!#(B $BL$A*Br$K$5$l$?<-=q$O!"8e$+$iA*Br$9$k$3$H$GMxMQ2DG=$H$J$j$^$9!#(B(*Note Specify Dictionary::)  File: lookup.info, Node: Setup Package, Prev: Setup Restriction, Up: Setup Agent $BJd=u%Q%C%1!<%8$NMxMQ(B -------------------- Lookup $B$G$OMM!9$Jc$O$"$j$^$;$s$,!"$=$l$rMQ$$$k$3$H$G=P(B $BNO$,$h$j8+$d$9$/@07A$5$l$?$j!"ITB-$9$k@_Dj$,Jd$o$l$?$j$H!";H$$>!A0(B $B$r(B "$B%Q%C%1!<%8L>(B" $B$H8F$S$^$9!#(B $B$G$9!#(B `lookup-use-package' $B$OFbItE*$K$O!"(B*Note Setup Option:: $B$G@bL@$7$?@_Dj(B $BMQ4X?t(B `lookup-set-agent-option' $B$H(B`lookup-set-dictionary-option' $B$rMQ(B $B$$$F%*%W%7%g%s@_Dj$r9T$J$C$F$$$k$@$1$G$9!#=>$C$F0lEY%Q%C%1!<%8$rFI$_9~(B $B$s$@8e$G$b!"$3$l$i$N4X?t$rMQ$$$F99$K@_Dj$r>e=q$-$9$k$3$H$d!"F1$8%(!<%8%'(B $B%s%H$KJL$N%Q%C%1!<%8$r=E$M$FE,MQ$9$k$3$H$b2DG=$G$9!#(B $Bl9g!"$=$l$r<+J,$G:n$k$3$H$b=PMh$^(B $B$9!#(B(*Note Supplement Package::)  File: lookup.info, Node: Setup Command, Next: Setup Others, Prev: Setup Agent, Up: Getting Started $B?7$7$$8!:w%3%^%s%I$r:n$k(B ======================== $B4{B8$N%=!<%9$r;29M$K$7$F$/$@$5$$!#$b$7J,$+$i$J$$$3$H$,$"$l$P!"%a%$%j%s(B $B%0%j%9%H(B ( ) $B$K$N$l$N8!:w%(!<%8%'%s%H$GE,@Z$J@_Dj$r9T$J$C(B $B$?>e$G!"(BLookup $B$rl9g(B: $BFCJL$J=`Hw$OI,MW$"$j$^$;$s!#(BLookup $B$O(B XEmacs/Emacs $B$N(B glyph $B$N5!(B $BG=$rMxMQ$7$F!"30;z$r0ll9g(B: `http://openlab.ring.gr.jp/lookup/info/gaiji.html' $B$r;29M$K(B bitmap-mule $B$r%$%s%9%H!<%k$7$F2<$5$$!#l9g!"l9g$K$O!"JQ?t(B `lookup-enable-gaiji' $B$r(B `nil' $B$K@_Dj$7$F2<$5$$!#$3$l$O%G%U%)%k%H$G(B `t' $B$H$J$C$F$$$^$9!#(B --------- Footnotes --------- (1) $B$?$@$7!"CJ,$JJ8;zNs$r$l$K$D$$$F!"<-=q$+$iC18l$,8+IU$+$k$^$G8!(B $B:w$r7+$jJV$7$^$9!#8!:w8l$,C1=c$JJ#?t7A$d2a5n7A$r$7$F$$$l$P!"0lEY(B $B$N$d$jD>$7$G7k2L$K$?$I$jIU$1$k$O$:$G$9!#(B 3. $B6&DL$N8lF,$r;}$C$?;w$?C18l$rC5$7=P$9!#(B $BNc$($P!"(B`lexicographer' $B$H$$$&8l$O:\$C$F$$$J$$$,!"(B`lexicography' $B$J$i:\$C$F$$$k$H$$$&<-=q$,$"$k$+$b$7$l$^$;$s!#(Bstemming $B$G$O$=$N$h(B $B$&$J%1!<%9$KBP1~$9$k$3$H$O=PMh$^$;$s$,!";29MDxEY$K$=$N>pJs$r<($7(B $B$F$/$l$k$H?F@Z$G$9!#$=$3$G!"$"$kDxEY$N8lD9$r;}$D8l$r8!:w$7$?>l9g(B $B$K8B$C$F!"(BLookup $B$O6&DL8lF,$r;}$D8l$N8!:w$KD)@o$7$^$9!#(B $B$3$l$G$b2?$b8+IU$+$i$J$1$l$P8!:w$rD|$a$^$9!#$=$N>l9g!"Fs2s$+;02s$N8!:w(B $B=hM}$,L5BL$K$J$j$^$9$,!"1s3VCO$N<-=q%5!<%P$K%"%/%;%9$7$F$$$k$N$G$b$J$$(B $B8B$j!"$3$l$OBg$7$?%3%9%H$G$O$"$j$^$;$s!#$h$C$F$"$i$+$8$a873J$J%9%Z%k(B $B%A%'%C%/$r9T$J$&$h$j$b!"$3$NJ}<0$rMQ$$$kJ}$,!"8zN(E*$K<+F0Jd@5$r9T$J$((B $B$^$9!#(B  File: lookup.info, Node: Spell Checking, Next: Kanji-Kana Expansion, Prev: Stemming, Up: Setup Query Expansion $B%9%Z%k%A%'%C%/$r9T$J$&(B ...................... $B8lHx$@$1$NLdBj$G$O$J$/!"DV$j$=$N$b$N$r4V0c$($?$N$G$O2?$b8+IU$+$j$^$;$s!#(B $B$=$3$G8!:w8l$N%9%Z%k%A%'%C%/$r9T$J$$!"$=$N>e$G8!:w$r9T$J$&5!G=$,M_$7$/(B $B$J$j$^$9!#(B Lookup $B$N%9%Z%k%A%'%C%/5!G=$O!"8!:w%(!<%8%'%s%H(B `ndspell' $B$H$7$F$N<-=q$G0lEY8!(B $B:w$r9T$J$$!"$=$l$G$b2?$b8+IU$+$i$J$+$C$?$H$-$N$_!"(Bndspell $B$G%9%Z%k%A%'%C(B $B%/$r9T$J$&$h$&$K$9$k$3$H$,=PMh$^$9!#(Bndspell $B$O!"$=$N$h$&$JMxMQ$rA[Dj$7(B $B$F:n$i$l$F$$$^$9!#(B $B$b$7$I$&$7$F$b%9%Z%k%A%'%C%/$r9T$J$$$?$$$H$$$&$3$H$,$"$l$P!"(BEntry $B%P%C(B $B%U%!$G(B `g' $B$r2!$7$F:F8!:w$r9T$J$&$3$H$G!"(Bndspell $B$K%9%Z%k%A%'%C%/$r6/(B $B@)$9$k$3$H$b2DG=$G$9!#$h$j>\$7$/$O!"(B*Note ndspell:: $B$r;2>H$7$F2<$5$$!#(B  File: lookup.info, Node: Kanji-Kana Expansion, Next: Universal Query Expansion, Prev: Spell Checking, Up: Setup Query Expansion $B4A;z$R$i$,$J3HD%8!:w$N=`Hw(B .......................... $B<-=q$K$h$C$F$O!"4A;z$r4^$`8!:w8l$rMQ$$$F8!:w$9$k$3$H$,$G$-$:!"4A;z$r$R(B $B$i$,$J$KJQ49$9$kI,MW$,$"$k>l9g$,$"$j$^$9!#<-=q%*%W%7%g%s(B :hiragana $B$r(B $B@_Dj$9$k$H!"$3$N$h$&$J<-=q$r2wE,$K8!:w$9$k$3$H$,$G$-$^$9!#(B (lookup-set-dictionary-option "agent:DICT" ':hiragana t) $B4A;z$R$i$,$J3HD%8!:w$r9T$&$h$&$K@_Dj$9$k$H!"l9g$,$"$k$+(B $B$bCN$l$^$;$s!#$=$N$h$&$J>l9g$K$O!"(B:expander $B%*%W%7%g%s$H(B :expand-filter $B%*%W%7%g%s$,MxMQ$G$-$^$9!#(B $BNc$($P!"o!"7W$J$3(B $B$H$r5$$K$;$:$KA4$F$N@_Dj$r9T$J$($^$9!#(B 2. `lookup-load-hook' $B$rMQ$$$k!#(B $B%5%$%H$G6&DL$N@_Dj$r9T$J$&$h$&$J>l9g!"(B`~/.lookup' $B$rMQ$$$k$o$1$K(B $B$O$$$-$^$;$s!#$"$k$$$O!"A4$F$r(B `~/.emacs' $B$G9T$&$H$$$&%]%j%7!<$N(B $B?M$b$$$k$+$b$7$l$^$;$s!#$=$N$h$&$JL\E*$N$?$a$K!"(B`~/.lookup' $B$HF1(B $BMM$N%?%$%_%s%0$G=i4|2=$r9T$J$&$?$a$N(B hook `lookup-load-hook' $B$rMQ(B $B$$$k$3$H$,=PMh$^$9!#l9g(B (define-key help-map "\C-e" 'english-search-pattern) (autoload 'english-search-pattern "lookup" nil t) ;; $B=i4|2=%U%!%$%k$rJQ99$9$k>l9g(B (setq lookup-init-file "~/.lookup")  File: lookup.info, Node: ~/.lookup, Next: site-start.el, Prev: ~/.emacs, Up: Setup Example `~/.lookup' $B$N@_Dj(B ------------------ `~/.lookup' $B$G<-=q$N@_Dj$r9T$J$$$^$9!#$3$l$^$G@bL@$7$?DL$j$G$9!#(B ;;; .lookup -- setup for Lookup -*- emacs-lisp -*- ;; $B8!:w%(!<%8%'%s%H$N@_Dj(B (setq lookup-search-agents '((ndeb "/cdrom") (ndspell))) ;; $BJd=u%Q%C%1!<%8$NFI$_9~$_(B (setq lookup-package-directory "~/emacs/lookup/packages") (lookup-use-package "ndeb+/cdrom" "mydict") ;; $B%*%W%7%g%s$N@_Dj(B (lookup-set-dictionary-option "ndeb+/cdrom:EIWA" ':title "$B1QOB<-E5(B") ;; $B30;zMxMQ$N@_Dj(B (setq lookup-use-bitmap t) ;;; .lookup ends here  File: lookup.info, Node: site-start.el, Prev: ~/.lookup, Up: Setup Example $B%5%$%HKh$N6&DL@_Dj(B ------------------ Lookup $B$N@_Dj$r%5%$%H$G6&M-$9$k$N$G$"$l$P!"(B`site-start.el' $B%U%!%$%k$K(B $B@_Dj$r2C$($^$9!#!#%G%U%)%k%H$O(B `~/.lookup'$B!#$3$N%U%!%$%k(B $B$O(B `lookup.el' $B$N%m!<%ID>8e$KFI$_9~$^$l$k!#(B `lookup-load-hook' Lookup $B$N%m!<%I40N;D>8e$K8e$KJN,2DG=$G!"%(!<%8%'(B $B%s%H$KBP$9$kDI2C$N0z?t$r;XDj$9$k!#(BOPTIONS $B$O>JN,2DG=$G!"F1$8$/DI(B $B2C$N%*%W%7%g%s$r;XDj$9$k!#(B $BNc(B: (setq lookup-search-agents '((ndtp "dserver" :port 2010) (ndeb "/cdrom" :enable ("EIWA")))) `lookup-default-agent-options' $B8!:w%(!<%8%'%s%H$K%G%U%)%k%H$GM?$($k%*%W%7%g%s$N%j%9%H!#3F%*%W%7%g(B $B%s$O!"%?%0$H$J$k%7%s%\%k$H!"CM$H$J$kG$0U$N%*%V%8%'%/%H$H$N(Bcons $B$K(B $B$h$C$FI=$o$9!#(B `lookup-agent-options-alist' $B8!:w%(!<%8%'%s%H$N%*%W%7%g%s$r@_Dj$9$kO"A[%j%9%H!#3FMWAG$N(B car $B$K(B $B$O%(!<%8%'%s%H(B ID (`"CLASS+LOCATION"') $B$r;XDj$7!"(Bcdr $B$K$O%*%W%7%g(B $B%s$N%j%9%H$r;XDj$9$k!#(B `lookup-default-dictionary-options' $B<-=q$K%G%U%)%k%H$GM?$($k%*%W%7%g%s$N%j%9%H!#3F%*%W%7%g%s$O!"%?%0(B $B$H$J$k%7%s%\%k$H!"CM$H$J$kG$0U$N%*%V%8%'%/%H$H$N(Bcons $B$K$h$C$FI=$o(B $B$9!#(B `lookup-dictionary-options-alist' $B<-=q$N%*%W%7%g%s$r@_Dj$9$kO"A[%j%9%H!#3FMWAG$N(B car $B$K$O<-=q(B ID (`"CLASS+LOCATION:NAME"') $B$r;XDj$7!"(Bcdr $B$K$O%*%W%7%g%s$N%j%9%H$r(B $B;XDj$9$k!#(B `lookup-package-directory' $BJd=u%Q%C%1!<%8$,<}$a$i$l$k%G%#%l%/%H%j!#(B  File: lookup.info, Node: Setup Functions, Prev: Setup Variables, Up: Getting Started $B%;%C%H%"%C%W4X?t0lMw(B ==================== `lookup-set-agent-option' ID TAG VALUE $B8!:w%(!<%8%'%s%H$N%*%W%7%g%s$r%;%C%H$9$k!#(BID $B$O%(!<%8%'%s%H(B ID$B!#(B TAG $B$O%*%W%7%g%s$N%?%0!#(BVALUE $B$O%;%C%H$9$kCM!#(B `lookup-set-dictionary-option' ID TAG VALUE $B<-=q$N%*%W%7%g%s$r%;%C%H$9$k!#(BID $B$O<-=q(B ID$B!#(BTAG $B$O%*%W%7%g%s$N%-!!"$"$k$$$O%Q%C%1!<%8$N(B $B@dBP%Q%9!#@dBP%Q%9$G$J$$>l9g!"%Q%C%1!<%8$OJQ?t(B `lookup-package-directory' $B$,<($9%G%#%l%/%H%j$KE83+$7$F$*$/I,MW$,(B $B$"$k!#$3$N4X?t$O(B `lookup-agent-options-alist' $B5Z$S(B `lookup-dictionary-options-alist' $B$NCM$r=q$-49$($k!#(B  File: lookup.info, Node: How To Lookup, Next: Customization, Prev: Getting Started, Up: Top $B8!:w$r9T$J$&$K$O(B **************** $B$3$N>O$G$O!"(BLookup $B$G8!:w$r9T$J$&J}K!$K$D$$$F>\$7$/@bL@$7$^$9!#$^$?!"(B $BFCDj$N<-=q$+$i>pJs$rF@$k$?$a$NJ}K!$K$D$$$F$b@bL@$7$^$9!#(B * Menu: * Startup Commands:: $B5/F0$H=*N;(B * Search String:: $BJ8;zNs8!:w(B * See Result:: $B8!:w7k2L$ND/$aJ}(B * Specify Dictionary:: $BFCDj$N<-=q$rMxMQ$9$k(B  File: lookup.info, Node: Startup Commands, Next: Search String, Prev: How To Lookup, Up: How To Lookup $B5/F0$H=*N;(B ========== $B:G=i$K(B Lookup $B$r5/F0$9$k$?$a$N%3%^%s%I$O(B `M-x lookup' $B$G$9!#$3$l$OMxMQ(B $B=PMh$k<-=q$N0lMw$r%P%C%U%!$KI=<($7!"<-=qA*Br%b!<%I$KF~$j$^$9!#$3$N%P%C(B $B%U%!$G$NA`:n$K$D$$$F$O!"(B*Note Specify Dictionary:: $B$r;2>H$7$F2<$5$$!#(B `M-x lookup' $B$rMQ$$$:$H$b!"$l(B `q' $B$H(B `Q' $B$K$h$C$FD>@\!"$^(B $B$?$O4V@\E*$K8F$S=P$5$l$^$9!#(B Lookup $B$rH4$1$?$H$-!"JQ?t(B `lookup-save-configuration' $B$NCM$,(B`non-nil' $B$G$"$l$P!"2hLL$,8!:w$r3+;O$7$?$H$-$N>uBV$KLa$5$l$^$9!#$3$l$O%G%U%)%k%H(B $B$G(B `t' $B$K@_Dj$5$l$F$$$^$9!#(B Lookup $B$N=i4|2=%U%!%$%k$r=q$-49$($?$H$-$K$O!"%3%^%s%I(B`M-x lookup-restart' $B$,MxMQ=PMh$^$9!#$3$l$O(B Lookup $B$r$$$C$?$s=*N;$5$;$?8e!"(B `~/.lookup' $B$rFI$_D>$7$F:F=i4|2=$r9T$J$$$^$9!#$3$l$ODL>o(B`R' $B$K3d$jEv$F(B $B$i$l$F$$$^$9!#(B  File: lookup.info, Node: Search String, Next: See Result, Prev: Startup Commands, Up: How To Lookup $BJ8;zNs8!:w(B ========== Lookup $B$N$b$C$H$b0lHLE*$J8!:wJ}K!$O!"8!:w8l$H$J$kJ8;zNs$r;XDj$7$F8!:w(B $B$r9T$J$&$3$H$G$9!#0J2\$7$/@bL@$7$^$9!#(B * Menu: * Search Commands:: $BI8=`$N8!:w%3%^%s%I(B * Default Method:: $BI8=`$N8!:wJ}<0(B * Search Methods:: $B8!:wJ}<0$N$$$m$$$m(B  File: lookup.info, Node: Search Commands, Next: Default Method, Prev: Search String, Up: Search String $BI8=`$N8!:w%3%^%s%I(B ------------------ Lookup $BI8=`$N8!:w%3%^%s%I$K$O!"BeI=$7$F$N%"(B $B%W%j%1!<%7%g%s>e$G$"$C$F$b9=$$$^$;$s!#(B $B$3$l$O%$%a!<%8$H$7$F$O!"(BX Window System $B$G$N%^%&%9$K$h$k%3%T!o!"8!:w8l$H40A4$K%^%C%A$7$?%(%s%H%j$rC5$7=P$9$3$H$r!V40A40lCW8!:w!W(B $B$H8@$$$^$9$,!"(BLookup $B$G$OB?/$7LdBj$,$"$j$^$9!#Nc$($P(B `emacs' $B$H$$$&C18l$r8!:w(B $B$9$k$H$-!"<-=q$K$h$C$F$O8+=P$78l$H$7$F(B `GNU Emacs' $B$H$7$+;}$?$J$$$?$a(B $B$K!"$=$l$,8+IU$+$i$J$$$H$$$&$3$H$,$"$j$^$9!#$3$l$O<-=qB&$NLdBj$@$H8@$((B $B$P$=$&$+$b$7$l$^$;$s$,!"$d$O$j$=$l$G$OITJX$J$N$G!">/$79)IW$,I,MW$G$9!#(B $B$b$7<-=q$,(B `GNU Emacs' $B$H$$$&8+=P$78l$7$+;}$?$J$/$H$b!"40A40lCW8!:w$G(B $B$O$J$/!V%-!<%o!<%I8!:w!W$G$H$$$&$3$H$J$i!"$=$l$r8+IU$1=P$9$3$H$b=PMh$k(B $B$+$b$7$l$^$;$s!#$=$N$?$aI8=`$N8!:wJ}<0$H$7$F$O!"<-=q$K$h$C$Fu(B $B67$K1~$8$F$K$D$$$F$O!"(B*Note Search Methods:: $B$r;2>H$7$F2<$5$$!#(B $B$$$/$D$+$N8!:w%(!<%8%'%s%H$G$O!"%G%U%)%k%H$N8!:wJ}<0$r>e=q$-$7$F!"Nc$((B $B$P%-!<%o!<%I8!:w$r9T$J$&$h$&$K@_Dj$5$l$F$$$^$9!#>\$7$/$O%(!<%8%'%s%H$N(B $B3F@a$r;2>H$7$F2<$5$$!#$^$?!"FCDj$N%(!<%8%'%s%H$d<-=q$G$N8!:wJ}<0$rJQ$((B $B$k$K$O!"<-=q%*%W%7%g%s(B `:default-method' $B$rMQ$$$k$3$H$,=PMh$^$9!#(B  File: lookup.info, Node: Search Methods, Prev: Default Method, Up: Search String $B8!:wJ}<0$N$$$m$$$m(B ------------------ $BJ8;zNs$r;XDj$9$k8!:w$NCf$G$bFC$K!"(B`M-x lookup-pattern' $B$N$h$&$KFCDj$N(B $B%Q%?!<%s$rF~NO$7$F9T$J$&8!:w$N$3$H$r!"(BLookup $B$G$O(B "$B%Q%?!<%s8!:w(B" $B$H8F(B $B$S$^$9!#%Q%?!<%s8!:w$G$O!"$l$N8!:wJ}<0$K$O8GM-$N%7%s(B $B%\%kL>$H5-9f$,4XO"IU$1$i$l$F$*$j!"$$$/$D$+$N>l=j$GMxMQ$5$l$^$9!#(B word $BC18l8!:w(B (`default', `~') $BI8=`$N8!:wJ}<0$G$9!#$3$l$O') $BM?$($i$l$?J8;zNs$r8+=P$78l$NKvHx$K;}$D$h$&$J%(%s%H%j$r8!:w$7$^$9!#(B $B$3$NNc$G$O(B `keyword' $B$d(B `headword' $B$J$I$,8+IU$+$j$^$9!#(B *word* $BItJ,0lCW8!:w(B (`substring', `-') $BM?$($i$l$?J8;zNs$r8+=P$78l$N0lIt$K4^$`$h$&$J%(%s%H%j$r8!:w$7$^$9!#(B $B$3$NNc$G$O(B `unwordy' $B$d(B `swordsman' $B$J$I$,8+IU$+$j$^$9!#(B w*o?d $B%0%m%V%Q%?!<%s(B $B>e$N;0$D$r99$K?J$a$?I=8=$H$7$F!"G$0U$N%0%m%V%Q%?!<%s$,;XDj=PMh$^(B $B$9!#$D$^$jJ8;z(B `*' $B$,G$0U$NJ8;zNs$H%^%C%A$7!"J8;z(B `?' $B$,G$0U$N0l(B $BJ8;z$H%^%C%A$7$^$9!#$3$NNc$G$O(B `word' $B$d(B `womanhood' $B$J$I$,8+IU$+(B $B$j$^$9!#(B $B$3$N8!:w%Q%?!<%s$O!"$C$F!"$3(B $B$l$rMQ$$$k$K$O<-=q$,l9g!"$3$N%Q(B $B%?!<%s$K$h$C$F$=$l$r8!:w$9$k$3$H$,=PMh$^$9!#2?$r%-!<%o!<%I$H$7$F(B $B;}$D$+$OMxMQ$9$k8!:w%(!<%8%'%s%H$K$h$C$F0[$J$k$?$a!"$=$l$>$l$N%(!<(B $B%8%'%s%H$K$D$$$F$N@bL@$r;2>H$7$F2<$5$$!#(B /word $BA4J88!:w(B (`text', `/') $B$3$l$OB>$N8!:wJ}<0$H$O>/$70[$J$j$^$9!#B>$N$b$N$O<-=q$K$"$i$+$8$a(B $BMQ0U$5$l$F$$$k%$%s%G%C%/%9$+$i8!:w$r9T$J$$$^$9$,!"$3$l$O<-=q$NA4(B $BBN$+$iNO$:$/$G8!:w8l$rC5$7=P$7$^$9!#$=$N$?$a$7$P$7$PHs>o$KB?$/$N(B $B8!:w;~4V$rI,MW$H$9$k$?$a!"$3$N8!:w%Q%?!<%s$r;XDj$9$k$H3NG'$N$?$a(B $B$N%W%m%s%W%H$,I=<($5$l$^$9!#(B $B%j%U%!%l%s%9(B (`:reference', `%') $B$3$l$O8!:wJ}<0$G$O$"$j$^$;$s$,!"F1$8$/5-9f$,3d$jEv$F$i$l$F$$$k$N(B $B$G$3$3$G@bL@$7$F$*$-$^$9!#(B"$B%j%U%!%l%s%9(B" $B$H$O!"$"$k%(%s%H%j$H4XO"(B $BIU$1$i$l$F$$$kJL$N%(%s%H%j$N$3$H$r8@$$$^$9!#DL>o!"(BWeb $B%Z!<%8$HF1(B $BMM$K!"%(%s%H%jK\J8$+$iJL$N%(%s%H%j$X$H%j%s%/$,D%$i$l$F$$$^$9!#(B $BB>$N8!:wJ}<0$rMxMQ$7$?$N$G$O$J$/!"%j%s%/$rC)$C$F%j%U%!%l%s%9$rI=(B $B<($7$?$H$-$K$O!"$=$N$H$-$N8!:wJ}<0$H$7$F>e$N5-9f$,MQ$$$i$l$^$9!#(B $B0J>e$NA4$F$N8!:wJ}<0$K<-=q$,BP1~$7$F$$$k$o$1$G$O$"$j$^$;$s!#<-=q$,BP1~(B $B$7$F$$$k8!:wJ}<0$rCN$k$?$a$K$O!":G=i$K(B `M-x lookup' $B$H$7$?$H$-=PNO$5$l(B $B$k<-=q0lMw%P%C%U%!$r;2>H$7$F2<$5$$!#(B(*Note Specify Dictionary::) $B<-=q$,BP1~$7$F$$$J$$8!:wK!$,;XDj$5$l$?>l9g$K$O!"8=:_$OC1=c$KL5;k$5$l$^(B $B$9!#$3$l$O>-MhE*$K$OL$BP1~$NDLCN$r=P$9$h$&$KJQ99$9$k$+$b$7$l$^$;$s!#(B  File: lookup.info, Node: See Result, Next: Specify Dictionary, Prev: Search String, Up: How To Lookup $B8!:w7k2L$ND/$aJ}(B ================ Lookup $B$G8!:w$,9T$J$o$l$k$H!"$=$N7k2L$OFs$D$N%&%#%s%I%&$KJ,$+$l$FI=<((B $B$5$l$^$9!#0l$D$O8+$D$+$C$?%(%s%H%j$N0lMw$rJB$Y$k$?$a$N$b$N$G!"$b$&0l$D(B $B$O3F%(%s%H%j$NK\J8$r8+$k$?$a$N$b$N$G$9!#0J2\$7$/@bL@$7$^$9!#(B * Menu: * See Entries:: $B%(%s%H%j$r=g$K8+$k(B * See Contents:: $BK\J8$r>\$7$/8+$k(B * Make Reference:: $B%j%U%!%l%s%9$r;2>H$9$k(B * Cite Contents:: $BK\J8$r0zMQ$9$k(B  File: lookup.info, Node: See Entries, Next: See Contents, Prev: See Result, Up: See Result $B%(%s%H%j$r=g$K8+$k(B ------------------ Entry $B%P%C%U%!(B (*Note Quick Search::) $B$K$O!"8!:w$N7k2L!"8+IU$+$C$?%(%s(B $B%H%j$N0lMw$,I=<($5$l$^$9!#(B`n'(ext) $B$H(B `p'(revious) $B$r2!$9$3$H$G!"%]%$(B $B%s%H$rA08e$K0\F0$7$FI=<($9$k%(%s%H%j$r@Z$j49$($k$3$H$,=PMh$^$9!#%^%&%9(B $B$NCf%\%?%s$G%/%j%C%/$9$k$3$H$G!"%(%s%H%j$rD>@\A*Br$9$k$3$H$b2DG=$G$9!#(B `v'(iew) $B$K$h$j(B Overview $B%b!<%I$KF~$j$^$9!#$3$l$O(B Content $B%P%C%U%!$N%&%#(B $B%s%I%&$r%/%m!<%:$7!"%(%s%H%j$N0lMw$r0l;~E*$K8+$d$9$/$7$^$9!#(BOverview $B%P%C%U%!$G$O!"(B`n' $B$H(B `p' $B$,C1$K%]%$%s%H$N0\F0$@$1$r9T$J$&$h$&$K$J$j$^(B $B$9!#$b$&0lEY(B `v' $B$H$9$k$+(B SPC $B$r2!$9$3$H$G!"(BOverview $B%b!<%I$r=*N;$7$F(B $B85$NF0:n$KLa$j$^$9!#(B Lookup $B$O!"2a5n$K9T$J$o$l$?8!:w$N7k2L$rMzNr$H$7$F5-21$7$F$$$^$9!#2a5n(B $B$N8!:w7k2L$r;2>H$9$k$K$O(B `M-p' $B$r2!$7$F$$$C$F2<$5$$!#5U$K!"85$N8!:w7k(B $B2L$KLa$k$K$O(B `M-n' $B$r2!$7$F2<$5$$!#(B  File: lookup.info, Node: See Contents, Next: Make Reference, Prev: See Entries, Up: See Result $BK\J8$r>\$7$/8+$k(B ---------------- Content $B%P%C%U%!(B (*Note Quick Search::) $B$K$O!"A*Br$5$l$F$$$k%(%s%H%j$N(B $BK\J8$,I=<($5$l$^$9!#$3$l$O(B SPC $B$H(B DEL $B$K$h$C$F!"(BEntry $B%P%C%U%!Fb$+$iA0(B $B8e$K%9%/%m!<%k$9$k$3$H$,=PMh$^$9!#%P%C%U%!$N:G8e(B ($B:G=i(B) $B$^$GC#$9$k$H!"(B $B' $B$K$h$C$F!"K\J8$N:G=i(B $B$H:G8e$K0\F0$9$k$3$H$b=PMh$^$9!#(B `o'(pen) $B$r2!$9$H!"(BLookup $B$N%&%#%s%I%&$r2hLLA4BN$K3H$2$F!"(BContent $B%P%C(B $B%U%!$NFbMF$r9-$/8+$k$3$H$,=PMh$^$9!#(BLookup $B$N%&%#%s%I%&$r0lEYJD$8$l$P!"(B $BH$7$F$$$k%(%s%H%j$N>pJs$r(B `i'(nfo) $B$K$h$C$FCN$k$3$H$,=PMh$^$9!#(B $B$^$?!"(B`t'(oggle) $B$K$h$C$F!"K\J8$r@07A$9$kA0$N%*%j%8%J%k$N<-=qFbMF$r8+(B $B$k$3$H$,=PMh$^$9!#$3$l$i$N>pJs$OK\J8$r%+%9%?%^%$%:$9$k:]$KMxMQ$9$k$3$H(B $B$,=PMh$^$9!#(B  File: lookup.info, Node: Make Reference, Next: Cite Contents, Prev: See Contents, Up: See Result $B%j%U%!%l%s%9$r;2>H$9$k(B ---------------------- $B%(%s%H%j$,%j%U%!%l%s%9$r;}$D>l9g!"(B`L'(inks) $B$r2!$9$3$H$G$=$l$r?7$?$K(B Entry $B%P%C%U%!$K0lMw$7$^$9!#C10l$N%j%U%!%l%s%9$N$_;2>H$7$?$$>l9g$K$O!"(B $B$^$:(B `h' $B$G(B Content $B%P%C%U%!$K0\F0$7!"(BTAB $B$NO"BG$GL\E*$N%j%s%/$K0\F0$7(B $B$?8e!"(BRET $B$H$9$l$P$=$l$rC)$k$3$H$,=PMh$^$9!#$"$k$$$OL\E*$N%j%s%/$rD>@\!"(B $B%^%&%9$NCf%\%?%s$G%/%j%C%/$7$F$b9=$$$^$;$s!#(B $BMQ$$$k<-=q$d8!:w%(!<%8%'%s%H$K$h$C$F$O!"%j%s%/$,8+?I$+$C$?$j!"%j%s%/$r(B $BC)$k$H0lMw$N8+=P$7$,$*$+$7$/$J$k$J$I$NITK~$,$"$k$+$b$7$l$^$;$s!#$3$l$O(B $B<-=qKh$N:90[$K(B Lookup $B$,%G%U%)%k%H$G$OBP1~$7$-$l$J$$$?$a$G$9!#%j%s%/$r(B $B$h$j8+$d$9$/$9$k$?$a$K$O!"(B*Note Reference Pattern:: $B$r;2>H$7$F3F<+$G@_(B $BDj$r9T$J$C$F2<$5$$!#(B  File: lookup.info, Node: Cite Contents, Prev: Make Reference, Up: See Result $BK\J8$r0zMQ$9$k(B -------------- Entry $B%P%C%U%!$G(B `w'(rite) $B$r2!$9$H!"%(%s%H%j$NK\J8$r%-%k%j%s%0$KJ]B8(B $B$7$^$9!#$3$N$H$-l9g!"<-=q$N(B $B%?%$%H%k$KCV$-49$($i$l$k!#(B `lookup-cite-prefix' $B%(%s%H%jK\J8$r0zMQ$9$k$H$-$N%W%l%U%#%/%9!#(B $B%3%^%s%I(B `M-x lookup-entry-cite-content' $B5Z$S(B`M-x lookup-content-cite-region' $B$K$h$jFbMF$r$l<-=q%*%W%7%g%s(B `:cite-style', `:cite-header', `:cite-prefix' $B$,;XDj$9$k$3$H$G!"$=$N@_Dj$,M%@hE*$KMx(B $BMQ$5$l$^$9!#(B(*Note Dictionary Options::) $B$^$?!"(BContent $B%P%C%U%!$K0\F0$7$F(B `w' $B$r2!$9$3$H$G!"$=$N$H$-$N%j!<%8%g(B $B%s$NJ8;zNs$@$1%3%T!<$9$k$3$H$b2DG=$G$9!#(B (1) --------- Footnotes --------- (1) $B$?$@$78=:_!"$3$N$H$-(B cite-style $B$N;XDj$OL58z$G$9!#uBV$,<($5$l$F$*$j!"(B`*' $B$,A*Br!"6uGr(B (` ') $B$,L$A*Br$G$"$k$3$H(B $B$rI=$o$7$F$$$^$9!#(B `Identifier' $B$H$"$kNs$K$O<-=q$N(B ID $B$,<($5$l$^$9!#$3$l$O(B (NAME) $B$rMQ$$$F(BCLASS+LOCATION:NAME $B$H$7$FI=$5(B $B$l$^$9!#(B `title' $B$H$"$kNs$K$O!"<-=q$N%?%$%H%k$,<($5$l$^$9!#$3$l$O$l0l$D$N8!:wJ}<0$r0UL#$7$F$$$^$9!#(B $B$=$NBP1~$K$D$$$F$O!"(B*Note Search Methods:: $B$K$"$k0lMw$r;2>H$7$F2<$5$$!#(B $B%P%C%U%!$G(B `?'$B$HF~NO$9$k$H!"MxMQ2DG=$J%3%^%s%I$K$D$$$F$N4J0W%X%k%W$,I=(B $B<($5$l$^$9!#%P%C%U%!$rH4$1$k$H%X%k%W$bJD$8$i$l$^$9!#(B $B%3%^%s%I(B `g'$B$G8=:_$N%b%8%e!<%k$r=i4|2=$7D>$7!"%P%C%U%!$r99?7$7$^$9!#$?(B $B$@$7!"$3$l$O%b%8%e!<%k<+BN$r:F@_Dj$9$k$o$1$G$O$J$$$N$G!"@_Dj%U%!%$%k$G(B $B%b%8%e!<%k$N@_Dj$rJQ$($?>l9g$K$O!"(B`R'$B$K$h$j(B Lookup $B$r:F5/F0$9$kI,MW$,(B $B$"$j$^$9!#(B `q'$B$G%P%C%U%!$rH4$1$^$9!#(B`Q'$B$G(B Lookup $B$r=*N;$7$^$9!#(B `n'$B$H(B `p'$B$K$h$C$F!"%]%$%s%H$r>e2<$K0\F0$7$^$9!#(B `m'$B$K$h$j$=$N9T$N<-=q$rA*Br$7!"(B`u'$B$K$h$jHsA*Br$K$7$^$9!#$^$?!"(B`M-x lookup-select-toggle-selected'$B$K$h$jA*Br>uBV$r%H%0%k$9$k$3$H$b2DG=$G$9!#(B `a'$B$K$h$j!"A4$F$N<-=q$rA*Br>uBV$K$7$^$9!#(BRET$B$K$h$j!"$=$N9T$N<-=q$@$1$r(B $BA*Br>uBV$K$9$k$3$H$b=PMh$^$9!#(B `d'$B$r2!$9$H!"<-=q$KL58z2=$N%^!<%/$,IU$1$i$l$^$9!#$3$l$O(B `x'$B$r2!$9$3$H(B $B$GuBV$K$"$k<-=q$+$i8!:w$r9T$J$$$^$9!#$3$l$Oo$K(B $B;~4V$,3]$+$k>l9g$,$"$k$N$GCm0U$7$F2<$5$$!#(B(*Note Search Methods::)  lookup-1.4.1/texi/lookup.info-20000644000076400007640000021661010557543403016604 0ustar kazuhikokazuhikoInfo file: lookup.info, -*-Text-*- produced by `texinfo-format-buffer' from file `lookup.texi' using `texinfmt.el' version 2.38 of 3 July 1998. INFO-DIR-SECTION The Emacs editor and associated tools START-INFO-DIR-ENTRY * Lookup: (lookup). Lookup, a Search Interface. END-INFO-DIR-ENTRY This file documents Lookup, a search interface. Copyright (C) 1997,1998,1999 Keisuke Nishida Copyright (C) 1999-2001 Lookup Development Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.  File: lookup.info, Node: Customization, Next: Dictionary Types, Prev: How To Lookup, Up: Top $B<+J,9%$_$KD4@a$9$k(B ****************** $B$3$N>O$G$O!"(BLookup $B$r8D?M$N9%$_$K1~$8$FD4@a$9$k$?$a$NJ}K!$K$D$$$F@bL@(B $B$7$^$9!#$^$?!"<-=qKh$N0lHLE*$J%+%9%?%^%:$r$^$H$a$F@_Dj%U%!%$%k=8$H$7$F(B $BG[I[$9$kJ}K!$K$D$$$F$b@bL@$7$^$9!#(B [ $B$3$N>O$O$^$@@0HwESCf$G$9(B ] * Menu: * Customize General:: $B0lHLE*$J%+%9%?%^%$%:(B * Customize Option:: $B<-=q$H%(!<%8%'%s%H$N%+%9%?%^%$%:(B * Customize Contents:: $B%(%s%H%jK\J8$N%+%9%?%^%$%:(B * Supplement Package:: $BJd=u%Q%C%1!<%8$r:n$k(B * Customize Example:: $B>\:Y$J@_DjNc(B  File: lookup.info, Node: Customize General, Next: Customize Option, Prev: Customization, Up: Customization $B0lHLE*$J%+%9%?%^%$%:(B ==================== Lookup $B$NA4HL$K4X$o$k%+%9%?%^%$%:JQ?t$NB?$/$O!"(BCustom $B%Q%C%1!<%8$rMxMQ(B $B$9$k$3$H$GJQ992DG=$G$9!#(BLookup $B$r5/F08e(B `M-x customize-group RET lookup RET' $B$H$9$l$P!"@_Dj=PMh$kJQ?t$N0lMw$r8+$k$3$H$,=PMh$^$9!#(B * Menu: * Customize Variables:: $B~$N%+%9%?%^%$%:(B  File: lookup.info, Node: Customize Variables, Next: Customize Face, Prev: Customize General, Up: Customize General $BuBV$,8!:w3+;O;~(B $B$N$b$N$KLa$5$l$k!#(B `lookup-use-bitmap' non-nil $B$K;XDj$9$k$H!"(Bbitmap-mule $B$rMxMQ$7$?30;zI=<($r9T$J$&$h$&(B $B$K$J$j$^$9!#(Bbitmap-mule $B$,4{$K%m!<%I$5$l$F$$$l$P<+F0E*$K(B `t' $B$K$J(B $B$j$^$9!#(B*Note Setup Gaiji:: $B$r;2>H$7$F2<$5$$!#(B `lookup-use-kakasi' non-nil $B$K;XDj$9$k$H!"(BKAKASI $B$rMQ$$$FF|K\8l$N8!:w8l$N@Z$j=P$7$r9T(B $B$J$&$h$&$K$J$j$^$9!#(B*Note Search Commands:: $B$r;2>H$7$F2<$5$$!#(B `lookup-enable-gaiji' nil $B$K;XDj$9$k$H!"30;z$NI=<($r9T$J$o$J$/$J$j$^$9!#(B*Note Setup Gaiji:: $B$r;2>H$7$F2<$5$$!#(B `lookup-max-hits' `lookup-max-text' $BI=<($9$k%(%s%H%j$N>e8B?t!"5Z$S%(%s%H%jK\J8$N>e8B%5%$%:$rDj$a$^$9!#(B $B$3$l$i$O8=:_(B ndeb $B$G$N$_M-8z$G$9!#(B `lookup-cite-style' `lookup-cite-header' `lookup-cite-header' $B%(%s%H%jK\J8$r0zMQ$9$k$H$-$N%9%?%$%k!"%X%C%@!"%W%l%U%#%/%9$r@_Dj(B $B$9$k!#(B*Note Cite Contents:: $B$r;2>H!#(B `lookup-inline-image' nil $B$K;XDj$9$k$H2hA|$N%$%s%i%$%sI=<($r9T$$$^$;$s!#(B  File: lookup.info, Node: Customize Face, Prev: Customize Variables, Up: Customize General $BJ8;zAu>~$N%+%9%?%^%$%:(B ---------------------- Lookup $B$G$O%U%'%$%9(B ($BJ8;zAu>~(B) $B$N@_Dj$K(B Custom $B%Q%C%1!<%8$N(B `defface' $B$rMQ$$$F$$$^$9!#$3$l$r%+%9%?%^%$%:$9$k$K$O!"(B`M-x customize-group RET lookup-faces RET' $B$J$I$H$7$F@_Dj$r9T$J$C$F2<$5$$!#(B Mule $B$rMxMQ$7$F$$$k$J$I!"(BCustom $B$,%$%s%9%H!<%k$5$l$F$J$$>l9g$K$O!"(B Lookup $B$N=i4|2=%U%!%$%k(B (`~/.lookup') $B$G@_Dj$r9T$J$&I,MW$,$"$j$^$9!#$3(B $B$l$Oo!"0l9TL\(B) $B$KIU$1$i$l$k%U%'%$%9!#(B `lookup-heading-2-face' $BK\J8$,9=B$$r;}$D>l9g!"FsHVL\$N8+=P$7$KIU$1$i$l$k%U%'%$%9!#(B `lookup-heading-3-face' $BK\J8$,9=B$$r;}$D>l9g!";0HVL\$N8+=P$7$KIU$1$i$l$k%U%'%$%9!#(B `lookup-heading-4-face' $BK\J8$,9=B$$r;}$D>l9g!";MHVL\$N8+=P$7$KIU$1$i$l$k%U%'%$%9!#(B `lookup-heading-5-face' $BK\J8$,9=B$$r;}$D>l9g!"8^HVL\$N8+=P$7$KIU$1$i$l$k%U%'%$%9!#(B `lookup-heading-low-face' $BK\J8$,9=B$$r;}$D>l9g!"$"$^$j=EMW$G$J$$ItJ,$KIU$1$i$l$k%U%'%$%9!#(B `lookup-reference-face' $BK\J8$N%j%s%/ItJ,$KMQ$$$i$l$k%U%'%$%9!#(B `lookup-refered-face' $BK\J8$N;2>H:Q$_%j%s%/$KMQ$$$i$l$k%U%'%$%9!#(B $B@_Dj$K$O$l(B $B$N%(!<%8%'%s%H$K$D$$$F$N@bL@$r;2>H$7$F2<$5$$!#6&DL%*%W%7%g%s$H$7$F$O!"(B $B$rM?$($k!#%(!<%8%'%s%H(B ID $B$OIaDL(B `CLASS+LOCATION' $B$H$7$FM?$($i$l$k$,(B (*Note Quick Startup::)$B!"$3$N(B $B%*%W%7%g%s$K$h$j(B LOCATION $B$NItJ,$rCV$-49$($i$l$k!#EvA3$J$,$i!"$3(B $B$l$O(B `lookup-search-agents' $B$G@_Dj$7$J$1$l$P$J$i$J$$!#$N%j%9%H!#(B(*Note Setup Restriction::) `:disable' $BL58z$H$9$k<-=qL>$N%j%9%H!#(B(*Note Setup Restriction::) `:select' $BA*Br$9$k<-=qL>$N%j%9%H!#(B(*Note Setup Restriction::) `:unselect' $BL$A*Br$K$9$k<-=qL>$N%j%9%H!#(B(*Note Setup Restriction::)  File: lookup.info, Node: Dictionary Options, Prev: Agent Options, Up: Customize Option $B<-=q%*%W%7%g%s0lMw(B ------------------ $B<-=q$O!"%*%W%7%g%s$r@_Dj$9$k$3$H$K$h$j%+%9%?%^%$%:$,2DG=$G$9!#(B(*Note Setup Option::) $Be=q$-$9$k!#(B*Note Kanji-Kana Expansion::. `:expander' expander $B4X?t$r;XDj$9$k!#$3$l$O8!:w8l$rE,Ev$JB>$N8!:w8l$KCV$-49$((B $B$k$?$a$N4X?t$G!"J8;zNs$r$l!"(B`lookup-cite-style', `lookup-cite-header', `lookup-cite-prefix' $B$NBe$o$j$KM%@h$7$FMQ$$$i$l$k!#(B(*Note Cite Contents::) $B$3$NFb!"(B`:title' $B$H(B `:gaiji-table' $B$r=|$/A4$F$N%*%W%7%g%s$O!"%(!<%8%'(B $B%s%H!&%*%W%7%g%s$H$7$F@_Dj$9$k$3$H$b2DG=$G$9!#(B $B%(!<%8%'%s%H$K$h$C$F$O!"$3$l0J30$K$bFCJL$J<-=q%*%W%7%g%s$,MxMQ=PMh$k>l(B $B9g$,$"$j$^$9!#$=$l$>$l$N%(!<%8%'%s%H$N@bL@$r;2>H$7$F2<$5$$!#(B  File: lookup.info, Node: Customize Contents, Next: Supplement Package, Prev: Customize Option, Up: Customization $B%(%s%H%jK\J8$N%+%9%?%^%$%:(B ========================== * Menu: * Reference Pattern:: $B%j%U%!%l%s%9$N@_Dj(B * Gaiji Table:: $B30;zCV$-49$($N@_Dj(B * Format Contents:: $B%F%-%9%H$N@07A(B  File: lookup.info, Node: Reference Pattern, Next: Gaiji Table, Prev: Customize Contents, Up: Customize Contents $B%j%U%!%l%s%9$N@_Dj(B ------------------ $B%j%U%!%l%s%9$N=q<0$O$7$P$7$P<-=q$K$h$C$F0[$J$k$N$G!"(BLookup $B$N%G%U%)%k(B $B%H$N@_Dj$@$1$G$O$I$&$7$F$bBP1~$7@Z$l$^$;$s!#(BEntry $B%P%C%U%!$G(B `t' $B$r2!(B $B$9$H!"K\J8@07AA0$N%*%j%8%J%k$NFbMF$r8+$k$3$H$,=PMh$k$N$G!"$=$NFbMF$r3N(B $BG'$7$F$_$F2<$5$$!#(B $B$b$7%G%U%)%k%H$G@8@.$5$l$k%j%s%/$KITK~$,$"$k>l9g!"<-=q%*%W%7%g%s(B `:reference-pattern' $B$K$h$j%+%9%?%^%$%:$9$k$3$H$,2DG=$G$9!#@_Dj$9$Y$-(B $BCM$Ol9g!"(B `heading' REGEXP $B$O[^<\n]+<[0-9a-f:]+>" LINK, HEADING, CODE $B$K$O$=$l$>$l!"%j%s%/$H$J$kJ8;zNs!"%j%U%!%l%s%9$N8+(B $B=P$78l!"5Z$S$=$N%3!<%IHV9f$r;XDj$7$^$9!#:#$N>l9g!"%j%s%/$O(B `heading'$B!"8+=P$78l$O(B `heading'$B!"%3!<%IHV9f$O(B `a456:789' $B$H$9$l$P$h$$$G$7$g$&!#$3$l$K$O(B REGEXP $B$N%^%C%AFbMF$rMxMQ$7$F!"\\([^<\n]+\\)\\)<\\([0-9a-f:]+\\)>" (match-string 1) (match-string 2) (match-string 3)) $B$3$N$h$&$K(B `link', HEADING, CODE $B$K$OJ8;zNs$rJV$9G$0U$N<0$rMQ$$$k$3$H(B $B$,2DG=$G$9$,!">e$N$h$&$K(B `match-string' $B$G%^%C%AFbMF$rC1=c$Kl9g!"FCJL$K>JN,$7$FHV9f$r;XDj$9$k$@$1$G$h$$$h$&$K$J$C$F$$$^$9!#(B ("\\(\\([^<\n]+\\)\\)<\\([0-9a-f:]+\\)>" 1 2 3) $B$^$?!"30;zCV$-49$($OJL$N%9%F%C%W$G9T$J$o$l$k$?$a!"$3$N;~E@$G$O$I$&$3$&(B $B$9$kI,MW$O$"$j$^$;$s!#8+=P$78l$K30;z$,4^$^$l$k>l9g$K$b!"$=$l$r$=$N$^$^(B $BJV$9$h$&$K@_Dj$7$F2<$5$$!#E57?E*$K$O]>\\) +\\)\\)<\\([0-9a-f:]+\\)>" 1 2 4) $B<+J,$N<-=q$K9g$o$;$?E,@Z$J%Q%?!<%s$r:n$i$l$?J}$O!"%a!<%j%s%0%j%9%H$K$G(B $B$b>pJs$rD:$1$^$9$H9,$$$G$9!#(B --------- Footnotes --------- (1) XEmacs $B$G$J$i$b$C$HC1=c$K(B `".+?<[0-9a-f:]+>"' $B$H$9$k$3$H$,=PMh$^$9!#(B (2) XEmacs $B$G$J$i$d$O$jC1=c$K(B`("\\($B"*(B \\(.+?\\)\\)<\\([0-9a-f:]+\\)>" 1 2 3)' $B$G(B OK $B$G$9!#(B  File: lookup.info, Node: Gaiji Table, Next: Format Contents, Prev: Reference Pattern, Up: Customize Contents $B30;zCV$-49$($N@_Dj(B ------------------ $B<-=q%*%W%7%g%s(B `:gaiji-table' $B$K$h$j!"<-=q$N30;z$NCV$-49$(%F!<%V%k$r@_(B $BDj$9$k$3$H$,=PMh$^$9!#(B $B30;zCV$-49$($H$O!"30;zI=<($N:]$K<-=q$KMQ0U$5$l$F$$$k30;z$rMQ$$$k$3$H$r(B $B$;$:$K!"$"$i$+$8$aDj5A$7$F$*$$$?@_Dj$K=>$C$F$=$l$NCV49J8;zNs$rMxMQ$9$k(B $B$3$H$r8@$$$^$9!#$3$N$?$a$NJQ49I=$r(B "$B30;z%F!<%V%k(B" $B$H8F$S!"4X?t(B `lookup-new-gaiji-table' $B$K$h$j@8@.$7$^$9!#(B $B$3$l$O2A2DG=$J<0$r;XDj$7!"(B $B$=$NCM$,30;z$NCV49J8;zNs$H$7$FMxMQ$5$l$^$9!#(BALTERNATE $B$O>JN,2DG=$G!"30(B $B;z$NBeBXJ8;zNs$r;XDj$7$^$9!#$3$l$O(BGLYPH $B$H0c$C$F!"0lHLE*$KMxMQ$5$l$kJ8(B $B;z%;%C%H$G$J$1$l$P$J$j$^$;$s!#(B GLYPH $B$H(B ALTERNATE $B$H$N0c$$$O!"$=$l$,8+$?L\$r=E;k$9$k$+MxJX@-$r=E;k$9(B $B$k$+$K$"$j$^$9!#(BGLYPH $B$K$O%"%/%;%s%HJ8;z$J$I$r4^$`J8;zNs$r;XDj$9$k$3$H(B $B$G8+$?L\$rNI$/$9$k$3$H$,=PMh$^$9$,!"$=$N>l9g!"8!:w$d%3%T!<$N$?$a$NMxJX(B $B@-$,5>@7$K$J$j$^$9!#$=$N$?$a!"I=<($N$?$a$K$O(BGLYPH $B$rMQ$$!"MxJX@-$r=E;k(B $B$9$k>u67$G$O(B ALTERNATE $B$rMQ$$$k$H$$$&;H$$J,$1$,9T$J$o$l$^$9!#(B  File: lookup.info, Node: Format Contents, Prev: Gaiji Table, Up: Customize Contents $B%F%-%9%H$N@07A(B -------------- $B%(%s%H%jFbMF$N@07A=hM}$O!"Fs$D$N%9%F%C%W$G9T$J$o$l$^$9!#0l$D$O(B "arrange" $B$H8F$S!"$l4X?t$N%j%9%H$r@_Dj$7$^$9!#(B arrange $B4X?t$b(B adjust $B4X?t$b!"8F$S=P$5$l$k%?%$%_%s%0$,0c$&$@$1$G!"FbIt(B $BE*$K$OF1$8$b$N$G$9!#$I$A$i$b0l$D$N0z?t$r$C$F(B adjust $B4X?t$N:G8e$K$O!"%P%C%U%!$N@hF,$X$N0\F0$@$1$r9T$J$&4X(B $B?t$r@_$1$F$*$/$N$,IaDL$G$9!#(B $B$3$l$i$N4X?t$r=q$/$K$O!"$"$kDxEY(B Lookup $B$NFbIt9=B$$K$D$$$F$NCN<1$,I,MW(B $B$K$J$k$+$b$7$l$^$;$s!#(BLookup $B$,MQ$$$k%G!<%?%?%$%W$K$D$$$F$O!"%U%!%$%k(B `lookup-types.el' $B$r;2>H$7$F2<$5$$!#I8=`$N(B arrange $B4X?t!"(Badjust $B4X?t$K(B $B$D$$$F$O!"%U%!%$%k(B `lookup-vse.el' $B$r;2>H$7$F2<$5$$!#(B  File: lookup.info, Node: Supplement Package, Next: Customize Example, Prev: Customize Contents, Up: Customization $BJd=u%Q%C%1!<%8$r:n$k(B ==================== $BA0=R$N(B arrange $B4X?t$d30;zCV$-49$(%F!<%V%k$J$I$O!"8D?M$N9%$_$r1[$($FB>(B $B?M$N$?$a$K$bM-MQ$J>l9g$,B?$$$N$G!"$=$l$i$N@_Dj$r$^$H$a$FJd=u%Q%C%1!<%8(B $B$r:n$k$3$H$,=PMh$^$9!#(B(*Note Setup Package::) $BJd=u%Q%C%1!<%8$H$OH$7$F2<$5$$!#(B $B%Q%C%1!<%8$r$"$kDxEY<+F0E*!&BPOCE*$K@8@.$9$k%D!<%k$b0JA0$O$"$j$^$7$?$,!"(B $B:#$G$OF0$$$F$$$^$;$s!#=q$-D>$9$3$H$K6=L#$N$"$kJ}$$$i$7$^$7$?$i!"%a!<%j(B $B%s%0%j%9%H$NJ}$^$GO"Mm2<$5$$!#(B(*Note How To Get::) $B$b$7;THN$N<-=qMQ$NJd=u%Q%C%1!<%8$r:n$i$l$^$7$?$i!"%a!<%j%s%0%j%9%H$KO"(B $BMm2<$5$$!#(BLookup $B$N%[!<%`%Z!<%8$KEPO?$5$;$FD:$-$^$9!#(B  File: lookup.info, Node: Customize Example, Prev: Supplement Package, Up: Customization $B>\:Y$J@_DjNc(B ============ [ $B$3$N@a$O$^$@@0HwESCf$G$9(B ]  File: lookup.info, Node: Dictionary Types, Next: Search Agents, Prev: Customization, Up: Top $B<-=q%U%)!<%^%C%H0lMw(B ******************** * Menu: * Setup SDIC:: SDIC $B%U%)!<%^%C%H(B * Setup dictd:: dictd $B%U%)!<%^%C%H(B * Setup cookie:: cookie $B%U%!%$%k(B * Setup CD-ROM:: $B3FFoofooThis is first entry. Bar BazbarbazThis is second entry. ... `' ... `' $B$H$J$C$F$$$kItJ,$,%(%s%H%j$N8+=P$7!"(B`' ... `' $B$H$J$C$F$$$kItJ,$,8!:w$KMQ$$$i$l$k%-!<%o!<%I!":G8e$NItJ,$,@bL@FbMF$G$9!#(B $B8!:w$Oword dict.sdic' $B40A40lCW8!:w(B `grep word dict.sdic' $BA0J}0lCW8!:w(B `grep word dict.sdic' $B8eJ}0lCW8!:w(B `grep word dict.sdic' $BA4J88!:w(B $B$h$j>\:Y$J@bL@$O!"(BSDIC $B$KImB0$N;EMM=q$r;2>H$7$F2<$5$$!#(B SDIC $B<-=q$NMxMQ(B --------------- $B<-=q%U%!%$%k$rE,Ev$J%G%#%l%/%H%j$KMQ0U$7!"(Bndic $B%(!<%8%'%s%H$r@_Dj$7$F(B $B2<$5$$!#(B --------- Footnotes --------- (1) `http://pine.kuee.kyoto-u.ac.jp/member/tsuchiya/sdic/'  File: lookup.info, Node: Setup dictd, Next: Setup cookie, Prev: Setup SDIC, Up: Dictionary Types dictd $B%U%)!<%^%C%H(B ================== "dictd $B%U%)!<%^%C%H(B" $B$H$O!"(BDICT $B%W%m%8%'%/%H(B (1) $B$GG[I[$5$l$F$$$k<-=q(B $B%5!<%P(B `dictd' $B$GMQ$$$i$l$F$$$kHf3SE*C1=c$J<-=q7A<0$G$9!#(BLookup $B$G$O(B ndic $B5Z$S(B ndict $B%(!<%8%'%s%H$K$h$j8!:w$,9T$J$($^$9!#(B(*Note ndic::, *Note ndict::) dictd $B%U%)!<%^%C%H$NFCD'(B ------------------------ * $B%$%s%G%C%/%9%U%!%$%k$HK\J8%U%!%$%k$,J,N%!#(B * $B%W%l!<%s%F%-%9%H$K$h$k<-=qFbMF$N5-=R!#(B * $B$$$/$D$+$N%U%j!<<-=q$,F~$l$l$N%(%s%H%j$N>pJs$,JB$Y$i$l$^$9!#=g$K!":G=i$N%3%i%`(B $B$,8+=P$78l!"FsHVL\$,K\J8$N3+;O0LCV!";0HVL\$,K\J8$ND9$5$rI=$o$7$^$9!#3F(B $B%3%i%`$O%?%V$G6h@Z$i$l!"FsHVL\!";0HVL\$NCM$O(B base64 $B$G%(%s%3!<%I$5$l$F(B $B$$$^$9!#(B $B8!:w;~$O$^$:%$%s%G%C%/%9%U%!%$%k$+$iL\E*$N8+=P$78l$,8+IU$1=P$5$l!"$=$&(B $B$7$FF@$i$l$?>pJs$+$i8zN(E*$KK\J8$,\:Y$J@bL@$O!"(B`dictd' $B$N%^%K%e%"%k%Z!<%8$r;2>H$7$F2<$5$$!#(B dictd $B<-=q$NMxMQ(B ---------------- dictd $B<-=q$O!"(Bndic $B5Z$S(B ndict $B%(!<%8%'%s%H$+$i8!:w$9$k$3$H$,2DG=$G$9!#(B ndict $B%(!<%8%'%s%H$rMQ$$$kJ}$,$h$j9bB.$J8!:w$,2DG=$G$9$,!"%5!<%P$N@_Dj(B $B$,I,MW$J$V$s$$$/$i$+H$7$F2<$5$$!#(B ndic $B%(!<%8%'%s%H$G$"$l$P@_Dj$O:G>.8B$G:Q$_$^$9$,!"(Bndic $B$O:G=i$K%$%s%G%C(B $B%/%9$rA4$FFI$_9~$`$?$a!"Hf3SE*B?$/$N%a%b%j$rI,MW$H$9$k$3$H$KCm0U$7$F2<(B $B$5$$!#>/$J$/$H$bMxMQ$9$k%$%s%G%C%/%9%U%!%$%k$h$j$b==J,Bg$-$J%a%b%j$NM>(B $BM5$N$"$k$3$H$,I,MW$G$9!#(B ndic $B%(!<%8%'%s%H$rMQ$$$k>l9g!"%$%s%G%C%/%9%U%!%$%k$HK\J8%U%!%$%k$NN>(B $BJ}$r$=$m$($F!"E,Ev$J%G%#%l%/%H%j$KCV$$$F2<$5$$!#K\J8%U%!%$%k$O(B `dictd' $BG[I[J*$K4^$^$l$k(B `dictzip' $B%3%^%s%I$G05=L$7$F$*$$$F$b9=$$$^$;$s!#$3$l(B $B$OO$O$^$@@0HwESCf$G$9(B ]  File: lookup.info, Node: Setup NDTP, Next: Setup DICT, Prev: Setup CD-ROM, Up: Dictionary Types NDTP $B<-=q%5!<%P(B =============== "NDTP" $B$H$O!"%M%C%H%o!<%/$G(B CD-ROM $B<-=q$r6&M-$9$k$?$a$K:n$i$l$?8!:wMQ(B $B%W%m%H%3%k$G$9!#(BLookup $B$G$O(B ndtp $B%(!<%8%'%s%H$K$h$j(B NDTP $B%5!<%P$H$d$j(B $B$H$j$9$k$3$H$,=PMh$^$9!#(B(*Note ndtp::) NDTP $B$NFCD'(B ----------- * $BF|K\$N;THN(B CD-ROM $B<-=q$K:,:9$7$?FbMF!#(B * $BNI$/$b0-$/$b!"$$$$$+$2$s$J@_7W!#(B * $B2?EY$+3HD%$5$l!":#$G$O30;z>pJs$b07$($k$h$&$K$J$C$F$$$k!#(B NDTP $B$N35MW(B ----------- NDTP (Network Dictionary Transport Protocol) $B$O(B dserver (1) $B$H$$$&8!:w(B $B%=%U%H%&%'%"$NCf$GFH<+$KDj5A$5$l$?$b$N$G!"4J7i$J%3%^%s%IBN7O$r;}$D%F%-(B $B%9%H%Y!<%9$N%W%m%H%3%k$G$9!# Akei S> $A C> t S> 1 $B9q8l<-E5(B KOKUGO 0 0 900 S> 2 $B1QOB<-E5(B EIWA 0 0 900 S> 3 $BOB1Q<-E5(B WAEI 0 0 900 S> $* C> L1 S> $* C> Patest S> $0 S> $B%F%9%H(B S> 668c:73e S> $$ C> S668c:73e S> $1 S> $B%F%9%H(B S> [$BL>(B] 1. $B;n83(B.... S> $$ C> Q Connection closed by foreign host. % NDTP $B%5!<%P$N@_Dj(B ----------------- [ $B$3$N@a$O$^$@@0HwESCf$G$9(B ] --------- Footnotes --------- (1) ftp://ftp.pu-toyama.ac.jp/pub/misc/  File: lookup.info, Node: Setup DICT, Prev: Setup NDTP, Up: Dictionary Types DICT $B<-=q%5!<%P(B =============== "DICT" $B$H$O!"(BRFC 2229 $B$H$7$FDj5A$5$l$F$$$k<-=q8!:wMQ%W%m%H%3%k$G$9!#(B Lookup $B$G$O(B ndict $B%(!<%8%'%s%H$K$h$j(B DICT $B%5!<%P$H$d$j$H$j$9$k$3$H$,=P(B $BMh$^$9!#(B(*Note ndict::) DICT $B$NFCD'(B ----------- * RFC $B$H$7$FL@3N$KDj5A!#(B * $BJ8;z%3!<%I$O(B UTF-8(Unicode)$B!#(B DICT $B$N35MW(B ----------- % telnet localhost dict Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. S> 220 localhost dictd 1.4.8/rf <27831.860032493@localhost> C> CLIENT ndict S> 250 ok C> SHOW DB S> 110 3 databases present S> jargon "Jargon File (4.0.0/24 July 1996)" S> foldoc "The Free On-line Dictionary of Computing (15Feb98)" S> vera "Virtual Entity of Relevant Acronyms (1.4a)" S> . S> 250 ok C> MATCH * exact "test" S> 152 1 matches found S> jargon "test" S> . S> 250 ok [d/m/c = 0/1/27; 0.000r 0.000u 0.000s] C> DEFINE jargon "test" S> 150 1 definitions retrieved S> 151 "test" jargon "Jargon File (4.0.0/24 July 1996)" S> test /n./ 1. Real users bashing on a prototype long enough to S> get thoroughly acquainted with it, with careful monitoring and S> followup of the results. 2. Some bored random user trying a couple S> of the simpler features with a developer looking over his or her S> shoulder, ready to pounce on mistakes. Judging by the quality of S> most software, the second definition is far more prevalent. See S> also {demo}. S> S> S> . S> 250 ok [d/m/c = 1/0/11; 0.033r 0.000u 0.009s] C> QUIT S> 221 bye [d/m/c = 0/0/0; 179.328r 0.000u 0.011s] Connection closed by foreign host. % DICT $B%5!<%P$N@_Dj(B ----------------- [ $B$3$N@a$O$^$@@0HwESCf$G$9(B ]  File: lookup.info, Node: Search Agents, Next: Mode Details, Prev: Dictionary Types, Up: Top $B8!:w%(!<%8%'%s%H0lMw(B ******************** $B$3$N>O$G$O!"(BLookup $B$GMxMQ$G$-$k8!:w%(!<%8%'%s%H$K$D$$$F!"$=$l$rMxMQ$9(B $B$k$?$a$K9T$J$o$J$1$l$P$J$i$J$$=`Hw$d@_Dj9`L\$K$D$$$F>\:Y$K@bL@$7$^$9!#(B * Menu: * ndic:: $B%U%j!<<-=q$+$i8!:w$9$k(B * ndeb:: CD-ROM $B<-=q$+$i8!:w$9$k(B * ndtp:: NDTP $B%5!<%P$+$i8!:w$9$k(B * ndict:: DICT $B%5!<%P$+$i8!:w$9$k(B * ndsrd:: $B%i%s%@%`%O%&%91Q8l<-E5(B Windows $BHG$r8!:w$9$k(B * ndkks:: $BF|K\8l$NFI$_$rD4$Y$k(B * ndspell:: $B%9%Z%k%A%'%C%/$H%9%Z%k8!:w(B * ndcookie:: cookie $B%U%!%$%k$+$i8!:w$9$k(B  File: lookup.info, Node: ndic, Next: ndeb, Prev: Search Agents, Up: Search Agents ndic ==== `ndic' $B$O!"$KMQ0U$9$Y$-$b$N$b$J$$$N(B $B$G!"$H$j$"$($:(B Lookup $B$r;n$7$F$_$k$K$O$A$g$&$I$$$$$G$7$g$&!#(B dictd $B<-=q$O(B ndict $B%(!<%8%'%s%H$G$bMxMQ2DG=$G$9!#@-G=$r=E;k$9$k>l9g$K(B $B$O!"$=$A$i$r;2>H$7$F$_$F2<$5$$!#(B(*Note ndict::) * Menu: * ndic prepare:: ndic $B$N=`Hw(B * ndic setup:: ndic $B$N@_Dj(B * ndic dictionary:: ndic $B$N<-=q(B * ndic customize:: ndic $B$N%+%9%?%^%$%:(B  File: lookup.info, Node: ndic prepare, Next: ndic setup, Prev: ndic, Up: ndic ndic $B$N=`Hw(B ----------- ndic $B$G$O8=:_!"(Bdictd-1.4.x $BMQ$KMQ0U$5$l$?<-=q(B $B$H(B SDIC $B<-=q$+$i8!:w$r9T(B $B$J$&$3$H$,2DG=$H$J$C$F$$$^$9!#$$$/$D$+$N%U%j!<$J<-=q$,!"(BLookup $B$N%[!<(B $B%`%Z!<%8$+$iF~$NFC(B $BJL$J@_Dj$O$"$j$^$;$s!#(B $BNc$($P$,<-=qL>$H$J$j$^$9!#<-=q$N%?%$%H%k$O<+F0E*$KG'(B $B<1$5$l$^$9!#(B $BA4J88!:w$r=|$/!"A4$F$N8!:wJ}<0$,M-8z$G$9!#(B(*Note Search Methods::)  File: lookup.info, Node: ndic customize, Prev: ndic dictionary, Up: ndic ndic $B$N%+%9%?%^%$%:(B ------------------- $B<-=q$,(B dictzip $B%3%^%s%I$K$h$j05=L$7$F$"$k>l9g!"$=$NE83+$K(B dictzip $B$r8F(B $B$S=P$7$^$9!#JQ?t(B `ndic-dictzip-program' $B$K$h$j!"$=$N%W%m%0%i%`L>$r;XDj(B $B$7$^$9!#%G%U%)%k%H$G$O(B "dictzip" $B$K$J$C$F$$$^$9!#(B  File: lookup.info, Node: ndeb, Next: ndtp, Prev: ndic, Up: Search Agents ndeb ==== `ndeb' $B$O!"EE;R%V%C%/$d(B EPWING $B5,Ls$K=`5r$7$?(B CD-ROM $B=q@R$N8D?MMxMQ$K(B $B8~$$$?8!:w%(!<%8%'%s%H$G$9!#(Beblook $B$H$$$&30It%3%^%s%I$rMQ$$$k$3$H$G!"(B $BFCJL$J@_Dj$NI,MW$J$7$K$C$?(B CD-ROM $B<-=q$r%"%/%;%9$9$k$?$a$N4J0W8!:w%3%^%s%I(B $B$G$9!#(B ndeb $B$O30It%3%^%s%I$H$7$F(B eblook $B$rMxMQ$7$F$$$^$9!#(Beblook $B$O!"EE;R%V%C(B $B%/$d(B EPWING $B$H$$$C$?5,Ls$K=>$C$?(B CD-ROM $B=q@R$r%"%/%;%9$9$k$?$a$N%D!<%k(B $B$G$9!#(B CD-ROM $B$N=`Hw(B ............. $BMxMQ=PMh$k(B CD-ROM $B$O!"0lHL$N=qE9$G9XF~$9$k$3$H$,=PMh$^$9!#BgBN!"?t@i1_(B $B$+$i?tK|1_DxEY$GGd$C$F$$$^$9!#$3$l$+$i9XF~$9$k>l9g$K$O!"$=$l$,(B EPWING $B$H$$$&5,3J$K=>$C$F$$$k$3$H$r3NG'$7$F2<$5$$!#%Q%C%1!<%8$NN"$K(B EPWING $B$H(B $B$$$&%^!<%/$,IU$$$F$$$k$O$:$G$9!#(B CD-ROM $B$OE,Ev$J%G%#%l%/%H%j$K%^%&%s%H$7$F$*$$$F2<$5$$!#%G%#%9%/$KM>M5(B $B$,$"$k>l9g$K$O!"%O!<%I%G%#%9%/$K%3%T!<$7$F$*$$$F$b9=$$$^$;$s!#$?$@$7!"(B $B%3%T!<$,5v$5$l$k$+$I$&$+$OCx:n.$5$l$^(B $B$9!#(B eblook ...... eblook $B$OpJs$,F@$i$l$^$9!#(B eblook `http://openlab.ring.gr.jp/edict/eblook/' $B%$%s%9%H!<%k$OE,Ev$J%G%#%l%/%H%j$K9T$J$C$F2<$5$$!#(B $B30;zI=<($N=`Hw(B .............. Lookup $B$O(B CD-ROM $B=q@R$K4^$^$l$k30;z$NI=<($r%5%]!<%H$7$F$$$^$9!#30;zI=(B $B<($r9T$J$&$?$a$N@_Dj$K$D$$$F$O!"(B*Note Setup Gaiji:: $B$r;2>H$7$F2<$5$$!#(B $B30;z$rI=<($7$?$/$J$$!"$b$7$/$O$=$l$,IT2DG=$J>l9g$K$O!"(BAppendix $B$H8F$P(B $B$l$k30;z$NCV$-49$(%F!<%V%k$rMxMQ$9$k$3$H$G!"30;z$rDL>o$NJ8;zNs$GCV$-49(B $B$($k$3$H$b2DG=$G$9!#;THN$N<-=q$KBP1~$7$?$$$/$D$+$N(B Appendix $B$,!"(BEB $B%i(B $B%$%V%i%j$N(B Web $B%Z!<%8$G8x3+$5$l$F$$$^$9!#(B Appendix `http://www.sra.co.jp/people/m-kasahr/eb/' $B$"$k$$$OMxMQ$9$k<-=q$NJd=u%Q%C%1!<%8$,$"$k>l9g$K$O!"$=$3$GFH<+$K30;z$N(B $BCV$-49$(%F!<%V%k$,MQ0U$5$l$F$$$k>l9g$,$"$j$^$9!#L\E*$NJd=u%Q%C%1!<%8$,(B $B$J$$$+3NG'$7$F$_$F2<$5$$!#(B(*Note Setup Package::)  File: lookup.info, Node: ndeb setup, Next: ndeb dictionary, Prev: ndeb prepare, Up: ndeb ndeb $B$N@_Dj(B ----------- ndeb $B$O!"JN,$5$l$?>l9g$K$O!"<-=q%*%W%7%g%s(B `:gaiji-table' $B$K=>$C$F30;z$,CV$-49$($i$l$^$9!#(B(*Note Gaiji Table::) `:coding' eblook $B$KBP$9$k(B process-coding-system$B!#%G%U%)%k%H$O(B `euc-jp'$B!#(B $BH!#(B $BNc$($PA0$H%?%$%H%k(B $B$O(Beblook $B$+$iM?$($i$l$^$9!#(B $B8!:wJ}<0$O!V40A40lCW8!:w!W!VA0J}0lCW8!:w!W!V8eJ}0lCW8!:w!W$G$9!#(B(*Note Search Methods::) ndeb $B$O%a%K%e!<%3%^%s%I$H%3%T!<%i%$%H%3%^%s%I$KBP1~$7$F$$$^$9!#(B(*Note Specify Dictionary::)  File: lookup.info, Node: ndeb customize, Prev: ndeb dictionary, Up: ndeb ndeb $B$N%+%9%?%^%$%:(B ------------------- $BJQ?t(B `ndeb-program-name' $B$K$h$j!"(Beblook $B$N%3%^%s%IL>$r;XDj$7$^$9!#%G%U%)(B $B%k%H$G$O(B "eblook" $B$H$J$C$F$$$^$9!#(B $BJQ?t(B `ndeb-prompt-string' $B$K$h$j!"(Beblook $B$N%W%m%s%W%H$r;XDj$7$^$9!#%G(B $B%U%)%k%H$G$O(B "eblook> " $B$H$J$C$F$$$^$9!#(B  File: lookup.info, Node: ndtp, Next: ndict, Prev: ndeb, Up: Search Agents ndtp ==== `ndtp' $B$O!"l9g$K$O!"$h$jl9g$K$O!"<+J,$G=`Hw$9$kI,MW$,$"$j$^$9!#(B NDTP server ........... NDTP $B%5!<%P$H$7$F!"(Bdserver $B$H(B NDTPD $B$NFs$D$,F~$l$N%W%m%0%i%`$KImB0$N%I%-%e%a%s%H$r;2>H(B $B$7$F2<$5$$!#(B $B30;zI=<($N=`Hw(B .............. NDTP $B%5!<%P$H$7$F(B NDTPD $B%P!<%8%g%s(B 2.0 $B0J9_$rMQ$$$k$H!"<-=q$N30;z>pJs(B $B$r07$($k$h$&$K$J$j$^$9!#30;zI=<($N$?$a$N@_Dj$K$D$$$F$O!"(B*Note Setup Gaiji:: $B$r;2>H$7$F2<$5$$!#(B  File: lookup.info, Node: ndtp setup, Next: ndtp dictionary, Prev: ndtp prepare, Up: ndtp ndtp $B$N@_Dj(B ----------- ndtp $B$O!"$r;XDj$7$^$9!#(B $B!#(B `:port' NDTP $B$N%]!<%HHV9f!#%5!<%S%9L>$H%]!<%HHV9f$NN>J}$r>JN,$7$?>l9g$O!"(B $B%5!<%S%9L>$H$7$F(B "ndtp" $B$,MxMQ$5$l$^$9!#(B `:account' $B%5!<%P$X$N%"%+%&%s%H!#$3$l$O%m%0$K;D$k$H$$$&0J>e$N0UL#$O$J$$!#%G(B $B%U%)%k%H$O(B "@")$B!#(B `:coding' $B%5!<%P$KBP$9$k(B process-coding-system$B!#%G%U%)%k%H$O(B `euc-jp'$B!#(B $BNc$($PA0$H%?%$%H%k$O%5!<(B $B%P$+$iM?$($i$l$^$9!#(B $B8!:wJ}<0$O!V40A40lCW8!:w!W!VA0J}0lCW8!:w!W!V8eJ}0lCW8!:w!W$G$9!#(B(*Note Search Methods::)  File: lookup.info, Node: ndict, Next: ndsrd, Prev: ndtp, Up: Search Agents ndict ===== `ndict' $B$O!"H$7$F$_$F2<$5$$!#(B(*Note ndic::) * Menu: * ndict prepare:: ndict $B$N=`Hw(B * ndict setup:: ndict $B$N@_Dj(B * ndict dictionary:: ndict $B$N<-=q(B  File: lookup.info, Node: ndict prepare, Next: ndict setup, Prev: ndict, Up: ndict ndict $B$N=`Hw(B ------------ ndict $B$O(B DICT $B%W%m%H%3%k$KBP1~$7$?<-=q%5!<%P$K%"%/%;%9$7$^$9!#%5!<%P$K(B $B@\B3$G$-$k4D6-$G$"$l$P!"FCJL$J=`Hw$O2?$bI,MW$"$j$^$;$s!#<+J,$G%5!<%P$r(B $BF3F~$9$k>l9g$K$O!"(BDICT $B%W%m%8%'%/%H$+$i(B dictd $B$,F~$C$FE,@Z$K<-=q!"5Z$S%5!<%P$rF3F~$7$F2<$5$$!#(B dictd $B$GMxMQ$G$-$k$$$/$D$+$N<-=q$O!">e5-%Z!<%80J30$K$b(B Lookup $B$N%[!<%`(B $B%Z!<%8$+$i$bF~$r;XDj$7$^$9!#(B $B!#(B `:port' DICT $B$N%]!<%HHV9f!#%5!<%S%9L>$H%]!<%HHV9f$NN>J}$r>JN,$7$?>l9g$O!"(B $B%5!<%S%9L>$H$7$FJQ?t(B `ndict-service-name' $B$NCM(B ("dict") $B$,MxMQ$5(B $B$l$^$9!#(B `:coding' $B%5!<%P$KBP$9$k(B process-coding-system$B!#%G%U%)%k%H$O(B `euc-jp-dos'$B!#(B `:auth' $B%5!<%P$X$N(B authentication ($BG'>Z(B) $B$r;XDj$9$k!#%f!<%6L>$H%Q%9%o!<%I(B $B$NAH(B (cons) $B$K$h$C$FI=$o$9!#(B `:methods' $B%5!<%P$,BP1~$7$F$$$k8!:wJ}<0$N%j%9%H$r;XDj$9$k!#%G%U%)%k%H$G$O!"(B $B%5!<%P$N%=%U%H%&%'%"$r8+$F8!:wJ}<0$rM=B,$7$F$$$k!#$H$$$&$N$b!"(B DICT $B%W%m%H%3%k$G$O8!:wJ}<0$O%5!<%P$,<+M3$K@_$1$k$3$H$,=PMh$k$N$G!"(B $B%W%m%0%i%`$+$i$O40A4$J<+F0H=Dj$,=PMh$J$$!#=>$C$F%f!<%6$,BP1~$r;X(B $BDj$9$kI,MW$,$"$k!#(Bdictd-1.4.x $B$rIaDL$KMQ$$$k>l9g$K$O!"$3$l$r;XDj(B $B$9$kI,MW$O$J$$!#H!#(B `:method-table' Lookup $B$N8!:wJ}<0$H%5!<%P$N(B strategy $B$H$NBP1~4X78$r(B alist $B$G;XDj(B $B$9$k!#Nc$($P%5!<%P$,(B dictd-1.4.x $B$G$"$k>l9g!"$3$l$O<+F0E*$K(B ((keyword . "exact") (prefix . "prefix") (suffix . "suffix") (substring . "substring") (exact . "exact") (regexp . "re")) $B$N$h$&$K@_Dj$5$l$k!#>e$N(B `:methods' $B$bF1;~$K;XDj$9$kI,MW$,$"$k!#(B $BNc$($PA0$H%?%$%H%k$O%5!<(B $B%P$+$iM?$($i$l$^$9!#(B($B$7$+$7!"%5!<%P$+$iM?$($i$l$k%?%$%H%k$O$+$J$jD9$$(B $B>l9g$,$"$k$N$G!"<+J,$G:F@_Dj$7$?J}$,$h$$$+$b$7$l$^$;$s(B(*Note Dictionary Options::)) $B8!:wJ}<0$OAjl9g$K$O!"!VA4J88!:w!W0J30$NA4$F$N8!:w$,M-8z$H$J$j$^$9!#$G$J$1(B $B$l$P!"!V%-!<%o!<%I8!:w!W$H!VA0J}0lCW8!:w!W$N$_M-8z$H$J$j$^$9!#(B(*Note Search Methods::)  File: lookup.info, Node: ndsrd, Next: ndkks, Prev: ndict, Up: Search Agents ndsrd ===== `ndsrd' $B$O!"%i%s%@%`%O%&%91Q8l<-E5(B Windows $BHG$r8!:w$9$k8!:w%(!<%8%'%s(B $B%H$G$9!#30It%3%^%s%I$H$7$FB@ED=c$5$s:n$N(B CSRD $B$rMQ$$$^$9!#(B * Menu: * ndsrd prepare:: ndsrd $B$N=`Hw(B * ndsrd setup:: ndsrd $B$N@_Dj(B * ndsrd dictionary:: ndsrd $B$N<-=q(B * ndsrd customize:: ndsrd $B$N%+%9%?%^%$%:(B  File: lookup.info, Node: ndsrd prepare, Next: ndsrd setup, Prev: ndsrd, Up: ndsrd ndsrd $B$N=`Hw(B ------------ ndsrd $B$O%P!<%8%g%s(B 1.0 $B0J9_$N(B CSRD $B$KBP1~$7$F$$$^$9!#(BCSRD $B$O$C$F%$%s%9%H!<%k$r9T$J$C$F$/$@$5$$!#(B  File: lookup.info, Node: ndsrd setup, Next: ndsrd dictionary, Prev: ndsrd prepare, Up: ndsrd ndsrd $B$N@_Dj(B ------------ ndsrd $B$O!"$r;XDj$7$^$9!#%G%U%)(B $B%k%H$G$O(B "csrd" $B$H$J$C$F$$$^$9!#(B  File: lookup.info, Node: ndkks, Next: ndspell, Prev: ndsrd, Up: Search Agents ndkks ===== `ndkks' $B$O!"8!:w$G$O$J$/F|K\8l$NFI$_$rD4$Y$k$?$a$N8!:w%(!<%8%'%s%H$G$9!#(B $B4A;z$N4^$^$l$k8!:w8l$r;XDj$7$?>l9g!"4A;z$+$JJQ49%W%m%0%i%`(B KAKASI $B$rMQ(B $B$$$F$=$NFI$_$rD4$Y$FI=<($7$^$9!#(B * Menu: * ndkks prepare:: ndkks $B$N=`Hw(B * ndkks setup:: ndkks $B$N@_Dj(B * ndkks dictionary:: ndkks $B$N<-=q(B * ndkks customize:: ndkks $B$N%+%9%?%^%$%:(B  File: lookup.info, Node: ndkks prepare, Next: ndkks setup, Prev: ndkks, Up: ndkks ndkks $B$N=`Hw(B ------------ KAKASI $B$O4A;z$+$JJQ49%W%m%0%i%`$G!">N$GF~$NFCJL$J@_Dj$O$"$j$^$;$s!#(B  File: lookup.info, Node: ndkks dictionary, Next: ndkks customize, Prev: ndkks setup, Up: ndkks ndkks $B$N<-=q(B ------------ ndkks $B<+BN$,0l$D$N<-=q$H$J$j$^$9!#<-=qL>$OJQ?t(B `ndkks-program-name' $B$G(B $B;XDj$5$l$k(B KAKASI $B%W%m%0%i%`$NL>A0$G$9!#%?%$%H%k$OJQ?t(B `ndkks-dictionary-title' $B$K$h$jM?$($i$l$^$9!#(B $B%-!<%o!<%I8!:w$K$*$$$F!"4A;z$N4^$^$l$k8!:w8l$,;XDj$5$l$?$H$-=PNO$5$l$^(B $B$9!#(B  File: lookup.info, Node: ndkks customize, Prev: ndkks dictionary, Up: ndkks ndkks $B$N%+%9%?%^%$%:(B -------------------- $BJQ?t(B `ndkks-program-name' $B$K$h$j!"(BKAKASI $B$N%3%^%s%IL>$r;XDj$7$^$9!#%G(B $B%U%)%k%H$G$O(B "kakasi" $B$H$J$C$F$$$^$9!#(B $BJQ?t(B `ndkks-dictionary-title' $B$K$h$j!"(Bndkks $B<-=q$N%?%$%H%k$r;XDj$7$^$9!#(B $B%G%U%)%k%H$G$O(B "$B4A;z$+$J<-E5(B" $B$H$J$C$F$$$^$9!#(B $BJQ?t(B `ndkks-content-format' $B$K$h$j!"=PNOFbMF$N%U%)!<%^%C%H$r%j%9%H$G;X(B $BDj$7$^$9!#%j%9%H$N3FMWAG$K$O$N%(!<%8%'%s%H$GFH<+$K%9%Z%k%A%'%C%/$r9T$J$o$:$H$b!"(Bndspell $B$,$=(B $B$l$r=hM}$7$F<+F0E*$K:F8!:w$r9T$J$C$F$/$l$^$9!#$^$?!"%9%Z%k$N8!:w$b9T$J(B $B$($^$9!#(B * Menu: * ndspell prepare:: ndspell $B$N=`Hw(B * ndspell setup:: ndspell $B$N@_Dj(B * ndspell dictionary:: ndspell $B$N<-=q(B * ndspell customize:: ndspell $B$N%+%9%?%^%$%:(B  File: lookup.info, Node: ndspell prepare, Next: ndspell setup, Prev: ndspell, Up: ndspell ndspell $B$N=`Hw(B -------------- ndspell $B$O30It%3%^%s%I$H$7$F(B Ispell $B$H(B grep $B$rMxMQ$7$F$$$^$9!#(BIspell $B$OBPOC7?$N%9%Z%k%A%'%C%/%3%^%s%I$G!"(Bgrep $B$O8@$o$:$HCN$l$?(B UNIX $B%D!<%k(B $B$G$9!#$I$A$i$b(B GNU $B$N(B FTP $B%5%$%H$J$I$+$iF~$NFCJL$J@_Dj$O$"$j$^$;$s!#(B  File: lookup.info, Node: ndspell dictionary, Next: ndspell customize, Prev: ndspell setup, Up: ndspell ndspell $B$N<-=q(B -------------- ndspell $B<+BN$,0l$D$N<-=q$H$J$j$^$9!#<-=qL>$OJQ?t(B `ndspell-ispell-program' $B$G;XDj$5$l$k(B Ispell $B%3%^%s%I$NL>A0$G$9!#%?%$(B $B%H%k$OJQ?t(B `ndspell-dictionary-title' $B$K$h$jM?$($i$l$^$9!#(B $Bl9g$K$O8uJd$r%(%s%H%j$H$7$F(B $B@8@.!#(B `$BA0J}0lCW8!:w(B' `$B8eJ}0lCW8!:w(B' `$BItJ,0lCW8!:w(B' `$B@55,I=8=8!:w(B' $B%Q%?!<%s$K%^%C%A$9$kC18l$r8!:w$7!"%(%s%H%j$r@8@.!#(B $B$I$N>l9g$b!"@8@.$5$l$?%(%s%H%j$OIaDL$K(B Entry $B%P%C%U%!$K=PNO$5$l!"$=$l(B $B$rA*Br$7$FFbMF$rI=<($7$h$&$H$7$?CJ3,$G:F8!:w$,9T$J$o$l$^$9!#$r;XDj$7$^$9!#(B $B%G%U%)%k%H$G$O(B "ispell" $B$H$J$C$F$$$^$9!#(B $BJQ?t(B `ndspell-grep-program' $B$K$h$j!"(Bgrep $B$N%3%^%s%IL>$r;XDj$7$^$9!#%G(B $B%U%)%k%H$G$O(B "grep" $B$H$J$C$F$$$^$9!#(B $BJQ?t(B `ndspell-words-dictionary' $B$K$h$j!"%9%Z%k$r8!:w$9$k:]$NC18l<-=q$r(B $B;XDj$7$^$9!#%G%U%)%k%H$G$O(B `/usr/share/dict/words' $B$H$J$C$F$$$^$9!#(B $BJQ?t(B `ndspell-dictionary-title' $B$K$h$j!"(Bndspell $B<-=q$N%?%$%H%k$r;XDj$7(B $B$^$9!#%G%U%)%k%H$G$O(B "Spell Checker" $B$H$J$C$F$$$^$9!#(B $BJQ?t(B `ndspell-search-dictionaries' $B$K$h$j!":F8!:w$NBP>]$H$9$k<-=q$r$=(B $B$N<-=q(B ID $B$N%j%9%H$H$7$F;XDj$7$^$9!#%G%U%)%k%H$G$O(B `t' $B$H$J$C$F$*$j!"(B $B$3$N>l9g!"A*Br$5$l$F$$$kA4$F$N<-=q$+$i:F8!:w$,9T$J$o$l$^$9!#(B  File: lookup.info, Node: ndcookie, Prev: ndspell, Up: Search Agents ndcookie ======== `ndcookie' $B$O!"(Bcookie $B%U%!%$%k(B ($B0zMQ=8(B) $B$+$i8!:w$r9T$J$&$?$a$N8!:w%(!<(B $B%8%'%s%H$G$9!#$*$^$1$_$?$$$J$b$s$G$9!#(B * Menu: * ndcookie prepare:: ndcookie $B$N=`Hw(B * ndcookie setup:: ndcookie $B$N@_Dj(B * ndcookie dictionary:: ndcookie $B$N<-=q(B  File: lookup.info, Node: ndcookie prepare, Next: ndcookie setup, Prev: ndcookie, Up: ndcookie ndcookie $B$N=`Hw(B --------------- $BMxMQ=PMh$k%U%!%$%k$NNc$H$7$F$O!"(BEmacs $B$KImB0$N(B Zippy $B%U%!%$%k$,$"$j$^(B $B$9!#(B Zippy `$(EMACS)/etc/yow.lines'  File: lookup.info, Node: ndcookie setup, Next: ndcookie dictionary, Prev: ndcookie prepare, Up: ndcookie ndcookie $B$N@_Dj(B --------------- ndcookie $B$O!"l9g!"JQ?t(B `data-directory' $B$+$i$NAjBP%Q%9$H$7$F07$o$l$^$9!#(B $BNc$($P$O%U%!%$%kL>$K0l(B $BCW$7$^$9!#%?%$%H%k$O@_Dj$5$l$^$;$s!#(B $BA4$F$N8!:wJ}<0$,M-8z$H$J$j$^$9!#(B(*Note Search Methods::)  File: lookup.info, Node: Mode Details, Next: How To Get, Prev: Search Agents, Up: Top $B3F%b!<%I$K$D$$$F$N>\:Y(B ********************** $B$3$N>O$G$O!"(BLookup $B$N3F%b!<%I$G$NA4$F$N@_Dj!&A`:n$K$D$$$F@bL@$7$^$9!#(B * Menu: * Select Mode:: Select $B%b!<%I(B * Entry Mode:: Entry $B%b!<%I(B * Content Mode:: Content $B%b!<%I(B  File: lookup.info, Node: Select Mode, Next: Entry Mode, Prev: Mode Details, Up: Mode Details Select $B%b!<%I(B ============= Select $B%b!<%I$G$O!"MxMQ2DG=$J<-=q$N0lMw$rI=<($7!"uBV$r@Z$jBX$($k$3$H$,=PMh$^$9!#$^$?!"$=$l$>$l$N<-=q$K8GM-$N>pJs$r(B $BF@$k$3$H$b=PMh$^$9!#(B * Menu: * Select Mode Details:: Select $B%b!<%I$N>\:Y(B * Select Mode Commands:: Select $B%b!<%I$N%3%^%s%I0lMw(B  File: lookup.info, Node: Select Mode Details, Next: Select Mode Commands, Prev: Select Mode, Up: Select Mode Select $B%b!<%I$N>\:Y(B ------------------- $B:G=i$K(B `M-x lookup' $B$r$l<-=q$NA*Br(B $B>uBV!"<-=q(B ID$B!"<-=q$N%?%$%H%k$,I=<($5$l$^$9!#(B*Note Quick Startup:: $B$r(B $B;2>H$7$F2<$5$$!#(B `Methods' $B$H$"$k%3%i%`$K$O!"<-=q$,BP1~$7$F$$$k8!:wJ}<0$,<($5$l$^$9!#$3(B $B$3$KJB$s$G$$$k5-9f$NNs$O!"0lJ8;z$,$=$l$>$l0l$D$N8!:wJ}<0$rI=$o$7$F$$$^(B $B$9!#3F5-9f$H8!:wJ}<0$NBP1~$K$D$$$F$O!"(B*Note Search Methods:: $B$r;2>H$7(B $B$F2<$5$$!#(B $B$3$N%P%C%U%!$G$N6qBNE*$JA`:n$K$D$$$F$O!"(B*Note Specify Dictionary:: $B$r(B $B;2>H$7$F2<$5$$!#(B  File: lookup.info, Node: Select Mode Commands, Prev: Select Mode Details, Up: Select Mode Select $B%b!<%I$N%3%^%s%I0lMw(B --------------------------- `SPC' `n' `M-x lookup-select-next-line' $BuBV$r%H%0%k$9$k!#(B `a' `M-x lookup-select-do-select-all' $BA4$F$N<-=q$rA*Br$9$k!#(B `RET' `M-x lookup-select-do-select-only' $B%]%$%s%H9T$N<-=q$N$_$rA*Br$9$k!#(B `d' `M-x lookup-select-mark-disable' $B%]%$%s%H9T$N<-=q$KL58z2=$N%^!<%/$rIU$1$k!#(B `x' `M-x lookup-select-do-execute' $BL58z2=$rl9g!"$=$l$r;2>H$9$k!#(B `M' `M-x lookup-select-copyright' $B<-=q$,%3%T!<%i%$%HI=<($KBP1~$7$F$$$k>l9g!"$=$l$r;2>H$9$k!#(B `f' `M-x lookup-select-search-pattern' $BA*Br$5$l$?<-=q$+$i8!:w$r9T$J$&!#(B `/' `M-x lookup-select-text-search' $B%]%$%s%H9T$N<-=q$+$iA4J88!:w$r9T$J$&!#(B `g' `M-x lookup-select-update' $B8=:_$N8!:w%b%8%e!<%k$r=i4|2=$7D>$9!#$?$@$7!"@_Dj%U%!%$%k$G@_Dj$r(B $BJQ99$7$?>l9g!"$=$l$rH?1G$5$;$k$K$O(B`M-x lookup-restart' $B$rMQ$$$kI,(B $BMW$,$"$k!#(B `q' `M-x lookup-quit' $B<-=qA*Br%P%C%U%!$rH4$1$k!#(B `Q' `M-x lookup-exit' Lookup $B$r=*N;$9$k!#(B `R' `M-x lookup-restart' Lookup $B$r:F5/F0$9$k!#(B `?' `M-x lookup-select-help' Select $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B  File: lookup.info, Node: Entry Mode, Next: Content Mode, Prev: Select Mode, Up: Mode Details Entry $B%b!<%I(B ============ Entry $B%b!<%I$G$O!"8!:w$N7k2L8+IU$+$C$?%(%s%H%j$r0lMw$7!"$=$l$i$r=g$K;2(B $B>H$7$F$$$/$3$H$,=PMh$^$9!#(B * Menu: * Entry Mode Details:: Entry $B%b!<%I$N>\:Y(B * Entry Mode Commands:: Entry $B%b!<%I$N%3%^%s%I0lMw(B  File: lookup.info, Node: Entry Mode Details, Next: Entry Mode Commands, Prev: Entry Mode, Up: Entry Mode Entry $B%b!<%I$N>\:Y(B ------------------ $B3FH$7$F2<$5$$!#8e$KB3$/%V%i%1%C%H(B ($B3Q3g8L(B) $B$H?t;z(B $B$O!"8+IU$+$C$?%(%s%H%j$N?t$G$9!#(B $B$3$N%P%C%U%!$G$N6qBNE*$JA`:n$K$D$$$F$O!"(B*Note See Result:: $B;2>H$7$F2<(B $B$5$$!#(B  File: lookup.info, Node: Entry Mode Commands, Prev: Entry Mode Details, Up: Entry Mode Entry $B%b!<%I$N%3%^%s%I0lMw(B -------------------------- `M-x lookup-entry-display-content' $B%]%$%s%H9T$N%(%s%H%j$NK\J8$rI=<($9$k!#(BOverview $B%b!<%I$K$J$C$F$$$k(B $B>l9g$K$O$=$l$r2r=|$7!"(BContent $B%P%C%U%!$r%*!<%W%s$9$k!#%(%s%H%j$,(B $B%j%U%!%l%s%9$N>l9g$K$O!"$=$l$r;2>H$9$k!#(B `mouse-2' ``lookup-entry-mouse-follow'' $B%^%&%9$G%/%j%C%/$7$?%(%s%H%j$NK\J8$rI=<($9$k!#(B `SPC' `M-x lookup-entry-next-page' $B%(%s%H%jK\J8$NI=<($r0l%Z!<%8?J$a$k!#%P%C%U%!$N=*$o$j$^$GC#$7$?$i!"(B $B' `M-x lookup-entry-end-of-content' $B%(%s%H%jK\J8$NI=<($rKvHx$^$G?J$a$k!#(B `n' `M-x lookup-entry-next-entry' $BpJs$r=PNO$9$k!#(B `o' `M-x lookup-entry-open' $B%(%s%H%jK\J8$r2hLL0lGU$KI=<($9$k!#(B `O' `M-x lookup-entry-open-other' $B%(%s%H%jK\J8$rJL%W%m%0%i%`$GI=<($9$k!#(B `v' `M-x lookup-entry-overview-mode' Overview $B%b!<%I$KF~$k!#(BCotent $B%P%C%U%!$,%/%m!<%:$5$l!"(B`n' $B$H(B `p' $B$,C1$K%]%$%s%H0\F0$@$1$r9T$J$&$h$&$K$J$k!#(B `t' `M-x lookup-entry-toggle-format' $B%(%s%H%jK\J8$N@07A=hM}$r%H%0%k$9$k!#(B `s' `M-x lookup-entry-isearch-content' Content $B%P%C%U%!$G(B isearch-forward $B$rH!#(B `f' `M-x lookup-entry-search-pattern' $B%_%K%P%C%U%!$+$i8!:w<0$rF~NO$7$F8!:w$9$k!#(B `L' `M-x lookup-entry-list-references' $B%(%s%H%jK\J8$K4^$^$l$k%j%U%!%l%s%9$r0lMw$9$k!#(B `S' `M-x lookup-select-dictionary' $B<-=qA*Br%P%C%U%!$K@Z$j49$($k!#(B `r' `M-x lookup-entry-start-window' $B8!:w$r3+;O$7$?%&%#%s%I%&$K0\F0$9$k!#(B `h' `M-x lookup-entry-content-window' Content $B%P%C%U%!$K0\F0$9$k!#(B `g' `M-x lookup-entry-update' $B:#2s$HF1$88!:w8l$G!"%(%s%H%j$r:F8!:w$9$k!#(B `M-x lookup-entry-update-content' $B%(%s%H%jK\J8$r:FI=<($9$k!#@07A=hM}$bA4$F$d$jD>$5$l$k!#(B `q' `M-x lookup-quit' Entry $B%P%C%U%!$rH4$1$k!#(B `Q' `M-x lookup-exit' Lookup $B$r=*N;$9$k!#(B `R' `M-x lookup-restart' Lookup $B$r:F5/F0$9$k!#(B `?' `M-x lookup-entry-help' Entry $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B  File: lookup.info, Node: Content Mode, Prev: Entry Mode, Up: Mode Details Content $B%b!<%I(B ============== Content $B%b!<%I$G$O!"%(%s%H%j$NK\J8$rI=<($7!"FbMF$r;2>H$9$k$3$H$,=PMh$^(B $B$9!#(B * Menu: * Content Mode Details:: Content $B%b!<%I$N>\:Y(B * Content Mode Commands:: Content $B%b!<%I$N%3%^%s%I0lMw(B  File: lookup.info, Node: Content Mode Details, Next: Content Mode Commands, Prev: Content Mode, Up: Content Mode Content $B%b!<%I$N>\:Y(B -------------------- Entry $B%P%C%U%!$GK\J8$rI=<($9$k$h$&A`:n$9$k$H(B Content $B%P%C%U%!$,8=$l!"(B Content $B%b!<%I(B (`lookup-content-mode') $B$KF~$j$^$9!#%-!<%^%C%W$O(B `lookup-content-mode-map' $B$G!":G=i$K(B `lookup-content-mode-hook' $B$,8F$P(B $B$l$^$9!#(B $B%P%C%U%!$K$O%(%s%H%j$NK\J8$,I=<($5$l!"8+=P$7$,%b!<%I%i%$%s$K<($5$l$^$9!#(B $B$3$N%P%C%U%!$KBP$9$k@\$3$N%b!<%I$rMxMQ$9$k$3$H$O$"$^$j$"$j$^$;$s!#6qBNE*$JA`:n$K$D$$(B $B$F$O!"(B*Note See Result:: $B;2>H$7$F2<$5$$!#(B  File: lookup.info, Node: Content Mode Commands, Prev: Content Mode Details, Up: Content Mode Content $B%b!<%I$N%3%^%s%I0lMw(B ---------------------------- `SPC' `M-x scroll-up' $B%P%C%U%!$r%9%/%m!<%k!&%"%C%W$9$k!#(B `DEL' `M-x scroll-down' $B%P%C%U%!$r%9%/%m!<%k!&%@%&%s$9$k!#(B `<' `M-x beginning-of-buffer' $B%P%C%U%!$N@hF,$K0\F0$9$k!#(B `>' `M-x end-of-buffer' $B%P%C%U%!$NKvHx$K0\F0$9$k!#(B `TAB' `M-x lookup-content-next-link' $BH$9$k!#(B `mouse-2' ``lookup-content-mouse-follow'' $B%^%&%9$G%/%j%C%/$7$?%j%s%/$r;2>H$9$k!#(B `t' `M-x lookup-content-toggle-format' $BK\J8$N@07A=hM}$r%H%0%k$9$k!#(B `w' `M-x lookup-content-cite-region' $B%j!<%8%g%s$NFbMF$r%-%k%j%s%0$KJ]B8$9$k!#$=$N:]!"JQ?t(B `lookup-cite-header' $B$^$?$O<-=q%*%W%7%g%s(B `:cite-header' $B$K$h$j0z(B $BMQ;~$N%X%C%@$r!"JQ?t(B `lookup-cite-prefix' $B$^$?$O<-=q%*%W%7%g%s(B `:cite-prefix' $B$K$h$j0zMQ;~$N%W%l%U%#%/%9$r;XDj$9$k$3$H$,=PMh$k!#(B (1) `h' `M-x lookup-content-entry-window' Entry $B%P%C%U%!$K0\F0$9$k!#(B `g' `M-x lookup-content-update' $B%-%c%C%7%e$rMQ$$$:$KK\J8$rFI$_D>$9!#(B `q' `M-x lookup-content-leave' Content $B%P%C%U%!$rH4$1$k!#(B `?' `M-x lookup-content-help' Content $B%b!<%I$N4J0W%X%k%W$rI=<($9$k!#(B --------- Footnotes --------- (1) $B8=:_!"(B`:cite-style' $B$K$OL$BP1~(B  File: lookup.info, Node: How To Get, Next: Troubleshooting, Prev: Mode Details, Up: Top $B:G?7>pJs$rpJs8r49$O!"@lMQ$N%a!<%j%s%0%j%9%H$K$F9T$o$l$F$$$^$9!#(B $B;22C$r4uK>$9$kJ}$O!"(B $B08$F$K!"6u$N%a!<%k$r(B $BAw$C$F2<$5$$!#(B Lookup $B$O!"(Blookup@ring.gr.jp $B%a%$%j%s%0%j%9%H$NM-;V(B (lookup@ring.gr.jp) $B$,4IM}$7$F$$$^$9!#(BLookup $B$K4X$9$kLd$$9g$o$;$O$3$A(B $B$i$^$G$*4j$$$7$^$9!#(B  File: lookup.info, Node: Troubleshooting, Next: Glossary, Prev: How To Get, Up: Top $B%H%i%V%k%7%e!<%F%#%s%0(B ********************** $B$$$/$D$+$N%H%i%V%k$X$NBP=hK!$,!"(BLookup $BG[I[J*$K4^$^$l$k%U%!%$%k(B FAQ $B$K(B $B$^$H$a$F$"$k$N$G!"$=$A$i$r;2>H$7$F2<$5$$!#$=$l$G$bITL@$J>l9g$O!"%a!<%j(B $B%s%0%j%9%H$J$I$GpJs8;!#(BLookup $B$G$O(B CD-ROM $B=q@R$d<-=q%5!<%P$J$I$,;H(B $B$($k!#(B CD-ROM $B=q@R(B (CD-ROM book) $BEE;R%V%C%/(B (EB/EBG/EBXA) $B$d(B EPWING $B5,Ls$K=`5r$7$?EE;R=q@R!#(B $B<-=q%5!<%P(B (dictionary server) NDTP $B$d(B DICT $B%W%m%H%3%k$J$I$KBP1~$7$?!"MQ8l8!:w$N5!G=$rDs6!$9$k%5!<(B $B%P!#(B NDTP (Network Dictionary Transport Protocol) CD-ROM $B=q@R$r%M%C%H%o!<%/$GMxMQ$9$k$?$a$N%W%m%H%3%k!#(Bdserver $B$H$$(B $B$&%=%U%H%&%'%"$,FH<+$KDj5A$7$?$b$N!#(B DICT $B%W%m%H%3%k(B $B%M%C%H%o!<%/$G8!:w$r9T$J$&$?$a$N%W%m%H%3%k!#(BRFC 2229$B!#(B $B8!:w%(!<%8%'%s%H(B (search agent) $B<-=q$r]$H$J$k<-=q$N$^$H$^$j!#(B $B8!:w(B (search) Lookup $B$G$O!"<-=q$+$iL\E*$N%(%s%H%j$rD4$Y=P$9$3$H!#%a%K%e!<$+$iL\(B $BE*$N%(%s%H%j$^$G$r=g$KC)$C$F$$$/!V%a%K%e!<8!:w!W$d!"8!:w8l$r;XDj(B $B$7$F%(%s%H%j$r8+IU$1=P$9!VJ8;zNs8!:w!W$,$"$k!#(B $B%a%K%e!<8!:w(B (menu) $B<-=q$K$"$i$+$8$aMQ0U$5$l$?%a%K%e!<$rC)$C$F!"L\E*$N%(%s%H%j$r8+IU(B $B$1=P$9$3$H!#(B $BJ8;zNs8!:w(B (search string) $B8!:w8l$rMQ$$$?8!:w!#%_%K%P%C%U%!$+$i8!:w<0$rF~NO$9$k>l9g$rFC$K(B $B!V%Q%?!<%s8!:w!W$H8F$V!#%j!<%8%g%s$J$I$r;XDj$7$?>l9g$K$O!VC18l8!(B $B:w!W$,9T$J$o$l$k!#(B $B%Q%?!<%s8!:w(B (search pattern) $B%_%K%P%C%U%!$+$i8!:w<0$rF~NO$7$F9T$J$&8!:w$N$3$H!#%Q%?!<%s$N;XDj(B $BJ}K!$K$h$C$F!"(B: Setup Package. 18. * $B<-=qL>(B: Quick Startup. 46. * $B%Q%?!<%s8!:w(B: Search Methods. 5. * $B%*%W%7%g%s(B: Setup Option. 11. * Content $B%P%C%U%!(B: Quick Search. 38. * cookie $B%U%!%$%k(B: Setup cookie. 5. * DICT $B%W%m%H%3%k(B: Setup DICT. 5. * dictd $B%U%)!<%^%C%H(B: Setup dictd. 5. * Entry $B%P%C%U%!(B: Quick Search. 33. * EPWING $B5,Ls(B: Setup CD-ROM. 5. * NDTP: Setup NDTP. 5. * Overview $B%b!<%I(B: Quick View. 36. * SDIC $B%U%)!<%^%C%H(B: Setup SDIC. 5.  File: lookup.info, Node: Command Index, Next: Variable Index, Prev: Concept Index, Up: Top Command Index ************* * Menu: * lookup: Startup Commands. 5. * lookup-content-cite-region: Content Mode Commands. 57. * lookup-content-entry-window: Content Mode Commands. 67. * lookup-content-follow-link: Content Mode Commands. 39. * lookup-content-help: Content Mode Commands. 85. * lookup-content-leave: Content Mode Commands. 79. * lookup-content-mode: Content Mode Details. 5. * lookup-content-mouse-follow: Content Mode Commands. 45. * lookup-content-next-link: Content Mode Commands. 33. * lookup-content-toggle-format: Content Mode Commands. 51. * lookup-content-update: Content Mode Commands. 73. * lookup-entry-beginning-of-content: Entry Mode Commands. 45. * lookup-entry-cite-content: Entry Mode Commands. 118. * lookup-entry-content-window: Entry Mode Commands. 150. * lookup-entry-display-content: Entry Mode Commands. 7. * lookup-entry-end-of-content: Entry Mode Commands. 51. * lookup-entry-help: Entry Mode Commands. 184. * lookup-entry-history-next: Entry Mode Commands. 69. * lookup-entry-history-previous: Entry Mode Commands. 75. * lookup-entry-info: Entry Mode Commands. 81. * lookup-entry-isearch-content: Entry Mode Commands. 112. * lookup-entry-list-references: Entry Mode Commands. 132. * lookup-entry-mode: Entry Mode Details. 5. * lookup-entry-mouse-follow: Entry Mode Commands. 15. * lookup-entry-next-entry: Entry Mode Commands. 57. * lookup-entry-next-page: Entry Mode Commands. 21. * lookup-entry-open: Entry Mode Commands. 87. * lookup-entry-open-other: Entry Mode Commands. 93. * lookup-entry-overview-mode: Entry Mode Commands. 99. * lookup-entry-previous-entry: Entry Mode Commands. 63. * lookup-entry-previous-page: Entry Mode Commands. 28. * lookup-entry-scroll-down-content: Entry Mode Commands. 39. * lookup-entry-scroll-up-content: Entry Mode Commands. 35. * lookup-entry-search-pattern: Entry Mode Commands. 126. * lookup-entry-start-window: Entry Mode Commands. 144. * lookup-entry-toggle-format: Entry Mode Commands. 106. * lookup-entry-update: Entry Mode Commands. 156. * lookup-entry-update-content: Entry Mode Commands. 160. * lookup-new-gaiji-table: Gaiji Table. 8. * lookup-pattern: Search Commands. 9. * lookup-pattern-full-screen: Search Commands. 76. * lookup-pattern-other-frame: Search Commands. 76. * lookup-region: Search Commands. 21. * lookup-region-full-screen: Search Commands. 76. * lookup-region-other-frame: Search Commands. 76. * lookup-restart: Startup Commands. 25. * lookup-secondary: Search Commands. 50. * lookup-secondary-full-screen: Search Commands. 76. * lookup-secondary-other-frame: Search Commands. 76. * lookup-select-copyright: Select Mode Commands. 69. * lookup-select-do-execute: Select Mode Commands. 57. * lookup-select-do-select: Select Mode Commands. 23. * lookup-select-do-select-all: Select Mode Commands. 39. * lookup-select-do-select-all: Specify Dictionary. 41. * lookup-select-do-select-only: Select Mode Commands. 45. * lookup-select-do-select-only: Specify Dictionary. 41. * lookup-select-do-unselect: Select Mode Commands. 29. * lookup-select-help: Select Mode Commands. 113. * lookup-selection: Search Commands. 29. * lookup-selection-full-screen: Search Commands. 76. * lookup-selection-other-frame: Search Commands. 76. * lookup-select-mark-disable: Select Mode Commands. 51. * lookup-select-menu: Select Mode Commands. 63. * lookup-select-mode: Select Mode Details. 5. * lookup-select-next-line: Select Mode Commands. 11. * lookup-select-previous-line: Select Mode Commands. 17. * lookup-select-search-pattern: Select Mode Commands. 75. * lookup-select-text-search: Select Mode Commands. 81. * lookup-select-toggle-selected: Select Mode Commands. 33. * lookup-select-update: Select Mode Commands. 87. * lookup-set-agent-option: Setup Option. 62. * lookup-set-dictionary-option: Setup Option. 31. * lookup-suspend: Startup Commands. 14. * lookup-use-package: Setup Package. 33. * lookup-word: Search Commands. 25. * lookup-word-full-screen: Search Commands. 76. * lookup-word-other-frame: Search Commands. 76.  lookup-1.4.1/texi/lookup.info-30000644000076400007640000001010610557543403016575 0ustar kazuhikokazuhikoInfo file: lookup.info, -*-Text-*- produced by `texinfo-format-buffer' from file `lookup.texi' using `texinfmt.el' version 2.38 of 3 July 1998. INFO-DIR-SECTION The Emacs editor and associated tools START-INFO-DIR-ENTRY * Lookup: (lookup). Lookup, a Search Interface. END-INFO-DIR-ENTRY This file documents Lookup, a search interface. Copyright (C) 1997,1998,1999 Keisuke Nishida Copyright (C) 1999-2001 Lookup Development Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.  File: lookup.info, Node: Variable Index, Prev: Command Index, Up: Top Variable Index ************** * Menu: * lookup-agent-options-alist: Setup Option. 62. * lookup-cite-header: Cite Contents. * lookup-cite-prefix: Cite Contents. * lookup-cite-style: Cite Contents. * lookup-content-mode-hook: Content Mode Details. 5. * lookup-content-mode-map: Content Mode Details. 5. * lookup-default-agent-options: Setup Option. 62. * lookup-default-dictionary-options: Setup Option. 47. * lookup-default-method: Default Method. 23. * lookup-dictionary-options-alist: Setup Option. 15. * lookup-enable-gaiji: Setup Gaiji. 32. * lookup-entry-mode-hook: Entry Mode Details. 5. * lookup-entry-mode-map: Entry Mode Details. 5. * lookup-fill-column: Customize Variables. 15. * lookup-frame-alist: Search Commands. 107. * lookup-heading-1-face: Customize Face. * lookup-heading-2-face: Customize Face. * lookup-heading-3-face: Customize Face. * lookup-heading-4-face: Customize Face. * lookup-heading-5-face: Customize Face. * lookup-heading-low-face: Customize Face. * lookup-init-file: Setup Example. 5. * lookup-inline-image: Customize Variables. 60. * lookup-load-hook: Initialization. 26. * lookup-max-hits: Customize Variables. 46. * lookup-max-text: Customize Variables. 46. * lookup-package-directory: Setup Package. 33. * lookup-refered-face: Customize Face. * lookup-reference-face: Customize Face. * lookup-save-configuration: Customize Variables. 23. * lookup-save-configuration: Startup Commands. 21. * lookup-search-agents: Setup Basis. 10. * lookup-select-mode-hook: Select Mode Details. 5. * lookup-select-mode-map: Select Mode Details. 5. * lookup-use-bitmap: Setup Gaiji. 30. * lookup-use-kakasi: Search Commands. 12. * lookup-window-height: Customize Variables. 19. * ndeb-program-name: ndeb customize. 5. * ndeb-prompt-string: ndeb customize. 8. * ndic-dictzip-program: ndic customize. 5. * ndict-service-name: ndict setup. 19. * ndkks-content-format: ndkks customize. 11. * ndkks-dictionary-title: ndkks customize. 8. * ndkks-program-name: ndkks customize. 5. * ndspell-dictionary-title: ndspell customize. 14. * ndspell-grep-program: ndspell customize. 8. * ndspell-ispell-program: ndspell customize. 5. * ndspell-search-dictionaries: ndspell customize. 17. * ndspell-words-dictionary: ndspell customize. 11. * ndsrd-program-name: ndsrd customize. 5.  lookup-1.4.1/packages/0000755000076400007640000000000010557547477015075 5ustar kazuhikokazuhikolookup-1.4.1/packages/Makefile.in0000644000076400007640000002165710557543722017142 0ustar kazuhikokazuhiko# Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : AMTAR = @AMTAR@ AWK = @AWK@ DEPDIR = @DEPDIR@ EMACS = @EMACS@ EXEEXT = @EXEEXT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ emacsdir = @emacsdir@ install_sh = @install_sh@ lispdir = @lispdir@ SUBDIRS = dict-misc jitenban97 EXTRA_DIST = colloc.el genius.el oxford.el rfc1983.el vera.el wdic.el subdir = packages mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ uninstall-info-recursive all-recursive install-data-recursive \ install-exec-recursive installdirs-recursive install-recursive \ uninstall-recursive check-recursive installcheck-recursive DIST_COMMON = Makefile.am Makefile.in DIST_SUBDIRS = $(SUBDIRS) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu packages/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) GTAGS: here=`CDPATH=: && cd $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ clean-generic clean-recursive distclean distclean-generic \ distclean-recursive distclean-tags distdir dvi dvi-am \ dvi-recursive info info-am info-recursive install install-am \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-recursive tags tags-recursive uninstall \ uninstall-am uninstall-info-am uninstall-info-recursive \ uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lookup-1.4.1/packages/Makefile.am0000644000076400007640000000014507401231057017103 0ustar kazuhikokazuhikoSUBDIRS = dict-misc jitenban97 EXTRA_DIST = colloc.el genius.el oxford.el rfc1983.el vera.el wdic.el lookup-1.4.1/packages/colloc.el0000644000076400007640000000433207401227017016647 0ustar kazuhikokazuhiko;;; colloc.el --- supplement package for $B!X?7JT(B $B1QOB3hMQBg<-E5!Y(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndtp 1.0, ndeb 1.0 ;; Format: 1.1 ;; Version: 0.1 ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst chujiten-arranges '(colloc-arrange-first lookup-arrange-gaijis lookup-arrange-references lookup-arrange-default-headings lookup-arrange-fill-lines)) (defvar colloc-dictionary-options (list (cons ':title "$B1QOB3hMQBg<-E5(B") (cons ':arranges chujiten-arranges))) (defun colloc-arrange-first (entry) (if (re-search-forward " $B"*(B.*" nil t) (delete-region (match-beginning 0) (match-end 0))) (when (looking-at "$B!Z(B.*$B![(B") (forward-line) (if (re-search-forward "^$B!Z(B.*$B![(B" nil t) (delete-region (match-beginning 0) (point-max))) (goto-char (point-min))) (if (re-search-forward " $B"*(B.*" nil t) (let ((string (match-string 0))) (goto-char (point-min)) (end-of-line) (insert string))) (while (re-search-forward " $B"*(B.*" nil t) (delete-region (match-beginning 0) (match-end 0)))) (setq lookup-package-agent-options '((:title . "$B?7JT(B $B1QOB3hMQBg<-E5(B"))) (setq lookup-package-dictionary-options-alist (list (cons (cond ((eq lookup-package-agent 'ndtp) "COLLOC/COLLOC") ((eq lookup-package-agent 'ndeb) "COLLOC")) colloc-dictionary-options))) ;;; colloc.el ends here lookup-1.4.1/packages/genius.el0000644000076400007640000000345107401227017016667 0ustar kazuhikokazuhiko;;; genius.el --- supplement package for $B!X%8!<%K%"%91QOB!&OB1Q<-E5!Y(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndtp 1.0, ndeb 1.0 ;; Format: 1.1 ;; Version: 0.1 ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst genius-arranges '(genius-arrange-heading lookup-arrange-gaijis lookup-arrange-references lookup-arrange-squeezed-references lookup-arrange-default-headings lookup-arrange-fill-lines)) (defvar genius-dictionary-options (list (cons ':arranges genius-arranges))) (defun genius-arrange-heading (entry) (when (re-search-forward "\\`.+\\(/\\|\\).+\\(/\\|\\)." nil t) ; (when (re-search-forward "\\`.+/.+/." nil t) (backward-char 1) (insert-string "\n"))) (setq lookup-package-agent-options '((:title . "$B%8!<%K%"%91QOB!&OB1Q<-E5(B"))) (setq lookup-package-dictionary-options-alist (list (cons (cond ((eq lookup-package-agent 'ndtp) "GENIUS/GENIUS") ((eq lookup-package-agent 'ndeb) "GENIUS")) genius-dictionary-options))) ;;; genius.el ends here lookup-1.4.1/packages/oxford.el0000644000076400007640000000363607401227017016703 0ustar kazuhikokazuhiko;;; oxford.el --- supplement package for "Oxford Dictionary/Thesaurus" ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndtp 1.0, ndeb 1.0 ;; Format: 1.1 ;; Version: 0.2 ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defvar oxford-dictionary-arranges '(oxford-arrange-structure lookup-arrange-references lookup-arrange-gaijis lookup-arrange-default-headings lookup-arrange-fill-lines)) (defvar oxford-dictionary-options (list (cons ':title "Oxford Dictionary") (cons ':stemmer 'stem-english) (cons ':arranges oxford-dictionary-arranges))) (defun oxford-arrange-structure (entry) (while (re-search-forward "\\( \\([nv]\\|adj\\)\\.\\)\\|\\[[0-9]\\]" nil t) (save-excursion (goto-char (match-beginning 0)) (newline)))) ;;; ;;; Package Options ;;; (setq lookup-package-agent-options '((:title . "Oxford Dictionary/Thesaurus") (:enable . ("OXFORD")) (:coding . iso-8859-1) (:stop-code . "0x1f090000"))) (setq lookup-package-dictionary-options-alist (list (cons (cond ((eq lookup-package-agent 'ndtp) "OXFORD/OXFORD") ((eq lookup-package-agent 'ndeb) "OXFORD")) oxford-dictionary-options))) ;;; oxford.el ends here lookup-1.4.1/packages/rfc1983.el0000644000076400007640000000352207401227017016473 0ustar kazuhikokazuhiko;;; rfc1983.el --- supplement package for "RFC1983" ;; Copyright (C) 1999 ;; Author: KOREEDA Kazuyoshi ;; Target: ndic 1.0, ndict 1.0 ;; Format: 1.1 ;; Version: 1.0 ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (setq lookup-package-agent-options '((:title . "RFC1983"))) (setq lookup-package-dictionary-options-alist '(("rfc1983" . ((:title . "RFC1983") (:arranges . (rfc1983-arrange-references lookup-arrange-default-headings)))))) (defun rfc1983-arrange-references (entry) (when (or (re-search-forward "See:" nil t) (re-search-forward "See[ \n]+also:" nil t)) (while (looking-at "[, \n]*\\([^,]+\\)") (save-match-data (setq heading (lookup-oneline-string (upcase (match-string 1)))) (if(string-match "\\.? *\\(\\[.*\\]\\)? *$" heading) (setq heading (replace-match "" nil t heading)))) (setq reference (lookup-make-reference dictionary heading heading)) (lookup-reference-make-dynamic reference 'lookup-dynamic-code-search) (lookup-set-link (match-beginning 1) (match-end 1) reference) (goto-char (match-end 0))))) ;;; rfc1983.el ends here lookup-1.4.1/packages/vera.el0000644000076400007640000000327107401227017016332 0ustar kazuhikokazuhiko;;; vera.el --- supplement package for "V.E.R.A." ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndic 1.0, ndict 1.0 ;; Format: 1.1 ;; Version: 1.0 ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (setq lookup-package-agent-options '((:title . "Virtual Entity of Relevant Acronyms"))) (setq lookup-package-dictionary-options-alist '(("vera" . ((:title . "V.E.R.A") (:arranges . (vera-arrange-references lookup-arrange-default-headings)))))) (defun vera-arrange-references (entry) (when (search-forward "(" nil t) (let ((dictionary (lookup-entry-dictionary entry)) heading reference) (while (looking-at "[, ]*\\([^,)]+\\)") (setq heading (match-string 1)) (setq reference (lookup-make-reference dictionary heading heading)) (lookup-reference-make-dynamic reference 'lookup-dynamic-code-search) (lookup-set-link (match-beginning 1) (match-end 1) reference) (goto-char (match-end 0)))))) ;;; vera.el ends here lookup-1.4.1/packages/wdic.el0000644000076400007640000000623207401227020016315 0ustar kazuhikokazuhiko;;; wdic.el --- supplement package for $B!XDL?.MQ8l$N4pACCN<1!Y(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Mito ;; Target: ndic 1.0 ;; Format: 1.1 ;; Version: 1.1 ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst wdic-arrange-functions '(wdic-arrange-references lookup-arrange-default-headings)) (setq lookup-package-agent-options (list (cons ':title "$BDL?.MQ8l$N4pACCN<1(B") (cons ':arranges wdic-arrange-functions))) (setq lookup-package-dictionary-options-alist `(("wave" . ((:title . "WDIC $BGHF0JT(B"))) ("yogo" . ((:title . "WDIC $BMQ8lJT(B"))) ("info" . ((:title . "WDIC $B>pJsJT(B"))) ("soft" . ((:title . "WDIC $B@=IJJT(B"))) ("tech" . ((:title . "WDIC $B5;=QJT(B"))) ("elec" . ((:title . "WDIC $BEE;RJT(B"))) ("comm" . ((:title . "WDIC $BDL?.>pJsJT(B"))) ("tran" . ((:title . "WDIC $BDL?.5;=QJT(B"))) ("moe" . ((:title . "WDIC $BK($(JT(B"))) ("dev" . ((:title . "WDIC $BAuCVJT(B"))) ("know" . ((:title . "WDIC $BCN<1JT(B"))) ("moe1" . ((:title . "WDIC $BK($(JT#1(B"))) ("moe2" . ((:title . "WDIC $BK($(JT#2(B"))) ("org" . ((:title . "WDIC $BCDBNJT(B"))) ("paso" . ((:title . "WDIC $BMQ8lJT#2(B"))) ("rail" . ((:title . "WDIC $BE4F;JT(B"))) ("std" . ((:title . "WDIC $B5,3JJT(B"))) )) (defun wdic-arrange-references (entry) (let ((dictionary (lookup-entry-dictionary entry)) start end heading url reference (ja-ascii-regexp "^\\(\\cA\\|[$B!!(B-$B!?!'(B-$B!w!N(B-$B!.!P(B-$B!A(B]\\)+$")) (while (re-search-forward "^ *\\($B"'(B\\|$B"&(B\\|$B!z(B\\|$B"!(B\\) *\\([^ \n]+\\)" nil t) (setq start (match-beginning 2) end (match-end 2) heading (buffer-substring-no-properties start end) type (buffer-substring-no-properties (match-beginning 1) (match-end 1))) (if (and (string-match "\\($B"'(B\\|$B"&(B\\)" type) (string-match " *\\([a-z]+://[^ ]+\\)" heading)) (setq url (match-string 1 heading) reference (lookup-make-url-reference url url)) (setq heading (if (string-match ja-ascii-regexp heading) (japanese-hankaku heading) heading)) (setq reference (lookup-make-reference dictionary heading heading)) (lookup-reference-make-dynamic reference 'lookup-dynamic-code-search)) (lookup-set-link start end reference)))) ;;; wdic.el ends here lookup-1.4.1/packages/dict-misc/0000755000076400007640000000000010557547477016751 5ustar kazuhikokazuhikolookup-1.4.1/packages/dict-misc/README0000644000076400007640000000047407401227021017604 0ustar kazuhikokazuhikoThis is supplement package for "dict-misc" dictionaries. It corresponds to dict-misc-1.4. - dict-misc.el master file for `ndic' - jargon.el supplement file for "Jargon File" - foldoc.el supplement file for "The Free On-line Dictionary of Computing" You can get dict-misc at: ftp://ftp.dict.org/pub/dict/ lookup-1.4.1/packages/dict-misc/Makefile.in0000644000076400007640000001132410557543722021004 0ustar kazuhikokazuhiko# Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : AMTAR = @AMTAR@ AWK = @AWK@ DEPDIR = @DEPDIR@ EMACS = @EMACS@ EXEEXT = @EXEEXT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ emacsdir = @emacsdir@ install_sh = @install_sh@ lispdir = @lispdir@ EXTRA_DIST = dict-misc.el foldoc.el jargon.el subdir = packages/dict-misc mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = DIST_SOURCES = DIST_COMMON = README ChangeLog Makefile.am Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu packages/dict-misc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status uninstall-info-am: tags: TAGS TAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lookup-1.4.1/packages/dict-misc/ChangeLog0000644000076400007640000000331707401227021020475 0ustar kazuhikokazuhiko1999-01-17 NISHIDA Keisuke * Version 1.0 released. 1999-01-10 NISHIDA Keisuke * dict-misc.el: Renamed from main.el for package version 1.1. 1998-12-27 NISHIDA Keisuke * jargon.el, foldoc.el: Update for Lookup 1.0. 1998-10-29 NISHIDA Keisuke * Version 1.0pre3 released. 1998-10-24 NISHIDA Keisuke * Version 1.0pre2 released. * foldoc.el (foldoc-fix-by-black-list): Fixed for ndic. 1998-10-14 NISHIDA Keisuke * Version 1.0pre1 released. 1998-09-06 NISHIDA Keisuke * main.el, jargon.el, foldoc.el: Update to package version 1.0. Delete file `main.el.ndict'. 1998-07-23 NISHIDA Keisuke * Version 0.11.1 released. * jargon.el (jargon-arrange-references): Use dictionary command `:search' to search target. * foldoc.el: Add new variables `foldoc-ndic-options' and `foldoc-ndict-options' replaced with `foldoc-options'. 1998-06-14 NISHIDA Keisuke * Version 0.9.2 released. * jargon.el: Updated for Lookup 0.9.1. 1998-06-10 NISHIDA Keisuke * Version 0.9.1 released. * main.el: Named the agent option `title' to `name'. 1998-05-31 NISHIDA Keisuke * Version 0.2 released. * foldoc.el: Updated for the rename of entry "heading" to "headword". 1998-05-30 NISHIDA Keisuke * Rename files `dict-misc.el' to `main.el' because of the package format version 0.9.1. * foldoc.el: New file. 1998-05-22 NISHIDA Keisuke * Version 0.1 released. lookup-1.4.1/packages/dict-misc/Makefile.am0000644000076400007640000000005407401227021020752 0ustar kazuhikokazuhikoEXTRA_DIST=dict-misc.el foldoc.el jargon.el lookup-1.4.1/packages/dict-misc/dict-misc.el0000644000076400007640000000256107401227021021121 0ustar kazuhikokazuhiko;;; dict-misc.el --- supplement package for "dict-misc" ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndic 1.0, ndict 1.0 ;; Format: 1.1 ;; Version: 1.0 ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (setq lookup-package-agent-options '((title . "misc dictionaries"))) (setq lookup-package-dictionary-options-alist (list (cons "jargon" (lookup-package-load "jargon")) (cons "foldoc" (lookup-package-load "foldoc")) (cons "elements" '((title . "The Elements"))) (cons "easton" '((title . "Bible Dictionary"))) (cons "hitchcock" '((title . "Bible Names"))))) ;;; dict-misc.el ends here lookup-1.4.1/packages/dict-misc/foldoc.el0000644000076400007640000000504707401227021020515 0ustar kazuhikokazuhiko;;; foldoc.el --- supplement file for "FOLDOC" ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndic 1.0, ndict 1.0 ;; Format: 1.1 ;; Version: $Id: foldoc.el,v 1.1.1.1 2001/11/28 18:33:53 kazuhiko Exp $ ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst foldoc-arrange-functions '(foldoc-fix-by-black-list foldoc-arrange-references lookup-arrange-default-headings lookup-arrange-fill-paragraphs)) (defconst foldoc-adjust-functions '(lookup-adjust-check-references lookup-adjust-goto-min)) (setq lookup-package-dictionary-options (list (cons ':title "FOLDOC") (cons ':arranges foldoc-arrange-functions) (cons ':adjusts foldoc-adjust-functions))) (defun foldoc-fix-by-black-list (entry) (let ((heading (lookup-entry-heading entry))) (cond ((string= heading "control flow") (search-forward "structures}") (replace-match "structure}"))))) (defun foldoc-arrange-references (entry) (let ((dictionary (lookup-entry-dictionary entry)) start end heading url reference) (while (re-search-forward "{[^}]+}" nil t) (setq start (1+ (match-beginning 0)) end (1- (match-end 0))) (setq heading (buffer-substring-no-properties start end)) (while (string-match "\n *" heading) (setq heading (replace-match " " t t heading))) (if (string-match " *(\\([a-z]+://[^)]*\\))" heading) (setq url (match-string 1 heading) heading (if (eq (match-beginning 0) 0) url (substring heading 0 (match-beginning 0))) reference (lookup-make-url-reference url heading)) (setq reference (lookup-make-reference dictionary heading heading)) (lookup-reference-make-dynamic reference 'lookup-dynamic-code-search)) (lookup-set-link start end reference) (delete-region end (1+ end)) (delete-region (1- start) start)))) ;;; foldoc.el ends here lookup-1.4.1/packages/dict-misc/jargon.el0000644000076400007640000000340207401227021020520 0ustar kazuhikokazuhiko;;; jargon.el --- supplement file for "The Jargon File" ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndic 1.0, ndict 1.0 ;; Format: 1.1 ;; Version: $Id: jargon.el,v 1.1.1.1 2001/11/28 18:33:53 kazuhiko Exp $ ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst jargon-reference-pattern '("{\\([^}]+\\)}" 1 (lookup-oneline-string (match-string 1)) lookup-dynamic-code-search)) (defconst jargon-arrange-functions '(lookup-arrange-references jargon-arrange-headings lookup-arrange-fill-paragraphs)) (defconst jargon-adjust-functions '(lookup-adjust-check-references lookup-adjust-goto-min)) (setq lookup-package-dictionary-options (list (cons ':title "Jargon File") (cons ':reference-pattern jargon-reference-pattern) (cons ':arranges jargon-arrange-functions) (cons ':adjusts jargon-adjust-functions))) (defun jargon-arrange-headings (entry) (if (looking-at "[^/\n]+") (lookup-make-region-heading (match-beginning 0) (match-end 0) 1))) ;;; jargon.el ends here lookup-1.4.1/packages/jitenban97/0000755000076400007640000000000010557547477017047 5ustar kazuhikokazuhikolookup-1.4.1/packages/jitenban97/README0000644000076400007640000000065207401227020017677 0ustar kazuhikokazuhiko¥¢¥¹¥­¡¼½ÐÈǡؼ­¡¦Åµ¡¦È×97¡Ù¤Î¤¿¤á¤ÎÊä½õ¥Ñ¥Ã¥±¡¼¥¸¤Ç¤¹¡£ndeb ¤È ndeb ¤Ë Âбþ¤·¤Æ¤¤¤Þ¤¹¡£ - jitenban97.el ¥Þ¥¹¥¿¡¼¥Õ¥¡¥¤¥ë - iwakoku.el ¡Ö´äÇȹñ¸ì¼­Åµ¡×Êä½õ¥Õ¥¡¥¤¥ë - chujiten.el ¡Ö¿·±ÑÏ¡¦Ï±ÑÃæ¼­Åµ¡×Êä½õ¥Õ¥¡¥¤¥ë - chiezo.el ¡ÖÃη⣱£¹£¹£·¡×Êä½õ¥Õ¥¡¥¤¥ë - mypaedia.el ¡Ö¥Þ¥¤¥Ú¥Ç¥£¥¢£¹£·¡×Êä½õ¥Õ¥¡¥¤¥ë NDTPD ¤È¹ç¤ï¤»¤ÆÍøÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢jitenban97.el ¤ÎÆâÍÆ¤ò¥³¥á¥ó¥È¤Ë½¾¤Ã¤Æ ½¤Àµ¤·¤Æ²¼¤µ¤¤¡£ lookup-1.4.1/packages/jitenban97/Makefile.in0000644000076400007640000001136010557543722021102 0ustar kazuhikokazuhiko# Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : AMTAR = @AMTAR@ AWK = @AWK@ DEPDIR = @DEPDIR@ EMACS = @EMACS@ EXEEXT = @EXEEXT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ emacsdir = @emacsdir@ install_sh = @install_sh@ lispdir = @lispdir@ EXTRA_DIST = jitenban97.el iwakoku.el chujiten.el chiezo.el mypaedia.el subdir = packages/jitenban97 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = DIST_SOURCES = DIST_COMMON = README ChangeLog Makefile.am Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu packages/jitenban97/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status uninstall-info-am: tags: TAGS TAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lookup-1.4.1/packages/jitenban97/ChangeLog0000644000076400007640000000774707401227021020606 0ustar kazuhikokazuhiko1999-01-17 NISHIDA Keisuke * Version 1.0 released. 1999-01-15 NISHIDA Keisuke * stem.el: Remove file. * chujiten.el (lookup-package-dictionary-options): Reset the option `stemmer' to the value `stem-english'. 1999-01-10 NISHIDA Keisuke * jitenban97.el: Renamed from main.el for package version 1.1. 1998-12-27 NISHIDA Keisuke * chujiten.el (chujiten-gaiji-table): Make not to use `compose-string'. (chujiten-menu-entry-p): New function. (chujiten-arrange-references): Call `lookup-arrange-references' when the entry is a menu. * iwakoku.el, chujiten.el, chiezo.el, mypaedia.el: Update for Lookup 1.0. 1998-12-04 NISHIDA Keisuke * Version 1.0pre5 released. * TODO: New file. * chujiten.el (chujiten-arrange-references): Fixed a missing. 1998-11-12 NISHIDA Keisuke * Version 1.0pre4 released. * mypaedia.el: Delete function `mypaedia-fix-by-black-list'. These are EB library's bugs. (mypaedia-arrange-references): Update for ndtp/ndeb-1.0pre5. * chujiten.el: Delete function `chujiten-fix-by-black-list'. These are EB library's bugs. (chujiten-arrange-references): Update for ndtp/ndeb-1.0pre5. 1998-11-04 NISHIDA Keisuke * iwakoku.el (iwakoku-gaiji-table): Add replacements for code "za67c" and "za67d". 1998-10-31 NISHIDA Keisuke * main.el (lookup-package-dictionary-options-alist): Set dictionary name for ndtp by default. 1998-10-29 NISHIDA Keisuke * Version 1.0pre3 released. * chujiten.el (chujiten-eiwa-entry-p): Check the code strictly. 1998-10-24 NISHIDA Keisuke * Version 1.0pre2 released. * main.el: Add comment for using with NDTPD. 1998-10-14 NISHIDA Keisuke * Version 1.0pre1 released. 1998-09-06 NISHIDA Keisuke * stem.el: New file. * chujiten.el: Use stem.el. * main.el, iwakoku.el, chujiten.el, chiezo.el, mypaedia.el: Update to package version 1.0. Delete file `main.el.ndtp'. 1998-08-12 NISHIDA Keisuke * mypaedia.el (mypaedia-internal-arrange-references): Fixed making reference. 1998-07-23 NISHIDA Keisuke * Version 0.11.1 released. 1998-07-21 NISHIDA Keisuke * iwakoku.el (iwakoku-arrange-headings): Add level 3. * iwakoku.el, chujiten.el, chiezo.el, mypaedia.el: Updated for Lookup 0.11.x. 1998-06-29 NISHIDA Keisuke * chujiten.el (chujiten-waei-arrange-levels): Make heading of level 6 if the example line has a prefix. 1998-06-14 NISHIDA Keisuke * Version 0.9.7 released. * chujiten.el, mypaedia.el: Updated for Lookup 0.9.1. 1998-06-10 NISHIDA Keisuke * Version 0.9.6 released. * iwakoku.el (iwakoku-fix-by-black-list): New arrange function. * chujiten.el (chujiten-fix-by-black-list): New arrange function. * main.el, main.el.ndtp: Rename the agent option `title' to `name'. 1998-05-31 NISHIDA Keisuke * Version 0.9.5 released. * chujiten.el, mypaedia.el: Updated for the rename of entry "heading" to "headword". 1998-05-30 NISHIDA Keisuke * Rename files `jitenban97.el*' to `main.el*' because of the package format version 0.9.1. 1998-05-30 NISHIDA Keisuke * Version 0.9.4 released. * mypaedia.el (mypaedia-fix-by-black-list): Fixed and add new entries. 1998-05-22 NISHIDA Keisuke * Version 0.9.3 released. * chujiten.el (chujiten-arrange-references-1): Fixed regexp to match waei references. 1998-05-18 NISHIDA Keisuke * Version 0.9.2 released. * chujiten.el: Good support for the variations. 1998-05-17 NISHIDA Keisuke * Version 0.9.1 released. lookup-1.4.1/packages/jitenban97/Makefile.am0000644000076400007640000000011007401227020021040 0ustar kazuhikokazuhikoEXTRA_DIST = jitenban97.el iwakoku.el chujiten.el chiezo.el mypaedia.el lookup-1.4.1/packages/jitenban97/jitenban97.el0000644000076400007640000000370507401227020021315 0ustar kazuhikokazuhiko;;; jitenban97.el --- supplement package for $B!X<-!&E5!&HW(B97$B!Y(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndtp 1.0, ndeb 1.0 ;; Format: 1.1 ;; Version: 1.0 ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (setq lookup-package-agent-options '((:title . "$B<-!&E5!&HW(B97"))) (setq lookup-package-dictionary-options-alist (cond ((eq lookup-package-agent 'ndtp) ;; ndtp $B$rMQ$$$k>l9g!"%5!<%P$G$N@_Dj$K=>$C$F<-=qL>$r=$@5$7$F2<$5$$!#(B ;; $BNc$($P(B NDTPD $B$N@_Dj%U%!%$%k$G(B name JITENBAN97 $B$H$7$?>l9g$K$O!"(B ;; $B<-=qL>$Ol9g$O!"JQ99$NI,MW$O$"$j$^$;$s!#(B (list (cons "IWAKOKU" (lookup-package-load "iwakoku")) (cons "CHUJITEN" (lookup-package-load "chujiten")) (cons "CHIEZO" (lookup-package-load "chiezo")) (cons "MYPAEDIA" (lookup-package-load "mypaedia")))))) ;;; jitenban97.el ends here lookup-1.4.1/packages/jitenban97/iwakoku.el0000644000076400007640000000562607401227021021022 0ustar kazuhikokazuhiko;;; iwakoku.el --- supplement file for $B!V4dGH9q8l<-E5!W(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndtp 1.0, ndeb 1.0 ;; Format: 1.1 ;; Version: $Id: iwakoku.el,v 1.1.1.1 2001/11/28 18:33:53 kazuhiko Exp $ ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst iwakoku-gaiji-table (lookup-new-gaiji-table '(("za321" "[$BL>(B]") ("za322" "[$BBe(B]") ("za323" "[$B7A(B]") ("za324" "[$BF0(B]") ("za325" "[$BI{(B]") ("za326" "[$B@\(B]") ("za327" "[$BA0(B]") ("za328" "[$B4'(B]") ("za329" "[$B4V(B]") ("za32a" "[$B=u(B") ("za32b" "$BF0(B]") ("za32c" "[$B@\(B") ("za32d" "$BF,(B]") ("za32e" "$BHx(B]") ("za32f" "[U]") ("za330" "[C]") ("za331" "($BC1(B)") ("za332" "($BJ#(B)") ("za333" "[A]") ("za334" "[P]") ("za335" "($B<+(B)") ("za336" "($BB>(B)") ("za337" "[$B@.(B") ("za338" "$B6g(B]") ("za339" nil "<$B2;(B>") ("za33a" nil "<$BNc(B>") ("za33b" nil "<$B%a%b(B>") ("za33c" nil "<$B0lMw(B>") ("za33f" "$(C"Q(B") ("za34f" "$(C!j(B") ("za37c" "(C)") ("za37d" "(R)") ("za722" "$B"M(B")))) (defconst iwakoku-arranges '(iwakoku-fix-by-black-list lookup-arrange-gaijis lookup-arrange-references lookup-arrange-default-headings iwakoku-arrange-headings lookup-arrange-fill-lines)) (setq lookup-package-dictionary-options (list (cons ':gaiji-table iwakoku-gaiji-table) (cons ':arranges iwakoku-arranges))) (defun iwakoku-fix-by-black-list (entry) (let ((code (lookup-entry-code entry))) (cond ((string= code "212d:d8") (search-forward "$B$5(B\n$B$?(B") (replace-match "$B$5$?(B"))))) (defun iwakoku-arrange-headings (entry) (while (re-search-forward "\\(\\[.\\]\\)\\|\\(([0-9]+)\\)\\|([$B%"(B-$B%s(B]+)" nil t) (lookup-make-region-heading (match-beginning 0) (match-end 0) (if (match-beginning 1) 3 (if (match-beginning 2) 4 5))) ;; $B$3$N<-=q$O!"9`L\$,0l9T$K$:$i$:$i$HJB$Y$i$l$F$$$k$N$G!"(B ;; $BE,Ev$J8D=j$G2~9T$7$F$*$/!#(B (save-excursion (goto-char (match-beginning 0)) (unless (or (bolp) (get-text-property (- (point) 2) 'lookup-heading)) (newline))))) ;;; iwakoku.el ends here lookup-1.4.1/packages/jitenban97/chujiten.el0000644000076400007640000002444507401227021021161 0ustar kazuhikokazuhiko;;; chujiten.el --- supplement file for $B!V?71QOB!&OB1QCf<-E5!W(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndtp 1.0, ndeb 1.0 ;; Format: 1.1 ;; Version: $Id: chujiten.el,v 1.1.1.1 2001/11/28 18:33:53 kazuhiko Exp $ ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst chujiten-gaiji-table (lookup-new-gaiji-table '(("ha121" "(+)") ("ha122" "(++)") ("ha123" "(+++)") ("ha124" "(o)") ("ha125" ",B"(B" "^") ("ha126" nil "$B!Z(B") ("ha127" nil "$B![(B") ("ha128" "[") ("ha129" "]") ("ha12a" nil "~") ("ha12b" "-") ("ha12c" nil "'-") ("ha12d" nil "`-") ("ha12e" nil "a") ("ha12f" nil "e") ("ha130" "i") ("ha131" nil "^") ("ha132" ",B"(B" "^") ("ha133" nil ",") ("ha134" ",0N(B") ("ha135" nil ",0'(B") ("ha136" nil ",0:(B") ("ha137" nil ",0!(B") ("ha138" nil ",07(B") ("ha139" nil ",05(B") ("ha13a" nil ",0,(B") ("ha13b" ",A4(B" "'") ("ha13c" nil "E") ("ha13d" ",Aa(B" "a") ("ha13e" ",Ai(B" "e") ("ha13f" ",Am(B" "i") ("ha140" ",As(B" "o") ("ha141" ",Az(B" "u") ("ha142" nil ",0+(B") ("ha143" nil ",0'(B") ("ha144" nil ",0:(B") ("ha145" nil ",0!(B") ("ha146" nil ",07(B") ("ha147" nil ",05(B") ("ha148" nil ",0,(B") ("ha149" nil "`") ("ha14a" ",A`(B" "a") ("ha14b" ",Ah(B" "e") ("ha14c" ",Al(B" "i") ("ha14d" ",Ar(B" "o") ("ha14e" ",Ay(B" "u") ("ha14f" nil ",0+(B") ("ha150" ",0+(B") ("ha151" ",BA(B" "A") ("ha152" nil "B") ("ha153" ",BF(B" "C") ("ha154" nil "D") ("ha155" ",AI(B" "E") ("ha156" nil "F") ("ha157" nil "G") ("ha158" nil "H") ("ha159" ",BM(B" "I") ("ha15a" ",BE(B" "L") ("ha15b" nil "M") ("ha15c" ",BS(B" "O") ("ha15d" nil "P") ("ha15e" nil "Q") ("ha15f" ",B@(B" "R") ("ha160" ",B&(B" "S") ("ha161" nil "T") ("ha162" ",BZ(B" "U") ("ha163" nil "V") ("ha164" nil "X") ("ha165" ",B](B" "Y") ("ha166" ",B,(B" "Z") ("ha167" ",Ba(B" "a") ("ha168" ",Bi(B" "e") ("ha169" ",Bm(B" "i") ("ha16a" ",Bs(B" "o") ("ha16b" ",Bz(B" "u") ("ha16c" ",B}(B" "y") ("ha16d" ",A@(B" "A") ("ha16e" ",AH(B" "E") ("ha16f" ",AL(B" "I") ("ha170" ",AR(B" "O") ("ha171" nil ",0$(B") ("ha172" nil "") ("ha173" nil ",0$(B") ("ha174" nil "") ("ha175" ",Af(B") ("ha176" "") ("ha177" nil "S") ("ha178" nil "T") ("ha179" ",AY(B" "U") ("ha17a" nil "V") ("ha17b" ",A`(B" "a") ("ha17c" ",Ah(B" "e") ("ha17d" ",Al(B" "i") ("ha17e" ",Ar(B" "o") ("ha221" ",Ay(B" "u") ("ha222" nil "y") ("ha223" ",0;(B") ("ha224" ",0>(B") ("ha225" ",0<(B") ("ha226" ",0'(B") ("ha227" ",0:(B") ("ha228" ",0!(B") ("ha229" ",07(B") ("ha22a" ",05(B") ("ha22b" ",03(B") ("ha22c" ",0I(B") ("ha22d" ",0L(B") ("ha22e" ",0M(B") ("ha22f" ",0U(B") ("ha230" nil "/t") ("ha231" nil "|o") ("ha232" nil "_?") ("ha233" ",0r(B") ("ha234" ",0,(B") ("ha235" ",B3(B") ("ha236" "~") ("ha237" ",Ac(B") ("ha238" ",Aq(B") ("ha239" ",Ax(B") ("ha23a" ",AE(B") ("ha23b" ",B~(B") ("ha23c" nil "*") ("ha23d" ",A((B") ("ha23e" ",AV(B") ("ha23f" ",Ad(B") ("ha240" ",Ak(B") ("ha241" ",Ao(B") ("ha242" ",Av(B") ("ha243" ",A|(B") ("ha244" "^") ("ha245" ",Ab(B") ("ha246" ",Aj(B") ("ha247" ",An(B") ("ha248" ",At(B") ("ha249" nil "=") ("ha24a" nil "=a") ("ha24b" "=e") ("ha24c" "=i") ("ha24d" "=o") ("ha24e" "=u") ("ha24f" "=y") ("ha250" ",Bc(B") ("ha253" ",BH(B") ("ha255" ",Bh(B") ("ha257" ",B5(B") ("ha258" ",Bx(B") ("ha259" ",B9(B") ("ha25a" nil "m") ("ha25b" nil "4") ("ha25c" nil "8") ("ha25d" nil "b") ("ha25e" nil "f") ("ha25f" nil "h") ("ha260" nil "n") ("ha261" nil "p") ("ha262" nil "q") ("ha263" nil "r") ("ha264" nil "t") ("ha265" nil "1") ("ha266" nil "3") ("ha267" nil "s") ("ha268" nil "Y-") ("ha269" nil "$") ("ha26a" nil "\"") ("ha26b" "*") ("ha26c" nil "N") ("ha26d" nil "E") ("ha26e" nil "C") ("ha26f" nil "D") ("ha270" nil "G") ("ha271" nil "N") ("ha272" nil "P") ("ha273" nil "Q") ("ha274" nil ",00(B") ("ha275" nil "") ("ha276" nil ",0=(B") ("ha277" nil "") ("ha278" nil ",00(B") ("ha279" nil "") ("ha27a" nil "e") ("ha27b" nil "1") ("ha27c" nil "2") ("ha27d" nil "3") ("ha27e" nil "4") ("ha321" nil "5") ("ha322" nil "6") ("ha323" nil "7") ("ha324" nil "8") ("ha325" nil "9") ("ha326" nil "0") ("ha327" nil "-") ("ha328" nil "+") ("ha329" nil "n") ("ha32a" nil "x") ("ha32b" nil "b") ("ha32c" nil "1") ("ha32d" nil "2") ("ha32e" nil "3") ("ha32f" nil "4") ("ha330" nil "5") ("ha331" nil "6") ("ha332" nil "7") ("ha333" nil "8") ("ha334" nil "9") ("ha335" nil "0") ("ha336" nil "-") ("ha337" nil "+") ("ha338" nil "a") ("ha339" nil "e") ("ha33a" nil "i") ("ha33b" nil "j") ("ha33c" nil "k") ("ha33d" nil "m") ("ha33e" nil "n") ("ha33f" nil "p") ("ha340" nil "r") ("ha341" nil "s") ("ha342" nil "v") ("ha343" nil "x") ("ha344" nil "y") ("ha345" nil "z") ("ha346" nil "'") ("ha347" nil "`") ("ha348" nil "\"") ("ha349" nil "^") ("ha34a" nil "v") ("ha34b" nil "-") ("ha34c" nil "~") ("ha34d" nil "*") ("ha34e" nil ",") ("ha34f" nil ",") ("ha350" nil ".") ("ha351" nil ",B3(B") ("ha354" "$(C"[(B") ("ha357" ",00(B") ("ha358" ",Aa(B") ("ha359" ",Ai(B") ("ha35a" ",As(B") ("ha35b" ",A`(B") ("ha35c" ",Ah(B") ("ha35d" ",Ab(B") ("ha35e" ",Aj(B") ("ha35f" ",An(B") ("ha360" ",At(B") ("ha361" ",Ad(B") ("ha362" ",Ak(B") ("ha363" ",Av(B") ("ha364" ",A|(B") ("ha365" ",Aq(B") ("ha366" nil "a") ("ha367" ",0N(B") ("ha372" nil "2") ("ha373" nil "3") ("ha374" nil "0") ("ha375" nil "1") ("ha376" nil "2") ("ha377" nil "3") ("ha378" nil "4") ("ha379" nil "5") ("ha37a" nil "6") ("ha37b" nil "8") ("ha37c" nil "1") ("ha37d" nil "4") ("ha37e" nil "5") ("ha421" nil "7") ("ha422" nil "8") ("ha423" nil "9") ("ha424" nil "a") ("ha425" nil "G") ("ha426" nil "P") ("ha429" nil "x") ("ha42a" nil "+") ("ha42b" nil "-") ("ha42c" nil "+") ("ha430" nil "0") ("ha431" nil "6") ("ha432" ",AE(B") ("ha433" nil "n") ("za321" "[$BL>(B]") ("za322" "[$BBe(B]") ("za323" "[$B7A(B]") ("za324" "[$BF0(B]") ("za325" "[$BI{(B]") ("za326" "[$B@\(B]") ("za327" "[$BA0(B]") ("za328" "[$B4'(B]") ("za329" "[$B4V(B]") ("za32a" "[$B=u(B") ("za32b" "$BF0(B]") ("za32c" "[$B@\(B") ("za32d" "$BF,(B]") ("za32e" "$BHx(B]") ("za32f" "[U]") ("za330" "[C]") ("za331" "($BC1(B)") ("za332" "($BJ#(B)") ("za333" "[A]") ("za334" "[P]") ("za335" "($B<+(B)") ("za336" "($BB>(B)") ("za337" "[$B@.(B") ("za338" "$B6g(B]") ("za339" nil "<$B2;(B>") ("za33a" nil "<$BNc(B>") ("za33b" nil "<$B%a%b(B>") ("za33c" nil "<$B0lMw(B>") ("za33f" "$(C"Q(B") ("za34e" "$B!](B") ("za34f" "$(C!j(B") ("za37c" "(C)") ("za37d" "(R)") ("za722" "$B"M(B")))) (defconst chujiten-arranges '(lookup-arrange-gaijis chujiten-arrange-references chujiten-arrange-levels lookup-arrange-fill-lines)) (setq lookup-package-dictionary-options (list (cons ':gaiji-table chujiten-gaiji-table) (cons ':arranges chujiten-arranges) (cons ':stemmer 'stem-english))) (defconst chujiten-reference-regexp (cond ((eq lookup-package-agent 'ndtp) "$B"*(B<\\([0-9a-f:]+\\)>") ((eq lookup-package-agent 'ndeb) "$B"*(B"))) (defconst chujiten-eiwa-reference-regexp (concat chujiten-reference-regexp "\\([a-zA-Z' ]*[$B#0(B-$B#9(B]*\\>\\)")) (defconst chujiten-waei-reference-regexp (concat chujiten-reference-regexp "\\([^ ,.\n]*\\)")) (defun chujiten-arrange-references (entry) (if (chujiten-menu-entry-p entry) (lookup-arrange-references entry) (let ((case-fold-search nil) (dictionary (lookup-entry-dictionary entry)) (regexp (if (chujiten-eiwa-entry-p entry) chujiten-eiwa-reference-regexp chujiten-waei-reference-regexp)) start region code heading) (while (re-search-forward regexp nil t) (setq start (match-beginning 0)) (setq code (match-string 1) heading (match-string 2)) (replace-match (concat "$B"*(B" heading) t t) (setq entry (lookup-make-entry dictionary code heading)) (lookup-set-link start (point) entry))))) (defun chujiten-arrange-levels (entry) (if (chujiten-eiwa-entry-p entry) (chujiten-eiwa-arrange-levels entry) (chujiten-waei-arrange-levels entry))) (defun chujiten-eiwa-arrange-levels (entry) ;; $B8+=P$78l$r(B level 1 (when (looking-at "\\(([+o]+)\\)?\\([^/\n]*\\) *\\(/[^/\n]+/\\)?$") (lookup-make-region-heading (match-beginning 2) (match-end 2) 1)) (forward-line) ;; level 2-6 (let ((case-fold-search nil) n (regexp (concat "^\\($B!](B\\[[^]\n]+\\]\\)\\|" ; level 2 "^\\([A-Z]\\>\\)\\|" ; level 3 "^\\([0-9]+\\)?\\([a-z]\\)?\\>\\|" ; level 4, 5 "^\\(\\*.*\\)"))) ; level 6 (while (re-search-forward regexp nil t) (setq n 1) (while (<= n 6) (if (match-beginning n) (lookup-make-region-heading (match-beginning n) (match-end n) (1+ n))) (setq n (1+ n)))))) (defun chujiten-waei-arrange-levels (entry) (lookup-make-region-heading (point) (progn (end-of-line) (point)) 1) (forward-line) (while (re-search-forward "^\\([0-9]+\\)\\|^\\($B!ZJ8Nc![(B\\)?\\(\\*.*\\)" nil t) (if (match-beginning 1) (lookup-make-region-heading (match-beginning 1) (match-end 0) 4) (lookup-make-region-heading (match-beginning 3) (match-end 3) 6)))) (defun chujiten-eiwa-entry-p (entry) (string< (lookup-entry-code entry) "6e8d")) (defun chujiten-menu-entry-p (entry) (let ((code (lookup-entry-code entry))) (or (string< code "17a2") (string< "a773" code)))) ;;; chujiten.el ends here lookup-1.4.1/packages/jitenban97/chiezo.el0000644000076400007640000000511707401227020020623 0ustar kazuhikokazuhiko;;; chiezo.el --- supplement file for $B!VCN7CB"#1#9#9#7!W(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndtp 1.0, ndeb 1.0 ;; Format: 1.1 ;; Version: $Id: chiezo.el,v 1.1.1.1 2001/11/28 18:33:52 kazuhiko Exp $ ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst chiezo-gaiji-table (lookup-new-gaiji-table '(("ha621" "*") ("ha622" ",00(B") ("ha623" ",Aa(B") ("ha624" ",Ai(B") ("ha625" ",As(B") ("ha626" ",A`(B") ("ha627" ",Ah(B") ("ha628" ",Ab(B") ("ha629" ",Aj(B") ("ha62a" ",An(B") ("ha62b" ",At(B") ("ha62c" ",Ad(B") ("ha62d" ",Ak(B") ("ha62e" ",Av(B") ("ha62f" ",A|(B") ("ha630" ",Aq(B") ("ha634" ",Am(B") ("ha637" ",A{(B") ("ha638" ",Az(B") ("ha63d" nil "2") ("ha63e" nil "3") ("ha63f" nil "0") ("ha640" nil "1") ("ha641" nil "2") ("ha642" nil "3") ("ha643" nil "4") ("ha644" nil "5") ("ha645" nil "6") ("ha646" nil "8") ("ha647" nil "1") ("ha648" nil "4") ("ha649" nil "5") ("ha64a" nil "7") ("ha64b" nil "8") ("ha64c" nil "9") ("ha64d" nil "a") ("ha64e" nil "G") ("ha64f" nil "P") ("ha652" nil "+") ("ha653" nil "-") ("ha654" nil "+") ("ha657" nil "0") ("ha658" nil "6") ("ha659" ",AE(B") ("ha65a" nil "n") ("za423" "$B"N(B") ("za424" nil "") ("za428" "(R)") ("za43f" "(C)") ("za44a" "[$B3$(B]") ("za44b" "[$B?7(B]") ("za460" "$B"e(B2")))) (defconst chiezo-arranges '(lookup-arrange-gaijis lookup-arrange-references lookup-arrange-default-headings chiezo-arrange-headings lookup-arrange-fill-lines)) (setq lookup-package-dictionary-options (list (cons ':gaiji-table chiezo-gaiji-table) (cons ':arranges chiezo-arranges))) (defun chiezo-arrange-headings (entry) (when (re-search-forward "^<.*>$" nil t) (lookup-make-region-heading (match-beginning 0) (match-end 0) 2))) ;;; chiezo.el ends here lookup-1.4.1/packages/jitenban97/mypaedia.el0000644000076400007640000001161607401227020021134 0ustar kazuhikokazuhiko;;; mypaedia.el --- supplement file for $B!V%^%$%Z%G%#%"#9#7!W(B ;; Copyright (C) 1999 Lookup Development Team ;; Author: Keisuke Nishida ;; Target: ndtp 1.0, ndeb 1.0 ;; Format: 1.1 ;; Version: $Id: mypaedia.el,v 1.1.1.1 2001/11/28 18:33:52 kazuhiko Exp $ ;; This program 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 ;; of the License, or (at your option) any later version. ;; This program 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 this program; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ;;; Code: (require 'lookup-package) (defconst mypaedia-gaiji-table (lookup-new-gaiji-table '(("ha121" ",A4(B") ("ha122" ",0,(B") ("ha123" ",07(B") ("ha124" ",0#(B") ("ha125" ",0'(B") ("ha126" ",0I(B") ("ha127" ",0U(B") ("ha128" ",0M(B") ("ha129" ",0r(B") ("ha12a" "`") ("ha12b" nil "1/2") ("ha12c" nil "1/3") ("ha12d" ",AA(B") ("ha12e" ",Aa(B") ("ha12f" ",A@(B") ("ha130" ",A`(B") ("ha133" ",AB(B") ("ha134" ",Ab(B") ("ha136" ",AD(B") ("ha137" ",Ad(B") ("ha138" ",AC(B") ("ha139" ",Ac(B") ("ha13a" ",AE(B") ("ha13b" ",Ae(B") ("ha13c" ",AF(B") ("ha13d" ",Af(B") ("ha154" ",Aj(B") ("ha157" ",AK(B") ("ha158" ",Ak(B") ("ha161" ",Am(B") ("ha162" ",AL(B") ("ha168" ",AO(B") ("ha169" ",Ao(B") ("ha16a" ",0!(B") ("ha16b" ",0Z(B") ("ha16e" ",B#(B") ("ha17a" ",AS(B") ("ha17b" ",As(B") ("ha17c" ",AR(B") ("ha17d" ",Ar(B") ("ha222" ",AT(B") ("ha223" ",At(B") ("ha224" ",AV(B") ("ha225" ",Av(B") ("ha226" ",AU(B") ("ha227" ",Au(B") ("ha228" ",AX(B") ("ha229" ",Ax(B") ("ha22e" ",01(B") ("ha22f" ",00(B") ("ha242" ",Az(B") ("ha243" ",AY(B") ("ha244" ",Ay(B") ("ha247" ",A\(B") ("ha248" ",A|(B") ("ha25b" ",0H(B") ("ha25c" ",0L(B") ("za121" nil ",A4(B") ("za122" nil ",0,(B") ("za123" nil ",07(B") ("za124" nil ",0#(B") ("za125" nil ",0'(B") ("za126" nil ",0I(B") ("za127" nil ",0U(B") ("za128" nil ",0M(B") ("za129" nil ",0r(B") ("za12a" nil "`") ("za12b" nil "1/2") ("za12c" nil "1/3") ("za12d" nil ",AA(B") ("za12e" nil ",Aa(B") ("za12f" nil ",A@(B") ("za130" nil ",A`(B") ("za133" nil ",AB(B") ("za134" nil ",Ab(B") ("za136" nil ",AD(B") ("za137" nil ",Ad(B") ("za138" nil ",AC(B") ("za139" nil ",Ac(B") ("za13a" nil ",AE(B") ("za13b" nil ",Ae(B") ("za13c" nil ",AF(B") ("za13d" nil ",Af(B") ("za154" nil ",Aj(B") ("za157" nil ",AK(B") ("za158" nil ",Ak(B") ("za161" nil ",Am(B") ("za162" nil ",AL(B") ("za168" nil ",AO(B") ("za169" nil ",Ao(B") ("za16a" nil ",0!(B") ("za16b" nil ",0Z(B") ("za16e" nil ",B#(B") ("za17a" nil ",AS(B") ("za17b" nil ",As(B") ("za17c" nil ",AR(B") ("za17d" nil ",Ar(B") ("za222" nil ",AT(B") ("za223" nil ",At(B") ("za224" nil ",AV(B") ("za225" nil ",Av(B") ("za226" nil ",AU(B") ("za227" nil ",Au(B") ("za228" nil ",AX(B") ("za229" nil ",Ax(B") ("za22e" nil ",01(B") ("za22f" nil ",00(B") ("za242" nil ",Az(B") ("za243" nil ",AY(B") ("za244" nil ",Ay(B") ("za247" nil ",A\(B") ("za248" nil ",A|(B") ("za25b" nil ",0H(B") ("za25c" nil ",0L(B")))) (defconst mypaedia-arranges '(lookup-arrange-gaijis mypaedia-arrange-references lookup-arrange-default-headings lookup-arrange-fill-lines)) (setq lookup-package-dictionary-options (list (cons ':gaiji-table mypaedia-gaiji-table) (cons ':arranges mypaedia-arranges))) (defconst mypaedia-reference-regexp (cond ((eq lookup-package-agent 'ndtp) "$B"*(B\\(.*\\)<\\([0-9a-f:]+\\)>\n") ((eq lookup-package-agent 'ndeb) "$B"*(B\\(.*\\)\n"))) (defun mypaedia-arrange-references (entry) ;; $B$3$N<-=q$O%j%s%/$,%F%-%9%H$N:G8e$K$^$H$a$i$l$F$$$k$N$@$,!"(B ;; $BB>$N<-=q$K9g$o$;$F!"%F%-%9%H$NESCf$K:n$k!#(B (let ((dictionary (lookup-entry-dictionary entry)) heading code start end) (while (re-search-forward mypaedia-reference-regexp nil t) (setq start (match-beginning 0) end (match-end 0)) (setq heading (match-string 1) code (match-string 2)) (setq entry (lookup-make-entry dictionary code heading)) (delete-region start end) (if (search-backward (concat "$B"M(B" heading) nil t) (setq start (match-beginning 0) end (match-end 0)) (insert "$B"*(B" heading "\n") (setq end (1- (point)))) (lookup-set-link start end entry)))) ;;; mypaedia.el ends here lookup-1.4.1/NEWS0000644000076400007640000005125510557545327014016 0ustar kazuhikokazuhikoLookup NEWS -- history of user-visible changes. 10 Dec 2001 Copyright (C) 1999-2001 Lookup Development Team Copyright (C) 2001-2004 Electronic Dictionary Open Laboratory See the end for copying conditions. Please send Lookup bug reports to lookup@ring.gr.jp. * Changes in Lookup 1.4 ** ndeb $B$G2hA|$N%$%s%i%$%sI=<($N%5%]!<%H(B (XEmacs, GNU Emacs 21)$B!#(B ** GNU Emacs 21 $B$G(B bitmap-mule $BL5$7$N30;z$*$h$S%m%4I=<($N%5%]!<%H(B ** ndeb $B$G%a%K%e!<8!:w$N2~A1!#%3%T!<%i%$%HI=<($Nl9g$K%(%i!<$r5/$3$9$h$&$K$7$?!#(B * Changes in Lookup 1.0 ** coding $B$N@_Dj$,(B in/out $B0l$D$K$J$C$?!#(B ** lookup-cite-style $B$rGQ;_!#(Blookup-gaiji-alternate $B$rF3F~!#(B ** $B@lMQ%$%s%9%H!<%i$rF3F~$7$?!#(BRADME $B$r;2>H!#(B ** $B%*%W%7%g%s;XDj$N%9%?%$%k$rJQ$($?!#(B $B:#8e(B `lookup-search-agents' $B$Oe$N$h$&$K3F%*%W%7%g%s$O(B `:' $B$G;O$^$k$h$&$K$7$?$N$G!"(B `lookup-set-agent-option' $B$J$I$rMQ$$$k>l9g$b(B `:' $B$rDI2C$9$k$3$H!#(B $B:G6a$N(B Emacs ($B%P!<%8%g%s(B 20 $B0J9_(B)$B$G$"$l$P!"%/%*!<%H$rIU$1$:$K$7$?!#(B $BJQ?t(B `lookup-search-modules' $B$rF3F~!#l9g!"(B"%EVERY" $B$H$$$&L>A0$N%b%8%e!<%k$,(B $B0l$D$@$1@8@.$5$l$k!#(B ** C-u M-x lookup-exit $B$H$9$k$3$H$G(B Lookup $B$r6/@)=*N;$9$k$h$&$K$7$?!#(B lookup-exit $B$O(B Emacs $B=*N;;~$K$b8F$P$l$k$,!"2?$i$+$N%P%0$G$3$3$G%(%i!<$,(B $BH/@8$9$k$H(B Emacs $B$rH4$1$i$l$J$/$J$k!#$=$N$h$&$J$H$-$K$3$l$rMh(B `q' $B$K$h$j:G8e$N%P%C%U%!$KLa$C$F$$$?(B(lookup-quit)$B$N$r(B $B$d$a!"(B`q' $B$OC1$K(B Lookup $B$N%&%#%s%I%&$rJD$8$k(B(lookup-suspend)$B$@$1$K$J$C$?!#(B ** $B<-=q%*%W%7%g%s(B filter $B$rGQ;_$7$?!#(B ** lookup-get-{module,agent,dictionary} $B$rDI2C!#(B ** Agent changes *** $B%(!<%8%'%s%H$N(B suspend $B=hM}$rGQ;_$7$?!#(Bndtp $B$N(B suspend $B%*%W%7%g%s$bGQ;_!#(B *** ndic $B%(!<%8%'%s%H$,(B SDIC $B7A<0$N<-=q$KBP1~$7$?!#(B $B%(!<%8%'%s%H$K;XDj$9$k%G%#%l%/%H%j$K<-=q%U%!%$%k$rCV$/$@$1$G$h$$!#(B dictd $B7A<0$N<-=q$H$N:.:_$b2DG=!#8!:wJ}<0$O<+F0E*$KH=Dj$5$l$k(B (direct, grep, array $B$N$$$:$l$+(B)$B!#>\$7$/$O(B SDIC $B$N(B Web $B%Z!<%8$r;2>H!#(B *** ndeb $B$N%*%W%7%g%s(B :coding $B$,<-=qKh$K;XDj=PMh$k$h$&$K$J$C$?!#(B $B$^$?!"F~=PNO$r$^$H$a$F(B(cons $B$G$O$J$/(B)$B0l$D$N%7%s%\%k$r$7$?!#(B * Changes in Lookup 1.0pre9 ** $B8!:wJ}<0$KBP$9$k9M$(J}$r8+D>$7$?!#(B $B%G%U%)%k%H$N8!:wJ}<0$r!V%-!<%o!<%I8!:w!W$+$i!V40A40lCW8!:w!W$KJQ$($?!#(B $B$=$l$KH<$J$$!"3F%(!<%8%'%s%H$N8!:wJ}<0$bJQ99$7$?!#:#8e$N8!:wJ}<0$K$D$$$F(B $B>\$7$/$O!"%^%K%e%"%k$N(B Default Method $B5Z$S(B Search Methods $B$r;2>H!#(B ** Mule $B$G$b$=$N$^$^$G(B face $B$,IU$/$h$&$K$J$C$?!#(B $B%^%K%e%"%k$N(B Customize Face $B$r;2>H!#(B ** Command changes. *** $B%3%^%s%I(B `lookup-selection' $B$r(B `lookup-secondary' $B$K2~L>$7$?!#(B *** $B%3%^%s%I(B `lookup-entry-search-selection' $B$r(B `lookup-selection' $B$K2~L>$7$?!#(B $B%^%K%e%"%k$N(B Search Commands $B$r;2>H!#(B *** $B3F$7$?!#(B ** Variable changes. *** $BJQ?t(B `lookup-open-function' $B$r%+%9%?%^%$%:JQ?t$+$i30$7$?!#(B $B:#8e$O3F@\8F$S=P$7$FM_$7$$!#(B $B8!:w%3%^%s%I$N%3%s%H%m!<%kJQ?t$H$7$F$OJQ$o$i$:;H$($k!#(B $B$^$?!"@_Dj2DG=$JCM(B `lookup-full-window' $B$r(B `lookup-full-screen' $B$K2~L>$7$?!#(B *** $BJQ?t(B `lookup-cite-policy' $B$r(B `lookup-cite-style' $B$K2~L>$7$?!#(B $B$^$?!"<-=q%*%W%7%g%s(B `cite-style' $B$rM%@hE*$KMQ$$$k$3$H$K$7$?!#(B $B%^%K%e%"%k$N(B Cite Contents $B$r;2>H!#(B ** Content mode changes. *** $B?7$7$$%3%^%s%I(B `w'$B!#(B $B%j!<%8%g%s$NFbMF$r%-%k%j%s%0$KJ]B8$9$k!#(B $B%^%K%e%"%k$N(B Cite Contents $B$r;2>H!#(B ** Agent changes. *** $B3FH!#(B *** $BJQ?t(B ndtp-service-name, ndtp-account-name $B$rGQ;_!#(B *** $BJQ?t(B ndict-service-name $B$rGQ;_!#(B $B:#8e$O%*%W%7%g%s$rD>@\;XDj$9$k$3$H!#(B ** $B:Y$+$J%P%0=$@5$r$$$m$$$m!#(B * Changes in Lookup 1.0pre8 ** Texinfo $B%^%K%e%"%k$rBgI}99?7Cf!#(B $B$?$@$7!"$^$@ESCf$^$G$7$+?J$s$G$*$i$:!"FbMF$O$+$J$j$"$d$7$$!&!&(B ** $BJQ?t(B `lookup-search-agents' $B$N%*%W%7%g%s;XDj$N=q<0$,JQ$o$C$?!#(B $B=>Mh!"(B (setq lookup-search-agents '((agent ((key1 . val1) (key2 . val2))))) $B$H$7$F$$$?$N$r!"3g8L$r0lAH8:$i$7$F!":#8e$O$r(B stem-english.el $B$H(B $BJQ99$7$F$"$k!#%G%U%)%k%H$G(B Lookup $B$HF1;~$K%$%s%9%H!<%k$9$k$h$&$K$7$?!#(B stemming $B4X?t$NL>A0$,(B stem-english $B$KJQ$o$C$F$$$k$N$G!"@_Dj$OA0$r!"%Q%C%1!<%8L>(B ($B%G%#%l%/%H%jL>(B)$B$K9g$o$;$F(B PACKAGE.el $B$H$9$k$3$H$K$7$?!#(B ** Command changes. *** $B8!:w%3%^%s%I(B `lookup-*-other-window' $B$rGQ;_$7$?!#(B $BBe$o$C$F(B `lookup-*-full-window' $B$rF3F~$7$?!#(B *** $BI8=`$N8!:w%3%^%s%I$,(B prefix-arg $B$r@\$K8F$V!#(B *** $B?7$7$$%3%^%s%I(B `lookup-debug'$B!#(B `lookup-debug-mode' $B5Z$S(B `debug-on-error' $B$NN>J}$r(B t $B$K%;%C%H$9$k!#(B ** Entry mode chagens. *** $B?7$7$$%+%9%?%^%$%:JQ?t(B `lookup-cite-policy'$B!#(B $B%3%^%s%I(B `w' $B$G%(%s%H%jK\J8$r%3%T!<$9$k$H$-$NJ}?K$r;XDj$9$k!#(B *** $B?7$7$$%3%^%s%I(B `h'$B!#(B Entry $B%P%C%U%!$H(B Content $B%P%C%U%!$G(B `h' $B$rO"BG$9$k$3$H$G!"Aj8_$K%P%C%U%!(B $B$r1}I|=PMh$k$h$&$K$7$?!#(B *** $B?7$7$$%3%^%s%I(B `O'$B!#(B $B=>Mh$N(B `o' $B$KBe$($F!"JL%3%^%s%I$G%*!<%W%s$H$$$&FC" $B$H$$$&7A<0$N%j%U%!%l%s%9$K%G%U%)%k%H$GBP1~$9$k$h$&(B $B$K$7$?!#(B *** ndic $B$H(B ndict $B$,!"I8=`$G$O(B fill paragraph $B$r9T$J$o$J$/$J$C$?!#(B $BI,MW$,$"$l$P!"<-=q%*%W%7%g%s(B arranges $B$K(B `lookup-arrange-fill-paragraph' $B$r2C$($k$3$H!#(B *** ndkks $B$,!"B>$N<-=q$G8uJd$,8+IU$+$C$?$H$-$K$b8!:w$r9T$J$&$h$&$K$7$?!#(B *** ndspell $B$,!"(B`g' $B$G:F8!:w$r9T$J$C$?$H$-$K$O8!:w$r9T$J$&$h$&$K$7$?!#(B ** $Bl9g$K$h$C$F8G$^$C$F$7$^$&$H$$$&LdBj$KBP=h$7$?!#(B *** X $B$J$7$G%3%s%Q%$%k$7$?(B Emacs $B$G(B `frame-visible-p' $B$,$J$$$H$$$&(B $B%(%i!<$,=P$k$N$KBP=h$7$?!#(B * Changes in Lookup 1.0pre7 ** Lookup $B$N%[!<%`%Z!<%8$N@5<0$J%"%I%l%9$O(B http://www.ring.gr.jp/openlab/lookup/ $B$H$J$C$?!#$3$3$r%"%/%;%9$9$k$HB>$N(B Ring Server $B$K<+F0E*$K7R$,$k!#(B ** XEmacs 20.4 $B$G(B (setq lookup-use-kakasi t) $B$K$h$kF|K\8l$N@Z$j=P$7$,(B $BF0$/$h$&$K$J$C$?!#(BMule $B$NJ}$O$^$@!#(B ** elisp $B%U%!%$%k$N%P%$%H%3%s%Q%$%k;~$K(B warning $B$r=P$5$J$$$h$&$K$7$?!#(B $B$3$l$O(B warning $B$rL5;k$9$k$h$&@_Dj$7$?$@$1$G!"LdBj$r$J$/$7$?$o$1$G$O$J$$!#(B warning $B$r=P$9$?$a$K$O!"(Blisp/lookup-compile.el $B$K!"$$$/$D$+$N:Y$+$J%P%0$r=$@5!#(B * Changes in Lookup 1.0pre6 ** Lookup $B$N%[!<%`%Z!<%8$,0\F0$7$?!#?7$7$$(B URL $B$OH!#(B ** $B$$$/$D$+$N%P%0=$@5!#(B * Changes in Lookup 1.0pre5 ** XEmacs $B$G30;z>pJs$,%(%s%H%j$K4^$^$l$F$7$^$&%P%0$r=$@5!#(B ** ndkks $B$d(B ndspell $B$G!"B>$N<-=q$G%(%s%H%j$,8+IU$+$i$J$+$C$?>l9g$K(B $B$N$_8!:w$r9T$J$&=hM}$NH=Dj$r$-$A$s$H$7$?!#(B * Changes in Lookup 1.0pre4 ** $B?7$7$$I8=`8!:w%3%^%s%I(B `lookup-word'$B!#(B $B%+!<%=%k0LCV$NC18l$rB(:B$K8!:w$9$k!#(Bview-mode-map $B$J$I$GE,Ev$J%-!<$K(B $B%P%$%s%I$7$F$*$/$H!"%o%s%?%C%A$G8!:w=PMh$FJXMx!#(B ** $B%U%C%/(B `lookup-load-hook' $B$rDI2C$7$?!#(B lookup.el $B$NFI$_9~$_$,40N;$7!"99$K$$$/$D$+$N=i4|2=$,=*N;$7$?;~E@$G(B $B8F$S=P$5$l$k!#(B ** $B%(!<%8%'%s%H%*%W%7%g%s(B `enable' $B$,;XDj$5$l$?>l9g!"$=$N=g$K<-=q$r(B $BJB$Y49$($k$h$&$K$7$?!#(B ** stemming $B$5$l$?%(%s%H%j$K$O8+=P$78l$K$*$^$1$rIU$1$F$o$+$k$h$&$K$7$?!#(B ** ndtp/ndeb changes. *** $BJQ?t(B {ndtp,ndeb}-reference-pattern $B$rDI2C$7$?!#(B $B<-=q$N%j%U%!%l%s%9$N%Q%?!<%s$r;XDj$9$k!#(B *** $BJQ?t(B {ndtp,ndeb}-default-filter-functions $B$rGQ;_$7$?!#(B $BBe$o$j$K!"O"B3$7$F=EJ#$7$?%(%s%H%j$OH$7$F!"$b$&0lEY@_Dj$7D>$7$F2<$5$$!#(B * Changes in Lookup 1.0b2 ** $B%P%0=$@5!#(B *** make $B$G(B elisp $B%U%!%$%k$r%P%$%H%3%s%Q%$%k$7$?$H$-!"F|K\8l$,@5$7$/(B $BG'<1$5$l$F$J$+$C$?$N$r=$@5!#(B *** char-after $B$,(B nil $B$rJV$7$?$H$-%(%i!<$K$J$k$N$r=$@5!#(B * Changes in Lookup 1.0b1 ** $B%P%0=$@5!#(B *** $B30;z$rMxMQ$G$-$k$+$I$&$+$NH=Dj$KLdBj$,$"$C$?$N$r=$@5!#(B *** ndict $B$G8!:w7k2L$NI=<($K<:GT$9$k$N$r=$@5!#(B * Changes in Lookup 1.0b0 ** $B?7$7$$@_DjMQ4X?t(B `lookup-set-agent-option', `lookup-set-dictionary-option'$B!#(B $B=i4|2=%U%!%$%k$G<-=q$d%(!<%8%'%s%H$N%*%W%7%g%s@_Dj$KMQ$$$k$3$H$,=PMh$k!#(B $B$3$l$i$N4X?t$O$=$l$>$l(B `lookup-agent-options-alist'$B!"(B `lookup-dictionary-options-alist' $B$r:F@_Dj$7!"Jd=u%Q%C%1!<%8$K$h$k@_Dj$b(B $B>e=q$-$9$k$N$G!"O$G$9(B" $B$H$$$C$?J8$N(B "$BF|K\8l(B" $B$NItJ,$K%+!<%=%k$rCV$$$F(B lookup-pattern $B$9$k$H!"(B default $B$N8!:w8l$H$7$F(B "$BF|K\8l(B" $B$,A*$P$l$k!#(B $B$?$@$7!"(BGNU Emacs $B$G$7$+F0:n$7$J$$!#(B-w $B%*%W%7%g%s$N;H$($k(B KAKASI $B$,I,MW!#(B ** $B8!:w%(!<%8%'%s%H(B `ndkks' $B$rG[I[J*$KF~$lD>$7$?!#(B ** $B%P%0=$@5!#(B *** Entry $B%P%C%U%!$G(B `w' $B$,@5$7$/F0:n$7$J$+$C$?$N$r=$@5!#(B *** `lookup-init-file' $B$N=i4|CM$H$7$F!"(B`init-file-user' $B$rMxMQ$9$k$h$&$K$7$?!#(B $B$D$^$j!"(BEmacs $B$r(B `emacs -u foo' $B$N$h$&$K5/F0$7$?>l9g!"%G%U%)%k%H$N=i4|2=(B $B%U%!%$%k$H$7$F(B "~foo/.lookup" $B$,MxMQ$5$l$k!#(B * Changes in Lookup 0.9.6 ** $B%P%0=$@5!#(B *** $B8!:w$r3+;O$7$?$H$-!":n6HCf$N%P%C%U%!$,(B kill $B$5$l$F$7$^$&$3$H$,(B $B$"$k$H$$$&%P%0$r7W$J(B keybind $B$,;D$C$F$$$?$N$rpJs$rI=<($9$k!#(B *** $B?7$7$$%3%^%s%I(B `L'(lookup-entry-list-links)$B!#(B Content $B%P%C%U%!$N%j%s%/$rA4$F(B Entry $B%P%C%U%!$K%j%9%H$9$k!#(B ** $B$$$/$D$+$N%P%0=$@5!#(B * Changes in Lookup 0.9 ** XEmacs $B$G30;z$rI=<(=PMh$k$h$&$K$J$C$?!#(B eblook 0.9 $B0J9_$+(B NDTPD 2.0 $B0J9_$H6&$KMxMQ$9$l$P!"FCJL$J@_Dj$NI,MW$b$J$/!"(B $B30;z$,I=<($5$l$k!#(B ** Lookup $BuBV$rJ]B8$9$k$h$&$K$7$?!#(B $B?7$7$$JQ?t(B `lookup-save-configuration' $B$r(B nil $B$K;XDj$9$k$3$H$G!"$3$N?6Iq(B $B$$$rM^@)$G$-$k!#(B ** $BJQ?t(B `lookup-debug-mode' $B$rDI2C$7$?!#(B non-nil $B$r;XDj$9$k$3$H$G!"$$$/$D$+$N?6Iq$$$,(B debug $B8~$-$K$J$k!#(B ** $BJQ?t(B `lookup-entry-max-hits' $B$r(B `lookup-max-hits' $B$K2~L>$7$?!#(B $BJQ?t(B `lookup-max-text' $B$rDI2C$7$?!#(B ** $Bu67$K1~$8$F%@%$%J%_%C%/$KI=<($9$k$h$&$K$7$?!#(B $B$?$@$7!"(B`lookup-entry-filter-functions' $B$,@_Dj$5$l$F$$$k>l9g$K$O!"(B $B=hM}$,40N;$7$F$+$i0lEY$KI=<($9$k!#(B *** $B%3%^%s%I(B `lookup-entry-lookup-pattern' $B$r(B `lookup-entry-research-pattern' $B$K2~L>$7$?!#(B *** $B0lIt$NI8=`$N(B key-binding $B$rJQ99$7$?!#(B `lookup-entry-research-pattern' - $B5l(B `l' -> $B?7(B `f' `lookup-entry-follow-reference' - $B5l(B `f' -> $B?7(B `r' `lookup-select-dictionary' - $B5l(B `d' -> $B?7(B `l' *** $B?7$7$$%3%^%s%I(B `o'(lookup-entry-open) $B$rDI2C!#(B $B8+$F$$$k9`L\$NFbMF$r!"@lMQ$NJL%b!<%I(B($B%(!<%8%'%s%H$K0MB8(B)$B$G%*!<%W%s$9$k!#(B $B8=:_!"BP1~$7$F$$$k$N$O(B ndnmz $B$N$_!#(B *** $B?7$7$$JQ?t(B `lookup-entry-cite-header', `lookup-entry-cite-prefix' $B$rDI2C!#(B `w'(lookup-entry-kill-ring-save-content) $B$G9`L\$NFbMF$r$l;XDj$9$k!#Nc$($P!"H!#(B ** $B?7$7$$%(!<%8%'%s%H(B `ndict'$B!#(B DICT $B%W%m%H%3%k(B(RFC 2229) $B$KBP1~$7$?%/%i%$%"%s%H!#(B $B%$%s%?!<%M%C%H$K8x3+$5$l$?<-=q%5!<%P$K%"%/%;%9=PMh$k!#(Betc/AGENTS $B$r;2>H!#(B ** $B?7$7$$%(!<%8%'%s%H(B `ndnmz'$B!#(B $BA4J88!:w%(%s%8%s(B Namazu $B%7%9%F%`$X$N%$%s%?!<%U%'!<%9!#(B $BBgNL$NJ8=q$r%$%s%G%C%/%92=$7!"9bB.$K8!:w$r9T$J$($k!#(Betc/AGENTS $B$r;2>H!#(B ** $B8!:w%(!<%8%'%s%H(B `ndinfo', `ndkks' $B$rI8=`$NG[I[$+$i:o=|$7$?!#(B ** ndtp changes. *** $B%(!<%8%'%s%H!&%*%W%7%g%s(B `account' $B$r@_$1$?!#(B *** $BJQ?t(B `ndtp-default-filter-functions' $B$r@_$1$?!#(B $BI8=`$G8!:w7k2L$K(B lookup-nunique $B$9$k$h$&$K$7$?!#(B *** NDTPD 2.x $B$GF3F~M=Dj$N30;z%3%^%s%I$KBP1~$7$?!#(B ** ndeb changes. *** $BJQ?t(B `ndeb-process-prompt' $B$r@_$1$?!#(B eblook $B$N%W%m%s%W%H$r$3$l$K@_Dj$9$k!#(B *** $BJQ?t(B `ndtp-default-filter-functions' $B$r@_$1$?!#(B $BI8=`$G8!:w7k2L$K(B lookup-nunique $B$9$k$h$&$K$7$?!#(B *** $B%j%U%!%l%s%9$H30;z$N%?%0$NH=DjItJ,$r!"?7HG$N(B eblook $B$K9g$o$;$?!#(B $BA0$N$b$N(B(eblook-0.8.x $B0JA0(B)$B$H$N8_49@-$O$J$$$N$GCm0U!#(B *** $B?7$7$$<-=q%*%W%7%g%s(B `stop-code'$B!#(B $B<-=q$NFbMF$N=*N;%3!<%I$r;XDj$9$k!#(B ** $B?7$7$$%(!<%8%'%s%H6&DL%*%W%7%g%s(B `select', `unselect'$B!#(B `enable', `disable' $B$HF1MM$K$7$F!"<-=q$NA*Br>uBV$r7h$a$i$l$k!#(B ** $B<-=q%*%W%7%g%s$N%G%U%)%k%HCM$H$7$F!"%(!<%8%'%s%H!&%*%W%7%g%s$r8+$K$$(B $B$/$h$&$K$7$?!#G$0U$N<-=q%*%W%7%g%s$r%(!<%8%'%s%H!&%*%W%7%g%s$H$7$F@_Dj$9(B $B$k$3$H$G!"$=$N%(!<%8%'%s%H$K4^$^$l$k$9$Y$F$N<-=q$G@_Dj$,M-8z$H$J$k!#(B ** $B?7$7$$<-=q%*%W%7%g%s(B `cite-header', `cite-prefix'$B!#(B `lookup-entry-cite-header', `lookup-entry-cite-prefix' $B$NBe$o$j$H$7$F!"(B $BM%@h$5$l$F07$o$l$k!#(B * Changes in Lookup 0.8.5 ** bitmap-mule $B$N%m!<%I$r%f!<%6$KG$$;$k$3$H$K$7$?!#(B $B30;z$rI=<($9$k$K$O!"(B~/.emacs $B$G(B (require 'bitmap) $B$H$7$F$*$/$+!"(B (setq lookup-gaiji-compose-function 'lookup-bitmap-compose) $B$H$9$k!#(B ** $B8!:w8l$,6u$J$i$P8!:w$7$J$$$h$&$K$7$?!#(B ** $B8!:wMzNr$N0\F0;~$J$I$K!"%+!<%=%k0LCV$,J]B8$5$l$k$h$&$K$7$?!#(B ** Entry $B%b!<%I$G!"%+!<%=%k0LCV$K=>$C$F%P%C%U%!$r%9%/%m!<%k$9$k$h$&$K$7$?!#(B ** $BA0J}0lCW8!:w$r<($9%7%s%\%k$r(B `prefix'$B!"8eJ}0lCW8!:w$r(B `suffix' $B$K$7$?!#(B * Lookup 0.8.4 $B$O%P%0=$@5HG$G$"$j!"L\N)$C$?JQ99E@$O$"$j$^$;$s!#(B * Lookup 0.8.3 $B$O%P%0=$@5HG$G$"$j!"L\N)$C$?JQ99E@$O$"$j$^$;$s!#(B * Changes in Lookup 0.8.2 ** Mule 2.3 $B$d(B XEmacs 20.4 $B$G$b@5>o$K%3%s%Q%$%k=PMh$k$h$&$K$J$C$?!#(B ** $B%G%U%)%k%H$N%$%s%9%H!<%k%G%#%l%/%H%j$,(B ".../site-lisp" $B$K$J$C$?!#(B ($B$?$@$7!"(BXEmacs $B$N>l9g$O(B ".../site-lisp/lookup") * Changes in Lookup 0.8.1 ** $B%$%s%9%H!<%k$9$k%G%#%l%/%H%j$r$h$j$h$/H=CG$9$k$h$&$K$J$C$?!#(B ** info $B%U%!%$%k$r%U%)!<%^%C%H$7D>$7$?!#(B ---------------------------------------------------------------------- Copyright information: Copyright (C) 1998,1999 NISHIDA Keisuke Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and this permission notice are preserved, thus giving the recipient permission to redistribute in turn. Permission is granted to distribute modified versions of this document, or of portions of it, under the above conditions, provided also that they carry prominent notices stating who last changed them. Local variables: mode: outline paragraph-separate: "[ ]*$" end: lookup-1.4.1/README0000644000076400007640000001216310557545327014172 0ustar kazuhikokazuhiko Lookup - a Search Interface http://openlab.jp/edict/lookup/ lookup-ja@ring.gr.jp Lookup $B$O(B Emacs $B%(%G%#%?$GMxMQ$G$-$k<-=q8!:w%$%s%?!<%U%'!<%9$G$9!#;THN$N(B CD-ROM $B<-=q$d%M%C%H%o!<%/$N<-=q%5!<%P$r;O$a!"MM!9$J>pJs8;$+$i4JC1$JA`:n(B $B$H@_Dj$G<-=q8!:w$,9T$J$($^$9!#(B Contents of This Distribution ========================================== - README $B$3$N%U%!%$%k(B - COPYING Lookup $B$r:FG[I[$9$k$?$a$N>r7o!"5Z$S(B Lookup $B$,L5J]>Z$G$"$k$3$H$NI=L@(B - NEWS $B$3$l$^$G$Nl9g(B ---------------------------- $B@lMQ%$%s%9%H!<%i$O(B Emacs $B$NCf$+$iD>@\l9g$d!"(Belisp $B%W%m%0%i%`$N%$%s%9%H!<%k$KIT47$l$J?M$K8~$$$F$$$^$9!#(B $B$^$::G=i$K(B Emacs $B$r5/F0$7!"(BLookup $BG[I[J*$N%H%C%W%G%#%l%/%H%j(B($B$3$N%U%!%$(B $B%k$N$"$k%G%#%l%/%H%j(B)$B$r(B Dired $B$G%*!<%W%s$7$F2<$5$$!#(Binstall.el $B$H$$$&%U%!(B $B%$%k$K%+!<%=%k$r9g$o$;!"(B`L' $B$HF~NO$9$l$PBPOCE*$K%$%s%9%H!<%k$,;O$^$j$^$9!#(B elisp $B%U%!%$%k!"5Z$S(B info $B%U%!%$%k$N%$%s%9%H!<%k%G%#%l%/%H%j$r=g$KJ9$$$F(B $B$/$k$N$G!"$*9%$_$N%G%#%l%/%H%j$rF~NO$7$F2<$5$$!#$=$N8e%3%s%Q%$%k$,;O$^$j!"(B $BL5;v%$%s%9%H!<%k$K@.8y$9$l$P$=$N;]$r5-$7$?%P%C%U%!$,I=<($5$l$^$9!#;X<($K(B $B=>$C$F@_Dj$r9T$J$C$F2<$5$$!#(B $B%3%^%s%I%i%$%s$+$il9g(B ------------------------------ $B@lMQ%$%s%9%H!<%i$O%3%^%s%I%i%$%s$+$iD>@\JN,$7$?>l9g!"%G%U%)%k%H$G>e5-$N%G%#%l%/%H%j$K%$%s%9(B $B%H!<%k$5$l$^$9!#(B make $B$rMQ$$$k>l9g(B ----------------- configure $B%W%m%0%i%`$H(B make $B$rMQ$$$k$3$H$G$b%$%s%9%H!<%k=PMh$^$9!#Nc$($P(B $BJN,$7$?>l9g!"(BEmacs $B$H$=$N(B site-lisp $B%G%#%l%/%H(B $B%j$rE,Ev$KH=CG$7$FI,MW$J%U%!%$%k$r%3%T!<$7$^$9!#(B Search Agents ========================================================== Lookup $B$G<-=q$rMxMQ$9$k$?$a$K$O!"<-=q$H8r?.$9$k$?$a$N8!:w%(!<%8%'%s%H$,(B $BI,MW$H$J$j$^$9!#$3$N%P!<%8%g%s$N(B Lookup $B$G$O!"@\8!:w(B ndeb - EPWING $B$J$I$K=`5r$7$?(B CD-ROM $B=q@R$N8D?MMxMQ(B ndtp - NDTP $B%5!<%P$rMQ$$$?!"%M%C%H%o!<%/<-=q$NMxMQ(B ndict - DICT $B%5!<%P$rMQ$$$?!"%M%C%H%o!<%/<-=q$NMxMQ(B `ndic' $B$O!"\$7$/$O!"ImB0$N%^%K%e%"%k$r;2>H$7$F2<$5$$!#(B How To Get ============================================================= Lookup $B$O(B Ring Server $B%W%m%8%'%/%H$K$h$k(B OpenLab $B$G3+H/$5$l$F$$$^$9!#(B Lookup $B$K4X$9$k>pJs8r49$O!"EE;R<-=q%*!<%W%s%i%\$N%a!<%j%s%0%j%9%H$K$F9T(B $B$o$l$F$$$^$9!#;22C$r4uK>$9$kJ}$O!"(B http://openlab.jp/edict/ $B$r$4Mw$/$@$5(B $B$$!#(B