Mercurial > emacs
annotate src/s/aix4-2.h @ 73562:368665ce6f35
Add support for TCP sockets.
(SEND_STRING, SEND_QUOTED, HSOCKET, CLOSE_SOCKET, IOCTL, INITIALIZE): New
macros.
(IOCTL_BOOL_ARG): New typedef.
(server_file): New global variable.
(longopts): New option --server-file.
(decode_options): Process new option --server-file and environment variable
EMACS_SERVER_FILE.
(print_help_and_exit): Document new option.
(fail): If no connection available and no alternate editor, suggest using
options to make them explicit.
(AUTH_KEY_LENGTH, SEND_BUFFER_SIZE): New constants.
(send_buffer, sblen): New variables.
(send_to_emacs): New function to buffer output and send it with send().
(quote_file_name): Use SEND_STRING.
(close_winsock, initialize_sockets): New functions to load and unload Winsock.
(get_server_config, set_tcp_socket): New functions to create and set up TCP
sockets.
(set_local_socket): New function to create and set up Unix socket (code moved
from previous implementation).
(set_socket): New function to chose between TCP and Unix sockets.
(main): Use SEND_STRING and SEND_QUOTED. Most code moved to set_local_socket.
Use set_socket. Get answers from server.el with recv(), not file stream
functions.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Tue, 31 Oct 2006 00:21:19 +0000 |
parents | c6e45e9a83bf |
children | 43a8bd744de4 ee12d75eb214 |
rev | line source |
---|---|
22824 | 1 #include "aix4-1.h" |
2 | |
25567
c6181e97cf15
1998-05-17 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
Dave Love <fx@gnu.org>
parents:
22824
diff
changeset
|
3 #undef ALIGN_DATA_RELOC |
52401 | 4 |
65657
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
5 /* On AIX Emacs uses the gmalloc.c malloc implementation. But given |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
6 the way this system works, libc functions that return malloced |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
7 memory use the libc malloc implementation. Calling xfree or |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
8 xrealloc on the results of such functions results in a crash. |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
9 |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
10 One solution for this could be to define SYSTEM_MALLOC here, but |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
11 that does not currently work on this system. |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
12 |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
13 It is possible to completely override the malloc implementation on |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
14 AIX, but that involves putting the malloc functions in a shared |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
15 library and setting the MALLOCTYPE environment variable to point to |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
16 tha shared library. |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
17 |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
18 Emacs currently calls xrealloc on the results of get_current_dir name, |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
19 to avoid a crash just use the Emacs implementation for that function. |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
20 */ |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
21 #define BROKEN_GET_CURRENT_DIR_NAME 1 |
c6e45e9a83bf
* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
Dan Nicolaescu <dann@ics.uci.edu>
parents:
52401
diff
changeset
|
22 |
52401 | 23 /* arch-tag: 38fe75ea-6aef-42bd-8449-bc34d921a562 |
24 (do not change this comment) */ |