1. 12 May, 2011 1 commit
  2. 11 May, 2011 2 commits
  3. 10 May, 2011 1 commit
  4. 09 May, 2011 3 commits
    • Andreas Schwab's avatar
    • Andreas Schwab's avatar
      25fb3d74
    • Eli Zaretskii's avatar
      Backport revisions... · 14fe7b53
      Eli Zaretskii authored
      Backport revisions 2011-04-24T05:30:24Z!eggert@cs.ucla.edu..2011-04-25T19:40:22Z!eggert@cs.ucla.edu (inclusive) from trunk (bug#8623)
      
      	The next log entry shows the actual changes by Paul Eggert.
      
       Fix a problem with aliasing and vector headers.
       GCC 4.6.0 optimizes based on type-based alias analysis.  For
       example, if b is of type struct buffer * and v of type struct
       Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
       != &v->size, and therefore "v->size = 1; b->size = 2; return
       v->size;" must therefore return 1.  This assumption is incorrect
       for Emacs, since it type-puns struct Lisp_Vector * with many other
       types.  To fix this problem, this patch adds a new type struct
       vector_header that documents the constraints on layout of vectors
       and pseudovectors, and helps optimizing compilers not get fooled
       by Emacs's type punning.  It also adds the macros XSETTYPED_PVECTYPE
       XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
       src/lisp.h (XVECTOR_SIZE): New convenience macro.  All previous uses of
       XVECTOR (foo)->size replaced to use this macro, to avoid the hassle
       of writing XVECTOR (foo)->header.size.
       src/lisp.h: Say "vectorlike header" rather than "vector header.
       (struct vectorlike_header): Rename from struct vector_header.
       (XVECTORLIKE_HEADER_SIZE): Renamed from XVECTOR_HEADER_SIZE.
       All uses changed.
       (XVECTOR_HEADER_SIZE): New macro, for use in XSETPSEUDOVECTOR.
       (XSETTYPED_PVECTYPE): New macro, specifying the name of the size
       member.
       (XSETPVECTYPE): Rewrite in terms of new macro.
       (XSETPVECTYPESIZE): New macro, specifying both type and size.
       This is a bit clearer, and further avoids the possibility of
       undesirable aliasing.
       (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
       (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR
       and XVECTOR_HEADER_SIZE.
       (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
       since Lisp_Subr is a special case (no "next" field).
       (ASIZE): Rewrite in terms of XVECTOR_SIZE.
       (struct vector_header): New type.
       (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
       object, to help avoid aliasing.
       (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
       (SUBRP): Likewise, since Lisp_Subr is a special case.
       src/lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
       (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
       (struct Lisp_Hash_Table): Combine first two members into a single
       struct vector_header member.  All uses of "size" and "next" members
       changed to be "header.size" and "header.next".
       src/buffer.h (struct buffer): Likewise.
       src/font.h (struct font_spec, struct font_entity, struct font): Likewise.
       src/frame.h (struct frame): Likewise.
       src/process.h (struct Lisp_Process): Likewise.
       src/termhooks.h (struct terminal): Likewise.
       src/window.c (struct save_window_data, struct saved_window): Likewise.
       src/window.h (struct window): Likewise.
       src/alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
       Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
       src/buffer.c (init_buffer_once): Likewise.
       src/lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
       special case.
       src/process.c (Fformat_network_address): Use local var for size,
       for brevity.
       src/fns.c (vector): Remove; this old hack is no longer needed.
       src/bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
      14fe7b53
  5. 07 May, 2011 3 commits
    • Eli Zaretskii's avatar
      Fix bug #8597 with setting frame background mode on w32 console. · b0512a1d
      Eli Zaretskii authored
       src/w32console.c (Fset_screen_color): Doc fix.
       (Fget_screen_color): New function.
       (syms_of_ntterm): Defsubr it.
       lisp/term/w32console.el (terminal-init-w32console): Call
       get-screen-color and use its output to set the frame
       background-mode.
      b0512a1d
    • Eli Zaretskii's avatar
      Fix changes in 2011-05-01T00:04:17Z!larsi@gnus.org for MS-DOS. · 888c9e86
      Eli Zaretskii authored
       src/callproc.c (call_process_cleanup): Don't close and unlink the
       temporary file if Fcall_process didn't create it in the first
       place.
       (Fcall_process): Don't create tempfile if stdout of the child
       process will be redirected to a file specified with `:file'.
       Don't try to re-open tempfile in that case, and set fd[0] to -1 as
       cue to call_process_cleanup not to close that handle.
      888c9e86
    • Ben Key's avatar
      * nt/configure.bat: Renamed the fusercflags variable to escusercflags · 4d3fcc8e
      Ben Key authored
      so that the variable name better matches its purpose, to be identical
      to usercflags with the exception that all quotes are escaped by the \
      character.
      
      Renamed the fuserldflags variable to escuserldflags so that the
      variable name better matches its purpose, to be identical to
      userldflags with the exception that all quotes are escaped by the \
      character.
      
      A new ESC_USER_CFLAGS variable is written to config.settings.  This
      variable has the same value as the escusercflags variable.
      
      * nt/gmake.defs, nt/nmake.defs: Added the variable ESC_CFLAGS.  This
      variable is identical to the CFLAGS variable except that it includes
      the new ESC_USER_CFLAGS variable instead of USER_CFLAGS.
      
      * src/makefile.w32-in: The bootstrap-temacs rule now makes use of one
      of two shell specific rules, either bootstrap-temacs-CMD or
      bootstrap-temacs-SH.  The bootstrap-temacs-SH rule is identical to the
      previous implementation of the bootstrap-temacs rule.  The
      bootstrap-temacs-CMD rule is similar to the previous implementation of
      the bootstrap-temacs rule except that it makes use of the ESC_CFLAGS
      variable instead of the CFLAGS variable.
      
      
      These changes are required to extend my earlier fix to add support for
      --cflags and --ldflags options that include quotes so that it works
      whether make uses cmd or sh as the shell.
      4d3fcc8e
  6. 06 May, 2011 5 commits
  7. 05 May, 2011 5 commits
  8. 04 May, 2011 8 commits
    • Juanma Barranquero's avatar
      src/gnutls.c: Remove unused parameter `fildes'. · e968f4f3
      Juanma Barranquero authored
      * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
      * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
        Remove unused parameter `fildes'.
      * process.c (read_process_output, send_process): Don't pass it.
      e968f4f3
    • Juanma Barranquero's avatar
      Fix previous change: the library cache is defined in w32.c. · 84d358f0
      Juanma Barranquero authored
      * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
        (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
      84d358f0
    • Juanma Barranquero's avatar
      Implement dynamic loading of GnuTLS on Windows. · 0898ca10
      Juanma Barranquero authored
      * lisp/term/w32-win.el (dynamic-library-alist): Add `gnutls'.
      
      * nt/INSTALL: Clarify GnuTLS support.
      
      * src/callproc.c, src/emacs.c: Include lisp.h before src/w32.h, not after.
      
      * src/gnutls.c (Qgnutls_dll): Define.
        (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
        (gnutls_*): Declare function pointers.
        (init_gnutls_functions): New function to initialize function pointers.
        (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
        (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
        (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
        Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
        (emacs_gnutls_write, emacs_gnutls_read)
        (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
        (Fgnutls_available_p): New function.
        (Fgnutls_boot): Call Fgnutls_available_p.  Use function pointers.
        (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
        (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
      
      * src/gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
        (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
        (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
        Declare.
      
      * src/w32.c (QCloaded_from, Vlibrary_cache): Define.
        (w32_delayed_load): Move from image.c.  When loading a library, record
        its filename in the :loaded-from property of the library id.
        (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
        Initialize and staticpro them.
        (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
      
      * src/image.c: Include w32.h.
        (Vimage_type_cache): Delete.
        (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
        (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
        (w32_delayed_load): Move to w32.c.
      
      * src/process.c: Include lisp.h before src/w32.h, not after.
        (wait_reading_process_output): Call emacs_gnutls_record_check_pending
        instead of gnutls_record_check_pending.
      
      * src/w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
      0898ca10
    • Paul Eggert's avatar
      * term.c (vfatal): Remove stray call to va_end. · aab2b9b5
      Paul Eggert authored
      It's not needed and the C Standard doesn't allow it here anyway.
      aab2b9b5
    • Paul Eggert's avatar
    • Paul Eggert's avatar
    • Paul Eggert's avatar
      e3601888
    • Ted Zlatanov's avatar
      Support :keylist and :crlfiles options to `gnutls-boot' and use them. · ff4de4aa
      Ted Zlatanov authored
      * src/gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
      instead of :keyfiles.  Give GnuTLS the keylist and the CRL lists
      as passed in.
      ff4de4aa
  9. 03 May, 2011 7 commits
  10. 02 May, 2011 4 commits
  11. 01 May, 2011 1 commit