diff options
author | jseger <jseger@FreeBSD.org> | 2000-03-09 01:12:17 +0800 |
---|---|---|
committer | jseger <jseger@FreeBSD.org> | 2000-03-09 01:12:17 +0800 |
commit | 38afb873f9ece8c96e042b0660d007a66a2018b9 (patch) | |
tree | 5c66baf05eb280e3b8780c8654b5965d3578a49a /editors | |
parent | e46e80c6e4739f0eca6480b5af2ecbf8dcea176a (diff) | |
download | freebsd-ports-gnome-38afb873f9ece8c96e042b0660d007a66a2018b9.tar.gz freebsd-ports-gnome-38afb873f9ece8c96e042b0660d007a66a2018b9.tar.zst freebsd-ports-gnome-38afb873f9ece8c96e042b0660d007a66a2018b9.zip |
"Enable IPv6-ready for emacs20"
Submitted by: Munechika SUMIKAWA <sumikawa@ebina.hitachi.co.jp>
Upgrade to emacs-20.6
Diffstat (limited to 'editors')
-rw-r--r-- | editors/emacs20/Makefile | 8 | ||||
-rw-r--r-- | editors/emacs20/distinfo | 2 | ||||
-rw-r--r-- | editors/emacs20/files/patch-cg | 149 |
3 files changed, 154 insertions, 5 deletions
diff --git a/editors/emacs20/Makefile b/editors/emacs20/Makefile index 4d5f402d3b8d..859256ccfcb6 100644 --- a/editors/emacs20/Makefile +++ b/editors/emacs20/Makefile @@ -1,12 +1,12 @@ # New ports collection makefile for: GNU emacs -# Version required: 20.5a +# Version required: 20.6 # Date created: 29 October 1994 # Whom: jkh # # $FreeBSD$ # -DISTNAME= emacs-20.5a +DISTNAME= emacs-20.6 CATEGORIES= editors MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= emacs @@ -27,8 +27,8 @@ CONFIGURE_ARGS= --with-x=no --with-pop MAKE_ENV= INSTALL_SCRIPT="${INSTALL_SCRIPT}" MAN1= emacs.1 etags.1 ctags.1 -PLIST_SUB= EMACS_VER=20.5 EMACS_ARCH=${CONFIGURE_TARGET} -WRKSRC= ${WRKDIR}/emacs-20.5 +PLIST_SUB= EMACS_VER=20.6 EMACS_ARCH=${CONFIGURE_TARGET} +WRKSRC= ${WRKDIR}/emacs-20.6 .if defined(USE_XPG4) .if (${USE_XPG4} == "YES" || ${USE_XPG4} == "yes") diff --git a/editors/emacs20/distinfo b/editors/emacs20/distinfo index 666967c2933c..07826f627688 100644 --- a/editors/emacs20/distinfo +++ b/editors/emacs20/distinfo @@ -1 +1 @@ -MD5 (emacs-20.5a.tar.gz) = d3852880bcd144c79be1b9537d28490c +MD5 (emacs-20.6.tar.gz) = cfcaa33b5fc7d64210d3428f13570f8d diff --git a/editors/emacs20/files/patch-cg b/editors/emacs20/files/patch-cg new file mode 100644 index 000000000000..1973aff47d10 --- /dev/null +++ b/editors/emacs20/files/patch-cg @@ -0,0 +1,149 @@ +--- src/process.c-dist Fri Aug 14 22:51:44 1998 ++++ src/process.c Fri Jul 30 12:21:11 1999 +@@ -1,7 +1,18 @@ ++/* ++ * Locally hacked process.c to add ipv6 support. -wsr ++ * ++ * The configure.in file should define "HAVE_GETADDRINFO" if it is found ++ * in libc. ++ * ++ */ ++ + /* Asynchronous subprocess control for GNU Emacs. + Copyright (C) 1985, 86, 87, 88, 93, 94, 95, 96, 1998 + Free Software Foundation, Inc. + ++ ipv6 changes are ++ Copyright (C) 1999 Wolfgang S. Rupprecht ++ + This file is part of GNU Emacs. + + GNU Emacs is free software; you can redistribute it and/or modify +@@ -1808,15 +1819,22 @@ + { + Lisp_Object proc; + register int i; ++ ++#ifndef HAVE_GETADDRINFO + struct sockaddr_in address; + struct servent *svc_info; + struct hostent *host_info_ptr, host_info; + char *(addr_list[2]); + IN_ADDR numeric_addr; +- int s, outch, inch; +- char errstring[80]; +- int port; + struct hostent host_info_fixed; ++ int port; ++#else /* HAVE_GETADDRINFO */ ++ struct addrinfo hints, *res, *lres; ++ int ret = 0; ++ int xerrno = 0; ++ char *portstring, portbuf [128]; ++#endif /* HAVE_GETADDRINFO */ ++ int s = -1, outch, inch; + struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; + int retry = 0; + int count = specpdl_ptr - specpdl; +@@ -1829,6 +1847,22 @@ + GCPRO4 (name, buffer, host, service); + CHECK_STRING (name, 0); + CHECK_STRING (host, 0); ++ ++#ifdef HAVE_GETADDRINFO ++ /* ++ * caution: service can either be a string or int. ++ * Convert to a C string for later use by getaddrinfo. ++ */ ++ if (INTEGERP (service)) { ++ snprintf (portbuf, sizeof (portbuf), "%d", XINT (service)); ++ portstring = portbuf; ++ } ++ else ++ { ++ CHECK_STRING (service, 0); ++ portstring = XSTRING (service)->data; ++ } ++#else /* HAVE_GETADDRINFO */ + if (INTEGERP (service)) + port = htons ((unsigned short) XINT (service)); + else +@@ -1839,6 +1873,8 @@ + error ("Unknown service \"%s\"", XSTRING (service)->data); + port = svc_info->s_port; + } ++#endif /* HAVE_GETADDRINFO */ ++ + + /* Slow down polling to every ten seconds. + Some kernels have a bug which causes retrying connect to fail +@@ -1848,6 +1884,62 @@ + #endif + + #ifndef TERM ++#ifdef HAVE_GETADDRINFO /* We have a modern OS. -wsr */ ++ { ++ immediate_quit = 1; ++ QUIT; ++ memset(&hints, 0, sizeof(hints)); ++ hints.ai_flags = 0; ++ hints.ai_family = AF_UNSPEC; ++ hints.ai_socktype = SOCK_STREAM; ++ hints.ai_protocol = 0; ++ ret = getaddrinfo(XSTRING (host)->data, portstring, &hints, &res); ++ if (ret){ ++ error("%s/%s %s", XSTRING (host)->data, portstring, ++ gai_strerror(ret)); ++ } ++ immediate_quit = 0; ++ } ++ ++ for (lres = res; lres ; lres = lres->ai_next) { /* address loop */ ++ s = socket(lres->ai_family, lres->ai_socktype, lres->ai_protocol); ++ if (s < 0) ++ continue; ++ ++ /* Kernel bugs (on Ultrix at least) cause lossage (not just EINTR) ++ when connect is interrupted. So let's not let it get interrupted. ++ Note we do not turn off polling, because polling is only used ++ when not interrupt_input, and thus not normally used on the systems ++ which have this bug. On systems which use polling, there's no way ++ to quit if polling is turned off. */ ++ if (interrupt_input) ++ unrequest_sigio (); ++ ++ immediate_quit = 1; ++ QUIT; ++ ++ ret = connect(s, lres->ai_addr, lres->ai_addrlen); ++ if (ret){ ++ close(s); ++ s= -1; ++ continue; ++ } ++ ++ break; ++ } /* address loop */ ++ ++ freeaddrinfo(res); ++ if (s < 0) ++ { ++ if (interrupt_input) ++ request_sigio (); ++ ++ errno = xerrno; ++ report_file_error ("connection failed", ++ Fcons (host, Fcons (name, Qnil))); ++ } ++#else /* HAVE_GETADDRINFO */ ++ + while (1) + { + #ifdef TRY_AGAIN +@@ -1938,6 +2030,7 @@ + report_file_error ("connection failed", + Fcons (host, Fcons (name, Qnil))); + } ++#endif /* HAVE_GETADDRINFO */ + + immediate_quit = 0; |