From 401bf9b4708c19d3c86c888ce482014ca559a5b8 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 17 Mar 2011 20:30:24 -0700 Subject: process.c: Use socklen_t, not int, for socket lengths. --- src/process.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index c9b420ab2ae..5a410c1e924 100644 --- a/src/process.c +++ b/src/process.c @@ -3467,7 +3467,7 @@ usage: (make-network-process &rest ARGS) */) if (EQ (service, Qt)) { struct sockaddr_in sa1; - int len1 = sizeof (sa1); + socklen_t len1 = sizeof (sa1); if (getsockname (s, (struct sockaddr *)&sa1, &len1) == 0) { ((struct sockaddr_in *)(lres->ai_addr))->sin_port = sa1.sin_port; @@ -3514,7 +3514,8 @@ usage: (make-network-process &rest ARGS) */) /* Unlike most other syscalls connect() cannot be called again. (That would return EALREADY.) The proper way to wait for completion is select(). */ - int sc, len; + int sc; + socklen_t len; SELECT_TYPE fdset; retry_select: FD_ZERO (&fdset); @@ -3587,7 +3588,7 @@ usage: (make-network-process &rest ARGS) */) if (!is_server) { struct sockaddr_in sa1; - int len1 = sizeof (sa1); + socklen_t len1 = sizeof (sa1); if (getsockname (s, (struct sockaddr *)&sa1, &len1) == 0) contact = Fplist_put (contact, QClocal, conv_sockaddr_to_lisp ((struct sockaddr *)&sa1, len1)); @@ -4192,7 +4193,7 @@ server_accept_connection (Lisp_Object server, int channel) struct sockaddr_un un; #endif } saddr; - int len = sizeof saddr; + socklen_t len = sizeof saddr; s = accept (channel, &saddr.sa, &len); @@ -5059,7 +5060,7 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd, /* getsockopt(,,SO_ERROR,,) is said to hang on some systems. So only use it on systems where it is known to work. */ { - int xlen = sizeof (xerrno); + socklen_t xlen = sizeof (xerrno); if (getsockopt (channel, SOL_SOCKET, SO_ERROR, &xerrno, &xlen)) xerrno = errno; } @@ -5171,7 +5172,7 @@ read_process_output (Lisp_Object proc, register int channel) /* We have a working select, so proc_buffered_char is always -1. */ if (DATAGRAM_CHAN_P (channel)) { - int len = datagram_address[channel].len; + socklen_t len = datagram_address[channel].len; nbytes = recvfrom (channel, chars + carryover, readmax, 0, datagram_address[channel].sa, &len); } -- cgit v1.2.1 From b93aacde821363e25f86bad302cc2a8c32ff82ac Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 19 Mar 2011 19:40:14 -0700 Subject: * process.c: Rename or move locals to avoid shadowing. (list_processes_1, Fmake_network_process): (read_process_output_error_handler, exec_sentinel_error_handler): Rename or move locals. --- src/process.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index c9b420ab2ae..952bc8e23da 100644 --- a/src/process.c +++ b/src/process.c @@ -1250,8 +1250,8 @@ Returns nil if format of ADDRESS is invalid. */) static Lisp_Object list_processes_1 (Lisp_Object query_only) { - register Lisp_Object tail, tem; - Lisp_Object proc, minspace, tem1; + register Lisp_Object tail; + Lisp_Object proc, minspace; register struct Lisp_Process *p; char tembuf[300]; int w_proc, w_buffer, w_tty; @@ -1453,10 +1453,10 @@ list_processes_1 (Lisp_Object query_only) } else { - tem = p->command; + Lisp_Object tem = p->command; while (1) { - tem1 = Fcar (tem); + Lisp_Object tem1 = Fcar (tem); if (NILP (tem1)) break; Finsert (1, &tem1); @@ -3705,10 +3705,10 @@ usage: (make-network-process &rest ARGS) */) { /* Setup coding systems for communicating with the network stream. */ - struct gcpro gcpro1; + struct gcpro inner_gcpro1; /* Qt denotes we have not yet called Ffind_operation_coding_system. */ Lisp_Object coding_systems = Qt; - Lisp_Object args[5], val; + Lisp_Object fargs[5], val; if (!NILP (tem)) { @@ -3731,11 +3731,11 @@ usage: (make-network-process &rest ARGS) */) coding_systems = Qnil; else { - args[0] = Qopen_network_stream, args[1] = name, - args[2] = buffer, args[3] = host, args[4] = service; - GCPRO1 (proc); - coding_systems = Ffind_operation_coding_system (5, args); - UNGCPRO; + fargs[0] = Qopen_network_stream, fargs[1] = name, + fargs[2] = buffer, fargs[3] = host, fargs[4] = service; + GCPRO1_VAR (proc, inner_gcpro); + coding_systems = Ffind_operation_coding_system (5, fargs); + UNGCPRO_VAR (inner_gcpro); } if (CONSP (coding_systems)) val = XCAR (coding_systems); @@ -3764,11 +3764,11 @@ usage: (make-network-process &rest ARGS) */) coding_systems = Qnil; else { - args[0] = Qopen_network_stream, args[1] = name, - args[2] = buffer, args[3] = host, args[4] = service; - GCPRO1 (proc); - coding_systems = Ffind_operation_coding_system (5, args); - UNGCPRO; + fargs[0] = Qopen_network_stream, fargs[1] = name, + fargs[2] = buffer, fargs[3] = host, fargs[4] = service; + GCPRO1_VAR (proc, inner_gcpro); + coding_systems = Ffind_operation_coding_system (5, fargs); + UNGCPRO_VAR (inner_gcpro); } } if (CONSP (coding_systems)) @@ -5128,9 +5128,9 @@ read_process_output_call (Lisp_Object fun_and_args) } static Lisp_Object -read_process_output_error_handler (Lisp_Object error) +read_process_output_error_handler (Lisp_Object error_val) { - cmd_error_internal (error, "error in process filter: "); + cmd_error_internal (error_val, "error in process filter: "); Vinhibit_quit = Qt; update_echo_area (); Fsleep_for (make_number (2), Qnil); @@ -6534,9 +6534,9 @@ exec_sentinel_unwind (Lisp_Object data) } static Lisp_Object -exec_sentinel_error_handler (Lisp_Object error) +exec_sentinel_error_handler (Lisp_Object error_val) { - cmd_error_internal (error, "error in process sentinel: "); + cmd_error_internal (error_val, "error in process sentinel: "); Vinhibit_quit = Qt; update_echo_area (); Fsleep_for (make_number (2), Qnil); -- cgit v1.2.1 From 4dc343ee3651cfefa2091788f4749a71ccbe741b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 19 Mar 2011 19:41:23 -0700 Subject: * process.c (Fmake_network_process): Define label "retry_connect" only if needed. --- src/process.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index 952bc8e23da..fb6dc95bb31 100644 --- a/src/process.c +++ b/src/process.c @@ -3403,7 +3403,9 @@ usage: (make-network-process &rest ARGS) */) { int optn, optbits; +#ifdef WINDOWSNT retry_connect: +#endif s = socket (lres->ai_family, lres->ai_socktype, lres->ai_protocol); if (s < 0) -- cgit v1.2.1 From 0da4933597401742827d31c66836082c1ee70875 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 19 Mar 2011 19:42:34 -0700 Subject: * process.c (Fnetwork_interface_info): Fix pointer signedness. --- src/process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index fb6dc95bb31..3cdf045f4f4 100644 --- a/src/process.c +++ b/src/process.c @@ -3950,7 +3950,7 @@ FLAGS is the current flags of the interface. */) CHECK_STRING (ifname); memset (rq.ifr_name, 0, sizeof rq.ifr_name); - strncpy (rq.ifr_name, SDATA (ifname), sizeof (rq.ifr_name)); + strncpy (rq.ifr_name, SSDATA (ifname), sizeof (rq.ifr_name)); s = socket (AF_INET, SOCK_STREAM, 0); if (s < 0) -- cgit v1.2.1 From f990b4e5d91b66e20f06cc0dab0b3f0ab97c3f91 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 19 Mar 2011 19:45:19 -0700 Subject: * process.c (process_send_signal): Add cast to avoid pointer signedness problem. --- src/process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index 3cdf045f4f4..ae7ec158ef9 100644 --- a/src/process.c +++ b/src/process.c @@ -5927,7 +5927,7 @@ process_send_signal (Lisp_Object process, int signo, Lisp_Object current_group, if (sig_char && *sig_char != CDISABLE) { - send_process (proc, sig_char, 1, Qnil); + send_process (proc, (char *) sig_char, 1, Qnil); return; } /* If we can't send the signal with a character, -- cgit v1.2.1 From 7b8081265e19732eb3e0defde970e1ccfad5fbcc Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 19 Mar 2011 19:48:50 -0700 Subject: * process.c (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros. --- src/process.c | 9 --------- 1 file changed, 9 deletions(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index ae7ec158ef9..5bc1707756b 100644 --- a/src/process.c +++ b/src/process.c @@ -159,9 +159,6 @@ extern Lisp_Object QCfilter; #define SERIALCONN_P(p) (EQ (XPROCESS (p)->type, Qserial)) #define SERIALCONN1_P(p) (EQ ((p)->type, Qserial)) -/* Define first descriptor number available for subprocesses. */ -#define FIRST_PROC_DESC 3 - #ifndef HAVE_H_ERRNO extern int h_errno; #endif @@ -278,10 +275,6 @@ static SELECT_TYPE connect_wait_mask; /* Number of bits set in connect_wait_mask. */ static int num_pending_connects; - -#define IF_NON_BLOCKING_CONNECT(s) s -#else /* NON_BLOCKING_CONNECT */ -#define IF_NON_BLOCKING_CONNECT(s) #endif /* NON_BLOCKING_CONNECT */ /* The largest descriptor currently in use for a process object. */ @@ -4930,8 +4923,6 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd, d->func (channel, d->data, 0); } - /* Really FIRST_PROC_DESC should be 0 on Unix, - but this is safer in the short run. */ for (channel = 0; channel <= max_process_desc; channel++) { if (FD_ISSET (channel, &Available) -- cgit v1.2.1 From 12d8b6ab59c4a70a7af46361dc4ff05308982a54 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 19 Mar 2011 20:07:54 -0700 Subject: * process.c (create_process): Use 'volatile' to avoid vfork clobbering. --- src/process.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index 5bc1707756b..5ee731a5bd3 100644 --- a/src/process.c +++ b/src/process.c @@ -1912,8 +1912,7 @@ create_process (Lisp_Object process, char **new_argv, Lisp_Object current_dir) /* child_setup must clobber environ on systems with true vfork. Protect it from permanent change. */ char **save_environ = environ; - - current_dir = ENCODE_FILE (current_dir); + volatile Lisp_Object encoded_current_dir = ENCODE_FILE (current_dir); #ifndef WINDOWSNT pid = vfork (); @@ -2054,13 +2053,13 @@ create_process (Lisp_Object process, char **new_argv, Lisp_Object current_dir) child_setup_tty (xforkout); #ifdef WINDOWSNT pid = child_setup (xforkin, xforkout, xforkout, - new_argv, 1, current_dir); + new_argv, 1, encoded_current_dir); #else /* not WINDOWSNT */ #ifdef FD_CLOEXEC emacs_close (wait_child_setup[0]); #endif child_setup (xforkin, xforkout, xforkout, - new_argv, 1, current_dir); + new_argv, 1, encoded_current_dir); #endif /* not WINDOWSNT */ } environ = save_environ; -- cgit v1.2.1 From f868cd8a7186e86e4c9bbd52de2aca99fa94648f Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Sat, 26 Mar 2011 02:23:15 +0100 Subject: src/*.h: Remove unused parameters and functions. * keyboard.h (timer_check, show_help_echo): Remove unused parameters. * keyboard.c (timer_check): Remove parameter `do_it_now', unused since 1996-04-12T06:01:29Z!rms@gnu.org. (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo', unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca. * keyboard.c (read_char): * w32menu.c (w32_menu_display_help): * xmenu.c (show_help_event, menu_help_callback): Adjust calls to `show_help_echo'. * gtkutil.c (xg_maybe_add_timer): * keyboard.c (readable_events): * process.c (wait_reading_process_output): * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'. * insdel.c (adjust_markers_gap_motion): Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org. (gap_left, gap_right): Don't call it. --- src/process.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index 4a7202388bf..639b6a49fce 100644 --- a/src/process.c +++ b/src/process.c @@ -4548,7 +4548,7 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd, struct buffer *old_buffer = current_buffer; Lisp_Object old_window = selected_window; - timer_delay = timer_check (1); + timer_delay = timer_check (); /* If a timer has run, this might have changed buffers an alike. Make read_key_sequence aware of that. */ @@ -6946,7 +6946,7 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd, do { int old_timers_run = timers_run; - timer_delay = timer_check (1); + timer_delay = timer_check (); if (timers_run != old_timers_run && do_display) /* We must retry, since a timer may have requeued itself and that could alter the time delay. */ -- cgit v1.2.1 From c5101a77a4066d979698d356c3a9c7f387007359 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 26 Mar 2011 19:12:36 -0700 Subject: Variadic C functions now count arguments with size_t, not int. --- src/process.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index 639b6a49fce..ecda8e08012 100644 --- a/src/process.c +++ b/src/process.c @@ -1512,11 +1512,11 @@ the command through a shell and redirect one of them using the shell syntax. usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) - (int nargs, register Lisp_Object *args) + (size_t nargs, register Lisp_Object *args) { Lisp_Object buffer, name, program, proc, current_dir, tem; register unsigned char **new_argv; - register int i; + register size_t i; int count = SPECPDL_INDEX (); buffer = args[1]; @@ -1722,7 +1722,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) new_argv = (unsigned char **) alloca ((nargs - 1) * sizeof (char *)); new_argv[nargs - 2] = 0; - for (i = nargs - 3; i >= 0; i--) + for (i = nargs - 2; i-- != 0; ) { new_argv[i] = SDATA (XCAR (tem)); tem = XCDR (tem); @@ -2681,7 +2681,7 @@ Examples: \(serial-process-configure :port "\\\\.\\COM13" :bytesize 7) usage: (serial-process-configure &rest ARGS) */) - (int nargs, Lisp_Object *args) + (size_t nargs, Lisp_Object *args) { struct Lisp_Process *p; Lisp_Object contact = Qnil; @@ -2799,7 +2799,7 @@ Examples: \(make-serial-process :port "/dev/tty.BlueConsole-SPP-1" :speed nil) usage: (make-serial-process &rest ARGS) */) - (int nargs, Lisp_Object *args) + (size_t nargs, Lisp_Object *args) { int fd = -1; Lisp_Object proc, contact, port; @@ -3077,7 +3077,7 @@ The original argument list, modified with the actual connection information, is available via the `process-contact' function. usage: (make-network-process &rest ARGS) */) - (int nargs, Lisp_Object *args) + (size_t nargs, Lisp_Object *args) { Lisp_Object proc; Lisp_Object contact; @@ -3393,7 +3393,8 @@ usage: (make-network-process &rest ARGS) */) for (lres = res; lres; lres = lres->ai_next) { - int optn, optbits; + size_t optn; + int optbits; #ifdef WINDOWSNT retry_connect: -- cgit v1.2.1 From 9af30bdf17f8371664bc0c5854c91c2e46257b5e Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 26 Mar 2011 19:27:11 -0700 Subject: 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. --- src/process.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/process.c') diff --git a/src/process.c b/src/process.c index 639b6a49fce..148f5b59f8a 100644 --- a/src/process.c +++ b/src/process.c @@ -5470,7 +5470,7 @@ read_process_output (Lisp_Object proc, register int channel) jmp_buf send_process_frame; Lisp_Object process_sent_to; -static SIGTYPE +static void send_process_trap (int ignore) { SIGNAL_THREAD_CHECK (SIGPIPE); @@ -5497,7 +5497,7 @@ send_process (volatile Lisp_Object proc, const char *volatile buf, EMACS_INT rv; struct coding_system *coding; struct gcpro gcpro1; - SIGTYPE (*volatile old_sigpipe) (int); + void (*volatile old_sigpipe) (int); GCPRO1 (object); @@ -5619,7 +5619,7 @@ send_process (volatile Lisp_Object proc, const char *volatile buf, while (this > 0) { int outfd = p->outfd; - old_sigpipe = (SIGTYPE (*) (int)) signal (SIGPIPE, send_process_trap); + old_sigpipe = (void (*) (int)) signal (SIGPIPE, send_process_trap); #ifdef DATAGRAM_SOCKETS if (DATAGRAM_CHAN_P (outfd)) { @@ -6379,7 +6379,7 @@ process has been transmitted to the serial port. */) indirectly; if it does, that is a bug */ #ifdef SIGCHLD -static SIGTYPE +static void sigchld_handler (int signo) { int old_errno = errno; -- cgit v1.2.1