Commit graph

31142 commits

Author SHA1 Message Date
Glenn Morris
79b70037f6 Put ChangeLog entries in the correct files. 2011-05-12 09:30:17 -07:00
Glenn Morris
d2fc7e3d0f Merge from emacs-23; up to 2010-06-10T12:56:11Z!michael.albinus@gmx.de. 2011-05-12 00:07:06 -07:00
Drew Adams
e531bdfff1 src/textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655). 2011-05-11 18:38:18 +02:00
YAMAMOTO Mitsuharu
7db47798f8 Take account of fringe background extension in scroll_run_hook.
* w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
`width' to `bar_area_x' and `bar_area_width', respectively.
(x_scroll_run): Take account of fringe background extension.

* xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]: Rename
local vars `left' and `width' to `bar_area_x' and
`bar_area_width', respectively.
(x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
background extension.
2011-05-11 12:13:58 +09:00
U. Ser
9b053e766d fix many doubled-word typos 2011-05-10 15:57:12 +02:00
Juanma Barranquero
2f142cc515 src/image.c (Finit_image_library): Return t for built-in image types (bug#8640). 2011-05-10 12:31:33 +02:00
Andreas Schwab
57679c8695 * w32menu.c (set_frame_menubar): Fix submenu allocation. 2011-05-09 13:29:51 +02:00
Andreas Schwab
25fb3d747b * xmenu.c (set_frame_menubar): Fix submenu loops. 2011-05-09 13:13:02 +02:00
Eli Zaretskii
14fe7b530d 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.
2011-05-09 05:59:23 -04:00
Eli Zaretskii
b0512a1d79 Fix bug #8597 with setting frame background mode on w32 console.
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.
2011-05-07 18:44:19 +03:00
Eli Zaretskii
888c9e865f Fix changes in 2011-05-01T00:04:17Z!larsi@gnus.org for MS-DOS.
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.
2011-05-07 14:25:05 +03:00
Ben Key
4d3fcc8e60 * nt/configure.bat: Renamed the fusercflags variable to escusercflags
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.
2011-05-06 23:00:12 -05:00
Michael Albinus
b4289b644f * dbusbind.c (QCdbus_type_unix_fd): Declare static.
(xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
is a constant.
(Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
a string.  Handle both cases.
(Fdbus_call_method_asynchronously, Fdbus_register_signal)
(Fdbus_register_method): Use Qinvalid_function.
2011-05-07 00:12:31 +02:00
Juanma Barranquero
af4c0e2849 src/makefile.w32-in: Update dependencies. 2011-05-06 17:37:11 +02:00
Eli Zaretskii
c51453d997 Fix the MS-Windows build broken by 2011-05-06T07:13:19Z!eggert@cs.ucla.edu.
src/lread.c: Include limits.h.
2011-05-06 14:26:45 +03:00
Paul Eggert
b08a63ccec Do not assume EMACS_INT is the same width as a pointer.
This prepares for a future patch that will prefer 64-bit EMACS_INT if
available.  That patch can be tried now, by compiling with -DWIDE_EMACS_INT,
but it is temporarily not the default so that it can be further tested.

Also, install some other fixes for problems discovered by the static
checking of GCC 4.6.0.

Fixes: debbugs:8545 debbugs:8601 debbugs:8600 debbugs:8602
2011-05-06 00:13:19 -07:00
Paul Eggert
8ff0ac3c78 Merge from mainline. 2011-05-05 23:30:56 -07:00
Paul Eggert
122b0c8643 Temporarily disable wider-than-pointer EMACS_INT. 2011-05-05 22:55:01 -07:00
Juanma Barranquero
dbdb9a7cae src/gnutls.c, src/image.c: Make function pointers static. 2011-05-06 03:05:25 +02:00
Andreas Schwab
db7a0b4f1d * src/lread.c (lisp_file_lexically_bound_p): Stop scanning at end
marker.  (Bug#8610)
2011-05-05 18:56:39 +02:00
Paul Eggert
4c4b566b11 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local. 2011-05-05 00:23:07 -07:00
Paul Eggert
c717b32678 Revert to wraparound integer arithmetic, instead of going to float. 2011-05-04 23:31:14 -07:00
Paul Eggert
852a74a59b Merge from mainline. 2011-05-04 22:31:24 -07:00
Glenn Morris
f7ff1b0f07 Merge from emacs-23; up to 2010-06-10T05:17:21Z!rgm@gnu.org. 2011-05-04 21:00:38 -07:00
Juanma Barranquero
520cf78a0f src/gnutls.c: Keep list of function aliases in alphabetical order. 2011-05-05 04:18:36 +02:00
Ted Zlatanov
639c109b90 Add fn_NAME alias for `gnutls_certificate_set_x509_key_file'.
* gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
`gnutls_certificate_set_x509_key_file'.
2011-05-04 21:05:36 -05:00
Juanma Barranquero
d212713522 src/makefile.w32-in: Update dependencies. 2011-05-05 02:20:44 +02:00
Juanma Barranquero
e968f4f300 src/gnutls.c: Remove unused parameter `fildes'.
* 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.
2011-05-05 01:56:09 +02:00
Juanma Barranquero
84d358f0d5 Fix previous change: the library cache is defined in w32.c.
* image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
  (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
2011-05-04 22:03:07 +02:00
Juanma Barranquero
0898ca10c0 Implement dynamic loading of GnuTLS on Windows.
* 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.
2011-05-04 16:03:16 +02:00
Paul Eggert
aab2b9b5ab * term.c (vfatal): Remove stray call to va_end.
It's not needed and the C Standard doesn't allow it here anyway.
2011-05-04 00:20:46 -07:00
Paul Eggert
c378da0b47 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux. 2011-05-04 00:19:21 -07:00
Paul Eggert
288b08c747 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
bytes.
2011-05-03 23:24:29 -07:00
Paul Eggert
e3601888f1 * term.c: Don't include <stdarg.h>, as <lisp.h> does that. 2011-05-03 23:21:26 -07:00
Paul Eggert
53a35e81c9 Merge from mainline. 2011-05-03 23:13:23 -07:00
Ted Zlatanov
ff4de4aaca Support :keylist and :crlfiles options to `gnutls-boot' and use them.
* src/gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
instead of :keyfiles.  Give GnuTLS the keylist and the CRL lists
as passed in.
2011-05-03 20:45:27 -05:00
Paul Eggert
13c15c6d70 Merge from mainline. 2011-05-03 17:26:43 -07:00
Paul Eggert
59dba0f4d8 Add Bug#. 2011-05-03 11:57:49 -07:00
Jan Djärv
abe95abbaf * xterm.c (x_set_frame_alpha): Do not set property on anything
else than FRAME_X_OUTER_WINDOW.

Fixes: debbugs:8608
2011-05-03 17:54:54 +02:00
Paul Eggert
4ed0cebda8 * floatfns.c (Fexpt): Likewise. 2011-05-03 01:52:13 -07:00
Paul Eggert
7fc4768c45 Arithmetic overflows now return float rather than wrapping around.
* data.c: Include <intprops.h>.
(arith_driver): Use floating point if the accumulator would otherwise
go out of EMACS_INT range.
(arith_driver, Fadd1, Fsub1): Use floating point if the result is
out of Emacs fixnum range.
* bytecode.c (exec_byte_code): Likewise, for Bsub1, Badd1, Bnegate.
2011-05-03 00:51:38 -07:00
Paul Eggert
db6c0e74f1 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering. 2011-05-02 23:26:40 -07:00
Paul Eggert
dd5963ea21 * process.c (Fformat_network_address): Fix typo: args2 -> *args2. 2011-05-02 23:13:54 -07:00
Paul Eggert
88c9450f38 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times). 2011-05-02 23:12:50 -07:00
Paul Eggert
aceeea6c45 Merge from mainline. 2011-05-02 22:47:50 -07:00
Paul Eggert
79f5556a7a Merge: Fixes for Bug#8600 and Bug#8601. 2011-05-02 22:46:00 -07:00
Juanma Barranquero
e16e55d4a0 src/sysdep.c (get_tty_size) [WINDOWSNT]: Implement.
Fixes: debbugs:8596
2011-05-02 05:57:02 +02:00
Paul Eggert
48e400f07d Add Bug#. 2011-05-01 20:21:58 -07:00
Paul Eggert
a108c10b7a * lread.c (read_integer): Be more consistent with string-to-number.
Use string_to_number to do the actual conversion; this avoids
rounding errors and fixes some other screwups.  Without this fix,
for example, #x1fffffffffffffff was misread as -2305843009213693952.
(digit_to_number): Move earlier, for benefit of read_integer.
Return -1 if the digit is out of range for the base, -2 if it is
not a digit in any supported base.
2011-05-01 19:58:08 -07:00
Juanma Barranquero
bafcf6a554 src/gnutls.c: Make static a bunch of variables. 2011-05-02 04:49:06 +02:00