aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src
diff options
context:
space:
mode:
authorMiles Bader2006-11-07 23:22:48 +0000
committerMiles Bader2006-11-07 23:22:48 +0000
commitdbc3b08c405a7b1c0ddb0fb0c98164b355802af5 (patch)
tree00c6f28244409d14bec11e221fb3c03daef63fc6 /lib-src
parentbbb6e8f2b6037dc1ee4ddd6cb63a1a6ddb04a591 (diff)
parent86cb14475e9e76f0b3323d2e7110a4a2bd310cdb (diff)
downloademacs-dbc3b08c405a7b1c0ddb0fb0c98164b355802af5.tar.gz
emacs-dbc3b08c405a7b1c0ddb0fb0c98164b355802af5.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 490-504) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 161-163) - Update from CVS - Merge from emacs--devo--0 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-130
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/ChangeLog502
-rw-r--r--lib-src/Makefile.in5
-rw-r--r--lib-src/emacsclient.c668
-rwxr-xr-xlib-src/grep-changelog49
-rw-r--r--lib-src/makefile.w32-in27
5 files changed, 876 insertions, 375 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index e78d3fefa48..c2319d6486b 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,119 @@
12006-11-07 Juanma Barranquero <lekktu@gmail.com>
2
3 * emacsclient.c (get_server_config) [WINDOWSNT]: Look for the server
4 file on APPDATA if it doesn't exist on HOME, even if HOME is defined.
5
6 * emacsclient.c (get_server_config): Extract also the Emacs pid
7 from the server file. On Windows, try to force the Emacs frame to
8 the foreground.
9
102006-11-06 Juanma Barranquero <lekktu@gmail.com>
11
12 * emacsclient.c (longopts) [! NO_SOCKETS_IN_FILE_SYSTEM]: Don't show
13 option --socket-name.
14 (decode_options): Don't get EMACS_SERVER_FILE here, it could override
15 command line options.
16 (decode_options) [! NO_SOCKETS_IN_FILE_SYSTEM]: Don't parse "-s" option.
17 (fail): Don't check for missing arguments, it is now done in set_socket.
18 (file_name_absolute_p): New function (loosely based on the one in
19 fileio.c).
20 (initialize_sockets): Don't check for duplicate loading of Winsock.
21 (get_server_config): Only try relative paths in the default
22 directory locations.
23 (set_tcp_socket): Don't call INITIALIZE(). Warn when connecting to
24 a remote server.
25 (set_socket): Call INITIALIZE(). Search explicit command-line
26 arguments, then environment variable EMACS_SERVER_FILE, then implicit
27 socket paths, before trying the alternate editor.
28 (main): Use file_name_absolute_p.
29
302006-11-04 Eli Zaretskii <eliz@gnu.org>
31
32 * makefile.w32-in (../src/$(BLD)/temacs.exe): Create as temporary
33 file if it doesn't already exist.
34
352006-11-03 Juanma Barranquero <lekktu@gmail.com>
36
37 * emacsclient.c (initialize_sockets): Don't initialize Winsock
38 more than once.
39
402006-11-03 Mark Davies <mark@mcs.vuw.ac.nz>
41
42 * Makefile.in (INSTALL_SCRIPT): New macro.
43 ($(DESTDIR)${archlibdir}, install): Use it, instead of INSTALL_PROGRAM.
44
452006-11-02 Juanma Barranquero <lekktu@gmail.com>
46
47 * grep-changelog: When called with no arguments (not even a
48 filter), show help instead of blindingly dumping every single
49 ChangeLog available. Doc fix. Update version.
50
512006-11-02 Tim Van Holder <tim.vanholder@gmail.com> (tiny change)
52
53 * emacsclient.c [WINDOWSNT]: Define HAVE_INET_SOCKETS.
54 [!WINDOWSNT]: Include <netinet/in.h> if available.
55 [HAVE_SOCKETS]: Also require HAVE_INET_SOCKETS.
56 (IOCTL, IOCTL_BOOL_ARG): Remove.
57 (set_tcp_socket): Don't set the socket in blocking mode.
58 Remove c_arg.
59
602006-11-01 Juanma Barranquero <lekktu@gmail.com>
61
62 * emacsclient.c (fail) [WINDOWSNT]: Force the first argv passed to
63 execvp to point to alternate_editor (otherwise .BAT scripts can't run).
64
652006-10-31 ,bS(Bscar Fuentes <ofv@wanadoo.es> (tiny change)
66
67 * emacsclient.c [WINDOWSNT]: Include <malloc.h> and <stdlib.h>.
68 (close_winsock): Declare as __cdecl.
69
702006-10-31 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
71
72 * emacsclient.c [!WINDOWSNT]: Include <fcntl.h> if available.
73 (set_tcp_socket): Prefer O_NONBLOCK, then O_NDELAY, then FIONBIO
74 to set the socket in non-blocking mode.
75
762006-10-31 Tim Van Holder <tim.vanholder@gmail.com> (tiny change)
77
78 * emacsclient.c [!WINDOWSNT]: Include <netinet/in.h> and <sys/ioctl.h>.
79 (INVALID_SOCKET): Define.
80 (initialize_sockets): Put #endif at the right place.
81 (set_local_socket): Use progname, not argv[0].
82
832006-10-31 Juanma Barranquero <lekktu@gmail.com>
84
85 * makefile.w32-in (ALL): Add emacsclient.
86 (ECLIENT_CFLAGS, ECLIENTOBJS): New macros.
87 (emacsclient, $(BLD)/emacsclient.exe): New targets.
88 (install): Install emacsclient.
89
90 * emacsclient.c: Add support for TCP sockets.
91 (SEND_STRING, SEND_QUOTED, HSOCKET, CLOSE_SOCKET, IOCTL)
92 (INITIALIZE): New macros.
93 (IOCTL_BOOL_ARG): New typedef.
94 (server_file): New global variable.
95 (longopts): New option --server-file.
96 (decode_options): Process new option --server-file and environment
97 variable EMACS_SERVER_FILE.
98 (print_help_and_exit): Document new option.
99 (fail): If no connection available and no alternate editor,
100 suggest using options to make them explicit.
101 (AUTH_KEY_LENGTH, SEND_BUFFER_SIZE): New constants.
102 (send_buffer, sblen): New variables.
103 (send_to_emacs): New function to buffer output and send it with
104 send().
105 (quote_file_name): Use SEND_STRING.
106 (close_winsock, initialize_sockets): New functions to load and
107 unload Winsock.
108 (get_server_config, set_tcp_socket): New functions to create and
109 set up TCP sockets.
110 (set_local_socket): New function to create and set up Unix
111 socket (code moved from previous implementation).
112 (set_socket): New function to chose between TCP and Unix sockets.
113 (main): Use SEND_STRING and SEND_QUOTED. Most code moved to
114 set_local_socket. Use set_socket. Get answers from server.el with
115 recv(), not file stream functions.
116
12006-10-09 Eli Zaretskii <eliz@gnu.org> 1172006-10-09 Eli Zaretskii <eliz@gnu.org>
2 118
3 * makefile.w32-in (../src/config.h): Fix error message. 119 * makefile.w32-in (../src/config.h): Fix error message.
@@ -13,14 +129,13 @@
13 129
142006-08-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 1302006-08-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
15 131
16 * etags.c (readline): expect sscanf returns >= 1. 132 * etags.c (readline): Expect sscanf returns >= 1.
17 (readline): Change position on %n and \" in sscanf. 133 (readline): Change position on %n and \" in sscanf.
18 134
192006-08-07 Masatake YAMATO <jet@gyve.org> 1352006-08-07 Masatake YAMATO <jet@gyve.org>
20 136
21 * etags.c (readline): expect sscanf returns 2, 137 * etags.c (readline): Expect sscanf returns 2, not 1.
22 not 1. 138
23
242006-08-07 Masatake YAMATO <jet@gyve.org> 1392006-08-07 Masatake YAMATO <jet@gyve.org>
25 140
26 * etags.c (TEX_mode): Check getc returns EOF. 141 * etags.c (TEX_mode): Check getc returns EOF.
@@ -28,7 +143,7 @@
28 143
292002-07-30 Adrian Aichner <adrian@xemacs.org> (tiny change) 1442002-07-30 Adrian Aichner <adrian@xemacs.org> (tiny change)
30 145
31 * etags.c: It's XEmacs, not Xemacs: change all the occurences. 146 * etags.c: It's XEmacs, not Xemacs: change all the occurrences.
32 147
332006-07-30 Francesco Potort,Al(B <pot@gnu.org> 1482006-07-30 Francesco Potort,Al(B <pot@gnu.org>
34 149
@@ -162,7 +277,7 @@
162 277
163 * Makefile.in (update-game-score.o): Delete spurious final `\'. 278 * Makefile.in (update-game-score.o): Delete spurious final `\'.
164 279
1652005-11-18 Hideki IWAMOTO <h-iwamoto@kit.hi-ho.ne.jp> (tiny change) 2802005-11-18 Hideki IWAMOTO <h-iwamoto@kit.hi-ho.ne.jp> (tiny change)
166 281
167 * etags.c (main): Cxref mode writes to stdout: do not close tagf, 282 * etags.c (main): Cxref mode writes to stdout: do not close tagf,
168 which was never opened. 283 which was never opened.
@@ -199,7 +314,7 @@
199 314
2002005-09-11 Jason Rumney <jasonr@gnu.org> 3152005-09-11 Jason Rumney <jasonr@gnu.org>
201 316
202 * makefile.w32-in (../src/config.h): Don't overwrite. Print a 317 * makefile.w32-in (../src/config.h): Don't overwrite. Print a
203 message instead. 318 message instead.
204 (../src/paths.h): Removed. 319 (../src/paths.h): Removed.
205 320
@@ -335,12 +450,12 @@
335 450
3362004-09-13 David A. Capello <dacap@users.sourceforge.net> (tiny change) 4512004-09-13 David A. Capello <dacap@users.sourceforge.net> (tiny change)
337 452
338 * etags.c: (Lua_suffixes, Lua_help, lang_names, Lua_functions): 453 * etags.c (Lua_suffixes, Lua_help, lang_names, Lua_functions):
339 Support the Lua scripting language <http://www.lua.org>. 454 Support the Lua scripting language <http://www.lua.org>.
340 455
3412004-09-08 Francesco Potort,Al(B <pot@gnu.org> 4562004-09-08 Francesco Potort,Al(B <pot@gnu.org>
342 457
343 * etags.c: [LONG_OPTIONS]: make it TRUE (ifdef) or FALSE (ifndef) 458 * etags.c [LONG_OPTIONS]: make it TRUE (ifdef) or FALSE (ifndef)
344 for ease of use. 459 for ease of use.
345 460
3462004-07-17 Richard M. Stallman <rms@gnu.org> 4612004-07-17 Richard M. Stallman <rms@gnu.org>
@@ -702,12 +817,12 @@
702 * emacsclient.c (quote_file_name): Quote \n. 817 * emacsclient.c (quote_file_name): Quote \n.
703 (main): Print a final \n when needed. 818 (main): Print a final \n when needed.
704 819
7052002-09-03 Francesco Potorti` <pot@gnu.org> 8202002-09-03 Francesco Potort,Al(B <pot@gnu.org>
706 821
707 * etags.c (regex_tag_multiline, readline): Never pass pfnote a 822 * etags.c (regex_tag_multiline, readline): Never pass pfnote a
708 string that cannot be freed. 823 string that cannot be freed.
709 824
7102002-08-30 Francesco Potorti` <pot@gnu.org> 8252002-08-30 Francesco Potort,Al(B <pot@gnu.org>
711 826
712 * etags.c (consider_token, C_entries): Switch to C++ parsing when 827 * etags.c (consider_token, C_entries): Switch to C++ parsing when
713 auto-detection is enabled and the `::' qualifier is met. 828 auto-detection is enabled and the `::' qualifier is met.
@@ -718,21 +833,21 @@
718 (C_entries): Several cosmetic changes. 833 (C_entries): Several cosmetic changes.
719 (C_entries): Invalidate the token is some cases. 834 (C_entries): Invalidate the token is some cases.
720 835
7212002-08-29 Francesco Potorti` <pot@gnu.org> 8362002-08-29 Francesco Potort,Al(B <pot@gnu.org>
722 837
723 * etags.c (C_entries): Correct a problem with const C++ funcs. 838 * etags.c (C_entries): Correct a problem with const C++ funcs.
724 (ignoreindent): Renamed from noindentypedefs. 839 (ignoreindent): Renamed from noindentypedefs.
725 (cjava, cplpl): They are now macros instead of local vars. 840 (cjava, cplpl): They are now macros instead of local vars.
726 841
7272002-08-28 Francesco Potorti` <pot@gnu.org> 8422002-08-28 Francesco Potort,Al(B <pot@gnu.org>
728 843
729 * etags.c (HTML_labels): Tag ID= also. 844 * etags.c (HTML_labels): Tag ID= also.
730 845
7312002-08-27 Francesco Potorti` <pot@gnu.org> 8462002-08-27 Francesco Potort,Al(B <pot@gnu.org>
732 847
733 * etags.c (Ada_funcs): Do not tag "use type Xxxx;". 848 * etags.c (Ada_funcs): Do not tag "use type Xxxx;".
734 849
735 * etags.c: (HTML_labels): New language HTML. 850 * etags.c (HTML_labels): New language HTML.
736 (etags_strcasecmp): Like BSD's, for compatibility. 851 (etags_strcasecmp): Like BSD's, for compatibility.
737 (strcaseeq): Make it into a macro. 852 (strcaseeq): Make it into a macro.
738 853
@@ -784,9 +899,9 @@
784 899
785 * b2m.pl: New file. 900 * b2m.pl: New file.
786 901
7872002-06-21 Francesco Potorti` <pot@gnu.org> 9022002-06-21 Francesco Potort,Al(B <pot@gnu.org>
788 903
789 * etags.c: (F_getit, Fortran_functions, Ada_getit, Asm_labels) 904 * etags.c (F_getit, Fortran_functions, Ada_getit, Asm_labels)
790 (Python_functions, PHP_functions, PHP_functions, PHP_functions) 905 (Python_functions, PHP_functions, PHP_functions, PHP_functions)
791 (PHP_functions, PHP_functions, Cobol_paragraphs) 906 (PHP_functions, PHP_functions, Cobol_paragraphs)
792 (Makefile_targets, Postscript_functions, Texinfo_nodes) 907 (Makefile_targets, Postscript_functions, Texinfo_nodes)
@@ -795,7 +910,7 @@
795 (TeX_commands, get_tag): Use make_tag instead of pfnote. 910 (TeX_commands, get_tag): Use make_tag instead of pfnote.
796 (get_tag): Prototype changed, all callers changed. 911 (get_tag): Prototype changed, all callers changed.
797 912
7982002-06-20 Francesco Potorti` <pot@gnu.org> 9132002-06-20 Francesco Potort,Al(B <pot@gnu.org>
799 914
800 * etags.c: Implement implicit tag names, that is, unnamed tags 915 * etags.c: Implement implicit tag names, that is, unnamed tags
801 whose name is automatically deduced by etags.el. The advantage is 916 whose name is automatically deduced by etags.el. The advantage is
@@ -805,13 +920,13 @@
805 (make_tag): New function (was the disabled function new_pfnote). 920 (make_tag): New function (was the disabled function new_pfnote).
806 (make_C_tag): Use it. 921 (make_C_tag): Use it.
807 922
8082002-06-19 Francesco Potorti` <pot@gnu.org> 9232002-06-19 Francesco Potort,Al(B <pot@gnu.org>
809 924
810 * etags.c (add_regex): Invalid regexp modifiers are ignored. 925 * etags.c (add_regex): Invalid regexp modifiers are ignored.
811 (Makefile_targets): Tag variables unless --no-globals. 926 (Makefile_targets): Tag variables unless --no-globals.
812 (LOOP_ON_INPUT_LINES): Serious bug corrected. 927 (LOOP_ON_INPUT_LINES): Serious bug corrected.
813 928
8142002-06-13 Francesco Potorti` <pot@gnu.org> 9292002-06-13 Francesco Potort,Al(B <pot@gnu.org>
815 930
816 * etags.c (erlang_atom, erlang_attribute): Bugs corrected. 931 * etags.c (erlang_atom, erlang_attribute): Bugs corrected.
817 (invalidate_nodes): Bug corrected. 932 (invalidate_nodes): Bug corrected.
@@ -822,7 +937,7 @@
822 * makefile.w32-in (lisp): Add international/ucs-tables.elc and 937 * makefile.w32-in (lisp): Add international/ucs-tables.elc and
823 font-core.elc. 938 font-core.elc.
824 939
8252002-06-12 Francesco Potorti` <pot@gnu.org> 9402002-06-12 Francesco Potort,Al(B <pot@gnu.org>
826 941
827 * etags.c: New multi-line regexp and new regexp syntax. 942 * etags.c: New multi-line regexp and new regexp syntax.
828 (arg_type): at_icregexp label removed (obsolete). 943 (arg_type): at_icregexp label removed (obsolete).
@@ -844,13 +959,13 @@
844 (readline_internal): If necessary, copy the whole file into filebuf. 959 (readline_internal): If necessary, copy the whole file into filebuf.
845 (readline): Skip multi-line regexps, leave them to regex_tag_multiline. 960 (readline): Skip multi-line regexps, leave them to regex_tag_multiline.
846 961
8472002-06-11 Francesco Potorti` <pot@gnu.org> 9622002-06-11 Francesco Potort,Al(B <pot@gnu.org>
848 963
849 * etags.c (add_regex): Better check for null regexps. 964 * etags.c (add_regex): Better check for null regexps.
850 (readline): Check for regex matching null string. 965 (readline): Check for regex matching null string.
851 (find_entries): Reorganisation. 966 (find_entries): Reorganisation.
852 967
8532002-06-07 Francesco Potorti` <pot@gnu.org> 9682002-06-07 Francesco Potort,Al(B <pot@gnu.org>
854 969
855 * etags.c (scan_separators): Support all character escape 970 * etags.c (scan_separators): Support all character escape
856 sequences supported by Gcc. 971 sequences supported by Gcc.
@@ -865,7 +980,7 @@
865 (readline): Conditionally undo readline_internal increment. 980 (readline): Conditionally undo readline_internal increment.
866 (readline): Do not return a value. 981 (readline): Do not return a value.
867 982
8682002-06-06 Francesco Potorti` <pot@gnu.org> 9832002-06-06 Francesco Potort,Al(B <pot@gnu.org>
869 984
870 * etags.c: New option --parse-stdin=FILE. 985 * etags.c: New option --parse-stdin=FILE.
871 (enum arg_type): New label at_stdin. 986 (enum arg_type): New label at_stdin.
@@ -888,7 +1003,7 @@
888 (TEX_tabent, TEX_token): Deleted. 1003 (TEX_tabent, TEX_token): Deleted.
889 (TeX_commands, TEX_decode_env): Streamlined. 1004 (TeX_commands, TEX_decode_env): Streamlined.
890 1005
8912002-06-05 Francesco Potorti` <pot@gnu.org> 10062002-06-05 Francesco Potort,Al(B <pot@gnu.org>
892 1007
893 * etags.c (main): Avoid a buffer overrun with sprintf. 1008 * etags.c (main): Avoid a buffer overrun with sprintf.
894 1009
@@ -936,9 +1051,9 @@
936 * update-game-score.c (read_score) [HAVE_GETDELIM]: Trim trailing 1051 * update-game-score.c (read_score) [HAVE_GETDELIM]: Trim trailing
937 space. 1052 space.
938 1053
9392002-04-22 Francesco Potorti` <pot@gnu.org> 10542002-04-22 Francesco Potort,Al(B <pot@gnu.org>
940 1055
941 * etags.c: (last_node): Make it a global variable. 1056 * etags.c (last_node): Make it a global variable.
942 (process_file): Print the tags from the nodes as soon as 1057 (process_file): Print the tags from the nodes as soon as
943 possible, and delete the nodes. This brings down the memory 1058 possible, and delete the nodes. This brings down the memory
944 occupancy as etags to almost the same level as when the #line 1059 occupancy as etags to almost the same level as when the #line
@@ -957,11 +1072,11 @@
957 * update-game-score.c: Move config.h before the other headers, to 1072 * update-game-score.c: Move config.h before the other headers, to
958 avoid compiler warnings. 1073 avoid compiler warnings.
959 1074
9602002-04-16 Francesco Potorti` <pot@gnu.org> 10752002-04-16 Francesco Potort,Al(B <pot@gnu.org>
961 1076
962 * etags.c (find_entries): Bug fix in list management. 1077 * etags.c (find_entries): Bug fix in list management.
963 1078
9642002-04-15 Francesco Potorti` <pot@gnu.org> 10792002-04-15 Francesco Potort,Al(B <pot@gnu.org>
965 1080
966 * etags.c (get_language_from_filename): Add one argument. 1081 * etags.c (get_language_from_filename): Add one argument.
967 (strcaseeq): New function. 1082 (strcaseeq): New function.
@@ -970,7 +1085,7 @@
970 (find_entries): Try with case insensitive match. 1085 (find_entries): Try with case insensitive match.
971 (process_file): Bug fixed. 1086 (process_file): Bug fixed.
972 1087
9732002-04-13 Francesco Potorti` <pot@gnu.org> 10882002-04-13 Francesco Potort,Al(B <pot@gnu.org>
974 1089
975 * etags.c (find_entries): Delete tags previously obtained from 1090 * etags.c (find_entries): Delete tags previously obtained from
976 file xxx.c's #line directives when parsing file xxx.y. This is 1091 file xxx.c's #line directives when parsing file xxx.y. This is
@@ -1017,7 +1132,7 @@
1017 1132
10182002-04-10 Colin Walters <walters@verbum.org> 11332002-04-10 Colin Walters <walters@verbum.org>
1019 1134
1020 * update-game-score.c: (toplevel): Include stdarg.h. 1135 * update-game-score.c (toplevel): Include stdarg.h.
1021 (MAX_DATA_LEN, MAX_SCORES): New. 1136 (MAX_DATA_LEN, MAX_SCORES): New.
1022 (SCORE_FILE_PREFIX): If HAVE_SHARED_GAME_DIR is not defined, 1137 (SCORE_FILE_PREFIX): If HAVE_SHARED_GAME_DIR is not defined,
1023 default to ~/.emacs.d/games. 1138 default to ~/.emacs.d/games.
@@ -1081,7 +1196,7 @@
1081 `sort TAGFILE -o TAGFILE', as POSIX 1003.1-2001 disallows 1196 `sort TAGFILE -o TAGFILE', as POSIX 1003.1-2001 disallows
1082 the latter usage. 1197 the latter usage.
1083 1198
10842002-03-12 Francesco Potorti` <pot@gnu.org> 11992002-03-12 Francesco Potort,Al(B <pot@gnu.org>
1085 1200
1086 * etags.c (Python_functions): Skip spaces at beginning of lines. 1201 * etags.c (Python_functions): Skip spaces at beginning of lines.
1087 (Python_functions, PHP_functions): Name tags, for ctags' sake. 1202 (Python_functions, PHP_functions): Name tags, for ctags' sake.
@@ -1096,7 +1211,7 @@
1096 * etags.c (put_entries): Use #if !CTAGS, to fix link error on 1211 * etags.c (put_entries): Use #if !CTAGS, to fix link error on
1097 compilers that don't optimize out dead code. 1212 compilers that don't optimize out dead code.
1098 1213
10992002-03-05 Francesco Potorti` <pot@gnu.org> 12142002-03-05 Francesco Potort,Al(B <pot@gnu.org>
1100 1215
1101 * etags.c: Honour #line directives. 1216 * etags.c: Honour #line directives.
1102 (no_line_directive): New global var; set it for old behaviour. 1217 (no_line_directive): New global var; set it for old behaviour.
@@ -1165,7 +1280,7 @@
1165 * cvtmail.c, emacsclient.c, emacsserver.c, pop.c, sorted-doc.c, 1280 * cvtmail.c, emacsclient.c, emacsserver.c, pop.c, sorted-doc.c,
1166 * yow.c: Include <config.h>. 1281 * yow.c: Include <config.h>.
1167 1282
11682001-12-21 Francesco Potorti` <pot@gnu.org> 12832001-12-21 Francesco Potort,Al(B <pot@gnu.org>
1169 1284
1170 * etags.c (Perl_functions): Tag packages and use them in sub tags. 1285 * etags.c (Perl_functions): Tag packages and use them in sub tags.
1171 (get_tag): Return a pointer to the tag that is found. 1286 (get_tag): Return a pointer to the tag that is found.
@@ -1185,13 +1300,13 @@
1185 (L_isdef, L_isquote): Removed. 1300 (L_isdef, L_isquote): Removed.
1186 (Lisp_functions, L_getit): Clarified. 1301 (Lisp_functions, L_getit): Clarified.
1187 1302
1188 * etags.c: (P_): Renamed to __P for consistency with config.h. 1303 * etags.c (P_): Renamed to __P for consistency with config.h.
1189 [HAVE_CONFIG_H]: Let config.h deal with __P. 1304 [HAVE_CONFIG_H]: Let config.h deal with __P.
1190 [__STDC__] [!HAVE_CONFIG_H]: Define PTR as in config.h. 1305 [__STDC__] [!HAVE_CONFIG_H]: Define PTR as in config.h.
1191 [!__STDC__] [!HAVE_CONFIG_H]: Do not undefine static, because 1306 [!__STDC__] [!HAVE_CONFIG_H]: Do not undefine static, because
1192 gperf code needs it. 1307 gperf code needs it.
1193 [HAVE_CONFIG_H] [!PTR]: Define PTR (for use with Xemacs). 1308 [HAVE_CONFIG_H] [!PTR]: Define PTR (for use with XEmacs).
1194 [HAVE_CONFIG_H] [!__P]: Define __P (for use with Xemacs). 1309 [HAVE_CONFIG_H] [!__P]: Define __P (for use with XEmacs).
1195 (xmalloc, xrealloc): Use PTR instead of long *. 1310 (xmalloc, xrealloc): Use PTR instead of long *.
1196 (bool): Make it a define, not a typedef, for C++ compilers. 1311 (bool): Make it a define, not a typedef, for C++ compilers.
1197 (pattern): Members renamed to avoid name clash in some C++ compilers. 1312 (pattern): Members renamed to avoid name clash in some C++ compilers.
@@ -1237,7 +1352,7 @@
1237 not <../src/epaths.h>. 1352 not <../src/epaths.h>.
1238 (malloc, realloc) [!HAVE_STDLIB_H]: Prototype. 1353 (malloc, realloc) [!HAVE_STDLIB_H]: Prototype.
1239 1354
12402001-12-12 Francesco Potorti` <pot@gnu.org> 13552001-12-12 Francesco Potort,Al(B <pot@gnu.org>
1241 1356
1242 * etags.c (PHP_functions): New function for parsing PHP. 1357 * etags.c (PHP_functions): New function for parsing PHP.
1243 (LOOKING_AT): New macro. 1358 (LOOKING_AT): New macro.
@@ -1472,11 +1587,11 @@
1472 * ebrowse.c (main): Check that the output file exists and 1587 * ebrowse.c (main): Check that the output file exists and
1473 is non-empty if invoked with `--append'. 1588 is non-empty if invoked with `--append'.
1474 1589
14752001-05-14 Francesco Potorti` <pot@gnu.org> 15902001-05-14 Francesco Potort,Al(B <pot@gnu.org>
1476 1591
1477 * etags.c (add_regex): Reset the whole newly allocated pattern 1592 * etags.c (add_regex): Reset the whole newly allocated pattern
1478 buffer instead of the individual members. It's safer and works 1593 buffer instead of the individual members. It's safer and works
1479 with Xemacs. 1594 with XEmacs.
1480 1595
1481 * etags.1: Markups corrected. 1596 * etags.1: Markups corrected.
1482 1597
@@ -1514,7 +1629,7 @@
1514 1629
1515 * makefile.w32-in: Fix copyright notice. 1630 * makefile.w32-in: Fix copyright notice.
1516 1631
15172001-02-23 Francesco Potorti` <pot@gnu.org> 16322001-02-23 Francesco Potort,Al(B <pot@gnu.org>
1518 1633
1519 * etags.c (enum sym_type): New label st_C_template. 1634 * etags.c (enum sym_type): New label st_C_template.
1520 (gperf input): Use it for switching to C++ from C. 1635 (gperf input): Use it for switching to C++ from C.
@@ -1541,9 +1656,9 @@
1541 1656
1542 * etags.c (in_word_set): Use `static' in definition (for pcc). 1657 * etags.c (in_word_set): Use `static' in definition (for pcc).
1543 1658
15442001-01-31 Francesco Potorti` <pot@gnu.org> 16592001-01-31 Francesco Potort,Al(B <pot@gnu.org>
1545 1660
1546 * etags.c: [NDEBUG] #undef assert and #define it as ((void)0), for 1661 * etags.c [NDEBUG]: #undef assert and #define it as ((void)0), for
1547 the sake of some buggy assert.h (e.g. in MinGW and sunos4 pcc). 1662 the sake of some buggy assert.h (e.g. in MinGW and sunos4 pcc).
1548 (C_entries): Tag token renamed to still_in_token because sunos4 1663 (C_entries): Tag token renamed to still_in_token because sunos4
1549 pcc wants to expand it as the token() macro even though it has no 1664 pcc wants to expand it as the token() macro even though it has no
@@ -1554,10 +1669,10 @@
1554 * etags.c (assert) [__MINGW32__]: Redefine assert to work around a 1669 * etags.c (assert) [__MINGW32__]: Redefine assert to work around a
1555 bug in the Mingw32 assert.h header file. 1670 bug in the Mingw32 assert.h header file.
1556 1671
15572001-01-30 Francesco Potorti` <pot@gnu.org> 16722001-01-30 Francesco Potort,Al(B <pot@gnu.org>
1558 1673
1559 * etags.c: [WIN32-NATIVE]: #undef MSDOS, #undef WINDOWSNT and 1674 * etags.c [WIN32-NATIVE]: #undef MSDOS, #undef WINDOWSNT and
1560 #define it for the sake of Xemacs. 1675 #define it for the sake of XEmacs.
1561 [WINDOWSNT]: #undef HAVE_NTGUI even if built without 1676 [WINDOWSNT]: #undef HAVE_NTGUI even if built without
1562 HAVE_CONFIG_H. This change only affects a standalone etags. 1677 HAVE_CONFIG_H. This change only affects a standalone etags.
1563 [WINDOWSNT]: #undef DOS_NT and #define it even if built with 1678 [WINDOWSNT]: #undef DOS_NT and #define it even if built with
@@ -1566,7 +1681,7 @@
1566 [!HAVE_UNISTD_H]: use defined(WINDOWSNT) instead of the bare 1681 [!HAVE_UNISTD_H]: use defined(WINDOWSNT) instead of the bare
1567 WINDOWSNT, as this is the correct way to use it. 1682 WINDOWSNT, as this is the correct way to use it.
1568 1683
15692001-01-28 Francesco Potorti` <pot@gnu.org> 16842001-01-28 Francesco Potort,Al(B <pot@gnu.org>
1570 1685
1571 * etags.c: Be capable to parse nested struct-like structures. 1686 * etags.c: Be capable to parse nested struct-like structures.
1572 (structdef, structtag): Struct state machine revisited. 1687 (structdef, structtag): Struct state machine revisited.
@@ -1600,7 +1715,7 @@
1600 (matching_regexp): Use them instead of static variables in 1715 (matching_regexp): Use them instead of static variables in
1601 function scope. 1716 function scope.
1602 1717
16032001-01-25 Francesco Potorti` <pot@gnu.org> 17182001-01-25 Francesco Potort,Al(B <pot@gnu.org>
1604 1719
1605 * etags.c (struct tok): Renamed from struct token. 1720 * etags.c (struct tok): Renamed from struct token.
1606 (token): Renamed from tok. 1721 (token): Renamed from tok.
@@ -1629,12 +1744,12 @@
1629 * ebrowse.c (xfree): New function. 1744 * ebrowse.c (xfree): New function.
1630 (member, declaration, globals): Use xmalloc instead of alloca. 1745 (member, declaration, globals): Use xmalloc instead of alloca.
1631 1746
16322001-01-15 Francesco Potorti` <pot@gnu.org> 17472001-01-15 Francesco Potort,Al(B <pot@gnu.org>
1633 1748
1634 * etags.c (print_language_names): Print filenames in addition to 1749 * etags.c (print_language_names): Print filenames in addition to
1635 suffixes. 1750 suffixes.
1636 1751
16372001-01-14 Francesco Potorti` <pot@gnu.org> 17522001-01-14 Francesco Potort,Al(B <pot@gnu.org>
1638 1753
1639 * etags.c (get_language_from_langname): Renamed from 1754 * etags.c (get_language_from_langname): Renamed from
1640 get_language_from_name. 1755 get_language_from_name.
@@ -1873,14 +1988,14 @@
1873 1988
1874 * etags.c (lisp_suffixes) Add `LSP'. 1989 * etags.c (lisp_suffixes) Add `LSP'.
1875 1990
18762000-02-10 Francesco Potorti` <pot@gnu.org> 19912000-02-10 Francesco Potort,Al(B <pot@gnu.org>
1877 1992
1878 * etags.c (iswhite): Redefine not to consider '\0' as white 1993 * etags.c (iswhite): Redefine not to consider '\0' as white
1879 space, and use it throughout in place of isspace, thus preventing a 1994 space, and use it throughout in place of isspace, thus preventing a
1880 potential signed char to int conversion problem. 1995 potential signed char to int conversion problem.
1881 (MSDOS): #undefine befere redefining 1996 (MSDOS): #undefine befere redefining
1882 1997
18832000-02-04 Francesco Potorti` <pot@gnu.org> 19982000-02-04 Francesco Potort,Al(B <pot@gnu.org>
1884 1999
1885 * etags.c (many functions): Add prototypes. 2000 * etags.c (many functions): Add prototypes.
1886 2001
@@ -1889,7 +2004,7 @@
1889 * etags.c (pfnote, new_pfnote, C_entries, prolog_pred) 2004 * etags.c (pfnote, new_pfnote, C_entries, prolog_pred)
1890 (erlang_func): Add `static' to definitions to keep pcc happy. 2005 (erlang_func): Add `static' to definitions to keep pcc happy.
1891 2006
18922000-01-31 Francesco Potorti` <pot@gnu.org> 20072000-01-31 Francesco Potort,Al(B <pot@gnu.org>
1893 2008
1894 * etags.c [MSDOS]: Set MSDOS to 1 if #defined, 0 otherwise. 2009 * etags.c [MSDOS]: Set MSDOS to 1 if #defined, 0 otherwise.
1895 (get_compressor_from_suffix, process_file): Use MSDOS in if clause. 2010 (get_compressor_from_suffix, process_file): Use MSDOS in if clause.
@@ -1928,7 +2043,7 @@
1928 * movemail.c (popmail): Allow mailbox specifications of the 2043 * movemail.c (popmail): Allow mailbox specifications of the
1929 form `po:username:hostname'. 2044 form `po:username:hostname'.
1930 2045
19311999-11-19 Francesco Potorti` <pot@gnu.org> 20461999-11-19 Francesco Potort,Al(B <pot@gnu.org>
1932 2047
1933 * etags.c (_GNU_SOURCE): Define only if undefined. 2048 * etags.c (_GNU_SOURCE): Define only if undefined.
1934 (get_scheme): Declaration deleted. 2049 (get_scheme): Declaration deleted.
@@ -1949,7 +2064,7 @@
1949 2064
1950 * etags.c (print_help): Change email address to send bugs to. 2065 * etags.c (print_help): Change email address to send bugs to.
1951 2066
19521999-11-01 Francesco Potorti` <pot@gnu.org>> 20671999-11-01 Francesco Potort,Al(B <pot@gnu.org>>
1953 2068
1954 * etags.c: Add suffix psw for PSWrap. 2069 * etags.c: Add suffix psw for PSWrap.
1955 (L_getit): Generalize a "cp!=' '" into "!isspace(*cp)". 2070 (L_getit): Generalize a "cp!=' '" into "!isspace(*cp)".
@@ -2003,7 +2118,7 @@
2003 [MSDOS]: Support DOS file names by handling e.g. foo.cgz as if it 2118 [MSDOS]: Support DOS file names by handling e.g. foo.cgz as if it
2004 were foo.c.gz. 2119 were foo.c.gz.
2005 2120
20061999-11-01 Francesco Potorti` <pot@gnu.org> 21211999-11-01 Francesco Potort,Al(B <pot@gnu.org>
2007 2122
2008 * etags.c (sym_type, C_stab_entry): New constant st_C_operator. 2123 * etags.c (sym_type, C_stab_entry): New constant st_C_operator.
2009 (fvdev): New constant foperator. 2124 (fvdev): New constant foperator.
@@ -2037,7 +2152,7 @@
2037 (add_regex): New arg determining whether to use translation table. 2152 (add_regex): New arg determining whether to use translation table.
2038 (analyse_regex): New arg. Use it for add_regex. 2153 (analyse_regex): New arg. Use it for add_regex.
2039 2154
20401999-11-01 Francesco Potorti` <pot@gnu.org> 21551999-11-01 Francesco Potort,Al(B <pot@gnu.org>
2041 2156
2042 * etags.c (init): Cosmetic change: NULL --> '\0'. 2157 * etags.c (init): Cosmetic change: NULL --> '\0'.
2043 (erlang_attribute): Bug corrected (uninitialized variable). 2158 (erlang_attribute): Bug corrected (uninitialized variable).
@@ -2073,7 +2188,7 @@
2073 Change name of local vars to avoid clashes with typedef linebuffer. 2188 Change name of local vars to avoid clashes with typedef linebuffer.
2074 (readline): Rewritten for new functionality. 2189 (readline): Rewritten for new functionality.
2075 2190
2076 * etags.c: (Scheme_suffixes): New suffix ".ss". 2191 * etags.c (Scheme_suffixes): New suffix ".ss".
2077 (print_help): --globals is now used for more than C-type languages. 2192 (print_help): --globals is now used for more than C-type languages.
2078 (Perl_functions): Tag global variables ("my" and "local"). 2193 (Perl_functions): Tag global variables ("my" and "local").
2079 2194
@@ -2101,10 +2216,9 @@
2101 characters and compilers with default signed chars. 2216 characters and compilers with default signed chars.
2102 (L_getit): Tag "(defstruct (foo", "(defun (operator" and similar 2217 (L_getit): Tag "(defstruct (foo", "(defun (operator" and similar
2103 constructs. 2218 constructs.
2219 (C_stab_entry): "interface" in Java behaves like "class".
2104 2220
2105 * (C_stab_entry): "interface" in Java behaves like "class". 2221 * etags.c (HAVE_NTGUI) [WINDOWSNT]: #undef if HAVE_CONFIG_H.
2106
2107 * etags.c: (HAVE_NTGUI) [WINDOWSNT]: #undef if HAVE_CONFIG_H.
2108 (main): Put interval syntax here. 2222 (main): Put interval syntax here.
2109 (add_regex): And remove it from here. 2223 (add_regex): And remove it from here.
2110 2224
@@ -2461,9 +2575,9 @@
2461 2575
24621997-10-16 Dave Love <d.love@dl.ac.uk> 25761997-10-16 Dave Love <d.love@dl.ac.uk>
2463 2577
2464 * etags.c (L_getit): Always make named tags so that Emacs 2578 * etags.c (L_getit): Always make named tags so that Emacs
2465 completion on symbols containing `:' etc. works. 2579 completion on symbols containing `:' etc. works.
2466 (get_scheme): Likewise. 2580 (get_scheme): Likewise.
2467 2581
24681997-09-24 Jonathan I. Kamens <jik@kamens.brookline.ma.us> 25821997-09-24 Jonathan I. Kamens <jik@kamens.brookline.ma.us>
2469 2583
@@ -2523,19 +2637,19 @@
25231997-07-22 Jonathan I. Kamens <jik@kamens.brookline.ma.us> 26371997-07-22 Jonathan I. Kamens <jik@kamens.brookline.ma.us>
2524 2638
2525 * pop.c: Support auto-configuration of both Kerberos V4 and 2639 * pop.c: Support auto-configuration of both Kerberos V4 and
2526 Kerberos V5 for movemail, including detection of V4 and V5 header 2640 Kerberos V5 for movemail, including detection of V4 and V5 header
2527 files and libraries. 2641 files and libraries.
2528 Include <string.h> when STDC_HEADERS is defined, to get 2642 Include <string.h> when STDC_HEADERS is defined, to get
2529 declarations of string functions. 2643 declarations of string functions.
2530 [KERBEROS5] (socket_connection): Support the current MIT Kerberos 2644 [KERBEROS5] (socket_connection): Support the current MIT Kerberos
2531 V5 API rather than the old one. 2645 V5 API rather than the old one.
2532 [KERBEROS] (socket_connection): Change a constant name from 2646 [KERBEROS] (socket_connection): Change a constant name from
2533 SOCKET_ERROR to POP_SOCKET_ERROR to avoid a namespace conflict 2647 SOCKET_ERROR to POP_SOCKET_ERROR to avoid a namespace conflict
2534 with a constant in a header file. 2648 with a constant in a header file.
2535 2649
2536 * Makefile.in: Support auto-configuration of both Kerberos V4 and 2650 * Makefile.in: Support auto-configuration of both Kerberos V4 and
2537 Kerberos V5 for movemail, including detection of V4 and V5 header 2651 Kerberos V5 for movemail, including detection of V4 and V5 header
2538 files and libraries. 2652 files and libraries.
2539 2653
25401997-07-17 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> 26541997-07-17 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
2541 2655
@@ -2572,14 +2686,14 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2572 * b2m.c (readline): Terminate buffer properly when EOF seen. 2686 * b2m.c (readline): Terminate buffer properly when EOF seen.
2573 Test for valid pointer before dereferencing it. 2687 Test for valid pointer before dereferencing it.
2574 2688
25751997-05-30 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 26891997-05-30 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2576 2690
2577 * Makefile.in (etags): Remove -DETAGS_REGEXPS, because now it is 2691 * Makefile.in (etags): Remove -DETAGS_REGEXPS, because now it is
2578 defined inside etags.c if HAVE_CONFIG_H is defined. 2692 defined inside etags.c if HAVE_CONFIG_H is defined.
2579 2693
25801997-05-29 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 26941997-05-29 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2581 2695
2582 * etags.c: (logical): Type name changed to bool. 2696 * etags.c (logical): Type name changed to bool.
2583 (ETAGS_REGEXPS, LONG_OPTIONS) [HAVE_CONFIG_H]: #define them. 2697 (ETAGS_REGEXPS, LONG_OPTIONS) [HAVE_CONFIG_H]: #define them.
2584 (<getopt.h>) [LONG_OPTIONS]: Include conditionally. 2698 (<getopt.h>) [LONG_OPTIONS]: Include conditionally.
2585 (getopt_long) [!LONG_OPTIONS]: Redefine as macro. 2699 (getopt_long) [!LONG_OPTIONS]: Redefine as macro.
@@ -2589,7 +2703,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2589 defined conditionally to ETAGS_REGEXPS. 2703 defined conditionally to ETAGS_REGEXPS.
2590 (print_help): Updated. 2704 (print_help): Updated.
2591 2705
25921997-05-22 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 27061997-05-22 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2593 2707
2594 * etags.c (C_entries): Use "." instead of "::" for Java. 2708 * etags.c (C_entries): Use "." instead of "::" for Java.
2595 (consider_token): is_func renamed to is_func_or_var. 2709 (consider_token): is_func renamed to is_func_or_var.
@@ -2604,7 +2718,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2604 (main, C_entries): Use them. 2718 (main, C_entries): Use them.
2605 (make_C_tag, C_entries): Make tok a global variable. 2719 (make_C_tag, C_entries): Make tok a global variable.
2606 2720
26071997-05-16 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 27211997-05-16 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2608 2722
2609 * etags.c (funcdef): New vignore constant. 2723 * etags.c (funcdef): New vignore constant.
2610 (consider_token, C_entries): Use it to tag global variables. 2724 (consider_token, C_entries): Use it to tag global variables.
@@ -2614,7 +2728,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2614 (Cobol_suffixes, lang_names, Cobol_paragraphs): Cobol support. 2728 (Cobol_suffixes, lang_names, Cobol_paragraphs): Cobol support.
2615 (prolog_white, erlang_white): Renamed to eat_white, callers changed. 2729 (prolog_white, erlang_white): Renamed to eat_white, callers changed.
2616 2730
26171997-05-15 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 27311997-05-15 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2618 2732
2619 * etags.c (CHARS, CHAR): New constant and macro. 2733 * etags.c (CHARS, CHAR): New constant and macro.
2620 (iswhite, begtoken, intoken, endtoken): Use them. 2734 (iswhite, begtoken, intoken, endtoken): Use them.
@@ -2624,13 +2738,13 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2624 (make_C_tag) [traditional_tag_style]: Use it. 2738 (make_C_tag) [traditional_tag_style]: Use it.
2625 (traditional_tag_style): Costant set to TRUE for now. 2739 (traditional_tag_style): Costant set to TRUE for now.
2626 2740
26271997-05-14 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 27411997-05-14 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2628 2742
2629 * etags.c (C_entries, Pascal_functions): Cleanup. 2743 * etags.c (C_entries, Pascal_functions): Cleanup.
2630 (TeX_functions): NULL as a function arg needs a cast. 2744 (TeX_functions): NULL as a function arg needs a cast.
2631 (Erlang_functions, erlang_func, erlang_attribute): Cleanup. 2745 (Erlang_functions, erlang_func, erlang_attribute): Cleanup.
2632 2746
26331997-05-13 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 27471997-05-13 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2634 2748
2635 * etags.c (TeX_functions): Cleaned up. 2749 * etags.c (TeX_functions): Cleaned up.
2636 (tex_getit): Removed. 2750 (tex_getit): Removed.
@@ -2638,9 +2752,9 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
26381997-05-13 Paul Eggert <eggert@twinsun.com> 27521997-05-13 Paul Eggert <eggert@twinsun.com>
2639 2753
2640 * rcs2log (files): When computing arguments automatically, ignore 2754 * rcs2log (files): When computing arguments automatically, ignore
2641 non-files within the RCS subdirectory. 2755 non-files within the RCS subdirectory.
2642 2756
26431997-05-13 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 27571997-05-13 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2644 2758
2645 * etags.c (C_JAVA): New #define. 2759 * etags.c (C_JAVA): New #define.
2646 (Cjava_suffixes): .java is Java. 2760 (Cjava_suffixes): .java is Java.
@@ -2650,9 +2764,9 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2650 (C_stab_entry): Add `extends' and `implements' keywords. 2764 (C_stab_entry): Add `extends' and `implements' keywords.
2651 (consider_token, C_entries): Recognise Java structures. 2765 (consider_token, C_entries): Recognise Java structures.
2652 2766
26531997-05-12 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 27671997-05-12 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2654 2768
2655 * etags.c: (Cplusplus_suffixes): .pdb is Postscript with C syntax. 2769 * etags.c (Cplusplus_suffixes): .pdb is Postscript with C syntax.
2656 (Postscript_suffixes): .ps is Postscript. 2770 (Postscript_suffixes): .ps is Postscript.
2657 (lang_names): Add Postscript. 2771 (lang_names): Add Postscript.
2658 (Postscript_functions): New function. 2772 (Postscript_functions): New function.
@@ -2662,10 +2776,10 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
26621997-05-11 Paul Eggert <eggert@twinsun.com> 27761997-05-11 Paul Eggert <eggert@twinsun.com>
2663 2777
2664 * rcs2log (loginFullnameMailaddrs, logins, rlog_options, files): 2778 * rcs2log (loginFullnameMailaddrs, logins, rlog_options, files):
2665 Don't prepend $nl since this causes some shells to generate the 2779 Don't prepend $nl since this causes some shells to generate the
2666 empty string when IFS is $nl. 2780 empty string when IFS is $nl.
2667 (printlogline): Use SOH (octal code 1), not CR, since some 2781 (printlogline): Use SOH (octal code 1), not CR, since some
2668 PC-based shells mishandle CR. 2782 PC-based shells mishandle CR.
2669 (initialize_fullname): Set NIS_PATH to the empty string before invoking 2783 (initialize_fullname): Set NIS_PATH to the empty string before invoking
2670 nismatch, in case it's set to some nonstandard value. 2784 nismatch, in case it's set to some nonstandard value.
2671 2785
@@ -2674,7 +2788,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2674 * pop.c (getline): Don't miss CRLF pairs when the CR and LF are 2788 * pop.c (getline): Don't miss CRLF pairs when the CR and LF are
2675 read in separate blocks. 2789 read in separate blocks.
2676 2790
26771997-04-30 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 27911997-04-30 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2678 2792
2679 * etags.c [TeX_named_tokens]: Set to FALSE if undefined. 2793 * etags.c [TeX_named_tokens]: Set to FALSE if undefined.
2680 (struct linebuffer): New member `len' is the length of the string. 2794 (struct linebuffer): New member `len' is the length of the string.
@@ -2692,14 +2806,14 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2692 * makefile.nt: Change references of windowsnt.h to ms-w32.h. 2806 * makefile.nt: Change references of windowsnt.h to ms-w32.h.
2693 (obj): Change references of nt*.c files to w32*.c files. 2807 (obj): Change references of nt*.c files to w32*.c files.
2694 2808
26951997-04-15 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 28091997-04-15 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2696 2810
2697 * etags.c (xnew): Add support for debugging with chkmalloc. 2811 * etags.c (xnew): Add support for debugging with chkmalloc.
2698 (error): Use this instead of printf whenever possible. 2812 (error): Use this instead of printf whenever possible.
2699 (main): Only call xnew after having initialised progname. 2813 (main): Only call xnew after having initialised progname.
2700 (substitute): Bad memory corruption error corrected. 2814 (substitute): Bad memory corruption error corrected.
2701 2815
27021997-04-08 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 28161997-04-08 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2703 2817
2704 * etags.c (add_regex): Undo previous change. 2818 * etags.c (add_regex): Undo previous change.
2705 (relative_filename): Small memory leak closed. 2819 (relative_filename): Small memory leak closed.
@@ -2709,11 +2823,11 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
27091997-03-21 Paul Eggert <eggert@twinsun.com> 28231997-03-21 Paul Eggert <eggert@twinsun.com>
2710 2824
2711 * rcs2log (files): Ignore files in RCS directory whose names are 2825 * rcs2log (files): Ignore files in RCS directory whose names are
2712 of the form ,*, or *_; they are probably RCS lock files. 2826 of the form ,*, or *_; they are probably RCS lock files.
2713 Also, ignore files named .rcsfreeze.log or .rcsfreeze.ver; 2827 Also, ignore files named .rcsfreeze.log or .rcsfreeze.ver;
2714 they are used by rcsfreeze. 2828 they are used by rcsfreeze.
2715 2829
27161997-03-14 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 28301997-03-14 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2717 2831
2718 * etags.c (add_regex): reset *putbuf before using it. 2832 * etags.c (add_regex): reset *putbuf before using it.
2719 2833
@@ -2743,7 +2857,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2743 2857
27441997-01-20 Paul Eggert <eggert@twinsun.com> 28581997-01-20 Paul Eggert <eggert@twinsun.com>
2745 2859
2746 * rcs2log: (--help, --version): New options, per GNU coding standards. 2860 * rcs2log (--help, --version): New options, per GNU coding standards.
2747 (Copyright, Help, Id): New variables, for above. 2861 (Copyright, Help, Id): New variables, for above.
2748 (rlog): Use -q option with cvs log, to avoid useless chatter. 2862 (rlog): Use -q option with cvs log, to avoid useless chatter.
2749 2863
@@ -2764,26 +2878,26 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
27641996-12-18 Jonathan I. Kamens <jik@annex-1-slip-jik.cam.ov.com> 28781996-12-18 Jonathan I. Kamens <jik@annex-1-slip-jik.cam.ov.com>
2765 2879
2766 * Makefile.in (LIBMAIL): New macro. Conditionally includes -lmail. 2880 * Makefile.in (LIBMAIL): New macro. Conditionally includes -lmail.
2767 (movemail): Use LIBMAIL, to link against -lmail. 2881 (movemail): Use LIBMAIL, to link against -lmail.
2768 2882
2769 * movemail.c: Include maillock.h (conditionally). 2883 * movemail.c: Include maillock.h (conditionally).
2770 Remove a redundant inclusion of <stdio.h>. 2884 Remove a redundant inclusion of <stdio.h>.
2771 (MAIL_USE_MAILLOCK): New macro, conditionally defined. 2885 (MAIL_USE_MAILLOCK): New macro, conditionally defined.
2772 (main): Add variable spool_name. 2886 (main): Add variable spool_name.
2773 Support the usage of maillock and mailunlock to 2887 Support the usage of maillock and mailunlock to
2774 lock and unlock mailboxes. 2888 lock and unlock mailboxes.
2775 (mail_spool_name): New function. 2889 (mail_spool_name): New function.
2776 2890
2777 * movemail.c: Fix an uninitialized variable which could cause 2891 * movemail.c: Fix an uninitialized variable which could cause
2778 movemail to exit with an error status incorrectly on systems which 2892 movemail to exit with an error status incorrectly on systems which
2779 use lock files rather than a system locking function to lock 2893 use lock files rather than a system locking function to lock
2780 mailboxes. 2894 mailboxes.
2781 2895
27821996-12-16 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> 28961996-12-16 Richard Stallman <rms@psilocin.gnu.ai.mit.edu>
2783 2897
2784 * pop.c (socket_connection): Free realhost after using it. 2898 * pop.c (socket_connection): Free realhost after using it.
2785 2899
27861996-12-04 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 29001996-12-04 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2787 2901
2788 * etags.c (C_entries): Test tok.valid. This handles some 2902 * etags.c (C_entries): Test tok.valid. This handles some
2789 particular cases involving function declarations that failed. 2903 particular cases involving function declarations that failed.
@@ -2794,14 +2908,14 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2794 gethostbyname may return a pointer to static data. 2908 gethostbyname may return a pointer to static data.
2795 krb_realmofhost can clobber it. So copy it. 2909 krb_realmofhost can clobber it. So copy it.
2796 2910
27971996-11-14 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 29111996-11-14 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2798 2912
2799 * etags.c (pfnote, fatal, error): Callers using a NULL pointer 2913 * etags.c (pfnote, fatal, error): Callers using a NULL pointer
2800 must cast it to (char *) because we have no prototypes. 2914 must cast it to (char *) because we have no prototypes.
2801 (make_C_tag): Macro deleted, new function. 2915 (make_C_tag): Macro deleted, new function.
2802 (C_entries): Calls to make_C_tag macro changed to call function. 2916 (C_entries): Calls to make_C_tag macro changed to call function.
2803 2917
28041996-11-13 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 29181996-11-13 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2805 2919
2806 * etags.c (grow_linebuffer): New function. 2920 * etags.c (grow_linebuffer): New function.
2807 (GROW_LINEBUFFER): Macro deleted. All callers changed. 2921 (GROW_LINEBUFFER): Macro deleted. All callers changed.
@@ -2811,7 +2925,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2811 number of arguments. 2925 number of arguments.
2812 (xrealloc): fatal was called with wrong number of arguments 2926 (xrealloc): fatal was called with wrong number of arguments
2813 2927
28141996-11-08 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 29281996-11-08 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2815 2929
2816 * etags.c (relative_filename): Bug corrected. 2930 * etags.c (relative_filename): Bug corrected.
2817 (etags_getcwd): Avoid warning of unused variable. 2931 (etags_getcwd): Avoid warning of unused variable.
@@ -2820,7 +2934,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
28201996-11-03 Paul Eggert <eggert@twinsun.com> 29341996-11-03 Paul Eggert <eggert@twinsun.com>
2821 2935
2822 * rcs2log: When processing cvs log output, remove `Attic/' from 2936 * rcs2log: When processing cvs log output, remove `Attic/' from
2823 repository file names. 2937 repository file names.
2824 2938
28251996-10-22 Karl Heuer <kwzh@gnu.ai.mit.edu> 29391996-10-22 Karl Heuer <kwzh@gnu.ai.mit.edu>
2826 2940
@@ -2829,7 +2943,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
28291996-10-12 Paul Eggert <eggert@twinsun.com> 29431996-10-12 Paul Eggert <eggert@twinsun.com>
2830 2944
2831 * rcs2log (rlog_options): Look for ' option' rather than 'unknown 2945 * rcs2log (rlog_options): Look for ' option' rather than 'unknown
2832 option', since CVS says 'invalid option'. 2946 option', since CVS says 'invalid option'.
2833 (datearg): Use the empty string, not '-d>1970-01-01', to extract all 2947 (datearg): Use the empty string, not '-d>1970-01-01', to extract all
2834 revisions, since some hosts reject 1970-01-01 when east of UTC. 2948 revisions, since some hosts reject 1970-01-01 when east of UTC.
2835 (date): Remove. 2949 (date): Remove.
@@ -2838,7 +2952,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2838 2952
2839 * etags.c (etags_getcwd) [WINDOWSNT]: Convert backslashes to slashes. 2953 * etags.c (etags_getcwd) [WINDOWSNT]: Convert backslashes to slashes.
2840 2954
28411996-10-02 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 29551996-10-02 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
2842 2956
2843 * etags.c (print_version): Print copyright info. 2957 * etags.c (print_version): Print copyright info.
2844 2958
@@ -2850,7 +2964,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
28501996-09-29 Dave Love <d.love@dl.ac.uk> 29641996-09-29 Dave Love <d.love@dl.ac.uk>
2851 2965
2852 * rcs2log (date): Make default format acceptable to CVS post v1.8 2966 * rcs2log (date): Make default format acceptable to CVS post v1.8
2853 as well as earlier CVSs and RCS. 2967 as well as earlier CVSs and RCS.
2854 2968
28551996-09-29 Richard Stallman <rms@ethanol.gnu.ai.mit.edu> 29691996-09-29 Richard Stallman <rms@ethanol.gnu.ai.mit.edu>
2856 2970
@@ -2860,7 +2974,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
28601996-09-25 Paul Eggert <eggert@twinsun.com> 29741996-09-25 Paul Eggert <eggert@twinsun.com>
2861 2975
2862 * rcs2log (rlog_options): Use $rlog, not rlog, when deciding 2976 * rcs2log (rlog_options): Use $rlog, not rlog, when deciding
2863 whether to append -zLT. 2977 whether to append -zLT.
2864 2978
28651996-09-16 Karl Heuer <kwzh@gnu.ai.mit.edu> 29791996-09-16 Karl Heuer <kwzh@gnu.ai.mit.edu>
2866 2980
@@ -2890,7 +3004,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2890 3004
2891 * emacsserver.c: On fatal signal, delete socket-file: 3005 * emacsserver.c: On fatal signal, delete socket-file:
2892 * emacsserver.c: Include signal.h. 3006 * emacsserver.c: Include signal.h.
2893 (xmalloc, fatal, error): New functions. 3007 (xmalloc, fatal, error): New functions.
2894 (delete_socket, handle_signals): New functions. 3008 (delete_socket, handle_signals): New functions.
2895 (progname, socket_name): New variables. 3009 (progname, socket_name): New variables.
2896 [HAVE_SOCKETS] (main): Call handle_signals; set the new variables. 3010 [HAVE_SOCKETS] (main): Call handle_signals; set the new variables.
@@ -2984,7 +3098,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
2984 3098
29851996-07-15 David Mosberger-Tang <davidm@AZStarNet.com> 30991996-07-15 David Mosberger-Tang <davidm@AZStarNet.com>
2986 3100
2987 * cvtmail.c, sorted-doc.c, yow.c: [__GNU_LIBRARY__]: Use <string.h>. 3101 * cvtmail.c, sorted-doc.c, yow.c [__GNU_LIBRARY__]: Use <string.h>.
2988 * emacsserver.c (main) [__GNU_LIBRARY__]: Use size_t for fromlen. 3102 * emacsserver.c (main) [__GNU_LIBRARY__]: Use size_t for fromlen.
2989 * etags.c, fakemail.c, profile.c: Declare main as int, not void. 3103 * etags.c, fakemail.c, profile.c: Declare main as int, not void.
2990 3104
@@ -3002,7 +3116,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3002 3116
3003 * makefile.nt: Remove all references to wakeup. 3117 * makefile.nt: Remove all references to wakeup.
3004 3118
30051996-06-28 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 31191996-06-28 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
3006 3120
3007 * etags.c (C_stab_entry): New keywords for C++ namespace, bool, 3121 * etags.c (C_stab_entry): New keywords for C++ namespace, bool,
3008 explicit, mutable, typename. 3122 explicit, mutable, typename.
@@ -3033,7 +3147,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3033 3147
3034 * Version 19.31 released. 3148 * Version 19.31 released.
3035 3149
30361996-05-17 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 31501996-05-17 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
3037 3151
3038 * etags.c (CNL_SAVE_DEFINEDEF): Set linecharno for use by readline. 3152 * etags.c (CNL_SAVE_DEFINEDEF): Set linecharno for use by readline.
3039 (Pascal_functions): Increase linecharno by the correct number of 3153 (Pascal_functions): Increase linecharno by the correct number of
@@ -3146,21 +3260,21 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3146 3260
3147 * makefile.nt: Change uses of del to $(DEL). 3261 * makefile.nt: Change uses of del to $(DEL).
3148 3262
31491996-03-22 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 32631996-03-22 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
3150 3264
3151 * etags.c (just_read_file): Reset lineno and charno on entry. 3265 * etags.c (just_read_file): Reset lineno and charno on entry.
3152 3266
31531996-03-15 Anders Lindgren <andersl@csd.uu.se> 32671996-03-15 Anders Lindgren <andersl@csd.uu.se>
3154 3268
3155 * etags.c: Prolog language totaly rewritten. 3269 * etags.c: Prolog language totaly rewritten.
3156 (Prolog_functions): Rewritten from scratch. 3270 (Prolog_functions): Rewritten from scratch.
3157 (skip_comment, prolog_getit): Removed. 3271 (skip_comment, prolog_getit): Removed.
3158 (prolog_skip_comment): New function, like old skip_comment. 3272 (prolog_skip_comment): New function, like old skip_comment.
3159 (prolog_pred, prolog_atom, prolog_white): New functions. 3273 (prolog_pred, prolog_atom, prolog_white): New functions.
3160 (erlang_func, erlang_attributes): Forward declarations added. 3274 (erlang_func, erlang_attributes): Forward declarations added.
3161 (erlang_atom): Check if backslash ends line inside quoted atom. 3275 (erlang_atom): Check if backslash ends line inside quoted atom.
3162 3276
31631996-03-14 Francesco Potorti` <F.Potorti@cnuce.cnr.it> 32771996-03-14 Francesco Potort,Al(B <F.Potorti@cnuce.cnr.it>
3164 3278
3165 * etags.c (absolutefn): DOS_NT version corrected. 3279 * etags.c (absolutefn): DOS_NT version corrected.
3166 (main): Append "/" to the dir name only if not already there. 3280 (main): Append "/" to the dir name only if not already there.
@@ -3248,7 +3362,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3248 3362
3249 * Makefile.in (THIS_IS_MAKEFILE): Renamed from THIS_IS_YMAKEFILE. 3363 * Makefile.in (THIS_IS_MAKEFILE): Renamed from THIS_IS_YMAKEFILE.
3250 3364
32511995-12-07 Francesco Potorti` <pot@cnuce.cnr.it> 33651995-12-07 Francesco Potort,Al(B <pot@cnuce.cnr.it>
3252 3366
3253 * etags.c (pfnote): Don't make a tag for ctags if there is no name. 3367 * etags.c (pfnote): Don't make a tag for ctags if there is no name.
3254 (getit, Asm_labels, Perl_functions, Pascal_functions, L_getit, 3368 (getit, Asm_labels, Perl_functions, Pascal_functions, L_getit,
@@ -3260,7 +3374,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3260 (main): Let get_language_from_name make language existence check. 3374 (main): Let get_language_from_name make language existence check.
3261 (streq, strneq): Check the arguments #if DEBUG. 3375 (streq, strneq): Check the arguments #if DEBUG.
3262 3376
32631995-12-06 Francesco Potorti` <pot@cnuce.cnr.it> 33771995-12-06 Francesco Potort,Al(B <pot@cnuce.cnr.it>
3264 3378
3265 * etags.c (Cplusplus_suffixes): Add .M suffix for Objective C++. 3379 * etags.c (Cplusplus_suffixes): Add .M suffix for Objective C++.
3266 (gperf): Added keywords for Objective C and GNU macros. 3380 (gperf): Added keywords for Objective C and GNU macros.
@@ -3277,10 +3391,10 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3277 (C_entries): Consider // as a comment start even in plain C for 3391 (C_entries): Consider // as a comment start even in plain C for
3278 the sake of Objective C parsing. 3392 the sake of Objective C parsing.
3279 3393
32801995-12-04 Francesco Potorti` <pot@cnuce.cnr.it> 33941995-12-04 Francesco Potort,Al(B <pot@cnuce.cnr.it>
3281 3395
3282 * Makefile.in (ctags): depend on etags only for simplicity; 3396 * Makefile.in (ctags): depend on etags only for simplicity;
3283 compile with regexp support enabled. 3397 compile with regexp support enabled.
3284 3398
32851995-11-24 Richard Stallman <rms@mole.gnu.ai.mit.edu> 33991995-11-24 Richard Stallman <rms@mole.gnu.ai.mit.edu>
3286 3400
@@ -3306,7 +3420,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3306 w32fns.c, w32faces.c, w32select.c, w32menu.c, w32reg.c; remove 3420 w32fns.c, w32faces.c, w32select.c, w32menu.c, w32reg.c; remove
3307 Windows 95 conditional. 3421 Windows 95 conditional.
3308 3422
33091995-11-06 Francesco Potorti` (pot@cnuce.cnr.it) 34231995-11-06 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3310 3424
3311 * etags.c (get_lang_from_name, get_lang_from_interpreter, 3425 * etags.c (get_lang_from_name, get_lang_from_interpreter,
3312 get_lang_from_suffix): New functions. 3426 get_lang_from_suffix): New functions.
@@ -3319,7 +3433,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3319 (Perl_functions): New function. 3433 (Perl_functions): New function.
3320 (lang_suffixes): .pl and .pm are Perl suffixes. 3434 (lang_suffixes): .pl and .pm are Perl suffixes.
3321 3435
33221995-11-02 Francesco Potorti` (pot@cnuce.cnr.it) 34361995-11-02 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3323 3437
3324 * etags.c (lowcase): Use the standard tolower function. 3438 * etags.c (lowcase): Use the standard tolower function.
3325 (substitute): Remove some wrong and some useless code related with 3439 (substitute): Remove some wrong and some useless code related with
@@ -3347,7 +3461,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3347 [! O_RDONLY]: Define it to zero. 3461 [! O_RDONLY]: Define it to zero.
3348 (main): Use O_RDONLY instead of explicit zero. 3462 (main): Use O_RDONLY instead of explicit zero.
3349 3463
33501995-08-17 Francesco Potorti` (pot@cnuce.cnr.it) 34641995-08-17 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3351 3465
3352 * etags.c (Pascal_functions): Close comment bug corrected. 3466 * etags.c (Pascal_functions): Close comment bug corrected.
3353 (add_node): Correctly compare node file names. 3467 (add_node): Correctly compare node file names.
@@ -3402,7 +3516,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3402 * Makefile.in.in (install, maybe-blessmail): Don't cd ..; 3516 * Makefile.in.in (install, maybe-blessmail): Don't cd ..;
3403 configure has already set $(INSTALL) to the proper relative path. 3517 configure has already set $(INSTALL) to the proper relative path.
3404 3518
34051995-06-27 Francesco Potorti` (pot@cnuce.cnr.it) 35191995-06-27 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3406 3520
3407 * etags.c (plain_C_entries): new function. 3521 * etags.c (plain_C_entries): new function.
3408 (lowcase): new macro. 3522 (lowcase): new macro.
@@ -3433,14 +3547,14 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
34331995-06-28 Richard Stallman <rms@mole.gnu.ai.mit.edu> 35471995-06-28 Richard Stallman <rms@mole.gnu.ai.mit.edu>
3434 3548
3435 * emacsserver.c: Make all error messages start with `Error: '. 3549 * emacsserver.c: Make all error messages start with `Error: '.
3436 (fatal_error, perror_1): New functions, use throughout. 3550 (fatal_error, perror_1): New functions, use throughout.
3437 3551
34381995-06-28 Paul Eggert <eggert@twinsun.com> 35521995-06-28 Paul Eggert <eggert@twinsun.com>
3439 3553
3440 * rcs2log (CVSROOT, repository): 3554 * rcs2log (CVSROOT, repository):
3441 Allow remote repositories a la CVS 1.4. 3555 Allow remote repositories a la CVS 1.4.
3442 3556
34431995-06-27 Francesco Potorti` (pot@cnuce.cnr.it) 35571995-06-27 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3444 3558
3445 * etags.c (plain_C_entries): new function. 3559 * etags.c (plain_C_entries): new function.
3446 (lowcase): new macro. 3560 (lowcase): new macro.
@@ -3458,7 +3572,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3458 3572
3459 * make-docfile.c (scan_file): Make sure it never looks at filename[-1]. 3573 * make-docfile.c (scan_file): Make sure it never looks at filename[-1].
3460 3574
34611995-06-21 Francesco Potorti` (pot@cnuce.cnr.it) 35751995-06-21 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3462 3576
3463 * etags.c (find_entries): Rewind before rereading the input file. 3577 * etags.c (find_entries): Rewind before rereading the input file.
3464 3578
@@ -3490,7 +3604,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3490 * rcs2log (output_authors): Allow ':' in time zone, 3604 * rcs2log (output_authors): Allow ':' in time zone,
3491 as per ISO 8601 and RCS 5.6.8 beta. 3605 as per ISO 8601 and RCS 5.6.8 beta.
3492 3606
34931995-05-29 Francesco Potorti` (pot@cnuce.cnr.it) 36071995-05-29 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3494 3608
3495 * etags.c (etags_getcwd): Undo the /bin/pwd change. It may raise 3609 * etags.c (etags_getcwd): Undo the /bin/pwd change. It may raise
3496 compatibility problems. 3610 compatibility problems.
@@ -3513,7 +3627,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3513 (make-docfile.obj): Depend upon config.h. 3627 (make-docfile.obj): Depend upon config.h.
3514 Clean up comments. 3628 Clean up comments.
3515 3629
35161995-05-23 Francesco Potorti` (pot@cnuce.cnr.it) 36301995-05-23 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3517 3631
3518 * etags.c (etags_getcwd): Use /bin/pwd instead of pwd because the 3632 * etags.c (etags_getcwd): Use /bin/pwd instead of pwd because the
3519 former gives the true path even in the presence of simlinks. 3633 former gives the true path even in the presence of simlinks.
@@ -3623,12 +3737,12 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3623 even if HAVE_SYSVIPC. 3737 even if HAVE_SYSVIPC.
3624 * emacsclient.c (main): Use getcwd if not BSD. 3738 * emacsclient.c (main): Use getcwd if not BSD.
3625 3739
36261995-03-13 Francesco Potorti` (pot@cnuce.cnr.it) 37401995-03-13 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3627 3741
3628 * etags.c (process_file): free (filename) after using it. 3742 * etags.c (process_file): free (filename) after using it.
3629 (readline_internal): Do not access the char before start of line. 3743 (readline_internal): Do not access the char before start of line.
3630 3744
36311995-02-22 Francesco Potorti` (pot@cnuce.cnr.it) 37451995-02-22 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3632 3746
3633 * etags.c (C_entries): token_saved removed. Initialise tok.valid and 3747 * etags.c (C_entries): token_saved removed. Initialise tok.valid and
3634 savetok.valid. Mark token as valid when it is initialised. 3748 savetok.valid. Mark token as valid when it is initialised.
@@ -3636,12 +3750,12 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3636 (CNL_SAVE_DEFINEDEF): Test for savetok.valid instead of token_saved. 3750 (CNL_SAVE_DEFINEDEF): Test for savetok.valid instead of token_saved.
3637 (TOKEN): Added a new member: valid. 3751 (TOKEN): Added a new member: valid.
3638 3752
36391995-02-15 Francesco Potorti` (pot@cnuce.cnr.it) 37531995-02-15 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3640 3754
3641 * etags.c (C_entries): Bug corrected in xrealloc of token_str. 3755 * etags.c (C_entries): Bug corrected in xrealloc of token_str.
3642 (main): Do not read twice the last filename in the stdin file list. 3756 (main): Do not read twice the last filename in the stdin file list.
3643 3757
36441995-02-14 Francesco Potorti` (pot@cnuce.cnr.it) 37581995-02-14 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3645 3759
3646 * etags.c (C_entries): Initialise the new members of TOKEN. 3760 * etags.c (C_entries): Initialise the new members of TOKEN.
3647 (C_entries): Do not allocate a new space for each token found by 3761 (C_entries): Do not allocate a new space for each token found by
@@ -3658,18 +3772,18 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3658 3772
3659 * Makefile.in.in (maintainer-clean): Renamed from realclean. 3773 * Makefile.in.in (maintainer-clean): Renamed from realclean.
3660 3774
36611995-02-01 Francesco Potorti` (pot@cnuce.cnr.it) 37751995-02-01 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3662 3776
3663 * etags.c (pfnote): Initialise been_warned in the node. 3777 * etags.c (pfnote): Initialise been_warned in the node.
3664 (C_entries): Removed a speed hack for the sake of clarity. 3778 (C_entries): Removed a speed hack for the sake of clarity.
3665 3779
36661995-01-18 Francesco Potorti` (pot@cnuce.cnr.it) 37801995-01-18 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3667 3781
3668 * etags.c (longopts, print_help, main): Use -I as abbreviation 3782 * etags.c (longopts, print_help, main): Use -I as abbreviation
3669 for the --ignore-indentation option. 3783 for the --ignore-indentation option.
3670 (main): Do not print an error message for unknown options. 3784 (main): Do not print an error message for unknown options.
3671 3785
36721995-01-12 Francesco Potorti` (pot@cnuce.cnr.it) 37861995-01-12 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3673 3787
3674 * etags.c (FILEPOS, GET_CHARNO, GET_FILEPOS, max, LINENO): Deleted. 3788 * etags.c (FILEPOS, GET_CHARNO, GET_FILEPOS, max, LINENO): Deleted.
3675 (append_to_tagfile, typedefs, typedefs_and_cplusplus, 3789 (append_to_tagfile, typedefs, typedefs_and_cplusplus,
@@ -3701,13 +3815,13 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3701 3815
3702 * movemail.c (main): Skip past the colon in inname. 3816 * movemail.c (main): Skip past the colon in inname.
3703 3817
37041995-01-10 Francesco Potorti` (pot@cnuce.cnr.it) 38181995-01-10 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3705 3819
3706 * etags.c (pfatal): New function. 3820 * etags.c (pfatal): New function.
3707 (main, etags_getcwd): Use pfatal. 3821 (main, etags_getcwd): Use pfatal.
3708 (etags_getcwd): Corrected another bug in the HAVE_GETCWD version. 3822 (etags_getcwd): Corrected another bug in the HAVE_GETCWD version.
3709 3823
37101995-01-10 Francesco Potorti` (pot@cnuce.cnr.it) 38241995-01-10 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3711 3825
3712 * etags.c (Lang_function): Use void instead to declare the 3826 * etags.c (Lang_function): Use void instead to declare the
3713 language functions, because many compilers are buggy. 3827 language functions, because many compilers are buggy.
@@ -3715,7 +3829,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3715 (readline_internal): Discard possible \r before \n here. 3829 (readline_internal): Discard possible \r before \n here.
3716 (C_entries): Do not deal with \r here: undo previous fix. 3830 (C_entries): Do not deal with \r here: undo previous fix.
3717 3831
37181995-01-09 Francesco Potorti` (pot@fly) 38321995-01-09 Francesco Potort,Al(B (pot@fly)
3719 3833
3720 * b2m.c (concat, xmalloc, xrealloc, readline, xnew): Four new 3834 * b2m.c (concat, xmalloc, xrealloc, readline, xnew): Four new
3721 functions and a macro that allow the program to work on input 3835 functions and a macro that allow the program to work on input
@@ -3756,12 +3870,12 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3756 3870
3757 * emacsclient.c [!HAVE_SYSVIPC] (main): Fix error message diction. 3871 * emacsclient.c [!HAVE_SYSVIPC] (main): Fix error message diction.
3758 3872
37591994-11-22 Francesco Potorti` (pot@cnuce.cnr.it) 38731994-11-22 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3760 3874
3761 * etags.c (print_help): print --regex usage for ctags also. 3875 * etags.c (print_help): print --regex usage for ctags also.
3762 (main): use -h in addition to -H as abbreviation for --help. 3876 (main): use -h in addition to -H as abbreviation for --help.
3763 3877
37641994-11-16 Francesco Potorti` (pot@cnuce.cnr.it) 38781994-11-16 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3765 3879
3766 * etags.c [ETAGS_REGEXP]: All the new code that deals with regexps 3880 * etags.c [ETAGS_REGEXP]: All the new code that deals with regexps
3767 is compiled if this is defined. The new functions and variables 3881 is compiled if this is defined. The new functions and variables
@@ -3790,7 +3904,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3790 (prolog_getit, skip_comment): Rewritten for speed. 3904 (prolog_getit, skip_comment): Rewritten for speed.
3791 (readline): Rewritten to deal with regexps. 3905 (readline): Rewritten to deal with regexps.
3792 3906
37931994-11-16 Francesco Potorti` (pot@cnuce.cnr.it) 39071994-11-16 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3794 3908
3795 * etags.c (<errno.h>): #include added. 3909 * etags.c (<errno.h>): #include added.
3796 (etags_getcwd): Check return value from getcwd. 3910 (etags_getcwd): Check return value from getcwd.
@@ -3822,7 +3936,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3822 to grow the input buffer, take into account the null that's stored 3936 to grow the input buffer, take into account the null that's stored
3823 at the end of already-read input in the buffer. 3937 at the end of already-read input in the buffer.
3824 3938
38251994-10-21 Francesco Potorti` (pot@cnuce.cnr.it) 39391994-10-21 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3826 3940
3827 * etags.c (prestr, substr): return a logical type. 3941 * etags.c (prestr, substr): return a logical type.
3828 (consider_token): Comment out "EXFUN". Use "DEFUN" instead of "DEF". 3942 (consider_token): Comment out "EXFUN". Use "DEFUN" instead of "DEF".
@@ -3845,7 +3959,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
38451994-10-19 David J. MacKenzie <djm@duality.gnu.ai.mit.edu> 39591994-10-19 David J. MacKenzie <djm@duality.gnu.ai.mit.edu>
3846 3960
3847 * rcs-checkin: Use test -r instead of < to check readability, to 3961 * rcs-checkin: Use test -r instead of < to check readability, to
3848 avoid syntax error. 3962 avoid syntax error.
3849 3963
38501994-10-19 Jonathan I. Kamens (jik@cam.ov.com) 39641994-10-19 Jonathan I. Kamens (jik@cam.ov.com)
3851 3965
@@ -3907,7 +4021,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3907 4021
3908 * Makefile.in.in (regex.o): Use full path to find regex.c. 4022 * Makefile.in.in (regex.o): Use full path to find regex.c.
3909 4023
39101994-10-17 Francesco Potorti` (pot@fly.cnuce.cnr.it) 40241994-10-17 Francesco Potort,Al(B (pot@fly.cnuce.cnr.it)
3911 4025
3912 * Makefile.in.in (etags): add dependency on regex.o, link with it. 4026 * Makefile.in.in (etags): add dependency on regex.o, link with it.
3913 (REGEXPOBJ, REGEXPDEPS, regex.o): target and macros added. 4027 (REGEXPOBJ, REGEXPDEPS, regex.o): target and macros added.
@@ -3934,7 +4048,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3934 4048
3935 * Makefile.in.in (libexecdir): Renamed from libdir. 4049 * Makefile.in.in (libexecdir): Renamed from libdir.
3936 4050
39371994-10-11 Francesco Potorti` (pot@cnuce.cnr.it) 40511994-10-11 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3938 4052
3939 * etags.c (C_entries): Name the #define's that are macros. 4053 * etags.c (C_entries): Name the #define's that are macros.
3940 4054
@@ -3943,7 +4057,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
3943 * emacsserver.c [! SYSVIPC] (main): Fix uses of FD_* macros: 4057 * emacsserver.c [! SYSVIPC] (main): Fix uses of FD_* macros:
3944 fd_set arg is a pointer, descriptor arg comes first. 4058 fd_set arg is a pointer, descriptor arg comes first.
3945 4059
39461994-09-29 Francesco Potorti` (pot@cnuce.cnr.it) 40601994-09-29 Francesco Potort,Al(B (pot@cnuce.cnr.it)
3947 4061
3948 * etags.c (C_entries): Recognise typedef of ANSI style functions. 4062 * etags.c (C_entries): Recognise typedef of ANSI style functions.
3949 (C_entries): Recognise #define inside a struct. 4063 (C_entries): Recognise #define inside a struct.
@@ -4060,12 +4174,12 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4060 4174
40611994-07-08 Dave Love (d.love@dl.ac.uk) 41751994-07-08 Dave Love (d.love@dl.ac.uk)
4062 4176
4063 * etags.c (takeprec): recognise `character*(*) function' 4177 * etags.c (takeprec): recognise `character*(*) function'
4064 4178
40651994-07-08 Francesco Potorti` (pot@cnuce.cnr.it) 41791994-07-08 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4066 4180
4067 * etags.c (main): Don't barf on obsolete -t and -T switches. 4181 * etags.c (main): Don't barf on obsolete -t and -T switches.
4068 (main): Print an explicative message when a switch is not known. 4182 (main): Print an explicative message when a switch is not known.
4069 4183
40701994-06-23 Richard Stallman (rms@mole.gnu.ai.mit.edu) 41841994-06-23 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4071 4185
@@ -4078,12 +4192,12 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4078 4192
4079 * Makefile.in.in (test-distrib): Use ALL_CFLAGS. 4193 * Makefile.in.in (test-distrib): Use ALL_CFLAGS.
4080 4194
40811994-06-03 Francesco Potorti` (pot@fly.cnuce.cnr.it) 41951994-06-03 Francesco Potort,Al(B (pot@fly.cnuce.cnr.it)
4082 4196
4083 * etags.c (absolute_filename): Remove infinite loop bug when 4197 * etags.c (absolute_filename): Remove infinite loop bug when
4084 accessing files in directories whose name begins with a dot. 4198 accessing files in directories whose name begins with a dot.
4085 4199
40861994-06-03 Francesco Potorti` (pot@fly.cnuce.cnr.it) 42001994-06-03 Francesco Potort,Al(B (pot@fly.cnuce.cnr.it)
4087 4201
4088 * etags.c (etags_getcwd): Delete the trailing newline from cwd. 4202 * etags.c (etags_getcwd): Delete the trailing newline from cwd.
4089 4203
@@ -4206,11 +4320,11 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4206 * fakemail.c (readline): When extending the buffer, 4320 * fakemail.c (readline): When extending the buffer,
4207 calculate end afresh using the new size. 4321 calculate end afresh using the new size.
4208 4322
42091994-04-18 Francesco Potorti` (pot@fly.cnuce.cnr.it) 43231994-04-18 Francesco Potort,Al(B (pot@fly.cnuce.cnr.it)
4210 4324
4211 * etags.c (main, print_help): eliminate the -F option. 4325 * etags.c (main, print_help): eliminate the -F option.
4212 4326
42131994-04-18 Francesco Potorti` (pot@fly.cnuce.cnr.it) 43271994-04-18 Francesco Potort,Al(B (pot@fly.cnuce.cnr.it)
4214 4328
4215 * etags.c (absolute_filename): compare against '\0' instead of NULL. 4329 * etags.c (absolute_filename): compare against '\0' instead of NULL.
4216 4330
@@ -4227,7 +4341,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4227 4341
4228 * movemail.c [HAVE_UNISTD_H]: Include unistd.h. 4342 * movemail.c [HAVE_UNISTD_H]: Include unistd.h.
4229 4343
42301994-04-12 Francesco Potorti` (pot@fly.cnuce.cnr.it) 43441994-04-12 Francesco Potort,Al(B (pot@fly.cnuce.cnr.it)
4231 4345
4232 * etags.c (etags_getcwd): Initialize bufsize. 4346 * etags.c (etags_getcwd): Initialize bufsize.
4233 4347
@@ -4244,7 +4358,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4244 4358
4245 * etags.c: #undef static. 4359 * etags.c: #undef static.
4246 4360
42471994-04-08 Francesco Potorti` (pot@fly.cnuce.cnr.it) 43611994-04-08 Francesco Potort,Al(B (pot@fly.cnuce.cnr.it)
4248 4362
4249 * etags.c (outf, outfiledir): renamed to tagf, tagfiledir. 4363 * etags.c (outf, outfiledir): renamed to tagf, tagfiledir.
4250 (PF_funcs, Asm_funcs, L_funcs, PAS_funcs, TEX_funcs, 4364 (PF_funcs, Asm_funcs, L_funcs, PAS_funcs, TEX_funcs,
@@ -4257,7 +4371,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4257 (find_entries): added more suffixes for assembler files. 4371 (find_entries): added more suffixes for assembler files.
4258 (Asm_funcs): Now finds labels even without an ending colon. 4372 (Asm_funcs): Now finds labels even without an ending colon.
4259 4373
42601994-03-30 Francesco Potorti` (pot@fly.cnuce.cnr.it) 43741994-03-30 Francesco Potort,Al(B (pot@fly.cnuce.cnr.it)
4261 4375
4262 * etags.c (main): use etags_getcwd for compatibility. 4376 * etags.c (main): use etags_getcwd for compatibility.
4263 (etags_getcwd): new function. 4377 (etags_getcwd): new function.
@@ -4266,7 +4380,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4266 4380
4267 * Makefile.in (etags, ctags): Pass -D for VERSION. 4381 * Makefile.in (etags, ctags): Pass -D for VERSION.
4268 4382
42691994-03-25 Francesco Potorti` (pot@cnuce.cnr.it) 43831994-03-25 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4270 4384
4271 * etags.c (emacs_tags_format, ETAGS): removed. Use CTAGS instead. 4385 * etags.c (emacs_tags_format, ETAGS): removed. Use CTAGS instead.
4272 (main): don't allow the use of -t and -T in etags mode. 4386 (main): don't allow the use of -t and -T in etags mode.
@@ -4274,7 +4388,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4274 (print_version): show the emacs version number if VERSION is #defined. 4388 (print_version): show the emacs version number if VERSION is #defined.
4275 (find_entries): add "ss" as suffix for Chez Scheme. 4389 (find_entries): add "ss" as suffix for Chez Scheme.
4276 4390
42771994-03-23 Francesco Potorti` (pot@cnuce.cnr.it) 43911994-03-23 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4278 4392
4279 * etags.c (cwd, outfiledir): vars added. 4393 * etags.c (cwd, outfiledir): vars added.
4280 (relative_filename, absolute_filename, absolute_dirname): 4394 (relative_filename, absolute_filename, absolute_dirname):
@@ -4296,7 +4410,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4296 * Makefile.in (install, ${archlibdir}): Switch back to .. 4410 * Makefile.in (install, ${archlibdir}): Switch back to ..
4297 before running INSTALL_PROGRAM. 4411 before running INSTALL_PROGRAM.
4298 4412
42991994-03-14 Francesco Potorti` (pot@cnuce.cnr.it) 44131994-03-14 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4300 4414
4301 * etags.c (TYPEDST): added the `tignore' value. 4415 * etags.c (TYPEDST): added the `tignore' value.
4302 (C_entries): corrected various bugs, now correctly parses the 4416 (C_entries): corrected various bugs, now correctly parses the
@@ -4342,7 +4456,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4342 * profile.c (get_time): Simplify; avoid calling index. 4456 * profile.c (get_time): Simplify; avoid calling index.
4343 (main): exit on EOF. 4457 (main): exit on EOF.
4344 4458
43451994-02-17 Francesco Potorti` (pot@cnuce.cnr.it) 44591994-02-17 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4346 4460
4347 * etags.c (--absolute-pathnames): Option removed. 4461 * etags.c (--absolute-pathnames): Option removed.
4348 4462
@@ -4350,7 +4464,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4350 4464
4351 * fakemail.c (put_line): Don't break the line if it all fits. 4465 * fakemail.c (put_line): Don't break the line if it all fits.
4352 4466
43531994-02-14 Francesco Potorti` (pot@fly) 44671994-02-14 Francesco Potort,Al(B (pot@fly)
4354 4468
4355 * etags.c (absolute_pathnames, cwd): added global vars. 4469 * etags.c (absolute_pathnames, cwd): added global vars.
4356 (longopts, print_help, main, process_file): put absolute filenames 4470 (longopts, print_help, main, process_file): put absolute filenames
@@ -4382,7 +4496,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4382 look like lisp call prototypes: (function ARG1 ARG2), upcasing args. 4496 look like lisp call prototypes: (function ARG1 ARG2), upcasing args.
4383 (scan_c_file): Pass BUF to write_c_args for FUNC arg. 4497 (scan_c_file): Pass BUF to write_c_args for FUNC arg.
4384 4498
43851994-01-14 Francesco Potorti` (pot@cnuce.cnr.it) 44991994-01-14 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4386 4500
4387 * etags.c (stab_entry, stab_create, stab_find, stab_search, 4501 * etags.c (stab_entry, stab_create, stab_find, stab_search,
4388 stab_type, add_keyword, C_reate_stab, C_create_stabs): deleted. 4502 stab_type, add_keyword, C_reate_stab, C_create_stabs): deleted.
@@ -4526,7 +4640,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4526 4640
45271993-11-08 Tom Hageman (tom@basil.icce.rug.nl) 46411993-11-08 Tom Hageman (tom@basil.icce.rug.nl)
4528 4642
4529 * etags.c: (C_entries): Keep track of ()-parenthesis level so that 4643 * etags.c (C_entries): Keep track of ()-parenthesis level so that
4530 functions returning a pointer to a function, a la `signal', can be 4644 functions returning a pointer to a function, a la `signal', can be
4531 parsed. This also required new state `fstartlist' to `FUNCST'. 4645 parsed. This also required new state `fstartlist' to `FUNCST'.
4532 (SAVE_TOKEN, RESTORE_TOKEN, TOKEN_SAVED_P): 1-deep token save stack. 4646 (SAVE_TOKEN, RESTORE_TOKEN, TOKEN_SAVED_P): 1-deep token save stack.
@@ -4534,7 +4648,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4534 from the other state engines. 4648 from the other state engines.
4535 (begtk): add '~', for C++ class destructors. 4649 (begtk): add '~', for C++ class destructors.
4536 4650
45371993-11-02 Francesco Potorti` (pot@cnuce.cnr.it) 46511993-11-02 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4538 4652
4539 * etags.c (consider_token): removed unused variable firsttok. 4653 * etags.c (consider_token): removed unused variable firsttok.
4540 (prolog_getit): call pfnote with the right number of arguments. 4654 (prolog_getit): call pfnote with the right number of arguments.
@@ -4554,7 +4668,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4554 * Makefile.in: Fixed typos or brainos of whoever thought `@' was 4668 * Makefile.in: Fixed typos or brainos of whoever thought `@' was
4555 the comment character. 4669 the comment character.
4556 4670
45571993-10-01 Francesco Potorti` (pot@cnuce.cnr.it) 46711993-10-01 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4558 4672
4559 * etags.c (process_file): dead code removed. 4673 * etags.c (process_file): dead code removed.
4560 (S_ISREG): #define it using S_IFREG if not defined. 4674 (S_ISREG): #define it using S_IFREG if not defined.
@@ -4585,7 +4699,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4585 By default, look for *,v files as well as RCS/*,v files. 4699 By default, look for *,v files as well as RCS/*,v files.
4586 Use $TMPDIR (default /tmp) instead of /tmp. 4700 Use $TMPDIR (default /tmp) instead of /tmp.
4587 4701
45881993-09-20 Francesco Potorti` (pot@fly) 47021993-09-20 Francesco Potort,Al(B (pot@fly)
4589 4703
4590 * etags.c (C_entries): is_func is initialised here instead of in 4704 * etags.c (C_entries): is_func is initialised here instead of in
4591 consider_token for the sake of the yacc rules section. 4705 consider_token for the sake of the yacc rules section.
@@ -4639,7 +4753,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4639 4753
4640 * Version 19.18 released. 4754 * Version 19.18 released.
4641 4755
46421993-08-04 Francesco Potorti` (pot@spiff.gnu.ai.mit.edu) 47561993-08-04 Francesco Potort,Al(B (pot@spiff.gnu.ai.mit.edu)
4643 4757
4644 * etags.c (L_isdef, L_isquote, L_getit): small optimisations. 4758 * etags.c (L_isdef, L_isquote, L_getit): small optimisations.
4645 (L_funcs): the (foo::defmumble stuff now should work. 4759 (L_funcs): the (foo::defmumble stuff now should work.
@@ -4655,9 +4769,9 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4655 4769
4656 * timer.c (main): Generate a SIGIO as soon as we've initialized. 4770 * timer.c (main): Generate a SIGIO as soon as we've initialized.
4657 4771
46581993-07-30 Francesco Potorti` (pot@cnuce.cnr.it) 47721993-07-30 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4659 4773
4660 * etags.c (FINCST): added the fignore status. Means we are 4774 * etags.c (FINCST): Added the fignore status. Means we are
4661 after the parameter list and before the open curly brace. 4775 after the parameter list and before the open curly brace.
4662 Allows correct parsing of C++ constructors. 4776 Allows correct parsing of C++ constructors.
4663 (C_entries, consider_token): make use of fignore. 4777 (C_entries, consider_token): make use of fignore.
@@ -4683,7 +4797,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4683 4797
46841993-07-18 Richard Stallman (rms@mole.gnu.ai.mit.edu) 47981993-07-18 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4685 4799
4686 * Version 19.17 released. 4800 * Version 19.17 released.
4687 4801
46881993-07-15 Jim Blandy (jimb@totoro.cs.oberlin.edu) 48021993-07-15 Jim Blandy (jimb@totoro.cs.oberlin.edu)
4689 4803
@@ -4694,14 +4808,14 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4694 * wakeup.c: Use CPP tangle from autoconf manual to #include the 4808 * wakeup.c: Use CPP tangle from autoconf manual to #include the
4695 correct combination of <time.h> and <sys/time.h>. 4809 correct combination of <time.h> and <sys/time.h>.
4696 4810
46971993-07-08 Francesco Potorti` (pot@cnuce.cnr.it) 48111993-07-08 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4698 4812
4699 * etags.c (alloca): removed all references to it. 4813 * etags.c (alloca): removed all references to it.
4700 (main): now calls xnew instead of alloca for portability. 4814 (main): now calls xnew instead of alloca for portability.
4701 (../src/config.h): included only if HAVE_CONFIG_H. 4815 (../src/config.h): included only if HAVE_CONFIG_H.
4702 (const): void definition removed--config.h takes care of it. 4816 (const): void definition removed--config.h takes care of it.
4703 4817
47041993-07-08 Francesco Potorti` (pot@cnuce.cnr.it) 48181993-07-08 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4705 4819
4706 * etags.c (consider_token): was `==', now is `='. 4820 * etags.c (consider_token): was `==', now is `='.
4707 (consider_token): DEFUNs now treated like funcs in ctags mode. 4821 (consider_token): DEFUNs now treated like funcs in ctags mode.
@@ -4748,7 +4862,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4748 4862
47491993-06-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) 48631993-06-16 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
4750 4864
4751 Bring mumbleclean targets into conformance with GNU coding standards. 4865 Bring mumbleclean targets into conformance with GNU coding standards.
4752 * Makefile.in (distclean): Call clean to do most of the work. 4866 * Makefile.in (distclean): Call clean to do most of the work.
4753 Delete aixcc.c and TAGS. 4867 Delete aixcc.c and TAGS.
4754 (realclean): Just call distclean. 4868 (realclean): Just call distclean.
@@ -4805,7 +4919,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4805 4919
48061993-05-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) 49201993-05-30 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
4807 4921
4808 * Makefile.in: (${archlibdir}): Use `(cd foo && pwd)' instead of 4922 * Makefile.in (${archlibdir}): Use `(cd foo && pwd)' instead of
4809 `(cd foo ; pwd)' to get the canonical name of a directory; cd 4923 `(cd foo ; pwd)' to get the canonical name of a directory; cd
4810 might fail, and have pwd print out the current directory. 4924 might fail, and have pwd print out the current directory.
4811 4925
@@ -4891,7 +5005,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4891 5005
48921993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu) 50061993-05-22 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
4893 5007
4894 * Version 19.7 released. 5008 * Version 19.7 released.
4895 5009
48961993-05-22 Richard Stallman (rms@mole.gnu.ai.mit.edu) 50101993-05-22 Richard Stallman (rms@mole.gnu.ai.mit.edu)
4897 5011
@@ -4983,7 +5097,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4983 (CFLAGS): Include C_SWITCH_SYSTEM in the flags to pass to the 5097 (CFLAGS): Include C_SWITCH_SYSTEM in the flags to pass to the
4984 compiler. 5098 compiler.
4985 5099
49861993-03-22 Francesco Potorti` (pot@cnuce.cnr.it) 51001993-03-22 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4987 5101
4988 * etags.c (YACC): flag added to c_ext. 5102 * etags.c (YACC): flag added to c_ext.
4989 (c_ext): no more a synonim for c_ext&C_PLPL because of YACC. 5103 (c_ext): no more a synonim for c_ext&C_PLPL because of YACC.
@@ -4994,13 +5108,13 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
4994 (C_entries): logical yacc_rules means we are after the first %%. 5108 (C_entries): logical yacc_rules means we are after the first %%.
4995 (C_entries): added logic for yacc files. 5109 (C_entries): added logic for yacc files.
4996 5110
49971993-03-16 Francesco Potorti` (pot@cnuce.cnr.it) 51111993-03-16 Francesco Potort,Al(B (pot@cnuce.cnr.it)
4998 5112
4999 * etags.c (C_entries): ':' case moved to the second switch. 5113 * etags.c (C_entries): ':' case moved to the second switch.
5000 (C_entries): do not examine token if structdef==scolonseen. 5114 (C_entries): do not examine token if structdef==scolonseen.
5001 (consider_token): structtag set to null string for enum. 5115 (consider_token): structtag set to null string for enum.
5002 5116
50031993-03-12 Francesco Potorti` (pot@cnuce.cnr.it) 51171993-03-12 Francesco Potort,Al(B (pot@cnuce.cnr.it)
5004 5118
5005 * etags.c (GET_COOKIE): and related macros removed. 5119 * etags.c (GET_COOKIE): and related macros removed.
5006 (logical): is now int, no more a char. 5120 (logical): is now int, no more a char.
@@ -5018,19 +5132,19 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
5018 (condider_token): complete rewrite. 5132 (condider_token): complete rewrite.
5019 (getline): deleted. 5133 (getline): deleted.
5020 5134
50211993-03-01 Francesco Potorti` (pot@fly.CNUCE.CNR.IT) 51351993-03-01 Francesco Potort,Al(B (pot@fly.CNUCE.CNR.IT)
5022 5136
5023 * etags.c (C_entries): Added the quotednl logical variable. 5137 * etags.c (C_entries): Added the quotednl logical variable.
5024 Used for parsing of #define's spanning multiple lines. 5138 Used for parsing of #define's spanning multiple lines.
5025 5139
50261993-02-23 Francesco Potorti` (pot@fly.CNUCE.CNR.IT) 51401993-02-23 Francesco Potort,Al(B (pot@fly.CNUCE.CNR.IT)
5027 5141
5028 * etags.c (C_entries): Save the definedef status even when a 5142 * etags.c (C_entries): Save the definedef status even when a
5029 newline is met inside a string. 5143 newline is met inside a string.
5030 5144
50311993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu) 51451993-03-19 Eric S. Raymond (eric@geech.gnu.ai.mit.edu)
5032 5146
5033 * Makefile.in (EXECUTABLES): added rcs-checkin. 5147 * Makefile.in (EXECUTABLES): added rcs-checkin.
5034 5148
5035 * Makefile.in (unlock, relock): New productions. 5149 * Makefile.in (unlock, relock): New productions.
5036 5150
@@ -5054,7 +5168,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
5054 5168
5055 * b2m.c (main): Don't exit upon reading a blank line. 5169 * b2m.c (main): Don't exit upon reading a blank line.
5056 5170
50571993-03-01 Francesco Potorti` (pot@fly.CNUCE.CNR.IT) 51711993-03-01 Francesco Potort,Al(B (pot@fly.CNUCE.CNR.IT)
5058 5172
5059 * etags.c (C_entries): New local variable quotednl. Used for 5173 * etags.c (C_entries): New local variable quotednl. Used for
5060 parsing of #define's spanning multiple lines. 5174 parsing of #define's spanning multiple lines.
@@ -5066,7 +5180,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
5066 5180
5067 * timer.c (notify): Initialize waitfor properly. 5181 * timer.c (notify): Initialize waitfor properly.
5068 5182
50691993-02-22 Francesco Potorti` (pot@CNUCE.CNR.IT) 51831993-02-22 Francesco Potort,Al(B (pot@CNUCE.CNR.IT)
5070 5184
5071 * etags.c (C_entries): Don't reset definedef when a newline inside a 5185 * etags.c (C_entries): Don't reset definedef when a newline inside a
5072 comment is met. 5186 comment is met.
@@ -5395,7 +5509,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
5395 5509
53961992-03-31 Jim Blandy (jimb@pogo.cs.oberlin.edu) 55101992-03-31 Jim Blandy (jimb@pogo.cs.oberlin.edu)
5397 5511
5398 * lib-src/Makefile, etc/MACHINES, etc/NEWS: Changed references to 5512 * lib-src/Makefile, etc/MACHINES, etc/NEWS: Changed references to
5399 `config.emacs' to `configure'. 5513 `config.emacs' to `configure'.
5400 5514
5401 * lib-src/Makefile: Adjusted for renaming of share-lib to etc. 5515 * lib-src/Makefile: Adjusted for renaming of share-lib to etc.
@@ -5562,7 +5676,7 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
5562 5676
55631990-08-30 David Lawrence (tale@pogo.ai.mit.edu) 56771990-08-30 David Lawrence (tale@pogo.ai.mit.edu)
5564 5678
5565 * emacs.1: Add break before -nw option. 5679 * emacs.1: Add break before -nw option.
5566 5680
55671990-08-19 David J. MacKenzie (djm@apple-gunkies) 56811990-08-19 David J. MacKenzie (djm@apple-gunkies)
5568 5682
@@ -5769,8 +5883,8 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
5769 5883
57701988-12-31 Richard Mlynarik (mly@rice-chex.ai.mit.edu) 58841988-12-31 Richard Mlynarik (mly@rice-chex.ai.mit.edu)
5771 5885
5772 * env.c: Add decl for my-index 5886 * env.c: Add decl for my-index
5773 * etags.c (file-entries): .oak => scheme 5887 * etags.c (file-entries): .oak => scheme
5774 5888
57751988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 58891988-12-30 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
5776 5890
@@ -5814,8 +5928,8 @@ Tue Jul 1 01:09:07 1997 Geoff Voelker <voelker@cs.washington.edu>
5814 5928
58151988-11-29 Richard Mlynarik (mly@pickled-brain.ai.mit.edu) 59291988-11-29 Richard Mlynarik (mly@pickled-brain.ai.mit.edu)
5816 5930
5817 * movemail.c: Better error message when can't create tempname. 5931 * movemail.c: Better error message when can't create tempname.
5818 This file needs a great deal of extra error-checking and lucid reporting... 5932 This file needs a great deal of extra error-checking and lucid reporting...
5819 5933
58201988-11-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 59341988-11-16 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
5821 5935
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 4eb1658ac0a..75ab5e192d1 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -94,6 +94,7 @@ gameuser=@gameuser@
94INSTALL = @INSTALL@ 94INSTALL = @INSTALL@
95INSTALL_PROGRAM = @INSTALL_PROGRAM@ 95INSTALL_PROGRAM = @INSTALL_PROGRAM@
96INSTALL_DATA = @INSTALL_DATA@ 96INSTALL_DATA = @INSTALL_DATA@
97INSTALL_SCRIPT = @INSTALL_SCRIPT@
97# By default, we uphold the dignity of our programs. 98# By default, we uphold the dignity of our programs.
98INSTALL_STRIP = 99INSTALL_STRIP =
99 100
@@ -319,7 +320,7 @@ $(DESTDIR)${archlibdir}: all
319 if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \ 320 if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \
320 != `(cd ${srcdir} && /bin/pwd)` ]; then \ 321 != `(cd ${srcdir} && /bin/pwd)` ]; then \
321 for file in ${SCRIPTS}; do \ 322 for file in ${SCRIPTS}; do \
322 $(INSTALL_PROGRAM) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \ 323 $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \
323 done ; \ 324 done ; \
324 fi 325 fi
325 326
@@ -331,7 +332,7 @@ install: $(DESTDIR)${archlibdir}
331 chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \ 332 chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
332 done 333 done
333 for file in ${INSTALLABLE_SCRIPTS} ; do \ 334 for file in ${INSTALLABLE_SCRIPTS} ; do \
334 $(INSTALL_PROGRAM) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \ 335 $(INSTALL_SCRIPT) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
335 chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \ 336 chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
336 done 337 done
337 338
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index b0bf50c2c78..3c3b27374fc 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -26,19 +26,49 @@ Boston, MA 02110-1301, USA. */
26#include <config.h> 26#include <config.h>
27#endif 27#endif
28 28
29#ifdef WINDOWSNT
30
31# include <malloc.h>
32# include <stdlib.h>
33
34# define HAVE_SOCKETS
35# define HAVE_INET_SOCKETS
36# define NO_SOCKETS_IN_FILE_SYSTEM
37
38# define HSOCKET SOCKET
39# define CLOSE_SOCKET closesocket
40# define INITIALIZE() (initialize_sockets ())
41
42#else /* !WINDOWSNT */
43
44# ifdef HAVE_INET_SOCKETS
45# include <netinet/in.h>
46# endif
47
48# define INVALID_SOCKET -1
49# define HSOCKET int
50# define CLOSE_SOCKET close
51# define INITIALIZE()
52
53#endif /* !WINDOWSNT */
54
29#undef signal 55#undef signal
30 56
31#include <ctype.h> 57#include <ctype.h>
32#include <stdio.h> 58#include <stdio.h>
33#include <getopt.h> 59#include "getopt.h"
34#ifdef HAVE_UNISTD_H 60#ifdef HAVE_UNISTD_H
35#include <unistd.h> 61#include <unistd.h>
36#endif 62#endif
37 63
38#ifdef VMS 64#ifdef VMS
39# include "vms-pwd.h" 65# include "vms-pwd.h"
40#else 66#else /* not VMS */
67#ifdef WINDOWSNT
68# include <io.h>
69#else /* not WINDOWSNT */
41# include <pwd.h> 70# include <pwd.h>
71#endif /* not WINDOWSNT */
42#endif /* not VMS */ 72#endif /* not VMS */
43 73
44char *getenv (), *getwd (); 74char *getenv (), *getwd ();
@@ -48,6 +78,29 @@ char *(getcwd) ();
48#define VERSION "unspecified" 78#define VERSION "unspecified"
49#endif 79#endif
50 80
81#define SEND_STRING(data) (send_to_emacs (s, (data)))
82#define SEND_QUOTED(data) (quote_file_name (s, (data)))
83
84#ifndef EXIT_SUCCESS
85#define EXIT_SUCCESS 0
86#endif
87
88#ifndef EXIT_FAILURE
89#define EXIT_FAILURE 1
90#endif
91
92#ifndef FALSE
93#define FALSE 0
94#endif
95
96#ifndef TRUE
97#define TRUE 1
98#endif
99
100#ifndef NO_RETURN
101#define NO_RETURN
102#endif
103
51/* Name used to invoke this program. */ 104/* Name used to invoke this program. */
52char *progname; 105char *progname;
53 106
@@ -62,11 +115,14 @@ char *display = NULL;
62 115
63/* If non-NULL, the name of an editor to fallback to if the server 116/* If non-NULL, the name of an editor to fallback to if the server
64 is not running. --alternate-editor. */ 117 is not running. --alternate-editor. */
65const char * alternate_editor = NULL; 118const char *alternate_editor = NULL;
66 119
67/* If non-NULL, the filename of the UNIX socket. */ 120/* If non-NULL, the filename of the UNIX socket. */
68char *socket_name = NULL; 121char *socket_name = NULL;
69 122
123/* If non-NULL, the filename of the authentication file. */
124char *server_file = NULL;
125
70void print_help_and_exit () NO_RETURN; 126void print_help_and_exit () NO_RETURN;
71 127
72struct option longopts[] = 128struct option longopts[] =
@@ -76,7 +132,10 @@ struct option longopts[] =
76 { "help", no_argument, NULL, 'H' }, 132 { "help", no_argument, NULL, 'H' },
77 { "version", no_argument, NULL, 'V' }, 133 { "version", no_argument, NULL, 'V' },
78 { "alternate-editor", required_argument, NULL, 'a' }, 134 { "alternate-editor", required_argument, NULL, 'a' },
135#ifndef NO_SOCKETS_IN_FILE_SYSTEM
79 { "socket-name", required_argument, NULL, 's' }, 136 { "socket-name", required_argument, NULL, 's' },
137#endif
138 { "server-file", required_argument, NULL, 'f' },
80 { "display", required_argument, NULL, 'd' }, 139 { "display", required_argument, NULL, 'd' },
81 { 0, 0, 0, 0 } 140 { 0, 0, 0, 0 }
82}; 141};
@@ -94,7 +153,12 @@ decode_options (argc, argv)
94 while (1) 153 while (1)
95 { 154 {
96 int opt = getopt_long (argc, argv, 155 int opt = getopt_long (argc, argv,
97 "VHnea:s:d:", longopts, 0); 156#ifndef NO_SOCKETS_IN_FILE_SYSTEM
157 "VHnea:s:f:d:",
158#else
159 "VHnea:f:d:",
160#endif
161 longopts, 0);
98 162
99 if (opt == EOF) 163 if (opt == EOF)
100 break; 164 break;
@@ -110,9 +174,15 @@ decode_options (argc, argv)
110 alternate_editor = optarg; 174 alternate_editor = optarg;
111 break; 175 break;
112 176
177#ifndef NO_SOCKETS_IN_FILE_SYSTEM
113 case 's': 178 case 's':
114 socket_name = optarg; 179 socket_name = optarg;
115 break; 180 break;
181#endif
182
183 case 'f':
184 server_file = optarg;
185 break;
116 186
117 case 'd': 187 case 'd':
118 display = optarg; 188 display = optarg;
@@ -156,9 +226,13 @@ The following OPTIONS are accepted:\n\
156-H, --help Print this usage information message\n\ 226-H, --help Print this usage information message\n\
157-n, --no-wait Don't wait for the server to return\n\ 227-n, --no-wait Don't wait for the server to return\n\
158-e, --eval Evaluate the FILE arguments as ELisp expressions\n\ 228-e, --eval Evaluate the FILE arguments as ELisp expressions\n\
159-d, --display=DISPLAY Visit the file in the given display\n\ 229-d, --display=DISPLAY Visit the file in the given display\n"
160-s, --socket-name=FILENAME\n\ 230#ifndef NO_SOCKETS_IN_FILE_SYSTEM
161 Set the filename of the UNIX socket for communication\n\ 231"-s, --socket-name=FILENAME\n\
232 Set the filename of the UNIX socket for communication\n"
233#endif
234"-f, --server-file=FILENAME\n\
235 Set the filename of the TCP configuration file\n\
162-a, --alternate-editor=EDITOR\n\ 236-a, --alternate-editor=EDITOR\n\
163 Editor to fallback to if the server is not running\n\ 237 Editor to fallback to if the server is not running\n\
164\n\ 238\n\
@@ -166,14 +240,112 @@ Report bugs to bug-gnu-emacs@gnu.org.\n", progname);
166 exit (EXIT_SUCCESS); 240 exit (EXIT_SUCCESS);
167} 241}
168 242
243
244/*
245 Try to run a different command, or --if no alternate editor is
246 defined-- exit with an errorcode.
247*/
248void
249fail (argc, argv)
250 int argc;
251 char **argv;
252{
253 if (alternate_editor)
254 {
255 int i = optind - 1;
256#ifdef WINDOWSNT
257 argv[i] = (char *)alternate_editor;
258#endif
259 execvp (alternate_editor, argv + i);
260 fprintf (stderr, "%s: error executing alternate editor \"%s\"\n",
261 progname, alternate_editor);
262 }
263 exit (EXIT_FAILURE);
264}
265
266
267#if !defined (HAVE_SOCKETS) || !defined (HAVE_INET_SOCKETS)
268
269int
270main (argc, argv)
271 int argc;
272 char **argv;
273{
274 fprintf (stderr, "%s: Sorry, the Emacs server is supported only\n",
275 argv[0]);
276 fprintf (stderr, "on systems with Berkeley sockets.\n");
277
278 fail (argc, argv);
279}
280
281#else /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
282
283#ifdef WINDOWSNT
284# include <winsock2.h>
285#else
286# include <sys/types.h>
287# include <sys/socket.h>
288# include <sys/un.h>
289# include <sys/stat.h>
290# include <errno.h>
291#endif
292
293#define AUTH_KEY_LENGTH 64
294#define SEND_BUFFER_SIZE 4096
295
296extern char *strerror ();
297extern int errno;
298
299/* Buffer to accumulate data to send in TCP connections. */
300char send_buffer[SEND_BUFFER_SIZE + 1];
301int sblen = 0; /* Fill pointer for the send buffer. */
302
303/* Let's send the data to Emacs when either
304 - the data ends in "\n", or
305 - the buffer is full (but this shouldn't happen)
306 Otherwise, we just accumulate it. */
307void
308send_to_emacs (s, data)
309 HSOCKET s;
310 char *data;
311{
312 while (data)
313 {
314 int dlen = strlen (data);
315 if (dlen + sblen >= SEND_BUFFER_SIZE)
316 {
317 int part = SEND_BUFFER_SIZE - sblen;
318 strncpy (&send_buffer[sblen], data, part);
319 data += part;
320 sblen = SEND_BUFFER_SIZE;
321 }
322 else if (dlen)
323 {
324 strcpy (&send_buffer[sblen], data);
325 data = NULL;
326 sblen += dlen;
327 }
328 else
329 break;
330
331 if (sblen == SEND_BUFFER_SIZE
332 || (sblen > 0 && send_buffer[sblen-1] == '\n'))
333 {
334 int sent = send (s, send_buffer, sblen, 0);
335 if (sent != sblen)
336 strcpy (send_buffer, &send_buffer[sent]);
337 sblen -= sent;
338 }
339 }
340}
341
169/* In NAME, insert a & before each &, each space, each newline, and 342/* In NAME, insert a & before each &, each space, each newline, and
170 any initial -. Change spaces to underscores, too, so that the 343 any initial -. Change spaces to underscores, too, so that the
171 return value never contains a space. */ 344 return value never contains a space. */
172
173void 345void
174quote_file_name (name, stream) 346quote_file_name (s, name)
347 HSOCKET s;
175 char *name; 348 char *name;
176 FILE *stream;
177{ 349{
178 char *copy = (char *) malloc (strlen (name) * 2 + 1); 350 char *copy = (char *) malloc (strlen (name) * 2 + 1);
179 char *p, *q; 351 char *p, *q;
@@ -203,73 +375,202 @@ quote_file_name (name, stream)
203 } 375 }
204 *q++ = 0; 376 *q++ = 0;
205 377
206 fprintf (stream, "%s", copy); 378 SEND_STRING (copy);
207 379
208 free (copy); 380 free (copy);
209} 381}
210 382
211/* Like malloc but get fatal error if memory is exhausted. */ 383int
384file_name_absolute_p (filename)
385 const unsigned char *filename;
386{
387 /* Sanity check, it shouldn't happen. */
388 if (! filename) return FALSE;
389
390 /* /xxx is always an absolute path. */
391 if (filename[0] == '/') return TRUE;
392
393 /* Empty filenames (which shouldn't happen) are relative. */
394 if (filename[0] == '\0') return FALSE;
212 395
213long * 396#ifdef WINDOWSNT
214xmalloc (size) 397 /* X:\xxx is always absolute; X:xxx is an error and will fail. */
215 unsigned int size; 398 if (islower (tolower (filename[0]))
399 && filename[1] == ':' && filename[2] == '\\')
400 return TRUE;
401
402 /* Both \xxx and \\xxx\yyy are absolute. */
403 if (filename[0] == '\\') return TRUE;
404#endif
405
406 return FALSE;
407}
408
409#ifdef WINDOWSNT
410/* Wrapper to make WSACleanup a cdecl, as required by atexit(). */
411void
412__cdecl close_winsock ()
216{ 413{
217 long *result = (long *) malloc (size); 414 WSACleanup ();
218 if (result == NULL)
219 {
220 perror ("malloc");
221 exit (EXIT_FAILURE);
222 }
223 return result;
224} 415}
416
417/* Initialize the WinSock2 library. */
418void
419initialize_sockets ()
420{
421 WSADATA wsaData;
422
423 if (WSAStartup (MAKEWORD (2, 0), &wsaData))
424 {
425 fprintf (stderr, "%s: error initializing WinSock2", progname);
426 exit (EXIT_FAILURE);
427 }
428
429 atexit (close_winsock);
430}
431#endif /* WINDOWSNT */
225 432
226/* 433/*
227 Try to run a different command, or --if no alternate editor is 434 * Read the information needed to set up a TCP comm channel with
228 defined-- exit with an errorcode. 435 * the Emacs server: host, port, pid and authentication string.
229*/ 436*/
230void 437int
231fail (argc, argv) 438get_server_config (server, authentication)
232 int argc; 439 struct sockaddr_in *server;
233 char **argv; 440 char *authentication;
234{ 441{
235 if (alternate_editor) 442 char dotted[32];
443 char *port;
444 char *pid;
445 FILE *config = NULL;
446
447 if (file_name_absolute_p (server_file))
448 config = fopen (server_file, "rb");
449 else
236 { 450 {
237 int i = optind - 1; 451 char *home = getenv ("HOME");
238 execvp (alternate_editor, argv + i); 452
239 return; 453 if (home)
454 {
455 char *path = alloca (32 + strlen (home) + strlen (server_file));
456 sprintf (path, "%s/.emacs.d/server/%s", home, server_file);
457 config = fopen (path, "rb");
458 }
459#ifdef WINDOWSNT
460 if (!config && (home = getenv ("APPDATA")))
461 {
462 char *path = alloca (32 + strlen (home) + strlen (server_file));
463 sprintf (path, "%s/.emacs.d/server/%s", home, server_file);
464 config = fopen (path, "rb");
465 }
466#endif
467 }
468
469 if (! config)
470 return FALSE;
471
472 if (fgets (dotted, sizeof dotted, config)
473 && (port = strchr (dotted, ':'))
474 && (pid = strchr (port, ' ')))
475 {
476 *port++ = '\0';
477 *pid++ = '\0';
240 } 478 }
241 else 479 else
242 { 480 {
481 fprintf (stderr, "%s: invalid configuration info", progname);
243 exit (EXIT_FAILURE); 482 exit (EXIT_FAILURE);
244 } 483 }
245}
246 484
485 server->sin_family = AF_INET;
486 server->sin_addr.s_addr = inet_addr (dotted);
487 server->sin_port = htons (atoi (port));
247 488
248 489 if (! fread (authentication, AUTH_KEY_LENGTH, 1, config))
249#if !defined (HAVE_SOCKETS) || defined (NO_SOCKETS_IN_FILE_SYSTEM) 490 {
491 fprintf (stderr, "%s: cannot read authentication info", progname);
492 exit (EXIT_FAILURE);
493 }
250 494
251int 495 fclose (config);
252main (argc, argv)
253 int argc;
254 char **argv;
255{
256 fprintf (stderr, "%s: Sorry, the Emacs server is supported only\n",
257 argv[0]);
258 fprintf (stderr, "on systems with Berkeley sockets.\n");
259 496
260 fail (argc, argv); 497#ifdef WINDOWSNT
498 /*
499 Modern Windows restrict which processes can set the foreground window.
500 So, for emacsclient to be able to force Emacs into the foreground, we
501 have to call AllowSetForegroundWindow(). Unfortunately, older Windows
502 (W95, W98 and NT) don't have this function, so we have to check first.
503
504 We're doing this here because it has to be done before sending info
505 to Emacs, and otherwise we'll need a global variable just to pass around
506 the pid, which is also inelegant.
507 */
508 {
509 HMODULE hUser32;
510
511 if (hUser32 = LoadLibrary ("user32.dll"))
512 {
513 void (*set_fg)(DWORD);
514 if (set_fg = GetProcAddress (hUser32, "AllowSetForegroundWindow"))
515 set_fg (atoi (pid));
516 FreeLibrary (hUser32);
517 }
518 }
519#endif
520
521 return TRUE;
261} 522}
262 523
263#else /* HAVE_SOCKETS */ 524HSOCKET
525set_tcp_socket ()
526{
527 HSOCKET s;
528 struct sockaddr_in server;
529 struct linger l_arg = {1, 1};
530 char auth_string[AUTH_KEY_LENGTH + 1];
264 531
265#include <sys/types.h> 532 if (! get_server_config (&server, auth_string))
266#include <sys/socket.h> 533 return INVALID_SOCKET;
267#include <sys/un.h>
268#include <sys/stat.h>
269#include <errno.h>
270 534
271extern char *strerror (); 535 if (server.sin_addr.s_addr != inet_addr ("127.0.0.1"))
272extern int errno; 536 fprintf (stderr, "%s: connected to remote socket at %s\n",
537 progname, inet_ntoa (server.sin_addr));
538
539 /*
540 * Open up an AF_INET socket
541 */
542 if ((s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
543 {
544 fprintf (stderr, "%s: ", progname);
545 perror ("socket");
546 return INVALID_SOCKET;
547 }
548
549 /*
550 * Set up the socket
551 */
552 if (connect (s, (struct sockaddr *) &server, sizeof server) < 0)
553 {
554 fprintf (stderr, "%s: ", progname);
555 perror ("connect");
556 return INVALID_SOCKET;
557 }
558
559 setsockopt (s, SOL_SOCKET, SO_LINGER, (char *) &l_arg, sizeof l_arg);
560
561 /*
562 * Send the authentication
563 */
564 auth_string[AUTH_KEY_LENGTH] = '\0';
565
566 SEND_STRING ("-auth ");
567 SEND_STRING (auth_string);
568 SEND_STRING ("\n");
569
570 return s;
571}
572
573#if !defined (NO_SOCKETS_IN_FILE_SYSTEM)
273 574
274/* Three possibilities: 575/* Three possibilities:
275 2 - can't be `stat'ed (sets errno) 576 2 - can't be `stat'ed (sets errno)
@@ -291,28 +592,11 @@ socket_status (socket_name)
291 return 0; 592 return 0;
292} 593}
293 594
294int 595HSOCKET
295main (argc, argv) 596set_local_socket ()
296 int argc;
297 char **argv;
298{ 597{
299 int s, i, needlf = 0; 598 HSOCKET s;
300 FILE *out, *in;
301 struct sockaddr_un server; 599 struct sockaddr_un server;
302 char *cwd, *str;
303 char string[BUFSIZ];
304
305 progname = argv[0];
306
307 /* Process options. */
308 decode_options (argc, argv);
309
310 if ((argc - optind < 1) && !eval)
311 {
312 fprintf (stderr, "%s: file name or argument required\n", progname);
313 fprintf (stderr, "Try `%s --help' for more information\n", progname);
314 exit (EXIT_FAILURE);
315 }
316 600
317 /* 601 /*
318 * Open up an AF_UNIX socket in this person's home directory 602 * Open up an AF_UNIX socket in this person's home directory
@@ -320,9 +604,9 @@ main (argc, argv)
320 604
321 if ((s = socket (AF_UNIX, SOCK_STREAM, 0)) < 0) 605 if ((s = socket (AF_UNIX, SOCK_STREAM, 0)) < 0)
322 { 606 {
323 fprintf (stderr, "%s: ", argv[0]); 607 fprintf (stderr, "%s: ", progname);
324 perror ("socket"); 608 perror ("socket");
325 fail (argc, argv); 609 return INVALID_SOCKET;
326 } 610 }
327 611
328 server.sun_family = AF_UNIX; 612 server.sun_family = AF_UNIX;
@@ -352,7 +636,7 @@ main (argc, argv)
352 else 636 else
353 { 637 {
354 fprintf (stderr, "%s: socket-name %s too long", 638 fprintf (stderr, "%s: socket-name %s too long",
355 argv[0], socket_name); 639 progname, socket_name);
356 exit (EXIT_FAILURE); 640 exit (EXIT_FAILURE);
357 } 641 }
358 642
@@ -387,7 +671,7 @@ main (argc, argv)
387 else 671 else
388 { 672 {
389 fprintf (stderr, "%s: socket-name %s too long", 673 fprintf (stderr, "%s: socket-name %s too long",
390 argv[0], socket_name); 674 progname, socket_name);
391 exit (EXIT_FAILURE); 675 exit (EXIT_FAILURE);
392 } 676 }
393 677
@@ -399,61 +683,129 @@ main (argc, argv)
399 } 683 }
400 } 684 }
401 685
402 switch (sock_status) 686 switch (sock_status)
403 { 687 {
404 case 1: 688 case 1:
405 /* There's a socket, but it isn't owned by us. This is OK if 689 /* There's a socket, but it isn't owned by us. This is OK if
406 we are root. */ 690 we are root. */
407 if (0 != geteuid ()) 691 if (0 != geteuid ())
408 { 692 {
409 fprintf (stderr, "%s: Invalid socket owner\n", argv[0]); 693 fprintf (stderr, "%s: Invalid socket owner\n", progname);
410 fail (argc, argv); 694 return INVALID_SOCKET;
411 } 695 }
412 break; 696 break;
413 697
414 case 2: 698 case 2:
415 /* `stat' failed */ 699 /* `stat' failed */
416 if (saved_errno == ENOENT) 700 if (saved_errno == ENOENT)
417 fprintf (stderr, 701 fprintf (stderr,
418 "%s: can't find socket; have you started the server?\n\ 702 "%s: can't find socket; have you started the server?\n\
419To start the server in Emacs, type \"M-x server-start\".\n", 703To start the server in Emacs, type \"M-x server-start\".\n",
420 argv[0]); 704 progname);
421 else 705 else
422 fprintf (stderr, "%s: can't stat %s: %s\n", 706 fprintf (stderr, "%s: can't stat %s: %s\n",
423 argv[0], server.sun_path, strerror (saved_errno)); 707 progname, server.sun_path, strerror (saved_errno));
424 fail (argc, argv); 708 return INVALID_SOCKET;
425 break; 709 }
426 }
427 } 710 }
428 711
429 if (connect (s, (struct sockaddr *) &server, strlen (server.sun_path) + 2) 712 if (connect (s, (struct sockaddr *) &server, strlen (server.sun_path) + 2)
430 < 0) 713 < 0)
431 { 714 {
432 fprintf (stderr, "%s: ", argv[0]); 715 fprintf (stderr, "%s: ", progname);
433 perror ("connect"); 716 perror ("connect");
434 fail (argc, argv); 717 return INVALID_SOCKET;
435 } 718 }
436 719
437 /* We use the stream OUT to send our command to the server. */ 720 return s;
438 if ((out = fdopen (s, "r+")) == NULL) 721}
722#endif /* ! NO_SOCKETS_IN_FILE_SYSTEM */
723
724HSOCKET
725set_socket ()
726{
727 HSOCKET s;
728
729 INITIALIZE ();
730
731#ifndef NO_SOCKETS_IN_FILE_SYSTEM
732 /* Explicit --socket-name argument. */
733 if (socket_name)
439 { 734 {
440 fprintf (stderr, "%s: ", argv[0]); 735 s = set_local_socket ();
441 perror ("fdopen"); 736 if ((s != INVALID_SOCKET) || alternate_editor)
442 fail (argc, argv); 737 return s;
738
739 fprintf (stderr, "%s: error accessing socket \"%s\"",
740 progname, socket_name);
741 exit (EXIT_FAILURE);
443 } 742 }
743#endif
444 744
445 /* We use the stream IN to read the response. 745 /* Explicit --server-file arg or EMACS_SERVER_FILE variable. */
446 We used to use just one stream for both output and input 746 if (!server_file)
447 on the socket, but reversing direction works nonportably: 747 server_file = getenv ("EMACS_SERVER_FILE");
448 on some systems, the output appears as the first input; 748
449 on other systems it does not. */ 749 if (server_file)
450 if ((in = fdopen (s, "r+")) == NULL)
451 { 750 {
452 fprintf (stderr, "%s: ", argv[0]); 751 s = set_tcp_socket ();
453 perror ("fdopen"); 752 if ((s != INVALID_SOCKET) || alternate_editor)
454 fail (argc, argv); 753 return s;
754
755 fprintf (stderr, "%s: error accessing server file \"%s\"",
756 progname, server_file);
757 exit (EXIT_FAILURE);
455 } 758 }
456 759
760#ifndef NO_SOCKETS_IN_FILE_SYSTEM
761 /* Implicit local socket. */
762 s = set_local_socket ();
763 if (s != INVALID_SOCKET)
764 return s;
765#endif
766
767 /* Implicit server file. */
768 server_file = "server";
769 s = set_tcp_socket ();
770 if ((s != INVALID_SOCKET) || alternate_editor)
771 return s;
772
773 /* No implicit or explicit socket, and no alternate editor. */
774 fprintf (stderr, "%s: No socket or alternate editor. Please use:\n\n"
775#ifndef NO_SOCKETS_IN_FILE_SYSTEM
776"\t--socket-name\n"
777#endif
778"\t--server-file (or environment variable EMACS_SERVER_FILE)\n\
779\t--alternate-editor (or environment variable ALTERNATE_EDITOR)\n",
780 progname);
781 exit (EXIT_FAILURE);
782}
783
784int
785main (argc, argv)
786 int argc;
787 char **argv;
788{
789 HSOCKET s;
790 int i, rl, needlf = 0;
791 char *cwd;
792 char string[BUFSIZ+1];
793
794 progname = argv[0];
795
796 /* Process options. */
797 decode_options (argc, argv);
798
799 if ((argc - optind < 1) && !eval)
800 {
801 fprintf (stderr, "%s: file name or argument required\n", progname);
802 fprintf (stderr, "Try `%s --help' for more information\n", progname);
803 exit (EXIT_FAILURE);
804 }
805
806 if ((s = set_socket ()) == INVALID_SOCKET)
807 fail (argc, argv);
808
457#ifdef HAVE_GETCWD 809#ifdef HAVE_GETCWD
458 cwd = getcwd (string, sizeof string); 810 cwd = getcwd (string, sizeof string);
459#else 811#else
@@ -462,27 +814,26 @@ To start the server in Emacs, type \"M-x server-start\".\n",
462 if (cwd == 0) 814 if (cwd == 0)
463 { 815 {
464 /* getwd puts message in STRING if it fails. */ 816 /* getwd puts message in STRING if it fails. */
465
466#ifdef HAVE_GETCWD 817#ifdef HAVE_GETCWD
467 fprintf (stderr, "%s: %s (%s)\n", argv[0], 818 fprintf (stderr, "%s: %s (%s)\n", progname,
468 "Cannot get current working directory", strerror (errno)); 819 "Cannot get current working directory", strerror (errno));
469#else 820#else
470 fprintf (stderr, "%s: %s (%s)\n", argv[0], string, strerror (errno)); 821 fprintf (stderr, "%s: %s (%s)\n", progname, string, strerror (errno));
471#endif 822#endif
472 fail (argc, argv); 823 fail (argc, argv);
473 } 824 }
474 825
475 if (nowait) 826 if (nowait)
476 fprintf (out, "-nowait "); 827 SEND_STRING ("-nowait ");
477 828
478 if (eval) 829 if (eval)
479 fprintf (out, "-eval "); 830 SEND_STRING ("-eval ");
480 831
481 if (display) 832 if (display)
482 { 833 {
483 fprintf (out, "-display "); 834 SEND_STRING ("-display ");
484 quote_file_name (display, out); 835 SEND_QUOTED (display);
485 fprintf (out, " "); 836 SEND_STRING (" ");
486 } 837 }
487 838
488 if ((argc - optind > 0)) 839 if ((argc - optind > 0))
@@ -497,61 +848,62 @@ To start the server in Emacs, type \"M-x server-start\".\n",
497 while (isdigit ((unsigned char) *p) || *p == ':') p++; 848 while (isdigit ((unsigned char) *p) || *p == ':') p++;
498 if (*p != 0) 849 if (*p != 0)
499 { 850 {
500 quote_file_name (cwd, out); 851 SEND_QUOTED (cwd);
501 fprintf (out, "/"); 852 SEND_STRING ("/");
502 } 853 }
503 } 854 }
504 else if (*argv[i] != '/') 855 else if (! file_name_absolute_p (argv[i]))
505 { 856 {
506 quote_file_name (cwd, out); 857 SEND_QUOTED (cwd);
507 fprintf (out, "/"); 858 SEND_STRING ("/");
508 } 859 }
509 860
510 quote_file_name (argv[i], out); 861 SEND_QUOTED (argv[i]);
511 fprintf (out, " "); 862 SEND_STRING (" ");
512 } 863 }
513 } 864 }
514 else 865 else
515 { 866 {
516 while ((str = fgets (string, BUFSIZ, stdin))) 867 while (fgets (string, BUFSIZ, stdin))
517 { 868 {
518 quote_file_name (str, out); 869 SEND_QUOTED (string);
519 } 870 }
520 fprintf (out, " "); 871 SEND_STRING (" ");
521 } 872 }
522 873
523 fprintf (out, "\n"); 874 SEND_STRING ("\n");
524 fflush (out);
525 875
526 /* Maybe wait for an answer. */ 876 /* Maybe wait for an answer. */
527 if (nowait) 877 if (!nowait)
528 return EXIT_SUCCESS;
529
530 if (!eval)
531 {
532 printf ("Waiting for Emacs...");
533 needlf = 2;
534 }
535 fflush (stdout);
536
537 /* Now, wait for an answer and print any messages. */
538 while ((str = fgets (string, BUFSIZ, in)))
539 { 878 {
540 if (needlf == 2) 879 if (!eval)
541 printf ("\n"); 880 {
542 printf ("%s", str); 881 printf ("Waiting for Emacs...");
543 needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; 882 needlf = 2;
883 }
884 fflush (stdout);
885
886 /* Now, wait for an answer and print any messages. */
887 while ((rl = recv (s, string, BUFSIZ, 0)) > 0)
888 {
889 string[rl] = '\0';
890 if (needlf == 2)
891 printf ("\n");
892 printf ("%s", string);
893 needlf = string[0] == '\0' ? needlf : string[strlen (string) - 1] != '\n';
894 }
895
896 if (needlf)
897 printf ("\n");
898 fflush (stdout);
544 } 899 }
545 900
546 if (needlf) 901 CLOSE_SOCKET (s);
547 printf ("\n");
548 fflush (stdout);
549
550 return EXIT_SUCCESS; 902 return EXIT_SUCCESS;
551} 903}
552 904
553#endif /* HAVE_SOCKETS */ 905#endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
554 906
555#ifndef HAVE_STRERROR 907#ifndef HAVE_STRERROR
556char * 908char *
557strerror (errnum) 909strerror (errnum)
diff --git a/lib-src/grep-changelog b/lib-src/grep-changelog
index e3d3af2c577..8c19486ea2e 100755
--- a/lib-src/grep-changelog
+++ b/lib-src/grep-changelog
@@ -36,22 +36,33 @@ use vars qw($author $regexp $exclude $from_date $to_date
36 @entries); 36 @entries);
37 37
38use Getopt::Long; 38use Getopt::Long;
39my $result = GetOptions ("author=s" => \$author, 39
40 "text=s" => \$regexp, 40my $result;
41 "exclude=s" => \$exclude, 41
42 "from-date=s" => \$from_date, 42if (@ARGV == 0) {
43 "to-date=s" => \$to_date, 43
44 "rcs-log" => \$rcs_log, 44 # No arguments cannot posibly mean "show everything"!!
45 "with-date" => \$with_date, 45 $result = 0;
46 "reverse!" => \$reverse, 46
47 "version" => \$version, 47} else {
48 "help" => \$help); 48
49 49 $result = GetOptions ("author=s" => \$author,
50# If date options are specified, check that they have the format 50 "text=s" => \$regexp,
51# YYYY-MM-DD. 51 "exclude=s" => \$exclude,
52 52 "from-date=s" => \$from_date,
53$result = 0 if $from_date && $from_date !~ /^\d\d\d\d-\d\d-\d\d$/; 53 "to-date=s" => \$to_date,
54$result = 0 if $to_date && $to_date !~ /^\d\d\d\d-\d\d-\d\d$/; 54 "rcs-log" => \$rcs_log,
55 "with-date" => \$with_date,
56 "reverse!" => \$reverse,
57 "version" => \$version,
58 "help" => \$help);
59
60 # If date options are specified, check that they have the format
61 # YYYY-MM-DD.
62
63 $result = 0 if $from_date && $from_date !~ /^\d\d\d\d-\d\d-\d\d$/;
64 $result = 0 if $to_date && $to_date !~ /^\d\d\d\d-\d\d-\d\d$/;
65}
55 66
56# Print usage information and exit when necessary. 67# Print usage information and exit when necessary.
57 68
@@ -77,7 +88,7 @@ Valid options are:
77 --help Print this help 88 --help Print this help
78 89
79If no CHANGELOG is specified scan the files "ChangeLog" and 90If no CHANGELOG is specified scan the files "ChangeLog" and
80"ChangeLog.1+" in the current directory. Old-style dates in ChangeLogs 91"ChangeLog.N+" in the current directory. Old-style dates in ChangeLogs
81are not recognized. 92are not recognized.
82USAGE 93USAGE
83 exit !$help; 94 exit !$help;
@@ -86,7 +97,7 @@ USAGE
86# Print version info and exit if `--version' was specified. 97# Print version info and exit if `--version' was specified.
87 98
88if ($version) { 99if ($version) {
89 print "0.2\n"; 100 print "0.3\n";
90 exit 0; 101 exit 0;
91} 102}
92 103
@@ -233,7 +244,7 @@ sub parse_changelog {
233 244
234# If files were specified on the command line, parse those files in the 245# If files were specified on the command line, parse those files in the
235# order supplied by the user; otherwise parse default files ChangeLog and 246# order supplied by the user; otherwise parse default files ChangeLog and
236# ChangeLog.1+ according to $reverse. 247# ChangeLog.NNN according to $reverse.
237unless (@ARGV > 0) { 248unless (@ARGV > 0) {
238 @ARGV = ("ChangeLog"); 249 @ARGV = ("ChangeLog");
239 250
diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in
index 5ac6555f46d..6fa9724a861 100644
--- a/lib-src/makefile.w32-in
+++ b/lib-src/makefile.w32-in
@@ -20,7 +20,7 @@
20# Boston, MA 02110-1301, USA. 20# Boston, MA 02110-1301, USA.
21# 21#
22 22
23ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc 23ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc emacsclient
24 24
25.PHONY: $(ALL) 25.PHONY: $(ALL)
26 26
@@ -32,7 +32,6 @@ LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
32# 32#
33# $(BLD)/server.exe \ 33# $(BLD)/server.exe \
34# $(BLD)/emacstool.exe \ 34# $(BLD)/emacstool.exe \
35# $(BLD)/emacsclient.exe \
36# $(BLD)/cvtmail.exe \ 35# $(BLD)/cvtmail.exe \
37 36
38LIBS = $(BASE_LIBS) $(ADVAPI32) 37LIBS = $(BASE_LIBS) $(ADVAPI32)
@@ -59,6 +58,7 @@ movemail: $(BLD) $(BLD)/movemail.exe
59fakemail: $(BLD) $(BLD)/fakemail.exe 58fakemail: $(BLD) $(BLD)/fakemail.exe
60sorted-doc: $(BLD) $(BLD)/sorted-doc.exe 59sorted-doc: $(BLD) $(BLD)/sorted-doc.exe
61digest-doc: $(BLD) $(BLD)/digest-doc.exe 60digest-doc: $(BLD) $(BLD)/digest-doc.exe
61emacsclient: $(BLD) $(BLD)/emacsclient.exe
62 62
63test-distrib: $(BLD) $(BLD)/test-distrib.exe 63test-distrib: $(BLD) $(BLD)/test-distrib.exe
64 "$(BLD)/test-distrib.exe" "$(SRC)/testfile" 64 "$(BLD)/test-distrib.exe" "$(SRC)/testfile"
@@ -74,6 +74,19 @@ $(BLD)/movemail.exe: $(MOVEMAILOBJS) getopt.h
74# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib 74# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
75 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS) 75 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS)
76 76
77ECLIENT_CFLAGS = -DWINDOWSNT -DHAVE_GETCWD -DHAVE_STRERROR -c
78ECLIENTOBJS = $(BLD)/emacsclient.$(O) \
79 $(BLD)/getopt.$(O) \
80 $(BLD)/getopt1.$(O) \
81 $(BLD)/ntlib.$(O)
82
83$(BLD)/emacsclient.exe: $(ECLIENTOBJS)
84# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
85 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS)
86
87$(BLD)/emacsclient.$(O): emacsclient.c
88 $(CC) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c
89
77ETAGSOBJ = $(BLD)/etags.$(O) \ 90ETAGSOBJ = $(BLD)/etags.$(O) \
78 $(BLD)/getopt.$(O) \ 91 $(BLD)/getopt.$(O) \
79 $(BLD)/getopt1.$(O) \ 92 $(BLD)/getopt1.$(O) \
@@ -253,6 +266,15 @@ lisp2 = \
253 $(lispsource)window.elc \ 266 $(lispsource)window.elc \
254 $(lispsource)version.el 267 $(lispsource)version.el
255 268
269# This is needed the first time we build the tree, since temacs.exe
270# does not exist yet, and the DOC rule needs it to rebuild DOC whenever
271# Emacs is rebuilt.
272../src/$(BLD)/temacs.exe:
273 - mkdir "../src/$(OBJDIR)"
274 - mkdir "../src/$(BLD)"
275 @echo temacs > temacs.exe
276 $(CP) temacs.exe ../src/$(BLD)
277 - $(DEL) temacs.exe
256 278
257DOC = DOC 279DOC = DOC
258$(DOC): $(BLD) $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2) 280$(DOC): $(BLD) $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2)
@@ -286,6 +308,7 @@ install: $(INSTALL_FILES)
286 $(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin 308 $(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin
287 $(CP) $(BLD)/sorted-doc.exe $(INSTALL_DIR)/bin 309 $(CP) $(BLD)/sorted-doc.exe $(INSTALL_DIR)/bin
288 $(CP) $(BLD)/digest-doc.exe $(INSTALL_DIR)/bin 310 $(CP) $(BLD)/digest-doc.exe $(INSTALL_DIR)/bin
311 $(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin
289 - mkdir "$(INSTALL_DIR)/etc" 312 - mkdir "$(INSTALL_DIR)/etc"
290 $(CP) $(DOC) $(INSTALL_DIR)/etc 313 $(CP) $(DOC) $(INSTALL_DIR)/etc
291 314