Commit graph

284 commits

Author SHA1 Message Date
Chong Yidong
9a864fa27d Move "emacsclient -t -n" handling from emacsclient.c to server.el.
Fix its buggy logic for the Windows case (regression from 23.4).

* lib-src/emacsclient.c (decode_options): Move -t -n corner case handling
into server.el.

* lisp/server.el (server-process-filter): Handle corner case where both
tty and nowait options are present.

Fixes: debbugs:11102
2012-04-15 16:49:24 +08:00
Juanma Barranquero
9401b32679 lib-src/emacsclient.c (decode_options) [WINDOWSNT]: Fix typo in 2011-12-04T17:13:01Z!lekktu@gmail.com.
Call ttyname instead of passing its address.
2012-04-12 20:22:06 +02:00
Andreas Schwab
e29ab36b48 Define -print-nonl client command
* lib-src/emacsclient.c (main): Handle -print-nonl command.

* lisp/server.el (server-msg-size): New constant.
(server-reply-print): New function.
(server-eval-and-print): Use it.
(server-eval-at): Use server-quote-arg and server-unquote-arg.
Handle -print-nonl.
2012-03-11 18:53:07 +01:00
Andreas Schwab
2b84f674cc * emacsclient.c (main): Handle multiple messages in a single
datagram.
2012-03-11 12:49:59 +01:00
Andreas Schwab
6b0c89847a Don't access freed memory in emacsclient
* emacsclient.c (socket_name): Add const.
(get_server_config): Add parameter config_file, use it instead of
global server_file.
(set_tcp_socket): Add parameter local_server_file, pass it down to
get_server_config.
(set_local_socket): Add parameter local_socket_name, use it
instead of global socket_name.
(set_socket): Adjust calls to set_local_socket and set_tcp_socket.
Don't clobber global server_file or socket_name.
(main): No longer reset server_file or socket_name.
2012-03-11 12:15:25 +01:00
Glenn Morris
acaf905b11 Add 2012 to FSF copyright years for Emacs files 2012-01-05 01:46:05 -08:00
Juanma Barranquero
520fca41d6 Fix emacsclient bug where "-n -c" does not open a new frame on Windows.
* lib-src/emacsclient.c (decode_options) [WINDOWSNT]: Don't force tty = 0;
instead, treat both -c and -t as always requesting a new "tty" frame,
and let server.el decide which kind is actually required.
Reported by Uwe Siart <usenet@siart.de> in this thread:
http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00303.html

* lisp/server.el (server-delete-client): On Windows, do not try to delete
the only terminal.
(server-process-filter): On Windows, treat requests for a tty frame as
if they were for a GUI frame if the running server is in GUI mode.
2011-12-04 18:13:01 +01:00
Chong Yidong
7ebc1f135e Fix typo in comment. 2011-11-30 23:43:33 +08:00
Chong Yidong
e7308292aa * emacsclient.c (main): Condition last change on WINDOWSNT (Bug#10155). 2011-11-30 16:13:05 +08:00
Eli Zaretskii
8c9afb4694 Fix MS-Windows build with MSVC compiler.
Parts of the changes by Fabrice Popineau  <fabrice.popineau@supelec.fr>.

 lib-src/makefile.w32-in (LOCAL_FLAGS): Add $(EMACS_EXTRA_C_FLAGS).
 lib-src/emacsclient.c (main) <environ>: Remove declaration, already
 pulled in by unistd.h on Posix hosts and stdlib.h on MS-Windows.
 nt/inc/stdint.h (uint32_t, uint64_t) [_WIN64]: New typedefs.
 (UINT64_MAX) [_WIN64]: Fix definition.
 (uintmax_t, intmax_t): Fix definitions.
 nt/inc/inttypes.h (strtoumax, strtoimax) [!__MINGW32__]: Provide
 correct definitions.
 nt/config.nt (HAVE_DECL_STRTOLL): Define.
 (va_copy) [_WIN64]: Provide a better definition.
 src/s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
 (snprintf) [_MSC_VER]: Redirect to _snprintf.
 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
 (malloc, free, realloc, calloc): Redirect to e_* only when
 compiling Emacs.
 src/lisp.h (GCTYPEBITS): Move before first use.
 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
 this macro definition.
 (tzname): Redirect to _tzname for all values of _MSC_VER.

Fixes: debbugs:9960
2011-11-27 20:52:53 +02:00
Paul Eggert
8350f087ef Spelling fixes. 2011-11-14 12:23:26 -08:00
Juanma Barranquero
657d08d30a src/image.c, src/w32*.c, lib-src/emacsclient.c: Silence warnings under -Wall. 2011-10-27 02:59:21 +02:00
Paul Eggert
17107bb698 Integer and memory overflow issues.
* emacsclient.c (xmalloc): Accept size_t, not unsigned int, to
avoid potential buffer overflow issues on typical 64-bit hosts.
Return void *, not long *.
(get_current_dir_name): Report a failure, instead of looping
forever, if buffer size calculation overflows.  Treat malloc
failures like realloc failures, as that has better behavior and is
more consistent.  Do not check whether xmalloc returns NULL, as
that's not possible.
(message): Do not arbitrarily truncate message to 2048 bytes when
sending it to stderr; use vfprintf instead.
(get_server_config, set_local_socket)
(start_daemon_and_retry_set_socket): Do not alloca
arbitrarily-large buffers; that's not safe.
(get_server_config, set_local_socket): Do not use sprintf when its
result might not fit in 'int'.
(set_local_socket): Do not assume uid fits in 'int'.
2011-08-28 16:52:34 -07:00
Jason Rumney
bc92abd282 * lib-src/emacsclient.c (decode_options) [WINDOWSNT]: Avoid tty mode on
Windows.

Fixes: debbugs:5486
2011-07-02 23:07:57 +08:00
Glenn Morris
a150502ad8 * lib-src/emacsclient.c (print_help_and_exit): More fixing of previous. 2011-06-25 12:52:34 -07:00
Glenn Morris
5f9388d04e * lib-src/emacsclient.c (print_help_and_exit): Fix previous change. 2011-06-25 12:33:07 -07:00
Glenn Morris
3794a2d3a4 Minor additions for previous emacsclient change.
* lib-src/emacsclient.c (decode_options) <opt>: Add `F:'.
(print_help_and_exit): Mention --frame-parameters.
2011-06-25 11:13:14 -07:00
Andreas Rottmann
18a4ce5ea1 Allow emacsclient to set parameters of new graphical frames (bug#5864)
* lib-src/emacsclient.c (longopts, decode_options, main): Add frame-parameters.

* lisp/server.el (server-create-window-system-frame): Add parameters arg.
(server-process-filter): Doc fix.  Handle frame-parameters.

* doc/emacs/misc.texi (emacsclient Options): Mention --frame-parameters.
* doc/man/emacsclient.1: Mention --frame-parameters.

* etc/NEWS: Mention this.
2011-06-25 11:05:48 -07:00
Dan Nicolaescu
fe91f5a091 * lib-src/emacsclient.c (socket_status): Use constant pointer. 2011-06-01 10:15:27 -07:00
Paul Eggert
c5443aa547 * emacsclient.c (main): Don't use uninitialized var.
(IS_ANY_SEP): Remove; unused.
(get_current_dir_name): Add an extern decl.
2011-04-16 14:11:28 -07:00
Paul Eggert
72b04a8a97 * emacsclient.c (message): Mark it as a printf-like function. 2011-04-05 12:59:58 -07:00
Glenn Morris
9af30bdf17 Remove (RET)SIGTYPE; it is identical to void on all supported systems.
Ref: http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg01068.html

* configure.in (AC_TYPE_SIGNAL): Remove obsolete macro.
(AH_BOTTOM): Do not define SIGTYPE.

* lib-src/emacsclient.c: Replace SIGTYPE with void.

* nt/config.nt: Remove RETSIGTYPE, SIGTYPE (identical to void).

* src/syssignal.h: Replace RETSIGTYPE with void.

* src/atimer.c, src/data.c, src/dispnew.c, src/emacs.c, src/floatfns.c:
* src/keyboard.c, src/keyboard.h, src/lisp.h, src/process.c, src/sysdep.c:
* src/xterm.c: Replace SIGTYPE with void everywhere.

* src/s/template.h (SIGTYPE): Remove commented out definition.
* src/s/usg5-4-common.h (SIGTYPE): Remove definition.

* admin/CPP-DEFINES: Remove SIGTYPE.
2011-03-26 19:27:11 -07:00
Drake Wilson
0b973fc594 Add --quiet option for emacsclient (bug#663) (tiny change)
* lib-src/emacsclient.c (longopts): Add quiet.
(decode_options): Handle q/quiet.
(print_help_and_exit): Add q/quiet.
(main): Suppress some messages if quiet option is used.

* doc/emacs/misc.texi (emacsclient Options): Add q/quiet.
2011-03-02 23:00:23 -08:00
Eli Zaretskii
a54af40e14 Fix the MS-Windows build after 2011-02-26T05:54:36Z!eggert@cs.ucla.edu.
emacsclient.c (xstrdup) [WINDOWSNT]: Function added back.
 (w32_getenv): Use xstrdup to return all values in malloc'ed
 storage.
2011-02-26 09:44:38 +02:00
Paul Eggert
4be3dfc5e3 * emacsclient.c (IF_LINT): New macro.
(set_local_socket, main): Use it to suppress warnings with
GCC -Wuninitialized.
2011-02-25 16:17:02 -08:00
Paul Eggert
b9170155fb * emacsclient.c (xstrdup): Remove; no longer needed.
(get_current_dir_name, w32_getenv, get_server_config, find_tty):
(set_local_socket, main):
Use const char *, not char *, for pointers that are not assigned
through.
2011-02-25 15:55:06 -08:00
Paul Eggert
7e6bb4c94c * emacsclient.c (main): Avoid dangling 'if'. 2011-02-25 15:39:18 -08:00
Paul Eggert
b0bbc07d9a * emacsclient.c: Redo local variables to avoid shadowing problems.
(message, socket_status, start_daemon_and_retry_set_socket):
Rename locals.
(main): Move decl of "i".
2011-02-25 15:35:16 -08:00
Paul Eggert
b23b5a5b7d Declare file-scope functions and variables static if not exported.
This is more consistent, and is nicer with gcc -Wstrict-prototypes.
* ebrowse.c, emacsclient.c, fakemail.c, make-docfile.c, movemail.c:
* profile.c, test-distrib.c, update-game-score.c:
Declare non-'main' functions and variables to be static.
* ebrowse.c: Omit redundant function prototypes.
2011-02-21 10:06:25 -08:00
Karl Chen
b166dcd8bb * lib-src/emacsclient.c (main): Loop while `recv' return EINTR. 2011-02-18 17:28:09 -05:00
Paul Eggert
03fc768bf7 * emacsclient.c: conform to C89 pointer rules 2011-02-04 23:18:46 -08:00
Glenn Morris
73b0cd5003 Convert consecutive FSF copyright years to ranges. 2011-01-24 20:08:28 -08:00
Paul Eggert
a3e44e7937 Merge from mainline. 2011-01-17 11:01:01 -08:00
Glenn Morris
0d9f702fd0 Nuke arch-tags. 2011-01-15 15:16:57 -08:00
Paul Eggert
8a1f4a98c1 Merge from mainline. 2011-01-14 10:14:17 -08:00
Stefan Monnier
77ab81d054 Merge from emacs-23 2011-01-14 12:18:41 -05:00
Paul Eggert
4004364e67 Include <unistd.h> unilaterally. 2011-01-09 00:12:35 -08:00
Paul Eggert
613f7bda1d Include <getopt.h> not "getopt.h".
* ebrowse.c, emacsclient.c: Include <getopt.h>, not "getopt.h".
Since getopt.h is no longer in this directory, there's no point
using the form with double-quotes.
2011-01-09 00:00:02 -08:00
Glenn Morris
5df4f04cd3 Add 2011 to FSF/AIST copyright years. 2011-01-02 15:50:46 -08:00
Stefan Monnier
4a47c27573 Merge from emacs-23 2010-11-17 22:54:14 -05:00
YAMAMOTO Mitsuharu
e6068ab302 Add fall-back definition of _CS_DARWIN_USER_TEMP_DIR (fix last failed check-in). 2010-11-10 17:35:27 +09:00
Juanma Barranquero
4628bef1ee Merge changes from emacs-23 branch. 2010-10-08 12:14:47 +02:00
Dan Nicolaescu
728a982db4 Fix compilation warnings.
* lib-src/test-distrib.c (cool_read):
* lib-src/movemail.c (main, concat):
* lib-src/make-docfile.c (scan_file, write_c_args):
* emacsclient.c	(get_server_config): Fix -Wconversion warning.
(egetenv): Move conditional definition earlier.
(progname): Use const.
* lib-src/sorted-doc.c (xstrdup): Use const.
2010-10-03 16:35:22 -07:00
Wolfgang Schnerring
3ecb8d931a * emacsclient.c (main): Return EXIT_FAILURE if Emacs sends us an error string
(Bug#6963).
2010-10-02 20:00:01 -04:00
Glenn Morris
b336bfcdf3 Close bug#3992.
* lib-src/emacsclient.c (set_local_socket) [DARWIN_OS]: Try as a fall-back
DARWIN_USER_TEMP_DIR.
2010-09-30 20:41:12 -07:00
Juanma Barranquero
968ef9b4da lisp/server.el: Use just one way to pass the Emacs PID to emacsclient.
* lib-src/emacsclient.c (get_server_config): Don't read Emacs pid from
  the authentication file.

* lisp/server.el (server-start): Don't write pid to the authentication file.
  (server-create-tty-frame): Don't send pid.
  (server-process-filter): Send pid at the start of every connection.
2010-09-30 04:53:26 +02:00
Juanma Barranquero
6ab88e02c9 * emacsclient.c (main): Remove unused variables.
(start_daemon_and_retry_set_socket): Use EXIT_FAILURE.
2010-09-29 10:18:40 +02:00
Jan D
988e88ab11 Fix warnings produced by compiling with -Wwrite_strings (i.e. use const char *).
* b2m.c (concat, fatal): Use const char*.
(main): Don't assign labels a string literal.

* ebrowse.c (struct member): filename, def_filename is const.
(struct sym): filename, sfilename is const.
(struct kw): name is const.
(add_sym, yyerror, token_string, insert_keyword, main): Use const char*.

* emacsclient.c (message, sock_err_message, send_to_emacs)
(quote_argument, set_local_socket)
(start_daemon_and_retry_set_socket): Use const char*.

* etags.c (compressor, language, Ada_suffix, Ada_help, Asm_suffixes)
(Asm_help, default_C_suffixes, default_C_help, Cplusplus_suffixes)
(Cplusplus_help, Cjava_suffixes, Cobol_suffixes, Cstar_suffixes)
(Erlang_suffixes, Erlang_help, Forth_suffixes, Forth_help)
(Fortran_suffixes, Fortran_help, HTML_suffixes,  HTML_help)
(Lisp_suffixes, Lisp_help, Lua_suffixes, Lua_help)
(Makefile_filenames, Makefile_help, Objc_suffixes, Objc_help)
(Pascal_suffixes, Pascal_help, Perl_suffixes, Perl_interpreters)
(Perl_help, PHP_suffixes, PHP_help, plain_C_suffixses, PS_suffixes)
(PS_help, Prolog_suffixes, Prolog_help, Python_suffixes, Python_help)
(Scheme_suffixes, Scheme_help, TeX_suffixes, TeX_help, Texinfo_suffixes)
(Texinfo_help, Yacc_suffixes, Yacc_help, auto_help, none_help)
(no_lang_help, print_language_names)
(get_language_from_interpreter, get_language_from_filename)
(init, make_tag, struct C_stab_entry, write_classname, TEX_defenv)
(TEX_decode_env, nocase_tail, savestr, savenstr, fatal, pfatal)
(concat): Use const char*.

* make-docfile.c (error, fatal, scan_c_file, scan_lisp_file): Use
const char *.

* movemail.c (fatal, error, concat): Use const char *.

* pop.c (pop_multi_first, socket_connection, sendline): Use conat char*.

* pop.h (pop_multi_first): Use const char *.
(_ARGS): Remove.

* sorted-doc.c (error, fatal, states): Use const char *.

* update-game-score.c (get_prefix, write_scores, main): Use const char*.
2010-08-11 10:20:34 +02:00
Dan Nicolaescu
0613f5d515 emacsclient.c cleanups.
* lib-src/emacsclient.c: Move socket related #includes together with the
rest of the #includes.  Move a WINDOWSNT includes closer together.
(HAVE_CONFIG_H): Remove.
(NO_RETURN): Remove, defined in config.h.
(main): Convert definition to standard C.
2010-08-05 21:09:54 -07:00
Juanma Barranquero
35a7804dae * emacsclient.c (getcwd): Fix previous change.
Make getcwd conditional on HAVE_GETCWD and declare with the
  correct POSIX profile (for some reason MinGW headers define
  its 2nd arg as int, not size_t; but getcwd is not used on
  Windows nonetheless).
2010-07-25 05:36:54 +02:00