diff options
author | Munechika SUMIKAWA <sumikawa@FreeBSD.org> | 2002-05-24 17:02:58 +0000 |
---|---|---|
committer | Munechika SUMIKAWA <sumikawa@FreeBSD.org> | 2002-05-24 17:02:58 +0000 |
commit | 28bbc232488f0c149fc8208072c42c2021e0b5cb (patch) | |
tree | 725b989df5afb15ddc3274c4b42ebee09594979d /japanese/emacs-emcws/files/patch-cg | |
parent | o Update to 0.4.2 (diff) |
emacs21-emcws: Japanese input method enhancement for emacs21.
Repo-copied from emacs20-emcws.
Submitted by: nakaji@jp.freebsd.org
Notes
Notes:
svn path=/head/; revision=59915
Diffstat (limited to 'japanese/emacs-emcws/files/patch-cg')
-rw-r--r-- | japanese/emacs-emcws/files/patch-cg | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/japanese/emacs-emcws/files/patch-cg b/japanese/emacs-emcws/files/patch-cg deleted file mode 100644 index 1973aff47d10..000000000000 --- a/japanese/emacs-emcws/files/patch-cg +++ /dev/null @@ -1,149 +0,0 @@ ---- 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; |