1. 02 May, 2016 1 commit
    • Aaron Conole's avatar
      Call va_end in boot_error · 33d6250a
      Aaron Conole authored
      * src/gnutls.c (boot_error): A recent change added a function
      to signal an error or return an error code. That function uses
      a variadic argument list to populate an error message
      string. However, it missed calling va_end after using the
      variadic argument list.
      
        Copyright-paperwork-exempt: yes
      33d6250a
  2. 27 Mar, 2016 1 commit
    • Paul Eggert's avatar
      Rename C names to match Lisp symbols better · f41f573e
      Paul Eggert authored
      This was inspired by commit e65c3079,
      which fixed a bug where the C name for a symbol disagreed with the
      symbol name itself.  Fix other instances of disagreements that I found.
      Although this doesn’t fix a bug, it should make code easier to follow.
      The remaining disagreements are idiosyncratic: Qminus, Qplus,
      Qsans__serif, Qbackquote, Qcomma, Qcomma_at, Qcomma_dot.
      All uses changed.
      * src/alloc.c (QAutomatic_GC): Rename from Qautomatic_gc.
      * src/dbusbind.c (QCsystem): Rename from QCdbus_system_bus.
      (QCsession): Rename from QCdbus_session_bus.
      (QCtimeout): Rename from QCdbus_timeout.
      (QCbyte): Rename from QCdbus_type_byte.
      (QCboolean): Rename from QCdbus_type_boolean.
      (QCint16): Rename from QCdbus_type_int16.
      (QCuint16): Rename from QCdbus_type_uint16.
      (QCint32): Rename from QCdbus_type_int32.
      (QCuint32): Rename from QCdbus_type_uint32.
      (QCint64): Rename from QCdbus_type_int64.
      (QCuint64): Rename from QCdbus_type_uint64.
      (QCdouble): Rename from QCdbus_type_double.
      (QCstring): Rename from QCdbus_type_string.
      (QCobject_path): Rename from QCdbus_type_object_path.
      (QCsignature): Rename from QCdbus_type_signature.
      (QCunix_fd): Rename from QCdbus_type_unix_fd.
      (QCarray): Rename from QCdbus_type_array.
      (QCvariant): Rename from QCdbus_type_variant.
      (QCstruct): Rename from QCdbus_type_struct.
      (QCdict_entry): Rename from QCdbus_type_dict_entry.
      (QCserial): Rename from QCdbus_registered_serial.
      (QCmethod): Rename from QCdbus_registered_method.
      (QCsignal): Rename from QCdbus_registered_signal.
      * src/emacs-module.c (Qinternal__module_call):
      Rename from Qinternal_module_call.
      * src/frame.c (Qwindow__pixel_to_total):
      Rename from Qwindow_pixel_to_total.
      * src/gnutls.c (QChostname): Rename from QCgnutls_bootprop_hostname.
      (QCpriority): Rename from QCgnutls_bootprop_priority.
      (QCtrustfiles): Rename from QCgnutls_bootprop_trustfiles.
      (QCkeylist): Rename from QCgnutls_bootprop_keylist.
      (QCcrlfiles): Rename from QCgnutls_bootprop_crlfiles.
      (QCmin_prime_bits): Rename from QCgnutls_bootprop_min_prime_bits.
      (QCloglevel): Rename from QCgnutls_bootprop_loglevel.
      (QCcomplete_negotiation): Rename from QCgnutls_complete_negotiation.
      (QCverify_flags): Rename from QCgnutls_bootprop_verify_flags.
      (QCverify_error): Rename from QCgnutls_bootprop_verify_error.
      * src/w32fns.c (Qfont_parameter): Rename from Qfont_param.
      (Qgnutls): Rename from Qgnutls_dll.
      (Qlibxml2): Rename from Qlibxml2_dll.
      (Qzlib): Rename from Qzlib_dll.
      * src/w32select.c (Qutf_16le_dos): Rename from QUNICODE.
      * src/window.c (Qwindow__resize_root_window):
      Rename from Qwindow_resize_root_window.
      (Qwindow__resize_root_window_vertically):
      Rename from Qwindow_resize_root_window_vertically.
      (Qwindow__sanitize_window_sizes):
      Rename from Qwindow_sanitize_window_sizes.
      (Qwindow__pixel_to_total): Rename from Qwindow_pixel_to_total.
      * src/xdisp.c (Qredisplay_internal_xC_functionx):
      Rename from Qredisplay_internal.
      * src/xfns.c (Qfont_parameter): Rename from Qfont_param.
      * src/xselect.c (Q_EMACS_TMP_): Rename from QEMACS_TMP.
      f41f573e
  3. 10 Mar, 2016 1 commit
    • Paul Eggert's avatar
      Rework C source files to avoid ^( · 7352c6c6
      Paul Eggert authored
      Work around Bug#22884 by rewording comments and strings to avoid ‘(’
      at the start of a line unless it starts a function.  This change
      is a short-term hack; in the longer run we plan to fix cc-mode’s
      performance for C files that have ‘(’ at the start of a line in a
      comment or string.
      7352c6c6
  4. 06 Mar, 2016 1 commit
  5. 05 Mar, 2016 1 commit
    • Lars Magne Ingebrigtsen's avatar
      Allow making TLS negotiation blocking · 21b509d4
      Lars Magne Ingebrigtsen authored
      * lisp/net/gnutls.el (gnutls-negotiate): Make negotiation blocking.
      
      * src/gnutls.c (Fgnutls_boot): Provide a new keyword,
      :complete-negotiation, to specify that we want complete
      negotiation even if the socket is non-blocking.
      (gnutls_try_handshake): Complete negotiation if given that keyword.
      
      * src/process.h (L): Added gnutls_complete_negotiation_p.
      21b509d4
  6. 28 Feb, 2016 1 commit
    • Lars Ingebrigtsen's avatar
      Return the correct error values from gnutls.c · d5f270f2
      Lars Ingebrigtsen authored
      * src/gnutls.c (emacs_gnutls_read): Set errno to the value
      expected by process.c.
      (gnutls_try_handshake): Set gnutls_p to true earlier to avoid
      possible race condition with the process.c socket polling
      functions.
      d5f270f2
  7. 23 Feb, 2016 1 commit
    • Paul Eggert's avatar
      Minor cleanups for async DNS etc. · 82848cf6
      Paul Eggert authored
      * src/frame.h (FRAME_WINDOW_CONFIGURATION_CHANGED):
      Omit unnecessary parens.
      * src/gnutls.c (gnutls_try_handshake, emacs_gnutls_deinit)
      (gnutls_verify_boot):
      Use bool for boolean.
      (ATTRIBUTE_FORMAT_PRINTF): Add printf attribute.
      * src/process.c (free_dns_request, Fmake_network_process):
      Allocate and free async request control block all in one go.
      (set_network_socket_coding_system, finish_after_tls_connection)
      (connect_network_socket):
      Now static.
      (conv_numerical_to_lisp): 2nd arg is now int, not unsigned.
      (Fmake_network_process): Use list1 for brevity.
      (wait_for_socket_fds): 2nd arg is now const ptr.
      * src/process.h (struct Lisp_Process.dns_request):
      Now struct gaicb *, not struct gaicb **, since there was always
      exactly one.  All uses changed.
      * src/window.c, src/window.h (run_window_configuration_change_hook):
      Now static.
      82848cf6
  8. 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
  9. 16 Feb, 2016 1 commit
    • 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
  10. 03 Feb, 2016 1 commit
    • Lars Ingebrigtsen's avatar
      Doc fixes and refactorings based on comments from Eli Zaretskii · 894e21df
      Lars Ingebrigtsen authored
      * doc/lispref/processes.texi (Network Processes): Clarify the
      meaning of :tls-parameters.
      
      * lisp/net/gnutls.el (open-gnutls-stream): Clarify :nowait.
      
      * lisp/net/gnutls.el (gnutls-boot-parameters): Factor out into
      own function.
      (gnutls-negotiate): Use it.
      (open-gnutls-stream): Ditto.
      
      * src/eval.c (vformat_string): Refactor out the printing bits
      from verror.
      (verror): Use it.
      
      * src/gnutls.c (boot_error): Mark failed processes with the
      real error message.
      
      * src/lisp.h: Declare vformat_string.
      894e21df
  11. 01 Feb, 2016 1 commit
  12. 31 Jan, 2016 3 commits
    • Lars Ingebrigtsen's avatar
      Further TLS async work · 4ff81f8f
      Lars Ingebrigtsen authored
      * gnutls.c (boot_error): New function to either signal an
      error or return an error code.
      (Fgnutls_boot): Don't signal errors when running asynchronously.
      
      * process.h (pset_status): Move here from process.c to be
      able to use from gnutls.c.
      
      * process.c (connect_network_socket): Do the TLS boot here
      when running asynchronously.
      (wait_reading_process_output): Rework the dns_processes
      handling for more safety.
      4ff81f8f
    • Lars Ingebrigtsen's avatar
      Rework the mechanisms for async GnuTLS connections · cecf6c9a
      Lars Ingebrigtsen authored
      * lisp/net/gnutls.el (open-gnutls-stream): Compute the
      gnutls-boot parameters and pass them to the process object.
      (gnutls-negotiate): New parameter :return-keywords that won't
      connect to anything, just compute the keywords.
      
      * lisp/url/url-http.el (url-http): Revert async TLS sentinel
      hack, which is no longer necessary.
      
      * src/gnutls.c (Fgnutls_asynchronous_parameters): Rename from
      gnutls-mark-process.
      
      * src/process.c (connect_network_socket): If we're connecting to
      an asynchronous TLS socket, complete the GnuTLS boot sequence here.
      
      * src/process.h: New parameter gnutls_async_parameters.
      cecf6c9a
    • Lars Ingebrigtsen's avatar
      Implement asynchronous GnuTLS connections · 0f47153b
      Lars Ingebrigtsen authored
      * doc/misc/emacs-gnutls.texi (Help For Developers): Mention
      the nowait parameter.
      
      * lisp/net/gnutls.el (open-gnutls-stream): Allow asynchronous
      connections with the new nowait parameter.
      
      * lisp/net/network-stream.el (network-stream-open-tls): Pass
      on :nowait to open-gnutls-stream.
      
      * lisp/url/url-http.el (url-http): Don't overwrite the
      sentinel created by open-gnutls-stream.
      
      * src/gnutls.c (Fgnutls_mark_process): New function.
      
      * src/process.c (send_process): Don't write to GnuTLS sockets that
      haven't been initialised yed.
      
      * src/process.h: New slot gnutls_wait_p.
      0f47153b
  13. 18 Jan, 2016 1 commit
    • Paul Eggert's avatar
      Initialize GnuTLS before calling gnutls_rnd · 130d5120
      Paul Eggert authored
      * src/gnutls.c (emacs_gnutls_global_init): Now extern.
      Don’t set gnutls_global_initialized if gnutls_global_init fails.
      * src/sysdep.c: Include "gnutls.h", and <gnutls/crypto.h>
      if 2.12 or later, which has gnutls_rnd.
      (emacs_gnutls_global_init, gnutls_rnd): New fallback
      placeholder macros if before 2.12.
      (init_random): Initialize gnutls globals before trying to
      use gnutls_rnd.
      130d5120
  14. 01 Jan, 2016 1 commit
  15. 09 Nov, 2015 1 commit
    • Paul Eggert's avatar
      Use INT_ADD_WRAPV etc. to check integer overflow · 10873055
      Paul Eggert authored
      * src/alloc.c (xnmalloc, xnrealloc, xpalloc, Fmake_string):
      * src/buffer.c (record_overlay_string, overlay_strings):
      * src/casefiddle.c (casify_object):
      * src/ccl.c (Fccl_execute_on_string):
      * src/character.c (char_width, c_string_width, lisp_string_width)
      (count_size_as_multibyte, string_escape_byte8):
      * src/coding.c (coding_alloc_by_realloc, produce_chars):
      * src/data.c (arith_driver):
      * src/dispnew.c (realloc_glyph_pool, init_display):
      * src/editfns.c (styled_format):
      * src/fns.c (Ffillarray):
      * src/ftfont.c (ftfont_shape_by_flt):
      * src/gnutls.c (gnutls_hex_string):
      * src/gtkutil.c (get_utf8_string):
      * src/image.c (x_to_xcolors, x_detect_edges, png_load_body):
      * src/keymap.c (Fkey_description):
      * src/lisp.h (SAFE_ALLOCA_LISP):
      * src/term.c (encode_terminal_code):
      * src/tparam.c (tparam1):
      * src/xselect.c (x_property_data_to_lisp):
      * src/xsmfns.c (smc_save_yourself_CB):
      * src/xterm.c (x_term_init):
      When checking for integer overflow, prefer INT_MULTIPLY_WRAPV to
      more-complicated code involving division and/or
      INT_MULTIPLY_OVERFLOW, and similarly for INT_ADD_WRAPV and
      subtraction and/or INT_ADD_OVERFLOW.
      * src/casefiddle.c (casify_object): Simplify multibyte size check.
      * src/character.c: Remove some obsolete ‘#ifdef emacs’s.
      * src/data.c (arith_driver): Also check for division overflow,
      as that’s now possible given that the accumulator can now contain
      any Emacs integer.
      * src/lisp.h (lisp_word_count): Remove; no longer used.
      10873055
  16. 27 Jun, 2015 1 commit
  17. 31 May, 2015 1 commit
    • Paul Eggert's avatar
      Remove unused DEFSYMs · 0c2a3cf6
      Paul Eggert authored
      Remove DEFSYMs that aren't used at the C level.  Also:
      * src/decompress.c (Qzlib_dll):
      * src/font.c (Qunicode_sip):
      * src/frame.c (Qtip_frame):
      * src/ftfont.c (Qserif):
      * src/gnutls.c (Qgnutls_dll):
      * src/xml.c (Qlibxml2_dll):
      Move from here ...
      * src/w32fns.c (syms_of_w32fns): ... to here,
      as these are used only on MS-Windows.
      0c2a3cf6
  18. 21 May, 2015 1 commit
  19. 25 Apr, 2015 1 commit
    • Paul Eggert's avatar
      Port --enable-gcc-warnings to GCC 5.1 x86-64 · 52ba851d
      Paul Eggert authored
      * 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).
      52ba851d
  20. 11 Apr, 2015 1 commit
    • Chris Zheng's avatar
      Support GnuTLS v3.4 and later on MS-Windows · dc79845a
      Chris Zheng authored
      * src/gnutls.c (syms_of_gnutls) <libgnutls-version>: New DEFSYM.
      * lisp/term/w32-win.el (dynamic-library-alist): Determine which
      GnuTLS DLL to load according to value of libgnutls-version.
      
      Fixes: bug#20294
      
      Copyright-paperwork-exempt: yes
      dc79845a
  21. 16 Jan, 2015 1 commit
    • Paul Eggert's avatar
      Give up on -Wsuggest-attribute=const · 0adc75af
      Paul Eggert authored
      The attribute doesn't help performance significantly, and the
      warning seems to be more trouble than it's worth.  See the thread at:
      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00361.html
      * configure.ac (WERROR_CFLAGS): Don't use -Wsuggest-attribute=const.
      * lib-src/make-docfile.c (write_globals):
      Remove special hack for Fnext_read_file_uses_dialog_p.
      * src/decompress.c (Fzlib_available_p):
      * src/gnutls.c (Fgnutls_available_p):
      * src/gtkutil.h (xg_uses_old_file_dialog):
      * src/xdisp.c (Ftool_bar_height):
      * src/xmenu.c (popup_activated):
      No longer const, since it's not const on at lest some
      configurations, and we shouldn't lie to the compiler.
      0adc75af
  22. 15 Jan, 2015 1 commit
    • Ted Zlatanov's avatar
      Flag :unknown-ca and :self-signed SSL certs (Bug#19404) · 3b7eed4e
      Ted Zlatanov authored
      Fixes: debbugs:19404
      
      * gnutls.c (init_gnutls_functions): Import gnutls_x509_crt_check_issuer.
      (Fgnutls_peer_status): Use it to set the :self-signed flag.
      Rename the previous :self-signed to :unknown-ca.
      (Fgnutls_peer_status_warning_describe): Explain :unknown-ca flag.
      3b7eed4e
  23. 13 Jan, 2015 1 commit
    • Dmitry Antipov's avatar
      Support const and noreturn DEFUN attributes. · ad9c4a40
      Dmitry Antipov authored
      * lib-src/make-docfile.c (struct global): New field 'flags'.
      (DEFUN_noreturn, DEFUN_const): New enum bitfields.
      (add_global): Now return pointer to global.
      (write_globals): Add _Noreturn and ATTRIBUTE_CONST attributes
      if requested by global's flags.
      (stream_match): New function.
      (scan_c_stream): Recognize 'attributes:' of DEFUN.
      
      * src/callint.c (Finteractive):
      * src/character.c (Fcharacterp, Fmax_char):
      * src.data.c (Feq, Fnull, Fconsp, Fatom, Flistp, Fnlistp, Fsymbolp)
      (Fstringp, Fchar_or_string_p, Fintegerp, Fnatnump, Fnumberp)
      (Ffloatp, Fbyteorder):
      * src/decompress.c (Fzlib_available_p):
      * src/fns.c (Fidentity):
      * src/frame.c (Fframe_windows_min_size):
      * src/gnutls.c (Fgnutls_error_p, Fgnutls_available_p):
      * src/window.c (Fwindow__sanitize_window_sizes):
      * src/xdisp.c (Ftool_bar_height):
      * src/xfaces.c (Fface_attribute_relative_p): Add const attribute.
      * src/emacs.c (Fkill_emacs):
      * src/eval.c (Fthrow):
      * src/keyboard.c (Ftop_level, Fexit_recursive_edit)
      (Fabor_recursive_edit): Add noreturn attribute.
      ad9c4a40
  24. 05 Jan, 2015 1 commit
    • Paul Eggert's avatar
      Compute C decls for DEFSYMs automatically · 58f2d6ef
      Paul Eggert authored
      Fixes Bug#15880.
      This patch also makes Q constants (e.g., Qnil) constant addresses
      from the C point of view.
      * make-docfile.c: Revamp to generate table of symbols, too.
      Include <stdbool.h>.
      (xstrdup): New function.
      (main): Don't process the same file twice.
      (SYMBOL): New constant in enum global_type.
      (struct symbol): Turn 'value' member into a union, either v.value
      for int or v.svalue for string.  All uses changed.
      (add_global): New arg svalue, which overrides value, so that globals
      can have a string value.
      (close_emacs_global): New arg num_symbols; all uses changed.
      Output lispsym decl.
      (write_globals): Output symbol globals too.  Output more
      ATTRIBUTE_CONST, now that Qnil etc. are C constants.
      Output defsym_name table.
      (scan_c_file): Move most of guts into ...
      (scan_c_stream): ... new function.  Scan for DEFSYMs and
      record symbols found.  Don't read past EOF if file doesn't
      end in newline.
      * alloc.c, bidi.c, buffer.c, bytecode.c, callint.c, casefiddle:
      * casetab.c, category.c, ccl.c, charset.c, chartab.c, cmds.c, coding.c:
      * composite.c, data.c, dbusbind.c, decompress.c, dired.c, dispnew.c:
      * doc.c, editfns.c, emacs.c, eval.c, fileio.c, fns.c, font.c, fontset.c:
      * frame.c, fringe.c, ftfont.c, ftxfont.c, gfilenotify.c, gnutls.c:
      * image.c, inotify.c, insdel.c, keyboard.c, keymap.c, lread.c:
      * macfont.m, macros.c, minibuf.c, nsfns.m, nsfont.m, nsimage.m:
      * nsmenu.m, nsselect.m, nsterm.m, print.c, process.c, profiler.c:
      * search.c, sound.c, syntax.c, term.c, terminal.c, textprop.c, undo.c:
      * window.c, xdisp.c, xfaces.c, xfns.c, xftfont.c, xmenu.c, xml.c:
      * xselect.c, xsettings.c, xterm.c:
      Remove Q vars that represent symbols (e.g., Qnil, Qt, Qemacs).
      These names are now defined automatically by make-docfile.
      * alloc.c (init_symbol): New function.
      (Fmake_symbol): Use it.
      (c_symbol_p): New function.
      (valid_lisp_object_p, purecopy): Use it.
      * alloc.c (marked_pinned_symbols):
      Use make_lisp_symbol instead of make_lisp_ptr.
      (garbage_collect_1): Mark lispsym symbols.
      (CHECK_ALLOCATED_AND_LIVE_SYMBOL): New macro.
      (mark_object): Use it.
      (sweep_symbols): Sweep lispsym symbols.
      (symbol_uses_obj): New function.
      (which_symbols): Use it.  Work for lispsym symbols, too.
      (init_alloc_once): Initialize Vpurify_flag here; no need to wait,
      since Qt's address is already known now.
      (syms_of_alloc): Add lispsym count to symbols_consed.
      * buffer.c (init_buffer_once): Compare to Qnil, not to make_number (0),
      when testing whether storage is all bits zero.
      * dispextern (struct image_type):
      * font.c (font_property_table):
      * frame.c (struct frame_parm_table, frame_parms):
      * keyboard.c (scroll_bar_parts, struct event_head):
      * xdisp.c (struct props):
      Use XSYMBOL_INIT (Qfoo) and struct Lisp_Symbol * rather than &Qfoo and
      Lisp_Object *, since Qfoo is no longer an object whose address can be
      taken.  All uses changed.
      * eval.c (run_hook): New function.  Most uses of Frun_hooks changed to
      use it, so that they no longer need to take the address of a Lisp sym.
      (syms_of_eval): Don't use DEFSYM on Vrun_hooks, as it's a variable.
      * frame.c (syms_of_frame): Add defsyms for the frame_parms table.
      * keyboard.c (syms_of_keyboard): Don't DEFSYM Qmenu_bar here.
      DEFSYM Qdeactivate_mark before the corresponding var.
      * keymap.c (syms_of_keymap): Use DEFSYM for Qmenu_bar and Qmode_line
      instead of interning their symbols; this avoids duplicates.
      (LISP_INITIALLY, TAG_PTR)
      (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END, XSYMBOL_INIT):
      New macros.
      (LISP_INITIALLY_ZERO): Use it.
      (enum symbol_interned, enum symbol_redirect, struct Lisp_Symbol)
      (EXFUN, DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_*):
      Move decls up, to avoid forward uses.  Include globals.h earlier, too.
      (make_lisp_symbol): New function.
      (XSETSYMBOL): Use it.
      (DEFSYM): Now just a placeholder for make-docfile.
      * lread.c (DEFINE_SYMBOLS): Define, for globals.h.
      (intern_sym): New function, with body taken from old intern_driver.
      (intern_driver): Use it.  Last arg is now Lisp integer, not ptrdiff_t.
      All uses changed.
      (define_symbol): New function.
      (init_obarray): Define the C symbols taken from lispsym.
      Use plain DEFSYM for Qt and Qnil.
      * syntax.c (init_syntax_once): No need to worry about
      Qchar_table_extra_slots.
      58f2d6ef
  25. 01 Jan, 2015 2 commits
  26. 28 Dec, 2014 2 commits
    • Paul Eggert's avatar
      Wrap dll functions more simply · e092accb
      Paul Eggert authored
      * decompress.c, gnutls.c, image.c, xml.c:
      If WINDOWSNT, use '#define FOO fn_FOO' to wrap dll functions,
      rather than the inverse when not WINDOWSNT.  This isolates the
      fn_* business into the WINDOWSNT-specific section of the code,
      which makes it easier to maintain the generic code.
      * decompress.c (DEF_ZLIB_FN, LOAD_ZLIB_FN):
      * gnutls.c (DEF_GNUTLS_FN, LOAD_GNUTLS_FN):
      * image.c (DEF_IMGLIB_FN, LOAD_IMGLIB_FN):
      * xml.c (DEF_XML2_FN, LOAD_XML2_FN):
      Remove.  All uses replaced by DEF_DLL_FN.
      * w32.h (DEF_DLL_FN, LOAD_DLL_FN): New macros.
      e092accb
    • Paul Eggert's avatar
      Port memory-full checking to GnuTLS 3.3 · b54f5721
      Paul Eggert authored
      Instead of using gnutls_global_set_mem_functions, check every call
      to a GnuTLS function that might return an indication of memory
      exhaustion.  Suggested by Dmitry Antipov in:
      http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg02056.html
      * src/gnutls.c (gnutls_global_set_mem_functions) [WINDOWSNT]: Remove.
      (init_gnutls_functions): Do not load gnutls_global_set_mem_functions.
      (fn_gnutls_global_set_mem_functions) [!WINDOWSNT]: Remove.
      All uses removed.
      (check_memory_full): New function.
      (emacs_gnutls_handshake, emacs_gnutls_handle_error)
      (gnutls_make_error, Fgnutls_boot): Use it.
      (emacs_gnutls_global_init): Avoid gnutls_global_set_mem_functions.
      b54f5721
  27. 18 Dec, 2014 1 commit
  28. 14 Dec, 2014 1 commit
    • Eli Zaretskii's avatar
      Load system's default trusted Certificate Authorities if available. · e99ce632
      Eli Zaretskii authored
       src/gnutls.c (gnutls_certificate_set_x509_system_trust)
       [GNUTLS >= 3.0.20]: Declare for WINDOWSNT.
       (init_gnutls_functions)(gnutls_certificate_set_x509_system_trust)
       [GNUTLS >= 3.0.20]: Load from shared library for WINDOWSNT.
       (fn_gnutls_certificate_set_x509_system_trust) [!WINDOWSNT]: Define
       new macro.
       (Fgnutls_boot) [GNUTLS >= 3.0.20]: Call
       gnutls_certificate_set_x509_system_trust.  Log an error message if
       it fails.
      e99ce632
  29. 13 Dec, 2014 3 commits
  30. 12 Dec, 2014 1 commit
    • Eli Zaretskii's avatar
      A better fix for bug#19346 · 16d4c1cd
      Eli Zaretskii authored
       src/gnutls.c (Fgnutls_available_p, syms_of_gnutls): Move
       gnutls-available-p out of the HAVE_GNUTLS conditional, and define
       them only once.
      16d4c1cd
  31. 11 Dec, 2014 1 commit
    • Ted Zlatanov's avatar
      Always define `gnutls-available-p' even if GnuTLS is not available. · 301a4014
      Ted Zlatanov authored
      Fixes: debbugs:19346
      
      * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
      clarity.  Let the availability check return Qnil when the GnuTLS
      integration is not available, instead of erroring out.
      
      * gnutls.h: Always declare syms_of_gnutls.
      
      * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.
      301a4014
  32. 10 Dec, 2014 1 commit
    • Paul Eggert's avatar
      Fix glitches in gnutls.c, mostly memory-related · 99be7508
      Paul Eggert authored
      * gnutls.c: Sort macro definitions by name.
      (fn_gnutls_transport_set_errno): Omit unreachable definition.
      (fn_gnutls_x509_crt_get_signature): Omit unused symbol.
      (gnutls_hex_string): Arg is now unsigned char *, to avoid a cast.
      Prefer ptrdiff_t for sizes.  Check for arithmetic overflow when
      calculating string length.  Use make_uninit_string, to avoid
      copying the string.  Cast the char, not the pointer.
      (gnutls_certificate_details): Use xmalloc and xfree, not malloc
      and free.  Work even for dates past the year 9999.  Use void *
      for buffers, to avoid casts.
      99be7508
  33. 09 Dec, 2014 1 commit
  34. 08 Dec, 2014 1 commit