1. 22 Mar, 2014 1 commit
  2. 22 Feb, 2014 1 commit
  3. 21 Feb, 2014 1 commit
    • Glenn Morris's avatar
      Some doc updates for default process sentinels and filters not being nil · 458e643b
      Glenn Morris authored
      * doc/lispref/internals.texi (Process Internals):
      * doc/lispref/processes.texi (Deleting Processes, Output from Processes)
      (Process Buffers, Filter Functions, Accepting Output, Sentinels)
      (Network, Network Servers, Network Processes, Serial Ports):
      Filters and sentinels can no longer be nil.
      
      * doc/lispref/elisp.texi (Top): Menu update.
      
      * doc/misc/flymake.texi (Starting the syntax check process): Grammar fix.
      
      * doc/misc/tramp.texi (External packages): Grammar fix.
      Reword for default sentinel not being nil any more.
      
      * src/process.c (Fprocess_buffer, Faccept_process_output)
      (Finternal_default_process_filter, Finternal_default_process_sentinel):
      Doc fixes.
      458e643b
  4. 30 Jan, 2014 1 commit
  5. 20 Jan, 2014 1 commit
  6. 01 Jan, 2014 1 commit
  7. 18 Dec, 2013 2 commits
    • Paul Eggert's avatar
      Minor fixes for recent openp changes. · 518c40a2
      Paul Eggert authored
      * lisp.h (GCPRO7): New macro.
      * lread.c (openp): Use bool for boolean; all callers changed.
      Protect save_string from GC.  Don't assume that file descriptors
      are nonzero.  Redo save_mtime comparison to avoid bogus GCC
      warning about uninitialized variable.
      518c40a2
    • Glenn Morris's avatar
      Add load-prefer-newer option, to load .el if newer than .elc · 1f41ee56
      Glenn Morris authored
      * src/lread.c (Fload): Pass load_prefer_newer to openp.
      Don't bother checking mtime if openp already did it.
      (openp): Add `newer' argument, to check all suffixes
      and find the newest file.
      (syms_of_lread) <load_prefer_newer>: New option. 
      
      * src/callproc.c (call_process):
      * src/charset.c (load_charset_map_from_file):
      * src/emacs.c (init_cmdargs):
      * src/image.c (x_create_bitmap_from_file, x_find_image_file):
      * src/lisp.h (openp):
      * lread.c (Flocate_file_internal):
      * src/process.c (Fformat_network_address):
      * src/sound.c (Fplay_sound_internal):
      * src/w32.c (check_windows_init_file):
      * src/w32proc.c (sys_spawnve): Update for new arg spec of openp.
      
      * lisp/Makefile.in (BYTE_COMPILE_FLAGS): Set load-prefer-newer to t.
      
      * etc/NEWS: Mention this.
      
      Fixes: debbugs:2061
      1f41ee56
  8. 15 Dec, 2013 1 commit
  9. 23 Nov, 2013 1 commit
  10. 18 Nov, 2013 1 commit
  11. 06 Nov, 2013 1 commit
  12. 05 Nov, 2013 2 commits
    • Paul Eggert's avatar
      Fix recent gnutls changes. · 69369809
      Paul Eggert authored
      * gnutls.c (Fgnutls_boot): Don't assume C99.
      * process.c (wait_reading_process_output): Fix typo in recent change.
      69369809
    • Ted Zlatanov's avatar
      Several GnuTLS fixes for log level and initialization. · 194b4d9f
      Ted Zlatanov authored
      * gnutls.c (emacs_gnutls_handle_error): Adjust log level for EAGAIN.
      (Fgnutls_boot): Set process gnutls_p later, after initialization.
      
      * process.c (wait_reading_process_output, read_process_output)
      (send_process): Check gnutls_state is not NULL.
      194b4d9f
  13. 04 Nov, 2013 1 commit
    • Paul Eggert's avatar
      Port to stricter C99 platforms. · 91f2d272
      Paul Eggert authored
      Especially, C99 prohibits nesting a struct X inside struct Y if
      struct X has a flexible array member.
      Also, merge from gnulib, incorporating:
      2013-11-03 intprops: port to Oracle Studio c99
      * lib/intprops.h: Update from gnulib.
      * src/alloc.c (struct sdata): New type.
      (sdata): Implement in terms of struct sdata.
      Remove u member; all uses replaced by next_vector, set_next_vector.
      (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
      (SDATA_DATA_OFFSET): Now a constant, not a macro.
      (struct sblock): Rename first_data member to data, which is now
      a flexible array member.  All uses changed.
      (next_vector, set_next_vector, large_vector_vec): New functions.
      (vector_alignment): New constant.
      (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
      (struct large-vector): Now merely a NEXT member, since the old approach
      ran afoul of stricter C99.  All uses changed to use
      large_vector_vec or large_vector_offset.
      (large_vector_offset): New constant.
      * src/dispnew.c: Include tparam.h, for tgetent.
      Do not include term.h; no longer needed.
      * src/gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
      * src/lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
      (struct Lisp_Vector): Use a flexible array member for contents,
      instead of a union with a member that is an array of size 1.
      All uses changed.
      (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
      fact that the struct no longer contains a union.
      (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
      (struct Lisp_Save_Value, struct Lisp_Free):
      Use unsigned, not int, for spacers, to avoid c99 warning.
      (union specbinding): Use unsigned, not bool, for bitfield, as
      bool is not portable to pre-C99 hosts.
      91f2d272
  14. 17 Oct, 2013 1 commit
    • Paul Eggert's avatar
      Make some functions static in non-Microsoft builds. · 3d798ba7
      Paul Eggert authored
      On my platform (Fedora 19 x86-64), this shrinks the
      Emacs executable (text+data) by 0.25%.
      * dispextern.h (erase_phys_cursor) [!WINDOWSNT]:
      (load_color) [!MSDOS]:
      * gnutls.h (emacs_gnutls_transport_set_errno) [!WINDOWSNT]:
      * keyboard.h (make_ctrl_char) [!WINDOWSNT]:
      * lisp.h (check_existing):
      * process.h (conv_sockaddr_to_lisp, network_interface_list)
      (network_interface_info) [!WINDOWSNT]:
      * termhooks.h (encode_terminal_code) [!WINDOWSNT]:
      Remove extern decls.
      * fileio.c (check_existing):
      * keyboard.c (make_ctrl_char) [!WINDOWSNT]:
      * process.c (conv_sockaddr_to_lisp, network_interface_list)
      (network_interface_info) [!WINDOWSNT]:
      * term.c (encode_terminal_code) [!WINDOWSNT]:
      * xdisp.c (erase_phys_cursor) [!WINDOWSNT]:
      * xfaces.c (load_color) [!MSDOS]:
      Now static.
      * fileio.c (check_existing, check_executable, check_writable):
      * process.c (network_interface_list, network_interface_info):
      Move earlier, so that we don't need forward decls.
      * gnutls.c (fn_gnutls_transport_set_errno)
      (emacs_gnutls_transport_set_errno) [!WINDOWNT]:
      Remove; unused.
      * w32.c (init_environment): Use faccessat rather than
      check_existing, partly for consistency with the rest of the code
      in this file, partly so that check_existing can be static.
      3d798ba7
  15. 16 Oct, 2013 1 commit
    • Eli Zaretskii's avatar
      Implement network-interface-* functions for MS-Windows (bug #15610). · 3dffe395
      Eli Zaretskii authored
       src/w32.c (network_interface_get_info, network_interface_list)
       (network_interface_info): New functions.
       (GetAdaptersInfo_Proc): New typedef.
       (get_adapters_info): New wrapper function.
       (globals_of_w32): Initialize g_b_init_get_adapters_info.
       src/process.h (network_interface_list, network_interface_info): New
       prototypes.
       src/process.c (conv_sockaddr_to_lisp): Now externally-visible.
       (Fnetwork_interface_list, Fnetwork_interface_info): Define for
       all systems.  Return non-nil for systems that HAVE_NET_IF_H and
       for WINDOWSNT.  Doc fix.
       (syms_of_process): Defsubr Snetwork_interface_list and
       Snetwork_interface_info unconditionally.
      3dffe395
  16. 24 Sep, 2013 2 commits
    • Daniel Colascione's avatar
      Fix build break due to vector changes · 10ebac9d
      Daniel Colascione authored
      10ebac9d
    • Dmitry Antipov's avatar
      Use union for the payload of struct Lisp_Vector. · d6d9cbc1
      Dmitry Antipov authored
      This helps to avoid a few glitches dictated by C's aliasing rules.
      * lisp.h (struct Lisp_Vector): Use union for next and
      contents member.  Adjust comment.  Change related users.
      * alloc.c (next_in_free_list, set_next_in_free_list): Remove.
      Related users changed.
      * buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
      * composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
      * lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
      * xfaces.c, xfont.c, xmenu.c: Related users changed.
      d6d9cbc1
  17. 22 Sep, 2013 1 commit
    • Jan Djärv's avatar
      Fix compiler warnings from XCode 5.0 on OSX. · fb83ea63
      Jan Djärv authored
      * nsterm.m (setMarkedText:selectedRange:):
      (deleteWorkingText):
      * nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:):
      * nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog
      argument to unsigned long to avoid warning.
      (nsfont_draw): Use 0.25 instead of  Fix2X (kATSItalicQDSkew).
      
      * process.c (wait_reading_process_output): Change int pnamelen to
      socklen_t.
      fb83ea63
  18. 20 Sep, 2013 1 commit
    • Paul Eggert's avatar
      A simpler, centralized INLINE. · 00382e8b
      Paul Eggert authored
      * lib-src/profile.c (INLINE): New macro.
      (SYSTIME_INLINE): Remove.
      * src/conf_post.h (INLINE): Define only if not already defined.
      This allows us to use a single INLINE, defined by one file
      per executable.
      * src/emacs.c (INLINE): Define it.
      Also, include category.h, charset.h, composite.h, dispextern.h,
      syntax.h, systime.h, so that their INLINE definitions are expanded
      properly for Emacs.
      * src/blockinput.h, src/keyboard.c (BLOCKINPUT_INLINE):
      * src/buffer.h, src/buffer.c (BUFFER_INLINE):
      * src/category.h, src/category.c (CATEGORY_INLINE):
      * src/character.h, src/character.c (CHARACTER_INLINE):
      * src/charset.h, src/charset.c (CHARSET_INLINE):
      * src/composite.h, src/composite.c (COMPOSITE_INLINE):
      * src/dispextern.h, src/dispnew.c (DISPEXTERN_INLINE):
      * src/frame.h, src/frame.c (FRAME_INLINE):
      * src/intervals.h, src/intervals.c (INTERVALS_INLINE):
      * src/keyboard.h, src/keyboard.c (KEYBOARD_INLINE):
      * src/lisp.h, src/alloc.c (LISP_INLINE):
      * src/process.h, src/process.c (PROCESS_INLINE):
      * src/syntax.h, src/syntax.c (SYNTAX_INLINE):
      * src/systime.h, src/sysdep.c (SYSTIME_INLINE):
      * src/termhooks.h, src/terminal.h (TERMHOOKS_INLINE):
      * src/window.h, src/window.c (WINDOW_INLINE):
      Remove.  All uses replaced with INLINE.
      00382e8b
  19. 29 Aug, 2013 1 commit
  20. 27 Aug, 2013 2 commits
    • Paul Eggert's avatar
      Simplify SELECT_TYPE-related code. · d486344e
      Paul Eggert authored
      Like EMACS_TIME, this portability layer is no longer needed, since
      Emacs has been using fd_set as a portability layer for some time.
      * sysselect.h (FD_SETSIZE): Rename from MAXDESC.  All uses changed.
      (SELECT_TYPE): Remove.  All uses changed to fd_set.
      (fd_set) [!FD_SET]: New typedef.
      d486344e
    • Paul Eggert's avatar
      Simplify EMACS_TIME-related code. · 43aac990
      Paul Eggert authored
      This portability layer is no longer needed, since Emacs has been
      using struct timespec as a portability layer for some time.
      Merge from gnulib, incorporating:
      2013-08-27 timespec: new convenience constants and function
      * src/atimer.h, src/buffer.h, src/dispextern.h, src/xgselect.h:
      Include <time.h> rather than "systime.h"; that's all that's needed now.
      * src/dispnew.c: Include <timespec.h> rather than "systime.h";
      that's all that's needed now.
      * src/systime.h (EMACS_TIME): Remove.  All uses changed to struct timespec.
      (EMACS_TIME_RESOLUTION): Remove.  All uses changed to
      TIMESPEC_RESOLUTION.
      (LOG10_EMACS_TIME_RESOLUTION): Remove.  All uses changed to
      LOG10_TIMESPEC_RESOLUTION.
      (EMACS_SECS, emacs_secs_addr): Remove.  All uses changed to tv_sec.
      (EMACS_NSECS): Remove.  All uses changed to tv_nsec.
      (make_emacs_time): Remove.  All used changed to make_timespec.
      (invalid_timespec): Rename from invalid_emacs_time.  All uses changed.
      (current_timespec): Rename from current_emacs_time.  All uses changed.
      (add_emacs_time): Remove.  All uses changed to timespec_add.
      (sub_emacs_time): Remove.  All uses change dot timespec_sub.
      (EMACS_TIME_SIGN): Remove.  All uses changed to timespec_sign.
      (timespec_valid_p): Rename from EMACS_TIME_VALID_P.  All uses changed.
      (EMACS_TIME_FROM_DOUBLE): Remove.  All uses changed to dtotimespec.
      (EMACS_TIME_TO_DOUBLE): Remove.  All uses changed to timespectod.
      (current_timespec): Rename from current_emacs_time.  All uses changed.
      (EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove.  All uses
      changed to timespec_cmp.
      * src/xgselect.c: Include <timespec.h>, since our .h files don't.
      43aac990
  21. 24 Aug, 2013 1 commit
    • Paul Eggert's avatar
      System-dependent integer overflow fixes. · 9c05bccf
      Paul Eggert authored
      * process.c (Fset_process_window_size): Signal an error if
      the window size is outside the range supported by the lower level.
      * sysdep.c (set_window_size): Return negative on error,
      nonnegative on success, rather than -1, 0, 1 on not in system,
      failure, success.  This is simpler.  Caller changed.
      (serial_configure): Remove unnecessary initialization of local.
      (procfs_get_total_memory) [GNU_LINUX]: Don't assume system memory
      size fits in unsigned long; this isn't true on some 32-bit hosts.
      Avoid buffer overrun if some future version of /proc/meminfo has a
      variable name longer than 20 bytes.
      (system_process_attributes) [__FreeBSD__]:
      Don't assume hw.availpages fits in 'int'.
      9c05bccf
  22. 23 Aug, 2013 1 commit
    • Paul Eggert's avatar
      Don't let very long directory names overrun the stack. · c365c355
      Paul Eggert authored
      Fix some related minor problems involving "//", vfork.
      * callproc.c (encode_current_directory): New function.
      (call_process): Don't append "/"; not needed.
      * fileio.c (file_name_as_directory_slop): New constant.
      (file_name_as_directory): Allow SRC to be longer than SRCLEN;
      this can save the caller having to alloca.
      (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
      Use SAFE_ALLOCA, not alloca.
      (directory_file_name, Fexpand_file_name): Leave leading "//"
      alone, since it can be special even on POSIX platforms.
      * callproc.c (call_process):
      * process.c (Fformat_network_address):
      * sysdep.c (sys_subshell):
      Use encode_current_directory rather than rolling our own.
      (create_process): No need to encode directory; caller does that now.
      * process.h (encode_current_directory): New decl.
      * sysdep.c (sys_subshell): Work even if vfork trashes saved_handlers.
      Rework to avoid 'goto xyzzy;'.
      c365c355
  23. 22 Aug, 2013 1 commit
  24. 21 Aug, 2013 1 commit
  25. 19 Aug, 2013 1 commit
  26. 16 Aug, 2013 1 commit
  27. 15 Aug, 2013 1 commit
    • Dmitry Antipov's avatar
      * lisp.h (FOR_EACH_ALIST_VALUE): New macro · d5a1acfa
      Dmitry Antipov authored
      to do `for' loops over alist values.
      * buffer.h (FOR_EACH_BUFFER):
      * process.c (FOR_EACH_PROCESS): Use it.
      (handle_child_signal, status_notify, Fget_buffer_process)
      (kill_buffer_processes): Use FOR_EACH_PROCESS.
      d5a1acfa
  28. 12 Aug, 2013 2 commits
    • Paul Eggert's avatar
      * process.c (deactivate_process): Reset fds to -1. · 297a545b
      Paul Eggert authored
      This fixes a problem introduced by the Bug#15035 patch
      when using GPG.  Reported by Herbert J. Skuhra.
      297a545b
    • Paul Eggert's avatar
      Fix some fd issues when running subprocesses. · 94fcd171
      Paul Eggert authored
      Fix bugs that can leak files or file descriptors on errors.
      Don't unlink open temp files, as that's hard for users to diagnose
      when things go awry (e.g., temp disk exhausted).
      Don't bother to lock temp files.  Check for invalid recursion.
      * callproc.c (synch_process_fd): Remove.  All uses removed.
      (synch_process_tempfile): New var or macro.
      (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS):
      New constants.
      (record_kill_process): New arg, the temp name.  All callers changed.
      (delete_temp_file): Now just a simple wrapper around unlink.
      (call_process_kill): New arg, the call_process_fd array.
      Close them all.  Clear synch_process_pid.  Remove the temp file,
      or arrange for it to be removed.
      (call_process_cleanup) [MSDOS]: Arg no longer contains file name;
      that's been moved to synch_process_tempfile.  Caller changed.
      Do not remove the tempfile; that's now call_process_kill's
      responsibility.
      (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for
      call_process_kill; the caller now does that.
      (call_process_cleanup): Do not close the process fd; that's now
      call_process_kill's responsibility.
      (Fcall_process): Implement via new function call_process, which
      has most of the old body of Fcall_process, but with a different API.
      (call_process): New function that does not open or close filefd if
      it is nonnegative.  Record which fds need to be closed, and let
      call_process_kill close (and remove the tempfile, on MSDOS) on error.
      Signal an error if invoked recursively (could be done via a hook).
      Simplify creation of the tempfile in the MSDOS case.
      Don't create the output file until after checking for the executable.
      Report any failure to open /dev/null.
      Don't open /dev/null for writing twice; once is enough.
      Don't create pipe if all output is being discarded or sent to file.
      Don't worry about setting up the coding system or reading from the
      pipe if all output is being discarded.
      Hoist fd_error local into top level, to lessen block nesting.
      Don't record deleted pid here; now done by Fcall_process_region.
      (Fcall_process) [MSDOS]: Report mktemp failure immediately,
      and note its success in synch_process_tempfile.
      Do not leak resources when child_setup fails.
      (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment
      to child_errno.  Remove unnecessary close of fd0; it's close-on-exec.
      (create_temp_file): Now returns open fd, with an additional
      Lisp_Object * argument to return the name.  All callers changed.
      Do not close the file; rewind it instead, and leave it open for
      the caller.  Do not lock the temp file.  Unwind-protect the file
      and the file-descriptor.
      (Fcall_process_region): If the input is /dev/null, unwind-protect it.
      If an asynchrounous process, record it here, not in call_process.
      (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile.
      * eval.c (set_unwind_protect): New function.
      * fileio.c (write_region): New function, generalized from the
      old Fwrite_region.  Do not lock temp files.
      (Fwrite_region): Use it.
      * lisp.h (set_unwind_protect, write_region): New decls.
      * process.c: Include <verify.h>.
      (make_process): Mark fds as initially closed.
      (deleted_pid_list): Now a list of pid-filename pairs.
      All uses changed.
      (close_process_fd): New function.
      (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS)
      (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT):
      New constants.  Verify that their number matches PROCESS_OPEN_FDS.
      (create_process, create_pty, Fmake_serial_process)
      (server_accept_connection): Record which fds need to be closed,
      and let deactivate_process close them.
      (Fmake_network_process): Do not discard the unwind-protect
      until it's safe to do so.
      (deactivate_process): Close the fds opened by create_process etc.
      (Fprocess_send_eof): Adjust to new way of recording open fds.
      Report an error if /dev/null can't be opened, instead of aborting.
      * process.h (PROCESS_OPEN_FDS): New constant.
      (struct Lisp_Process): New member open_fds.
      (record_kill_process, record_deleted_pid): Adjust signatures.
      (record_deleted_pid): Move decl here ...
      * syswait.h (record_deleted_pid): ... from here.
      
      Fixes: debbugs:15035
      94fcd171
  29. 11 Aug, 2013 1 commit
    • Paul Eggert's avatar
      Omit some unnecessary casts. · 7d652d97
      Paul Eggert authored
      Many of these go back to the old pre-C89 days, when they may have
      been needed, but we've been assuming C89 or later for a while now.
      * alloc.c (live_string_p, live_cons_p, live_symbol_p)
      (live_float_p, live_misc_p, live_vector_p):
      * buffer.c (compare_overlays, cmp_for_strings, mmap_find)
      (mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
      (defvar_per_buffer):
      * callint.c (Fcall_interactively):
      * doc.c (Fsubstitute_command_keys):
      * filelock.c (get_boot_time):
      * frame.c (xrdb_get_resource):
      * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
      (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
      (xg_get_file_name_from_selector, menuitem_destroy_callback)
      (menuitem_highlight_callback, menu_destroy_callback)
      (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
      (xg_tool_bar_callback, xg_get_tool_bar_widgets)
      (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
      (xg_tool_bar_help_callback, tb_size_cb):
      * image.c (xpm_alloc_color, png_read_from_memory)
      (png_read_from_file, png_load_body, our_memory_skip_input_data)
      (jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
      (syms_of_image):
      * keymap.c (describe_map):
      * nsfns.m (Fns_display_monitor_attributes_list):
      * nsmenu.m (process_dialog:):
      * nsterm.m (hold_event):
      * process.c (wait_reading_process_output):
      * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
      * scroll.c (do_direct_scrolling, scrolling_1):
      * termcap.c (tgetent):
      * window.c (check_window_containing, add_window_to_list)
      (freeze_window_starts):
      * xdisp.c (compare_overlay_entries, vmessage):
      * xfns.c (x_window, x_get_monitor_attributes_xinerama)
      (x_get_monitor_attributes_xrandr)
      (Fx_display_monitor_attributes_list, x_display_info_for_name)
      (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
      * xfont.c (xfont_match, xfont_open):
      * xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
      (menubar_selection_callback, menu_position_func)
      (popup_selection_callback, create_and_show_popup_menu)
      (dialog_selection_callback, create_and_show_dialog):
      * xrdb.c (x_get_string_resource):
      (main) [TESTRM]:
      * xsmfns.c (x_session_check_input):
      * xterm.c (x_draw_glyphless_glyph_string_foreground)
      (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
      (xaw_jump_callback, xaw_scroll_callback):
      Omit unnecessary casts.
      7d652d97
  30. 06 Aug, 2013 1 commit
    • Paul Eggert's avatar
      * process.c: Fix minor off-by-one issues in descriptor counts. · 2878ba7e
      Paul Eggert authored
      This shouldn't fix any real bugs, but it cleans up the code a bit.
      (max_process_desc, max_input_desc): -1, not 0, means none.
      All uses changed.
      (delete_input_desc): New function.
      (delete_write_fd, delete_keyboard_wait_descriptor): Use it.
      (deactivate_process): Scan backwards when recomuting max_process_desc;
      that should be faster.
      (init_process_emacs): Initialize max_input_desc.
      2878ba7e
  31. 26 Jul, 2013 1 commit
  32. 21 Jul, 2013 1 commit
    • Paul Eggert's avatar
      Avoid vfork-related deadlock more cleanly. · ee010797
      Paul Eggert authored
      * callproc.c (child_setup): When the child's exec fails, output
      the program name, as that's more useful.  Use O_NONBLOCK to avoid
      deadlock.
      * process.c (create_process_1): Remove; no longer needed.
      (create_process): Remove timer hack; no longer needed, now that
      the child avoids deadlock.
      ee010797
  33. 20 Jul, 2013 1 commit
    • Paul Eggert's avatar
      Fix array bounds violation when pty allocation fails. · 6496aec9
      Paul Eggert authored
      * configure.ac (PTY_TTY_NAME_SPRINTF): Use PTY_NAME_SIZE,
      not sizeof pty_name, since pty_name is now a pointer to the array.
      * src/process.c (PTY_NAME_SIZE): New constant.
      (pty_name): Remove static variable; it's now auto.
      (allocate_pty): Define even if !HAVE_PTYS; that's simpler.
      Take pty_name as an arg rather than using a static variable.
      All callers changed.
      (create_process): Recover pty_flag from process, not from volatile local.
      (create_pty): Stay inside array even when pty allocation fails.
      (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
      6496aec9
  34. 19 Jul, 2013 1 commit
    • Paul Eggert's avatar
      Fix some minor file descriptor leaks and related glitches. · 3f5bef16
      Paul Eggert authored
      * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
      (create_lock_file): Use write, not emacs_write.
      * image.c (slurp_file, png_load_body):
      * process.c (Fnetwork_interface_list, Fnetwork_interface_info)
      (server_accept_connection):
      Don't leak an fd on memory allocation failure.
      * image.c (slurp_file): Add a cheap heuristic for growing files.
      * xfaces.c (Fx_load_color_file): Block input around the fopen too,
      as that's what the other routines do.  Maybe input need not be
      blocked at all, but it's better to be consistent.
      Avoid undefined behavior when strlen is zero.
      3f5bef16
  35. 17 Jul, 2013 1 commit
    • Paul Eggert's avatar
      A few more minor file errno-reporting bugs. · b648c163
      Paul Eggert authored
      * callproc.c (Fcall_process):
      * doc.c (Fsnarf_documentation):
      * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
      * process.c (set_socket_option):
      Don't let a constructor trash errno.
      * doc.c: Include <errno.h>.
      b648c163