-SUBDIRS = . dcc doc etc lisp
-EXTRA_DIST = sample.dot.emacs.in
-DISTCLEANFILES = sample.dot.emacs
+SUBDIRS = lisp dcc etc
-CVSROOT = :pserver:anonymous@cvs.m17n.org:/cvs/root
-if USE_TM
-ALL_LOCAL_TARGET = all-tm
-INSTALL_LOCAL_TARGET = install-tm
-CLEAN_LOCAL_TARGET = clean-tm
-else
-ALL_LOCAL_TARGET =
-INSTALL_LOCAL_TARGET =
-CLEAN_LOCAL_TARGET =
-endif
-
-if USE_PACKAGE
-ALL_TM_TARGET = package
-INSTALL_TM_TARGET = install-package
-else
-ALL_TM_TARGET =
-INSTALL_TM_TARGET = install
-endif
-
-CLEAN_TM_TARGET = clean
-
-if USE_CUSTOM_LISPDIR
-INSTALL_TM_MAKEFLAGS = LISPDIR=$(lispdir) VERSION_SPECIFIC_LISPDIR=$(lispdir)
-else
-INSTALL_TM_MAKEFLAGS =
-endif
-
-if USE_CUSTOM_PACKAGEDIR
-INSTALL_TM_MAKEFLAGS = PACKAGEDIR=$(packagedir)
-endif
-
-all-local: $(ALL_LOCAL_TARGET)
-
-sample.dot.emacs: sample.dot.emacs.in
- sed -e 's!@pkgdatadir@!$(pkgdatadir)!g' $< > $@
-
-install-data-local: $(INSTALL_LOCAL_TARGET)
-
-clean-local: $(CLEAN_LOCAL_TARGET)
-
-all-tm:
- @if grep ${CVSROOT} ${HOME}/.cvspass; then :; else \
- echo "${CVSROOT} A" >> ${HOME}/.cvspass; fi; \
- target=`echo $@ | sed s/-recursive//`; \
- if test -d apel; then :; else \
- cvs -d ${CVSROOT} -z3 checkout apel; fi; \
- if test -d flim; then :; else \
- cvs -d ${CVSROOT} -z3 checkout -r flim-1_13 flim; fi; \
- list='apel flim'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- ( cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) $(ALL_TM_TARGET) ) ; \
- done
-
-install-tm: all-tm
- @target=`echo $@ | sed s/-recursive//`; \
- list='apel flim'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- ( cd $$subdir && \
- $(MAKE) $(INSTALL_TM_MAKEFLAGS) $(INSTALL_TM_TARGET) ) ; \
+install-package package:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@) \
done
-
-clean-tm:
- @target=`echo $@ | sed s/-recursive//`; \
- list='apel flim'; for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- ( cd $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) $(CLEAN_TM_TARGET) ) ; \
- done
-
-AC_DEFUN(AM_PATH_LISPDIR,
- [dnl #
- dnl # Check Emacs
- dnl #
+AC_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, xemacs...]],
- [case "${withval}" in
- yes) EMACS= ;;
- no) AC_MSG_ERROR([emacs is not available]) ;;
- *) EMACS=${withval} ;;
- esac], EMACS=)
- if test "x$EMACS" = "xt" -o "x$EMACS" = x; then
- AC_PATH_PROGS(EMACS, emacs xemacs mule, no)
- else
- AC_MSG_CHECKING(for emacs)
- AC_MSG_RESULT($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
- dnl #
- dnl # Check Emacs directories
- dnl #
- AC_ARG_WITH(emacsdir,
- [ --with-emacsdir=EDIR Emacs program/data files in EDIR [guessed]],
- [case "${withval}" in
- yes) emacsdir=NONE ;;
- no) AC_MSG_ERROR(emacsdir is not available) ;;
- *) emacsdir=${withval} ;;
- esac], emacsdir=NONE)
- AC_MSG_CHECKING([where emacs files are in])
- AC_MSG_RESULT($emacsdir)
- AC_SUBST(emacsdir)
- dnl #
- dnl # Check Emacs site-lisp directories
- dnl #
- ac_cv_lispdir=no
AC_ARG_WITH(lispdir,
- [ --with-lispdir=DIR emacs lisp files in DIR [EDIR/site-lisp]],
- [case "${withval}" in
- yes) lispdir=NONE ;;
- no) AC_MSG_ERROR(lispdir is not available) ;;
- *) lispdir=${withval} ; ac_cv_lispdir=yes ;;
- esac], lispdir=NONE)
- AC_MSG_CHECKING([where .elc files should go])
- AC_MSG_RESULT($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)
- AM_CONDITIONAL(USE_CUSTOM_LISPDIR, test x$ac_cv_lispdir = xyes)
- dnl #
- dnl # Check whether install as XEmacs package
- dnl #
- AC_ARG_ENABLE(package,
- [ --enable-package install as XEmacs package [default=no]],,
- enable_package=no)
- AC_MSG_CHECKING([whether install as XEmacs package])
- if test "x$enable_package" = "xyes"; then
- AC_MSG_RESULT(yes)
- EMACS=xemacs
- dnl #
- dnl # Check XEmacs package directories
- dnl #
- ac_cv_packagedir=no
+])
+
+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} </dev/null >& 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} </dev/null 2>& 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} </dev/null 2>& 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 XEmacs package files in DIR [EDIR/packages]],
- [case "${withval}" in
- yes) packagedir=NONE ;;
- no) AC_MSG_ERROR(packagedir is not available) ;;
- *) packagedir=${withval} ; ac_cv_packagedir=yes ;;
- esac], packagedir=NONE)
- AC_MSG_CHECKING([where package files should go])
- if test "x$packagedir" = "xNONE"; then
- eval `$EMACS -batch -q -no-site-file -l ./lisp/liece-make.el \
- -f config-liece-package-directory`
- packagedir=$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
- AC_MSG_RESULT($packagedir)
- AC_SUBST(packagedir)
- pkgdatadir=${packagedir}/etc/${PACKAGE}
- infodir=${packagedir}/info
- AM_CONDITIONAL(USE_CUSTOM_PACKAGEDIR, test x$ac_cv_packagedir = xyes)
- else
- AC_MSG_RESULT(no)
+ else
+ PACKAGEDIR=
fi
- AC_SUBST(icondir)
- AC_SUBST(catalogdir)
- AC_SUBST(styledir)
-
- AM_CONDITIONAL(USE_PACKAGE, test x$enable_package = xyes)])
+ 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)])
-AC_INIT(lisp/liece.el)
+AC_INIT(configure.in)
+AC_PREREQ(2.13)
AM_INIT_AUTOMAKE(liece, 1.4.5)
AM_PATH_LISPDIR
AC_PROG_MAKE_SET
AC_PROG_RANLIB
-AC_CHECK_HEADERS(sys/select.h libgen.h socks.h netinet6/in6.h)
+AC_CHECK_HEADERS(sys/select.h libgen.h)
AC_CHECK_LIB(nsl, gethostbyname)
AC_CHECK_LIB(socket, socket)
-AC_CHECK_FUNCS(strtoul memmove basename getaddrinfo)
-
-AC_CHECK_TYPE(fd_set, int)
-
-dnl checking if the system supports ipv6 address space or not
-AC_CACHE_CHECK([for struct in6_addr], ac_cv_struct_in6_addr,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet6/in6.h>], [struct in6_addr v6; v6.s6_addr32[3];],
-ac_cv_struct_in6_addr=yes, ac_cv_struct_in6_addr=no)])
-test "x$ac_cv_struct_in6_addr" = "xyes" && AC_DEFINE(HAVE_IN6_ADDR)
-
-dnl checking if the system supports tcp over ipv6 support or not
-AC_CACHE_CHECK([for struct sockaddr_in6], ac_cv_struct_sockaddr_in6,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet6/in6.h>], [struct sockaddr_in6 v6; v6.sin6_addr;],
-ac_cv_struct_sockaddr_in6=yes, ac_cv_struct_sockaddr_in6=no)])
-test "x$ac_cv_struct_sockaddr_in6" = "xyes" && AC_DEFINE(HAVE_SOCKADDR_IN6)
-
-# Check compile with IPv6 support
-AC_MSG_CHECKING(whether we compile with IPv6)
-AC_ARG_ENABLE(ipv6, \
- [ --enable-ipv6 compile with IPv6 [default=no]],, \
- enable_ipv6=no)
-test "x$enable_ipv6" = "xyes" && AC_DEFINE(INET6)
-AC_MSG_RESULT($enable_ipv6)
-
-# Check whether to retrieve APEL/FLIM distribution.
-AC_MSG_CHECKING(whether we retrieve APEL/FLIM distribution via CVS)
-AC_ARG_ENABLE(tm, \
- [ --enable-tm retrieve APEL/FLIM distribution via CVS [default=no]],, \
- enable_tm=no)
-if test "x$enable_tm" = "xyes"; then
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-AM_CONDITIONAL(USE_TM, test x$enable_tm = xyes)
+AC_CHECK_FUNCS(strtoul memmove getaddrinfo)
+AC_CHECK_FUNC(getopt_long,,LIBOBJS="$LIBOBJS getopt.o getopt1.o")
+AC_REPLACE_FUNCS(basename)
+AC_CHECK_EMACS
+AC_PATH_LISPDIR
+AC_PATH_ETCDIR
+AC_PATH_PACKAGEDIR
AC_OUTPUT(Makefile \
lisp/Makefile \
dcc/Makefile \
-doc/Makefile \
-etc/Makefile)
+dnl doc/Makefile \
+etc/Makefile \
+etc/icons/Makefile \
+etc/po/Makefile \
+etc/styles/Makefile)
-## Process this file with automake to produce Makefile.in
-
DEFS = -I$(srcdir) -I$(top_srcdir) $(CFLAGS) @DEFS@
-LIBS = -L. -ldcc @LIBS@
+LIBS = @LIBOBJS@
+EXTRA_DIST = getopt.c getopt.h getopt1.c
CLEANFILES = ldcc ltcp
-noinst_LIBRARIES = libdcc.a
bin_PROGRAMS = ldcc ltcp
-libdcc_a_SOURCES = getopt1.c getopt.c getaddrinfo.c
-noinst_HEADERS = getopt.h getaddrinfo.h
-
-ltcp_SOURCES = tcp.c
+ltcp_SOURCES = tcp.c
ldcc_SOURCES = dcc.c
-#MLHDRS = naddr.mli
-#MLSRCS = naddr.ml dcc.ml
-#MLOBJS = $(MLSRCS:.ml=.cmo)
-#MLINTF = $(MLHDRS:.mli=.cmi)
-#EXTRA_ldcc_SOURCES = $(MLHDRS) $(MLSRCS)
-#ldcc_SOURCES = $(MLSRCS)
-#ldcc_COMPILE = @OCAMLC@
-#ldcc_LINK = $(OCAMLC) -custom unix.cma nums.cma str.cma
-#ldcc_LDFLAGS = -cclib -lunix -cclib -lnums -cclib -lstr -o ldcc
-
-#SUFFIXES = .ml .mli .cmo .cmi
-
-#$(MLOBJS): $(MLINTF)
-
-#.mli.cmi:
-# $(OCAMLC) -c $<
-
-#.ml.cmo:
-# $(OCAMLC) -c $<
+package: all
+install-package: package install
--- /dev/null
+/* 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 <config.h>
+#endif
+
+#include <string.h>
+
+#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;
+}
-/* This file is part of Liece.
- Copyright (C) 1998 Daiki Ueno <daiki@kake.info.waseda.ac.jp>
-
- Author: Daiki Ueno <daiki@kake.info.waseda.ac.jp>
- Created: 1998-09-28
- Revised: 1999-01-28
- Keywords: IRC, liece, DCC
-
- 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.
-*/
+/* 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 <sys/types.h>
#include <sys/time.h>
+++ /dev/null
-open Unix
-
-let usage prefix progname =
- String.concat "\n"
- (List.map (fun x -> (Printf.sprintf "%s: %s %s" prefix progname x))
- [ "send <port> <filename>";
- "receive <host> <port> <size> <filename>";
- "chat listen <port>";
- "chat connect <host> <port>" ])
-
-let buff = String.create 1024
-
-let print_exc exc =
- match exc with
- Unix_error (err, fun_name, arg) ->
- prerr_string "\"";
- prerr_string fun_name;
- prerr_string "\" failed";
- if String.length arg > 0 then
- begin
- prerr_string " on \""; prerr_string arg; prerr_string "\""; ()
- end;
- prerr_string ": ";
- prerr_endline (error_message err);
- flush Pervasives.stderr; ()
- | _ ->
- try Printexc.print raise exc with
- _ -> ()
-
-let accept_connection f s =
- let (t, addr) = accept s in
- f t; close t; ()
-
-let write_file filename size t =
- let fd =
- try openfile filename [ O_RDONLY ] 0 with
- _ -> Printf.eprintf "Open failed.\n"; flush Pervasives.stderr; exit 1
- in
- let (len, rlen) = ref 0, ref 0 in
- while len := read fd buff 0 (String.length buff); !len <> 0
- do
- let rec loop i =
- let j = i + write t buff i (!len - i) in
- if j == !len then () else loop j
- in
- loop 0;
- flush (out_channel_of_descr t);
- rlen := !rlen + !len;
- Printf.printf "DCC %s %d%% (%d/%d bytes) sent.\n"
- filename (100 * !rlen / size) !rlen size;
- flush Pervasives.stdout
- done;
- close fd; close t; ()
-
-let send_file port filename =
- try
- let host = gethostbyname (gethostname ()) in
- let haddr = string_of_inet_addr host.h_addr_list.(0) in
- let s = socket PF_INET SOCK_STREAM 0 in
- setsockopt s SO_REUSEADDR true;
- bind s (ADDR_INET (inet_addr_any, port));
- let port =
- match (getsockname s) with
- ADDR_INET (addr, port) -> port
- | _ -> port
- in
- listen s 1;
- let fd =
- try openfile filename [ O_RDONLY ] 0 with
- _ -> Printf.eprintf "Open failed.\n"; flush Pervasives.stderr; exit 1
- in
- let size = (fstat fd).st_size in
- let hl = (Hostlong.of_address_string haddr) in
- close fd;
- Printf.printf "DCC send %s %d %s %d\n"
- (Filename.basename filename) port (Hostlong.to_string hl) size;
- flush Pervasives.stdout;
- accept_connection (fun t -> write_file filename size t) s;
- with
- exc -> print_exc exc
-
-let read_file filename size t =
- let fd =
- try openfile filename [ O_WRONLY; O_CREAT ] 0o600 with
- _ -> Printf.eprintf "Open failed.\n"; flush Pervasives.stderr; exit 1
- in
- let (len, rlen) = ref 0, ref 0 in
- while len := read t buff 0 (String.length buff); !len <> 0
- do
- let _ = write fd buff 0 !len in
- flush (out_channel_of_descr fd);
- rlen := !rlen + !len;
- Printf.printf "DCC %s %d%% (%d/%d bytes) received.\n"
- filename (100 * !rlen / size) !rlen size;
- flush Pervasives.stdout
- done;
- close fd; close t
-
-let receive_file host port size filename =
- let s = socket PF_INET SOCK_STREAM 0 in
- let hl = Hostlong.of_string host in
- let inet_addr =
- inet_addr_of_string (Hostlong.to_address_string hl)
- in
- connect s (ADDR_INET (inet_addr, port));
- read_file filename size s; ()
-
-let chat_loop s =
- let sel = ref [s; stdin] in
- while !sel <> [] do
- let (l, _, _) =
- try
- select !sel [] [] (-1.0)
- with
- _ -> exit 0
- in
- List.iter
- (fun x ->
- let (rfd, wfd) =
- if x == s then
- (s, stdout)
- else if x == stdin then
- (stdin, s)
- else
- (stdin, stdout)
- in
- let len = ref 0
- in
- len := read rfd buff 0 (String.length buff);
- if !len == 0 then
- begin try shutdown wfd SHUTDOWN_SEND; () with
- _ -> exit 0
- end
- else
- begin
- let rec loop i =
- let j = i + write wfd buff i (!len - i) in
- if j == !len then () else loop j
- in
- loop 0;
- flush (out_channel_of_descr wfd)
- end;
- ())
- l
- done
-
-let chat_listen port =
- let host = gethostbyname (gethostname ()) in
- let haddr = string_of_inet_addr host.h_addr_list.(0) in
- let s = socket PF_INET SOCK_STREAM 0 in
- setsockopt s SO_REUSEADDR true;
- bind s (ADDR_INET (inet_addr_any, port));
- let port =
- match (getsockname s) with
- ADDR_INET (addr, port) -> port
- | _ -> port
- in
- let hl = Hostlong.of_address_string haddr in
- listen s 1;
- Printf.printf "DCC chat %s %d\n" (Hostlong.to_string hl) port;
- flush Pervasives.stdout;
- accept_connection
- (fun t ->
- Printf.printf "DCC chat established\n";
- flush Pervasives.stdout;
- chat_loop t) s; ()
-
-let chat_connect host port =
- let s = socket PF_INET SOCK_STREAM 0 in
- let hl = Hostlong.of_string host in
- let inet_addr =
- inet_addr_of_string (Hostlong.to_address_string hl)
- in
- connect s (ADDR_INET (inet_addr, port));
- Printf.printf "DCC chat established\n";
- flush Pervasives.stdout;
- chat_loop s; ()
-
-let getaddr_ext server =
- let addr =
- try (gethostbyname server).h_addr_list.(0) with
- _ -> inet_addr_of_string "198.41.0.4"
- and port = 7 in
- let s = socket PF_INET SOCK_DGRAM 0 in
- connect s (ADDR_INET (addr, port));
- match (getsockname s) with
- ADDR_INET (addr, port) -> addr
- | _ -> raise Not_found
-
-let main () =
- let a = ref [] in
- let usage = usage "Usage" (Filename.basename Sys.argv.(0)) in
- let speclist = [] in
- Arg.parse speclist (fun x -> a := !a @ [x]) usage;
- begin match !a with
- "send" :: [ port; filename ] ->
- let port =
- try int_of_string port with
- _ -> Arg.usage speclist usage; exit 1
- in
- send_file port filename;
- exit 0; ()
- | "receive" :: [ host; port; size; filename ] ->
- let (port, size) =
- try
- int_of_string port,
- int_of_string size
- with
- _ -> Arg.usage speclist usage; exit 1
- in
- receive_file host port size filename;
- exit 0; ()
- | "chat" :: [ "listen"; port ] ->
- let port =
- try
- int_of_string port
- with
- _ -> Arg.usage speclist usage; exit 1
- in
- chat_listen port;
- exit 0; ()
- | "chat" :: [ "connect"; host; port ] ->
- let port =
- try
- int_of_string port
- with
- _ -> Arg.usage speclist usage; exit 1
- in
- chat_connect host port;
- exit 0; ()
- | _ -> Arg.usage speclist usage; exit 1
- end
-
-let _ = Printexc.catch main ()
+++ /dev/null
-/*
- * getaddrinfo(2) emulation.
- * Copyright (C) 1988, 1989, 1992, 1993 Free Software Foundation, Inc.
-
- * Author: Daiki Ueno <daiki@kiss.kake.info.waseda.ac.jp>
-
-This file is not part of any package.
-
-GNU Emacs is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Emacs is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
- */
-
-#ifndef HAVE_GETADDRINFO
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <netinet/in.h>
-
-#ifdef HAVE_NETINET6_IN6_H
-# include <netinet6/in6.h>
-#endif /* HAVE_NETINET6_IN6_H */
-
-#include "getaddrinfo.h"
-
-int getaddrinfo (hostname, servname, hints, res)
- const char *hostname;
- const char *servname;
- const struct addrinfo *hints;
- struct addrinfo **res;
-{
- struct hostent *host = NULL;
- struct servent *serv = NULL;
- struct protoent *proto;
- int port = 0;
-
-#if (defined (HAVE_SOCKADDR_IN6) && defined (INET6))
- struct sockaddr_in6 *sin =
- (struct sockaddr_in6 *) calloc (1, sizeof (struct sockaddr_in6));
-#else /* (defined (HAVE_SOCKADDR_IN6) && defined (INET6)) */
- struct sockaddr_in *sin =
- (struct sockaddr_in *) calloc (1, sizeof (struct sockaddr_in));
-#endif /* !(defined (HAVE_SOCKADDR_IN6) && defined (INET6)) */
-
- struct addrinfo *ai = *res =
- (struct addrinfo *) calloc (1, sizeof (struct addrinfo));
-
- if ((~ hints->ai_flags & AI_PASSIVE) && hostname &&
- (host = gethostbyname (hostname)) == NULL) {
- perror ("gethostbyname");
- return EAI_NONAME;
- }
-
- if (hints->ai_protocol &&
- (proto = getprotobynumber (hints->ai_protocol)) == NULL) {
- perror ("getprotobynumber");
- return EAI_NONAME;
- }
-
- if (servname)
- if (isdigit (servname[0]))
- port = atoi (servname);
- else {
- if ((serv = getservbyname (servname, proto->p_name)) == NULL) {
- perror ("getservbyname");
- return EAI_NONAME;
- }
- port = serv->s_port;
- }
-
-#if (defined (HAVE_SOCKADDR_IN6) && defined (INET6))
- if (host)
- memcpy (&sin->sin6_addr, host->h_addr, host->h_length);
- sin->sin6_port = htons (port);
-#else /* (defined (HAVE_SOCKADDR_IN6) && defined (INET6)) */
- if (host)
- memcpy (&sin->sin_addr, host->h_addr, host->h_length);
- sin->sin_port = htons (port);
-#endif /* !(defined (HAVE_SOCKADDR_IN6) && defined (INET6)) */
-
- if (hints->ai_family == AF_UNSPEC)
- ai->ai_family = host->h_addrtype;
- else
- ai->ai_family = hints->ai_family;
-#if (defined (HAVE_SOCKADDR_IN6) && defined (INET6))
- sin->sin6_family = ai->ai_family;
-#else /* (defined (HAVE_SOCKADDR_IN6) && defined (INET6)) */
- sin->sin_family = ai->ai_family;
-#endif /* !(defined (HAVE_SOCKADDR_IN6) && defined (INET6)) */
-
- ai->ai_protocol = hints->ai_protocol;
- ai->ai_socktype = hints->ai_socktype;
- ai->ai_addrlen = sizeof (*sin);
- ai->ai_addr = (struct sockaddr *)sin;
-
- return 0;
-}
-
-void freeaddrinfo (ai)
- struct addrinfo *ai;
-{
- struct addrinfo *p;
-
- while (ai != NULL) {
- p = ai;
- ai = ai->ai_next;
- free (p);
- }
-}
-
-#endif /* HAVE_GETADDRINFO */
+++ /dev/null
-/*
- * getaddrinfo(2) emulation.
- * Copyright (C) 1988, 1989, 1992, 1993 Free Software Foundation, Inc.
-
- * Author: Daiki Ueno <daiki@kiss.kake.info.waseda.ac.jp>
-
-This file is not part of any package.
-
-GNU Emacs is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Emacs is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
- */
-
-struct addrinfo {
- int ai_flags;
- int ai_family;
- int ai_socktype;
- int ai_protocol;
- size_t ai_addrlen;
- char *ai_canonname;
- struct sockaddr *ai_addr;
- struct addrinfo *ai_next;
-};
-
-/* Possible values for `ai_flags' field in `addrinfo' structure. */
-# define AI_PASSIVE 1 /* Socket address is intended for `bind'. */
-# define AI_CANONNAME 2 /* Request for canonical name. */
-# define AI_NUMERICHOST 3 /* Don't use name resolution. */
-
-/* Error values for `getaddrinfo' function. */
-#define EAI_BADFLAGS -1 /* Invalid value for `ai_flags' field. */
-#define EAI_NONAME -2 /* NAME or SERVICE is unknown. */
-#define EAI_AGAIN -3 /* Temporary failure in name resolution. */
-#define EAI_FAIL -4 /* Non-recoverable failure in name res. */
-#define EAI_NODATA -5 /* No address associated with NAME. */
-#define EAI_FAMILY -6 /* `ai_family' not supported. */
-#define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */
-#define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */
-#define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */
-#define EAI_MEMORY -10 /* Memory allocation failure. */
-#define EAI_SYSTEM -11 /* System error returned in `errno'. */
-
-#define NI_MAXHOST 1025
-#define NI_MAXSERV 32
-
-#define NI_NUMERICHOST 1 /* Don't try to look up hostname. */
-#define NI_NUMERICSERV 2 /* Don't convert port number to name. */
-#define NI_NOFQDN 4 /* Only return nodename portion. */
-#define NI_NAMEREQD 8 /* Don't return numeric addresses. */
-#define NI_DGRAM 16 /* Look up UDP service rather than TCP. */
-
-extern int getaddrinfo (const char *, const char *, const struct addrinfo *,
- struct addrinfo **);
-
-extern void freeaddrinfo (struct addrinfo *ai);
-
-
-
+++ /dev/null
-type t = int32
-
-let address_regexp =
- let octet_regexp_string = "\([0-9][0-9]?[0-9]?\)" in
- let address_regexp_string =
- octet_regexp_string ^ "\." ^ octet_regexp_string ^ "\." ^
- octet_regexp_string ^ "\." ^ octet_regexp_string
- in
- Str.regexp ("^" ^ address_regexp_string ^ "$")
-
-let of_int32 = function n -> n
-
-let to_int32 = function n -> n
-
-let of_string = Int32.of_string
-
-let to_string = Int32.to_string
-
-let of_address_string string =
- let n = ref Int32.zero in
- if (Str.string_match address_regexp string 0) then
- for i = 1 to 4 do
- let octet = Int32.of_string (Str.matched_group i string) in
- n := Int32.logor !n (Int32.shift_left octet (8 * (3 - i)))
- done
- else
- failwith "hostlong_of_string";
- !n
-
-let to_address_string n =
- let octets = ref [] in
- let octet_mask = Int32.of_int 0xff in
- for i = 0 to 3 do
- let octet =
- Int32.logand octet_mask (Int32.shift_right_logical n (i * 8))
- in
- octets := (Int32.to_string octet) :: !octets
- done;
- String.concat "." !octets
+++ /dev/null
-type t
-
-val of_int32 : int32 -> t
- (* Convert the given 32-bit integer (type [int32]) to a hostlong
- (type [Hostlong.t]). *)
-val to_int32 : t -> int32
- (* Convert the given hostlong (type [Hostlong.t]) to a 32-bit integer
- (type [int32]). *)
-
-val of_string : string -> t
- (* Convert the given string to a hostlong (type [Hostlong.t]). *)
-
-val to_string : t -> string
- (* Return the string representation of its argument,
- in signed decimal. *)
-
-val of_address_string : string -> t
- (* Convert the given string to a hostlong (type [Hostlong.t]). *)
-
-val to_address_string : t -> string
- (* Return the string representation of its argument,
- in signed decimal. *)
-/*
- * TCP/IP stream emulation for GNU Emacs.
+/* tcp.c - TCP/IP stream emulation for GNU Emacs.
* Copyright (C) 1988, 1989, 1992, 1993 Free Software Foundation, Inc.
-
- * Author: Masanobu Umeda <umerin@mse.kyutech.ac.jp>
- * Daiki Ueno <daiki@kiss.kake.info.waseda.ac.jp>
-
-This file is part of GNU Emacs.
-
-GNU Emacs is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Emacs is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
+ * 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 <umerin@mse.kyutech.ac.jp>. */
#include <sys/types.h>
#include <sys/time.h>
#define _GNU_SOURCE
#include <getopt.h>
-#ifdef HAVE_SOCKS_H
-#include <socks.h>
-#endif
-
-#ifndef HAVE_GETADDRINFO
-#include "getaddrinfo.h"
-#endif /* !HAVE_GETADDRINFO */
-
#ifdef HAVE_BASENAME
# ifdef HAVE_LIBGEN_H
# include <libgen.h>
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 family, port;
+ int port;
fd_set *readfds, *writefds;
int server, emacsIn = fileno (stdin), emacsOut = fileno (stdout);
char buffer[1024], *retry;
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}
- };
+ 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;
+ 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;
+ switch (c)
+ {
+ case 'v':
+ version ();
+ exit (1);
+ break;
+ case 'h':
+ usage ();
+ exit (1);
+ break;
+ default:
+ break;
+ }
}
- }
if (argc < 2)
{
if (argc >= 3)
service = argv[2];
- if ((proto = getprotobyname ("tcp")) == NULL) {
- perror ("getprotobyname");
- exit (1);
- }
-
+ 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);
- }
-
- if ((server = socket (in->ai_family, in->ai_socktype, 0)) < 0) {
- perror ("socket");
- exit (1);
- }
-
- if (setsockopt (server, SOL_SOCKET, SO_REUSEADDR,
- (const char *) &false, sizeof (false))) {
- perror ("setsockopt");
- exit (1);
- }
-
- if (connect (server, in->ai_addr, in->ai_addrlen) < 0) {
- perror ("connect");
- close (server);
- exit (1);
- }
+ 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);
*XlwMenu.partChannel.labelString: ¥Á¥ã¥ó¥Í¥ë¤òΥæ
*XlwMenu.goToNextChannel.labelString: ¼¡¤Î¥Á¥ã¥ó¥Í¥ë
*XlwMenu.goToPreviousChannel.labelString: Á°¤Î¥Á¥ã¥ó¥Í¥ë
-*wMenu.goToUnreadChannel.labelString: ̤ÆÉ¥Á¥ã¥ó¥Í¥ë
+*XlwMenu.goToUnreadChannel.labelString: ̤ÆÉ¥Á¥ã¥ó¥Í¥ë
*XlwMenu.rotateLeftChannels.labelString: ¥Á¥ã¥ó¥Í¥ë°ìÍ÷¤òº¸²ó¤ê¤Ë²óž
*XlwMenu.rotateRightChannels.labelString: ¥Á¥ã¥ó¥Í¥ë°ìÍ÷¤ò±¦²ó¤ê¤Ë²óž
*XlwMenu.inviteToThisChannel.labelString: ¤³¤Î¥Á¥ã¥ó¥Í¥ë¤Ë¾·ÂÔ
-ICONS = \
- icons/back.xpm \
- icons/ball.blank.xpm \
- icons/ball.gray.xpm \
- icons/ball.red.xpm \
- icons/naruto.blank.xpm \
- icons/naruto.gray.xpm \
- icons/naruto.red.xpm \
- icons/crypt.xpm \
- icons/encrypt.xpm \
- icons/forward.xpm \
- icons/home.xpm \
- icons/icons.gif \
- icons/icons.xpm \
- icons/liece-pointer.xbm \
- icons/liece-pointer.xpm \
- icons/key.xpm \
- icons/location.xpm \
- icons/pindown.xpm \
- icons/print.xpm \
- icons/reload.xpm \
- icons/search.xpm \
- icons/stop.xpm \
- icons/balloon.xpm
-CATALOGS = po/ja.po
-STYLES = \
- styles/bottom \
- styles/middle \
- styles/top
-TARGETS = $(ICONS) $(CATALOGS) $(STYLES)
+SUBDIRS = icons po styles
-if USE_PACKAGE
-icondir = $(packagedir)/etc/$(PACKAGE)/icons
-catalogdir = $(packagedir)/etc/$(PACKAGE)/po
-styledir = $(packagedir)/etc/$(PACKAGE)/styles
-else
-icondir = $(pkgdatadir)/icons
-catalogdir = $(pkgdatadir)/po
-styledir = $(pkgdatadir)/styles
-endif
+EXTRA_DIST = sample.dot.emacs.in
+DISTCLEANFILES = sample.dot.emacs
+pkgdata_DATA = sample.dot.emacs
+sample.dot.emacs: sample.dot.emacs.in
+ sed -e 's!@pkgdatadir@!$(pkgdatadir)!g' $< > $@
-disticondir = $(distdir)/icons
-distcatalogdir = $(distdir)/po
-diststyledir = $(distdir)/styles
-
-install-data-local: $(TARGETS)
- for d in $(pkgdatadir) $(icondir) $(catalogdir) $(styledir); do \
- $(top_srcdir)/mkinstalldirs $$d; \
- done
- @list="$(ICONS)"; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(icondir)/"; \
- $(INSTALL_DATA) $$p $(icondir)/; \
- else :; fi; \
- done
- @list="$(CATALOGS)"; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(catalogdir)/"; \
- $(INSTALL_DATA) $$p $(catalogdir)/; \
- else :; fi; \
- done
- @list="$(STYLES)"; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(styledir)/"; \
- $(INSTALL_DATA) $$p $(styledir)/; \
- else :; fi; \
- done
-
-dist-hook:
- for d in $(distpkgdatadir) $(disticondir) $(distcatalogdir) \
- $(diststyledir); do \
- $(top_srcdir)/mkinstalldirs $$d; \
- done
- @list="$(ICONS)"; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(disticondir)/"; \
- $(INSTALL_DATA) $$p $(disticondir)/; \
- else :; fi; \
- done
- @list="$(CATALOGS)"; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(distcatalogdir)/"; \
- $(INSTALL_DATA) $$p $(distcatalogdir)/; \
- else :; fi; \
- done
- @list="$(STYLES)"; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(diststyledir)/"; \
- $(INSTALL_DATA) $$p $(diststyledir)/; \
- else :; fi; \
- done
+package:
+install-package: package
+ $(MAKE) pkgdatadir=$(PACKAGEDIR)/etc/$(PACKAGE) install
--- /dev/null
+icondir = $(pkgdatadir)/icons
+icon_DATA = $(wildcard *.xpm)
+EXTRA_DIST = $(icon_DATA)
\ No newline at end of file
--- /dev/null
+podir = $(pkgdatadir)/po
+po_DATA = $(wildcard *.po)
+EXTRA_DIST = $(po_DATA)
\ No newline at end of file
--- /dev/null
+;;; -*- emacs-lisp -*-
+
+(setq liece-intl-catalogue-directory "@pkgdatadir@/po"
+ liece-window-style-directory "@pkgdatadir@/styles"
+ liece-icon-directory "@pkgdatadir@/icons")
--- /dev/null
+styledir = $(pkgdatadir)/styles
+style_DATA = bottom top middle
+EXTRA_DIST = $(style_DATA)
\ No newline at end of file
+2002-01-28 Daiki Ueno <ueno@unixuser.org>
+
+ * 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 <yoichi@eken.phys.nagoya-u.ac.jp>
* liece-vars.el (liece-truncate-partial-width-windows): Change
-# -*- makefile -*-
-#
-# Makefile for liece
-#
-#
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
-PACKAGE = liece
-VERSION = 1.4
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-EMACS = emacs
-XEMACS = xemacs
-FLAGS = -batch -q -no-site-file
-TAR = tar
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
-PREFIX = NONE
-LISPDIR = NONE
-PACKAGEDIR = NONE
-VERSION_SPECIFIC_LISPDIR = NONE
-GOMI = liece-setup.el *.elc
+SHELL = /bin/sh
-all: elc
+srcdir = .
+top_srcdir = ..
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/liece
+pkglibdir = $(libdir)/liece
+pkgincludedir = $(includedir)/liece
+
+top_builddir = ..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+ADDITIONAL_LOAD_PATH = @ADDITIONAL_LOAD_PATH@
+CC = gcc
+EMACS = xemacs
+GNUS_PRODUCT_NAME = @GNUS_PRODUCT_NAME@
+HAVE_ = @HAVE_@
+LATEX = @LATEX@
+MAKEINFO = makeinfo
+PACKAGE = liece
+PACKAGEDIR = /usr/local/lib/xemacs/mule-packages/
+RANLIB = ranlib
+URL = @URL@
+USE_FONTS = @USE_FONTS@
+VERSION = 1.4.5
+W3 = @W3@
+WITHOUT_FONTS_bcr = @WITHOUT_FONTS_bcr@
+WITHOUT_FONTS_bembo = @WITHOUT_FONTS_bembo@
+WITHOUT_FONTS_pfu = @WITHOUT_FONTS_pfu@
+WITH_FONTS_bcr = @WITH_FONTS_bcr@
+WITH_FONTS_bembo = @WITH_FONTS_bembo@
+WITH_FONTS_pfu = @WITH_FONTS_pfu@
+XEMACS = xemacs
+etcdir = $(lispdir)/../etc
+lispdir = $(prefix)/share/emacs/site-lisp
+
+EXTRA_DIST = $(wildcard *.el) Makefile.lisp
+DISTCLEANFILES = liece-setup.el
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = tar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --gnu lisp/Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-elc:
- $(EMACS) $(FLAGS) -l ./liece-make.el -f autoload-liece \
- $(PREFIX) $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR)
- $(EMACS) $(FLAGS) -l ./liece-make.el -f compile-liece \
- $(PREFIX) $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR)
+subdir = lisp
-install: elc
- $(EMACS) $(FLAGS) -l ./liece-make.el -f install-liece \
- $(PREFIX) $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR)
+distdir: $(DISTFILES)
+ here=`cd $(top_builddir) && pwd`; \
+ top_distdir=`cd $(top_distdir) && pwd`; \
+ distdir=`cd $(distdir) && pwd`; \
+ cd $(top_srcdir) \
+ && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu lisp/Makefile
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+ cp -pr $$d/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
-package:
- $(XEMACS) $(FLAGS) -l ./liece-make.el -f autoload-liece \
- $(PREFIX) $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR)
- $(XEMACS) $(FLAGS) -l ./liece-make.el -f compile-liece-package \
- $(PACKAGEDIR)
+install-data-am:
+install-data: install-data-am
-install-package: package
- $(XEMACS) $(FLAGS) -l ./liece-make.el -f install-liece-package \
- $(PACKAGEDIR)
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+mostlyclean-am: mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am: clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am: distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am: maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: elc
-tag:
- sh -c 'cvs tag -RF liece-`echo $(VERSION) | \
- tr . _`-`date +%Y%m%d%H%m`'
+elc package install install-package clean:
+ $(MAKE) $(AM_MAKEFLAGS) -f Makefile.lisp $@
-clean:
- -rm -f $(GOMI)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
-## Process this file with automake to produce Makefile.in
-## We do not use automake's emacs-lisp support.
+EXTRA_DIST = $(wildcard *.el) Makefile.lisp
+DISTCLEANFILES = liece-setup.el
-SOURCES = liece-clfns.el liece-handler.el gettext.el \
- liece-compat.el liece-version.el \
- liece-vars.el liece-globals.el liece-inlines.el \
- liece-filter.el liece-dcc.el liece-menu.el \
- liece-000.el liece-200.el liece-300.el liece-400.el liece-500.el \
- liece-nick.el liece-channel.el \
- liece-commands.el liece-ctcp.el \
- liece-handle.el liece-hilit.el liece-intl.el liece-mail.el \
- liece-minibuf.el liece-misc.el liece-url.el liece-message.el \
- liece-x-face.el liece-tcp.el liece-coding.el \
- queue-m.el liece.el \
- liece-window.el
+all: elc
-EXTRA_DIST = liece-make.el liece-config.el liece-modules.el \
- liece-emacs.el liece-xemacs.el \
- liece-q-ccl.el liece-q-el.el \
- bitmap-stipple.el \
- liece.xpm liece.xbm
-
-TARGETS = $(SOURCES:.el=.elc)
-
-if USE_CUSTOM_LISPDIR
-LISPDIR = $(lispdir)
-VERSION_SPECIFIC_LISPDIR = $(lispdir)/emu
-else
-LISPDIR = NONE
-VERSION_SPECIFIC_LISPDIR = NONE
-endif
-
-if USE_CUSTOM_PACKAGEDIR
-PACKAGEDIR = $(packagedir)
-else
-PACKAGEDIR = NONE
-endif
-
-EMACS_AUTOLOAD_FLAGS = -f autoload-liece
-
-if USE_PACKAGE
-EMACS_COMPILE_FLAGS = -f compile-liece-package $(PACKAGEDIR)
-EMACS_INSTALL_FLAGS = -f install-liece-package $(PACKAGEDIR)
-else
-EMACS_COMPILE_FLAGS = -f compile-liece \
- NONE $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR)
-EMACS_INSTALL_FLAGS = -f install-liece \
- NONE $(LISPDIR) $(VERSION_SPECIFIC_LISPDIR)
-endif
-
-
-all: $(TARGETS)
-
-$(TARGETS): liece-make.el liece-setup.el $(SOURCES)
- $(EMACS) -batch -q -no-site-file -l ./liece-make.el \
- $(EMACS_COMPILE_FLAGS)
-
-liece-setup.el:
- $(EMACS) -batch -q -no-site-file -l ./liece-make.el \
- $(EMACS_AUTOLOAD_FLAGS)
-
-install-exec-local: $(TARGETS)
- $(EMACS) -batch -q -no-site-file -l ./liece-make.el \
- $(EMACS_INSTALL_FLAGS)
-
-clean-local:
- -rm *.elc liece-setup.el
-
-.PHONY: update
+elc package install install-package clean:
+ $(MAKE) $(AM_MAKEFLAGS) -f Makefile.lisp $@
(defstruct liece-dcc-object type from host port file size)
+(defun liece-dcc-start-process (args)
+ (let ((program
+ (or (car-safe liece-dcc-program)
+ liece-dcc-program)))
+ (apply #'start-process " *DCC*" nil program args)))
+
(defun liece-dcc-enqueue-request (type &rest args)
(let ((request (apply #'make-liece-dcc-object :type type args)))
(inline (queue-enqueue liece-dcc-requests request))))
nil nil nil nil liece-privmsg-partner)))
(setq liece-privmsg-partner towhom)
- (let (process)
- (setq process (start-process
- liece-dcc-program nil liece-dcc-program
- "send" (int-to-string liece-dcc-port) filename))
+ (let ((process
+ (liece-dcc-start-process
+ (list "send" (int-to-string liece-dcc-port) filename))))
(set-process-filter process #'liece-dcc-send-filter)
(set-process-sentinel process #'liece-dcc-sentinel))
(or (zerop liece-dcc-port)
(expand-file-name
(liece-dcc-object-file object)
liece-dcc-directory))
- process)
- (setq process
- (start-process
- liece-dcc-program nil liece-dcc-program
- "receive"
- (liece-dcc-object-host object)
- (liece-dcc-object-port object)
- (liece-dcc-object-size object)
- (expand-file-name
- (liece-dcc-object-file object)
- liece-dcc-directory)))
+ (process
+ (liece-dcc-start-process
+ (list "receive"
+ (liece-dcc-object-host object)
+ (liece-dcc-object-port object)
+ (liece-dcc-object-size object)
+ (expand-file-name
+ (liece-dcc-object-file object)
+ liece-dcc-directory)))))
(set-process-filter process #'liece-dcc-receive-filter)
(set-process-sentinel process #'liece-dcc-sentinel)
(liece-dcc-add-to-process-alist
(append liece-nick-alist liece-channel-alist)
nil nil nil nil liece-privmsg-partner)))
(setq liece-privmsg-partner towhom)
- (let (process)
- (as-binary-process
- (setq process
- (start-process
- liece-dcc-program nil
- liece-dcc-program "chat" "listen"
- (int-to-string liece-dcc-port)))
- (set-process-buffer
- process
- (liece-get-buffer-create (format " DCC:%s" (process-id process))))
- (set-process-filter process 'liece-dcc-chat-listen-filter)
- (set-process-sentinel process 'liece-dcc-sentinel)))
+ (let ((process
+ (as-binary-process
+ (liece-dcc-start-process
+ (list "chat" "listen" (int-to-string liece-dcc-port))))))
+ (set-process-buffer
+ process
+ (liece-get-buffer-create (format " DCC:%s" (process-id process))))
+ (set-process-filter process 'liece-dcc-chat-listen-filter)
+ (set-process-sentinel process 'liece-dcc-sentinel))
(unless (zerop liece-dcc-port)
(setq liece-dcc-port (1+ liece-dcc-port))))
(liece-message (_ "DCC No chat request has been arrived."))
(liece-dcc-message (_ "Connecting to: %s") nick)
(setq liece-privmsg-partner nick)
- (as-binary-process
- (setq process
- (start-process liece-dcc-program nil
- liece-dcc-program "chat" "connect"
- (liece-dcc-object-host object)
- (liece-dcc-object-port object)))
- (set-process-buffer
- process
- (liece-get-buffer-create
- (format " DCC:%s" (process-id process))))
- (set-process-filter process #'liece-dcc-chat-connect-filter)
- (set-process-sentinel process #'liece-dcc-sentinel)
- (liece-dcc-add-to-process-alist
- process 'chat :from liece-privmsg-partner)))))
+ (setq process
+ (as-binary-process
+ (liece-dcc-start-process
+ (list "chat" "connect"
+ (liece-dcc-object-host object)
+ (liece-dcc-object-port object)))))
+ (set-process-buffer
+ process
+ (liece-get-buffer-create
+ (format " DCC:%s" (process-id process))))
+ (set-process-filter process #'liece-dcc-chat-connect-filter)
+ (set-process-sentinel process #'liece-dcc-sentinel)
+ (liece-dcc-add-to-process-alist
+ process 'chat :from liece-privmsg-partner))))
(defun liece-dcc-chat-connect-filter (process output)
(if (string-match "^DCC chat established" output)
+++ /dev/null
-;;; -*- emacs-lisp -*-
-
-(setq liece-intl-catalogue-directory "@pkgdatadir@/po"
- liece-window-style-directory "@pkgdatadir@/styles"
- liece-icon-directory "@pkgdatadir@/icons")