1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-13 17:40:22 -08:00
Commit graph

2611 commits

Author SHA1 Message Date
Paul Eggert
99fa8c3dbf - 2016-01-30 13:56:23 -08:00
Paul Eggert
cb4e054e41 - 2016-01-30 11:43:26 -08:00
lu4nx
40a85fba44 Support Go language in 'etags'
* lib-src/etags.c <Ruby_help>: Fix documentation of Ruby tags.
<Go_help>: New help.
<Go_suffixes>: New variable.
(Go_functions): New function.
<lang_names>: Add entry for Go.  (Bug#22370)

* doc/emacs/maintaining.texi (Tag Syntax): Document Go support.
* doc/man/etags.1: Mention Go support.

* etc/NEWS: Mention Go support.

* test/etags/go-src/test.go:
* test/etags/go-src/test1.go: New test files.
* test/etags/Makefile (GOSRC): New variable.
(SRCS): Add $(GOSRC).
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to addition of Go tests.
2016-01-30 14:56:43 +02:00
Eli Zaretskii
25b79d7bc7 Improve Ruby support in 'etags'
* lib-src/etags.c (Ruby_functions): Tag constants.  Don't tag
singleton classes.  Remove class qualifiers from tags generated
for method and constant names.  (Bug#22241)

* doc/emacs/maintaining.texi (Tag Syntax): Mention that constants
are tagged by etags in Ruby.

* etc/NEWS: Mention that constants are tagged by etags in Ruby.

* test/etags/ruby-src/test1.ruby: Add more tests.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to the changes in etags and in Ruby
tests.
2016-01-30 14:16:36 +02:00
Paul Eggert
6475f9265e Port "$@" to OpenIndiana ksh93
In http://lists.gnu.org/archive/html/bug-autoconf/2015-12/msg00000.html
Pavel Raiskup reports that ${1+"$@"} runs afoul of a bug in /bin/sh
(derived from ksh 93t+ 2010-03-05).  ${1+"$@"} works around an ancient
bug in long-dead shells, so remove the workaround.
* admin/check-doc-strings, configure.ac, lib-src/rcs2log:
Use plain "$@" rather than ${1+"$@"}.
2016-01-24 17:29:01 -08:00
Eli Zaretskii
fee0526a18 Unhide the --no-line-directive option to 'etags'
* lib-src/etags.c (print_help): Un-undocument the --no-line-directive
option.  (Bug#22306)

* doc/man/etags.1: Document the --no-line-directive option.
2016-01-15 10:54:03 +02:00
John Wiegley
1dd4f26ab6 Merge from origin/emacs-25
ef33bc7 Spelling and grammar fixes
9c3dbab Fix copyright years by hand
0e96320 Update copyright year to 2016
2016-01-11 22:48:07 -08:00
Glenn Morris
c6d3c60f28 Build tweaks related to tags files.
* lib-src/Makefile.in (tagsfiles): New variable.
(TAGS): Also depend on the source files.  Use our own etags program.
* lisp/Makefile.in (ETAGS): Add EXEEXT.
(lisptagsfiles1, lisptagsfiles2, lisptagsfiles3, lisptagsfiles4):
Remove.
(tagsfiles): New, replacing lisptagsfiles1 etc.
Remove irrelevant source files here rather than in the TAGS rule.
(${ETAGS}): New rule.
(TAGS): Also depend on the etags executable.
* lwlib/Makefile.in (EXEEXT): New, set by configure.
(ETAGS): Add EXEEXT.
(${ETAGS}): New rule.
(ctagsfiles): Use "wildcard".
(TAGS): Also depend on the etags executable.
* nt/Makefile.in (ETAGS, tagsfiles): New variables.
(${ETAGS}): New rule.
(TAGS): Fix dependencies.
* oldXMenu/Makefile.in (EXEEXT): New, set by configure.
(ETAGS): New variable, replacing $TAGS.  Use our own etags program.
Remove "-t" argument.
(${ETAGS}): New rule.
(tagsfiles): New variable.
(TAGS): New rule, with proper dependencies.
* src/Makefile.in (ETAGS): Add EXEEXT.  Add a build rule.
(ctagsfiles1, ctagsfiles2): Use "wildcard".
(ctagsfiles3): Remove.
(TAGS): Depend on etags.
(../lisp/TAGS, $(lwlibdir)/TAGS): Let the rules in the relevant
directories decide if updates are needed.
2016-01-06 18:25:47 -05:00
Paul Eggert
9c3dbabee3 Fix copyright years by hand
These are dates that admin/update-copyright did not update, or
updated incorrectly.
2016-01-01 01:38:07 -08:00
Paul Eggert
0e963201d0 Update copyright year to 2016
Run admin/update-copyright.
2016-01-01 01:34:24 -08:00
Paul Eggert
7d7e742fe3 Remove SunOS 4.x cruft
Support for SunOS 4.x was removed in Emacs 23 but some cruft was left behind.
* lib-src/pop.c [sun]: Remove no-longer-needed include.
* lwlib/xlwmenu.c (SUNSO41): Remove.
2015-12-18 17:11:23 -08:00
Eli Zaretskii
3e08f784d1 Improve Lua support in etags
* lib-src/etags.c (Lua_functions): Skip spaces before looking for
"function".

* etc/NEWS: Mention improved Lua support by 'etags'.

* test/etags/lua-src/test.lua (test): Add tests for indented
function definitions.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to the modified Lua tests.
2015-12-11 12:07:26 +02:00
Eli Zaretskii
cabe904438 Improve and document Ruby support in 'etags'
* lib-src/etags.c (Ruby_suffixes): Add ".ruby".
(Ruby_functions): Support "module" and overloaded operators.
(Ruby_help): Mention "module".

* test/etags/ruby-src/test.rb:
* test/etags/ruby-src/test1.ruby: New files.
* test/etags/Makefile (RBSRC): New tests.
(SRCS): Add ${RBSRC}.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to the new Ruby tests.

* doc/man/etags.1: Mention Ruby support.
* etc/NEWS: Mention Ruby support.
2015-12-11 11:17:31 +02:00
Xi Lu
95b6e13c13 Initial support for Ruby in 'etags'
* lib-src/etags.c <Ruby_suffixes>: New variable.
(lang_names): Add an entry for Ruby.
(Ruby_functions): New function.  (Bug#22116)
2015-12-11 10:52:08 +02:00
Eli Zaretskii
690ccf0f0d Fix Lua tags when a function name includes '.' or ':'
* lib-src/etags.c (Lua_functions): Add a tag for the last element
of a function name after a dot or a colon.  (Bug#21934)
2015-11-28 12:29:18 +02:00
Paul Eggert
cd428600c2 Spelling fixes 2015-10-21 20:26:49 -07:00
Paul Eggert
38f99a02b8 Unmacroize ebrowse.c and etags.c a bit
* lib-src/ebrowse.c (READ_CHUNK_SIZE): Now an enum constant.
(streq, filename_eq, set_flag, has_flag): Now inline functions.
(set_flag): First arg is now an address, not an lvalue.
All callers changed.
(filename_eq, set_flag, has_flag):
Rename from FILENAME_EQ, SET_FLAG, HAS_FLAG.
All callers changed.
* lib-src/etags.c (streq, strcaseeq, strneq, strncaseeq):
Now inline functions.  Remove asserts that are unnecessary these
days (and in some cases were too-generous anyway).
2015-10-12 15:33:53 -07:00
Paul Eggert
29dfca2355 Use ‘echo’ safely with ‘\’ or leading ‘-’
POSIX says that ‘echo FOO’ produces implementation-defined output
if FOO contains leading ‘-’, or ‘\’ anywhere, so don’t assume GNU
behavior in that case.
* Makefile.in (removenullpaths): Remove.
(epaths-force): Rewrite to avoid the need for ‘echo’.
(install-etc): Be clearer about escaping the shell metacharacters
‘\’ and ‘$’.
* Makefile.in (install-arch-indep, install-etcdoc):
* admin/charsets/mapconv, admin/merge-gnulib, admin/merge-pkg-config:
* admin/quick-install-emacs, build-aux/gitlog-to-emacslog:
* configure.ac, lib-src/rcs2log, make-dist:
* src/Makefile.in (lisp.mk):
Don’t assume ‘echo’ outputs ‘\’ and leading ‘-’ unscathed.
For example, use ‘printf '%s\n' "$foo"’ rather than ‘echo "$foo"’
if $foo can contain arbitrary characters.
* lisp/Makefile.in (TAGS): Use ‘ls’, not ‘echo’, to avoid ‘\’ issues.
* doc/lispref/two-volume.make (vol1.pdf):
* test/etags/make-src/Makefile (web ftp publish):
Use ‘printf’ rather than ‘echo -e’.
2015-10-10 18:11:27 -07:00
Paul Eggert
e56096dbb9 Minor quoting fixes in scripts and doc
Prefer straight quotes in random script files, as they are not converted.
Prefer grave quotes in a couple of places in the manual that were missed
earlier, as these quotes are converted.
2015-09-16 16:07:15 -07:00
Paul Eggert
8865587c55 Add -Wswitch to --enable-gcc-warnings
Make --enable-gcc-warnings a bit pickier, by also using -Wswitch.
* configure.ac (WERROR_CFLAGS): Don’t add -Wno-switch.
* lib-src/etags.c (main, consider_token, C_entries):
* src/coding.c (encode_invocation_designation):
* src/data.c (Ftype_of):
* src/eval.c (Fdefvaralias, default_toplevel_binding)
(Fbacktrace__locals, mark_specpdl):
* src/lisp.h (record_xmalloc):
* src/syntax.c (scan_lists, scan_sexps_forward):
* src/window.c (window_relative_x_coord):
* src/xdisp.c (push_it, pop_it):
* src/xterm.c (xg_scroll_callback, x_check_fullscreen):
Error out or do nothing (as appropriate) if a switch statement
with an enum value does not cover all of the enum.
* src/dispextern.h (struct iterator_stack_entry.u.comp):
Remove unused member discovered by using -Wswitch.
* src/lisp.h (record_xmalloc): Add a ‘+ 0’ to pacify -Wswitch.
* src/vm-limit.c (check_memory_limits):
Simplify warning-diagnostic computation by using a table.
2015-09-16 15:07:23 -07:00
Paul Eggert
82198ed57e etags ‘fatal’ function is now printf-like
* lib-src/etags.c (fatal): Now printf-like.  All callers changed.
Also, now static; not clear why it needed to be extern.
(verror): New function, with most of the old contents of ‘error’.
(fatal, error): Use it.
2015-09-16 14:39:54 -07:00
Paul Eggert
818f06eaa7 Prefer straight quoting in some text files
Mostly this just changes ` to ' in static text.  Some exceptions:
* INSTALL.REPO: Use curved quotes, as the diagnostic in question
typically does that now.
* admin/quick-install-emacs (TRY, top level):
Use straight quoting in diagnostics.
* src/README: Fix working-directory confusion.
2015-09-11 11:05:12 -07:00
Paul Eggert
54ea37308a Refix movemail GCC pacification
Problem reported by Ken Brown in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00406.html
* lib-src/movemail.c (main): Fix previous change.
2015-09-09 15:45:44 -07:00
Paul Eggert
b6c8cb57fc Port movemail to RHEL 6 with --enable-gcc-warnings
* lib-src/movemail.c (main): Declare local only if needed.
2015-09-09 03:36:25 -07:00
Paul Eggert
2934c21f2d Use straight quotes in lib-src diagnostics
These auxiliary programs can’t use Emacs’s text-quoting-style,
and it’s too much trouble to redo that mechanism by hand.
So just use straight quotes for now.
* lib-src/ebrowse.c (main):
* lib-src/emacsclient.c (decode_options, main):
* lib-src/etags.c (Ada_help, default_C_help, Cplusplus_help)
(Forth_help, HTML_help, Lisp_help, Makefile_help, Objc_help)
(Perl_help, PHP_help, Python_help, Scheme_help, TeX_help, auto_help)
(none_help, print_language_names, print_help, add_regex)
(suggest_asking_for_help):
* lib-src/make-docfile.c (write_c_args, scan_c_stream):
Use straight quotes in diagnostics.
2015-08-27 02:37:35 -07:00
Glenn Morris
208cfda3aa * admin/admin.el (set-version, set-copyright): Remove deleted files.
; * src/emacs,c, lib-src/ntlib.c: Comment updates.
2015-08-15 10:40:06 -07:00
Eli Zaretskii
8db2b2a7d3 Remove files used by the old MS-Windows specific build procedure
* nt/configure.bat: Remove everything except the blurb about the
new build procedure.

* make-dist: Remove references to makefile.w32-in in various
directories, and to files in nt/ that were deleted.

* etc/NEWS: Mention the fact that the files were dropped.
2015-08-15 10:56:51 +03:00
Evgeny Fraimovitch
c6a626ebac Don't abort emacsclientw when -a was specified
* lib-src/emacsclient.c (set_tcp_socket) [WINDOWSNT]: Don't error
out if we are in emacsclientw and -a was specified.

Copyright-paperwork-exempt: yes
2015-08-02 17:48:42 +03:00
Paul Eggert
319eeeb0fb Get ‘./configure; make -C src emacs’ to work
Without this fix, lib/fcntl.h isn't built in time (Bug#20894).
* lib-src/Makefile.in (../lib/libgnu.a):
* src/Makefile.in ($(lib)/libgnu.a): Build all, not libgnu.a.
2015-06-24 23:35:02 -07:00
Paul Eggert
1efdf7feb3 Make TAGS files more portable to MS-Windows
* etc/NEWS: Document this.
* lib-src/etags.c (readline_internal) [DOS_NT]:
Don't treat CRs differently from GNUish hosts.
* lisp/progmodes/etags.el (etags-goto-tag-location):
Adjust STARTPOS to account for the skipped CRs in dos-style files.
2015-05-25 13:22:36 -07:00
Eli Zaretskii
ac59d53898 Fix a typo in last commit
* lib-src/etags.c (C_entries): Fix a typo.

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/CTAGS.good: Update due to the change in etags.c.
2015-05-25 18:08:09 +03:00
Eli Zaretskii
9c66c5a0ca Fix tagging of class members in C-like OO languages
* lib-src/etags.c (longopts): Add new option --class-qualify and
its shorthand -Q.
(print_help): Add help text for --class-qualify.
(main): Add handling of -Q.
(consider_token, C_entries) <omethodparm>: Append argument types
to Objective C methods only if --class-qualify was specified.
Qualify C++, Objective C, and Java class members with their class
names only if --class-qualify was specified.
(C_entries): If --class-qualify was not specified, remove the
namespace and class qualifiers from tag names of C++ methods.
This allows to use etags.el as xref back-end without the
tag-symbol-match-p method, which greatly increases the number of
potentially false positives.  (Bug#20629)

* doc/man/etags.1: Update to document the new --class-qualify
option.

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/CTAGS.good: Update due to changes in etags.c.
2015-05-25 18:02:21 +03:00
Eli Zaretskii
adc846ad48 Fix last change in etags.c that broke tagging compresed files
* lib-src/etags.c (process_file_name) [MSDOS || DOS_NT]: Fix
quoting of decompression shell command for MS-Windows/MS-DOS.
2015-05-25 17:24:33 +03:00
Paul Eggert
675c90a3b4 Simpilify etags TEX mode scanning
* lib-src/etags.c (TEX_mode, TEX_esc, TEX_opgrp, TEX_clgrp):
Remove static vars.
(TeX_commands): Deduce escapes here instead.
(TEX_LESC, TEX_SESC, TEX_mode): Remove; all uses removed.
This removes the need for a reset_input call.
2015-05-24 14:20:10 -07:00
Paul Eggert
379d77dfa3 Improve etags I/O error reporting
* lib-src/etags.c:
Don't include sys/types.h and sys/stat.h; no longer needed.
(infilename): New static var.
(process_file_name): Don't call 'stat'.  Instead, just open the
file for reading and report any errors.  Don't bother making
a copy of the file argument; it's not needed.  Be more careful to
use the failing errno when reporting an error.
Quote the real name better (though no perfectly)
when passing it to the shell.
(reset_input): New function, which reports I/O errors.
All uses of 'rewind' changed to use this function.
(perhaps_more_input): New function, which also checks for
I/O errors.  All uses of 'feof' changed to use this function.
(analyze_regex): Report an error if fclose fails.
(readline_internal): Report an error if getc fails.
(etags_mktmp): Return an error if close fails.
2015-05-24 14:20:09 -07:00
Paul Eggert
3441b0cc61 etags.c: avoid side effects in 'if'
* lib-src/etags.c (process_file_name, Perl_functions)
(TEX_decode_env): Hoist side effects into previous statement.
2015-05-24 14:20:09 -07:00
Eli Zaretskii
b98a2ef747 Fix last change in etags.c, which failed the test suite
* lib-src/etags.c (intoken): Add '$' to the set, as it was there
before the last change.
2015-05-24 10:19:36 +03:00
Paul Eggert
fb11a5e117 Cleanup etags.c to use locale-independent code
Although this doesn't alter behavior (as etags doesn't use
setlocale), the new version is more clearly locale-independent and
the executable is a bit smaller on my platform.
* lib-src/etags.c: Include <limits.h>, for UCHAR_MAX.
Include <c-ctype.h> instead of <ctype.h>.
(CHARS, CHAR, init, _wht, _nin, _itk, _btk, _etk, white, nonam, endtk)
(begtk, midtk):
Remove; no longer needed.
(iswhite, ISALNUM, ISALPHA, ISDIGIT, ISLOWER, lowcase): Remove.
All callers changed to use c_isspace, c_isalnum, c_isalpha, c_isdigit,
c_islower, c_tolower, respectively.
(notinname, begtoken, intoken, endtoken): Rewrite as functions
instead of macros, and initialize the tables at compile-time
rather than at run-time.
2015-05-23 15:19:02 -07:00
Eli Zaretskii
1f83c3e524 Fix etags reading of compressed files
* lib-src/etags.c (O_CLOEXEC) [WINDOWSNT]: Define.
Include fcntl.h, for O_CLOEXEC.
(process_file_name): Don't use 'popen', whose streams cannot be
rewound.  Instead, uncompress the file to a temporary file,
created by 'etags_mktmp', and read from that as usual.
(etags_mktmp): New function.

* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5: Update to be consistent with latest
changes in etags.c regarding reading compressed files.
2015-05-23 11:35:45 +03:00
Stefan Monnier
ea92591983 Change defgeneric so it doesn't completely redefine the function
* lisp/emacs-lisp/cl-generic.el (cl-generic-define): Don't throw away
previously defined methods.
(cl-generic-define-method): Let-bind purify-flag instead of using `fset'.
(cl--generic-prefill-dispatchers): Only define during compilation.
(cl-method-qualifiers): Remove redundant alias.
(help-fns-short-filename): Silence byte-compiler.
* test/automated/cl-generic-tests.el: Adjust to new defgeneric semantics.
2015-05-21 23:46:10 -04:00
Eli Zaretskii
e1890e3e82 Fix slash collapsing in etags on MS-Windows
* lib-src/etags.c (canonicalize_filename) [DOS_NT]: Separate the
MS-Windows code from the Posix code, and support collapsing both
forward- and back-slashes on MS-Windows.  Fixes a regression found
by the test suite.
2015-05-20 18:18:33 +03:00
Glenn Morris
741b224a84 ; * lib-src/etags.c: Comment.
Ref: http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00342.html
2015-05-15 21:04:28 -04:00
Eli Zaretskii
c03c195a27 Fix tagging of symbols in C enumerations
* lib-src/etags.c (consider_token): Don't tag symbols in
expressions that assign values to enum constants.  See
http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00291.html
for details.
(C_entries): Reset fvdef to fvnone after processing a preprocessor
conditional and after a comma outside of parentheses.
2015-05-12 19:35:54 +03:00
Paul Eggert
52ba851db1 Port --enable-gcc-warnings to GCC 5.1 x86-64
* lib-src/ebrowse.c (dump_sym):
* lib-src/hexl.c (main):
* src/ccl.c (ccl_driver):
* src/character.c (string_escape_byte8):
* src/dbusbind.c (xd_retrieve_arg, xd_add_watch):
* src/gnutls.c (Fgnutls_boot):
* src/gtkutil.c (xg_check_special_colors):
* src/image.c (x_build_heuristic_mask):
* src/print.c (safe_debug_print, print_object):
* src/term.c (produce_glyphless_glyph):
* src/xdisp.c (get_next_display_element)
(produce_glyphless_glyph):
* src/xterm.c (x_draw_glyphless_glyph_string_foreground):
Don't use a signed format to print an unsigned integer, or vice
versa.  GCC 5.1's new -Wformat-signedness option warns about this.
* src/image.c (png_load_body, jpeg_load_body):
Silence a bogus setjump diagnostic from GCC 5.1 (GCC bug 54561).
2015-04-24 22:41:56 -07:00
Paul Eggert
9d7afc0ccc Remove configure's --with-mmdf option
* configure.ac (MAIL_USE_MMDF): Remove.
* etc/NEWS: Document this.
* lib-src/movemail.c: Assume MAIL_USE_MMDF is not defined.
Fixes: bug#20308
2015-04-12 14:56:32 -07:00
Paul Eggert
dd1404cca3 Rename ChangeLogs for gitlog-to-changelog
This patch was implemented via the following shell commands:
find * -name ChangeLog |
sed 's,.*,git mv & &.1,
s, lisp/ChangeLog\.1$, lisp/ChangeLog.17,
s, lisp/erc/ChangeLog\.1$, lisp/erc/ChangeLog.09,
s, lisp/gnus/ChangeLog\.1$, lisp/gnus/ChangeLog.3,
s, lisp/mh-e/ChangeLog\.1$, lisp/mh-e/ChangeLog.2,
s, src/ChangeLog\.1$, src/ChangeLog.13,' |
sh
git commit -am"[this commit message]"
2015-04-07 00:00:06 -07:00
Paul Eggert
84c7c6fd2b Port etags to -DDEBUG
* etags.c (xnew, xrnew) [DEBUG]: Don't include chkmalloc.h, which
is not part of Emacs and is typically not installed.
Instead, just invoke xmalloc and xrealloc as usual.
Problem reported by Nicolas Richard in:
http://bugs.gnu.org/20191#20
(xrnew): Avoid no-longer-needed cast to 'char *'.
(xrealloc): First arg is now void *, not char *.
2015-03-27 11:14:33 -07:00
Paul Eggert
e1acc3c7ef Random minor fixes for movemail
* movemail.c: Include <stdbool.h> and <signal.h>.
(waitpid) [WINDOWSNT]: New macro.
(wait) [WINDOWSNT]: Remove.
(main, popmail, pop_retr, mbx_write, mbx_delimit_begin)
(mbx_delimit_end): Use bool for boolean.
(main): Simplify #if usage a bit.
(main): Don't assume EOF == -1.  Prefer 'return' to 'exit'.  Don't
possibly unlink lockname twice, as that's a race condition.  Set
SIGCHLD to SIG_DFL to work around SysV misfeature.  Check for fork
failure.  Use waitpid, not wait, to avoid a race condition in the
unlikely case where we start up with a child.
(NOTOK, OK): Remove, in favor of plain boolean.
(popmail, pop_retr): Don't get confused about errno, e.g., ferror
need not set errno.
(popmail): Use fclose (mbf), not close (fileno (mbf)), to also
detect any stream-related errors (e.g., memory exhaustion).
(pop_retr): Report pop errors separately, since caller now does
errno reporting.
(mbx_write, mbx_delimit_begin, mbx_delimit_end): Check < 0, not ==
EOF, as it's a bit faster and (in theory) pickier.
2015-03-06 15:41:45 -08:00
Mark Laws
805fe50708 Support daemon mode on MS-Windows (bug#19688)
src/emacs.c <w32_daemon_event> [WINDOWSNT]: New global var.
 (main) [WINDOWSNT]: Initialize it to NULL.  Create the event to
 signal clients we are ready for connections.
 (Fdaemon_initialized): Use DAEMON_RUNNING.
 [WINDOWSNT]: MS-Windows specific code to signal clients we are
 ready for connections.
 src/lisp.h (DAEMON_RUNNING): New macro, encapsulates Posix and
 MS-Windows conditions for running in daemon mode.
 src/minibuf.c (read_minibuf): Use DAEMON_RUNNING.
 src/keyboard.c (kbd_buffer_get_event): Use DAEMON_RUNNING.
 src/dispnew.c (init_display) [WINDOWSNT]: Initialize frames/terminal
 even in daemon mode.

 nt/inc/ms-w32.h (W32_DAEMON_EVENT): New macro.

 lib-src/emacsclient.c (decode_options) [WINDOWSNT]: Don't reject empty
 arguments for --alternate-editor.
 (print_help_and_exit) [WINDOWSNT]: Don't refrain from advertising
 empty arguments for --alternate-editor.
 (start_daemon_and_retry_set_socket) [WINDOWSNT]: MS-Windows
 specific code to start Emacs in daemon mode and wait for it to be
 ready for client connections.

 lisp/server.el (server-process-filter): Force GUI frames on
 MS-Windows in daemon mode, even if a TTY frame was requested.
 lisp/frameset.el (frameset-keep-original-display-p): Don't assume
 windows-nt cannot be in daemon mode.
 lisp/frame.el (window-system-for-display): Don't assume windows-nt
 cannot be in daemon mode.
2015-02-27 12:43:30 +02:00
Paul Eggert
ed7005c0e9 Fix previous change's attribution 2015-02-23 10:17:21 -08:00