1. 22 Feb, 2016 6 commits
  2. 21 Feb, 2016 4 commits
    • Paul Eggert's avatar
      Use Gnulib filevercmp for version comparison · 1f7feeca
      Paul Eggert authored
      * admin/merge-gnulib (GNULIB_MODULES): Add filevercmp.
      * doc/lispref/strings.texi (Text Comparison):
      * etc/NEWS, src/fns.c:
      * test/src/fns-tests.el (fns-tests-string-version-lessp):
      Rename newly-introduced function to string-version-lessp, by
      analogy with strverscmp.
      * lib/filevercmp.c, lib/filevercmp.h: New files, copied from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * src/fns.c: Include <filevercmp.h>.
      (gather_number_from_string): Remove.
      (Fstring_version_lessp): Reimplement via filevercmp.
      1f7feeca
    • Lars Ingebrigtsen's avatar
      Avoid integer overflows in string-numeric-lessp · 336dac58
      Lars Ingebrigtsen authored
      * src/fns.c (Fstring_numeric_lessp): If we have an integer
      overflow, compare lexicographically.
      336dac58
    • Lars Ingebrigtsen's avatar
      Add the string-numeric-lessp function · 71783e90
      Lars Ingebrigtsen authored
      * doc/lispref/strings.texi (Text Comparison): Document
      `string-numerical-lessp'.
      
      * src/fns.c (Fstring_numeric_lessp): New function.
      (gather_number_from_string): Helper function for that function.
      
      * test/src/fns-tests.el (fns-tests-string-numeric-lessp): Add tests.
      71783e90
    • Alain Schneble's avatar
      Respect DNS timeouts · 79936792
      Alain Schneble authored
      * src/process.c (check_for_dns): If the async DNS request
      failed and the associated process is still in "connect" state,
      deactivate the process and set status to "failed".
      79936792
  3. 20 Feb, 2016 3 commits
  4. 19 Feb, 2016 1 commit
  5. 18 Feb, 2016 1 commit
    • Lars Ingebrigtsen's avatar
      Verify the TLS connection asynchronously · e96df838
      Lars Ingebrigtsen authored
      * src/gnutls.c (gnutls_verify_boot): Refactor out into its own
      function so that we can call it asynchronously.
      (Fgnutls_boot): Use it.
      
      * src/process.c (wait_reading_process_output): Verify the TLS
      negotiation.
      e96df838
  6. 17 Feb, 2016 2 commits
  7. 16 Feb, 2016 8 commits
    • Lars Ingebrigtsen's avatar
      Deactivate the correct process · d4bb0b92
      Lars Ingebrigtsen authored
      * src/process.c (wait_reading_process_output): Deactivate the
      correct process on failure.
      d4bb0b92
    • Lars Ingebrigtsen's avatar
      Implement asynch TLS negotiation · ac6e085c
      Lars Ingebrigtsen authored
      * src/gnutls.c (gnutls_try_handshake): Factor out into its own
      function.
      (emacs_gnutls_handshake): Use it.
      (emacs_gnutls_read): Just return instead of retrying the handshake.
      
      * src/process.c (finish_after_tls_connection): Factor out
      into its own function.
      (connect_network_socket): Use it.
      (wait_reading_process_output): Retry TLS handshakes.
      (wait_reading_process_output): Defer sentinel until TLS completes.
      ac6e085c
    • Lars Ingebrigtsen's avatar
      Simplify the DNS resolution loop a bit · c43bb7f1
      Lars Ingebrigtsen authored
      * src/process.c (wait_reading_process_output): Simplify the
      DNS resolution loop a bit.
      c43bb7f1
    • Alain Schneble's avatar
      Loop over the process list instead of maintaining a separate list · d1fc5a54
      Alain Schneble authored
      * src/process.c: Remove declaration/definition of dns_processes list.
      * src/process.c (wait_reading_process_output): Loop over all processes in
      Vprocess_alist instead of dns_processes, to check for completed DNS
      requests.
      d1fc5a54
    • Lars Ingebrigtsen's avatar
      Allow setting the filter masks later · 9755b753
      Lars Ingebrigtsen authored
      * src/process.c (Fset_process_filter): Don't set the socket
      masks here, because we may not have a socket yet.
      (set_process_filter_masks): New function.
      (connect_network_socket): Set the filter masks here.
      9755b753
    • Lars Ingebrigtsen's avatar
      Ensure we always free DNS resources when deleting a process · df911734
      Lars Ingebrigtsen authored
      * src/process.c (free_dns_request): Factor out into own function.
      (Fdelete_process): When deleting a process, free any DNS
      structures associated with it.
      (check_for_dns): Always free all DNS resources.
      df911734
    • Alain Schneble's avatar
      Don't block in set-process-window-size · e4324bdf
      Alain Schneble authored
      * src/process.c (set-process-window-size): Explicitly return Qnil when
      called with network processes as set_window_size won't work anyway on
      socket fds.  As a welcome side effect, this makes the blocking
      wait_for_socket_fds call obsolete.
      e4324bdf
    • Lars Ingebrigtsen's avatar
      Do most of the coding system setup earlier · 7f3441cc
      Lars Ingebrigtsen authored
      * src/process.c (Fmake_network_process): Set the read/write
      coding systems here, so that special bindings work.
      (Fmake_network_process): Complete the coding system setup here.
      7f3441cc
  8. 15 Feb, 2016 7 commits
    • Eli Zaretskii's avatar
      Avoid crashes in semi-malformed 'condition-case' · 44b16f60
      Eli Zaretskii authored
      * src/eval.c (internal_lisp_condition_case): Treat a handler
      '(nil)' as if it were '(nil nil)'.  (Bug#22675)
      44b16f60
    • Eli Zaretskii's avatar
      Fix regression with 'recent-keys' and keyboard macros · d9ea7950
      Eli Zaretskii authored
      * src/keyboard.c (record_char): Don't record in 'recent_keys'
      events that come from executing keyboard macros.  (Bug#22674)
      d9ea7950
    • Lars Ingebrigtsen's avatar
      Protect against initial handshake failures · 2d7af7e2
      Lars Ingebrigtsen authored
      * src/process.c (connect_network_socket): Mark the connection
      as failed if the handshake didn't succeed yet.  This should be
      reworked later.
      2d7af7e2
    • Lars Ingebrigtsen's avatar
      Call the network security manager after doing TLS negotiation · 9c74f2fe
      Lars Ingebrigtsen authored
      * lisp/net/network-stream.el (network-stream-open-tls):
      Postpone NSM verification when running async.
      
      * src/process.c (Fset_process_filter): This function doesn't
      need to wait.
      (connect_network_socket): Set the process status to "run" only
      after TLS negotiation.
      (wait_for_socket_fds): Take a name parameter for more debugging.
      (wait_reading_process_output): Don't change status to "run"
      unless TLS negotiation has finished.
      (send_process): Wait for the process here instead of
      send_process_string.
      (connect_network_socket): Call the network security manager.
      9c74f2fe
    • Lars Ingebrigtsen's avatar
      Remove some #ifdefs and update documentation · 40155283
      Lars Ingebrigtsen authored
      * doc/lispref/processes.texi (Network Processes): Remove
      mention of `dns'.
      
      * lisp/net/network-stream.el (open-network-stream): Remove
      mention of `dns'.
      
      * src/process.c (Fset_process_filter)
      (Fset_process_window_size, Fprocess_contact)
      (Fprocess_datagram_address, Fset_process_datagram_address)
      (Fset_network_process_option, Fprocess_send_region)
      (Fprocess_send_string, Fset_process_coding_system)
      (Fset_process_filter_multibyte): Remove the #ifdef
      HAVE_GETADDRINFO_A checks.
      (Fprocess_send_string): Wait for TLS negotiation.
      (wait_for_tls_negotiation): New function.
      (send_process): Remove the TLS boot check.
      
      * src/process.c (Fmake_network_process): Ditto.
      40155283
    • Alain Schneble's avatar
      Add blockers to process functions · c740d190
      Alain Schneble authored
      * src/process.c (set-process-filter, set-process-window-size,
      process-contact, process-datagram-address, set-process-datagram-address,
      set-network-process-option): Make functions wait (block) on network
      process until pending DNS requests have been processed and associated
      socket initialized.
      
      * src/process.c (process-send-region, process-send-string,
      process-send-eof): Make functions wait (block) while network process is
      in connect state.
      c740d190
    • Paul Eggert's avatar
      ; Spelling fixes · cf796161
      Paul Eggert authored
      cf796161
  9. 14 Feb, 2016 4 commits
    • Paul Eggert's avatar
      Port USE_STACK_LISP_OBJECTS fix to Clang · f3aaca35
      Paul Eggert authored
      * src/lisp.h (USE_STACK_LISP_OBJECTS): Default to false for Clang.
      Recent versions of Clang claim to be GCC 4.2.1 but do not have
      the GCC bug.
      f3aaca35
    • Paul Eggert's avatar
      Port to x86 GCC 4.3.1 and earlier · 1834ac7d
      Paul Eggert authored
      This tries to port to x86 FreeBSD 9, where Emacs dumps core (Bug#22065).
      * src/lisp.h (USE_STACK_LISP_OBJECTS): Default to false
      for GCC 4.3.1 and earlier.
      1834ac7d
    • Eli Zaretskii's avatar
      Fix point movement under 'scroll-conservatively' · 84829495
      Eli Zaretskii authored
      * src/xdisp.c (redisplay_window): Correct a typo in computing the
      effective number of text lines in a window.  (Bug#22637)
      84829495
    • Eli Zaretskii's avatar
      Make 'mmap_realloc' on MS-Windows more reliable · 8badf953
      Eli Zaretskii authored
      * src/w32heap.c (mmap_alloc): If reserving memory succeeds, but
      committing fails, return NULL.  Don't call GetLastError twice for
      the same API error.
      (mmap_realloc): Zero out MEMORY_BASIC_INFORMATION structures
      before calling VirtualQuery, to avoid using garbled values if the
      call fails.  If committing more pages from the same block fails,
      fall back on mmap_alloc + CopyMemory.  Enhance debugging printouts
      if the call to VirtualAlloc to commit more pages fails.
      (Bug#22526)
      8badf953
  10. 13 Feb, 2016 2 commits
    • Eli Zaretskii's avatar
      ; Improve commentary in insdel.c · 47896c84
      Eli Zaretskii authored
      * src/insdel.c (gap_left, gap_right, make_gap_larger)
      (make_gap_smaller): Improve commentary.
      47896c84
    • Paul Eggert's avatar
      Suppress GNUstep hardening · 1c98f989
      Paul Eggert authored
      Fedora 23 normally hardens GNUstep applications, which causes
      ‘./configure --with-ns’ to break Emacs’s funky way of undumping.
      Fix this by eliding the hardening options (Bug#22518).
      * src/Makefile.in (LIBS_GNUSTEP): Omit options like
      ‘-specs=/usr/lib/rpm/redhat/redhat-hardened-ld’.
      (GNU_OBJC_CFLAGS): Omit options like
      ‘-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1’.
      1c98f989
  11. 12 Feb, 2016 1 commit
  12. 11 Feb, 2016 1 commit