liece-2.0+0.20030527cvs/0042755000175000017500000000000007664572576012334 5ustar bg66bg66liece-2.0+0.20030527cvs/AUTHORS0100644000175000017500000000033707663114062013357 0ustar bg66bg66Liece is mainly written by Daiki Ueno . This package based on Irchat (version 3.01) which has been distributed under GPL1 or later. Original author of Irchat is Tor Lillqvist . liece-2.0+0.20030527cvs/COPYING0100644000175000017500000004312707653572627013364 0ustar bg66bg66 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. liece-2.0+0.20030527cvs/ChangeLog0100644000175000017500000000000007072244457014052 0ustar bg66bg66liece-2.0+0.20030527cvs/INSTALL0100644000175000017500000001722707653572627013364 0ustar bg66bg66Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. liece-2.0+0.20030527cvs/Makefile.am0100644000175000017500000000022707425763553014354 0ustar bg66bg66SUBDIRS = lisp dcc etc install-package package: list='$(SUBDIRS)'; for subdir in $$list; do \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) \ done liece-2.0+0.20030527cvs/NEWS0100644000175000017500000000000007072244460012771 0ustar bg66bg66liece-2.0+0.20030527cvs/README0100644000175000017500000000223107653572630013172 0ustar bg66bg66-*- mode: text; left-margin: 2; fill-column: 70; -*- * Directory tree This package contains following directories: lisp/ - Emacs Lisp files. dcc/ - DCC external program source. doc/ - Documentation, info files, sample configuration, etc. etc/ - Miscellaneous files which decorate this program. Please read documentation under `doc' directory. * Bug reports If you write bug reports and/or suggestions for improvement, please send them to the Liece Mailing List. This mailing list is also for other general discussions (about future enhancements, customization, etc). To join the Liece ML, send an e-mail to: liece-ctl@unixuser.org with the message body, subscribe Your Name * CVS Development of Liece uses CVS, Concurrent Versions System. Latest developing version is available at CVS. (0) logging in to anonymous CVS server. % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login CVS password: [CR] # NULL string (1) checkout modules % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout liece Specify revision tag in front of the module name. (2) bootstrapping % autoreconf -f -i liece-2.0+0.20030527cvs/acinclude.m40100644000175000017500000002477707425763553014531 0ustar bg66bg66AC_DEFUN(AC_DEFINE_GNUS_PRODUCT_NAME, [echo $ac_n "defining gnus product name... $ac_c" AC_CACHE_VAL(EMACS_cv_GNUS_PRODUCT_NAME,[EMACS_cv_GNUS_PRODUCT_NAME=$1]) GNUS_PRODUCT_NAME=${EMACS_cv_GNUS_PRODUCT_NAME} AC_MSG_RESULT(${GNUS_PRODUCT_NAME}) AC_SUBST(GNUS_PRODUCT_NAME)]) AC_DEFUN(AC_CHECK_EMACS, [dnl Check for Emacsen. dnl Apparently, if you run a shell window in Emacs, it sets the EMACS dnl environment variable to 't'. Lets undo the damage. test "$EMACS" = t && EMACS= dnl Ignore cache. unset ac_cv_prog_EMACS; unset ac_cv_prog_XEMACS; AC_ARG_WITH(emacs, [ --with-emacs=EMACS compile with EMACS [EMACS=emacs, mule...]], [if test "$withval" = yes -o -z "$withval"; then AC_CHECK_PROGS(EMACS, emacs xemacs mule, emacs) else AC_CHECK_PROG(EMACS, $withval, $withval, emacs) fi]) AC_ARG_WITH(xemacs, [ --with-xemacs=XEMACS compile with XEMACS [XEMACS=xemacs]], [if test "$withval" = yes -o -z "$withval"; then AC_CHECK_PROG(XEMACS, xemacs, xemacs, xemacs) else AC_CHECK_PROG(XEMACS, $withval, $withval, xemacs) fi EMACS=$XEMACS], [XEMACS=xemacs test -z "$EMACS" && AC_CHECK_PROGS(EMACS, emacs xemacs mule, emacs)]) AC_SUBST(EMACS) AC_SUBST(XEMACS)]) AC_DEFUN(AC_EMACS_LISP, [ elisp="$2" if test -z "$3"; then AC_MSG_CHECKING(for $1) fi AC_CACHE_VAL(EMACS_cv_SYS_$1,[ OUTPUT=./conftest-$$ echo ${EMACS}' -batch -eval '\''(let ((x '${elisp}')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& AC_FD_CC 2>&1 eval ${EMACS}' -batch -eval '\''(let ((x '${elisp}')) (write-region (if (stringp x) (princ x) (prin1-to-string x)) nil "'${OUTPUT}'" nil 5))'\' >& AC_FD_CC 2>&1 retval=`cat ${OUTPUT}` echo "=> ${retval}" >& AC_FD_CC 2>&1 rm -f ${OUTPUT} EMACS_cv_SYS_$1=$retval ]) $1=${EMACS_cv_SYS_$1} if test -z "$3"; then AC_MSG_RESULT($$1) fi ]) AC_DEFUN(AC_CHECK_EMACS_FLAVOR, [AC_MSG_CHECKING([what a flavor does $EMACS have]) dnl Ignore cache. unset EMACS_cv_SYS_flavor; AC_EMACS_LISP(flavor, (cond ((featurep (quote xemacs)) \"XEmacs\")\ ((boundp (quote MULE)) \"MULE\")\ (t \"FSF Emacs\")), "noecho") case $EMACS_cv_SYS_flavor in XEmacs) EMACS_FLAVOR=xemacs;; MULE) EMACS_FLAVOR=mule;; *) EMACS_FLAVOR=emacs;; esac AC_MSG_RESULT($EMACS_cv_SYS_flavor)]) AC_DEFUN(AC_PATH_LISPDIR, [ AC_CHECK_EMACS_FLAVOR if test "$prefix" = NONE; then AC_MSG_CHECKING([prefix for your Emacs]) AC_EMACS_LISP(prefix,(expand-file-name \"..\" invocation-directory),"noecho") prefix=${EMACS_cv_SYS_prefix} AC_MSG_RESULT($prefix) fi AC_ARG_WITH(lispdir, [ --with-lispdir=DIR Where to install lisp files (for XEmacs package, use --with-packagedir instead)], lispdir=${withval}) AC_MSG_CHECKING([where lisp files should go]) if test -z "$lispdir"; then dnl Set default value theprefix=$prefix if test "$theprefix" = NONE; then theprefix=$ac_default_prefix fi lispdir="\$(datadir)/${EMACS_FLAVOR}/site-lisp/${GNUS_PRODUCT_NAME}" for thedir in share lib; do potential= if test -d ${theprefix}/${thedir}/${EMACS_FLAVOR}/site-lisp; then lispdir="\$(prefix)/${thedir}/${EMACS_FLAVOR}/site-lisp/${GNUS_PRODUCT_NAME}" break fi done fi if test ${EMACS_FLAVOR} = xemacs; then AC_MSG_RESULT([$lispdir (it will be ignored when \"make install-package[[-ja]]\" is done)]) else AC_MSG_RESULT([$lispdir]) fi AC_SUBST(lispdir) ]) AC_DEFUN(AC_PATH_ETCDIR, [ AC_ARG_WITH(etcdir,[ --with-etcdir=DIR Where to install etc files], etcdir=${withval}) AC_MSG_CHECKING([where etc files should go]) if test -z "$etcdir"; then dnl Set default value etcdir="\$(lispdir)/../etc" fi AC_MSG_RESULT($etcdir) AC_SUBST(etcdir) ]) dnl dnl Check whether a function exists in a library dnl All '_' characters in the first argument are converted to '-' dnl AC_DEFUN(AC_EMACS_CHECK_LIB, [ if test -z "$3"; then AC_MSG_CHECKING(for $2 in $1) fi library=`echo $1 | tr _ -` AC_EMACS_LISP($1,(progn (fmakunbound (quote $2)) (condition-case nil (progn (require (quote $library)) (fboundp (quote $2))) (error (prog1 nil (message \"$library not found\"))))),"noecho") if test "${EMACS_cv_SYS_$1}" = nil; then EMACS_cv_SYS_$1=no fi if test "${EMACS_cv_SYS_$1}" = t; then EMACS_cv_SYS_$1=yes fi HAVE_$1=${EMACS_cv_SYS_$1} AC_SUBST(HAVE_$1) if test -z "$3"; then AC_MSG_RESULT($HAVE_$1) fi ]) dnl dnl Perform sanity checking and try to locate the W3 package dnl AC_DEFUN(AC_CHECK_W3, [ AC_MSG_CHECKING(for acceptable W3 version) dnl Ignore cache. unset EMACS_cv_ACCEPTABLE_W3; unset EMACS_cv_SYS_w3_dir; unset EMACS_cv_SYS_w3_forms; AC_CACHE_VAL(EMACS_cv_ACCEPTABLE_W3,[ AC_EMACS_CHECK_LIB(w3_forms, w3-form-encode-xwfu,"noecho") if test "${HAVE_w3_forms}" = yes; then EMACS_cv_ACCEPTABLE_W3=yes else EMACS_cv_ACCEPTABLE_W3= fi if test "${EMACS_cv_ACCEPTABLE_W3}" = yes; then AC_EMACS_LISP(w3_dir,(file-name-directory (locate-library \"w3-forms\")),"noecho") EMACS_cv_ACCEPTABLE_W3=$EMACS_cv_SYS_w3_dir fi ]) AC_ARG_WITH(w3,[ --with-w3=DIR Specify where to find the w3 package], [ EMACS_cv_ACCEPTABLE_W3=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` ]) W3=${EMACS_cv_ACCEPTABLE_W3} AC_SUBST(W3) if test -z "${EMACS_cv_ACCEPTABLE_W3}"; then AC_MSG_RESULT(not found) else AC_MSG_RESULT(${W3}) fi ]) dnl dnl Perform sanity checking and try to locate the W3 package dnl AC_DEFUN(AC_CHECK_URL, [ AC_MSG_CHECKING(for acceptable URL version) dnl Ignore cache. unset EMACS_cv_ACCEPTABLE_URL; unset EMACS_cv_SYS_url_dir; unset EMACS_cv_SYS_url; AC_CACHE_VAL(EMACS_cv_ACCEPTABLE_URL,[ AC_EMACS_CHECK_LIB(url, url-retrieve, "noecho") if test "${HAVE_url}" = yes; then EMACS_cv_ACCEPTABLE_URL=yes else EMACS_cv_ACCEPTABLE_URL= fi if test "${EMACS_cv_ACCEPTABLE_URL}" = yes; then AC_EMACS_LISP(url_dir,(file-name-directory (locate-library \"url\")),"noecho") EMACS_cv_ACCEPTABLE_URL=$EMACS_cv_SYS_url_dir fi ]) AC_ARG_WITH(url,[ --with-url=DIR Specify where to find the url package], [ EMACS_cv_ACCEPTABLE_URL=`( cd $withval && pwd || echo "$withval" ) 2> /dev/null` ]) URL=${EMACS_cv_ACCEPTABLE_URL} AC_SUBST(URL) if test -z "${EMACS_cv_ACCEPTABLE_URL}"; then AC_MSG_RESULT(not found) else AC_MSG_RESULT("${URL}") fi ]) dnl dnl Perform checking available fonts: Adobe Bembo, Adobe Futura and dnl Bitstream Courier. dnl AC_DEFUN(GNUS_CHECK_FONTS, [ test "$LATEX" = t && LATEX= test "$LATEX" || AC_PATH_PROGS(LATEX, latex, no) AC_MSG_CHECKING(for available fonts) AC_ARG_WITH(fonts,[ --with-fonts Assume all fonts required are available],[USE_FONTS="$withval"]) WITH_FONTS_bembo='%' WITHOUT_FONTS_bembo= WITH_FONTS_pfu='%' WITHOUT_FONTS_pfu= WITH_FONTS_bcr='%' WITHOUT_FONTS_bcr= if test -z "${USE_FONTS}"; then if test "${LATEX}" = no; then : else OUTPUT=./conftest-$$ echo '\nonstopmode\documentclass{article}\usepackage{bembo}\begin{document}\end{document}' > ${OUTPUT} if ${LATEX} ${OUTPUT} & AC_FD_CC 2>&1 ; then if test -z "${USE_FONTS}"; then USE_FONTS="Adobe Bembo" else USE_FONTS="${USE_FONTS}, Adobe Bembo" fi WITH_FONTS_bembo= WITHOUT_FONTS_bembo='%' fi echo '\nonstopmode\documentclass{article}\begin{document}{\fontfamily{pfu}\fontsize{10pt}{10}\selectfont test}\end{document}' > ${OUTPUT} if retval=`${LATEX} ${OUTPUT} & AC_FD_CC`; then if echo "$retval" | grep 'Some font shapes were not available' >& AC_FD_CC 2>&1 ; then : else if test -z "${USE_FONTS}"; then USE_FONTS="Adobe Futura" else USE_FONTS="${USE_FONTS}, Adobe Futura" fi WITH_FONTS_pfu= WITHOUT_FONTS_pfu='%' fi fi echo '\nonstopmode\documentclass{article}\begin{document}{\fontfamily{bcr}\fontsize{10pt}{10}\selectfont test}\end{document}' > ${OUTPUT} if retval=`${LATEX} ${OUTPUT} & AC_FD_CC`; then if echo "$retval" | grep 'Some font shapes were not available' >& AC_FD_CC 2>&1 ; then : else if test -z "${USE_FONTS}"; then USE_FONTS="Bitstream Courier" else USE_FONTS="${USE_FONTS}, Bitstream Courier" fi WITH_FONTS_bcr= WITHOUT_FONTS_bcr='%' fi fi rm -f ${OUTPUT} ${OUTPUT}.aux ${OUTPUT}.log ${OUTPUT}.dvi fi elif test "${USE_FONTS}" = yes ; then WITH_FONTS_bembo= WITHOUT_FONTS_bembo='%' WITH_FONTS_pfu= WITHOUT_FONTS_pfu='%' WITH_FONTS_bcr= WITHOUT_FONTS_bcr='%' fi AC_SUBST(WITH_FONTS_bembo) AC_SUBST(WITHOUT_FONTS_bembo) AC_SUBST(WITH_FONTS_pfu) AC_SUBST(WITHOUT_FONTS_pfu) AC_SUBST(WITH_FONTS_bcr) AC_SUBST(WITHOUT_FONTS_bcr) if test -z "${USE_FONTS}" ; then USE_FONTS=no fi USE_FONTS=`echo "${USE_FONTS}" | sed 's/,\([[^,]]*\)$/ and\1/'` AC_MSG_RESULT("${USE_FONTS}") if test "${USE_FONTS}" = yes ; then USE_FONTS='Set in Adobe Bembo, Adobe Futura and Bitstream Courier.' elif test "${USE_FONTS}" = no ; then USE_FONTS='' else USE_FONTS="Set in ${USE_FONTS}." fi AC_SUBST(USE_FONTS) ]) AC_DEFUN(AC_EXAMINE_PACKAGEDIR, [dnl Examine PACKAGEDIR. AC_EMACS_LISP(PACKAGEDIR, (let (package-dir)\ (if (boundp (quote early-packages))\ (let ((dirs (delq nil (append (if early-package-load-path\ early-packages)\ (if late-package-load-path\ late-packages)\ (if last-package-load-path\ last-packages)))))\ (while (and dirs (not package-dir))\ (if (file-directory-p (car dirs))\ (setq package-dir (car dirs)\ dirs (cdr dirs))))))\ (or package-dir \"\")), "noecho")]) AC_DEFUN(AC_PATH_PACKAGEDIR, [dnl Check for PACKAGEDIR. if test ${EMACS_FLAVOR} = xemacs; then AC_MSG_CHECKING([where the XEmacs package is]) AC_ARG_WITH(packagedir, [ --with-packagedir=DIR package DIR for XEmacs], [if test "$withval" != yes -a -n "$withval"; then PACKAGEDIR=$withval else AC_EXAMINE_PACKAGEDIR fi], AC_EXAMINE_PACKAGEDIR) if test -z "$PACKAGEDIR"; then AC_MSG_RESULT(not found) else AC_MSG_RESULT($PACKAGEDIR) fi else PACKAGEDIR= fi AC_SUBST(PACKAGEDIR)]) AC_DEFUN(AC_ADD_LOAD_PATH, [dnl Check for additional load path. AC_ARG_WITH(addpath, [ --with-addpath=PATH search Emacs-Lisp libraries with PATH use colons to separate directory names], [if test "$withval" != yes -a -n "$withval"; then AC_MSG_CHECKING([where to find the additional elisp libraries]) ADDITIONAL_LOAD_PATH=$withval AC_MSG_RESULT($ADDITIONAL_LOAD_PATH) fi], ADDITIONAL_LOAD_PATH=) AC_SUBST(ADDITIONAL_LOAD_PATH)]) liece-2.0+0.20030527cvs/configure.ac0100644000175000017500000000112507653411350014570 0ustar bg66bg66AC_INIT(configure.ac) AC_PREREQ(2.50) AM_INIT_AUTOMAKE(liece, 2.0.0) AC_PROG_CC AC_ISC_POSIX AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PROG_RANLIB AC_CHECK_HEADERS(sys/select.h libgen.h) AC_CHECK_LIB(nsl, gethostbyname) AC_CHECK_LIB(socket, socket) AC_CHECK_FUNCS(strtoul memmove getaddrinfo) AC_CHECK_FUNC(getopt_long,,[AC_LIBOBJ(getopt) AC_LIBOBJ(getopt1)]) AC_REPLACE_FUNCS(basename) AC_CHECK_EMACS AC_PATH_LISPDIR AC_PATH_ETCDIR AC_PATH_PACKAGEDIR AC_OUTPUT(Makefile \ lisp/Makefile \ dcc/Makefile \ dnl doc/Makefile \ etc/Makefile \ etc/icons/Makefile \ etc/po/Makefile \ etc/styles/Makefile) liece-2.0+0.20030527cvs/contrib/0042755000175000017500000000000007664255027013761 5ustar bg66bg66liece-2.0+0.20030527cvs/contrib/plum-support.el0100644000175000017500000001152607663333434016770 0ustar bg66bg66;;; plum-support.el --- pirc support for plum ;; Copyright (C) 1999 Daiki Ueno ;; Author: Daiki Ueno ;; Created: 1999-05-06 ;; Keywords: IRC, liece, pirc ;; This file is part of Liece. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; To use, add the following into your ~/.liece/init.el: ;; (eval-after-load "liece" ;; '(progn ;; (require 'plum-support) ;; (add-hook 'liece-notice-hook 'plum-recent-add) ;; (add-hook 'liece-002-hook ;; #'(lambda (header rest) ;; (remove-hook 'liece-notice-hook 'plum-recent-add))))) ;;; Code: (require 'custom) (require 'liece-message) (require 'liece-channel) (defcustom plum-recent-header "plum" "String added in front of each recent logged message" :type 'string :group 'liece-support) (defconst plum-recent-time-header-regexp "[0-9][0-9]:[0-9][0-9]" "Regexp for timestamp preceding in message body") (defconst plum-recent-privmsg-header-regexp "[<>(=]\\([^ <>)=]*\\)[<>)=]" "Regexp for whole message line (privmsg)") (defconst plum-recent-join-header-regexp "\\+ [@+]?[^ ]* [^ ]* to \\([^ ]*\\)" "Regexp for whole message line (join)") (defconst plum-recent-part-header-regexp "- [^ ]* from \\([^ ]*\\)" "Regexp for whole message line (part)") (defconst plum-recent-kick-header-regexp "- [^ ]* by [^ ]* from \\([^ ]*\\) .*" "Regexp for whole message line (kick)") (defconst plum-recent-mode-header-regexp "Mode by [^:]*: \\([^ ]*\\) .*" "Regexp for whole message line (mode)") (defconst plum-recent-topic-header-regexp "Topic of channel \\([^ ]*\\) by [^:]*: .*" "Regexp for whole message line (nick)") (defconst plum-recent-message-header-regexp (concat "^\\(" plum-recent-time-header-regexp "\\)? *" plum-recent-privmsg-header-regexp)) (defconst plum-recent-channel-header-regexp (concat "^\\(" plum-recent-time-header-regexp "\\)? *" (mapconcat (function identity) (list plum-recent-join-header-regexp plum-recent-part-header-regexp plum-recent-kick-header-regexp plum-recent-mode-header-regexp plum-recent-topic-header-regexp) "\\|"))) (defconst plum-recent-generic-header-regexp (concat "^\\(" plum-recent-time-header-regexp "\\)? *")) (defvar plum-recent-log-buffer " *plum recent log") (defun plum-parse-recent-after () "Parse text after point as recent log message, then returns components" (save-excursion (let (time lparen rparen chnl nick) (cond ((looking-at plum-recent-message-header-regexp) (setq time (match-string 1)) (goto-char (match-beginning 2)) (setq lparen (char-before)) (goto-char (match-end 2)) (setq rparen (char-after)) (skip-chars-backward "^: ") (skip-chars-forward "=") (setq nick (buffer-substring (point) (match-end 2))) (backward-char) (setq chnl (buffer-substring (match-beginning 2) (point))) (goto-char (match-end 0)) (forward-char) (list 'message time lparen rparen chnl nick (buffer-substring (point) (line-end-position)))) ((looking-at plum-recent-channel-header-regexp) (setq time (match-string 1) chnl (match-string 2)) (goto-char (match-end 1)) (forward-char) (list 'channel time chnl (buffer-substring (point) (line-end-position)))) ((looking-at plum-recent-generic-header-regexp) (setq time (match-string 1)) (goto-char (match-end 0)) (list 'generic time (buffer-substring (point)(line-end-position)))))))) (defun plum-recent-add (header rest) "Add recent log line into `plum-recent-log-buffer'." (when (and (not header) rest (string-match "^[^ ]* +:\\(.*\\)" rest)) (with-temp-buffer (insert (match-string 1 rest) ?\n) (goto-char (point-min)) (let ((component (plum-parse-recent-after))) (when (eq (pop component) 'message) (let ((speaker (nth 4 component)) (target (if (eq (nth 1 component) ?=) (liece-current-nickname) (if (memq (nth 1 component) '(?< ?>)) (liece-channel-virtual (nth 3 component))))) (text (concat "(" plum-recent-header " " (car component) ") " (nth 5 component)))) (liece-display-message (liece-make-message speaker target text 'notice)) t)))))) (provide 'plum-support) ;;; plum-support.el ends here liece-2.0+0.20030527cvs/dcc/0042755000175000017500000000000007664255027013052 5ustar bg66bg66liece-2.0+0.20030527cvs/dcc/Makefile.am0100644000175000017500000000046707432104710015071 0ustar bg66bg66DEFS = -I$(srcdir) -I$(top_srcdir) $(CFLAGS) @DEFS@ LIBOBJS = @LIBOBJS@ EXTRA_DIST = basename.c getopt.c getopt.h getopt1.c CLEANFILES = ldcc ltcp bin_PROGRAMS = ldcc ltcp ltcp_SOURCES = tcp.c ltcp_LDADD = $(LIBOBJS) ldcc_SOURCES = dcc.c ldcc_LDADD = $(LIBOBJS) package: all install-package: package install liece-2.0+0.20030527cvs/dcc/getopt.c0100644000175000017500000005256207072244505014515 0ustar bg66bg66/* Getopt for GNU. NOTE: getopt is now part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu before changing it! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94 Free Software Foundation, Inc. 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. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . Ditto for AIX 3.2 and . */ #ifndef _NO_PROTO #define _NO_PROTO #endif #ifdef HAVE_CONFIG_H #if defined (emacs) || defined (CONFIG_BROKETS) /* We use instead of "config.h" so that a compilation using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h (which it would do because it found this file in $srcdir). */ #include #else #include "config.h" #endif #endif #ifndef __STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include #ifdef HAVE_STRING_H #include #endif /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #if defined (_LIBC) || !defined (__GNU_LIBRARY__) /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ /* Don't include stdlib.h for non-GNU C libraries because some of them contain conflicting prototypes for getopt. */ #include #endif /* GNU C library. */ /* This version of `getopt' appears to the caller like standard Unix `getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. As `getopt' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. Setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt.h" /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg = NULL; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns EOF, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* XXX 1003.2 says this must be 1 before any call. */ int optind = 0; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ static char *nextchar; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Describe how to deal with options that follow non-option ARGV-elements. If the caller did not specify anything, the default is REQUIRE_ORDER if the environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment variable POSIXLY_CORRECT, or using `+' as the first character of the list of option characters. PERMUTE is the default. We permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. Using `-' as the first character of the list of option characters selects this mode of operation. The special argument `--' forces an end of option-scanning regardless of the value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause `getopt' to return EOF with `optind' != ARGC. */ static enum { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER } ordering; /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; #ifdef __GNU_LIBRARY__ /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work in GCC. */ #include #define my_index strchr #else /* Avoid depending on library functions or files whose names are inconsistent. */ char *getenv (); static char * my_index (str, chr) const char *str; int chr; { while (*str) { if (*str == chr) return (char *) str; str++; } return 0; } /* If using GCC, we can safely declare strlen this way. If not using GCC, it is ok not to declare it. */ #ifdef __GNUC__ /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. That was relevant to code that was here before. */ #ifndef __STDC__ /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 2.4.5. -- rms. */ extern int strlen (const char *); #endif /* not __STDC__ */ #endif /* __GNUC__ */ #endif /* not __GNU_LIBRARY__ */ /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. `first_nonopt' is the index in ARGV of the first of them; `last_nonopt' is the index after the last of them. */ static int first_nonopt; static int last_nonopt; /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. `first_nonopt' and `last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ static void exchange (argv) char **argv; { int bottom = first_nonopt; int middle = last_nonopt; int top = optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; register int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; register int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ first_nonopt += (optind - last_nonopt); last_nonopt = optind; } /* Initialize the internal data when the first call is made. */ static const char * _getopt_initialize (optstring) const char *optstring; { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ first_nonopt = last_nonopt = optind = 1; nextchar = NULL; posixly_correct = getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { ordering = REQUIRE_ORDER; ++optstring; } else if (posixly_correct != NULL) ordering = REQUIRE_ORDER; else ordering = PERMUTE; return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If `getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If `getopt' finds another option character, it returns that character, updating `optind' and `nextchar' so that the next call to `getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, `getopt' returns `EOF'. Then `optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set `opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in `optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in `optarg', otherwise `optarg' is set to zero. If OPTSTRING starts with `-' or `+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with `--' instead of `-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a `=', or else the in next ARGV-element. When `getopt' finds a long-named option, it returns 0 if that option's `flag' field is nonzero, the value of the option's `val' field if the `flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of `struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int argc; char *const *argv; const char *optstring; const struct option *longopts; int *longind; int long_only; { optarg = NULL; if (optind == 0) optstring = _getopt_initialize (optstring); if (nextchar == NULL || *nextchar == '\0') { /* Advance to the next ARGV-element. */ if (ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (last_nonopt != optind) first_nonopt = optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (optind < argc && (argv[optind][0] != '-' || argv[optind][1] == '\0')) optind++; last_nonopt = optind; } /* The special ARGV-element `--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (optind != argc && !strcmp (argv[optind], "--")) { optind++; if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (first_nonopt == last_nonopt) first_nonopt = optind; last_nonopt = argc; optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (first_nonopt != last_nonopt) optind = first_nonopt; return EOF; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if ((argv[optind][0] != '-' || argv[optind][1] == '\0')) { if (ordering == REQUIRE_ORDER) return EOF; optarg = argv[optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ nextchar = (argv[optind] + 1 + (longopts != NULL && argv[optind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (longopts != NULL && (argv[optind][1] == '-' || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound; int option_index; for (nameend = nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if (nameend - nextchar == (int) strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (opterr) fprintf (stderr, "%s: option `%s' is ambiguous\n", argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; return '?'; } if (pfound != NULL) { option_index = indfound; optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (opterr) { if (argv[optind - 1][1] == '-') /* --option */ fprintf (stderr, "%s: option `--%s' doesn't allow an argument\n", argv[0], pfound->name); else /* +option or -option */ fprintf (stderr, "%s: option `%c%s' doesn't allow an argument\n", argv[0], argv[optind - 1][0], pfound->name); } nextchar += strlen (nextchar); return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (opterr) fprintf (stderr, "%s: option `%s' requires an argument\n", argv[0], argv[optind - 1]); nextchar += strlen (nextchar); return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[optind][1] == '-' || my_index (optstring, *nextchar) == NULL) { if (opterr) { if (argv[optind][1] == '-') /* --option */ fprintf (stderr, "%s: unrecognized option `--%s'\n", argv[0], nextchar); else /* +option or -option */ fprintf (stderr, "%s: unrecognized option `%c%s'\n", argv[0], argv[optind][0], nextchar); } nextchar = (char *) ""; optind++; return '?'; } } /* Look at and handle the next short option-character. */ { char c = *nextchar++; char *temp = my_index (optstring, c); /* Increment `optind' when we start to process its last character. */ if (*nextchar == '\0') ++optind; if (temp == NULL || c == ':') { if (opterr) { if (posixly_correct) /* 1003.2 specifies the format of this message. */ fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c); else fprintf (stderr, "%s: invalid option -- %c\n", argv[0], c); } optopt = c; return '?'; } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*nextchar != '\0') { optarg = nextchar; optind++; } else optarg = NULL; nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (opterr) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, "%s: option requires an argument -- %c\n", argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; nextchar = NULL; } } return c; } } int getopt (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0); } #endif /* _LIBC or not __GNU_LIBRARY__. */ #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of `getopt'. */ int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == EOF) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ liece-2.0+0.20030527cvs/dcc/dcc.c0100644000175000017500000002725607425075475013760 0ustar bg66bg66/* dcc.c * Copyright (C) 1998-2002 Daiki Ueno * * This file is part of Liece. * * 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #define _GNU_SOURCE #include #ifndef MAXHOSTNAMELEN # define MAXHOSTNAMELEN 31 #endif #ifdef HAVE_SYS_SELECT_H # include #endif #ifdef HAVE_MEMMOVE # ifdef HAVE_LIBGEN_H # include # ifdef basename # undef basename # endif # endif # include #else # define memmove(x,y,z) bcopy((y), (x), (z)) #endif #ifndef HAVE_BASENAME # define basename(path) (rindex((path), '/') + 1) #endif static void usage(); static int prepare_listen_port(); static int prepare_connect_port(); static int receive_file(); static int send_file(); static int select_loop(); static int chat_listen(); static int chat_connect(); static u_long primary_address_of(); static u_long extract_addr_of_string(); static u_long get_address_externally(); static char *progname; void version () { printf("%s (Liece) 1.4.0\n" "Copyright (C) 1998, 1999 Daiki Ueno\n" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", progname); } void usage() { printf("Usage: %s [global-options] command [command-options-and-arguments]\n" "where global-options are -v, -h, etc.\n" "where command is one of send, receive, chat, resolve.\n" "where command-options-and-arguments depend on the specific command.\n\n" "send \n" "receive \n" "chat listen \n" "chat connect \n" "resolve [hosts ...]\n", progname); } int prepare_listen_port (int ip_port) { int sock, tries; int opt = 1; static struct sockaddr_in server; if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("opening stream socket"); exit(1); } #ifdef SO_REUSEADDR if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof (opt)) < 0) { perror ("setsockopt SO_REUSEADDR"); } #endif /* Bind a port to listen for new connections */ server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port = htons (ip_port); for (tries = 0; tries < 10; tries++) { if (bind (sock, (struct sockaddr *) &server, sizeof (server))) { if (tries >= 9) { perror ("binding stream socket"); exit (1); } perror ("binding stream socket. retry in 20 seconds"); sleep (20); /* wait 20 seconds and try again */ } else break; } listen (sock, 64); return (sock); } u_long get_address_externally(char *ircserver) { int i, len, dummy; u_long addr; struct hostent *hp; struct sockaddr_in server, client; addr = 0xc6290004; /* dummy addr --- rootA */ if (ircserver && (hp = gethostbyname(ircserver)) != NULL) { addr = ntohl(((struct in_addr *)hp->h_addr_list[0])->s_addr); } if ((dummy = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror("opening stream socket"); return -1; } server.sin_family = AF_INET; server.sin_addr.s_addr = htonl(addr); server.sin_port = htons(7); /* dummy port --- echo */ for (i = 0; i < 8; i++) { server.sin_zero[i] = 0; } if (connect(dummy, (struct sockaddr *)&server, sizeof(server)) < 0) { perror ("connecting remote socket"); return -1; } len = sizeof(client); if (getsockname(dummy, (struct sockaddr *)&client, &len) < 0) return -1; close(dummy); return ntohl(client.sin_addr.s_addr); } /* * send_file(int port, char *ifile) * listens to connections to port, and when connection established * sends ifile to that socket */ int send_file (int port, char *ifile) { int sock, ifd, ofd, len; u_long addr, bytessent = 0; char buf[ BUFSIZ * 8 ]; fd_set readfds, writefds, fdset; struct stat statbuf; char namebuf[ MAXHOSTNAMELEN ]; struct hostent *hp; struct sockaddr_in sin; if ((ifd = open (ifile, O_RDONLY)) < 0) { /* error in opening file to send */ close(ofd); return 1; } gethostname(namebuf, sizeof (namebuf)); fstat (ifd, &statbuf); sock = prepare_listen_port(port); len = sizeof (struct sockaddr_in); if (getsockname(sock, (struct sockaddr *)&sin, &len) == 0) port = ntohs(sin.sin_port); if ((addr = get_address_externally (NULL)) < 0) { gethostname(namebuf, sizeof (namebuf)); if (hp = gethostbyname(namebuf)) addr = ((struct in_addr *) (hp->h_addr_list)[0])->s_addr; else return 2; } printf ("DCC send %s %d %u %d\n", ifile, port, addr, statbuf.st_size); ofd = accept(sock, (struct sockaddr *) 0, (int *) 0); while ((len = read (ifd, buf, sizeof (buf))) > 0) { write (ofd, buf, len); bytessent += len; while ((len = read (ofd, buf, sizeof (u_long))) && ntohl (*(u_long *) buf) != bytessent); } close (ofd); close (ifd); printf ("*** DCC file %s sent\n", ifile); return 0; } /* * receive_file(u_long host, int port, char *ifile) * connects to (host,port) and reads everything send from there * for every packet received gives back how much actually got * puts everything in ifile */ int receive_file (u_long host, int port, int size, char *ifile) { int sock, ifd, ofd, len, bytesreceived = 0, toread, prev = 0; char buf[ BUFSIZ * 8 ]; fd_set readfds, writefds, fdset; u_long netsize; if ((ofd = open(ifile, O_WRONLY|O_CREAT|O_TRUNC, 0600)) < 0) { fprintf(stderr, "open: opening file: %s\n", ifile); return 1; } ifd = prepare_connect_port (host, port); if ((toread = sizeof (buf)) > size) toread = size; while (bytesreceived < size && (len = read (ifd, buf, toread)) > 0) { write (ofd, buf, len); bytesreceived += len; netsize = htonl (bytesreceived); lseek (ifd, 0, 2); write (ifd, &netsize, 4); lseek (ifd, 0, 2); if (toread > size - bytesreceived) toread = size - bytesreceived; if (bytesreceived - prev > size / 5) { printf ("DCC %s %d%% (%d/%d bytes) received\n", ifile, 100 * bytesreceived / size, bytesreceived, size); prev = bytesreceived; } } printf ("*** DCC file %s received\n", ifile); close (ifd); close (ofd); return 0; } /* * select_loop(int sfd) * listens fd given, reads stdin and sends it to socket * anything read from socket is send to stdout */ int select_loop (int sfd) { int ofd, len, bytesreceived = 0; char buf[ BUFSIZ * 8 ]; fd_set readfds, writefds, fdset; for (;;) { FD_ZERO (&readfds); FD_SET (sfd, &readfds); FD_SET (0, &readfds); if (select (32, &readfds, 0, 0, 0) < 0) { perror ("select"); close (sfd); return 1; } if (FD_ISSET (sfd, &readfds)) { if ((len = read(sfd, buf, sizeof (buf))) == 0) { close (sfd); return 0; } write (1, buf, len); FD_CLR (sfd, &readfds); } if (FD_ISSET (0, &readfds)) { if ((len = read (0, buf, sizeof (buf))) == 0) { close (sfd); return 0; } write(sfd, buf, len); FD_CLR (ofd, &readfds); } } } int prepare_connect_port (u_long host, int port) { int sock; static struct hostent *hp; static struct sockaddr_in server; sock = socket (AF_INET, SOCK_STREAM, 0); if (sock < 0) { perror ("opening stream socket"); exit (1); } server.sin_family = AF_INET; server.sin_addr.s_addr = ntohl (host); server.sin_port = htons (port); if (connect(sock, (struct sockaddr *) &server, sizeof (server)) < 0) { perror ("connecting remote socket"); return 0; } return sock; } u_long extract_addr_of_string (char *str) { u_long result = 0; #ifndef HAVE_STRTOUL while (*str++) result = result * 10 + *str - '0'; #else /* !HAVE_STRTOUL */ result = strtoul(str, NULL, 10); #endif /* HAVE_STRTOUL */ return result; } u_long primary_address_of (char *host) { struct hostent *hp; u_long addr; if ((hp = gethostbyname(host)) == NULL) addr = inet_addr(host); else memmove(&addr, hp->h_addr_list[ 0 ], 4); return ntohl(addr); } int chat_listen(int port) { struct sockaddr_in sin; struct hostent *hp; u_long addr; int sock, len; char namebuf[ MAXHOSTNAMELEN ]; sock = prepare_listen_port (port); len = sizeof (struct sockaddr_in); if (getsockname(sock, (struct sockaddr *)&sin, &len) == 0) port = ntohs(sin.sin_port); if ((addr = get_address_externally (NULL)) < 0) { gethostname(namebuf, sizeof (namebuf)); if (hp = gethostbyname(namebuf)) addr = ((struct in_addr *) (hp->h_addr_list)[0])->s_addr; else return 2; } printf("DCC chat %u %d\n", addr, port); if ((sock = accept(sock, (struct sockaddr *) 0, (int *) 0)) > -1) { printf("DCC chat established\n"); return select_loop(sock); } return 1; } int chat_connect(u_long host, int port) { int sock; if ((sock = prepare_connect_port(host, port)) > -1) { printf("DCC chat established\n"); return select_loop(sock); } return 1; } int main (int argc, char **argv) { char *host = "localhost"; char *action; int c, status = 0; progname = (char *)basename(argv[ 0 ]); while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"version", 0, 0, 'v'}, {"help", 0, 0, 'h'}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "vh", long_options, &option_index); if (c == -1) break; switch (c) { case 'v': version(); exit(1); break; case 'h': usage(); exit(1); break; default: break; } } if (argc > 1) { action = argv[ 1 ]; } else { usage(); exit(1); } if (!strcmp(action, "resolve")) { if (argc < 3) { usage(); exit(1); } else { u_long i, addr; for (i = 2; i < argc; i++) { addr = primary_address_of(argv[i]); if (addr != -1) printf("%u\n", addr); else printf("0\n"); } status = 0; } } if (!strcmp(action, "send")) { if (argc != 4) { usage(); exit(1); } status = send_file (atoi(argv[ 2 ]), argv[ 3 ]); } else if (!strcmp(action, "receive")) { if (argc != 6) { usage(); exit(1); } status = receive_file (extract_addr_of_string(argv[ 2 ]), atoi(argv[ 3 ]), atoi(argv[ 4 ]), argv[ 5 ]); } else if (!strcmp(action, "chat")) { if (argc > 3) { if (!strcmp(argv[ 2 ], "listen")) { if (argc != 4) { usage(); exit(1); } status = chat_listen(atoi(argv[ 3 ])); } else if (!strcmp(argv[ 2 ], "connect")) { if (argc != 5) { usage(); exit(1); } status = chat_connect(extract_addr_of_string(argv[ 3 ]), atoi(argv[ 4 ])); } else { usage(); exit(1); } } } else { usage(); exit(1); } return status; } /* * Local variables: * compile-command: "gcc -DHAVE_STRTOUL -Wall -O6 -o dcc dcc.c" * c-indent-level: 2 * c-basic-offset: 2 * tab-width: 2 * End: */ liece-2.0+0.20030527cvs/dcc/getopt.h0100644000175000017500000001020007072244505014501 0ustar bg66bg66/* Declarations for getopt. Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc. 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. */ #ifndef _GETOPT_H #define _GETOPT_H 1 #ifdef __cplusplus extern "C" { #endif /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns EOF, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message `getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of `struct option' terminated by an element containing a name which is zero. The field `has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an `int' to a compiled-in constant, such as set a value from `optarg', set the option's `flag' field to zero and its `val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero `flag' field, `getopt' returns the contents of the `val' field. */ struct option { #if __STDC__ const char *name; #else char *name; #endif /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; /* Names for the values of the `has_arg' field of `struct option'. */ #define no_argument 0 #define required_argument 1 #define optional_argument 2 #if __STDC__ #if defined(__GNU_LIBRARY__) /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation errors, only prototype getopt for the GNU C library. */ extern int getopt (int argc, char *const *argv, const char *shortopts); #else /* not __GNU_LIBRARY__ */ extern int getopt (); #endif /* not __GNU_LIBRARY__ */ extern int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); /* Internal only. Users should not call this directly. */ extern int _getopt_internal (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind, int long_only); #else /* not __STDC__ */ extern int getopt (); extern int getopt_long (); extern int getopt_long_only (); extern int _getopt_internal (); #endif /* not __STDC__ */ #ifdef __cplusplus } #endif #endif /* _GETOPT_H */ liece-2.0+0.20030527cvs/dcc/getopt1.c0100644000175000017500000001034407072244505014566 0ustar bg66bg66/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987, 88, 89, 90, 91, 92, 1993 Free Software Foundation, Inc. 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. */ #ifdef HAVE_CONFIG_H #if defined (emacs) || defined (CONFIG_BROKETS) /* We use instead of "config.h" so that a compilation using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h (which it would do because it found this file in $srcdir). */ #include #else #include "config.h" #endif #endif #include "getopt.h" #ifndef __STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #if defined (_LIBC) || !defined (__GNU_LIBRARY__) /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ #include #else char *getenv (); #endif #ifndef NULL #define NULL 0 #endif int getopt_long (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 1); } #endif /* _LIBC or not __GNU_LIBRARY__. */ #ifdef TEST #include int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == EOF) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case 'd': printf ("option d with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ liece-2.0+0.20030527cvs/dcc/tcp.c0100644000175000017500000001352107425075475014003 0ustar bg66bg66/* tcp.c - TCP/IP stream emulation for GNU Emacs. * Copyright (C) 1988, 1989, 1992, 1993 Free Software Foundation, Inc. * Copyright (C) 1998-2002 Daiki Ueno * * This file is part of Liece. * * 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. */ /* This program is based on `tcp' comming from old GNUS distribution written by Masanobu Umeda . */ #include #include #include #include #include #include #include #include #include #include #include #include #define _GNU_SOURCE #include #ifdef HAVE_BASENAME # ifdef HAVE_LIBGEN_H # include # ifdef basename # undef basename # endif # endif # include #else # define basename(path) (rindex((path), '/') + 1) #endif #ifndef NI_MAXHOST # define NI_MAXHOST 1025 #endif static char *progname; void version () { printf("%s (Liece) 1.4.0\n" "Copyright (C) 1998, 1999 Daiki Ueno\n" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", progname); } void usage() { printf("Usage: %s [options] host [service]\n", progname); } main (argc, argv) int argc; char *argv[]; { struct protoent *proto; int family, socktype; struct sockaddr *addr; size_t addrlen; #ifdef HAVE_GETADDRINFO struct addrinfo *in, hints; #else struct hostent *host; struct servent *serv; struct sockaddr_in sin; #endif char *hostname = NULL, *service = "ircd"; int port; fd_set *readfds, *writefds; int server, emacsIn = fileno (stdin), emacsOut = fileno (stdout); char buffer[1024], *retry; int nbuffer, wret, false = 0; int c; progname = (char *) basename (argv[0]); while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"version", 0, 0, 'v'}, {"help", 0, 0, 'h'}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "vh", long_options, &option_index); if (c == -1) break; switch (c) { case 'v': version (); exit (1); break; case 'h': usage (); exit (1); break; default: break; } } if (argc < 2) { usage(); exit (1); } if (argc >= 2) hostname = argv[1]; if (argc >= 3) service = argv[2]; proto = getprotobyname ("tcp"); if (!proto) { perror ("getprotobyname"); exit (1); } #ifdef HAVE_GETADDRINFO memset (&hints, 0, sizeof (hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = proto->p_proto; if (getaddrinfo (hostname, service, &hints, &in) < 0) { perror ("getaddrinfo"); exit (1); } family = in->ai_family; socktype = in->ai_socktype; addr = in->ai_addr; addrlen = in->ai_addrlen; freeaddrinfo (in); #else memset (&sin, 0, sizeof (sin)); host = gethostbyname (hostname); if (!host) return -1; memcpy (&sin.sin_addr, host->h_addr, host->h_length); serv = getservbyname (service, proto->p_name); if (serv) sin.sin_port = htons (serv->s_port); else if (isdigit (service[0])) sin.sin_port = htons (atoi (service)); family = sin.sin_family = AF_INET; socktype = SOCK_STREAM; addr = (struct sockaddr *)&sin; addrlen = sizeof (sin); #endif server = socket (family, socktype, 0); if (server == -1) { perror ("socket"); exit (1); } setsockopt (server, SOL_SOCKET, SO_REUSEADDR, (const char *) &false, sizeof (false)); if (connect (server, addr, addrlen) < 0) { perror ("connect"); close (server); exit (1); } #ifdef O_NDELAY fcntl (server, F_SETFL, O_NDELAY); #endif /* O_NDELAY */ /* Connection established. */ readfds = (fd_set *) calloc(server + 1, sizeof (fd_mask)); writefds = (fd_set *) calloc(server + 1, sizeof (fd_mask)); while (1) { FD_SET (server, readfds); FD_SET (emacsIn, readfds); if (select (server+1, readfds, NULL, NULL, NULL) == -1) { perror ("select"); exit (1); } if (FD_ISSET (emacsIn, readfds)) { /* From Emacs */ nbuffer = read (emacsIn, buffer, sizeof buffer -1); if (nbuffer == 0) goto finish; for (retry = buffer; nbuffer > 0; nbuffer -= wret, retry += wret) { FD_SET (server, writefds); if (select (server+1, NULL, writefds, NULL, NULL) == -1) { perror ("select"); exit (1); } wret = write (server, retry, nbuffer); if (wret < 0) goto finish; } } if (FD_ISSET (server, readfds)) { /* From NNTP server */ nbuffer = read (server, buffer, sizeof buffer -1); if (nbuffer == 0) goto finish; for (retry = buffer; nbuffer > 0; nbuffer -= wret, retry += wret) { FD_SET (emacsOut, writefds); if (select (emacsOut+1, NULL, writefds, NULL, NULL) == -1) { perror ("select"); exit (1); } wret = write (emacsOut, retry, nbuffer); if (wret < 0) goto finish; } } } /* End of communication. */ finish: close (server); close (emacsIn); close (emacsOut); exit (0); } liece-2.0+0.20030527cvs/dcc/basename.c0100644000175000017500000000250507425033513014753 0ustar bg66bg66/* Return the name-within-directory of a file name. Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #define _LIBC #ifndef _LIBC /* We cannot generally use the name `basename' since XPG defines an unusable variant of the function but we cannot use it. */ # define basename gnu_basename #endif char * basename (filename) const char *filename; { char *p = strrchr (filename, '/'); return p ? p + 1 : (char *) filename; } liece-2.0+0.20030527cvs/doc/0042755000175000017500000000000007664255027013066 5ustar bg66bg66liece-2.0+0.20030527cvs/doc/Makefile.am0100644000175000017500000000066507432104710015105 0ustar bg66bg66TEXI_XML = ./texi_xml EXTRA_DIST = README liece.xml liece.info DISTCLEANFILES = liece.info CLEANFILES = *~ SUFFIXES = .xml .txml .texi .info DOCBOOK2TEXIXSLT_DIR = xslt/texi SAXON = java -classpath $(CLASSPATH):$(DOCBOOK2TEXIXSLT_DIR) com.icl.saxon.StyleSheet all: liece.info %.txml: %.xml $(SAXON) -o $@ $*.xml $(DOCBOOK2TEXIXSLT_DIR)/docbook.xsl %.texi: %.txml $(TEXI_XML) $*.txml -recode -df utf8..texi < $@ > tmp mv tmp $@ liece-2.0+0.20030527cvs/doc/liece.xml0100644000175000017500000001745607161156710014670 0ustar bg66bg66 Cc"> ]>
Liece Emacs IRC client. Daiki Ueno
ueno@unixuser.org
2000/09/12 Version 1.4.4
This manual documents Liece &liece-version;, the Emacs IRC client. You may find the latest information from Liece official home page. Summary of Liece features Overview Liece, the Emacs IRC client, provides a user-friendly interface to access IRC servers. Internet Relay Chat: RFC 1459, RFC 2810, RFC 2811, RFC 2812, RFC 2813. Currently Liece has following features: Clear user interface inspired by CHOCOA Lightweight operation Dynamic window configuration Collect URLs automatically How to install Liece Installation The installation procedure depends on the Emacs flavor you are running. Anyway Liece &liece-version; should work on: Emacs 20.7 and up. XEmacs 21.1.12 and up. Complicated stuff you may have to do. Prerequisites Liece &liece-version; uses APEL and FLIM, you have to install them in this order. Generally make install will do the job. Package Author's version APEL (A Portable Emacs Library) 10.2 or later FLIM 1.12 or later Compilation In the top level directory of the Liece distribution, run the script configure as follows: $ ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ... If you are using XEmacs and want to install to XEmacs package directory, specify . If you wish to build with a specific version of Emacs, use . When it is done, configure just creates the files: Makefile lisp/Makefile dcc/Makefile doc/Makefile etc/Makefile Then run make to finish building Liece in the standard way. You can install the package with make install. The various usage possibilities Usage Finding an IRC server and connecting to it Servers Liece comes with a list of servers held in the variable liece-server-alist. Starting Liece Start <firstterm>Liece</firstterm> If installation and configuration worked well, you can invoke Liece typing M x liece in Emacs. Basic Key Bindings Once join a channel, if you type normal text then you will see it come up in the channel with your nick before it. If anyone else was in the channel they would also see that. If you are familiar with IRC, you can issue commands with leading &liece-command-prefix;/ , while there are many shortcut: &liece-command-prefix;j Join one or more comma separated channels with given optional keys. &liece-command-prefix;n Change your nickname. &liece-command-prefix;q Quit Liece. You can specify the comment by a prefix argument. &liece-command-prefix;p Part one or more channels. You can specify the comment by a prefix argument. Copyright and warranty Copying 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
liece-2.0+0.20030527cvs/doc/README0100644000175000017500000000106707157431373013742 0ustar bg66bg66This is the Liece documentation in DocBook XML format README. =========================================================== We are rewriting the Liece documentation in DocBook XML format. For texinfo output, you have to install docbook2X[1] and SAXON[2] (the XSLT processor) and follow the instructions below: (0) Install a Java VM. (1) Add `saxon.jar' to CLASSPATH. (2) Copy docbook2X/texi_xml and docbook2X/xslt in this directory. (3) Run `make' in the top directory. Footnotes: [1] http://docbook2x.sourceforge.net/ [2] http://users.iclway.co.uk/mhkay/saxon/ liece-2.0+0.20030527cvs/doc/texinfo.tex0100644000175000017500000000000007072244503015233 0ustar bg66bg66liece-2.0+0.20030527cvs/etc/0042755000175000017500000000000007664255027013074 5ustar bg66bg66liece-2.0+0.20030527cvs/etc/Makefile.am0100644000175000017500000000052407545002151015106 0ustar bg66bg66SUBDIRS = icons po styles EXTRA_DIST = gnu-emacs-user-config.in DISTCLEANFILES = gnu-emacs-user-config pkgdata_DATA = gnu-emacs-user-config gnu-emacs-user-config: gnu-emacs-user-config.in sed 's!@pkgdatadir@!$(pkgdatadir)!g' $< > $@ chmod +x $@ package: install-package: package $(MAKE) pkgdatadir=$(PACKAGEDIR)/etc/$(PACKAGE) install liece-2.0+0.20030527cvs/etc/Emacs.ad0100644000175000017500000000633507161166772014434 0ustar bg66bg66! -*- mode: xrdb; coding: euc-jp -*- ! ! XEmacs ¤Ç¤ÏÆüËܸì¥á¥Ë¥å¡¼¤òɽ¼¨²Äǽ¤Ç¤¹¤¬¡¢Emacs Lisp ¤Î¥³¡¼¥É¤ÇÆüËܸìʸ»úÎó¤ò ! »ØÄꤷ¤Æ¤âÀµ¤·¤¯É½¼¨¤Ç¤­¤Þ¤»¤ó¡£¤·¤«¤· X ¤Î¥ê¥½¡¼¥¹¤Ë°Ê²¼¤Î¤è¤¦¤Êµ­½Ò¤òÄɲä¹ ! ¤ë¤³¤È¤Ç¡¢Liece ¤Î¥á¥Ë¥å¡¼¤òÆüËܸ첽¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ! ¶ñÂÎŪ¤Ë¤Ï¡¢°Ê²¼¤ÎÆâÍÆ¤ò locale ¥Ñ¥Ã¥±¡¼¥¸¤ËÉÕ°¤Î¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë½ñ¤­²Ã¤¨¤Þ ! ¤¹¡£XEmacs ¤òɸ½àŪ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ì¤Ð¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ï ! ! /usr/local/lib/xemacs/mule-packages/etc/app-defaults/ja/Emacs ! ! ¤Ë¤¢¤ë¤³¤È¤¬Í½ÁÛ¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢°Ê²¼¤Î³Æ¹Ô¤Ë "XEmacs" ¤È¤¤¤¦ prefix ¤òÉÕ¤±¤Æ¡¢ ! ~/.Xresources ¤Ë½ñ¤­¤³¤à¡¢¤È¤¤¤¦¼ê¤â¤¢¤ë¤Ç¤·¤ç¤¦¡£ *XlwMenu.sendFile.labelString: ¥Õ¥¡¥¤¥ë¤òÁ÷¿® *XlwMenu.receiveFile.labelString: ¥Õ¥¡¥¤¥ë¤ò¼õ¿® *XlwMenu.sendChatRequest.labelString: DCC CHATÍ×µá *XlwMenu.acceptChatRequest.labelString: DCC CHAT³«»Ï *XlwMenu.listDCCRequest.labelString: DCCÍ×µá°ìÍ÷ *XlwMenu.dispatchStackedDCCRequests.labelString: DCCÍ×µá¤ò¾å¤«¤é½ç¤Ë½èÍý *XlwMenu.crypt.labelString: °Å¹æ²½ *XlwMenu.toggleCryptMode.labelString: °Å¹æ²½ÀÚÂØ *XlwMenu.setDefaultKeyOfThisChannel.labelString: ÈëÌ©¸°¤ÎÀßÄê *XlwMenu.setDefaultKeyForThisChannel.labelString: ÈëÌ©¸°¤ÎÀßÄê *XlwMenu.addNewKeyToKeyring.labelString: ÈëÌ©¸°¤ÎÄɲà *XlwMenu.removeKeyFromKeyring.labelString: ÈëÌ©¸°¤Îºï½ü *XlwMenu.private.labelString: ¸Ä¿ÍŪ *XlwMenu.togglePrivateConversation.labelString: 1ÂÐ1²ñÏà *XlwMenu.registerFriends.labelString: ͧ¿ÍÅÐÏ¿¤ÎÄɲà *XlwMenu.unregisterFriends.labelString: ͧ¿ÍÅÐÏ¿¤Îºï½ü *XlwMenu.displayUserhost.labelString: ¥æ¡¼¥¶¥Û¥¹¥È̾¤Îɽ¼¨ *XlwMenu.ignoreNicksRegexp.labelString: ¥Ë¥Ã¥¯/Àµµ¬É½¸½¤ò̵»ë *XlwMenu.composeMail.labelString: ¥á¡¼¥ë¤ò½ñ¤¯ *XlwMenu.channel.labelString: ¥Á¥ã¥ó¥Í¥ë *XlwMenu.joinChannel.labelString: ¥Á¥ã¥ó¥Í¥ë¤Ë»²²Ã *XlwMenu.partChannel.labelString: ¥Á¥ã¥ó¥Í¥ë¤òΥæ *XlwMenu.goToNextChannel.labelString: ¼¡¤Î¥Á¥ã¥ó¥Í¥ë *XlwMenu.goToPreviousChannel.labelString: Á°¤Î¥Á¥ã¥ó¥Í¥ë *XlwMenu.goToUnreadChannel.labelString: ̤ÆÉ¥Á¥ã¥ó¥Í¥ë *XlwMenu.rotateLeftChannels.labelString: ¥Á¥ã¥ó¥Í¥ë°ìÍ÷¤òº¸²ó¤ê¤Ë²óž *XlwMenu.rotateRightChannels.labelString: ¥Á¥ã¥ó¥Í¥ë°ìÍ÷¤ò±¦²ó¤ê¤Ë²óž *XlwMenu.inviteToThisChannel.labelString: ¤³¤Î¥Á¥ã¥ó¥Í¥ë¤Ë¾·ÂÔ *XlwMenu.kickOutFromThisChannel.labelString: ¤³¤Î¥Á¥ã¥ó¥Í¥ë¤«¤é½³¤ê½Ð¤¹ *XlwMenu.setModeOfThisChannel.labelString: ¥Á¥ã¥ó¥Í¥ë¥â¡¼¥É¤ÎÀßÄê *XlwMenu.setTopicOfThisChannel.labelString: ¥Á¥ã¥ó¥Í¥ë¥È¥Ô¥Ã¥¯¤ÎÀßÄê *XlwMenu.toggleFreezeOfThisChannel.labelString: ¤³¤Î¥Á¥ã¥ó¥Í¥ë¤Î¸ÇÄê *XlwMenu.toggleOwnFreezeOfThisChannel.labelString: ¤³¤Î¥Á¥ã¥ó¥Í¥ë¤Î°ì»þ¸ÇÄê *XlwMenu.toggleBeepNoticeOfThisChannel.labelString: ¤³¤Î¥Á¥ã¥ó¥Í¥ë¤Î¥Ó¡¼¥×ÄÌÃÎ *XlwMenu.listChannel.labelString: ¥Á¥ã¥ó¥Í¥ë°ìÍ÷¤òɽ¼¨ *XlwMenu.displayNamesOfChannel.labelString: ¥á¥ó¥Ð¤Îɽ¼¨(¥Ë¥Ã¥¯¥Í¡¼¥à¤Î¤ß) *XlwMenu.displayWhoAreOnTheChannel.labelString: ¥á¥ó¥Ð¤Îɽ¼¨ *XlwMenu.loadVariablesFile.labelString: ÀßÄê¤ÎÆÉ¹þ *XlwMenu.saveVariablesFile.labelString: ÀßÄê¤ÎÊݸ *XlwMenu.changeWindowStyle.labelString: ¥¦¥£¥ó¥É¥¦¥¹¥¿¥¤¥ë¤ÎÊѹ¹ *XlwMenu.reloadStyleFile.labelString: ¥¦¥£¥ó¥É¥¦¥¹¥¿¥¤¥ë¤ÎºÆÆÉ¹þ *XlwMenu.reconfigureWindows.labelString: ¥¦¥£¥ó¥É¥¦ºÆÇÛÃÖ *XlwMenu.toggleChannelBufferDisplayState.labelString: ¥Á¥ã¥ó¥Í¥ë¥Ð¥Ã¥Õ¥¡¤Îɽ¼¨ÀÚÂØ *XlwMenu.toggleNickBufferDisplayState.labelString: ¥Ë¥Ã¥¯¥Ð¥Ã¥Õ¥¡¤Îɽ¼¨ÀÚÂØ *XlwMenu.enterDebugMode.labelString: ¥Ç¥Ð¥Ã¥°¥â¡¼¥É *XlwMenu.quitIRC.labelString: IRC¤ò¤ä¤á¤ë liece-2.0+0.20030527cvs/etc/icons/0042755000175000017500000000000007664255027014207 5ustar bg66bg66liece-2.0+0.20030527cvs/etc/icons/ball.blank.xpm0100644000175000017500000000040707072244506016722 0ustar bg66bg66/* XPM */ static char * ball_blank_xpm[] = { "12 12 1 1", " c None", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; liece-2.0+0.20030527cvs/etc/icons/back.xpm0100644000175000017500000000260507072244506015624 0ustar bg66bg66/* XPM */ static char *back[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooelooooooooooooo", "ooooooooooooeudooooooooooooo", "oooooooooooeuocloooooooooooo", "ooooooooooeuoecboooooooooooo", "oooooooooeuoeocblooooooooooo", "ooooooooeuoeoecfdooooooooooo", "oooooooeuoeoeocffloooooooooo", "ooooooeuoeoeoeoeoboooooooooo", "oooooeuoeoeoeoeoedbooooooooo", "oooohuoeoeoeoeoeoffooooooooo", "oooohueoeoeoeoeoeffooooooooo", "ooooocdddddddddddfbooooooooo", "oooooochcdcdcccccfbooooooooo", "ooooooochchccccccbdooooooooo", "oooooooochchcccccblooooooooo", "ooooooooochcccffffoooooooooo", "ooooooolllchccbbbdlllloooooo", "oooooooolllbhcbblllllllooooo", "oooooooooollbhbblllllloooooo", "ooooooooooollbbllllooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/liece-pointer.xbm0100644000175000017500000000054707072244506017450 0ustar bg66bg66#define irchat-pointer_width 18 #define irchat-pointer_height 13 static unsigned char irchat-pointer_bits[] = { 0x00, 0x00, 0xfc, 0x00, 0x70, 0xfc, 0x00, 0x70, 0xfc, 0x00, 0xbc, 0xfc, 0x00, 0x3f, 0xfc, 0x00, 0x06, 0xfc, 0x40, 0x03, 0xfc, 0x88, 0x00, 0xfc, 0xfc, 0x00, 0xfd, 0xf2, 0x83, 0xfd, 0x94, 0xff, 0xfc, 0x00, 0x3e, 0xfc, 0x00, 0x00, 0xfc}; liece-2.0+0.20030527cvs/etc/icons/ball.gray.xpm0100644000175000017500000000061607072244506016577 0ustar bg66bg66/* XPM */ static char * ball_gray_xpm[] = { "12 12 10 1", " c None", ". c #000000", "+ c #999999", "@ c #666666", "# c #FFFFFF", "$ c #CCCCCC", "% c #888888", "& c #555555", "* c #BBBBBB", "= c #333333", " .... ", " .+++@. ", " .+#$%@&. ", " .+*#*%@&=. ", " .++++@&==. ", " .+++@@&=.. ", " .@@@@&==.. ", " .@@&&==... ", " .====.=. ", " .=.... ", " .... ", " "}; liece-2.0+0.20030527cvs/etc/icons/ball.red.xpm0100644000175000017500000000052007072244506016401 0ustar bg66bg66/* XPM */ static char * ball_red_xpm[] = { "12 12 6 1", " c None", ". c #000000", "+ c #FF9999", "@ c #FF3333", "# c #FFFFFF", "$ c #660000", " ", " .... ", " .+++@. ", " .+#+@@$. ", " .++#++@@$. ", " .@+@+@$$$. ", " .+@+@@@$.. ", " .@@@@$$$.. ", " .@@$@$$... ", " .$$$$.$. ", " .$.... ", " .... "}; liece-2.0+0.20030527cvs/etc/icons/balloon.xpm0100644000175000017500000000050507150625447016353 0ustar bg66bg66/* XPM */ static char * balloon_xpm[] = { "12 12 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #808080", " ...... ", " ..++++.. ", " .++++++++. ", ".++@@@@@@++.", ".++++++++++.", ".++@@@@@@++.", ".++++++++++.", ".++@@@@@@++.", " .++++++++. ", " .++++++. ", " .+++... ", " ..... "}; liece-2.0+0.20030527cvs/etc/icons/crypt.xpm0100644000175000017500000000260607072244506016066 0ustar bg66bg66/* XPM */ static char *crypt[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooijiiinooooooo", "ooooooooooooooiouokkiioooooo", "oooooooooooooikkjiiksioooooo", "oooooooooooooik.oooik.oooooo", "oooooooooooooikjooornjoooooo", "oooooooooooooik#ooon..oooooo", "oooooiiniiiiijkijooooooooooo", "ooooi#n.kkkkin.ji#oooooooooo", "ooooiaooouuookki#.oooooooooo", "ooooikokkkkkkkii#.oooooooooo", "ooooimommmmmmmmi#.oooooooooo", "ooooikokkkkkkkki#.oooooooooo", "ooooimommmmmmmji#.lllllooooo", "ooooikokkkkkkkki#.iiillooooo", "ooooimommmmmmjjj#.lilooooooo", "ooooikkkkkkkkkki#.lloooooooo", "oooooiijjjjj.....ooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/encrypt.xpm0100644000175000017500000000251407072244506016407 0ustar bg66bg66/* XPM */ static char *encrypt[] = { /* width height num_colors chars_per_pixel */ " 28 28 19 1", /* colors */ ". c #000000", "# c #000080", "a c #003438", "b c #008000", "c c #008080", "d c #00fc00", "e c #202020", "f c #303060", "g c #4098a0", "h c #6064c8", "i c #808000", "j c #808080", "k c #9898f8", "l c #c0c0c0 s backgroundToolBarColor", "m c #e8e8e8", "n c #f86430", "s c #f864c8", "p c #f8fc00", "q c #f8fcf8", /* pixels */ "llllllllllllllllllllllllllll", "llllllllllllllllllllllllllll", "llllllllllllllllllllllllllll", "llllllllllllllllllllllllllll", "llllllllllppppppllllllllllll", "llllllllpphhhhhpplllllllllll", "lllllllpphqqllkhfpllllllllll", "lllllllphql###lkhfplllllllll", "lllllllphqepll#lheplllllllll", "lllllllphlepll#kheplllllllll", "llllllpphleppp#kheppllllllll", "lllllppehkhjhffkhefpllllllll", "lllllphkhffkkkkefhh.plllllll", "lllllphklqqqllllkhf.plllllll", "lllllphkqhhhhhhhhef.plllllll", "lllllphkqlllllllkhf.plllllll", "lllllphkqhhhhhhhhff.plllllll", "lllllphkqlllllllkhf.plllllll", "lllllphkqhhhhhhhhef.jjjjjlll", "lllllphkqlllllllkhf.phhjllll", "lllllphkhhhhhhhhhf#.jpllllll", "lllllpph#fffffefe..pppllllll", "llllllppppppppppppplllllllll", "llllllllllllllllllllllllllll", "llllllllllllllllllllllllllll", "llllllllllllllllllllllllllll", "llllllllllllllllllllllllllll", "llllllllllllllllllllllllllll" }; liece-2.0+0.20030527cvs/etc/icons/forward.xpm0100644000175000017500000000261007072244506016364 0ustar bg66bg66/* XPM */ static char *forward[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "ooooooooedhooooooooooooooooo", "ooooooooeechoooooooooooooooo", "oooooooohuochooooooooooooooo", "oooooooohoeochoooooooooooooo", "oooooooohuoeochooooooooooooo", "oooooooohoeoeochoooooooooooo", "ooooeeeeeuoeoeoccooooooooooo", "oooohououoeoeoeodcoooooooooo", "oooohueeoeoeoeoeodcooooooooo", "oooohoeoeoeoeoeoeodcoooooooo", "oooohueeoeoeoeoeoecdoooooooo", "oooohodddddddddddbbdoooooooo", "oooohuchchccccccbbdooooooooo", "ooooeohchccccccbbdoooooooooo", "ooooeechchccccbbdooooooooooo", "oooocbbbbhcccbbdlllllllooooo", "oooooooochccbgdllllllloooooo", "ooooolllchcbgdlllllooooooooo", "oooooollccbgdllloooooooooooo", "ooooooollbgdoooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/home.xpm0100644000175000017500000000260507072244506015654 0ustar bg66bg66/* XPM */ static char *home[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "ooooooooooooooooungioooooooo", "ooooooooooonnnnnungioooooooo", "oooooooooooiiiiiongioooooooo", "ooooooooooiuiiiiongioooooooo", "oooooooooifguiiiongioooooooo", "ooooooooifinguiiinggoooooooo", "oooooooifinoniuiiigigooooooo", "ooooooifinononioiiigiioooooo", "oooooiginonononioiiiigiooooo", "ooooiginonononongoiiiiiioooo", "oooigfnononononongnffgggoooo", "oooooiononiigsononibbgiooooo", "oooooononoiiilnonoifggoooooo", "ooooooononiiilononiggioooooo", "oooooononoiiisnonoigiioooooo", "ooooooononiigsononiinioooooo", "oooooononoigglnonoiniioooooo", "oooohhononggglononinlhoooooo", "oollchnhnonkkrkkilhllhlooooo", "oollchclllkkrkllhhhchhhhhooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/icons.gif0100644000175000017500000003271607072244506016006 0ustar bg66bg66/* XPM */ static char *icons[] = { /* width height num_colors chars_per_pixel */ " 454 29 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #c0c0c0", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "poooooooooooooooooooooooooelooooooooooooooooooooooooooooooooooooooooooedhooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooiiiiiiiiiiilooooooooooooooooooo", "pooooooooooooooooooooooooeudooogggggooooooooooooooooooooooooooooooooooeechoooooogggggooooooooooooooooooooooooooooooooooiiiiiiiigoooooooooooooooooooooooooooooooooooooooooooooooooooungiooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooniiigoooooogggggooooooooooooooooooooooooooooooooooooouuuuuuuuuloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonllnlnlnlnligooooooooooooooooooo", "poooooooooooooooooooooooeuoclooogggooooooooooooooooooooooooooooooooooohuochoooooogggooooooooooooooooooooooooooooooooooiuininiif#ggoooooooooooooooooooooooooooooooooooooooooooonnnnnungiooooooooooooooooooooooooooooooooooooooooooouououoooooooooooooooooooooooooooooooooooooonuoigooooooogggoooooooooooooooooooooooooooooooooooooouuuouououloooooooooooooooooooooooooooooooooooooooooooooooijiiinooooooooooooooooooooooooooooooooooogninnlg.glolol...goooooooooooooooo", "pooooooooooooooooooooooeuoecboooogoooooooooooooooooooooooooooooooooooohoeochoooooogooooooooooooooooooooooooooooooooooiunnnnnifff#ggoooooooooooooooooooooooooooooooooooooooooooiiiiiongioooooooooooooooooooooooooooooooooooooooooouououououooooooooooooooooooooooooooooooooooonogigoooooooogooooooooooooooooooooooooooooooooooooooouuuuououulooooooooooooooooooooooooooooooooooooooooooooooiouokkiioooooooooooooooooooooooooooooooooogoioljjjj.lnogli.goooooooooooooooo", "poooooooooooooooooooooeuoeocbloooooooooooooooooooooooooooooooooooooooohuoeochooooooooooooooooooooooooooooooooooooiuoooononononnniffgoooooooooooooooooooooooooooooooooooooooooiuiiiiongiooooooooooooooooooooooooooooooooooooooooououuuuuuuouooooooooooooooooooooooooooooooooonoggi.oooooooooooooooooooooooooooooooooooooooooooooooouuuuuuuuuloooooooooooooooooooooooooooooooooooooooooooooikkjiiksiooooooooooooooooooooooooooooooooooogiojjqjjg.loli.j.oooooooooooooooo", "pooooooooooooooooooooeuoeoecfdoooooooooooooooooooooooooooooooooooooooohoeoeochooooooooooooooooooooooooooooooooooooiuoonononononfffggooooooooooooooooooooooooooooooooooooooooifguiiiongioooooooooooooooooooooooooooooooooooooooououuuuuuuottoooooooooooooooooooooooooooooooonogggi.oooooooooooooooooooooooooooooooooooooooooooooooouuuuuuuuulggingooooooooooooooooooooooooooooooooooooooooik.oooik.ooooooooooooooooooooooooooooooooooogiooqqqjg.noiojjooooooooooooooooo", "poooooooooooooooooooeuoeoeocffloooooooooooooooooooooooooooooooooooeeeeeuoeoeoccooooooooooooooooooooooooooooooooooooiuoononononfg##ggoooooooooooooooooooooooooooooooooooooooifinguiiinggooooooooooooooooooooooooooooooooooooooooouuuutuuuttouoooooooooooooooooooooooooooooonogiggi.oooooooooooooooooooooooooooooooooooooooooooooooouoooooooolgingoooooooooooooooooooooooooooooooooooooooooikjooornjooooooooooooooooooooooooooooooooooooioooqqjg.lolgjjooooooooooooooooo", "pooooooooooooooooooeuoeoeoeoeobooooooooooooooooooooooooooooooooooohououoeoeoeodcooooooooooooooooooooooooooooooooooooiuooooooifg###ggooooooooooooooooooooooooooooooooooooooifinoniuiiigigooooooooooooooooooooooooooooooooooooooouooootttutouoooooooooooooooooooooooooooooonoiigggi.ooooooooooooooooooooooooooooooooooooooooooooooooououououlgingooooooooooooooooooooooooooooooooooooooooooik#ooon..ooooooooooooooooooooooooooooooooooooionoqjf.fnoigojooooooooooooooooo", "poooooooooooooooooeuoeoeoeoeoedboooooooooooooooooooooooooooooooooohueeoeoeoeoeodcooooooooooooooooooooooooooooooooooooiuooooifg####ggoooooooooooooooooooooooooooooooooooooifinononioiiigiiooooooooooooooooooooooooooooooooooooooniiiintttuuouoooooooooooooooooooooooooooonunigig.igggiiiiiiiooooooooooooooooooooooooooooooooooooonououououoliggoooooooooooooooooooooooooooooooooooiiniiiiijkijoooooooooooooooooooooooooooooooooooooooglionnffffilogggggoooooooooooooooo", "poooooooooooooooohuoeoeoeoeoeoffoooooooooooooooooooooooooooooooooohoeoeoeoeoeoeodcooooooooooooooooooooooooooooooooooooiuooifgi####ggooooooooooooooooooooooooooooooooooooiginonononioiiiigioooooooooooooooooooooooooooooooooooooinoiifntuuuuooooooooooooooooooooooooooooonuniigg.noooooooooogooooooooooooooooooooooooooooooooooiinnniiiiiiiiiiggiooooooooooooooooooooooooooooooooi#n.kkkkin.ji#oooooooooooooooooooooooooooooooooooooognion....ignoili.goooooooooooooooo", "poooooooooooooooohueoeoeoeoeoeffoooooooooooooooooooooooooooooooooohueeoeoeoeoeoecdoooooooooooooooooooooooooooooooooooooiuifgoi####ggoooooooooooooooooooooooooooooooooooiginonononongoiiiiiioooooooooooooooooooooooooooooooooooinoniigfotutouoooooooooooooooooooooooooooonunigi.iinnnnnnnnnnogooooooooooooooooooooooooooooooooiuuoouonniiinniggiiooooooooooooooooooooooooooooooooiaooouuookki#.ooooooooooooooooooooooooooooooooooooooogiolggiiggloli.ggoooooooooooooooo", "pooooooooooooooooocdddddddddddfboooooooooooooooooooooooooooooooooohodddddddddddbbdoooooooooooooooooooooooooooooooooooooogggooi###fggooooooooooooooooooooooooooooooooooigfnononononongnffgggooooooooooooooooooooooooooooooooggofiiiggigoutuuooooooooooooooooooooooooooooonuiii.niinnnnnnnnnnngooooooooooooooooooooooooooooooooiooooouuuuoniiggigiooooooooooooooooooooooooooooooooikokkkkkkkii#.ooooooooooooooooooooooooooooooooooooooooio.llggggnoioggooooooooooooooooo", "poooooooooooooooooochcdcdcccccfboooooooooooooooooooooooooooooooooohuchchccccccbbdooooooooooooooooooooooooooooooooooooooooooooi###fggolooooooooooooooooooooooooooooooooooiononiigsononibbgioooooooooooooooooooooooooooooooofoiiooggggigottouoooooooooooooooooooooooooooooigg..ioiinnnnnnnnnnngooooooooooooooooooooooooooooooooionooooooooooogggiiglooooooooooooooooooooooooooooooimommmmmmmmi#.ooooooooooooooooooooooooooooooooooooooooio.llggfllolgggooooooooooooooooo", "pooooooooooooooooooochchccccccbdooooooooooooooooooooooooooooooooooeohchccccccbbdooooooooooooooooooooooooooooooooooooooooooooonn#ffggolloooooooooooooooooooooooooooooooooononoiiilnonoifggoooooooooooooooooooooooooooooooooiinoongfgfgiouououoooooooooooooooooooooooooooooooooioiinnnnnnnnnngoooooooooooooooooooooooooooooooooionnnnnnnnnnnngggigfggoooooooooooooooooooooooooooooikokkkkkkkki#.oooooooooooooooooooooooooooooooooooooognionlggggnlolggg.oooooooooooooooo", "poooooooooooooooooooochchcccccblooooooooooooooooooooooooooooooooooeechchccccbbdoooooooooooooooooooooooooooooooooooooonnnnnnnnnif#fgglllooooooooooooooooooooooooooooooooooononiiilononiggiooooooooooooooooooooooooooooooooinooniigffgiluououooooooooooooooooooooooooooooooooooioigggggggggggooooooooooooooooooooooooooooooooooionnononononnnggiggfgloooooooooooooooooooooooooooooimommmmmmmji#.lllllooooooooooooooooooooooooooooooooogniol....flnogli.goooooooooooooooo", "pooooooooooooooooooooochcccffffooooooooooooooooooooooooooooooooooocbbbbhcccbbdllllllloooooooooooooooooooooooooooooooonnnnnnnnnifffggiiooooooooooooooooooooooooooooooooooononoiiisnonoigiiooooooooooooooooooooooooooooooiiooniiigfillloonlnlnoooooooooooooooooooooooooooooooooioig.oooooooooooooooooooooooooooooooooooooooooooiinononononecnggggfglooooooooooooooooooooooooooooooikokkkkkkkki#.iiillooooooooooooooooooooooooooooooooolgio.ffff.gloii.ggoooooooooooooooo", "pooooooooooooooooooolllchccbbbdllllooooooooooooooooooooooooooooooooooochccbgdlllllllooooooooooooooooooooooooooooooooonininininiifgigiloooooooooooooooooooooooooooooooooooononiigsononiinioooooooooooooooooooooooooooooinoniiigfiooooonillllloooooooooooooooooooooooooooooooooioiggligigiiiillooooooooooooooooooooooooooooooooolliiiiiiiiinngggfgloooooooooooooooooooooooooooooooimommmmmmjjj#.liloooooooooooooooooooooooooooooooooooogio.gggfg.noilggooooooooooooooooo", "poooooooooooooooooooolllbhcbblllllllooooooooooooooooooooooooooooooolllchcbgdlllllooooooooooooooooooooooooooooooooooooniiiiiiiiiiiigillooooooooooooooooooooooooooooooooooononoigglnonoiniioooooooooooooooooooooooooooooggiiigfiooooniiiiiillnoooooooooooooooooooooooooooooooooioiggigigigilllooooooooooooooooooooooooooooooooooooooolliigggggffglooooooooooooooooooooooooooooooooikkkkkkkkkki#.llooooooooooooooooooooooooooooooooooooooiooggfgf.loigggllloooooooooooooo", "poooooooooooooooooooooollbhbbllllllooooooooooooooooooooooooooooooooollccbgdlllooooooooooooooooooooooooooooooooooooooooniiggggg#gggilloooooooooooooooooooooooooooooooooohhononggglononinlhoooooooooooooooooooooooooooooiggigillonliiillnooooooooooooooooooooooooooooooooooooooioiggliloooooooooooooooooooooooooooooooooooooooooooooooooooolgfgooooooooooooooooooooooooooooooooooooiijjjjj.....oooooooooooooooooooooooooooooooooooooooooinnnfffglnlifllllooooooooooooooo", "pooooooooooooooooooooooollbbllllooooooooooooooooooooooooooooooooooooollbgdooooooooooooooooooooooooooooooooooooooooooooooolllllllllllooooooooooooooooooooooooooooooooollchnhnonkkrkkilhllhloooooooooooooooooooooooooooonfgflllllllnoooooooooooooooooooooooooooooooooooooooooooioigllooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogggiiiiigi.llloooooooooooooooo", "poooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooollchclllkkrkllhhhchhhhhoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/icons.xpm0100644000175000017500000003271607072244506016045 0ustar bg66bg66/* XPM */ static char *icons[] = { /* width height num_colors chars_per_pixel */ " 454 29 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #c0c0c0", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "poooooooooooooooooooooooooelooooooooooooooooooooooooooooooooooooooooooedhooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooiiiiiiiiiiilooooooooooooooooooo", "pooooooooooooooooooooooooeudooogggggooooooooooooooooooooooooooooooooooeechoooooogggggooooooooooooooooooooooooooooooooooiiiiiiiigoooooooooooooooooooooooooooooooooooooooooooooooooooungiooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooniiigoooooogggggooooooooooooooooooooooooooooooooooooouuuuuuuuuloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonllnlnlnlnligooooooooooooooooooo", "poooooooooooooooooooooooeuoclooogggooooooooooooooooooooooooooooooooooohuochoooooogggooooooooooooooooooooooooooooooooooiuininiif#ggoooooooooooooooooooooooooooooooooooooooooooonnnnnungiooooooooooooooooooooooooooooooooooooooooooouououoooooooooooooooooooooooooooooooooooooonuoigooooooogggoooooooooooooooooooooooooooooooooooooouuuouououloooooooooooooooooooooooooooooooooooooooooooooooijiiinooooooooooooooooooooooooooooooooooogninnlg.glolol...goooooooooooooooo", "pooooooooooooooooooooooeuoecboooogoooooooooooooooooooooooooooooooooooohoeochoooooogooooooooooooooooooooooooooooooooooiunnnnnifff#ggoooooooooooooooooooooooooooooooooooooooooooiiiiiongioooooooooooooooooooooooooooooooooooooooooouououououooooooooooooooooooooooooooooooooooonogigoooooooogooooooooooooooooooooooooooooooooooooooouuuuououulooooooooooooooooooooooooooooooooooooooooooooooiouokkiioooooooooooooooooooooooooooooooooogoioljjjj.lnogli.goooooooooooooooo", "poooooooooooooooooooooeuoeocbloooooooooooooooooooooooooooooooooooooooohuoeochooooooooooooooooooooooooooooooooooooiuoooononononnniffgoooooooooooooooooooooooooooooooooooooooooiuiiiiongiooooooooooooooooooooooooooooooooooooooooououuuuuuuouooooooooooooooooooooooooooooooooonoggi.oooooooooooooooooooooooooooooooooooooooooooooooouuuuuuuuuloooooooooooooooooooooooooooooooooooooooooooooikkjiiksiooooooooooooooooooooooooooooooooooogiojjqjjg.loli.j.oooooooooooooooo", "pooooooooooooooooooooeuoeoecfdoooooooooooooooooooooooooooooooooooooooohoeoeochooooooooooooooooooooooooooooooooooooiuoonononononfffggooooooooooooooooooooooooooooooooooooooooifguiiiongioooooooooooooooooooooooooooooooooooooooououuuuuuuottoooooooooooooooooooooooooooooooonogggi.oooooooooooooooooooooooooooooooooooooooooooooooouuuuuuuuulggingooooooooooooooooooooooooooooooooooooooooik.oooik.ooooooooooooooooooooooooooooooooooogiooqqqjg.noiojjooooooooooooooooo", "poooooooooooooooooooeuoeoeocffloooooooooooooooooooooooooooooooooooeeeeeuoeoeoccooooooooooooooooooooooooooooooooooooiuoononononfg##ggoooooooooooooooooooooooooooooooooooooooifinguiiinggooooooooooooooooooooooooooooooooooooooooouuuutuuuttouoooooooooooooooooooooooooooooonogiggi.oooooooooooooooooooooooooooooooooooooooooooooooouoooooooolgingoooooooooooooooooooooooooooooooooooooooooikjooornjooooooooooooooooooooooooooooooooooooioooqqjg.lolgjjooooooooooooooooo", "pooooooooooooooooooeuoeoeoeoeobooooooooooooooooooooooooooooooooooohououoeoeoeodcooooooooooooooooooooooooooooooooooooiuooooooifg###ggooooooooooooooooooooooooooooooooooooooifinoniuiiigigooooooooooooooooooooooooooooooooooooooouooootttutouoooooooooooooooooooooooooooooonoiigggi.ooooooooooooooooooooooooooooooooooooooooooooooooououououlgingooooooooooooooooooooooooooooooooooooooooooik#ooon..ooooooooooooooooooooooooooooooooooooionoqjf.fnoigojooooooooooooooooo", "poooooooooooooooooeuoeoeoeoeoedboooooooooooooooooooooooooooooooooohueeoeoeoeoeodcooooooooooooooooooooooooooooooooooooiuooooifg####ggoooooooooooooooooooooooooooooooooooooifinononioiiigiiooooooooooooooooooooooooooooooooooooooniiiintttuuouoooooooooooooooooooooooooooonunigig.igggiiiiiiiooooooooooooooooooooooooooooooooooooonououououoliggoooooooooooooooooooooooooooooooooooiiniiiiijkijoooooooooooooooooooooooooooooooooooooooglionnffffilogggggoooooooooooooooo", "poooooooooooooooohuoeoeoeoeoeoffoooooooooooooooooooooooooooooooooohoeoeoeoeoeoeodcooooooooooooooooooooooooooooooooooooiuooifgi####ggooooooooooooooooooooooooooooooooooooiginonononioiiiigioooooooooooooooooooooooooooooooooooooinoiifntuuuuooooooooooooooooooooooooooooonuniigg.noooooooooogooooooooooooooooooooooooooooooooooiinnniiiiiiiiiiggiooooooooooooooooooooooooooooooooi#n.kkkkin.ji#oooooooooooooooooooooooooooooooooooooognion....ignoili.goooooooooooooooo", "poooooooooooooooohueoeoeoeoeoeffoooooooooooooooooooooooooooooooooohueeoeoeoeoeoecdoooooooooooooooooooooooooooooooooooooiuifgoi####ggoooooooooooooooooooooooooooooooooooiginonononongoiiiiiioooooooooooooooooooooooooooooooooooinoniigfotutouoooooooooooooooooooooooooooonunigi.iinnnnnnnnnnogooooooooooooooooooooooooooooooooiuuoouonniiinniggiiooooooooooooooooooooooooooooooooiaooouuookki#.ooooooooooooooooooooooooooooooooooooooogiolggiiggloli.ggoooooooooooooooo", "pooooooooooooooooocdddddddddddfboooooooooooooooooooooooooooooooooohodddddddddddbbdoooooooooooooooooooooooooooooooooooooogggooi###fggooooooooooooooooooooooooooooooooooigfnononononongnffgggooooooooooooooooooooooooooooooooggofiiiggigoutuuooooooooooooooooooooooooooooonuiii.niinnnnnnnnnnngooooooooooooooooooooooooooooooooiooooouuuuoniiggigiooooooooooooooooooooooooooooooooikokkkkkkkii#.ooooooooooooooooooooooooooooooooooooooooio.llggggnoioggooooooooooooooooo", "poooooooooooooooooochcdcdcccccfboooooooooooooooooooooooooooooooooohuchchccccccbbdooooooooooooooooooooooooooooooooooooooooooooi###fggolooooooooooooooooooooooooooooooooooiononiigsononibbgioooooooooooooooooooooooooooooooofoiiooggggigottouoooooooooooooooooooooooooooooigg..ioiinnnnnnnnnnngooooooooooooooooooooooooooooooooionooooooooooogggiiglooooooooooooooooooooooooooooooimommmmmmmmi#.ooooooooooooooooooooooooooooooooooooooooio.llggfllolgggooooooooooooooooo", "pooooooooooooooooooochchccccccbdooooooooooooooooooooooooooooooooooeohchccccccbbdooooooooooooooooooooooooooooooooooooooooooooonn#ffggolloooooooooooooooooooooooooooooooooononoiiilnonoifggoooooooooooooooooooooooooooooooooiinoongfgfgiouououoooooooooooooooooooooooooooooooooioiinnnnnnnnnngoooooooooooooooooooooooooooooooooionnnnnnnnnnnngggigfggoooooooooooooooooooooooooooooikokkkkkkkki#.oooooooooooooooooooooooooooooooooooooognionlggggnlolggg.oooooooooooooooo", "poooooooooooooooooooochchcccccblooooooooooooooooooooooooooooooooooeechchccccbbdoooooooooooooooooooooooooooooooooooooonnnnnnnnnif#fgglllooooooooooooooooooooooooooooooooooononiiilononiggiooooooooooooooooooooooooooooooooinooniigffgiluououooooooooooooooooooooooooooooooooooioigggggggggggooooooooooooooooooooooooooooooooooionnononononnnggiggfgloooooooooooooooooooooooooooooimommmmmmmji#.lllllooooooooooooooooooooooooooooooooogniol....flnogli.goooooooooooooooo", "pooooooooooooooooooooochcccffffooooooooooooooooooooooooooooooooooocbbbbhcccbbdllllllloooooooooooooooooooooooooooooooonnnnnnnnnifffggiiooooooooooooooooooooooooooooooooooononoiiisnonoigiiooooooooooooooooooooooooooooooiiooniiigfillloonlnlnoooooooooooooooooooooooooooooooooioig.oooooooooooooooooooooooooooooooooooooooooooiinononononecnggggfglooooooooooooooooooooooooooooooikokkkkkkkki#.iiillooooooooooooooooooooooooooooooooolgio.ffff.gloii.ggoooooooooooooooo", "pooooooooooooooooooolllchccbbbdllllooooooooooooooooooooooooooooooooooochccbgdlllllllooooooooooooooooooooooooooooooooonininininiifgigiloooooooooooooooooooooooooooooooooooononiigsononiinioooooooooooooooooooooooooooooinoniiigfiooooonillllloooooooooooooooooooooooooooooooooioiggligigiiiillooooooooooooooooooooooooooooooooolliiiiiiiiinngggfgloooooooooooooooooooooooooooooooimommmmmmjjj#.liloooooooooooooooooooooooooooooooooooogio.gggfg.noilggooooooooooooooooo", "poooooooooooooooooooolllbhcbblllllllooooooooooooooooooooooooooooooolllchcbgdlllllooooooooooooooooooooooooooooooooooooniiiiiiiiiiiigillooooooooooooooooooooooooooooooooooononoigglnonoiniioooooooooooooooooooooooooooooggiiigfiooooniiiiiillnoooooooooooooooooooooooooooooooooioiggigigigilllooooooooooooooooooooooooooooooooooooooolliigggggffglooooooooooooooooooooooooooooooooikkkkkkkkkki#.llooooooooooooooooooooooooooooooooooooooiooggfgf.loigggllloooooooooooooo", "poooooooooooooooooooooollbhbbllllllooooooooooooooooooooooooooooooooollccbgdlllooooooooooooooooooooooooooooooooooooooooniiggggg#gggilloooooooooooooooooooooooooooooooooohhononggglononinlhoooooooooooooooooooooooooooooiggigillonliiillnooooooooooooooooooooooooooooooooooooooioiggliloooooooooooooooooooooooooooooooooooooooooooooooooooolgfgooooooooooooooooooooooooooooooooooooiijjjjj.....oooooooooooooooooooooooooooooooooooooooooinnnfffglnlifllllooooooooooooooo", "pooooooooooooooooooooooollbbllllooooooooooooooooooooooooooooooooooooollbgdooooooooooooooooooooooooooooooooooooooooooooooolllllllllllooooooooooooooooooooooooooooooooollchnhnonkkrkkilhllhloooooooooooooooooooooooooooonfgflllllllnoooooooooooooooooooooooooooooooooooooooooooioigllooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogggiiiiigi.llloooooooooooooooo", "poooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooollchclllkkrkllhhhchhhhhoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/key.xpm0100644000175000017500000000133307072244506015511 0ustar bg66bg66/* XPM */ static char * mini_lock_xpm[] = { "22 22 4 1", " c None s backgroundToolBarColor", ". c #82077DF77DF7", "X c #000000000000", "o c #FFFFFFFFFFFF", " ", " ", " ", " ", " .XXX. ", " .ooo.X ", " ..oXXXo.. ", " XoX...XoX ", " XoX. XoX. ", " XoX. XoX. ", " XXXXXXXXXXX ", " X X. ", " X ....... X. ", " X ooooooo X. ", " X ....... X. ", " X X. ", " XXXXXXXXXXX. ", " ........... ", " ", " ", " ", " "}; liece-2.0+0.20030527cvs/etc/icons/liece-pointer.xpm0100644000175000017500000000230107072244506017454 0ustar bg66bg66/* XPM */ static char * irchat_pointer_xpm[] = { "18 13 58 1", " c None", ". c #943D51", "+ c #8F243B", "@ c #943E51", "# c #84132C", "$ c #6A031A", "% c #99364C", "& c #9B3D52", "* c #8E1731", "= c #72031C", "- c #670319", "; c #993E52", "> c #AC324D", ", c #981632", "' c #81041F", ") c #77031D", "! c #82162E", "~ c #9A3D51", "{ c #951834", "] c #9E3C52", "^ c #A73750", "/ c #973D51", "( c #A73E55", "_ c #AB2B47", ": c #9A1130", "< c #8B0422", "[ c #8F0F2A", "} c #9F2B44", "| c #89384A", "1 c #943F51", "2 c #A74056", "3 c #A2364E", "4 c #88112A", "5 c #76031D", "6 c #750820", "7 c #993248", "8 c #923D50", "9 c #933F52", "0 c #954154", "a c #9F4156", "b c #A04156", "c c #9F4256", "d c #9D3C51", "e c #7E172E", "f c #5F0317", "g c #590316", "h c #70192C", "i c #8C3146", "j c #92394D", "k c #8F394C", "l c #7F3041", "m c #923E51", "n c #983E51", "o c #8E3045", "p c #701D30", "q c #66192A", "r c #772839", "s c #8F3A4D", " ", " .+@ ", " #$% ", " &*=-; ", " >,')!~ ", " {] ", " ^/ ", " ( ", " _:<[}| 1 ", " 2 345678 90 ", " abc defghijklm ", " nopqrs ", " "}; liece-2.0+0.20030527cvs/etc/icons/location.xpm0100644000175000017500000000261107072244506016531 0ustar bg66bg66/* XPM */ static char *location[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooniiigoooooooooooooooo", "ooooooonuoigoooooooooooooooo", "ooooooonogigoooooooooooooooo", "oooooonoggi.oooooooooooooooo", "ooooonogggi.oooooooooooooooo", "oooonogiggi.oooooooooooooooo", "ooonoiigggi.oooooooooooooooo", "oonunigig.igggiiiiiiiooooooo", "oonuniigg.noooooooooogoooooo", "oonunigi.iinnnnnnnnnnogooooo", "oonuiii.niinnnnnnnnnnngooooo", "ooigg..ioiinnnnnnnnnnngooooo", "oooooooioiinnnnnnnnnngoooooo", "oooooooioigggggggggggooooooo", "oooooooioig.oooooooooooooooo", "oooooooioiggligigiiiillooooo", "oooooooioiggigigigillloooooo", "oooooooioigglilooooooooooooo", "oooooooioigllooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/naruto.blank.xpm0100644000175000017500000000077107072244506017324 0ustar bg66bg66/* XPM */ static char *naruto_blank_xpm[] = { /* width height num_colors chars_per_pixel */ " 16 16 2 1", /* colors */ ". c #000000", "# c None", /* pixels */ "################", "################", "################", "################", "################", "################", "################", "################", "################", "################", "################", "################", "################", "################", "################", "################" }; liece-2.0+0.20030527cvs/etc/icons/naruto.gray.xpm0100644000175000017500000000102607072244506017171 0ustar bg66bg66/* XPM */ static char *naruto_gray_xpm[] = { /* width height num_colors chars_per_pixel */ " 16 16 4 1", /* colors */ ". c None", "# c #fffab5", "a c #8e8e8e", "b c #000000", /* pixels */ ".......#####....", ".......#####....", "......#aaaab##..", "......#aaaab##..", "...####aaaab###.", "...####aaaab###.", "###aaaaaaaaaaaa#", "###aaaaaaaaaaaa#", "...####aaaab###.", "...####aaaab###.", "......#aaaab##..", "......#aaaab##..", "......#aaaab##..", "......#aaaab##..", "......#aaaab##..", "......#aaaab##.." }; liece-2.0+0.20030527cvs/etc/icons/naruto.red.xpm0100644000175000017500000000421107072244506017000 0ustar bg66bg66/* XPM */ static char * naruto_red_xpm[] = { "16 16 97 2", " c None", ". c #0F0F0F", "+ c #363636", "@ c #434343", "# c #232323", "$ c #000000", "% c #333333", "& c #EAEAEA", "* c #4A4A4A", "= c #555555", "- c #212121", "; c #393939", "> c #F6F6F6", ", c #FFFFFF", "' c #E7E7E7", ") c #F3F3F3", "! c #FFFAFA", "~ c #F0EAEA", "{ c #D1D1D1", "] c #444444", "^ c #7A7A7A", "/ c #FFFCFC", "( c #FFC2C2", "_ c #FFA3A3", ": c #FFAAAA", "< c #FFC6C6", "[ c #E4E4E4", "} c #030303", "| c #565656", "1 c #E4E2E2", "2 c #FFD4D4", "3 c #B9B9B9", "4 c #0D0D0D", "5 c #AEAEAE", "6 c #FFC8C8", "7 c #FFCDCD", "8 c #5E5E5E", "9 c #929292", "0 c #FDF9F9", "a c #FFA1A1", "b c #FFFEFE", "c c #FFD7D7", "d c #FFCCCC", "e c #FFF8F8", "f c #B5B5B5", "g c #141414", "h c #7E6161", "i c #FFD1D1", "j c #FFB9B9", "k c #FFD3D3", "l c #FFA2A2", "m c #DFDFDF", "n c #818181", "o c #101010", "p c #E2C7C7", "q c #FFBFBF", "r c #FFEAEA", "s c #FFF9F9", "t c #FFCECE", "u c #525252", "v c #ACACAC", "w c #FFFDFD", "x c #FFA0A0", "y c #9E9E9E", "z c #606060", "A c #FFE0E0", "B c #FFA7A7", "C c #FFF3F3", "D c #FFDADA", "E c #FEFEFE", "F c #323232", "G c #020202", "H c #282828", "I c #656565", "J c #FFE9E9", "K c #FFC3C3", "L c #FFF7F7", "M c #ABABAB", "N c #1F1F1F", "O c #898989", "P c #383838", "Q c #999999", "R c #B3B3B3", "S c #040404", "T c #2B2B2B", "U c #FBFBFB", "V c #7B7B7B", "W c #070707", "X c #CDCDCD", "Y c #DDDDDD", "Z c #0C0C0C", "` c #191919", " . c #C7C7C7", ".. c #2D2D2D", "+. c #1B1B1B", "@. c #DEDEDE", "#. c #131313", " . ", " + @ # $ % & * # = - ", " ; > , ' ) ! ~ { , , ] ", " ^ / ( _ : : < , [ } ", " | 1 : 2 , , , , , 3 } ", "4 5 , 6 7 , , , , , , , ' 8 ", " 9 0 a b , b c d e , , , , f g ", " h ( , , i j k l ! , , m n . ", " o p q , , r s , t i , u ", " v w x ! , , , , t i , y ", "z , , A B C , w D _ ! , E F ", "G H I , J B _ _ K L , , , M ", " N , , , > , , , O P Q R S ", " T , U V W X , Y Z ", " ` ... +.@.; ", " S #. "}; liece-2.0+0.20030527cvs/etc/icons/pindown.xpm0100644000175000017500000000105307072244506016376 0ustar bg66bg66/* XPM */ static char *pindown[] = { /* width height num_colors chars_per_pixel */ " 16 16 4 1", /* colors */ ". c #000000", "# c #c0c0c0", "a c #ffffff s backgroundToolBarColor", "b c #808080", /* pixels */ "aaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa", "aaaaaaaa....aaaa", "aaaaaa..#a#a.aaa", "aaaa...#a#a#b.aa", "aaaa.a.a#a#ab.aa", "aaa.a#.#a#ab..aa", "aaa.#a.b#abb..aa", "aaa.b#b......aaa", "aaa.bbbbb....aaa", "aaaa.bbb....baaa", "aaaa.......baaaa", "aaa.bb...bbaaaaa", "aaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaa" }; liece-2.0+0.20030527cvs/etc/icons/print.xpm0100644000175000017500000000260607072244506016061 0ustar bg66bg66/* XPM */ static char *print[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "ooooooooouuuuuuuuulooooooooo", "ooooooooouuuouououlooooooooo", "ooooooooouuuuououulooooooooo", "ooooooooouuuuuuuuulooooooooo", "ooooooooouuuuuuuuulggingoooo", "ooooooooouoooooooolgingooooo", "oooooooooououououlgingoooooo", "ooooooonououououoliggooooooo", "oooooiinnniiiiiiiiiiggiooooo", "ooooiuuoouonniiinniggiiooooo", "ooooiooooouuuuoniiggigiooooo", "ooooionooooooooooogggiiglooo", "ooooionnnnnnnnnnnngggigfggoo", "ooooionnononononnnggiggfgloo", "ooooiinononononecnggggfglooo", "ooooolliiiiiiiiinngggfgloooo", "oooooooooolliigggggffglooooo", "oooooooooooooooolgfgoooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/reload.xpm0100644000175000017500000000260707072244507016175 0ustar bg66bg66/* XPM */ static char *reload[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "ooooooooiiiiiiiigooooooooooo", "oooooooiuininiif#ggooooooooo", "ooooooiunnnnnifff#ggoooooooo", "ooiuoooononononnniffgooooooo", "oooiuoonononononfffggooooooo", "ooooiuoononononfg##ggooooooo", "oooooiuooooooifg###ggooooooo", "ooooooiuooooifg####ggooooooo", "oooooooiuooifgi####ggooooooo", "ooooooooiuifgoi####ggooooooo", "ooooooooogggooi###fggooooooo", "ooooooooooooooi###fggolooooo", "oooooooooooooonn#ffggolloooo", "oooooonnnnnnnnnif#fggllloooo", "oooooonnnnnnnnnifffggiiooooo", "oooooonininininiifgigilooooo", "ooooooniiiiiiiiiiiigillooooo", "oooooooniiggggg#gggilloooooo", "oooooooooolllllllllllooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/search.xpm0100644000175000017500000000260707072244507016174 0ustar bg66bg66/* XPM */ static char *search[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "ooooooooooooooouououoooooooo", "oooooooooooooouououououooooo", "ooooooooooooououuuuuuuouoooo", "oooooooooooououuuuuuuottoooo", "ooooooooooooouuuutuuuttouooo", "oooooooooooouooootttutouoooo", "ooooooooooooniiiintttuuouooo", "ooooooooooooinoiifntuuuuoooo", "oooooooooooinoniigfotutouooo", "ooooooooggofiiiggigoutuuoooo", "ooooooofoiiooggggigottouoooo", "oooooooiinoongfgfgiouououooo", "ooooooinooniigffgiluououoooo", "ooooiiooniiigfillloonlnlnooo", "oooinoniiigfiooooonilllllooo", "oooggiiigfiooooniiiiiillnooo", "oooiggigillonliiillnoooooooo", "ooonfgflllllllnooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/stop.xpm0100644000175000017500000000260507072244507015712 0ustar bg66bg66/* XPM */ static char *stop[] = { /* width height num_colors chars_per_pixel */ " 28 28 23 1", /* colors */ ". c #000000", "# c #000080", "a c #0000f8", "b c #003438", "c c #008000", "d c #008080", "e c #00fc00", "f c #202020", "g c #303060", "h c #4098a0", "i c #6064c8", "j c #800000", "k c #808000", "l c #808080", "m c #980060", "n c #9898f8", "o c #b2b2b2 s backgroundToolBarColor", "p c #e8e8e8", "q c #f80000", "r c #f86430", "s c #f864c8", "t c #f8fc00", "u c #f8fcf8", /* pixels */ "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "ooooooooiiiiiiiiiiiloooooooo", "ooooooonllnlnlnlnligoooooooo", "ooooogninnlg.glolol...gooooo", "ooooogoioljjjj.lnogli.gooooo", "oooooogiojjqjjg.loli.j.ooooo", "oooooogiooqqqjg.noiojjoooooo", "oooooooioooqqjg.lolgjjoooooo", "oooooooionoqjf.fnoigojoooooo", "oooooglionnffffilogggggooooo", "ooooognion....ignoili.gooooo", "oooooogiolggiiggloli.ggooooo", "oooooooio.llggggnoioggoooooo", "oooooooio.llggfllolgggoooooo", "ooooognionlggggnlolggg.ooooo", "ooooogniol....flnogli.gooooo", "ooooolgio.ffff.gloii.ggooooo", "oooooogio.gggfg.noilggoooooo", "oooooooiooggfgf.loiggglllooo", "oooooooinnnfffglnliflllloooo", "ooooooooogggiiiiigi.lllooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooo" }; liece-2.0+0.20030527cvs/etc/icons/Makefile.am0100644000175000017500000000012507425762563016237 0ustar bg66bg66icondir = $(pkgdatadir)/icons icon_DATA = $(wildcard *.xpm) EXTRA_DIST = $(icon_DATA)liece-2.0+0.20030527cvs/etc/po/0042755000175000017500000000000007664255027013512 5ustar bg66bg66liece-2.0+0.20030527cvs/etc/po/Makefile.am0100644000175000017500000000157707446453425015553 0ustar bg66bg66localedir = $(pkgdatadir)/locale pofiles = $(wildcard *.po) mofiles = $(pofiles:%.po=%.mo) EXTRA_DIST = $(pofiles) all: $(mofiles) %.mo: %.po msgfmt -o $@ $< install-data-local: $(mofiles) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(localedir) @list='$(mofiles)'; for p in $$list; do \ lang=`basename $$p | sed s/\.mo//`; \ $(mkinstalldirs) $(DESTDIR)$(localedir)/$$lang; \ $(mkinstalldirs) $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ if test -f $(srcdir)/$$p; then \ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/liece.mo"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/liece.mo; \ else if test -f $$p; then \ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/liece.mo"; \ $(INSTALL_DATA) $$p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/liece.mo; \ fi; fi; \ done liece-2.0+0.20030527cvs/etc/po/ja.po0100644000175000017500000002634407446453425014450 0ustar bg66bg66# Copyright (C) 1998-2002 Daiki Ueno # Daiki Ueno # msgid "" msgstr "" "Project-Id-Version: Liece 1.4.7\n" "PO-Revision-Date: 1998-12-30 18:09 +0900\n" "Last-Translator: Daiki Ueno \n" "Language-Team: Daiki Ueno \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=euc-japan\n" "Content-Transfer-Encoding: 8bit\n" msgid " (%d min)" msgstr " (%d ʬ)" msgid " \\(has\\|have\\) joined channel %s" msgstr " ¤¬¥Á¥ã¥ó¥Í¥ë %s ¤Ë»²²Ã¤·¤Þ¤·¤¿" msgid " \\(has\\|have\\) left IRC%s" msgstr " ¤¬¥Á¥ã¥ó¥Í¥ë %s ¤òÈ´¤±¤Þ¤·¤¿" msgid " \\(has\\|have\\) left channel %s%s" msgstr " ¤¬¥Á¥ã¥ó¥Í¥ë %s ¤òÈ´¤±¤Þ¤·¤¿%s" msgid " expired" msgstr "´ü¸Â¤¬ÀÚ¤ì¤Þ¤·¤¿" msgid "%d sec" msgstr "%d ÉÃ" msgid "%s (%s) has joined channel %s\n" msgstr "%s (%s) ¤¬¥Á¥ã¥ó¥Í¥ë %s ¤Ë»²²Ã¤·¤Þ¤·¤¿\n" msgid "%s Handshaking with %s (class: %s)\n" msgstr "%s %s (¥¯¥é¥¹ %s) ¤È¥Ï¥ó¥É¥·¥§¥¤¥¯¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹\n" msgid "%s Trying to connect to %s (class %s)\n" msgstr "%s %s (¥¯¥é¥¹ %s) ¤ËÀܳ¤ò»î¤ß¤Æ¤¤¤Þ¤¹\n" msgid "%s error (%s %s %s) is %s\n" msgstr "%s ¥¨¥é¡¼ (%s %s %s) ¤Ï %s\n" msgid "%s has come back as (%s)\n" msgstr "%s ¤¬ (%s) ¤È¤·¤ÆÌá¤ê¤Þ¤·¤¿\n" msgid "%s has come back\n" msgstr "%s ¤¬Ìá¤ê¤Þ¤·¤¿\n" msgid "%s has left IRC%s\n" msgstr " ¤Ï IRC ¤ò¤ä¤á¤Þ¤·¤¿%s\n" msgid "%s has left channel %s%s\n" msgstr "%s ¤¬¥Á¥ã¥ó¥Í¥ë %s ¤òÈ´¤±¤Þ¤·¤¿%s\n" msgid "%s is now known as %s\n" msgstr "%s ¤Ï %s ¤Ë¥Ë¥Ã¥¯¥Í¡¼¥à¤òÊѤ¨¤Þ¤·¤¿\n" msgid "%s%s (%s) has joined channel %s\n" msgstr "%s%s (%s) ¤¬¥Á¥ã¥ó¥Í¥ë %s ¤Ë»²²Ã¤·¤Þ¤·¤¿\n" msgid "%s%s has left IRC%s\n" msgstr "%s%s ¤Ï IRC ¤ò¤ä¤á¤Þ¤·¤¿%s\n" msgid "%s%s has left channel %s%s\n" msgstr "%s%s ¤¬¥Á¥ã¥ó¥Í¥ë %s ¤òÈ´¤±¤Þ¤·¤¿%s\n" msgid "%sNew mode for %s set by %s: %s\n" msgstr "%s%s ¤Ë %s ¤Ë¤è¤Ã¤Æ¿·¤·¤¤¥â¡¼¥É¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿: %s\n" msgid "(%d) %s request %s: %s (%s bytes)" msgstr "(%d) %s ¥ê¥¯¥¨¥¹¥È %s: %s (%s ¥Ð¥¤¥È)" msgid "(%d) %s request from %s" msgstr "(%1$d) %3$s ¤«¤é %2$s ¥ê¥¯¥¨¥¹¥È" msgid ", %s (%s) have joined channel %s" msgstr ", %s (%s) ¤¬¥Á¥ã¥ó¥Í¥ë %s ¤Ë»²²Ã¤·¤Þ¤·¤¿" msgid ", %s have left IRC%s" msgstr ", %s ¤Ï IRC ¤ò¤ä¤á¤Þ¤·¤¿%s" msgid ", %s have left channel %s%s" msgstr ", %s ¤Ï¥Á¥ã¥ó¥Í¥ë %s ¤òÈ´¤±¤Þ¤·¤¿%s" msgid "A private message has arrived from %s" msgstr "%s ¤«¤é¥×¥é¥¤¥Ù¡¼¥È¥á¥Ã¥»¡¼¥¸¤¬ÆÏ¤¤¤Æ¤¤¤Þ¤¹" msgid "Allow to speak: " msgstr "ï¤Ëȯ¸À¤òµö¤·¤Þ¤¹¤«: " msgid "Assign operational privilege to: " msgstr "ï¤Ë¥ª¥Ú¥ì¡¼¥¿¸¢¸Â¤òÍ¿¤¨¤Þ¤¹¤«: " msgid "Ban pattern: " msgstr "ban ¥Ñ¥¿¡¼¥ó: " msgid "Cannot connect to IRC server." msgstr "IRC ¥µ¡¼¥Ð¤ËÀܳ¤Ç¤­¤Þ¤»¤ó" msgid "Channel" msgstr "¥Á¥ã¥ó¥Í¥ë" msgid "Channel/User: " msgstr "¥Á¥ã¥ó¥Í¥ë¤Þ¤¿¤Ï¥æ¡¼¥¶: " msgid "Channels: %s\n" msgstr "¥Á¥ã¥ó¥Í¥ë: %s\n" msgid "Chat connection established with: %s" msgstr "%s ¤È¤Î¥Á¥ã¥Ã¥ÈÀܳ¤¬³ÎΩ¤·¤Þ¤·¤¿" msgid "Chat connection with %s finished" msgstr "%s ¤È¤Î¥Á¥ã¥Ã¥ÈÀܳ¤ò½ªÎ»¤·¤Þ¤·¤¿" msgid "Chatting with %s" msgstr "%s ¤È¥Á¥ã¥Ã¥ÈÃæ" msgid "Connecting to IRC server on %s..." msgstr "%s ¤Î IRC ¥µ¡¼¥Ð¤ËÀÜÂ³Ãæ..." msgid "Connecting to: %s" msgstr "%s ¤ËÀÜÂ³Ãæ" msgid "Connection closed. (%s)" msgstr "Àܳ¤¬ÀÚ¤ì¤Þ¤·¤¿¡£(%s)" msgid "Connection to %s timed out" msgstr "%s ¤Ø¤ÎÀܳ¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤Þ¤·¤¿" msgid "Couldn't figure out what was said." msgstr "²¿¤ò¸À¤Ã¤Æ¤¤¤ë¤Î¤«¤ï¤«¤ê¤Þ¤»¤ó" msgid "Currently ignoring:" msgstr "¸½ºß¤¢¤Ê¤¿¤¬Ìµ»ë¤·¤Æ¤¤¤ë¤Î¤Ï:" msgid "DCC No chat request has been arrived." msgstr "DCC ¤Î¥Á¥ã¥Ã¥È¥ê¥¯¥¨¥¹¥È¤ÏÆÏ¤¤¤Æ¤¤¤Þ¤»¤ó" msgid "DCC No request has been arrived." msgstr "DCC ¥ê¥¯¥¨¥¹¥È¤ÏÆÏ¤¤¤Æ¤¤¤Þ¤»¤ó" msgid "DCC No send request has been arrived." msgstr "DCC ¤Î¥Õ¥¡¥¤¥ëÁ÷¿®¥ê¥¯¥¨¥¹¥È¤ÏÆÏ¤¤¤Æ¤¤¤Þ¤»¤ó" msgid "DCC chat has not been started." msgstr "DCC ¥Á¥ã¥Ã¥È¤Ï»Ï¤Þ¤Ã¤Æ¤¤¤Þ¤»¤ó" msgid "DCC directory does not exist. Create it? " msgstr "DCC ¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ê¤Þ¤»¤ó¡£ºî¤ê¤Þ¤¹¤«? " msgid "Divest operational privilege from: " msgstr "狼¤é¥ª¥Ú¥ì¡¼¥¿¸¢¸Â¤òÃ¥¤¤¤Þ¤¹¤«: " msgid "Do you really query LIST without argument?" msgstr "ËÜÅö¤Ë°ú¿ô¤ò»ØÄꤻ¤º¤Ë LIST ¤òÌ䤤¹ç¤ï¤»¤Þ¤¹¤«?" msgid "Do you really query NAMES without argument?" msgstr "ËÜÅö¤Ë°ú¿ô¤ò»ØÄꤻ¤º¤Ë NAMES ¤òÌ䤤¹ç¤ï¤»¤Þ¤¹¤«?" msgid "Do you really query WHO without argument?" msgstr "ËÜÅö¤Ë°ú¿ô¤ò»ØÄꤻ¤º¤Ë WHO ¤òÌ䤤¹ç¤ï¤»¤Þ¤¹¤«?" msgid "Empty CLIENT version notice from \"%s\"." msgstr "\"%s\" ¤«¤é¶õ¤Î¥¯¥é¥¤¥¢¥ó¥È¥Ð¡¼¥¸¥ç¥ó¤¬ÄÌÃΤµ¤ì¤Þ¤·¤¿" msgid "End private conversation with: " msgstr "ï¤È¤Î²ñÏäò½ªÎ»¤·¤Þ¤¹¤«: " msgid "Enter your nickname: " msgstr "¥Ë¥Ã¥¯¥Í¡¼¥à¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤: " msgid "Erroneous nickname %s. Choose a new one with %s." msgstr "%s ¤ÏÉÔÀµ¤Ê¥Ë¥Ã¥¯¥Í¡¼¥à¤Ç¤¹¡£%s ¤Ç¿·¤·¤¤¥Ë¥Ã¥¯¥Í¡¼¥à¤òÁª¤ó¤Ç²¼¤µ¤¤" msgid "File to send: " msgstr "Á÷¿®¤¹¤ë¥Õ¥¡¥¤¥ë: " msgid "Finger whom: " msgstr "ï¤òÄ´¤Ù¤Þ¤¹¤«: " msgid "Following people are now off: %s\n" msgstr "%s ¤Ï¸½ºß¥ª¥Õ¥é¥¤¥ó¾õÂ֤Ǥ¹\n" msgid "Following people are now on: %s\n" msgstr "%s ¤Ï¸½ºß¥ª¥ó¥é¥¤¥ó¾õÂ֤Ǥ¹\n" msgid "Following people are on: %s\n" msgstr "%s ¤Ï¥ª¥ó¥é¥¤¥ó¾õÂ֤Ǥ¹\n" msgid "Forbid to speak: " msgstr "ï¤Îȯ¸À¤ò¶Ø»ß¤·¤Þ¤¹¤«: " msgid "Friend" msgstr "ͧ¿Í" msgid "Getting file from %s: %s (%s bytes)" msgstr "%s ¤«¤é¥Õ¥¡¥¤¥ë %s ¤ò¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£(%s ¥Ð¥¤¥È)" msgid "IRC server: " msgstr "IRC ¥µ¡¼¥Ð: " msgid "Ignore nickname or regexp: " msgstr "̵»ë¤¹¤ë¥Ë¥Ã¥¯¥Í¡¼¥à¤Þ¤¿¤ÏÀµµ¬É½¸½: " msgid "Ignore timeout for %s expired.\n" msgstr "»þ´ÖÀÚ¤ì¤Î¤¿¤á %s ¤ò̵»ë¤¹¤ë¤Î¤Ï¤ä¤á¤Þ¤·¤¿\n" msgid "Ignoring %s" msgstr "%s ¤ò̵»ë¤·¤Þ¤¹" msgid "Invite channel: " msgstr "¤É¤Î¥Á¥ã¥ó¥Í¥ë¤Ë¸Æ¤Ó¤Þ¤¹¤«: " msgid "Invite whom: " msgstr "ï¤ò¸Æ¤Ó¤Þ¤¹¤«: " msgid "Inviting user %s to channel %s\n" msgstr "¥æ¡¼¥¶ %s ¤ò¥Á¥ã¥ó¥Í¥ë %s ¤Ë¸Æ¤ó¤Ç¤¤¤Þ¤¹\n" msgid "Inviting user %s\n" msgstr "¥æ¡¼¥¶ %s ¤ò¸Æ¤ó¤Ç¤¤¤Þ¤¹\n" msgid "Join channel: " msgstr "»²²Ã¤¹¤ë¥Á¥ã¥ó¥Í¥ë: " msgid "Key for channel %s: " msgstr "¥Á¥ã¥ó¥Í¥ë %s ¤Î¹ç¸ÀÍÕ: " msgid "Kick Message: " msgstr "¥­¥Ã¥¯¥á¥Ã¥»¡¼¥¸: " msgid "Kick out nickname: " msgstr "¥­¥Ã¥¯¤¹¤ë¥Ë¥Ã¥¯¥Í¡¼¥à: " msgid "LIST channel: " msgstr "LIST ¤òÌ䤤¹ç¤ï¤»¤ë¥Á¥ã¥ó¥Í¥ë: " msgid "Machine %s is running IRC version %s (%s)\n" msgstr "¥Þ¥·¥ó %s ¤Ç¤Ï¥Ð¡¼¥¸¥ç¥ó %s (%s) ¤Î IRC ¥µ¡¼¥Ð¤¬Æ°¤¤¤Æ¤¤¤Þ¤¹\n" msgid "Malformed ignore-list, no msg+str function." msgstr "̯¤Ê ignore-list ¤Ç¤¹¡£¥á¥Ã¥»¡¼¥¸¤Èʸ»úÎó¤ò°ú¿ô¤Ë¤È¤ë´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" msgid "Malformed ignore-list, no user function." msgstr "̯¤Ê ignore-list ¤Ç¤¹¡£¥æ¡¼¥¶ÄêµÁ¤Î´Ø¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" msgid "Mode for %s is %s%s\n" msgstr "%s ¤Î¥â¡¼¥É¤Ï %s%s\n" msgid "Mode for channel %s [%s]: " msgstr "¥Á¥ã¥ó¥Í¥ë %s ¤Î¥â¡¼¥É [%s]: " msgid "Mode for user %s [%s]: " msgstr "¥æ¡¼¥¶ %s ¤Î¥â¡¼¥É [%s]: " msgid "Mode for you is %s\n" msgstr "¤¢¤Ê¤¿¤Î¥â¡¼¥É¤Ï %s ¤Ç¤¹\n" msgid "Names on channel: " msgstr "NAMES ¤òÌ䤤¹ç¤ï¤»¤ë¥Á¥ã¥ó¥Í¥ë: " msgid "New mode for %s set by %s: %s\n" msgstr "%s ¤Ë % ¤Ë¤è¤Ã¤Æ¿·¤·¤¤¥â¡¼¥É¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿: %s\n" msgid "New topic on channel %s set by %s: %s\n" msgstr "¥Á¥ã¥ó¥Í¥ë %s ¤Ë %s ¤Ë¤è¤Ã¤Æ¿·¤·¤¤¥È¥Ô¥Ã¥¯¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿: %s\n" msgid "Nickname %s already in use. Choose a new one with %s." msgstr "¥Ë¥Ã¥¯¥Í¡¼¥à %s ¤Ï´û¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£%s ¤Ç¿·¤·¤¤¥Ë¥Ã¥¯¥Í¡¼¥à¤òÁª¤ó¤Ç²¼¤µ¤¤" msgid "No DCC request here" msgstr "DCC ¥ê¥¯¥¨¥¹¥È¤Ï¤¢¤ê¤Þ¤»¤ó" msgid "No channel" msgstr "¥Á¥ã¥ó¥Í¥ë¤Ê¤·" msgid "No longer ignoring: %s.\n" msgstr "%s ¤ò̵»ë¤¹¤ë¤Î¤ò¤ä¤á¤Þ¤·¤¿\n" msgid "No one you requested is on now.\n" msgstr "¤ß¤ó¤Ê¥ª¥Õ¥é¥¤¥ó¾õÂ֤Ǥ¹\n" msgid "No partner" msgstr "¥Á¥ã¥Ã¥ÈÁê¼ê¤¬¤¤¤Þ¤»¤ó" msgid "No such user %s" msgstr "¤½¤Î¤è¤¦¤Ê¥æ¡¼¥¶ %s ¤Ï¤¤¤Þ¤»¤ó" msgid "No text to send" msgstr "Á÷¤ëʸ¾Ï¤¬¤¢¤ê¤Þ¤»¤ó" msgid "No topic is set\n" msgstr "¥È¥Ô¥Ã¥¯¤ÏÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó\n" msgid "No unread channel or chat partner." msgstr "̤ÆÉ¤Î¥Á¥ã¥ó¥Í¥ë¤Þ¤¿¤Ï¥Á¥ã¥Ã¥ÈÁê¼ê¤Ï¤¤¤Þ¤»¤ó" msgid "Open URL:" msgstr "³«¤¯ URL: " msgid "Part Message: " msgstr "Υæ¥á¥Ã¥»¡¼¥¸: " msgid "Part channel: " msgstr "È´¤±¤ë¥Á¥ã¥ó¥Í¥ë: " msgid "Password incorrect from %s. Try again with password." msgstr "%s ¤Î¥Ñ¥¹¥ï¡¼¥É¤¬ÉÔÀµ¤Ç¤¹¡£ºÆÅ٥ѥ¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ²¼¤µ¤¤" msgid "Please use a newer \"%s\"." msgstr "¤è¤ê¿·¤·¤¤ \"%s\" ¤ò¤ª»È¤¤¤¯¤À¤µ¤¤" msgid "Private message to %s: " msgstr "%s ¤Ø¤Î¥×¥é¥¤¥Ù¡¼¥È¥á¥Ã¥»¡¼¥¸: " msgid "Private message to: " msgstr "ï¤Ø¤Î¥×¥é¥¤¥Ù¡¼¥È¥á¥Ã¥»¡¼¥¸: " msgid "Quit IRC? " msgstr "IRC ¤ò¤ä¤á¤Þ¤¹¤«? " msgid "Reading..." msgstr "ÆÉ¤ó¤Ç¤¤¤Þ¤¹" msgid "Really SEND from Yank Buffer?" msgstr "ËÜÅö¤Ë kill-ring ¤«¤éÁ÷¿®¤·¤Þ¤¹¤«?" msgid "Received file from %s: %s (%s bytes)" msgstr "%s ¤«¤é ¥Õ¥¡¥¤¥ë %s ¤ò¼õ¿®¤·¤Þ¤·¤¿ (%s ¥Ð¥¤¥È)" msgid "Return to channel: " msgstr "Ìá¤ë¥Á¥ã¥ó¥Í¥ë: " msgid "Ringing user %s" msgstr "¥æ¡¼¥¶ %s ¤ò¸Æ¤ó¤Ç¤¤¤Þ¤¹" msgid "SEND applied autoreceive: %s (%s bytes)\n" msgstr "SEND ¥ê¥¯¥¨¥¹¥È¤ËÂФ·¤Æ¼«Æ°¼õ¿®¤ò»Ï¤á¤Þ¤·¤¿: %s (%s ¥Ð¥¤¥È)\n" msgid "SEND request from %s: %s (%s bytes)\n" msgstr "%s ¤«¤é¤Î SEND ¥ê¥¯¥¨¥¹¥È: %s (%s ¥Ð¥¤¥È)\n" msgid "Sending file to %s: %s (%s bytes)" msgstr "%s ¤Ë¥Õ¥¡¥¤¥ë %s ¤òÁ÷¿®¤·¤Æ¤¤¤Þ¤¹ (%s ¥Ð¥¤¥È)" msgid "Sent file to %s: %s (%s bytes)" msgstr "%s ¤Ë¥Õ¥¡¥¤¥ë %s ¤òÁ÷¿®¤·¤Þ¤·¤¿ (%s ¥Ð¥¤¥È)" msgid "Server Password: " msgstr "¥µ¡¼¥Ð¤Î¥Ñ¥¹¥ï¡¼¥É: " msgid "Server connection closed." msgstr "¥µ¡¼¥Ð¤Ø¤ÎÀܳ¤¬ÀÚ¤ì¤Þ¤·¤¿" msgid "Server time is %s\n" msgstr "¥µ¡¼¥Ð¤Î»þ´Ö¤Ï %s ¤Ç¤¹\n" msgid "Signoff message: " msgstr "½ªÎ»¥á¥Ã¥»¡¼¥¸" msgid "Start private conversation with: " msgstr "ï¤È²ñÏäò»Ï¤á¤Þ¤¹¤«: " msgid "Timeout [RET for none]: " msgstr "¥¿¥¤¥à¥¢¥¦¥È [»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¥ê¥¿¡¼¥ó]: " msgid "To whom: " msgstr "ï¤Ë: " msgid "Topic for %s set by %s at %s\n" msgstr "%s ¤Î¥È¥Ô¥Ã¥¯¤Ï%s ¤Ë¤è¤Ã¤Æ %s ¤Ë¥È¥Ô¥Ã¥¯¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿\n" msgid "Topic for %s: %s\n" msgstr "%s ¤Î¥È¥Ô¥Ã¥¯¤Ï: %s\n" msgid "Topic set by %s at %s\n" msgstr "%s ¤Ë¤è¤Ã¤Æ %s ¤Ë¥È¥Ô¥Ã¥¯¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿\n" msgid "Topic: %s\n" msgstr "¥È¥Ô¥Ã¥¯ %s\n" msgid "Unknown FILE message \":%s %s %s %s\"" msgstr "̤ÃΤΠFILE ¥á¥Ã¥»¡¼¥¸ \":%s %s %s\"" msgid "Unknown ctcp notice \":%s %s %s\"" msgstr "̤ÃΤΠCTCP ÄÌÃÎ \":%s %s %s\"" msgid "WHO expression: " msgstr "WHO ¤Î¸¡º÷¼°: " msgid "Welcome to the Internet Relay Chat world. Your nick is %s.\n" msgstr "¤è¤¦¤³¤½ Internet Relay Chat ¤ÎÀ¤³¦¤Ø¡£¤¢¤Ê¤¿¤Î¥Ë¥Ã¥¯¥Í¡¼¥à¤Ï %s ¤Ç¤¹\n" msgid "Which query: " msgstr "²¿¤òÌ䤤¹ç¤ï¤»¤Þ¤¹¤«: " msgid "Whose client: " msgstr "ï¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ë: " msgid "With whom: " msgstr "ï¤È: " msgid "You are not a channel operator" msgstr "¤¢¤Ê¤¿¤Ï¥Á¥ã¥ó¥Í¥ë¥ª¥Ú¥ì¡¼¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" msgid "You just killed %s. %s\n" msgstr "¤¢¤Ê¤¿¤Ï %s ¤ò KILL ¤·¤Þ¤·¤¿¡£%s\n" msgid "You were kicked off channel %s by %s (%s).\n" msgstr "¤¢¤Ê¤¿¤Ï¥Á¥ã¥ó¥Í¥ë %s ¤Ç %s ¤Ë¥­¥Ã¥¯¤µ¤ì¤Þ¤·¤¿¡£(%s)\n" msgid "You're already on channel %s" msgstr "¤¢¤Ê¤¿¤Ï¤â¤¦¥Á¥ã¥ó¥Í¥ë %s ¤Ë¤¤¤Þ¤¹" msgid "You're not on channel %s" msgstr "¤¢¤Ê¤¿¤Ï¥Á¥ã¥ó¥Í¥ë %s ¤Ë¤¤¤Þ¤»¤ó" msgid "Your client version is %s.\n" msgstr "¤¢¤Ê¤¿¤Î¥¯¥é¥¤¥¢¥ó¥È¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï %s ¤Ç¤¹\n" msgid "Your server is %s (version %s).\n" msgstr "¤¢¤Ê¤¿¤Î¥µ¡¼¥Ð¤Ï %s (¥Ð¡¼¥¸¥ç¥ó %s) ¤Ç¤¹\n" msgid "Your server was created %s\n" msgstr "¤¢¤Ê¤¿¤Î¥µ¡¼¥Ð¤Ï %s ¤Ëµ¯Æ°¤·¤Þ¤·¤¿\n" msgid "[Modes are: %s]" msgstr "[¥â¡¼¥É: %s]" msgid "[No match]" msgstr "[°ìÃפ¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó]" msgid "^%s%sNew mode for %s set by %s: " msgstr "^%s%s%s ¤Ë %s ¤Ë¤è¤Ã¤Æ¿·¤·¤¤¥â¡¼¥É¤¬ÀßÄꤵ¤ì¤Þ¤·¤¿: " msgid "connect error to %s: %s" msgstr "%s ¤Ø¤ÎÀܳ¥¨¥é¡¼: %s" msgid "illegal nickname \"%s\"; not changed" msgstr "\"%s\" ¤ÏÉÔÀµ¤Ê¥Ë¥Ã¥¯¥Í¡¼¥à¤Ç¤¹¡£Êѹ¹¤Ç¤­¤Þ¤»¤ó" msgid "listen error to %s: %s" msgstr "%s ¤Ø¤Î listen ¥¨¥é¡¼: %s" msgid "send error to %s: %s" msgstr "%s ¤Ø¤ÎÁ÷¿®¥¨¥é¡¼: %s" liece-2.0+0.20030527cvs/etc/styles/0042755000175000017500000000000007664255027014417 5ustar bg66bg66liece-2.0+0.20030527cvs/etc/styles/Makefile.am0100644000175000017500000000013107425762563016444 0ustar bg66bg66styledir = $(pkgdatadir)/styles style_DATA = bottom top middle EXTRA_DIST = $(style_DATA)liece-2.0+0.20030527cvs/etc/styles/bottom0100644000175000017500000000523107072244507015634 0ustar bg66bg66;; -*- emacs-lisp -*- ;;; bottom --- Window configuration style spec for `bottom'. ;; Copyright (C) 1998 Daiki Ueno ;; See file liece-copyright.el for original change log and copyright info. ;; Author: Daiki Ueno ;; Created: 1999-01-08 ;; Revised: 1999-01-08 ;; Keywords: IRC, liece ;; This file is part of Liece. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Code: (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . t) (channel-list-buffer-mode . t) (configuration (vertical 1.0 (horizontal 1.0 (others 1.0) (channel-list liece-channel-list-window-width-percent)) (horizontal liece-channel-window-height-percent (channel 1.0) (nick liece-nick-window-width-percent)) (command 4 point)))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . nil) (channel-list-buffer-mode . t) (configuration (vertical 1.0 (horizontal 1.0 (others 1.0) (channel-list liece-channel-list-window-width-percent)) (channel liece-channel-window-height-percent) (command 4 point)))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . t) (channel-list-buffer-mode . nil) (configuration (vertical 1.0 (others 1.0) (horizontal liece-channel-window-height-percent (channel 1.0) (nick liece-nick-window-width-percent)) (command 4 point)))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . nil) (channel-list-buffer-mode . nil) (configuration (vertical 1.0 (others 1.0) (channel liece-channel-window-height-percent) (command 4 point)))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . nil) (nick-buffer-mode . any) (channel-list-buffer-mode . any) (configuration (vertical 1.0 (dialogue 1.0) (command 4 point)))) liece-2.0+0.20030527cvs/etc/styles/middle0100644000175000017500000000446407072244507015575 0ustar bg66bg66;; -*- emacs-lisp -*- ;;; middle --- Window configuration style spec for `middle'. ;; Copyright (C) 1998 Daiki Ueno ;; See file liece-copyright.el for original change log and copyright info. ;; Author: Daiki Ueno ;; Created: 1999-01-08 ;; Revised: 1999-01-08 ;; Keywords: IRC, liece ;; This file is part of Liece. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Code: (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . t) (channel-list-buffer-mode . t) (configuration (horizontal 1.0 (vertical 1.0 (channel liece-channel-window-height-percent) (command 3 point) (others 1.0)) (vertical liece-nick-window-width-percent (nick 0.5) (channel-list 1.0))))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . nil) (channel-list-buffer-mode . t) (configuration (vertical 1.0 (horizontal 1.0 (others 1.0) (channel-list liece-channel-list-window-width-percent)) (horizontal liece-channel-window-height-percent (channel 1.0)) (command 3 point)))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . nil) (channel-list-buffer-mode . nil) (configuration (vertical 1.0 (others 1.0) (channel liece-channel-window-height-percent) (command 3 point)))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . nil) (nick-buffer-mode . any) (channel-list-buffer-mode . any) (configuration (vertical 1.0 (dialogue 1.0) (command 3 point)))) liece-2.0+0.20030527cvs/etc/styles/top0100644000175000017500000000525207072244507015135 0ustar bg66bg66;;; top --- Window configuration style spec for `top'. -*- emacs-lisp -*- ;; Copyright (C) 1998 Daiki Ueno ;; See file liece-copyright.el for original change log and copyright info. ;; Author: Daiki Ueno ;; Created: 1999-01-08 ;; Revised: 1999-01-08 ;; Keywords: IRC, liece ;; This file is part of Liece. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Code: (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . t) (channel-list-buffer-mode . t) (configuration (vertical 1.0 (command 4 point) (horizontal liece-channel-window-height-percent (channel 1.0) (nick liece-nick-window-width-percent)) (horizontal 1.0 (others 1.0) (channel-list liece-channel-list-window-width-percent))))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . nil) (channel-list-buffer-mode . t) (configuration (vertical 1.0 (command 4 point) (horizontal liece-channel-window-height-percent (channel 1.0)) (horizontal 1.0 (others 1.0) (channel-list liece-channel-list-window-width-percent))))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . t) (channel-list-buffer-mode . nil) (configuration (vertical 1.0 (command 4 point) (horizontal liece-channel-window-height-percent (channel 1.0) (nick liece-nick-window-width-percent)) (others 1.0)))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . t) (nick-buffer-mode . nil) (channel-list-buffer-mode . nil) (configuration (vertical 1.0 (command 4 point) (channel liece-channel-window-height-percent) (others 1.0)))) (liece-window-add-style (command-buffer-mode . any) (channel-buffer-mode . nil) (nick-buffer-mode . any) (channel-list-buffer-mode . any) (configuration (vertical 1.0 (command 4 point) (dialogue 1.0)))) liece-2.0+0.20030527cvs/etc/gnu-emacs-user-config.in0100644000175000017500000000251407545001745017511 0ustar bg66bg66#!/bin/sh # Copyright (C) 2002 Daiki Ueno # # This file is part of Liece. # 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 GNU Emacs; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # Prepare user settings for GNU Emacs. # If you are using XEmacs, you don't need to run this script. EMACS=${EMACS-emacs} custom=`cat <<'EOF' (custom-set-variables '(liece-intl-catalogue-directory "@pkgdatadir@/locale" nil (liece) "Default location of Liece message catalogs.") '(liece-window-style-directory "@pkgdatadir@/styles" nil (liece) "Default location of Liece style files.") '(liece-icon-directory "@pkgdatadir@/icons" nil (liece) "Default location of Liece icon files.")) EOF` $EMACS -eval "$custom" -l cus-edit -f Custom-save -f kill-emacs liece-2.0+0.20030527cvs/etc/check-subrs.rb0100755000175000017500000000226707663300172015626 0ustar bg66bg66#! /usr/bin/env ruby # This script loosely checks: # - Macros used before they are defined # - Non-command functions which may never be used # To run, # $ for i in liece-[a-z]*.el; ../etc/check-subrs.rb $i *.el~$i def scan_inlines(data) result = [] data.scan(/^\((?:defmacro|defsubst)\s+(\S+)/) {|name,| pos = Regexp.last_match.begin(1) result << [pos, name] } result end def scan_subrs(data) result = [] data.scan(/^\(defun\s+(\S+)\s*\([^\)]*\)\s*\ ((?:"[^"]*")?\s*\(interactive\b)?/) {|name, i| pos = Regexp.last_match.begin(1) result << [pos, name] unless i } result end def count_call(name, data) count = 0 data.scan(/\b#{name}\b/) { count += 1 } count end symbols = [] File.open(ARGV[0]) {|file| data = file.read symbols = scan_inlines(data) symbols.each {|pos, name| if /\b#{name}\b/ && Regexp.last_match.begin(0) < pos puts("#{name} is called before its definition") end } symbols |= scan_subrs(data) } symbols.each {|pos, name| count = 0 ARGV.each {|source| File.open(source) {|file| data = file.read count += count_call(name, data) } } if count < 2 puts("#{name} may not be called") end } liece-2.0+0.20030527cvs/lisp/0042755000175000017500000000000007664255027013270 5ustar bg66bg66liece-2.0+0.20030527cvs/lisp/Makefile.am0100644000175000017500000000034207653572630015316 0ustar bg66bg66EXTRA_DIST = $(wildcard *.el) Makefile.lisp liece.xpm liece.xbm DISTCLEANFILES = liece-setup.el export EMACS XEMACS PACKAGEDIR all: elc elc package install install-package clean: $(MAKE) $(AM_MAKEFLAGS) -f Makefile.lisp $@ liece-2.0+0.20030527cvs/lisp/ChangeLog0100644000175000017500000046024507664254672015055 0ustar bg66bg662003-05-26 OHASHI Akira * liece-emacs.el: Require liece-version. 2003-05-24 Daiki Ueno * liece-000.el (liece-handle-000-messages): Don't set liece-nickname. * liece-400.el (liece-iterate-nick): Abolish. (liece-handle-433-message): Don't use liece-iterate-nick. * liece-channel.el: Abolish channel representation format. (liece-default-channel-representation-format): Abolish. (liece-dcc-channel-representation-format): Abolish. (liece-channel-prepare-representation): Abolish. (liece-channel-parse-representation): Abolish. * liece-commands.el (liece-command-save-variables): Rename from liece-command-save-vars; simplify using with-temp-file. * liece-ctcp.el: Require liece-version. * liece-globals.el: Rearrange variables by usage; don't require liece-version. (liece-last-nickname): Rename from liece-nickname-last. (liece-last-who-expression): Rename from liece-who-expression. (liece-real-userhost): Rename from liece-my-userhost. (liece-last-chat-partner): Rename from liece-privmsg-partner. (liece-last-friends): Rename from liece-friends-last. (liece-real-server-name): New variable. (liece-server-process-alist): New variable. (liece-command-buffer-mode-indicator): Rename from liece-private-indicator. (liece-server-buffer): Abolish. * liece-inlines.el (liece-next-line): Abolish. * liece-misc.el (liece-send-pong): Abolish. (liece-increment-long-reply-count): Define as function. (liece-reset-long-reply-count): Ditto. (liece-check-long-reply-count): Ditto. * liece-q-el.el (liece-quote-el-decode-string): Fix typo. * liece-vars.el (liece-saved-forms): Don't purecopy. (liece-want-traditional): Abolish. (liece-command-window-on-top): Abolish. (liece-one-buffer-mode): Abolish. (liece-saved-variables-file): New variable. (liece-server-alist): Default to nil. (liece-my-userhost): Remove. (liece-nick-max-length): Abolish. (liece-real-nickname): Remove. (liece-grow-tail): Abolish. (liece-retry-with-new-nickname): Rename from liece-auto-iterate-nick. (liece-after-registration): Abolish. (liece-status-message-string): Abolish. (liece-channel-unread-list): Moved to liece-globals.el. * liece-version.el: Bind utf-2000-version, and mule-version. * liece-xemacs.el: Require liece-version. * liece.el (liece-tmp-server-name): Abolish. (liece-read-variables-files): Remove migration logic. (liece): Don't add liece-nickname to liece-nick-alist. (liece-accept-response): Don't retry with the new nickname. 2003-05-23 Daiki Ueno * liece-message.el: Overhaul; don't depend on dynamic binding. (liece-message-brackets): Abolish. (liece-message-tags): Abolish. (liece-message-empty-predicate): Abolish. (liece-message-make-open-bracket-function): New variable. (liece-message-make-close-bracket-function): New variable. (liece-message-make-name-function): New variable. (liece-message-make-global-name-function): New variable. (liece-message-type): Abolish; define as function. (liece-message-target): Abolish; define as function. (liece-message-speaker): Abolish; define as function. (liece-message-direction): Abolish; use liece-message-own-p. (liece-message-predicate): Abolish. (liece-message-brackets-function): Abolish. (liece-message-tags-function): Abolish. (liece-message-buffer-function): Rename to liece-message-buffers. (liece-message-parent-buffer): Rename to liece-message-parent-buffers. (liece-message-make-open-bracket): New function. (liece-message-make-close-bracket): New function. (liece-message-make-bracket): New function. (liece-message-make-name): New function. (liece-message-make-global-name): New function. (liece-display-message): Rewrite; remove autoload cookie. (liece-make-message): New function. (liece-message-private-p): New function. (liece-message-external-p): New function. * liece-misc.el (liece-own-channel-message): Move to liece-message.el. (liece-own-private-message): Ditto. * liece-commands.el (liece-command-message): Don't use liece-message-empty-predicate. * liece-ctcp.el (liece-ctcp-action-message): Use new API. (liece-ctcp-insert): Ditto. * liece-dcc.el (liece-dcc-chat-filter): Use new API. * liece-handle.el (liece-handle-notice-message): Use new API. (liece-handle-privmsg-message): Ditto. 2003-05-23 Daiki Ueno * liece-misc.el (liece-insert-timestamp): Abolish. (liece-own-frozen): Abolish. (liece-own-message): Abolish. (liece-scroll-if-visible): Abolish. (liece-generate-hex-timestamp): Abolish. (liece-hex-timestamp-valid): Abolish. 2003-05-22 Daiki Ueno * liece-commands.el (liece-command-tag-region): Simplify. * liece-misc.el (liece-remove-properties-region): Abolish. 2003-05-18 OHASHI Akira * liece.el (liece-dialogue-mode-map): Don't bind `liece-command-open-server'. 2003-04-30 OHASHI Akira * liece-channel.el (liece-channel-list-redisplay-buffer): Search a channel correctly. 2003-04-17 Daiki Ueno * liece-channel.el: Require 'liece-misc when compiling. (liece-channel-equal): Define as function. (liece-channel-buffer-create): Define as function. (liece-channel-switch-to-last): Define before it is used. * liece-ctcp.el: Require 'liece-misc when compiling. * liece-message.el: Require 'liece-misc when compiling. * liece-misc.el: Move some macros to the beginning of the file. * liece-nick.el: Require 'liece-inlines when compiling. (liece-nick-equal): Define as function. (liece-nick-buffer-create): Define as function. 2003-03-26 Steve Youngs * liece-channel.el (liece-channel-p): Don't wrap the string-match in a 'eval-when-compile' to avoid a void variable error. (liece-channel-modeless-p): Ditto. 2003-03-09 Ben Wing * Makefile.lisp: * Makefile.lisp (autoload): New. Separate autoload building from elc building. * liece-make.el (install-update-package-files): Use new `batch-update-directory-autoloads' if available. 2002-12-08 Ville Skyttä * Makefile.lisp (all): Not a double-colon any more. 2002-10-11 Yoichi NAKAYAMA * liece-emacs.el: Require pces to avoid compile error. 2002-09-26 Daiki Ueno * liece-minibuf.el (liece-minibuf-completing-read): Don't use the 7th argument of completing-read. 2002-09-24 Daiki Ueno * liece-handle.el (liece-handle-mode-message): Check chnlp before passing mode argument to liece-channel-set-*. [cf. ] 2002-09-03 Daiki Ueno * liece-handle.el (liece-handle-quit-message): Don't use liece-nick-mark-as-apart. (liece-handle-join-message): Ditto. [cf. ] 2002-09-01 Daiki Ueno * liece-handle.el (liece-handle-mode-message): The arglist of liece-nick-set-mode was changed. 2002-08-27 Daiki Ueno * liece-commands.el (liece-command-join-channel): User liece-nick-get-joined-channels. * liece-channel.el (liece-channel-set-topic): Define as function. (liece-channel-add-mode): Ditto. (liece-channel-remove-mode): Ditto. (liece-channel-set-mode): Ditto. (liece-channel-add-ban): Ditto. (liece-channel-remove-ban): Ditto. (liece-channel-set-ban): Ditto. (liece-channel-add-exception): Ditto. (liece-channel-remove-exception): Ditto. (liece-channel-set-exception): Ditto. (liece-channel-add-invite): Ditto. (liece-channel-remove-invite): Ditto. (liece-channel-set-invite): Ditto. * liece-nick.el (liece-nick-mark-as-part): Replace liece-nick-{mark,unmark}-as-apart. (liece-nick-get-modes): Define as function. (liece-nick-add-mode): Ditto. (liece-nick-remove-mode): Ditto. (liece-nick-set-mode): Ditto. * liece-handle.el (liece-handle-mode-message): Follow the changes of arglists of liece-channel-set-mode and liece-nick-set-mode. * liece.el: Fix typo. * liece-misc.el (liece-current-nickname): Define as function. (liece-current-channel): Ditto. (liece-current-channels): Ditto. (liece-current-chat-partner): Ditto. (liece-current-chat-partners): Ditto. 2002-08-26 Daiki Ueno * liece-handle.el (liece-handle-mode-message): Care liece-channel-set-* are defined as macros. * liece-inlines.el (string-equal-ignore-case): Don't use compare-strings. (string-list-member-ignore-case): Don't use member-ignore-case. Suggested by "Akinori MUSHA" . [cf. ] 2002-08-11 OHASHI Akira * liece-window.el (liece-configure-windows): Set `liece-channel-buffer' to nil when `liece-current-chat-partner' or `liece-current-channel' is nil. (Suggested by Kazushige Maeda .) * liece-dcc.el (liece-dcc-dequeue-request): Do nothing when `liece-dcc-requests' is empty. (liece-command-dcc-accept): Ditto. (liece-command-dcc-chat-connect): Ditto. 2002-07-15 Daiki Ueno * liece-url.el (liece-url-regexp-alist): New user option. (liece-url-add-buttons): Respect liece-url-regexp-alist. This function is the slightly modified version of the implementation by akira yamada . [cf. ] 2002-07-13 Daiki Ueno * liece-menu.el (liece-menu-add-url): Always switch to *Commands* buffer. * liece-xemacs.el (liece-fix-menu-path-switch-buffer): Removed old defadvice to easy-menu-add-item. 2002-06-08 Adrian Aichner * liece-commands.el (liece-command-nickname): Use truncate-string-to-width instead of non-existent truncate-string. * liece.el (liece-open-server): Ditto. 2002-06-05 Steve Youngs * liece-inlines.el (string-equal-ignore-case): Don't try to use 'compare-strings'. 2002-05-19 Daiki Ueno * liece-xemacs.el (liece-xemacs-modeline-glyph): Check 'xbm. 2002-05-04 Stephen J. Turnbull * liece-make.el (config-liece-package-directory): * liece-config.el (PACKAGEDIR): Handle case when dirs is nil. * Makefile.lisp (package): Preload advice. 2002-05-12 Daiki Ueno * gettext.el (gettext-default-locale): New variable. (bind-text-domain): Use it. 2002-05-07 Daiki Ueno * gettext.el (gettext-mapcar*): Eliminate recursion. 2002-04-14 Daiki Ueno * bitmap-stipple.el (bitmap-stipple-frame-char-width): New function. (bitmap-stipple-frame-char-height): New function. * liece-compat.el (liece-region-active-p): New function. (liece-truncate-string-to-width): New function. * liece-misc.el: Sort macrodefs. (liece-maybe-poll): Abolish. * liece-channel.el (liece-channel-last): Simplified. (liece-channel-switch-to-last): Define as function. * liece-commands.el (liece-command-ping): Send system-name until liece-server-name is determined. * liece-ctcp.el: Load `liece-q-*' even when compiling. * liece-hilit.el (liece-highlight-turn-on-font-lock): Don't set font-lock-support-mode if it isn't bound. 2002-03-28 Daiki Ueno * liece-400.el (liece-handle-475-message): New handler. * liece-commands.el (liece-command-join): Don't encode a channel name before treating it as an integer. * liece-ctcp.el: Don't throw an error when liece-q-ccl is not found. 2002-04-08 Daiki Ueno * liece-misc.el: Don't require pccl and broken. 2002-04-07 Daiki Ueno * liece-modules.el: Don't compile liece-q-ccl.el. * liece-ctcp.el: Don't require liece-q-ccl.el. 2002-03-24 Daiki Ueno * liece-coding.el (liece-mime-charset-for-write): Use `mime-charset-to-coding-system' instead of `mime-charset-p'. (liece-mime-charset-for-read): Ditto. 2002-03-20 Daiki Ueno * gettext.el (bind-text-domain): Respect LC_ALL and LC_MESSAGES; reverse lang-paths. 2002-03-20 Daiki Ueno * gettext.el (gettext-parse-Content-Type): Bind `case-fold-search' to t to extract Content-Type: field properly. 2002-03-19 Daiki Ueno * gettext.el: Autoload `mime-content-type-parameter' and `mime-read-Content-Type' only when compiling. (gettext-parse-Content-Type): Add bogus detection logic. 2002-03-19 Daiki Ueno * liece-compat.el (liece-string-to-list): New definition. * liece-000.el (liece-handle-004-message): Use it. * liece-nick.el (liece-nick-remove-mode): Use it. * liece-channel.el (liece-channel-read-mode): Use it. * liece-handle.el (liece-handle-mode-message): Use it. * gettext.el: Require `poem' and `static'. (gettext-string-to-list): New definition. 2002-02-17 OHASHI Akira * gettext.el (bind-text-domain): Implement a catalog probe mechanism. (Implemented by YAMASHITA Junji ) 2002-02-12 Daiki Ueno * liece-modules.el (liece-modules-to-compile): Add `liece-coding'. * liece-coding.el (liece-mime-charset-for-write): Use default-mime-charset-for-write as its default. (liece-mime-charset-for-read): Use default-mime-charset as its default. 2002-01-28 Daiki Ueno * liece-dcc.el (liece-dcc-start-process): New function. (liece-command-dcc-send): Use it. (liece-command-dcc-receive): Use it. (liece-command-dcc-chat-listen): Use it. (liece-command-dcc-chat-connect): Use it. 2001-11-09 Yoichi NAKAYAMA * liece-vars.el (liece-truncate-partial-width-windows): Change default value to fix the inconsistency with docstring. * liece-window.el (liece-configure-windows): Ditto. 2001-11-03 OHASHI Akira * liece-emacs.el (liece-emacs-unread-mark): Use regexp-quote. (liece-emacs-read-mark): Ditto. * liece-xemacs.el (liece-xemacs-unread-mark): Ditto. (liece-xemacs-read-mark): Ditto. 2001-10-07 Daiki Ueno * liece-misc.el (liece-subtract-time): New function. (liece-time-difference): Use it. 2001-10-05 Daiki Ueno * liece-misc.el (liece-time-difference): Fix the arglist. [cf. ] 2001-10-02 Daiki Ueno * liece-compat.el (replace-in-string): Follow a change in XEmacs. 2001-10-02 Daiki Ueno * liece-vars.el (liece-buffer-min-size): Rename from `liece-buffer-default-size'. * liece-commands.el (liece-command-kill): Use `liece-time-elapsed' instead of `liece-time-add'. * liece.el (liece-check-buffers-if-interval-expired): Swap the arguments supplied to `liece-time-difference'. (liece-check-buffers): Use `liece-buffer-min-size' instead of `liece-buffer-default-size'. * liece-misc.el (liece-time-difference): Define as function. (liece-time-elapsed): Rename from `liece-time-add'. (liece-generate-hex-timestamp): Define as function. 2001-10-02 Katsuhiro Hermit Endo * liece-misc.el (liece-time-difference): Use `abs' for `liece-check-buffers-if-interval-expired'. 2001-09-16 Katsuhiro Hermit Endo * liece-vars.el (liece-server-alist): Update default value. 2001-06-19 OHASHI Akira * liece-url.el (liece-url-regexp): Fix regexp. * liece-vars.el (liece-display-unread-mark): Set default to t. 2001-06-14 OHASHI Akira * liece-channel.el (liece-channel-add-buttons): Fix regexp. * liece-handle.el (liece-handle-notice-message): Don't set `temp' to nil. * liece-menu.el (liece-menu-channel-menu): Don't enable `liece-command-unread-channel' if `liece-channel-unread-list' is nil. (liece-menu-private-menu): Don't bind `liece-command-userhost'. * liece-window.el (liece-command-set-window-style): Run `liece-command-reconfigure-windows'. 2001-06-09 OHASHI Akira * liece-handle.el (liece-handle-privmsg-message): Don't compare when `item' and `liece-current-chat-partner' are nil. 2001-02-12 Daiki Ueno * liece-compat.el (liece-read-passwd): Revive. * liece-clfns.el (liece-clfns-subr-fboundp): Check existence of the function `symbol-file'. * liece-q-ccl.el: Require `poem' for char-int. (liece-quote-ccl-256-table): Simplified. 2001-01-02 Daiki Ueno * liece-modules.el: Simplified. 2000-12-09 Tanaka Akira * liece.el (liece-refresh-buffer-window): Simplified. 2000-11-30 Tanaka Akira * liece.el (liece-refresh-buffer-window): Force to display a last non-empty line in last line in a window on Emacs 21. 2000-10-19 Daiki Ueno * liece-ctcp.el: Remove autoload cookies of `liece-command-ctcp-generic', `liece-command-ctcp-userinfo-from-minibuffer', `liece-command-ctcp-x-face-from-xbm-file' and `liece-command-send-file'. * liece-commands.el: Add autoload setting for `liece-command-ctcp-action', `liece-command-ctcp-userinfo-from-minibuffer' and `liece-command-ctcp-x-face-from-xbm-file'. 2000-10-16 Daiki Ueno * liece-commands.el (liece-command-quit): Use `liece-close-server'. * liece.el (liece): Simplify. (liece-close-server): Accept optional argument `quit-string'. 2000-10-12 Akira Ohashi * liece-menu.el (liece-menu-ctcp-menu): Follow the CTCP command changed from `liece-command-client-*' to `liece-command-ctcp-*'. 2000-10-07 Daiki Ueno * liece-commands.el (liece-command-qualify-nicks): Refer 1st argument. 2000-10-05 Daiki Ueno * liece-minibuf.el (liece-minibuffer-complete-channel-modes): Don't use old style backquotes. (liece-minibuffer-completing-read-multiple-1): Remove a partially matched word construct if it exists. 2000-10-03 Daiki Ueno * liece-commands.el (liece-command-set-operators): Reset `run'. (liece-command-set-voices): Ditto. 2000-09-30 Daiki Ueno * liece-xemacs.el (liece-xemacs-modeline-glyph): Add 'xpm check. (liece-xemacs-create-nick-glyph): Ditto. (liece-xemacs-unread-mark): Ditto. 2000-09-23 Akira Ohashi * liece-menu.el (liece-command-toggle-freeze): Rename from `liece-command-freeze'. (liece-command-toggle-own-freeze): Rename from `liece-command-own-freeze'. (liece-command-toggle-beep): Rename from `liece-dialogue-beep'. 2000-09-22 Daiki Ueno * liece-handle.el (liece-handle-kill-message): Call `liece-close-server' instead of `liece-clear-system'. * liece-commands.el: Don't autoload `liece-window-configuration-pop'. (liece-command-quit): Just send quit. * liece.el (liece-close-server): Run `liece-exit-hook'; abolish argument `quit-string'. * liece-filter.el (liece-sentinel): Call `liece-close-server'. 2000-09-20 Daiki Ueno * liece-compat.el: Require `wid-edit'. * liece-inlines.el (liece-locate-icon-file): Don't check existence of the file. * liece-emacs.el: Don't require `static' and `wid-edit'. (liece-splash-image): Set default to nil. (liece-emacs-splash-function): New variable. (liece-emacs-splash-with-image): New function splitted from `liece-emacs-splash'; use `image-size'; hide cursor. (liece-emacs-splash-with-stipple): New function. 2000-09-20 Daiki Ueno * liece-commands.el (liece-command-toggle-away): Rename from `liece-command-away'. (liece-command-toggle-freeze): Rename from `liece-command-freeze'. (liece-command-toggle-own-freeze): Rename from `liece-command-own-freeze'. (liece-command-toggle-beep): Rename from `liece-command-beep'. (liece-command-load-vars): Abolish. * liece.el (liece-dialogue-beep): Abolish. (liece-dialogue-freeze): Abolish. (liece-dialogue-own-freeze): Abolish. (liece-initialize-buffers): Don't parse error message. (liece): Assume `liece-away-message' is nil. (liece-command-map): Don't bind `liece-command-freeze' and `liece-command-own-freeze'. (liece-dialogue-mode-map): Don't bind `liece-command-timestamp' and `liece-command-find-timestamp'; bind `liece-command-toggle-private' to "C-t p"; bind `liece-command-toggle-away' to "C-t a"; bind `liece-command-toggle-freeze' to "C-t f"; bind `liece-command-toggle-own-freeze' to "C-t o". * liece-minibuf.el (liece-minibuffer-parse-modes): Don't complete mode flags when completing an argument. 2000-09-19 Daiki Ueno * liece-version.el (liece-version): Bump up to 2.0.0. * liece-menu.el (liece-menu-callback-set-operators): Rename from `liece-menu-callback-mode+o'. (liece-menu-callback-set-voices): Rename from `liece-menu-callback-mode+v'. (liece-menu-callback-unset-operators): Rename from `liece-menu-callback-mode-o'. (liece-menu-callback-unset-voices): Rename from `liece-menu-callback-mode-v'. * liece-nick.el (liece-nick-region-opers): Abolish. (liece-nick-region-voices): Abolish. (liece-nick-update-region): Don't set them. * liece.el (liece-dialogue-mode-map): Don't bind `liece-command-exec', `liece-command-lusers' and `liece-command-userhost'. * liece-commands.el (liece-command-exec): Abolish. (liece-command-inline): Abolish. (liece-command-set-operators): Rename from `liece-command-mode+o'. (liece-command-set-voices): Rename from `liece-command-mode+v'. (liece-command-qualify-nicks): New function. (liece-command-mode-o): Abolish. (liece-command-mode-v): Abolish. (liece-command-userhost): Abolish. (liece-command-lusers): Abolish. 2000-09-18 Daiki Ueno * liece-vars.el (liece-channel-buffer-mode): Set default to t. (liece-nick-buffer-mode): Ditto. (liece-channel-list-buffer-mode): Ditto. * liece.el (liece-open-server-internal): Simplify. (liece-open-server): Strip bracketed server name here. (liece-start-server): Fix last change. 2000-09-17 Daiki Ueno * liece-vars.el (liece-highlight-mode): Set default to t. * liece.el (liece-open-server): Simplify. (liece-start-server): Canonicalize `liece-server' here. 2000-09-17 Akira Ohashi * liece-menu.el (liece-menu-channel-menu): Move `liece-command-freeze' from `liece-menu-IRC-menu'. (liece-menu-channel-menu): Move `liece-command-own-freeze' from 'liece-menu-IRC-menu'. (liece-menu-channel-menu): New menu item `liece-dialogue-beep'. (liece-menu-channel-menu): New menu item `liece-command-unread-channel'. 2000-09-17 Akira Ohashi * liece-channel.el (liece-channel-read-functions): Rename from `liece-channel-read-hook'. * liece-handle.el (liece-channel-unread-functions): Rename from `liece-channel-unread-hook'. * liece-emacs.el (toplevel): Use them. * liece-xemacs.el (toplevel): Ditto. 2000-09-17 Daiki Ueno * liece-make.el (make-liece-sample-files): Abolish. (make-liece-info-files): Abolish. * liece-url.el (liece-add-url-functions): Rename from `liece-url-add-hook'. * liece.el (liece-after-insert-functions): Rename from `liece-insert-hook'. (liece-before-insert-functions): Rename from `liece-before-insert-hook'. * liece-handle.el (liece-notice-cleartext-hook): Abolish. (liece-privmsg-cleartext-hook): Abolish. * liece-filter.el (liece-handle-message): Simplify. * liece-ctcp.el (liece-ctcp-message): Don't ignore errors in hooks. (liece-ctcp-notice): Ditto. (liece-ctcp-file-notice): Ditto. * liece-channel.el (liece-channel-add-mode): Don't use pushnew. (liece-channel-add-exception): Ditto. (liece-channel-add-invite): Ditto. 2000-09-12 Daiki Ueno * liece-vars.el (liece-inhibit-startup-message): New user option. 2000-09-11 Daiki Ueno * liece-xemacs.el (liece-xemacs-splash-at-point): Don't check `console-type'. (liece-x-face-insert-with-xemacs): Ditto. 2000-09-11 Akira Ohashi * liece-emacs.el (liece-emacs-unread-character): Abolish. * liece-vars.el (liece-channel-unread-character): New variable. * liece-xemacs.el (liece-xemacs-unread-mark): Simplify; Don't use `featurep' and `console-type'. (toplevel): Ditto. 2000-09-11 Daiki Ueno * liece-minibuf.el: Autoload `completing-read-multiple'; declare `crm-separator'. (liece-minibuffer-completing-read): Rename from `liece-minibuffer-completing-default-read'; accept optional arguments `history' and `default'. (liece-minibuffer-completion-separator): New variable. (liece-minibuffer-completion-table): New variable. (liece-minibuffer-completing-read-multiple-1): New completion function. (liece-minibuffer-completing-read-multiple): Rename from `liece-minibuffer-completing-sequential-read'; accept optional arguments `history' and `default'; use `completing-read-multiple' when optional 8th argument `multiple-candidate' is specified. * liece-xemacs.el (liece-xemacs-redisplay-unread-mark): Don't bind `chnl'. 2000-09-11 Daiki Ueno * liece-commands.el (liece-command-quit): Don't send QUIT. * liece-emacs.el (liece-emacs-splash): Use `generate-new-buffer' instead of `liece-get-buffer-create' * liece-xemacs.el (liece-xemacs-splash): Synch with liece-emacs.el * liece.el (liece-clear-system): Call `liece-buffer-dispose-function' instead of burying buffer. (liece-open-server-internal): Simplify; Don't use `liece-get-buffer-create' to prepare process-buffer. (liece-close-server): Accept optional argument `quit-string'. * liece-vars.el (liece-buffer-dispose-function): New variable. 2000-09-10 Daiki Ueno * liece-inlines.el (string-list-remove-ignore-case): Remove car of the element. (string-list-delete-ignore-case): Ditto. (string-list-remove): Ditto. (string-list-delete): Ditto. 2000-09-06 Daiki Ueno * liece-clfns.el (remq): New compiler macro. 2000-09-05 Akira Ohashi * liece-channel.el (liece-channel-redisplay-buffer): New hook `liece-channel-read-hook'. (liece-channel-change): Run `liece-redisplay-unread-mark'. * liece-handle.el (liece-handle-privmsg-message): New hook `liece-channel-unread-hook'. * liece-vars.el (liece-display-unread-mark): New variable. * liece-xemacs.el (liece-xemacs-unread-icon): Rename from `liece-xemacs-channel-balloon-icon'. (liece-xemacs-unread-mark): Rename and simplified from `liece-xemacs-channel-balloon'. (liece-xemacs-read-mark): Rename and simplified from `liece-xemacs-channel-balloon-kill'. (liece-xemacs-redisplay-unread-mark): New function. (toplevel): Add them to hook. * liece-emacs.el (liece-emacs-unread-character): New variable. (liece-emacs-unread-mark): New function. (liece-emacs-read-mark): Ditto. (liece-emacs-redisplay-unread-mark): Ditto. (toplevel): Add them to hook. 2000-09-04 Daiki Ueno * liece-inlines.el (string-equal-ignore-case): Check return value of `compare-strings'. 2000-09-03 Daiki Ueno * liece-clfns.el: Require `pym'. (liece-clfns-subr-fboundp): New macro. (last,member-if,member-if-not,delete-if,remove-if,remove-if-not, assoc-if,rassoc-if): Use it. * liece-inlines.el (string-list-member-ignore-case): Use `member-ignore-case'. (string-list-remove-ignore-case): Use remq. (string-list-member): Abolish. (string-list-delete-ignore-case): Use delq. (string-equal-ignore-case): Use `compare-strings' if available. 2000-09-01 Daiki Ueno * liece-channel.el (liece-channel-change): Handle `liece-current-chat-partner'. * Makefile.am (SOURCES): Remove `liece-crypt'. * liece-crypt.el: Remove. * liece-400.el (liece-handle-433-message): Use `liece-beep' (liece-handle-432-message): Ditto. * liece-misc.el (liece-beep): New macro. (liece-set-beep): Rename from `liece-beep'. * liece-xemacs.el (liece-xemacs-channel-balloon): Abolish local variable `chnl'. * liece.el: Don't require `liece-crypt'. (liece-crypt-map): Abolish. (liece-buffer-mode-alist): Remove `liece-CRYPT-buffer'. (liece-command-mode-map): Don't bind `liece-command-enter-message-opposite-crypt-mode'. (liece): Don't initialize crypt indicator. (liece-command-mode): Ditto. (liece-dialogue-mode): Ditto. (liece-channel-mode): Ditto. * liece-xemacs.el: Don't require `liece-crypt'. (liece-toolbar-crypt-active-icon): Abolish. (liece-toolbar-crypt-inactive-icon): Abolish. (liece-toolbar-crypt-icon): Abolish. (liece-toolbar-crypt-glyph): Abolish. (liece-toolbar-crypt-active-glyph): Abolish. (liece-toolbar-crypt-inactive-glyph): Abolish. (liece-toolbar-spec-list): Don't set `liece-toolbar-crypt-glyph'. (liece-xemacs-setup-toolbar-hook): Remove `liece-toolbar-setup-crypt-glyph'. (liece-toolbar-setup-crypt-glyph): Abolish. (liece-toolbar-toggle-crypt): Abolish. * liece-vars.el (liece-defected-message-prefix): Abolish. (liece-suspicious-message-prefix): Abolish. (liece-beep-function): New variable. * liece-message.el (liece-message-brackets-function): Don't handle `liece-message-encrypted-p'. (liece-message-encrypted-p): Abolish. (liece-message-suspicious-p): Abolish. (liece-message-garbled-p): Abolish. (liece-message-fingerprint): Abolish. (liece-message-timestamp): Abolish. * liece-menu.el (liece-menu-crypt-menu): Abolish. (liece-menu-channel-menu): Remove `liece-menu-crypt-menu'. (liece-menu-alist): Ditto. (liece-menu-crypt-menu-map): Abolish. * liece-handle.el (liece-handle-notice-message): Don't use `with-liece-decryption'. (liece-handle-privmsg-message): Ditto. Use `liece-beep' instead of `beep'. * liece-modules.el (liece-modules-to-compile): Remove `liece-crypt'. * liece-globals.el (liece-crypt-indicator): Abolish. (liece-CRYPT-buffer): Abolish. (liece-C-buffer): Abolish. * liece-commands.el: Don't require `liece-crypt'. (liece-command-send-message): Abolish optional argument ARG and KEY. (liece-command-enter-message): Ditto. (liece-command-message): Ditto. (liece-enter-message): Abolish. (liece-command-part): Don't set crypt indicator. (liece-switch-to-channel): Ditto. (liece-switch-to-channel-no): Ditto. (liece-command-private-conversation): Ditto. (liece-command-toggle-crypt): Abolish. 2000-08-31 Akira Ohashi * liece-handle.el (liece-handle-privmsg-message): Fixed. 2000-08-30 Akira Ohashi * liece-commands.el (liece-command-unread-channel): New function. * liece.el (liece-command-map): Bind "\C-u" to it. (liece-channel-list-mode-map): Bind "u" to it. 2000-08-29 Daiki Ueno * liece-channel.el (liece-channel-change): Run `liece-redisplay-buffer-functions' only when `liece-current-channel' is non-nil. * liece-commands.el (liece-command-who): Check `liece-current-channel'. (liece-command-names): Ditto. Suggested by: Yoichi NAKAYAMA . 2000-08-30 Akira Ohashi * liece-vars.el (liece-channel-unread-list): New variable. * liece-channel.el (liece-channel-unread-p): New function. (liece-channel-redisplay-buffer): Use it. * liece-handle.el (liece-handle-privmsg-message): Ditto. 2000-08-29 Akira Ohashi * liece-channel.el (liece-channel-change): Run `liece-redisplay-buffer-functions'. 2000-08-23 Daiki Ueno * liece-handle.el (liece-handle-privmsg-message): Use `liece-pick-buffer-1' to construct channel buffer name. 2000-08-23 Akira Ohashi * liece-xemacs.el (liece-xemacs-channel-balloon): New function. Show balloon icon to `liece-cahnnel-list-buffer' as XEmacs glyphs when non-current channel message is received. (liece-xemacs-channel-balloon-kill): New function. Kill the balloon icon. 2000-08-17 Daiki Ueno * liece.el (liece-server-keyword-map): Bind connection type. 2000-08-16 Daiki Ueno * liece.el (liece-open-server-internal): Use `liece-open-network-stream'; bind liece-tcp-connection-type. * liece-tcp.el (liece-tcp-open-program-stream-as-binary): Abolish. (liece-tcp-open-ssl-stream-as-binary): Abolish. (liece-tcp-open-rlogin-stream-as-binary): Abolish. (liece-tcp-wait-for-string): Abolish. (liece-tcp-stream-alist): New variable. (liece-open-network-stream): Abolish 5th argument `type'. 2000-08-01 Yoshiki Hayashi * liece-xemacs.el (liece-toolbar-position): Use function defaul-toolbar-position instead of variable. 2000-07-17 Daiki Ueno * liece-emacs.el (create-image): Don't advise. (liece-widget-keymap): Remove checking about 'button3. (liece-emacs-widget-button-click): Save point in window explicitly. * liece-ctcp.el (liece-command-ctcp-generic): Fix format string. 2000-07-16 Akira Ohashi * liece-commands.el (liece-command-beep): New function. Toggle the automatic beep notice when the channel message is received. * liece.el (liece-dialogue-mode-map): Bind "B" to liece-dialogue-beep. * liece-vars.el (liece-default-beep): New variable. (liece-beep-when-invited): Ditto. (liece-beep-when-privmsg): Ditto. (liece-beep-words-list): Ditto. 2000-05-07 Daiki Ueno * liece-tcp.el (liece-tcp-rlogin-parameters): Use `socket' instead of `telnet'. (liece-tcp-open-rlogin-stream): Don't wait for a connection. (liece-tcp-open-rlogin-stream-as-binary): Simply wrap `liece-tcp-open-rlogin-stream'. 2000-04-21 Daiki Ueno * liece-ctcp.el (liece-ctcp-make-menu-command-wrapper): Quote CTCP subcommands. * liece-mail.el (liece-maintainer-address): New ML address. 2000-04-12 Daiki Ueno * liece-url.el: Don't require browse-url when compiling. (liece-url-browser-name): Abolish. (liece-url-prepare-browser-function): Abolish. (liece-url-mail-regexp): Abolish. (liece-url-browser-function): Abolish. (liece-url-link-action): Use browse-url directly. (liece-command-browse-url): Ditto. (liece-url-add-buttons): Remove local variable `url-start', `url-end' and `url'. Suggested by: Kenichi OKADA * liece-xemacs.el (liece-toolbar-position): Check feature 'toolbar was provided. 2000-04-08 Daiki Ueno * liece-xemacs.el (liece-xemacs-setup-toolbar): Run `liece-xemacs-setup-toolbar-hook' only once. (liece-setup-toolbar): Don't check return value of `liece-xemacs-setup-toolbar'. Reported by: Yosuke MITSUMASU 2000-04-05 Daiki Ueno * liece-commands.el: Add autoload for liece-command-ctcp-version, liece-command-ctcp-userinfo,liece-command-ctcp-clientinfo, liece-command-ctcp-ping,liece-command-ctcp-time, liece-command-ctcp-x-face,liece-command-ctcp-comment, liece-command-ctcp-help. Suggested by: HARUYAMA Seigo . * liece-ctcp.el (liece-ctcp-make-menu-command-wrapper): Don't use `#'. (liece-ctcp-make-command-wrapper): Ditto. 2000-04-04 Daiki Ueno * liece.el (liece-client-query-keys): Rename all commands. * liece-vars.el (liece-ctcp-userinfo): Rename from `liece-client-userinfo'. (liece-ctcp-x-face): Ditto. * liece-ctcp.el (liece-ctcp-message): Abolish macro. (liece-ctcp-file-message): Ditto. 2000-03-28 Daiki Ueno * liece-emacs.el: Require `derived'. 2000-03-24 Daiki Ueno * liece-inlines.el (liece-locate-path): Use `liece-locate-data-directory' instead of `locate-data-directory'. 2000-03-23 Daiki Ueno * liece-q-ccl.el (ccl-set-register-right): Abolish. (liece-quote-ccl-decode): Simplified. * liece-compat.el (liece-suppress-mode-line-format): Copy original `mode-line-format' before modification. (locate-data-directory): Abolish. (liece-locate-data-directory): New function. * liece-xemacs.el (liece-xemacs-suppress-modeline-format): Ditto. (liece-locate-data-directory): Override with `locate-data-directory'. * liece.el (liece-command-mode): Define `mode-line-format' as buffer local. (liece-dialogue-mode): Exchange `mode-line-modified' position. (liece-clear-system): Check buffer status. * liece-ctcp.el (liece-ctcp-xyzzy-message): Abolish. (liece-command-send-file): Don't narrowing buffer. (liece-ctcp-file-save-directory): Default to `liece-directory'. (liece-register-file-handler): New macro. (liece-ctcp-notice): Rewrite. (liece-ctcp-message): Rewrite. (liece-query-client-insert-to-generic): Abolish. (liece-query-client-version): Abolish. (liece-query-client-userinfo): Abolish. (liece-query-client-help): Abolish. (liece-query-client-clientinfo): Abolish. (liece-query-client-ping): Abolish. (liece-query-client-time): Abolish. (liece-query-client-x-face): Abolish. (liece-query-client-last-command): Rename from `liece-query-client-lastcommand'. (liece-query-client-alist): Abolish. (liece-ctcp-last-nick): Rename from `liece-query-client-nick'. (liece-command-ctcp-x-face-from-minibuffer): Abolish. (liece-command-ctcp-x-face-from-commandbuffer): Abolish. (liece-command-ctcp-userinfo-from-commandbuffer): Abolish. 2000-03-22 Daiki Ueno * liece-xemacs.el (liece-xemacs-icon-path): Abolish. (liece-toolbar-position): Default to `default-toolbar-position'. (liece-xemacs-setup-toolbar): Remove directory checking. (liece-xemacs-modeline-glyph): Suppress glyph specs. (liece-xemacs-create-nick-glyph): Ditto. * liece-emacs.el (liece-emacs-icon-path): Abolish. * liece-intl.el (liece-intl-load-catalogue): Rewrite with `liece-locate-path'; remove local binding. * liece-window.el (liece-window-load-style-file): Rewrite with `liece-locate-path'; remove local binding. * liece-compat.el (locate-data-directory): New function. * liece-inlines.el (liece-find-data-directory): Abolish. (liece-locate-path): Rename from `liece-find-path'; use `locate-data-directory'; reorder arguments. (liece-locate-icon-file): New function. 2000-03-20 Daiki Ueno * liece-globals.el (liece-command-buffer,liece-dialogue-buffer,liece-private-buffer, liece-others-buffer,liece-channel-buffer, liece-channel-buffer-format,liece-channel-list-buffer, liece-nick-buffer,liece-nick-buffer-format, liece-KILLS-buffer,liece-IGNORED-buffer,liece-WALLOPS-buffer, liece-CRYPT-buffer,liece-server-buffer): Remove preceding `*IRC*'. * liece-xemacs.el (liece-xemacs-splash-at-point): Bind `liece-insert-environment-version' to nil. (liece-xemacs-splash): Ditto. (liece-xemacs-suppress-modeline-format): New function. (liece-suppress-mode-line-format): Override with `liece-xemacs-suppress-modeline-format'. (liece-xemacs-mode-line-buffer-identification): Decorate 1st element and modify whole identification by side effect. * liece-compat.el (current-language-environment): Abolish. (frame-title-format): Abolish. (enable-multibyte-characters): Abolish. (liece-suppress-mode-line-format): New function. * liece-version.el: Use product.el. (liece-version): New function. (liece-user-interface-product): Abolish. (liece-product-name): Abolish. (liece-product-version): Abolish. (liece-product-code-name): Abolish. (liece-user-agent-value): Abolish. (liece-command-version): Abolish. (liece-environment-version): Rename from `liece-emacs-user-agent-value'. * bitmap-stipple.el (bitmap-stipple-insert-pixmap): Don't set point to `point-min'. * liece-xbm.el: Update. * liece-emacs.el (liece-emacs-splash): Display version number; bind `liece-insert-environment-version' to nil. (liece-emacs-mode-line-buffer-identification): Decorate 1st element and modify whole identification by side effect. * liece-vars.el (liece-nick-max-length): New variable. (liece-insert-environment-version): New variable. * liece.el (liece-truncate-nickname): Abolish. (liece-client-query-keys,liece-dialogue-keys, liece-select-keys,liece-crypt-keys): Define as a plist. (liece-local-set-keys): New function borrowed from gnus-util.el. (liece-define-keys): Ditto. (liece-define-keys-safe): Ditto. (liece-define-keys-1): Ditto. (liece-command-map): Bind "\C-m" to liece-command-modec. (liece-command-mode): Don't set `mode-line-format' directly; exchange `mode-line-modified' position; (liece-dialogue-mode): Ditto. (liece-others-mode): Ditto. (liece-channel-mode): Ditto. (liece-nick-mode): Ditto. (liece-channel-list-mode): Ditto. 2000-03-19 Daiki Ueno * gettext.el (bind-text-domain): Don't refer "PATHNAME/DOMAIN.mo" directly. * bitmap-stipple.el,gettext.el,liece-000.el,liece-200.el, liece-300.el,liece-400.el,liece-500.el,liece-commands.el, liece-config.el,liece-crypt.el,liece-ctcp.el,liece-dcc.el, liece-filter.el,liece-globals.el,liece-handle.el,liece-hilit.el, liece-inlines.el,liece-intl.el,liece-mail.el,liece-make.el, liece-menu.el,liece-message.el,liece-minibuf.el,liece-misc.el, liece-nick.el,liece-q-ccl.el,liece-q-el.el,liece-tcp.el, liece-version.el,liece-window.el,liece-x-face.el: Checkdoc. * liece-menu.el (liece-nick-popup-menu): Use copy-sequence instead of copy-tree. * liece-modules.el (liece-modules-to-compile): Modify for `liece-clfns' and `liece-handler'. * liece-handler.el: Rename from llunf.el. * liece-clfns.el: New file. * liece-channel.el (liece-channel-add-buttons): Fix regexp. (liece-channel-add-ban): Use add-to-list instead of pushnew. * liece-coding.el (liece-default-coding-system): Abolish. (liece-mime-charset-for-write): Rename from `liece-default-mime-charset'. (liece-mime-charset-for-read): Rename from `liece-default-mime-charset-for-read'. * liece.el (liece-client-query-map,liece-dcc-map, liece-crypt-map,liece-friends-map,liece-channel-list-mode-map, liece-nick-mode-map,): Use make-sparse-keymap when initialising. (liece-command-mode): Don't set liece-display-frame-title to nil. (liece-dialogue-mode-map): Bind `L' to liece-command-load-vars instead of `C-l'; bind `S' to liece-command-save-vars instead of `s'; bind `M' to liece-command-modec instead of `C-m'; bind `O' to liece-dialogue-own-freeze instead of `M'. (liece-buffer-last-check-time): Rename from `liece-last-checkbuffer-time'. (liece-check-buffers): Define as function. (liece-check-buffers-if-interval-expired): Simplified. * liece-vars.el (liece-buffer-max-size): Rename from `liece-buffer-maxsize'. (liece-buffer-default-size): Rename from `liece-buffer-defsize'. (liece-buffer-check-interval): Rename from `liece-checkbuffer-interval'. * liece-emacs.el (liece-emacs-widget-button-click): Don't use `event-buffer'. * liece-xemacs.el (liece-xemacs-get-buffer-window-list): Abolish. (liece-xemacs-run-at-time): Abolish. (liece-xemacs-put-text-property): Abolish. (liece-xemacs-add-text-property): Abolish. * liece-minibuf.el (liece-minibuffer-map): Use `set-keymap-parent' instead of `liece-set-keymap-parents'. * liece-compat.el: Don't require emu, broken, alist. (remassoc): Abolish. (remassq): Abolish. (liece-run-at-time): Abolish. (liece-cancel-timer): Abolish. (with-timeout): Abolish. (with-timeout-handler): Abolish. (liece-get-buffer-window-list): Abolish. (liece-set-keymap-parents): Abolish. (event-buffer): Abolish. (event-point): Abolish. (truncate-string-to-width): Abolish. (plist-get): Abolish. (read-passwd): Abolish. (colon-keyword-usable): Abolish. (turn-on-font-lock): Abolish. (liece-make-overlay): Abolish. (liece-delete-overlay): Abolish. (liece-overlay-put): Abolish. (liece-move-overlay): Abolish. (liece-overlay-end): Abolish. (liece-overlay-get): Abolish. (liece-overlays-at): Abolish. (liece-put-text-property): Abolish. (liece-add-text-property): Abolish. (buffer-disable-undo): Abolish. (valid-plist-p): Abolish. * liece-url.el (liece-url-browser-netscape): Abolish. 2000-03-08 Daiki Ueno * liece-compat.el (liece-get-buffer-window): Search all frames. 2000-02-28 Daiki Ueno * liece.el (liece-command-mode): Set frame-title-format when running on window-system environment. 2000-02-18 Daiki Ueno * liece-emacs.el (liece-emacs-splash): Use `frame-char-width' and `frame-char-height' when calculating logo centering. 2000-02-17 Daiki Ueno * liece-400.el (liece-handle-443-message): Check channel name. 2000-02-13 Daiki Ueno * liece-coding.el (liece-coding-encode-charset-region): Define as function. (liece-coding-encode-charset-string): Define as function. * liece-dcc.el (liece-dcc-chat-send): Switch to liece-command-buffer. (liece-dcc-enqueue-request): Rename. (liece-dcc-dequeue-request): Ditto. * liece-misc.el (liece-send-as-binary): Abolish. (liece-repair-crlf): Abolish. (liece-send): Switch to liece-command-buffer. * liece-emacs.el (liece-emacs-splash): Use `font-info' if 'font parameter of the selected frame is not a fontset name. * liece.el (liece-open-server-internal): Set process-buffer of open-network-stream as unibyte. 2000-02-10 Daiki Ueno * liece-xemacs.el (liece-toolbar-icon-convert-1): New function. (liece-toolbar-icon-states): New variable. * liece-emacs.el (liece-emacs-widget-button-click): Don't preserve previously selected window. 2000-01-23 Daiki Ueno * liece-emacs.el: Require `image' when compiling. (create-image): Add optional argument `data-p'. 2000-01-22 Daiki Ueno * liece-message.el (liece-message-empty-predicate): New variable. * liece-commands.el (liece-command-message): Use `liece-message-empty-predicate'. 2000-01-16 Daiki Ueno * liece-modules.el (liece-modules): Don't install `queue-m'. * liece-dcc.el: Don't require `queue-m' at runtime. * liece-hilit.el: Add autoload setting for `liece-channel-add-buttons' and `liece-nick-add-buttons'. (liece-highlight-maybe-turn-on-font-lock): Activate `liece-channel-add-buttons' and `liece-nick-add-buttons' when inserting every line. * liece-compat.el (liece-map-overlays): New function. (liece-kill-all-overlays): Use it. * liece-xemacs.el (liece-xemacs-map-extents): New function. (liece-xemacs-kill-all-overlays): Use it. (liece-map-overlays): New alias to `liece-xemacs-map-extents'. * liece-nick.el (liece-nick-redisplay-buffer): New function. (liece-nick-add-buttons): New function. * liece-channel.el (liece-channel-redisplay-buffer): New function. (liece-channel-list-redisplay-buffer): New function. (liece-channel-buffer-invisible-p): Remove redundant cond. (liece-channel-part-internal): Remove redundant `function'. (liece-channel-list-add-button): Rename from `liece-channel-add-button'. (liece-channel-push-button-action): Use `liece-command-join' instead of `liece-switch-to-channel'. * liece-commands.el (liece-switch-to-channel-1): Abolish. (liece-redisplay-buffer-functions): New variable. 2000-01-07 Daiki Ueno * liece-commands.el (liece-command-next-channel): Traverse channel list circularly. (liece-command-previous-channel): Likewise. 1999-12-26 Daiki Ueno * liece-commands.el (liece-command-previous-channel): Remove nil from channel list. (liece-command-next-channel): Ditto. 1999-12-24 Daiki Ueno * liece-emacs.el (liece-emacs-splash): Check whether logo height is larger than frame height. * liece-crypt.el (liece-crypt-maybe-encrypt-message): Simplified. * liece-commands.el (liece-command-enter-message-encrypted): Abolish. (liece-command-enter-message-cleartext): Abolish. (liece-command-enter-message-opposite-crypt-mode): Abolish. (liece-command-enter-message-with-key): Abolish. 1999-12-23 Daiki Ueno * liece-version.el (liece-user-agent-value): Add APEL version. * liece-inlines.el (liece-next-line): New macro. * liece-ctcp.el (liece-command-client-action): Use `liece-next-line'. (liece-command-client-userinfo-from-commandbuffer): Ditto. * liece-channel.el (liece-channel-member): Use `member-if' instead of `find-if'. * liece.el (liece): Don't use `liece-command-describe-briefly'. (liece-command-mode): Don't bind `next-line-add-newlines'. (liece-dialogue-keys): Don't bind `C-u'. * liece-commands.el (liece-command-topic): If called with prefix argument insert the current topic as default. (liece-command-finger): Add documentation about optional 2nd argument. (liece-command-describe-briefly): Abolish. (liece-enter-message): Abolish local variable `message'. (liece-command-join-channel): Fix paren style. (liece-command-join-partner): Ditto. (liece-command-join): Ditto. (liece-command-part): Ditto. (liece-switch-to-channel-no): Ditto. (liece-command-complete): Ditto. (liece-command-next-channel): Rewrite with using `liece-channel-member'. (liece-command-previous-channel): (liece-command-push): Abolish local variable `rest-sym' and `item'; don't use `liece-channel-remove'. (liece-command-pop): Abolish local variable `rest-sym'. (liece-command-tag-region): Don't create temp buffer. 1999-12-21 Daiki Ueno * liece-misc.el (liece-set-channel-indicator): Switch to `liece-command-buffer' when updating modeline. 1999-12-19 Daiki Ueno * liece-minibuf.el (liece-minibuffer-map): Don't use `set-keymap-parents'. * liece-compat.el (liece-set-keymap-parents): Rename from `set-keymap-parents'. (turn-on-font-lock,event-buffer,event-point,region-active-p, remassoc,remassq,valid-plist-p,plist-get): Add document. 1999-12-14 Daiki Ueno * liece.el (liece-insert-internal): Don't bind `tab-stop-list'. (liece-dialogue-mode): Declare `tab-stop-list' as buffer local. 1999-12-01 Daiki Ueno * liece-message.el (liece-message-parent-buffer): Add condtion. 1999-11-13 Daiki Ueno * liece.el (liece-read-variables-files): Make the `~/.liece/' directory if there is no initialization file. 1999-11-10 Kenichi OKADA * liece-xemacs.el (liece-xemacs-splash-at-point): Calculate horizontal position of the splash logo. 1999-11-10 Daiki Ueno * liece-emacs.el (liece-emacs-splash): Check the number of the arguments of `insert-image'. 1999-11-07 Daiki Ueno * liece-coding.el (detect-coding-string): Remove. (liece-detect-coding-string): Don't define if `detect-coding-string' does not exist. 1999-11-05 Daiki Ueno * liece-url.el (liece-url-add-buttons): Accept optional arguments `start' and `end'. * liece.el (liece-save-point): New macro; borrowed from SKK. (liece-before-insert-hook): New variable. (liece-insert-internal): Refine. 1999-11-01 Daiki Ueno * liece-misc.el (liece-get-buffer-create): Use memq instead of member to search over buffers list. 1999-10-29 Daiki Ueno * liece-handle.el (liece-handle-ping-message): Return the argument correctly. * liece.el (liece-insert-internal): Remove `inline'. 1999-10-27 Daiki Ueno * liece-commands.el (liece-command-nick-scroll-down): Fix argument list. (liece-command-nick-scroll-up): Ditto. * liece-hilit.el (liece-highlight-turn-on-font-lock): Set `liece-highlight-maybe-play-jingle' as local hook. (liece-highlight-font-lock-keywords): Undo last change. 1999-10-26 Daiki Ueno * liece.el (liece-refresh-windows): Remove. (liece-refresh-buffer-window): New function `liece-refresh-windows'. (liece-insert-internal): Preserve old point unconditionally when the buffer is frozen. 1999-10-21 Daiki Ueno * liece-misc.el (liece-freeze): Rename from `liece-freeze-toggle'. (liece-own-freeze): Rename from `liece-own-freeze-toggle'. * liece.el: Add autoload for `liece-command-submit-bug-report'. (liece-overriding-command-keys): Rename. (liece-dialogue-keys): Bind `liece-command-submit-bug-report'. * liece-commands.el (liece-command-scroll-down): Use `scroll-other-window'; accept prefix value. (liece-command-scroll-up): Ditto. (liece-command-nick-scroll-down): Ditto. (liece-command-nick-scroll-up): Ditto. (liece-command-freeze): Accept prefix argument. (liece-command-own-freeze): Ditto. (liece-command-quit): Refine. 1999-10-20 Daiki Ueno * liece-commands.el (liece-command-display-friends): Remove `save-excursion'. * liece.el (liece-read-variables-files): Prepare startup directory if it does not exist. * liece-vars.el (liece-directory): New variable. (liece-variables-file): Relocate under `liece-directory'. * liece-ctcp.el (liece-ctcp-version-message): Refer `liece-user-agent-value'. * liece-menu.el: Check features about menubars. * liece-xemacs.el (liece-xemacs-hide-scrollbars): Set `scrollbar-height' to 0 if `horizontal-scrollbar-visible-p' is not available. * liece-mail.el (liece-command-submit-bug-report): New function. (liece-maintainer-address): New variable. * gettext.el (gettext-load-message-catalogue): Enclose with `as-binary-input-file' instead of using `set-buffer-multibyte' twice. (gettext-load-portable-message-catalogue): Likewise. (dgettext): Check the cdr of catalogue entry. (gettext-gmo-read-32bit-word): Mask each byte with 255. * liece-compat.el (truncate-string-to-width): New alias. * liece.el (liece-server-keyword-bind): Quote colon keywords. * liece-make.el (make-liece-info-files): Check if `set-language-environment' exists. * liece-misc.el (liece-server-host): Quote colon keyword. 1999-10-19 Daiki Ueno * liece-hilit.el (liece-highlight-font-lock-keywords): Undo last change; accept partial matcher as the value of `liece-highlight-pattern'. (liece-highlight-maybe-play-jingle): New function. (liece-highlight-maybe-turn-on-font-lock): Add `liece-highlight-maybe-play-jingle' to `after-change-functions'. 1999-10-14 Daiki Ueno * gettext.el (gettext-load-message-catalogue): Use hashtable. (gettext-load-portable-message-catalogue): Likewise. 1999-10-13 Daiki Ueno * liece-misc.el (next-visible-point): Don't advise. (liece-remove-properties-region): Enclose by `save-restriction'. 1999-10-12 Daiki Ueno * liece-commands.el (liece-command-send-action): Remove. * liece-ctcp.el (liece-command-client-action): Move from `liece-commands.el'; mark `liece-command-send-action' as obsolete. (liece-client-x-face-notice): Remove whitespaces. * liece-handle.el (liece-handle-kick-message): Fix message. 1999-10-11 Daiki Ueno * gettext.el (gettext-default-mime-charset): New variable. (gettext-parse-Content-Type): Use it. 1999-10-07 Daiki Ueno * liece-misc.el (liece-message): Fix message prefix. * liece-compat.el (liece-find-data-directory): Move to `liece-inlines'. * liece-xemacs.el (liece-xemacs-icon-path): Use `liece-find-path'. * liece-emacs.el (liece-emacs-icon-path): Use `liece-find-path'. * liece-inlines.el (liece-find-path): New function. 1999-10-05 Daiki Ueno * liece-version.el (liece-user-interface-product): Renamed from `liece-client-product'. (liece-client-version-major): Abolish. (liece-client-version-minor): Abolish. (liece-client-version-beta): Abolish. (liece-client-version-alpha): Abolish. (liece-client-version-codename): Abolish. (liece-product-name): New macro. (liece-product-version): New macro. (liece-product-code-name): New macro. 1999-10-03 Daiki Ueno * liece-hilit.el (liece-highlight-jingle-function): New variable. (liece-highlight-font-lock-keywords): If liece-highlight-pattern matches, play jingle. 1999-10-01 Daiki Ueno * liece-message.el (liece-message-parent-buffer): Check the message direction in private conversation. 1999-09-28 Daiki Ueno * liece-version.el (liece-emacs-user-agent-value): Include `emacs-patch-level'. It exists in XEmacs 21.1.1 or later. 1999-09-22 Daiki Ueno * liece.el (liece-channel-mode): Make `truncate-lines' local. (liece-others-mode): Ditto. (liece-channel-list-mode): Ditto. (liece-nick-mode): Ditto. 1999-09-18 Daiki Ueno * liece.el (liece-open-server): Set `liece-status-message-string' when timeout is expired. 1999-09-14 Daiki Ueno * liece-menu.el (liece-use-localized-menu): New variable. (liece-command-define-menus): Use it. (liece-command-define-menus-1): New function; to raverse menu items recursively. * liece.el (liece): Call `liece-intl-load-catalogue' before switch to the command buffer. * liece-dcc.el: Refine. * liece-ctcp.el (liece-client-x-face-notice): Do not decode empty `X-Face'. 1999-09-11 Daiki Ueno * liece-vars.el (liece-dcc-program): Rename to `ldcc'. * liece-tcp.el (liece-tcp-program): Rename to `ltcp'. * gettext.el (gettext-parse-Content-Type): Require `path-util'. * liece-x-face.el: Require `path-util'. 1999-09-10 Daiki Ueno * Makefile.am (SOURCES): Add `gettext.el'. * liece-modules.el (liece-modules-to-compile): Add `gettext.el'. * liece-intl.el: Use `gettext.el'. (liece-intl-domains-alist): Abolish. (liece-intl-domain-to-mime-charset-alist): Abolish. (liece-intl-prepare-prefix): Abolish. (liece-intl-parse-Content-Type): Abolish. (liece-intl-convert-string): Abolish. (liece-intl-catalogue-path): Abolish. * gettext.el: New file. * liece-ctcp.el: Add autoload setting for `liece-ctcp-dcc-message'. * liece.el (liece): Save window splitting only when called interactively. (liece-clear-system): Do not restore window splitting. (liece-command-mode): Set syntax table explicitly; make `frame-title-format' buffer local. * liece-window.el (liece-window-configuration-push): Do not save `frame-title-format'. (liece-window-configuration-pop): Likewise. * liece-commands.el (liece-command-quit): Restore window splitting only when called interactively. 1999-09-09 Daiki Ueno * liece.el (liece-server-keyword-map): New variable. (liece-server-keyword-bind): New macro modified version of `mail-source-bind' from `mail-source.el'. (liece-server-parse-string): New function. (liece-open-server): Use them. 1999-09-08 Daiki Ueno * liece-300.el (liece-handle-353-message): Reverse reply list. * All files are renamed from `irchat-*' to `liece-*'. All symbols are renamed too. * irchat-vars.el (irchat-connection-timeout): Default to 60. * irchat-nick.el (irchat-nick-insert): Handle reverse order sorting. 1999-09-07 Daiki Ueno * irchat.el (irchat): Call `irchat-command-mode' just once. (irchat-initialize-buffers): Likewise. * irchat-channel.el (irchat-channel-buffer-create): Call `irchat-channel-mode' just once. * irchat-nick.el (irchat-nick-buffer-create): Call `irchat-nick-mode' just once. * irchat-message.el (irchat-message-parent-buffer): Fix condition. 1999-09-06 Daiki Ueno * irchat-nick.el (irchat-nick-sort-nicks): New variable. * irchat-intl.el (irchat-intl-load-catalogue): Ignore all errors when reading catalogue file. * irchat-menu.el: Do not require `irchat-ctcp'; add autoload settings for `irchat-menu-callback-ctcp-version', `irchat-menu-callback-ctcp-userinfo', `irchat-menu-callback-ctcp-help', `irchat-menu-callback-ctcp-clientinfo' and `irchat-menu-callback-ctcp-ping'; add `irchat-menu-add-url' to `irchat-url-add-hook'. * irchat-url.el (irchat-url-add-buttons): Enclose with `save-excursion'; run `irchat-url-add-hook'. 1999-09-06 Daiki Ueno * Liece 1.3.7. * irchat-xemacs.el (irchat-xemacs-setup-menu): Abolish. * irchat-intl.el (irchat-intl-get-msgstr-if): Abolish. * irchat-vars.el: Remove defconst for colon keyword. 1999-09-05 Daiki Ueno * irchat-menu.el: All the menu specs are expanded immediately. (irchat-menu-prepare-menus): Abolish. (irchat-menu-define): New function. (irchat-menu-alist): New variable. * irchat-handle.el (irchat-handle-topic-message): Check empty topic line. * irchat.el (irchat): When `irchat-startup-channel-list' contains list element send cadr as a channel key. * irchat-emacs.el (irchat-emacs-widget-convert-button): Make the keymap `irchat-widget-keymap' parented from current local map. * irchat-nick.el (irchat-nick-sort-predicate): New variable. (irchat-nick-update): Sort nicknames with `irchat-nick-sort-predicate'. (irchat-nick-insert): Search sorted position before insertion. (irchat-nick-replace): Call `irchat-nick-insert' when `irchat-nick-sort-predicate' is valid. * irchat-message.el (irchat-message-parent-buffer): Add condition for private conversation. * irchat-make.el (make-irchat-info-files): Set language environment to `Japanese'. * irchat-dcc.el (irchat-dcc-channel-representation-format): Remove. * irchat-minibuf.el (irchat-minibuffer-complete-channel-modes): Use `string-list-member-ignore-case' instead of `string-list-ci-member'. * irchat-url.el: Remove `irchat-insert-hook'. * irchat-hilit.el (irchat-highlight-maybe-turn-on-font-lock): Add `irchat-url-add-buttons' to `irchat-insert-hook'. * irchat.el (irchat-initialize-buffers): Fix last change. * irchat-300.el: Enclose autoloads by `eval-and-compile'. * irchat-channel.el: Declare variable `irchat-dcc-channel-representation-format'. 1999-09-04 Daiki Ueno * Liece 1.3.6. * irchat.el: Add autoload for `irchat-command-browse-url'; do not require `irchat-url' and `irchat-dcc'; add autoload for `irchat-command-mail-compose'. (irchat-initialize-timers): Rewrite with `dolist'; do not check `irchat-timers-list-initialized-p'. (irchat-truncate-nickname): Use `truncate-string-to-width' instead of `truncate-string'. (irchat-buffer-mode-alist): New variable. (irchat-dialogue-setup-buffer): Abolish. (irchat-others-setup-buffer): Abolish. (irchat-channel-list-setup-buffer): Abolish. (irchat-private-setup-buffer): Abolish. (irchat-KILLS-setup-buffer): Abolish. (irchat-IGNORED-setup-buffer): Abolish. (irchat-WALLOPS-setup-buffer): Abolish. (irchat-CRYPT-setup-buffer): Abolish. (irchat-initialize-buffers): Rewrite. * irchat-ctcp.el (irchat-client-version-insert): Do not indent explicitly. (irchat-client-message-no-lf): Abolish. * irchat-300.el, irchat-xemacs.el, irchat-commands.el: Do not require `irchat-dcc' and `irchat-mail'. * irchat-dcc.el (irchat-command-dcc-send): Remove autoload cookie. 1999-09-03 Daiki Ueno * irchat-inlines.el (forward-line): Do not advise. * irchat-intl.el: Do not require `alist'; require `mcharset', `static' and `cl' during compilation. (irchat-intl-msgid-regexp): Fix regexp. (irchat-intl-msgstr-regexp): Ditto. (irchat-intl-set-msgstr): Abolish. (irchat-intl-load-catalogue): Optimize with side-effects. * irchat.el (irchat): Load message catalogue only once. 1999-08-31 Daiki Ueno * irchat.el (irchat-close-server-internal): Use `irchat-server-opened'. * irchat-hilit.el (irchat-highlight-maybe-turn-on-widget): Abolish. * irchat-channel.el (irchat-channel-add-button): Use `irchat-widget-convert-button'. * irchat-nick.el (irchat-nick-insert): Use `irchat-widget-convert-button'. (irchat-nick-replace): Ditto. * irchat-compat.el (irchat-widget-convert-button): New alias. (irchat-widget-button-click): Alias to `widget-button-click'. * irchat-emacs.el (irchat-widget-keymap): New variable. (irchat-emacs-widget-convert-button): New function. (irchat-emacs-widget-button-click): New function. (irchat-widget-convert-button): Redefine here. (irchat-widget-button-click): Redefine here. * irchat-url.el (irchat-url-add-buttons): Use `irchat-widget-convert-button'. 1999-08-23 Daiki Ueno * irchat-emacs.el (irchat-emacs-splash): Use `fontset-pixel-size'. 1999-08-22 Daiki Ueno * irchat-compat.el: Do not require `wid-browse' during compilation. (irchat-widget-button-click): New function. * irchat-emacs.el: Enclose autoloads with `eval-and-compile'. (irchat-emacs-create-mode-line-image): Specify `:ascent' property when creating the image. (irchat-emacs-create-nick-image): Ditto. 1999-08-22 Daiki Ueno * Makefile.am (EXTRA_DIST): Add `irchat-emacs.el'. * irchat-xemacs.el (irchat-xemacs-glyph-nick-buffer): Abolish. (irchat-xemacs-glyph-nick-region): Remove interactive spec. * irchat-intl.el: Do not require `mime-parse'. * irchat-tcp.el: Bind `ssl-program-arguments'. 1999-08-22 Daiki Ueno * irchat-modules.el (irchat-modules-to-compile): Add `irchat-emacs'. * irchat-xemacs.el (irchat-xemacs-glyph-nick-buffer): Refine. * irchat-vars.el (irchat-icon-directory): Move from `irchat-xemacs.el'.; To be used under FSF Emacs 20.4.91. (irchat-nick-image-alist): Move from `irchat-xemacs.el'. * irchat-emacs.el: New file.; Most of FSF Emacs specific routines are stored here. (irchat-emacs-icon-path): New macro. (irchat-emacs-mode-line-buffer-identification): New function. (irchat-emacs-mode-line-buffer-identification): New variable. 1999-08-20 Daiki Ueno * liece.xpm: Reduce colors. 1999-08-20 Daiki Ueno * irchat-x-face.el (irchat-x-face-insert-function): Don't use `eval-when-compile' while checking bitmap-mule. 1999-08-20 Daiki Ueno * irchat.el (irchat-splash-pixmap): Renamed from `irchat-stipple-pixmap'; use the XPM data under FSF Emacs 20.4.91. (irchat-x-splash): Likewise. * irchat-channel.el (irchat-channel-virtual): Undo last change. 1999-08-15 Daiki Ueno * irchat-400.el (irchat-handle-400-messages): Do not pass empty channel names to `irchat-channel-virtual'. * irchat-channel.el (irchat-channel-virtual): Make channel ID for `!' channels invisible from user. * irchat-vars.el (irchat-channel-id-length): Default to 5. 1999-08-14 Daiki Ueno * irchat-300.el (irchat-353-channel): Abolish. (irchat-handle-366-message): Do not use `irchat-353-channel'. 1999-08-13 Daiki Ueno * irchat-200.el (irchat-handle-218-message): Do not indent explicitly. 1999-08-08 Daiki Ueno * irchat-compat.el (with-timeout): New macro for compatibility. * irchat-xemacs.el: Check `horizontal-scrollbar-visible-p' for XEmacs 20.4. * irchat.el (irchat-open-server): Do not truncate trailing `_'. * Liece 1.3.5. * irchat-handle.el (irchat-handle-mode-message): Handle channel invite list. (irchat-handle-join-message): Pass optional argument to `match-string'. * irchat-channel.el (irchat-channel-get-invites): New macro. (irchat-channel-add-invite): New macro. (irchat-channel-remove-invite): New macro. (irchat-channel-set-invite): New macro. * irchat-300.el: Handle channel invite list. (irchat-handle-346-message) : New handler. (irchat-handle-347-message) : New handler 1999-08-07 Daiki Ueno * irchat-200.el: Register 200 handler again. (irchat-handle-200-message): Do not indent explicitly. (irchat-handle-201-message): Likewise. (irchat-handle-213-message): Likewise. (irchat-handle-214-message): Likewise. (irchat-handle-262-message) : New handler. * irchat-300.el (irchat-handle-365-message): Turn hops count into string. * irchat-xemacs.el (irchat-toolbar-map-button-list): Fix typo. 1999-08-06 Daiki Ueno * irchat-intl.el (irchat-intl-load-catalogue): Add nil check. (irchat-intl-catalogue-path): Fix last change. 1999-08-06 Daiki Ueno * irchat-window.el (irchat-window-load-style-file): Cache `irchat-window-style-directory'. * irchat-xemacs.el (irchat-xemacs-icon-path): Cache `irchat-icon-directory'. * irchat-intl.el (irchat-intl-catalogue-path): New macro. (irchat-intl-load-catalogue): Use it. * irchat-make.el (install-update-manifest-file): Fix for data directories. (config-irchat-package-directory): Splitt into `config-irchat-package'. * irchat-xemacs.el: Do not require `smiley'. (irchat-xemacs-icon-path): New macro. (irchat-toolbar-icon-plist-get): Use it. (irchat-xemacs-setup-toolbar): Use it. (irchat-xemacs-create-nick-glyph): Use it. (irchat-xemacs-modeline-glyph): Use it. * irchat-vars.el (irchat-use-smiley): Abolish. * irchat-hilit.el (irchat-maybe-smiley-region): Abolish. If you want to use this functionality, please setup `irchat-insert-hook'. 1999-08-05 Daiki Ueno * liece.xpm: New splash logo. * irchat-xemacs.el (irchat-xemacs-splash-at-point): Use `glyph-width', `glyph-height' and `window-pixel-height' to calculate position of the splash logo. 1999-08-04 Daiki Ueno * irchat-compat.el (irchat-find-data-directory): Move from `irchat-misc'. * irchat-intl.el: Use new style macros. (irchat-intl-parse-Content-Type): Check statically if `mime-content-type-parameter' is available. (irchat-intl-load-catalogue): Use `irchat-find-data-directory'. * irchat.el (irchat-open-server): Add server parameter `relay'. * irchat-window.el (irchat-window-set-default-style): Use `irchat-find-data-directory'. * irchat-tcp.el: Fix comment string. (irchat-tcp-open-rlogin-stream): New function. (irchat-tcp-open-rlogin-stream-as-binary): New function. (irchat-tcp-default-connection-type): Add rlogin to custom spec. (irchat-tcp-rlogin-program): New variable. (irchat-tcp-relay-host): New variable. (irchat-tcp-rlogin-parameters): New variable. (irchat-tcp-rlogin-user-name): New variable. 1999-08-03 Daiki Ueno * irchat-config.el (irchat-config-info-file-regexp): New variable. * irhcat-hilit.el: Require font-lock during compilation. * irchat-vars.el (irchat-tab-stop-list): New variable. * irhcat-000.el, irchat-200.el, irchat-300.el, irchat-400.el, irchat-ctcp.el: Do not use `mapcar' when registering handlers. * irchat-misc.el (irchat-find-etc-directory): New function. * irchat.el: Add autoloads for `bitmap-stipple-xbm-file-to-stipple' and `bitmap-stipple-insert-pixmap'. * irchat-xemacs.el (irchat-x-face-insert-with-xemacs): Use xface glyph if this feature has been provided and `console-type' returns 'tty or 'pc, or otherwise make string glyph. [Rename from overriding function `irchat-x-face-insert'] (irchat-xemacs-create-nick-glyph): Call `console-type' instead of referring `window-system'. (irchat-xemacs-modeline-glyph): Check current console type. (irchat-xemacs-splash-at-point): Ditto. (irchat-find-etc-directory): Advise it. * irchat-compat.el (irchat-static-autoload): New macro. (colon-keyword-usable): New facility checking. * irchat-x-face.el: Add autoloads for `x-face-encode', `x-face-read-existing-file-name', `bitmap-insert-xbm-buffer', `bitmap-decode-xbm', `bitmap-read-xbm-buffer' and `bitmap-compose'. (irchat-x-face-insert-function): New variable. (irchat-x-face-insert-with-bitmap): Rename from overriding function `irchat-x-face-insert'. * irchat-url.el: Do not check with requiring browse-url. Assume that function `browse-url' have already been autoloaded. 1999-08-01 Daiki Ueno * irchat.el (irchat-command-mode): Set local value of `next-line-add-newlines' 't. (irchat-wait-for-response): Use `with-timeout'. (irchat): Do not use `make-variable-buffer-local' when `irchat-freeze' and `irchat-own-freeze' are initialized. (irchat-dialogue-mode): Define `irchat-freeze' and `irchat-own-freeze' here. * irchat-misc.el (next-line): Abolish. * irchat-handle.el (irchat-handle-nick-message): Fix typo. 1999-07-30 Daiki Ueno * irchat-inlines.el (string-list-modify-ignore-case): Fix typo. 1999-07-29 Daiki Ueno * irchat-make.el: Generate file `MANIFEST.liece'. (install-update-manifest-file): New function. 1999-07-28 Daiki Ueno * irchat-commands.el (irchat-command-end-of-buffer): Do not use `set-window-point'. * irchat-300.el (irchat-handle-367-message): Use `irchat-channel-add-ban' instead of temp variable. (irchat-367-channel): Abolish. (irchat-367-regexps): Abolish. (irchat-handle-348-message): New handler for handling channel exception list. (irchat-handle-349-message): New handler for handling channel exception list. 1999-07-27 Daiki Ueno * irchat-handle.el (irchat-handle-mode-message): Handle channel exception list. * irchat-channel.el: (irchat-channel-get-exceptions): New macro. (irchat-channel-add-exception): New macro. (irchat-channel-remove-exception): New macro. (irchat-channel-set-exception): New macro. 1999-07-25 Daiki Ueno * irchat-commands.el (irchat-command-end-of-buffer): Do not use `pop-to-buffer'. (irchat-command-describe-briefly): Do not use backquote. 1999-07-24 Daiki Ueno * irchat-compat.el: Do not refer `widget-minor-mode-map'. * irchat-hilit.el (irchat-highlight-maybe-turn-on-widget): Use `current-local-map' instead of `widget-minor-mode-map'. * Liece 1.3.4. * irchat-q-ccl.el (irchat-quote-ccl-encode-region): Fix typo. * irchat-crypt.el: Add autoload for `crc32-string'. (irchat-crypt-hash-crc32-string): New function. (irchat-crypt-default-hash-function): New variable. (irchat-crypt-key-fingerprint): Rewrite with above functions. * irchat-handle.el (irchat-handle-topic-message): Fix argument order of `irchat-channel-set-topic'. * irchat-misc.el (irchat-maybe-update-channel-indicator): Abolish. Call `irchat-set-channel-indicator' directly. * irchat-nick.el (irchat-nick-replace): Remove widgets. * irchat-menu.el (irchat-nick-popup-menu): Move "Kick" menu to the bottom of menu entries. * irchat-xemacs.el (irchat-xemacs-setup-menu): Ditto. 1999-07-23 Daiki Ueno * irchat-globals.el (irchat-frame-title-format-last): Abolish. * irchat.el (irchat-accept-response): Call `irchat' with no arguments. Here's the point that take care of growing tail. (irchat): Call `irchat-window-configuration-pop' and `irchat-window-configuration-push' consequently. * irchat-commands.el (irchat-command-keepalive): Call `irchat' with no arguments. * irchat-filter.el (irchat-sentinel): Call `irchat' with no arguments. * irchat-window.el: Add window configuration stack utility. (irchat-window-configuration-push): New function. (irchat-window-configuration-pop): New function. (irchat-window-configuration-stack): New variable. * irchat-compat.el: Require wid-edit and wid-browse during compilation. (widget-minor-mode-map): Bind `mouse-button-3'. (irchat-dont-set-event-point): New advice against `widget-button-click' for FSF Emacs. (irchat-save-current-buffer): New advice against `widget-button-click' for FSF Emacs. (remassq): New function. * irchat-channel.el (irchat-channel-push-button): Abolish. (irchat-channel-list-insert): Abolish. (irchat-channel-button): New widget. (irchat-channel-add-button): New function. (irchat-channel-button-action): New function. * irchat-url.el: Use widget. (irchat-url-link): New widget. (irchat-url-add-button): New function. (irchat-url-iterate-buffer): Abolish. (irchat-url-search-forward): Abolish. (irchat-url-add-to-completion): Abolish (irchat-url-link-action): Renamed from irchat-url-push-button. * irchat-hilit.el: Renamed from irchat-hilight.el. (irchat-highlight-overlay-put-mouse-face): Abolish. (irchat-highlight-insert-with-mouse-face): Abolish. (irchat-highlight-insert-line-with-mouse-face): Abolish. (irchat-highlight-with-widget): Abolish. (irchat-url-face): Abolish. (irchat-mouse-face): Abolish. (irchat-highlight-maybe-turn-on-widget): New function. This function turns on `widget-minor-mode' in `irchat-nick-mode', `irchat-channel-list-mode' or `irchat-dialogue-mode'. 1999-07-21 Daiki Ueno * Liece 1.3.3. * irchat.el (irchat-override-command-keys): Bind "\C-c\C-a" to `irchat-command-previous-channel'. * irchat-crypt.el: Add routines for encapsulate cipher algorithms. (irchat-crypt-import-cipher-algorithm): New function. (irchat-crypt-key-fingerprint): New function. (irchat-crypt-build-decryption-key): New function. (irchat-crypt-build-encryption-key): New function. (irchat-crypt-encrypt-string): New function. (irchat-crypt-decrypt-string): New function. (irchat-crypt-algorithm-major-version): New function. (irchat-crypt-algorithm-minor-version): New function. (irchat-crypt-secure-passphrase-read): Abolish. (irchat-crypt-ignore-suspicious): Abolish. (irchat-crypt-ignore-defected): Abolish. (irchat-get-idea-decryption-key): Abolish. (irchat-command-set-default-key): Check if this function was called interactively. (irchat-command-add-decryption-key): Renamed from `irchat-command-add-new-key'. (irchat-command-delete-decryption-key): Renamed from `irchat-command-delete-key'. (irchat-crypt-decryption-keys): Renamed from `irchat-crypt-known-keys'. (irchat-crypt-encryption-keys): Renamed from `irchat-crypt-default-keys'. * irchat-coding.el (irchat-default-mime-charset-for-read): New variable. Default to 'x-ctext. * irchat-compat.el: Do not require 'defface. (irchat-compat-enable-to-read-multibyte): Abolish. * irchat-modules.el (irchat-modules-to-compile): Remove `irchat-ck-*' and `defface'. Use `japanese-zenkaku-*' with hook. * irchat-vars.el (irchat-convert-hankaku-katakana): Abolished. * irchat-inlines.el: All string functions are rewritten. 1999-07-05 Daiki Ueno * irchat-ctcp.el: Register ACTION handler. 1999-07-04 Daiki Ueno * irchat-version.el (irchat-emacs-user-agent-value): Modify for XEmacs UTF-2000-MULE. * irchat-crypt.el: Do not use IDEA as the default cipher algorithm. (irchat-crypt-cipher-algorithm): New variable. (irchat-crypt-encrypt-message-format): Add version field of the cipher algorithm. (irchat-crypt-current-keys): Always restore the computed keys into this variable. [Renamed from irchat-default-idea-key-list] 1999-06-26 Daiki Ueno * irchat-xemacs.el (irchat-use-toolbar): Add custom spec. (irchat-toolbar-toggle-crypt): Check irchat-use-toolbar. (irchat-setup-toolbar): Ditto. 1999-06-14 Daiki Ueno * Liece 1.3.2. * irchat.el (irchat-define-keys): Rewrite. (irchat-truncate-nickname): Rewrite; rename from irchat-read-nickname. * irchat-handle.el, irchat-400.el, irchat-300.el, irchat-200.el, irchat-000.el: Declarations of hook variables are splitted into each file. * irchat-300.el: Register 322 reply handler. 1999-06-11 Daiki Ueno * irchat.el (irchat-dialogue-mode-map): Bind mouse-button-2 to irchat-url-push-button. * irchat-url.el (irchat-url-push-button): Check all overlays around event point. * irchat-filter.el (irchat-handle-message): Ignore errors which occurs during hook evaluation. * irchat-ctcp.el (irchat-ctcp-message): Ignore errors which occurrs during hook evaluation. (irchat-ctcp-notice): Likewise. (irchat-ctcp-file-notice): Likewise. * irchat-channel.el (irchat-channel-push-button): Use irchat-overlays-at instead of overlays-at. 1999-06-10 Daiki Ueno * irchat-hilight.el (irchat-quoted-colors-mirc): Rename from irchat-quoted-colors. (irchat-quoted-colors-ircle): New color table. (irchat-highlight-maybe-hide-prefix): Fix regexp. (irchat-highlight-colorize-quote): Check vender specific extension. * irchat-channel.el (irchat-channel-push-button): Check all overlays under the point. * irchat-filter.el: Rename default backend name to "generic". * irchat-handle.el: Use multiple values bindings. (irchat-handle-notice-message): Fix argument against irchat-ctcp-notice. *irchat-misc.el (irchat-compose-time-string): Use format-time-string. Now only accepts encoded time. * irchat-misc.el (irchat-pick-buffer): Check if chnl is string and apropriate buffer does not exist. (irchat-pick-buffer-1): Do not return buffer list. 1999-06-10 Daiki Ueno * irchat.el (irchat-debug-mode-map): Abolish. (irchat-debug-keys): Abolish. (irchat-command-keys): Fix return key code. * irchat-window.el (irchat-window-to-buffer): Remove irchat-debug-buffer. * irchat-vars.el (irchat-debug-mode-hook): Abolish. (irchat-debug-prefix): Abolish. * irchat-nick.el (irchat-nick-equal): New alias to string-ci-equal. (irchat-nick-member): New function. (irchat-command-toggle-nick-buffer-mode): Do not toggle when irchat-nick-buffer has not been created. * llhandler.el, irchat-modules.el (irchat-modules-to-compile): Remove llhandler. * irchat-misc.el (irchat-split-line): New function. (irchat-split-rest): Abolish. (irchat-with-split-rest): Abolish. (irchat-maybe-update-channel-indicator): Do not use backquote. (irchat-freeze-toggle): Use irchat-nick-equal. (irchat-message-from-ignored): Rename from irchat-msg-from-ignored. * irchat-message.el (irchat-message-parent-buffer): Use irchat-nick-equal. * irchat-make.el (compile-irchat): Add comments. * irchat-intl.el (irchat-intl-prepare-prefix): Do not treat irchat-debug-prefix. * irchat-inlines.el (filter-elements): Move from irchat-compat. * irchat-globals.el (irchat-debug-buffer): Remove. * irchat-crypt.el (irchat-idea-encrypt-message-format): Rename from irchat-idea-encrypt-msg-format. (irchat-crypt-maybe-decrypt-message): Use irchat-nick-equal. * irchat-compat.el: Require cl at load time. (buffer-or-string-p): Remove. (irchat-get-buffer-window): Enclose with eval-and-compile. (irchat-get-buffer-window-list): Ditto. (irchat-mode-line-buffer-identification): New alias to 'identity. (mapvector): Remove. * irchat-commands.el (irchat-command-debug): Abolished. (irchat-command-join-channel): Use irchat-channel-equal. (irchat-command-join): Use force-mode-line-update. (irchat-command-private-conversation): Ditto. (irchat-command-list): Check if 1st argument is empty string. (irchat-command-who): Ditto. (irchat-command-names): Ditto. (irchat-command-mode+o): Use irchat-nick-member. * irchat-channel.el (irchat-command-toggle-channel-buffer-mode): Do not toggle when irchat-channel-buffer has not been created. * irchat-handle.el, irchat-filter.el, irchat-dcc.el, irchat-ctcp.el, irchat-500.el, irchat-400.el, irchat-300.el, irchat-200.el, irchat-000.el: Use llunf instead of llhandler. * llunf.el: New file. * idea.el, b64.el (>>): Move from irchat-compat. (<<): Ditto. 1999-06-06 Daiki Ueno * irchat-misc.el (irchat-freeze-toggle): Use force-mode-line-update. (irchat-own-freeze-toggle): Ditto. * irchat-dcc.el: Require irchat-minibuf.el. (irchat-command-dcc-send): Use irchat-minibuffer-completing-default-read. (irchat-command-dcc-chat-listen): Ditto. 1999-06-04 Daiki Ueno * irchat.el (irchat-override-command-keys): Add "\C-v" and "l". (irchat-dialogue-keys): Remove "\C-v" and "\C-f". * irchat.el (irchat-override-command-keys): Add "\C-n", "\C-p" and "\C-a". (irchat-dialogue-keys): Remove "\C-n" and "\C-p". * irchat-nick.el (irchat-nick-set-user-at-host): New macro. (irchat-nick-mark-as-apart): New macro. (irchat-nick-unmark-as-apart): New macro. * irchat-version.el (irchat-emacs-user-agent-value): Ignore parenthesis in `emacs-version' for XEmacs 21.2.15. 1999-06-03 Daiki Ueno * irchat-handle.el, irchat-dcc.el, irchat-500.el, irchat-300.el, irchat-200.el: Do not check "strange" reply. * irchat-message.el (irchat-message-parent-buffer): Check if irchat-current-channel exists. * irchat-coding.el: Do not require irchat-vars. * irchat-menu.el (irchat-nick-popup-menu): Enclose save-selected-window. * irchat-misc.el (irchat-get-buffer-create): Do not use unless. * irchat-nick.el (irchat-nick-change): Set chnl property internally. * irchat-dcc.el (irchat-command-dcc-chat-listen): Use irchat-get-buffer-create instead of get-buffer-create. (irchat-command-dcc-chat-connect): Ditto. (irchat-dcc-compare-hostnames): Ditto. * irchat-ctcp.el (irchat-file-start): Use irchat-get-buffer-create instead of get-buffer-create. (irchat-file-cont): Ditto. (irchat-file-end): Ditto. (irchat-ctcp-client-notice): Ditto. * irchat.el (irchat-open-server-internal): Use irchat-get-buffer-create instead of get-buffer-create. (irchat-dialogue-setup-buffer): Ditto. (irchat-others-setup-buffer): Ditto. (irchat-channel-list-setup-buffer): Ditto. (irchat-private-setup-buffer): Ditto. (irchat-KILLS-setup-buffer): Ditto. 1999-06-02 Daiki Ueno * irchat-xemacs.el (irchat-xemacs-nick-popup-menu): Remove save-excursion. * irchat-channel.el (irchat-channel-push-button): Remove save-excursion, just use save-selected-window instead. (irchat-channel-real): Remove save-match-data. * irchat.el (irchat-clear-system): Check irchat-obarray has been initialized. * Makefile.am (SOURCES): Add irchat-message.el and irchat-coding.el. (EXTRA_DIST): Add liece.xbm. 1999-06-02 Daiki Ueno * Liece 1.3.1. * irchat-url.el (url-irc-liece): New function. [should be called from url-irc.el] * Makefile.am (EXTRA_DIST): Add bitmap-stipple. 1999-06-02 Daiki Ueno * irchat-coding.el (irchat-detect-coding-region): New function. (irchat-detect-coding-region-function): Use above. * irchat-coding.el (irchat-detect-coding-string): New function. (irchat-detect-coding-string-function): Use above. * irchat-channel.el (irchat-channel-push-button): Switch to channel list buffer. 1999-06-02 Daiki Ueno * irchat-nick.el (irchat-nick-update-region): Undo last change. * irchat-menu.el (irchat-nick-popup-menu): Switch to nick buffer. * irchat-filter.el: fix comments. (irchat-filter): Split multiple lines without string matching. (irchat-handle-message): Renamed from irchat-handle-message-2. (irchat-parse-user-at-host): New function. * irchat-coding.el (irchat-detect-coding-region-function): Renamed from irchat-custom-detect-coding-region-function. (irchat-detect-coding-string-function): Renamed from irchat-custom-detect-coding-string-function. 1999-06-01 Daiki Ueno * irchat.el (irchat-command-mode): Do not use mapvector. * irchat-handle.el (irchat-handle-notice-msg): Fix arguments against with-irchat-decryption. (irchat-handle-privmsg-msg): Likewise. * irchat-commands.el (irchat-command-send-message): Fix arguments of with-irchat-encryption. (irchat-command-message): Likewise. * irchat-crypt.el (irchat-crypt-maybe-decrypt-message): Exchange car with cdr in arglist. (with-irchat-encryption): Accept flat arglist. (with-irchat-decryption): Likewise. * irchat.el (irchat-nick-mode-map): Define as prefix commands. * irchat.el (irchat-channel-mode): Eliminate channel indicator. (irchat-others-mode): Likewise. (irchat-dialogue-mode): Likewise. * irchat-misc.el (irchat-set-channel-indicator): Eliminate channel indicator. * irchat-ctcp.el (irchat-ctcp-action-msg): Use irchat-display-message. 1999-06-01 Daiki Ueno * irchat-400.el: Remove redundancies on regexps. (irchat-handle-432-msg) : Rewrite. (irchat-handle-433-msg) : Resend NICK command only if irchat-auto-iterate-nick is non-nil. * irchat.el (irchat-command-keys): Add irchat-command-mode+o, irchat-command-mode-o, irchat-command-mode+v, irchat-command-mode-v. XXX: Should be prefixed commands? 1999-05-31 Daiki Ueno * irchat-message.el (irchat-message-predicate): Normalize irchat-message-blackets-predicate. * irchat-inlines.el (irchat-eval-form): New function. * irchat-message.el (irchat-message-predicate): Rename specifier typep to type. * irchat-misc.el (irchat-own-channel-message): Bind irchat-message-direction 'outgoing. (irchat-own-private-message): Ditto. * irchat-message.el (irchat-message-tags): New variable. (irchat-message-tags-function): New function. (irchat-message-private-buffer): Abolished. Use irchat-message-buffer-function. 1999-05-31 Daiki Ueno * irchat-nick.el (irchat-nick-update-region): Move opening save-excursion. * irchat-channel.el (irchat-channel-push-button): Move point to event ocurred position before calling irchat-nick-update-region. * irchat-nick.el (irchat-nick-update-region): Remove argument event from arglist. * irchat-menu.el (irchat-nick-popup-menu): Move point to event ocurred position before calling irchat-nick-update-region. * irchat-xemacs.el (irchat-xemacs-setup-menu): Remove argument event from arglist. (irchat-xemacs-nick-popup-menu): Move point to event ocurred position before calling irchat-nick-update-region. * irchat.el: Use modern key sequence expression. (irchat-command-map): New keymap which override irchat-dialogue-keys with prefix command ("\C-c"). (irchat-friends-map): New keymap. [prefix command for friends] (irchat-dialogue-keys): Import some useful command keys. * irchat-channel.el (irchat-channel-parse-representation): To remove let, construct representation object directly. * irchat-channel.el (irchat-channel-list-insert): Remove format. * irchat-vars.el: Do not require mcharset. * irchat.el (irchat-nick-mode-map): Do not check xemacs. * irchat-xemacs.el (irchat-nick-popup-menu): New alias to irchat-xemacs-nick-popup-menu which override original one. * irchat-compat.el: Use emu's mouse-button emulation. (irchat-button2): Abolished. (irchat-button3): Abolished. * irchat-vars.el (irchat-variables-files): Do not load `~/.irchat3_vars.el' at startup time. * irchat-vars.el (irchat-debug-prefix): Clear. * irchat.el: Do not check `set-face-stipple' is bound. (irchat-x-splash): Add interactive spec. 1999-05-30 Daiki Ueno * irchat.el (irchat-x-splash): Do centering. * bitmap-stipple.el (bitmap-stipple-insert-pixmap): Add optional argument center. * liece.xbm: New file. * irchat.el: Check if liece.xbm exists. * irchat.el (irchat-stipple-pixmap): New variable. (irchat-x-splash): New function. * bitmap-stipple.el: New file. * irchat-modules.el (irchat-modules-to-compile): Add bitmap-stipple. * irchat-commands.el (irchat-command-send-action): Fix typo. * irchat-hilight.el (irchat-highlight-font-lock-keywords): Fix regexp. * irchat-inlines.el (irchat-or): New function. (irchat-and): New function. * irchat-filter.el (irchat-handle-msg-msg): Abolished. * irchat-crypt.el (irchat-message-encrypted-p): Move into irchat-message. (irchat-message-suspicious-p): Ditto. (irchat-message-garbled-p): Ditto. (irchat-message-fingerprint): Ditto. (irchat-message-timestamp): Ditto. * irchat-vars.el: All format strings are removed. (irchat-format-string): Abolished. * irchat-modules.el (irchat-modules-to-compile): Add irchat-message. * irchat-dcc.el (irchat-dcc-chat-filter): Use irchat-display-message. * irchat-commands.el (irchat-command-send-action): Bind irchat-message-type. * irchat-handle.el (irchat-handle-privmsg-msg): Use irchat-display-message. (irchat-handle-privmsglike-msg): Abolished. * irchat-misc.el (irchat-own-channel-message): Use irchat-display-message. (irchat-own-private-message): Likewise. * irchat-message.el: New file. 1999-05-29 Daiki Ueno * irchat.el, irchat-vars.el (irchat-before-kill-emacs-hook): New hook. 1999-05-29 Daiki Ueno * irchat-vars.el (irchat-signoff-message): Renamed from irchat-signoff-msg. * irchat.el (irchat-obarray-size): Moved from irchat-globals.el. * irchat-globals.el: Remove obsolete variables. * irchat-ctcp.el (irchat-client-error-message): Moved from irchat-globals.el. * irchat-commands.el (irchat-save-variables-are-dirty): Renamed from irchat-save-vars-is-dirty. (irchat-command-send-action): Add prefix. * irchat-400.el (irchat-nickname-last): Renamed from irchat-old-nickname. * irchat-000.el (irchat-servername): Abolished. 1999-05-28 Daiki Ueno * irchat-crypt.el: Do not require 'idea. * irchat-commands.el (irchat-command-message): Treat channel target. * irchat-300.el (irchat-handle-317-msg) : Add argument rest to match-string. 1999-05-28 Daiki Ueno * Liece 1.2.8.25. * irchat.el (irchat-command-keys): Do not bind lisp-complete-symbol. * irchat-commands.el (irchat-command-load-vars): Enclose body with unwind-protect. (irchat-command-complete): Use irchat-minibuffer-finalize-completion. (get-word-left): Abolished. (irchat-switch-to-channel-1): New function. (irchat-switch-to-channel): Use irchat-switch-to-channel-1. (irchat-switch-to-channel-no): Likewise. (irchat-command-message): Check crypt-type. * irchat-minibuf.el (irchat-minibuffer-complete-channel-modes): Complete ban patterns. (irchat-minibuffer-parse-modes): Rename property 'uah to 'ban. * irchat-handle.el (irchat-handle-mode-msg): Use irchat-channel-set-ban. * irchat-channel.el (irchat-channel-add-ban): New macro. (irchat-channel-remove-ban): New macro. (irchat-channel-set-ban): New macro. (irchat-channel-get-bans): New function. * irchat-300.el: (irchat-handle-317-msg) : Remove condtionals for obsolete servers. [2.5 or 2.6]. (irchat-handle-367-msg) : Treat it as generic long reply handler. (irchat-367-channel): New variable. (irchat-367-regexps): New variable. (irchat-handle-368-msg) : Save ban patterns as 'ban property. 1999-05-26 Daiki Ueno * irchat.el (irchat-clear-system): Use dotimes when initializing irchat-obarray. 1999-05-26 Daiki Ueno * irchat.el (irchat-command-keys): Bind irchat-command-display-friends. * irchat-commands.el (irchat-command-display-friends): New command. * irchat-vars.el (irchat-display-friends-function): New variable. * irchat-300.el (irchat-303-display-friends): New function. (irchat-303-display-all-friends): New function. * irchat-minibuf.el (irchat-minibuffer-complete-channel-modes): Complete nickname using operators and voices. (irchat-minibuffer-parse-modes): Likewise. (irchat-minibuffer-finalize-completion): Notice no match found. * Makefile.am: New file. 1999-05-25 UENO Daiki * irchat.el (irchat-others-mode): Set parent mode explicitly. (irchat-channel-mode): Ditto. 1999-05-24 Daiki Ueno * irchat-minibuf.el (irchat-minibuffer-parse-modes): Parse ban pattern. * irchat-200.el (irchat-handle-206-msg) : Use multiline display format. (irchat-handle-214-msg) : Likewise. (irchat-handle-213-msg) : Likewise. * irchat-ctcp.el (irchat-client-insert): Quote format string. 1999-05-23 Daiki Ueno * Liece 1.2.8.24. * irchat-ctcp.el (irchat-minibuffer-complete-client-query): Use `irchat-minibuffer-finalize-completion'. * irchat-minibuf.el (irchat-minibuffer-finalize-completion): New function. (irchat-minibuffer-complete-channel-modes): Use above. * irchat.el (irchat-check-buffers): Fix loop condition. 1999-05-23 Daiki Ueno * irchat-dcc.el (irchat-dcc-message): New function. * irchat-nick.el (irchat-nick-join-1): Check dups. * irchat-ctcp.el (irchat-client-insert): New function. * irchat-commands.el (irchat-command-prepare-message-prefix): Abolished. (irchat-command-prepare-own-message-prefix): Ditto. * irchat-misc.el (irchat-own-private-message): Generate prefix string automatically. (irchat-own-channel-message): Likewise. 1999-05-22 Daiki Ueno * irchat-compat.el (run-hook-with-args-until-success): Abolished. * irchat.el (irchat-command-mode): Change mode-line-format. (irchat-open-server): Save password. (irchat-insert-internal): Rewrite. * irchat-200.el (irchat-handle-215-msg) : Fix regexp. (irchat-handle-242-msg) : Cut off preceding `:'. (irchat-handle-205-msg) : Fix typo. (irchat-handle-218-msg) : Fix display format. 1999-05-13 Daiki Ueno * irchat-inlines.el (format-quote): Abolished. * irchat-ctcp.el (irchat-ctcp-action-msg): Pass arguments to PRIVMSG handler. * irchat-hilight.el (irchat-highlight-turn-on-font-lock): Make `after-change-hook' local. 1999-05-12 sphere * irchat-url.el (irchat-command-browse-url): Fix typo. 1999-05-11 Daiki Ueno * irchat-crypt.el (irchat-command-set-default-key): Fix typo. * irchat-window.el (irchat-command-set-window-style): Fix typo. * irchat-url.el (irchat-command-browse-url): Fix typo. * irchat-channel.el (irchat-channel-set-voice): Quote regexp. 1999-05-09 Daiki Ueno * irchat-ctcp.el (irchat-command-client-time): Fix typo. * irchat.el (irchat-channel-mode): Explicitly define as it derives from `irchat-dialogue-mode'. (irchat-others-mode): Ditto. * irchat-compat.el (irchat-kill-all-overlays): New function. * irchat-nick.el (irchat-nick-update): Do not switch to buffer. (irchat-nick-join): Do not check whether nickname has been inserted. (irchat-nick-update): Kill all overlays. * irchat-mail.el: Follow the value of `mail-user-agent'. (irchat-mail-pop-to-buffer): Abolished. (irchat-mail-compose-with-mail): Abolished. (irchat-mail-compose-with-gnus): Abolished. * irchat-inlines.el (nth1, nth1cdr):Abolished. (matching-substring): Abolished. (irchat-greater-flags): Abolished. 1999-05-08 Daiki Ueno * irchat-300.el (irchat-353-scan-channels): New macro. * irchat-minibuf.el (irchat-minibuffer-completing-default-read): Renamed from `irchat-completing-default-read'. (irchat-minibuffer-completing-sequential-read): Renamed from `irchat-completing-sequential-read'. * irchat-channel.el (irchat-channel-set-operator-1): Renamed from `irchat-set-channel-operator' within irchat-misc.el. Restrict its use to internal only. (irchat-channel-set-voice-1): Likewise. * irchat-commands.el (irchat-command-wait): Abolished. * irchat-nick.el (irchat-nick-update): Assume that the 2nd argument CHNL is one of channels we've already joined. * irchat-misc.el (irchat-change-nick-of): Change nicks, opers and voices properties properly. (irchat-change-nick-of-1): New function. Modify nick alist by side effect. (irchat-change-nick-of-2): New function which resembles above, but it acts on singular list. (irchat-greet-user): Abolished. (irchat-user-on-my-channel): Abolished. (irchat-user-on-this-channel): Abolished. * irchat-handle.el (irchat-handle-channel-msg): Do not use `irchat-change-nick-of' directly. (irchat-handle-nick-msg): Likewise. (irchat-handle-quit-msg): Likewise. 1999-05-07 Daiki Ueno * irchat-commands.el (irchat-command-nickname): Do not set `irchat-real-nickname'. 1999-05-06 Daiki Ueno * Liece 1.2.8.23. * irchat-hilight.el (irchat-quoted-colors): New variable. (irchat-highlight-colorize-quote): New function. (irchat-highlight-turn-on-font-lock): Add buffer locality to some members of `after-change-hook'. * Makefile (install): Do not depend on `dcc'. 1999-05-05 Daiki Ueno * irchat-handle.el (irchat-handle-part-msg): Call `irchat-channel-part' and `irchat-nick-part' exclusively. (irchat-handle-kick-msg): Likewise. * irchat-channel.el (irchat-channel-equal): New alias. (irchat-channel-member): Renamed from `irchat-channel-memberp'. (irchat-channel-join-internal): New function. (irchat-channel-part-internal): New function. * irchat-ctcp.el (irchat-ctcp-client-msg): Fix reply string. * irchat-minibuf.el (irchat-minibuffer-parse-modes): Completion fixed for ban pattern. * irchat-nick.el (irchat-nick-normalize): New macro. (irchat-nick-strip): New macro. (irchat-nick-parse-nick-after): New function. * irchat-handle.el (irchat-handle-silence-msg): New handler. 1999-05-04 Daiki Ueno * irchat-handle.el (irchat-handle-part-msg): Fix quotation of part message. * irchat-400.el: Fix unconsistent user data returned from pirc. (irchat-handle-442-msg): `ERR_NOTONCHANNEL'. (irchat-handle-443-msg): `ERR_USERONCHANNEL'. * irchat-misc.el (irchat-update-thischannel): Abolished. * irchat-commands.el (irchat-channel-virtual): Save matched data. (irchat-channel-real): Likewise. * irchat-300.el (irchat-handle-364-msg): `RPL_LINKS'. Fix regexp. (irchat-handle-333-msg): New hander for `RPL_TOPICWHOTIME'. (irchat-handle-namereply-msg): Abolished. (irchat-handle-whoreply-msg): Abolished. * irchat-000.el (irchat-handle-005-msg): `RPL_MAP'. Support for ircu server mapping facility. (irchat-handle-006-msg): New handler for `RPL_MAPMORE'. (irchat-handle-007-msg): New handler for `RPL_MAPEND'. 1999-05-03 Daiki Ueno * irchat-handle.el (irchat-handle-part-msg): Handle left message. * irchat-custom.el (irchat-connection-timeout): New variable. * irchat.el (irchat-accept-response): Add optional arg timeout. (irchat-accept-process-output): New function. (irchat-clear-system): Reset `irchat-timers-list-initialized-p'. (irchat-initialize-timers): Fix secs parameter. * irchat-xemacs.el (irchat-xemacs-run-at-time): New function. * irchat-compat.el (irchat-run-at-time): New alias. (irchat-cancel-timer): New alias. * irchat-commands.el (irchat-command-start-ison-timer): Abolished. (irchat-command-cancel-ison-timer): Abolished. * irchat-timer.el: Removed. 1999-04-29 Daiki Ueno * irchat.el (irchat-initialize-timers): New function. * irchat-q-ccl.el (irchat-quote-ccl-decode-region): New function. (irchat-quote-ccl-encode-region): New function. * irchat-q-el.el (irchat-quote-el-decode-region): New function. (irchat-quote-el-encode-region): New function. * irchat-ctcp.el (irchat-complete-client): New macro. (irchat-complete-query): New macro. (irchat-command-client-time): New command. (irchat-ctcp-client-msg): Rename each *-msg-hook to *-hook. (irchat-minibuffer-complete-client-query): New function. * irchat-commands.el (irchat-command-activate-friends): Fix completion. * irchat-compat.el (filter-elements): Add `lisp-indent-function' property with value 2. 1999-04-28 Daiki Ueno * irchat-dcc.el (irchat-dcc-object): Implement as cl-struct. * irchat-compat.el (irchat-static-require): New macro. (irchat-static-require-if): New macro. (irchat-static-defun-if): New macro. * Liece 1.2.8.22. 1999-04-27 Daiki Ueno * README-styles.ja, TODO.ja, sample.dot.liece.ja: Removed. 1999-04-26 Daiki Ueno * irchat-inlines.el: Require irchat-setup. * irchat-x-face.el: Use `static.el'. * irchat-handle.el (irchat-handle-join-msg): Set user-at-host information after calling `irchat-nick-join'. * irchat-globals.el (irchat-default-channel-candidate): New variable. 1999-04-22 Daiki Ueno * irchat-handle.el (irchat-handle-324-msg): Fix regexp. 1999-04-16 Daiki Ueno * irchat-xemacs.el: Add hooks to hide modelines. 1999-04-12 Daiki Ueno * irchat.el (irchat-refresh-windows): New function. * irchat-300.el: Remove all occurrences of `matching-substring'. (irchat-handle-352-msg): Do not pick-up channel buffer. * irchat-config.el, irchat-modules.el: New files. 1999-04-07 Daiki Ueno * irchat.el (irchat-switch-to-channel-no-*): Use `dotimes' on the definitions of themselves. * irchat-vars.el (irchat-ignore-spec-convert): Fix tag. 1999-04-06 Daiki Ueno * dcc.c (send_file): Use `get_address_externally'. (chat_listen): Likewise. 1999-04-05 Daiki Ueno * getaddrinfo.c: Include `stdlib.h'. 1999-04-04 Daiki Ueno * Liece 1.2.8.21. * irchat-handle.el (irchat-handle-mode-msg): Fix channel mode parser. * irchat-commands.el (irchat-command-ban-kick): New command. (irchat-command-ban): New command. * irchat-ctcp.el (irchat-ctcp-version-msg): Eliminate the client version string. (irchat-client-version-notice): Fix regexp. (irchat-client-version-insert): New function. * irchat-misc.el (irchat-repair-crlf): Fixed. 1999-04-01 Daiki Ueno * tcp.c (NI_MAXHOST): Add check if it has been already defined. * irchat.el (irchat-command-keys): Bind `C-c C-j'. 1999-03-31 Daiki Ueno * irchat-handle.el (irchat-handle-mode-msg): Fix regexp. * irchat-commands.el (irchat-command-finger): Add prefix arg. 1999-03-30 Daiki Ueno * irchat-filter.el (irchat-handle-message): Fix regexp. * irchat-handle.el (irchat-handle-join-msg): Fix regexp. (irchat-handle-nick-msg): Fix regexp. 1999-03-24 Daiki Ueno * irchat-commands.el (irchat-command-finger): Specify nick twice. * liece-faq.texinfo: Fix URI of APEL's ftp sites. 1999-03-17 Daiki Ueno * Liece 1.2.8.20. * irchat-crypt.el (with-irchat-encryption): New macro. (with-irchat-decryption): New macro. * irchat-compat.el (valid-plist-p): Fixed. * irchat-tcp.el (irchat-tcp-default-connection-type): Renamed from `irchat-tcp-connection-type'. (irchat-open-network-stream-as-binary): Add optional arg `type'. (irchat-open-network-stream): Likewise. * irchat-vars.el (irchat-server-alist): Add `:prescript' and `:type' keywords. 1999-03-16 Daiki Ueno * irchat-compat.el: Require `pcustom'. (point-at-bol): Abolished. Use `line-beginning-position'. (point-at-eol): Abolished. Use `line-end-position'. * tcp.c: New file. * irchat-tcp.el: New file; TCP/IP emulation using external program. * irchat-compat.el (read-passwd): New function to keep compatibility. (passwd-echo): New variable to keep compatibility. * irchat-commands.el (irchat-command-who): Confirm really send WHO command with no arguments. (irchat-command-list): Likewise. (irchat-command-names): Likewise. * irchat-misc.el (irchat-set-crypt-indicator): Activate crypt mode also in private mode. (irchat-read-passwd): Abolished. Use `read-passwd'. * irchat-crypt.el (irchat-crypt-maybe-encrypt-message): Renamed from `irchat-crypt-with-encrypt-message'. (irchat-crypt-maybe-decrypt-message): Likewise. 1999-03-15 Daiki Ueno * irchat-handle.el (irchat-handle-join-msg): Fix regexp. * irchat-hilight.el (irchat-highlight-maybe-hide-quote): Fixed. 1999-03-14 Daiki Ueno * Liece 1.2.8.19. * irchat-commands.el (irchat-command-poll-names): Check if `irchat-server-opened' returns t. (irchat-command-poll-friends): Likewise. * irchat-hilight.el (irchat-highlight-turn-on-font-lock): Remove all hooks before calling `turn-on-font-lock'. * irchat-compat.el (run-hook-with-args-until-success): Do not use `run-hook-with-args'. * irchat-filter.el (irchat-handle-message-2): Use `run-hook-with-args-until-success' instead of `run-hook-with-args'. * irchat-handle.el (irchat-handle-with-running-cleartext-hook): Use `run-hook-with-args-until-success' instead of `run-hook-with-args'. (irchat-handle-run-cleartext-hook): Likewise. (irchat-handle-run-hook-with-args): Likewise. * irchat-timer.el (irchat-start-timer): Use `run-at-time' with 1st argument 0 instead of nil. * irchat-ctcp.el (irchat-query-client-nick-maybe-change): Return with nil explicitly. * irchat-vars.el (irchat-service-spec): New widget. (irchat-service-spec-convert): New function; widget-converter. (irchat-server-spec): New widget. (irchat-server-spec-convert): New function; widget-converter. (irchat-ignore-spec): New widget. (irchat-ignore-spec-convert): New function; widget-converter. * irchat-url.el (irchat-command-browse-url): Use the URL added most recently, if `current-prefix' equals `-'. (irchat-url-browser-netscape): Do not bind the process buffer. * irchat-menu.el (irchat-menu-add-button): Add 3rd argument. 1999-03-13 Daiki Ueno * irchat-xemacs.el: Use extents instead of overlays. (irchat-xemacs-put-text-property): New function. (irchat-xemacs-get-text-property): New function. (irchat-xemacs-kill-all-overlays): New function. (irchat-xemacs-overlays-at): New function. * irchat-compat.el (irchat-make-overlay): New emulation function. (irchat-delete-overlay): Ditto. (irchat-overlay-put): Ditto. (irchat-move-overlay): Ditto. (irchat-overlay-end): Ditto. (irchat-overlay-get): Ditto. (irchat-overlays-at): Ditto. (irchat-kill-all-overlays): Ditto. 1999-03-12 Daiki Ueno * irchat-xemacs.el (irchat-toolbar-toggle-crypt): New function. (irchat-toolbar-icon-convert): New function; widget-converter. (irchat-toolbar-icon): New widget. (irchat-toolbar-icon-plist-get): New function. (irchat-toolbar-map-button-list): New function. (irchat-xemacs-setup-toolbar): Renamed from `irchat-xemacs-setup-toolbar-list'. (irchat-toolbar-setup-crypt-glyph): New function. (irchat-toolbar-toggle-crypt): New function. (irchat-use-toolbar): New customizable variable. * irchat-compat.el (irchat-put-text-property): Implemented as function. * irchat.el (irchat-after-load-startup-hook): New hook variable. * irchat-hilight.el (irchat-highlight-maybe-turn-on-font-lock): New function. * Liece 1.2.8.18. * irchat-channel.el (irchat-channel-create-buffer): Use `irchat-format-time-function'. * irchat-hilight.el: Use font-lock.el. 1999-03-11 Daiki Ueno * irchat-debug.el (irchat-debug-enter-handler): Moved from llhandler.el. (irchat-debug-leave-handler): Ditto. * llhandler.el (llhandler-debug-enter): Abolished. (llhandler-debug-leave): Abolished. * irchat-version.el (irchat-emacs-user-agent-value): New variable imported from `mime-edit-user-agent-value' of SEMI. (irchat-user-agent-value): New variable. (irchat-make-user-agent-string): Abolished. (irchat-make-emacs-user-agent-string): Abolished. (irchat-command-version): New command. * irchat-hilight.el (irchat-maybe-highlight-region): New function. (irchat-maybe-smiley-region): New function. (irchat-maybe-highlight-url-region): New function. (irchat-highlight-put-url-properties-region): New function. * irchat-ctcp.el: Add hooks in order to let `irchat-query-client-nick' follow the changes. (irchat-query-client-nick-maybe-change): New function. (irchat-query-client-nick-maybe-reset): New function. * irchat-url.el (irchat-url-gather-hook): New hook variable. (irchat-command-browse-url): Use `_'. (irchat-url-gather-urls-region): New function. (irchat-url-search-forward): New function. * irchat-compat.el (easy-menu-add-item): New alias. * irchat-xemacs.el (easy-menu-add-item): New advice. 1999-03-10 Tsunehiko Baba * dcc.c (main): Add cast against return value of basename(3). 1999-03-10 Daiki Ueno * irchat-menu.el (irchat-menu-url-menu): New variable. * Liece 1.2.8.17. * irchat-misc.el (irchat-compose-time-string): Renamed from `irchat-compose-servertimestring'. * irchat-compat.el (plist-get): New function for compatibility. * irchat-ctcp.el (irchat-client-time-notice): New handler. (irchat-ctcp-time-msg): Ditto. * irchat-minibuf.el (irchat-minibuffer-complete-channel-modes): Also display candidates when `irchat-minibuffer-parse-modes' returns 'flag. * irchat-400.el (irchat-handle-433-msg): `ERR_NICKNAMEINUSE'. Do grow-tail iteration on `irchat-real-nickname' only if `irchat-auto-iterate-nick' is specified. * irchat-vars.el (irchat-server-alist): Enable to specify keywords (:host, :service, :password, etc.). (irchat-auto-iterate-nick): New customizable variable. * irchat-menu.el (irchat-menu-add-url): New function. (irchat-command-mode-url-menu): New menu entry. * irchat.el (irchat): Do not ping to server. (irchat-open-server): Use new format of `irchat-server-alist'. 1999-03-02 Daiki Ueno * irchat-handle.el (irchat-handle-privmsglike-msg): Define as subst. * irchat-make.el (install-just-print-p): New function imported from APEL 9.13's `APEL-MK'. (config-irchat-package): Likewise. (compile-irchat-package): Likewise. (install-irchat-package): Likewise. (install-update-package-files): Likewise. (make-irchat-sample-files): New function imported from packaged version of Liece. (make-irchat-info-files): Ditto. * irchat-300.el (irchat-handle-366-msg): Do not update nicks when `irchat-353-nameslist' holds no element. 1999-03-01 Daiki Ueno * irchat-handle.el (irchat-handle-quit-msg, irchat-handle-mode-msg, irchat-handle-join-msg, irchat-handle-part-msg): Quote regexp. 1999-02-28 Daiki Ueno * irchat.el (irchat-clear-system): Fix backquotes. 1999-02-25 Daiki Ueno * irchat-300.el (irchat-handle-303-msg): Fix. Add check for empty reply. 1999-02-24 Daiki Ueno * irchat-handle.el (irchat-handle-notice-msg): Fix. Call handler with `funcall'. * irchat.el (irchat-channel-mode-map): Make keymap as sparse. (irchat-others-mode-map): Likewise. * irchat-commands.el (irchat-command-deactivate-friends): Fix argument. * Liece 1.2.8.16. * irchat-globals.el (irchat-who-expression): New variable. * irchat-misc.el (irchat-toggle-command-buffer-mode): Change `irchat-private-indicator'. * irchat-300.el (irchat-handle-315-msg): `RPL_ENDOFWHO'. Display `no matches found' message (irchat-handle-{322,323,353,366}-msg): Count iterations. * irchat.el (irchat-command-mode): Do not save `frame-title-format' twice. Use `irchat-current-channel' in place of `irchat-channel-indicator'. * llhandler.el (llhandler-debug-enter): New function. (llhandler-debug-leave): New function. (llhandler-define-handler): New macro. (llhandler-eval-args): Abolished. * irchat-crypt.el (irchat-encrypt-message): Encode messages. (irchat-decrypt-message): Likewise. Decode messages. (irchat-crypt-with-encrypted-message): Do not encode message which has type `cleartext'. 1999-02-23 Daiki Ueno * irchat-misc.el (irchat-send-pong): New macro. (irchat-increment-long-reply-count): New macro. (irchat-reset-long-reply-count): New macro. (irchat-check-long-reply-count): New macro. * irchat-globals.el (irchat-long-reply-count) New variable. (irchat-long-reply-max): New variable. * irchat-commands.el (irchat-command-save-vars): Fix. Set marker at output position. 1999-02-21 Daiki Ueno * irchat-300.el (irchat-handle-303-msg): Add differential IsON. * irchat-commands.el (irchat-command-start-ison-timer, irchat-command-cancel-ison-timer, irchat-command-activate-friends, irchat-command-deactivate-friends): Do completion case insensitively. * irchat-vars.el (irchat-saved-forms): Add symbol `irchat-friends' to be saved its value. 1999-02-20 Daiki Ueno * Liece 1.2.8.15. * irchat-filter.el (irchat-sentinel): Do not throw signal, just clear whole system. (irchat-sentinel-error): Ditto. * irchat-vars.el (irchat-friends): New user customizable variable. (irchat-poll-friends-interval): New user customizable variable. (irchat-poll-names-interval): New user customizable variable. * irchat-commands.el (irchat-command-poll-names): Renamed from `irchat-command-pollnames'; implemented as function. (irchat-command-keepalive): Implemented as function. (irchat-command-poll-friends): New function. (irchat-command-activate-friends): New command. (irchat-command-deactivate-friends): New command. * irchat-300.el (irchat-handle-331-msg): Call `irchat-set-channel-indicator'. (irchat-handle-332-msg): Ditto. * irchat-globals.el (irchat-channel-status-indicator): New variable; default value of `frame-title-format'. (irchat-friends-last): New variable. (irchat-frame-title-format-last): New variable. * irchat-misc.el (irchat-set-frame-title-format): Do not calculate `frame-title-format' directly. (irchat-maybe-update-channel-indicator): New macro. 1999-02-20 P.F.FrontJr. : * irchat-misc.el (irchat-set-channel-indicator): Display channel status on mode line. * irchat-vars.el (irchat-display-status-on-channel-indicator): New user customizable variable. 1999-02-15 Daiki Ueno * irchat.el (irchat-read-variables-files): Set alternative startup file as primary one. * irchat-timer.el (irchat-start-timer): Do not require `timer' or `itimer'; autoload timer functions. (irchat-cancel-timer): Ditto. 1999-02-14 Daiki Ueno * irchat-ck-ccl (irchat-ck-ccl): Remove. (irchat-ck-ccl-cj-to-ck-string): Use `ccl-execute-on-string'. (irchat-ck-ccl-ck-to-cj-string): Ditto. * irchat-xemacs.el (irchat-xemacs-setup-toolbar): New function. * irchat-menu.el (irchat-command-add-menus): New function; add menubar menus explicitly. * irchat-coding.el (irchat-coding-custom-detect-coding-region): New variable; set user customizable function to detect coding system. (irchat-coding-custom-detect-coding-string): Likewise. (irchat-detect-coding-string-tcljp): Transported from `tclKanjiUtil.c'; trivial encoding detection routine. (irchat-default-coding-system): Moved from `irchat-vars.el'. (irchat-default-mime-charset): Ditto. (irchat-detect-coding-system): Ditto. * crc32.el (crc32-region): Remove `mark-active'. * irchat-timer.el (irchat-cancel-timer): Fix for XEmacs's `itimer'. * Liece 1.2.8.14. * irchat-dcc.el (irchat-dcc-requests): Rename from `irchat-dcc-request-list'; implemented as actually a queue. * queue-m.el: New file; imported from elib. * irchat-filter.el (irchat-filter): Remove checking whether process output line contains LF; remove duplicated LF checking likewise; enclose with `save-match-data'. (irchat-handle-message): Add checking user-at-host cookie with restricted line. * irchat-window.el (irchat-window-functionp): Remove; use `irchat-functionp'. * irchat-channel.el (irchat-channel-get-nicks): Fix; apply car against each elements. 1999-02-13 Daiki Ueno * irchat-commands.el (irchat-command-mode+o, irchat-command-mode+v): Build completion list using `filter-elements'. * irchat-vars.el (irchat-exit-hook): Rename from `irchat-Exit-hook'. * irchat-inlines.el (irchat-functionp): New macro. * irchat-compat.el (mapvector): New macro. * irchat-misc.el (irchat-greet-author): Remove. (irchat-split-rest): Fix arguments. (irchat-completing-default-read): 3rd and later arguments become optional. (irchat-completing-sequential-read): Evaluate completion table consequently; Add optional argument `multiple-candidate', if this arg is non-nil always create new table with its initial state. * llhandler.el (llhandler-define-entry-point): Add debugging triger in frount of function definition. (llhandler-define-with-return): Ditto. (llhandler-define): Ditto. (llhandler-enter-format-string): New constant; for debugging use. (llhandler-leave-format-string): Ditto. (llhandler-eval-args): New macro. * irchat.el (irchat-open-server-internal): Use `open-network-stream-as-binary'. (irchat-startup-hook): Rename from `irchat-Startup-hook'. 1999-02-07 Daiki Ueno * Liece 1.2.8.13. * idea.el (idea-ecb-decrypt-string): Enclose Base64 decoded string with `string-as-unibyte'. (idea-cbc-decrypt-string): Ditto. * idea.el: Sync up with Irchat-980625-2. * crc32.el: Ditto. * irchat-300.el (irchat-handle-303-msg): Fix matched string. * irchat-handle.el (irchat-handle-privmsg-msg): Check whether private message has come from entirely outer. * irchat-filter.el (irchat-handle-message): Remove all occurence of CR out of inputs :( 1999-02-06 Daiki Ueno * irchat.el (irchat-read-variables-files): Save alternatively specified startup file name into `irchat-variables-files'. 1999-02-04 Daiki Ueno * irchat-dcc.el (irchat-command-dcc-accept): Remove destructive checking. * irchat-make.el: Do not use `add-to-list' for Emacs19. * irchat-nick.el (irchat-nick-replace): Fixed regexp. 1999-02-03 Daiki Ueno * irchat-coding.el (irchat-coding-detect-coding-region) (irchat-coding-detect-coding-string): New function. (irchat-coding-decode-mime-charset-region): Use above directly. (irchat-coding-decode-mime-charset-string): Ditto. 1999-02-02 Daiki Ueno * irchat-commands.el (irchat-command-who): Fixed setting `irchat-channel-alist. * Liece 1.2.8.12. * irchat-nick.el (irchat-nick-get-user-at-host): New macro. * irchat-compat.el (temp-minibuffer-message): New function. * irchat-minibuf.el: New file; custom minibuffer completion. * irchat.el (irchat-open-server-internal): Add check for dotless IP or IPv6 address representation. * irchat-channel.el (irchat-channel-set-voice): Replace with regexp. 1999-02-01 Daiki Ueno * irchat-300.el (irchat-handle-319-msg): Fixed channel conversion. * irchat-commands.el (irchat-command-modec): Fixed completion. (irchat-command-mode-o,irchat-command-mode+v,irchat-command-mode-v): Fix format string. * dcc.c (chat_listen): Print connection result. * irchat-dcc.el (irchat-command-dcc-chat-listen): Add dummy argument `chat' for compatibility. * irchat-channel.el (irchat-channel-remove-mode): Use `delq'. (irchat-nick-remove-mode): Ditto. * Liece 1.2.8.11. * irchat-menu.el (irchat-menu-popup-menu): Check whether XEmacs or not compile time. 1999-01-31 Daiki Ueno * irchat-compat.el (set-keymap-parents): New macro. * irchat-commands.el (irchat-command-join-channel): Add flag whether `irchat-command-buffer-mode' is toggled. (irchat-command-join-partner): Ditto. * irchat-300.el (irchat-count-words-from-string): Count postfix white spaces. * irchat-q-el.el: Splited from `irchat-ctcp.el'; binary data quotation in emacs-lisp. * irchat-q-ccl.el: Same functionality as above but implemented in Emacs CCL. * b64.el (b64-encode-string, b64-decode-string): Add autoload cookie. * irchat.el (irchat-channel-list-keys): New variable. (irchat-define-keys): Add lisp-mode indentation. (irchat-channel-mode-map, irchat-others-mode-map): Set `irchat-dialogue-mode-map' as its keymap parent. 1999-01-28 Daiki Ueno * Liece 1.2.8.10. * dcc.c: Rewritten but this is obsoleted. * irchat-commands.el (irchat-command-end-of-buffer): Renamed from `irchat-command-eod-buffer'; this works also in `irchat-{channel, others}-buffer-mode'. * dcc.ml (getaddr_ext): New function. * irchat-dcc.el (irchat-dcc-send-filter): Fix regexp. (irchat-dcc-add-to-process-alist): Add process key as symbol. (irchat-dcc-get-process-object): Likewise. (irchat-command-dcc-receive): Fixed arguments of `irchat-dcc-add-to-process-alist'. (irchat-command-dcc-send): Likewise. (irchat-command-dcc-accept): Fix typo. 1999-01-27 Daiki Ueno * irchat.el (irchat-others-mode-map): Add key binding of `irchat-command-tag-region' * irchat-commands.el (irchat-command-join-channel): Use `irchat-channel-memberp'. (irchat-command-modec): Make completion from supported mode list. (irchat-channel-real): Try match with `irchat-channel-conversion-map' case insensitively. (irchat-channel-virtual): Ditto. 1999-01-26 Daiki Ueno * irchat-globals.el (irchat-supported-channel-mode-alist): (irchat-supported-user-mode-alist): New variable * irchat-nick.el (irchat-nick-get-modes): New macro. (irchat-nick-add-mode): New macro. (irchat-nick-remove-mode): New macro. (irchat-nick-set-mode): New macro. * irchat-000.el (irchat-handle-004-msg): Save server supported modes. * Liece 1.2.8.9. * irchat-make.el: Add local copy of APEL to `load-path'. (autoload-irchat): New function to generate autoload file. * irchat.el (irchat-command-keys): Add key definition of `irchat-command-set-window-style' (C-c s). (irchat): Parse `irchat-variables-files' specified in command line. (irchat-read-variables-files): Add optional argument `file'. * irchat-window.el (irchat-window-set-default-style): Fallback style used when encountered an error at style-file loading time. * irchat-handle.el (irchat-handle-mode-msg): Gather channel modes correctly. * irchat-channel.el (irchat-channel-get-modes): New macro. (irchat-channel-set-mode): New macro. (irchat-channel-add-mode): New macro. (irchat-channel-remove-mode): New macro. * irchat-menu.el (irchat-menu-prepare-menus): Fix typo in `irchat-command-previous-channel'. (irchat-menu-IRC-menu): Add menu items. 1999-01-23 Daiki Ueno * irchat-misc.el (irchat-change-nick-of): Fixed. 1999-01-22 Daiki Ueno * llhandler.el: New file. * Liece 1.2.8.8. * irchat-handle.el (irchat-handler-defun-*): Abolished. (irchat-handler-defsubst-*): Abolished. (irchat-handler-obarray): New variable. (irchat-handle-error-msg): New handler. Handler API has been rewritten with `irchat-handler-obarray', which enables faster handler lookup from hash. 1999-01-21 Daiki Ueno * irchat-ctcp.el: Rewritten with new handler API. (irchat-ctcp-file-save-directory): New user variable. (irchat-client-message): New macro. (irchat-client-file-message): New macro. * irchat-vars.el (irchat-gather-channel-modes): New user variable. (irchat-*-buffer): Moved into `irchat-globals.el'. * irchat-misc.el: Require `invisible'. (irchat-remove-properties-region): Use `next-single-property-change' instead of `next-property-change'. (next-visible-point): Add advice to pass optional argument `limit'. (irchat-change-nick-of): Fixed. 1999-01-20 Daiki Ueno * irchat-compat.el (filter-elements): Renamed from `filtercar'. Rewritten as macro with referring to `dabbrev-filter-elements'. * defface.el (defface-set-face-inverse): New function. (defface-face-inverse): Ditto. (defface-set-face-bold): Abolished. Use `face-set-bold-p'. (defface-face-bold): Abolished. Use `face-bold-p'. (defface-set-face-italic): Abolished. Use `face-set-italic-p'. (defface-face-italic): Abolished. Use `face-italic-p'. 1999-01-19 Daiki Ueno * irchat-commands.el (irchat-command-tag-region): Renamed from `irchat-dialogue-tag-line'. Add removing 'face and 'invisible properties from text moved into kill ring. * sample.dot.liece{,.ja}: Fixed documentation about window configuration. * irchat-misc.el (irchat-pick-buffer): Assume that channel names are associated to channel buffers case insensitively. (irchat-remove-properties-region): New macro. 1999-01-18 Daiki Ueno * irchat-compat.el (keymap-accept-event-array): Abolished. * Liece 1.2.8.7. * irchat-misc.el (matching-substring): Became an alias for `match-string'. * irchat.el (irchat-open-server): Fixed. (irchat-open-server-internal): Fixed. Do not require `smiley'. 1999-01-17 Daiki Ueno * irchat-300.el (irchat-handle-364-msg): Fixed. * irchat-200.el (irchat-handle-213-msg): Fixed. * irchat-intl.el (irchat-intl-load-catalogue): Do not bind `lang' to `current-language-environment'. * irchat-window.el (irchat-configure-windows): Switch to `irchat-command-buffer' before calling function `irchat-window-configure-frame'. * irchat-timer.el: Enclose statement which has newly styled macros with `eval'. * irchat-compat.el (run-hook-with-args-until-success): New macro for compatibility. * irchat-misc.el (irchat-convert-received-input): New macro. No longer require `irchat-filter'. 1999-01-16 Daiki Ueno * irchat-caesar.el: Abolished. * irchat-compat.el (function-documentation): New macro. * irchat-commands.el (irchat-command-point-back-to-command-buffer): New command. Bind key to `c'. (irchat-command-caesar-line): Abolished. Use `mule-caesar-region'. * irchat-misc.el (irchat-is-message-ignored): Moved from `irchat.el'. (irchat-maybe-poll): Ditto. (irchat-set-crypt-indicator): Ditto. (irchat-get-buffer-create): Ditto. (irchat-hex-char-to-integer): Imported from `misty1.el'. (irchat-hex-string-to-integer): Ditto. 1999-01-15 Daiki Ueno * irchat.el (irchat-read-variables-files): New function. (irchat-command-read-variables-files): New alias to `irchat-read-variables-files'. (irchat-initialize-buffers): New wrapper function. (irchat-replace-internal): New macro. (irchat-insert-internal): New macro. * irchat-compat.el (ccl-enable-to-read-multibyte): New broken facility. (buffer-or-string-p): New macro. * irchat-misc.el (irchat-send-as-binary): New macro. (irchat-send): Add `string-as-unibyte' while checking length of string. (irchat-replace-in-string): Abolished. * irchat-ck-ccl.el: CCL version of `ck' to `cj' converter. * irchat-ck-el.el: Renamed from `irchat-hankana.el'. * irchat-make.el: irchat-make.el: Add checking whether CCL accepts `read-multibyte-character'. 1999-01-14 Daiki Ueno * irchat-misc.el (irchat-nickname): New macro. * irchat-window.el (irchat-configure-windows): Enclose calling function `irchat-window-configure-frame' with `save-excursion'. * irchat-crypt.el (irchat-crypt-with-decrypt-message): Renamed from `irchat-crypt-with-encrypted-message'. (irchat-crypt-with-encrypt-message): New macro. * irchat-commands.el (irchat-command-join-partner): Fixed. (irchat-command-timestamp): Fixed. (irchat-command-send-message): Fixed. (irchat-command-message): Fixed. (irchat-command-prepare-message-prefix): New macro. (irchat-command-prepare-own-message-prefix): New macro. * Liece 1.2.8.6. * irchat-channel.el (irchat-channel-join): Fixed. * irchat-url.el (irchat-url-prepare-browser-function): New macro. (irchat-url-command-browse-url): Add checking `irchat-url-browser-name' prior to `irchat-url-browser-function'. 1999-01-13 Daiki Ueno * README-styles.ja: New file. * irchat-channel.el (irchat-channel-change): Enclose with `save-excursion'. 1999-01-11 Daiki Ueno * irchat.el (irchat): Fixed bug in XEmacs toolbar specification. 1999-01-10 Daiki Ueno * irchat-nick.el (irchat-nick-get-joined-channels): New macro. * irchat-channel.el (irchat-channel-get-nicks): New macro. (irchat-channel-get-opers): Ditto. (irchat-channel-get-voices): Ditto. (irchat-channel-get-topic): Ditto. * styles/{top,bottom}: Fixed command buffer lines. * Liece 1.2.8.5. * irchat.el (irchat-insert): Remove checking "(featurep 'custom)". * defface.el: New file. 1999-01-09 Daiki Ueno * irchat-handle.el (irchat-handler-define-entry-point): New alias. (irchat-handler-defun-with-return): New macro. (irchat-handler-defsubst-with-return): New macro. * irchat-{000,200,300,400,500}.el: Rewritten with new handler API. * irchat-handle.el (irchat-handler-entry-point-defun): New macro. (irchat-handler-entry-point-defsubst): New macro. * irchat-handle.el (irchat-handle-with-running-cleartext-hook): Renamed from `irchat-handle-with-cleartext-hook'. (irchat-handle-run-cleartext-hook): Renamed from `irchat-handle-cleartext-hook'. 1999-01-08 Daiki Ueno * styles/top: New file. * irchat-misc.el (irchat-message): New macro. * Liece 1.2.8.4. * styles/{bottom,middle}: New file. * irchat-window.el (irchat-configure-windows): Moved from `irchat'. * irchat-window.el: New file for style-based window configuration. * irchat-nick.el (irchat-nick-replace): Fixed moving point to highlight mouse face. 1999-01-05 Daiki Ueno * irchat-nick.el (irchat-nick-update-region): Set point to mouse clicked position. * Liece 1.2.8.3. * irchat.el (irchat-nick-mode-map): Add popup menu. * irchat-menu.el (irchat-nick-popup-menu): New function. (irchat-menu-popup-menu): New macro. * irchat-intl.el (irchat-intl-get-msgstr-if): New macro. * irchat-nick.el (irchat-nick-update-region): New function. (irchat-nick-region-nicks): Moved from `irchat-xemacs'. (irchat-nick-region-opers): Ditto. (irchat-nick-region-voices): Ditto. * irchat-menu.el (irchat-menu-callback-*): Moved from `irchat-xemacs'. (irchat-menu-define-menus): Moved to defadviced block. * irchat-xemacs.el (irchat-xemacs-setup-menu): Shared `irchat-nick-update-region'. * irchat-channel.el (irchat-channel-set-operator): Fixed regexp. * irchat-nick.el (irchat-nick-replace): Fixed regexp. 1999-01-04 Daiki Ueno * irchat-nick.el (irchat-nick-replace): Fixed execution order. * irchat-nick.el (irchat-nick-replace): Fixed regexp. And enclose `save-restriction'. * irchat-menu.el: Add easymenu support. * Liece 1.2.8.2. * irchat-crypt.el (irchat-crypt-with-encrypted-message): New macro. * irchat-handle.el (irchat-handler-defsubst): New macro. (irchat-handler-defun): Ditto. (irchat-handler-return): Ditto. All handler routines are defined with new form. (irchat-handle-with-cleartext-hook): New macro. (irchat-handle-cleartext-hook): Ditto. (irchat-handle-run-hook-with-args): Ditto. Handler code eliminated by global jump. (irchat-handle-set-channel-prefix): New macro. (irchat-handle-set-dialogue-prefix): Ditto. (irchat-handle-set-private-prefix): Ditto. * irchat-misc.el (irchat-insert-change): New macro. (irchat-insert-notice): Ditto. (irchat-insert-broadcast): Ditto. (irchat-insert-wallops): Ditto. (irchat-insert-error): Ditto. (irchat-insert-info): Ditto. (irchat-insert-timestamp): Ditto. (irchat-insert-dcc): Ditto. (irchat-insert-client): Ditto. 1999-01-03 Daiki Ueno * irchat-commands.el (irchat-switch-to-channel-no): Fixed. * irchat-hilight.el (irchat-highlight-region): Check `irchat-display-prefix-tag'. * irchat-vars.el (irchat-display-prefix-tag): New variable. * irchat-hilight.el (irchat-highlight-hide-prefix-region): New function. * irchat-version.el (irchat-version-user-agent-style): Abolished. (liece-client-product): New variable. (liece-client-name): New macro. (liece-client-version-major): Ditto. (liece-client-version-minor): Ditto. (liece-client-version-beta): Ditto. (liece-client-version-alpha): Ditto. (liece-client-codename): Ditto. * irchat-version.el (irchat-make-emacs-user-agent-string): New function. * irchat.el (irchat-insert): Renamed from `irchat-w-insert'. (irchat-replace): Renamed from `irchat-w-replace'. * irchat-intl.el (irchat-intl-domain-to-mime-charset-alist): New variable. * irchat-intl.el (irchat-intl-parse-Content-Type): Do not use `mime-parse-Content-Type' when `mime-parse' is not loaded. * irchat.el: Remove extra calls of `suppress-keymap'. * irchat-compat.el: Remove all CL emulation. * Liece 1.2.8.1. * irchat-intl.el (irchat-intl-use-localized-messages): New variable. 1999-01-02 Daiki Ueno * irchat-intl.el (irchat-intl-parse-Content-Type): Parse "Content-Type:" header to recognize coding used in PO files. 1999-01-01 Daiki Ueno * irchat-intl.el (irchat-intl-domains-to-coding-system-alist): Abolished. * irchat-commands.el (irchat-command-find-timestamp): Regexp fixed. 1998-12-30 Daiki Ueno * Add experimental i18n feature. * po/ja.po: New file. * irchat-intl.el: New file. * irchat-ctcp.el (irchat-ctcp-msg): Message format fixed. * irchat-channel.el (irchat-channel-join): Fixed. (irchat-channel-create-buffer): Fixed. 1998-12-29 Daiki Ueno * irchat-commands.el (irchat-switch-to-channel{,-no}): Do not reconfigure windows. * TODO.ja: New file. * Liece 1.2.6.13/1.2.8.0. * irchat-commands.el (irchat-switch-to-channel): Fixed. (irchat-switch-to-channel-no): Fixed. * irchat-misc.el (irchat-toggle-command-buffer-mode): When hiding state of nick buffer is toggled, reconfigure windows every time. * irchat-handle.el (irchat-handle-join-msg): Check whether joined channel is modeless. * irchat-misc.el (irchat-channel-modeless-p): New macro. (irchat-channel-modeless-regexp): New variable. * irchat-handle.el (irchat-handle-{join,quit,mode,part}-msg): Compression of changes reworked. * irchat-vars.el (irchat-display-time): Rename from `irchat-print-time'. (irchat-time-prefix-regexp): Regexp for time prefix. * irchat-mail.el: Add autoloads instead of all requires (`gnus-msg', `sendmail', `mime-edit'). (irchat-mail-compose-with-mail): Add evals to silence byte-compiler. (irchat-command-mail-compose): Fix completion. * irchat-channel.el (irchat-channel-buffer-create): Rewritten as a macro. * irchat-nick.el (irchat-nick-buffer-create): Ditto. * irchat-compat.el: `<<' and `>>' are become aliases of lsh. * irchat.el: Rename `irchat-Select-keys' to `irchat-select-keys'. * sample.liece{,.ja}: Add sample setting of `irchat-startup-channel-list'. * irchat.el (irchat-command-keys): Bind `C-c b' and `C-c N b' to `irchat-command{,-nick}-scroll-down' (synced up with irchat-2.4jp24f). (irchat-nick-keys): Bind scrolling functions. * irchat.el (irchat-command-mode): Display `minor-mode-alist' on mode-line. * irchat-globals.el (irchat-obarray): Set initial array length to 1. * irchat.el: Remove preparation code of `irchat-obarray'. * liece-faq.texinfo: Change formatting style. 1998-12-10 Daiki Ueno * irchat-commands.el (irchat-command-nick-scroll-down): Add check whether `irchat-nick-buffer' is visible. (irchat-command-nick-scroll-up): Ditto. * irchat-commands.el (irchat-command-scroll-down): Add check whether `irchat-channel-buffer' is visible. (irchat-command-scroll-up): Ditto. 1998-12-09 Daiki Ueno * irchat-misc.el (irchat-set-channel-indicator): Add check for `irchat-display-frame-title'. * irchat.el (irchat-configure-windows): Bind `irchat-channel-buffer-mode' and `irchat-nick-buffer-mode' at the entry point. * irchat-channel.el (irchat-channel-switch-to-last): New macro. * Liece 1.2.6.12. * irchat-commands.el (irchat-channel-real): Fix spelling. (irchat-channel-virtual): Ditto. * irchat-channel.el (irchat-channel-switch-to-last): New function. * irchat-channel.el (irchat-channel-last): New macro. * irchat-misc.el (irchat-change-nick-of): Fixed. 1998-12-04 Daiki Ueno * irchat-misc.el (irchat-own-channel-message): (ircaht-own-private-message): Remove dialogue buffer from target buffers. * liece-faq.texinfo: Fix hook for auto invisible. 1998-12-03 Daiki Ueno * irchat-handle.el (irchat-pick-buffer): Moved to `irchat-misc.el'. * irchat-highlit.el (irchat-highlight-pattern-alist): Fix regexp for DCC chatting line. * irchat-commands.el (irchat-command-modec): Select target channel. * irchat-dcc.el (irchat-command-dcc-chat-listen): (irchat-command-dcc-chat-listen): Use `as-binary-process' block. * irchat.el (irchat-open-server-internal): Ditto. * irchat-vars.el (irchat-binary-coding-system): Abolished. * irchat.el (irchat-open-server-internal): Bind `file-coding-system-for-{read|write}' for Mule 2.3. * irchat.el: `irchat-switch-to-channel-no-*' registered automatically. 1998-12-02 Daiki Ueno * irchat-vars.el: Require `mcharset'. * Liece 1.2.6.11. * irchat-vars.el (irchat-default-mime-charset): New variable. * irchat-coding.el: Use `mcharset' instead of `{encode|decode}-coding-*'. (irchat-coding-encode-charset-region): (irchat-coding-encode-charset-string): New macro. * irchat-dcc.el (irchat-dcc-pop-request-object): Fixed. * irchat-compat.el (caar): New macro. * irchat-misc.el (irchat-repair-crlf): New function. * Liece 1.2.6.10. * irchat.el (irchat-dcc-map): New keymap. * irchat-dcc.el (irchat-command-dcc-accept): New function. (irchat-dcc-get-*): Access method for request object. (irchat-dcc-pop-request-object): New macro. * Liece 1.2.6.9. * irchat-dcc.el: Very experimental DCC chat support added. (irchat-command-dcc-chat-listen): New function. (irchat-command-dcc-chat-connect): Ditto. (irchat-dcc-chat-listen-filter): Ditto. (irchat-dcc-chat-connect-filter): Ditto. (irchat-dcc-chat-filter): Ditto. (irchat-dcc-channel-representation-format): New variable. * irchat-channel.el: Very experimental multiple server support added. (irchat-default-channel-representation-format): New variable. This is unified channel locater. Set default as "@+". (irchat-channel-parse-representation): New function. (irchat-channel-prepare-representation): Ditto. * irchat-misc.el (irchat-own-channel-message): New function. * irchat-misc.el (irchat-own-message): New macro. * dcc.ml: Explicitly return with code 0. * irchat-dcc.el (irchat-dcc-send-filter): Fixed. (irchat-dcc-receive-filter): Fixed. 1998-12-01 Daiki Ueno * irchat-vars.el (irchat-dcc-prefix): New variable. * irchat-compat.el (cdddr): New macro. * irchat-dcc.el (irchat-dcc-add-to-receive-list): New macro. (irchat-dcc-add-to-process-alist): Ditto. (irchat-dcc-get-process-object): Ditto. (irchat-dcc-sentinel): New sentinel function. (irchat-dcc-prepare-directory): New function. (irchat-ctcp-dcc-msg): Add handler for DCC chat. (irchat-command-dcc-send): Rewritten. (irchat-command-dcc-receive): Ditto. (irchat-command-dcc-list): Ditto. * Liece 1.2.6.8. * dcc.ml: New file. * naddr.mli: Ditto. * naddr.ml: Ditto. * irchat-misc.el (irchat-own-message): (irchat-own-private-message): Add check whether channel buffer has been created. * sample.dot.liece: Fix typo. * sample.dot.liece.ja: Ditto. * irchat-url.el (irchat-url-browser-netscape): Use builtin composer when encounted `mailto:'. * irchat-commands.el (irchat-dialogue-insert): Abolished. 1998-11-28 Daiki Ueno * irchat-misc.el (irchat-own-private-message): Check if `irchat-command-buffer-mode' is not 'chat. * Liece 1.2.6.7. * irchat-channel.el (irchat-channel-prepare-partner): Fixed for setting `irchat-current-chat-partner'. * irchat.el: Do not require `irchat-mail'. 1998-11-27 Daiki Ueno * irchat.el: Set default `truncate-lines'. 1998-11-26 Daiki Ueno * irchat-vars.el (irchat-display-frame-title): New variable. * Liece 1.2.6.6. * irchat-channel.el (irchat-command-toggle-channel-buffer-mode): Remove setting dirty flag. * irchat-nick.el (irchat-command-toggle-nick-buffer-mode): Ditto 1998-11-25 Daiki Ueno * irchat-mail.el: New file. * irchat-vars.el (irchat-convert-hankaku-katakana): New variable. * irchat-hankana.el: New file. * Liece 1.2.6.5. * irchat-300.el (irchat-handle-303-msg): Print come back messages for private conversation. * irchat-misc.el (irchat-set-channel-indicator): New macro. * irchat-handle.el (irchat-handle-nick-msg): Fixed channel indicator. * irchat.el (irchat-close-server): Set `irchat-server' to nil. * irchat-handle.el (irchat-handle-join-msg): Fixed for private conversation. * Add copylefts. 1998-11-23 Daiki Ueno * irchat-globals.el (irchat-ison-timer): New variable. * irchat-vars.el (irchat-ison-interval): New variable. * irchat-commands.el (irchat-command-set-ison-timer): New function. (irchat-command-cancel-ison-timer): Ditto. * irchat-misc.el (irchat-completing-sequential-read): New function. * Liece 1.2.6.4. * irchat-compat.el (irchat-button3): Moved into `eval-and-compile' enclosure. * irchat.el: Do not require alist. * irchat-handle.el (irchat-handle-quit-msg): Rewritten. * irchat-handle.el (irchat-handle-nick-msg): Handle nick message and reflect changes to private buffers. 1998-11-21 Daiki Ueno * Liece 1.2.6.3. * irchat-misc.el (irchat-channel-p): New macro. (irchat-toggle-command-buffer-mode): New wrapper function. * irchat.el (irchat-windows-reconfiguration-needed): Fixed predicate for nick buffer mode and channel list mode. * irchat.el (irchat-command-keys): Removed duplicated binding of `irchat-command-enter-message'(`\C-j' and `\M-\C-j'). 1998-11-19 Daiki Ueno * irchat-handle.el (irchat-handle-privmsg-msg): Fixed. * etc/ball.*.xpm: Remove background color in each XPM file (From Yasushi Shoji ). * sample.dot.liece: Add sample customizations of new feature. `irchat-channel-list-buffer-mode', `irchat-channel-list-window-width-percent', `irchat-auto-join-partner'. * irchat-filter.el (irchat-filter): Remove unreferenced binding. * irchat-handle.el (irchat-handle-privmsg-msg): Handle private message and join automatically. * Liece 1.2.6.2. * irchat-vars.el (irchat-auto-join-partner): New variable. (irchat-channel-list-window-width-percent): Ditto. * irchat-compat.el (irchat-button3): New variable. * irchat-channel.el (irchat-channel-push-button): New handler. (irchat-channel-list-insert): New function. (irchat-channel-prepare-partner): New function. * irchat-url.el (irchat-url-push-button): Search URL string around event line. * irchat.el (irchat-channel-list-mode): New major mode. (irchat-configure-windows): Fixed for channel list window. (irchat-channel-list-mode-map); New keymap. * All irchat-{`Command', `Nick', `Channel', `Others', `Crypt'}-* symbols renamed with uncapitalized one. 1998-11-16 Daiki Ueno * Liece 1.2.4.4. * irchat-filter.el: Do not require mcharset. * irchat-timer.el: Macro expression fixed (for Emacs19). * Liece 1.2.4.3/1.2.6.1. * irchat-vars.el (irchat-binary-coding-system): New variable. * irchat-coding.el: New file. * irchat-filter.el (irchat-run-message-hook-types): Abolished. (irchat-handle-message): Rewritten. (irchat-handle-message-2): Rewritten. 1998-11-15 Daiki Ueno * irchat.el (irchat-Dialogue-mode-map): (irchat-Channel-mode-map): (irchat-Others-mode-map): Add check whether array style keymap expression is acceptable. * liece-faq.texinfo: New FAQ added for older version of emacsen. * irchat-handle.el (irchat-handle-privmsg-msg): Rewritten. * irchat-200.el (irchat-handle-200-msgs): Channel mask regexp fixed. * irchat-300.el (irchat-handle-300-msgs): Ditto. * irchat-400.el (irchat-handle-400-msgs): Ditto. * sample.dot.liece: Add sample hook for auto invisible. * Liece 1.2.3.5. * irchat-vars.el (irchat-default-coding-system): Set default to 'iso-2022-jp. (irchat-detect-coding-system): New custom variable. * irchat-misc.el (irchat-send): Add code conversion with `encode-coding-region' . * irchat-filter.el (irchat-filter): Add coding-system detection. * irchat-compat.el (irchat-set-process-coding-system): (irchat-buffer-disable-undo): Abolished. (buffer-disable-undo): New macro. * defsubst.el: Removed. 1998-11-14 Daiki Ueno * irchat-ctcp.el (irchat-ccl-quote-decode): Fixed. 1998-11-13 Daiki Ueno * irchat-ctcp.el (ccl-cascade-write): (ccl-set-register-right): New broken facility. (irchat-ccl-quote-decode): Rewritten with checking broken CCL facilities. * irchat-timer.el (irchat-start-timer): Fixed macro expression for older versions of emacsen. * irchat-compat.el (defface): New macro for older versions of emacsen. 1998-11-12 Daiki Ueno * irchat-ctcp.el: Add CCL usability checking with `ccl-usable'. 1998-11-11 Daiki Ueno * irchat-version.el (irchat-make-user-agent-string): (irchat-make-version-string): Regexp fixed. * irchat-ctcp.el (irchat-ccl-quote-decode): (irchat-ccl-quote-encode): Check if module `pccl' exists. * sample.dot.liece: Renamed from sample.irchat3_vars.el. * irchat-version.el (liece-client-minor-version): Numbered as 1.2.3.3. (irchat-version-user-agent-style): Declaration revereted to `defvar' from `defcustom'. * Makefile: Removed `-lnsl'. 1998-10-20 Daiki Ueno * irchat-nick.el (irchat-Nick-update): Bug fixed in splitting 353 (NAMEREPLY) message. * irchat-inlines.el (list-to-assoclist): Rewritten. 1998-10-08 Daiki Ueno * irchat-xemacs.el (irchat-toolbar-spec-list): Replace `irchat-Command-push' and `irchat-Command-pop' with `irchat-Command-previous-channel' and `irchat-Command-next-channel'. (irchat-x-face-face-insert): Evaluate also when loaded. 1998-10-07 Daiki Ueno * irchat-crypt.el (base64-encode-string): Fixed autoload with `mel' to `mel-b' package. (base64-decode-string): Ditto. 1998-10-06 Daiki Ueno * irchat-xemacs.el (irchat-xemacs-splash-logo): Splash screen with "liece.xpm" on every loadup time. * irchat-version.el (liece-client-version): Numbered as 1.2.1. * irchat-x-face.el (irchat-x-face-face-insert): Display X-Face on each prefix line align middle. * irchat-debug.el: New file. 1998-10-02 Daiki Ueno * irchat.el (irchat-Debug-mode): New major mode for `irchat-Command-debug'. * liece-faq.texinfo: New file. * irchat-commands.el (irchat-Client-query-map): Key binding for `irchat-Command-client-x-face-from-minibuffer' substituted with `irchat-Command-client-x-face-from-xbm-file'. * irchat-compat.el (replace-in-string): New function from XEmacs subr.el. * irchat-x-face.el: New file. (irchat-x-face-insert): Now works properly with GNU Emacs. * irchat-xemacs.el (irchat-x-face-insert): New function. (irchat-x-face-encode): Ditto. * irchat-ctcp.el (irchat-ctcp-x-face-msg): X-Face query support. Now it works only with X-Face utility. * irchat-version.el (liece-client-version-beta): New variable. 1998-10-01 Daiki Ueno * irchat.el (irchat-clear-system): Restart now reworked. * irchat-make.el (config-irchat): Add check wheter APEL version is 9.0 or later. * irchat-ctcp.el (irchat-ctcp-version-msg): Rewritten with new style version string. * irchat-version.el (irchat-version-user-agent-style): New variable. (irchat-make-user-agent-string): New function. (irchat-make-client-version-string): Ditto. (irchat-make-version-string): Ditto. * irchat-make.el (config-irchat): Rewritten. * irchat-ctcp.el: Renamed from irchat-cta.el. (irchat-ccl-quote-cs): New coding system for file transfer. (irchat-ccl-quote-encode): New CCL program. (irchat-ccl-quote-decode): Ditto. (irchat-ctcp-msg): Hook checking code eliminated. (irchat-ctcp-client-msg): Ditto. 1998-09-30 Daiki Ueno * irchat-hilight.el (irchat-highlight-buffer): Add check whether there is point has * irchat-compat (irchat-get-text-property): Add signal handler for XEmacs extents. * irchat-commands.el: Require `irchat-dcc.el'. * Makefile: New rule for .texinfo to .info. * irchat-hilight.el (irchat-highlight-buffer): Bug fix for `irchat-highlight-pattern'. 1998-09-29 Daiki Ueno * irchat-make.el (install-irchat): Fixed usage of function install-files. * irchat-nick.el: Do not require widget wid-edit. * irchat-make.el (irchat-modules-to-compile): Added irchat-channel, irchat-nick to module list. * irchat-hilight.el (irchat-highlight-insert-with-mouse-face): Addded check whether function widget-create is bounded. * irchat-compat.el: Require cl. * Makefile: Require cl. Machine specific option removed. * irchat-commands.el (irchat-Command-send-message): New signal handler for `encode-coding-string' with unknown coding system. This encoding is needed when `irchat-crypt-mode-active-p' is non nil. * irchat.el: Renamed from irchat-main.el. * irchat-main.el: Removed. 1998-09-29 Daiki Ueno * irchat-crypt.el (irchat-read-passphrase): New alias. 1998-09-28 Daiki Ueno * irchat-make.el: New file. * irchat-compat.el: New file. * irchat-ja.texinfo: New file. * setpath.el: Removed. * irchat-url.el (irchat-url-button-push): New handler. * irchat-main.el (irchat-Select-map): New keymap. * irchat-filter.el: Added autoloads for entry points of 000, 200, 300, 400, 500 message handlers. * irchat-misc.el (irchat-greet-author): Abolished. * irchat-channel.el: Splitted from irchat-commands.el. * irchat-nick.el: Ditto. liece-2.0+0.20030527cvs/lisp/liece-filter.el0100644000175000017500000001271007163541613016143 0ustar bg66bg66;;; liece-filter.el --- Process filters for IRC process. ;; Copyright (C) 1998-2000 Daiki Ueno ;; Author: Daiki Ueno ;; Created: 1998-09-28 ;; Revised: 1998-11-25 ;; Keywords: IRC, liece ;; This file is part of Liece. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; ;;; Code: (require 'liece-inlines) (require 'liece-misc) (require 'liece-intl) (require 'liece-handler) (defvar liece-current-function nil) (defun* liece-handle-message (prefix message line) (let ((hook (intern (concat "liece-" message "-hook"))) (after-hook (intern (concat "liece-after-" message "-hook"))) (number (car (read-from-string message))) function) (if (run-hook-with-args-until-success hook prefix line) (return-from liece-handle-message)) (if (not (numberp number)) (setq function (liece-handler-find-function message '(prefix line) "generic")) (let ((base (format "%03d" (- number (mod number 100))))) (require (intern (concat "liece-" base)) nil 'noerror) (setq function (liece-handler-find-function message '(prefix line) base)) (or function (setq function (let ((default (concat "liece-handle-" base "-messages"))) `(lambda (prefix line) (funcall (intern ,default) ,message prefix line))))))) (if function (funcall function prefix line)) (run-hook-with-args after-hook prefix line))) (defun liece-parse-user-at-host () (let ((cookie (and (stringp liece-user-at-host) (> (length liece-user-at-host) 2) (string-to-char liece-user-at-host)))) (cond ((null cookie) (setq liece-user-at-host-type 'invalid)) ((or (eq cookie ?^) (eq cookie ?=)) (setq liece-user-at-host (substring liece-user-at-host 1) liece-user-at-host-type 'fake)) ((or (eq cookie ?~) (eq cookie ?-)) (setq liece-user-at-host (substring liece-user-at-host 1) liece-user-at-host-type 'not-verified)) ((eq cookie ?+) (setq liece-user-at-host (substring liece-user-at-host 1) liece-user-at-host-type 'ok)) (t (setq liece-user-at-host-type 'ok))))) (defun liece-parse-line (line) (let (prefix message) (when (or (string-match "^\\(:[^! ]*\\)!\\([^ ]*\\) +\\([^ ]+\\) +:?" line) (string-match "^\\(:[^ ]*\\)?\\(\\) *\\([^ ]+\\) +:?" line) (string-match "^\\(:[^! \t]*\\)!\\([^ \t]*\\) +\\([^ \t]+\\) +:?" line) (string-match "^\\(:[^ ]*\\)?\\(\\) *\\([^ \t]+\\) +:?" line)) (setq prefix (if (match-beginning 1) (substring (match-string 1 line) 1)) liece-user-at-host (match-string 2 line) message (downcase (match-string 3 line)) line (liece-coding-decode-charset-string (substring line (match-end 0)))) (liece-parse-user-at-host) (setq liece-current-function (list prefix message)) (liece-handle-message prefix message line) (setq liece-current-function '("" ""))))) (defun liece-filter (process output) "Filter function for IRC server process." (with-current-buffer (process-buffer process) (goto-char (point-max)) (insert (liece-convert-received-input output)) (goto-char (point-min)) (while (progn (end-of-line) (and (not (eobp)) (eq (char-after) ?\n))) (if (eq (char-after (1- (point))) ?\r) ; cut off preceding LF (delete-region (1- (point)) (point))) (liece-parse-line (buffer-substring (point-min) (point))) (delete-region (point-min) (progn (beginning-of-line 2) (point)))))) (defun liece-sentinel (proc status) "Sentinel function for Liece process." (cond ((or (not liece-server-process) (liece-server-opened))) ((not (or liece-reconnect-automagic liece-reconnect-with-password)) (if (process-id proc) (liece-sentinel-error proc status) (liece-message (_ "Connection closed. (%s)") (substring status 0 (1- (length status))))) (liece-close-server)) (liece-reconnect-with-password (liece)) (t (condition-case nil (progn (set-process-filter liece-server-process nil) (set-process-sentinel liece-server-process nil)) (wrong-type-argument nil)) (setq liece-server-process nil) (liece)))) (defun liece-sentinel-error (proc status) (if (not (string-match "^exited abnormally with code \\([0-9]+\\)" status)) (liece-message (_ "Connection closed. (%s)") (substring status 0 (1- (length status)))) (let ((status (string-to-int (match-string 1 status)))) (cond ((= 99 status) ;; unsupported command (liece-message (_ "Please use a newer \"%s\".") liece-dcc-program)) ((= 98 status) ;; bad argment number (liece-message (_ "Please use a newer \"%s\".") liece-dcc-program)) ((= 97 status) (liece-message (_ "Cannot connect to IRC server."))) (t (liece-message (_ "Server connection closed."))))))) (provide 'liece-filter) ;;; liece-filter.el ends here liece-2.0+0.20030527cvs/lisp/bitmap-stipple.el0100644000175000017500000000777607456376164016565 0ustar bg66bg66;;; bitmap-stipple.el --- display bitmap file using stipple. ;; Copyright (C) 1998-2000 Daiki Ueno ;; Author: Daiki Ueno ;; Created: 1999-05-30 ;; Keywords: bitmap, stipple ;; This file is not part of any package. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; ;;; Code: (defun bitmap-stipple-xbm-file-to-stipple (file) "Convert xbm FILE into icon format and return the list of spec and buffers." (with-temp-buffer (erase-buffer) (let ((case-fold-search t) width height ;;xbytes right margin ) (insert-file-contents file) (goto-char (point-min)) (or (re-search-forward "_width[\t ]+\\([0-9]+\\)" nil t) (error "!! Illegal xbm file format" (current-buffer))) (setq width (string-to-int (match-string 1)) ;;xbytes (/ (+ width 7) 8) ) (goto-char (point-min)) (or (re-search-forward "_height[\t ]+\\([0-9]+\\)" nil t) (error "!! Illegal xbm file format" (current-buffer))) (setq height (string-to-int (match-string 1))) (goto-char (point-min)) (re-search-forward "0x[0-9a-f][0-9a-f],") (delete-region (point-min) (match-beginning 0)) (goto-char (point-min)) (while (re-search-forward "[\n\r\t ,;}]" nil t) (replace-match "")) (goto-char (point-min)) (while (re-search-forward "0x" nil t) (replace-match "\\x" nil t)) (goto-char (point-min)) (insert "(" (number-to-string width) " " (number-to-string height) " \"") (goto-char (point-max)) (insert "\")") (goto-char (point-min)) (read (current-buffer))))) (if (fboundp 'frame-char-width) (defalias 'bitmap-stipple-frame-char-width 'frame-char-width) (defun bitmap-stipple-frame-char-width (&optional frame) "Width in pixels of characters in the font in frame FRAME. If FRAME is omitted, the selected frame is used. For a terminal screen, the value is always 1." (font-instance-width (face-font (find-face 'default) frame 'ascii)))) (if (fboundp 'frame-char-height) (defalias 'bitmap-stipple-frame-char-height 'frame-char-height) (defun bitmap-stipple-frame-char-width (&optional frame) "Height in pixels of a line in the font in frame FRAME. If FRAME is omitted, the selected frame is used. For a terminal frame, the value is always 1." (font-instance-height (face-font (find-face 'default) frame 'ascii)))) (defun bitmap-stipple-insert-pixmap (pixmap &optional center) "Insert PIXMAP in the current buffer. Optional argument CENTER specified, pixmap will be centered." (let (width height beg i) (or (facep 'bitmap-stipple-splash) (make-face 'bitmap-stipple-splash)) (setq width (/ (car pixmap) (bitmap-stipple-frame-char-width)) height (/ (cadr pixmap) (bitmap-stipple-frame-char-height))) (set-face-foreground 'bitmap-stipple-splash "red") (set-face-stipple 'bitmap-stipple-splash pixmap) (if center (insert-char ?\n height)) (setq i height) (while (> i 0) (setq beg (point)) (insert-char ? width) (set-text-properties beg (point) '(face bitmap-stipple-splash)) (insert "\n") (decf i)))) ;;;###autoload (defun bitmap-stipple-insert-xbm-file (file) "Insert xbm FILE at point." (interactive "fxbm file: ") (save-excursion (bitmap-stipple-insert-pixmap (bitmap-stipple-xbm-file-to-stipple file)))) (provide 'bitmap-stipple) ;;; bitmap-stipple.el ends here liece-2.0+0.20030527cvs/lisp/gettext.el0100644000175000017500000002255707467562473015313 0ustar bg66bg66;;; gettext.el --- GNU gettext interface ;; Copyright (C) 1999 Daiki Ueno ;; Author: Daiki Ueno ;; Created: 1999-09-10 ;; Keywords: i18n ;; This file is part of Liece. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; ;;; Code: (eval-when-compile (require 'cl)) (require 'mcharset) (require 'static) (require 'poem) (eval-when-compile (autoload 'mime-content-type-parameter "mime-parse") (autoload 'mime-read-Content-Type "mime-parse")) (static-if (fboundp 'string-to-list) (defalias 'gettext-string-to-list 'string-to-list) ;; Rely on `string-to-char-list' emulation is provided in poem. (defalias 'gettext-string-to-list 'string-to-char-list)) (defvar gettext-gmo-endian 1234) (defvar gettext-message-domain-to-catalog-alist nil) (defvar gettext-default-message-domain "emacs") (defvar gettext-default-mime-charset default-mime-charset) (defvar gettext-default-locale "C") (defconst gettext-msgid-regexp "msgid\\s-*\"") (defconst gettext-msgstr-regexp "msgstr\\s-*\"") (defmacro gettext-hex-char-to-integer (character) `(if (and (>= ,character ?0) (<= ,character ?9)) (- ,character ?0) (let ((ch (logior ,character 32))) (if (and (>= ch ?a) (<= ch ?f)) (- ch (- ?a 10)) (error "Invalid hex digit `%c'" ch))))) (defun gettext-hex-string-to-integer (hex-string) (let ((hex-num 0)) (while (not (equal hex-string "")) (setq hex-num (+ (* hex-num 16) (gettext-hex-char-to-integer (string-to-char hex-string))) hex-string (substring hex-string 1))) hex-num)) (defun gettext-gmo-read-32bit-word () (let ((word (string-to-char-list (buffer-substring (point) (+ (point) 4))))) (forward-char 4) (apply #'format "%02x%02x%02x%02x" (mapcar (lambda (ch) (logand 255 ch)) (if (= gettext-gmo-endian 1234) (nreverse word) word))))) (defmacro gettext-gmo-header-revision (header) `(aref header 0)) (defmacro gettext-gmo-header-nn (header) `(aref header 1)) (defmacro gettext-gmo-header-oo (header) `(aref header 2)) (defmacro gettext-gmo-header-tt (header) `(aref header 3)) (defmacro gettext-gmo-header-ss (header) `(aref header 4)) (defmacro gettext-gmo-header-hh (header) `(aref header 5)) (defmacro gettext-gmo-read-header () (cons 'vector (make-list 6 '(gettext-hex-string-to-integer (gettext-gmo-read-32bit-word))))) (defun gettext-gmo-collect-strings (nn) (let (strings pos len off) (dotimes (i nn) (setq len (gettext-hex-string-to-integer (gettext-gmo-read-32bit-word)) off (gettext-hex-string-to-integer (gettext-gmo-read-32bit-word)) pos (point)) (goto-char (1+ off)) (push (buffer-substring (point) (+ (point) len)) strings) (goto-char pos)) (nreverse strings))) (defun gettext-parse-Content-Type (&optional header) "Return the MIME charset of PO file." (with-temp-buffer (insert header) (if (require 'mime-parse nil 'noerror) (mime-content-type-parameter (mime-read-Content-Type) "charset") (goto-char (point-min)) (let ((case-fold-search t)) (if (re-search-forward "^\"Content-Type: *text/plain;[ \t]*charset=\\([^\\]+\\)" nil t) (find-mime-charset-by-charsets (list (buffer-substring (match-beginning 1) (match-end 1)))) gettext-default-mime-charset))))) (defun gettext-mapcar* (function &rest args) "Apply FUNCTION to successive cars of all ARGS. Return the list of results." (let (result) (while (not (memq nil args)) (push (apply function (mapcar #'car args)) result) (setq args (mapcar #'cdr args))) (nreverse result))) (defun gettext-load-message-catalogue (file) (with-temp-buffer (let (header strings charset gettext-obarray) (as-binary-input-file (insert-file-contents file) (goto-char (point-min)) (when (looking-at "\x95\x04\x12\xde") (setq gettext-gmo-endian 4321)) (forward-char 4) (setq header (gettext-gmo-read-header) strings (gettext-mapcar* #'cons (progn (goto-char (1+ (gettext-gmo-header-oo header))) (gettext-gmo-collect-strings (gettext-gmo-header-nn header))) (progn (goto-char (1+ (gettext-gmo-header-tt header))) (gettext-gmo-collect-strings (gettext-gmo-header-nn header)))) charset (or (gettext-parse-Content-Type (cdr (assoc "" strings))) 'x-ctext) gettext-obarray (make-vector (* 2 (gettext-gmo-header-nn header)) 0))) (dolist (oott strings) (set (intern (car oott) gettext-obarray) (decode-mime-charset-string (cdr oott) charset))) gettext-obarray))) (defun gettext-load-portable-message-catalogue (file) (with-temp-buffer (let (strings charset msgstr msgid state gettext-obarray) (as-binary-input-file (insert-file-contents file) (goto-char (point-min)) (while (not (eobp)) (cond ((looking-at gettext-msgid-regexp) (if (eq state 'msgstr) (push (cons msgid msgstr) strings)) (setq msgid (buffer-substring (match-end 0) (progn (end-of-line) (point)))) (when (string-match "\"\\s-*$" msgid) (setq msgid (substring msgid 0 (match-beginning 0)))) (setq state 'msgid)) ((looking-at gettext-msgstr-regexp) (setq msgstr (buffer-substring (match-end 0) (progn (end-of-line) (point)))) (when (string-match "\"\\s-*$" msgstr) (setq msgstr (substring msgstr 0 (match-beginning 0)))) (setq state 'msgstr)) ((looking-at "\\s-*\"") (let ((line (buffer-substring (match-end 0) (progn (end-of-line) (point))))) (when (string-match "\"\\s-*$" line) (setq line (substring line 0 (match-beginning 0)))) (set state (concat (symbol-value state) line))))) (beginning-of-line 2)) (if (eq state 'msgstr) (push (cons msgid msgstr) strings)) ;; Remove quotations (erase-buffer) (goto-char (point-min)) (insert "(setq strings '(\n") (dolist (oott strings) (insert (format "(\"%s\" . \"%s\")\n" (car oott) (cdr oott))) (insert "))")) (ignore-errors (eval-buffer)) (setq charset (or (gettext-parse-Content-Type (cdr (assoc "" strings))) 'x-ctext))) (dolist (oott strings) (set (intern (car oott) gettext-obarray) (decode-mime-charset-string (cdr oott) charset))) gettext-obarray))) (unless (featurep 'i18n3) (eval-and-compile (defun dgettext (domain string) "Look up STRING in the default message domain and return its translation. \[XEmacs I18N level 3 emulating function]" (let ((oott (assoc domain gettext-message-domain-to-catalog-alist))) (when (stringp (cdr oott)) (setcdr oott (gettext-load-message-catalogue (cdr oott)))) (or (symbol-value (intern-soft string (or (cdr oott) (make-vector 1 0)))) string)))) (defun gettext (string) "Look up STRING in the default message domain and return its translation. \[XEmacs I18N level 3 emulating function]" (dgettext gettext-default-message-domain string)) (defun bind-text-domain (domain pathname) "Associate a pathname with a message domain. Here's how the path to message files is constructed under SunOS 5.0: {pathname}/{LANG}/LC_MESSAGES/{domain}.mo \[XEmacs I18N level 3 emulating function]" (let* ((lang (or (getenv "LC_ALL") (getenv "LC_MESSAGES") (getenv "LANG") gettext-default-locale)) (language (progn (string-match "\\([^_.]+\\)\\(_[^.]+\\)?\\(\\.[^@]+\\)?" lang) (match-string 1 lang))) (territory (match-string 2 lang)) (code-set (match-string 3 lang)) (lang-path (if lang (delq nil (list (if (and territory code-set) (concat language territory code-set)) (if territory (concat language territory)) (if code-set (concat language code-set)) language)))) (file (concat domain ".mo")) catalog) (while (and (setq lang (car lang-path)) (setq catalog (expand-file-name file (concat pathname "/" lang "/LC_MESSAGES"))) (not (file-exists-p catalog))) (setq lang-path (cdr lang-path))) (when (file-exists-p catalog) ;;(file-exists-p (setq catalog (expand-file-name file pathname))) (push (cons domain catalog) gettext-message-domain-to-catalog-alist)))) (defun set-domain (domain) "Specify the domain used for translating messages in this source file. The domain declaration may only appear at top-level, and should precede all function and variable definitions. The presence of this declaration in a compiled file effectively sets the domain of all functions and variables which are defined in that file. \[XEmacs I18N level 3 emulating function]" (setq gettext-default-message-domain domain))) (provide 'gettext) ;;; gettext.el ends here liece-2.0+0.20030527cvs/lisp/liece-000.el0100644000175000017500000001241607664237766015201 0ustar bg66bg66;;; liece-000.el --- Handler routines for 000 numeric reply. ;; Copyright (C) 1998-2000 Daiki Ueno ;; Author: Daiki Ueno ;; Created: 1998-09-28 ;; Revised: 1998-01-26 ;; Keywords: IRC, liece ;; This file is part of Liece. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; ;;; Code: (eval-when-compile (require 'cl)) (eval-when-compile (require 'liece-inlines) (require 'liece-intl) (require 'liece-misc)) (require 'liece-version) (defun* liece-handle-000-messages (number prefix rest) (setq liece-nick-accepted 'ok) (or (string-match "[^ ]* \\([^ :]*\\) *\\([^ :]*\\) *:\\(.*\\)" rest) (return-from liece-handle-000-messages)) (let ((target1 (match-string 1 rest)) (target2 (match-string 2 rest)) (msg (match-string 3 rest))) (cond ((string-equal target1 "") (liece-insert liece-000-buffer (concat liece-info-prefix msg "\n"))) ((string-equal target2 "") (liece-insert liece-000-buffer (format "%s%s (%s)\n" liece-info-prefix msg target1))) (t (liece-insert liece-000-buffer (format "%s%s %s (%s)\n" liece-info-prefix target1 msg target2)))))) (defun* liece-handle-001-message (prefix rest) "RPL_WELCOME \"Welcome to the Internet Relay Network \"" (or (< 0 (length (setq rest (liece-split-line rest)))) (return-from liece-handle-001-message)) (let ((nick (car rest))) (setq liece-real-server-name prefix liece-real-nickname nick liece-real-userhost nil) (push (list liece-real-nickname) liece-nick-alist) (liece-send "USERHOST %s" liece-real-nickname) (liece-insert-info liece-000-buffer (format (_ "Welcome to the Internet Relay Chat world. Your nick is %s.\n") nick)))) (defun liece-handle-002-message (prefix rest) "RPL_YOURHOST \"Your host is , running version \"." (cond ((string-match "running version \\(.*\\)" rest) (liece-insert-info liece-000-buffer (format (_ "Your server is %s (version %s).\n") liece-real-server-name (match-string 1 rest)))) (t (liece-insert-info liece-000-buffer (format (_ "Your client version is %s.\n") (liece-version)))))) (defun liece-handle-003-message (prefix rest) "RPL_CREATED \"This server was created