1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-30 00:51:50 -08:00
Commit graph

31224 commits

Author SHA1 Message Date
William Xu
5ba6571dd9 * src/nsterm.m (ns_term_shutdown): Synchronize user defaults before exiting (Bug#8239). 2011-05-28 12:56:53 -04:00
Eli Zaretskii
e19009947f src/ChangeLog: Fix last entry. 2011-05-28 15:54:28 +03:00
Jim Meyering
3eaff8342b avoid a sign-extension bug in crypto_hash_function
* fns.c (to_uchar): Define.
(crypto_hash_function): Use it to convert some newly-signed
variables to unsigned, to avoid sign-extension bugs.  For example,
without this change, (md5 "truc") would evaluate to
45723a2aff78ff4fff7fff1114760e62 rather than the expected
45723a2af3788c4ff17f8d1114760e62.  Reported by Antoine Levitt in
http://thread.gmane.org/gmane.emacs.devel/139824
2011-05-28 14:19:08 +02:00
Eli Zaretskii
61838453ca src/ccl.c: Fix last commit. 2011-05-28 00:24:11 +03:00
Paul Eggert
2ff916cbc2 Fix order of ChangeLog entries after merge. 2011-05-27 12:58:54 -07:00
Paul Eggert
be7b2f3e8f Merge from trunk. 2011-05-27 12:56:58 -07:00
Paul Eggert
9d34ec3e75 * data.c (arith_driver): Omit unnecessary mask and test. 2011-05-27 12:48:22 -07:00
Stefan Monnier
18480f8fc0 * src/xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup. 2011-05-27 16:39:18 -03:00
Paul Eggert
0f6990a78a Merge: Integer overflow fixes. 2011-05-27 12:37:32 -07:00
Paul Eggert
fb1ac845ca * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
(x_handle_selection_request, frame_for_x_selection): Remove unused vars.
(x_clipboard_manager_save): Now static.
(Fx_clipboard_manager_save): Rename local to avoid shadowing.
2011-05-27 12:32:01 -07:00
Paul Eggert
f1b54466e9 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
(crypto_hash_function): Now static.
Fix pointer signedness problems.  Avoid unnecessary initializations.
2011-05-27 12:30:12 -07:00
Chong Yidong
a9f737eef6 Support X clipboard managers.
* lisp/select.el (xselect-convert-to-targets): Add MULTIPLE target to list.
(xselect-convert-to-save-targets): New function.

* src/xselect.c: Support for clipboard managers.
(Vselection_alist): Move to termhooks.h as terminal-local var.
(LOCAL_SELECTION): New macro.
(x_atom_to_symbol): Handle x_display_info_for_display fail case.
(symbol_to_x_atom): Remove gratuitous arg.
(x_handle_selection_request, lisp_data_to_selection_data)
(x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
(x_own_selection, x_get_local_selection, x_convert_selection): New
arg, specifying work frame.  Use terminal-local Vselection_alist.
(some_frame_on_display): Delete unused function.
(Fx_own_selection_internal, Fx_get_selection_internal)
(Fx_disown_selection_internal, Fx_selection_owner_p)
(Fx_selection_exists_p): New optional frame arg.
(frame_for_x_selection, Fx_clipboard_manager_save): New functions.
(x_handle_selection_clear): Don't treat other terminals with the
same keyboard specially.  Use the terminal-local Vselection_alist.
(x_clear_frame_selections): Use Frun_hook_with_args.

* src/termhooks.h (Vselection_alist): Make it terminal-local.

* src/terminal.c (create_terminal): Initialize it.

* src/xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.

* src/xterm.h: Add support for those atoms.
2011-05-27 12:17:59 -04:00
Chong Yidong
757c92750c src/xselect.c (x_handle_selection_request): Fix typo in last change. 2011-05-26 15:20:59 -04:00
Chong Yidong
e067f0c10d * src/xselect.c: ICCCM-compliant handling of MULTIPLE targets.
(converted_selections, conversion_fail_tag): New global variables.
(x_selection_request_lisp_error): Free the above.
(x_get_local_selection): Remove unnecessary code.
(x_reply_selection_request): Args changed; handle arbitrary array
of converted selections stored in converted_selections.  Separate
the XChangeProperty and SelectionNotify steps.
(x_handle_selection_request): Rewrite to handle MULTIPLE target.
(x_convert_selection): New function.
(x_handle_selection_event): Simplify.
(x_get_foreign_selection): Don't ignore incoming requests while
waiting for an answer; this will fail when we implement
SAVE_TARGETS, and seems unnecessary anyway.
(selection_data_to_lisp_data): Recognize ATOM_PAIR type.
(Vx_sent_selection_functions): Doc fix.
2011-05-26 13:42:32 -04:00
Leo Liu
0f4aebc0eb Allow empty regions in transpose-regions
See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8699.
2011-05-26 13:36:55 +08:00
Glenn Morris
b9345dfd4b Merge from emacs-23; up to 2010-06-12T08:59:37Z!albinus@detlef. 2011-05-24 20:45:04 -07:00
YAMAMOTO Mitsuharu
e61124cd85 Take account of periodic fringe bitmap's dependency on y-position in redrawing.
* dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.

* dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
for fringe update if it has periodic bitmap.
(row_equal_p): Also compare left_fringe_offset,	right_fringe_offset,
and fringe_bitmap_periodic_p.

* fringe.c (get_fringe_bitmap_data): New function.
(draw_fringe_bitmap_1, update_window_fringes): Use it.
(update_window_fringes): Record periodicity of fringe bitmap in glyph
row.  Mark glyph row for fringe update if periodicity changed.

* xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
for fringe update unless it has periodic bitmap.
2011-05-25 12:06:05 +09:00
Kenichi Handa
f16d983703 xdisp.c (get_next_display_element): Set correct it->face_id for a static composition. 2011-05-25 10:26:35 +09:00
Leo Liu
e1b90ef6ec Implement primitive `sha1' and remove sha1.el 2011-05-24 16:22:58 +08:00
Paul Eggert
b57f7e0a35 * dbusbind.c (xd_invalid_serial): Remove. (Bug#8722) 2011-05-24 00:41:16 -07:00
Paul Eggert
59568bf033 Add Bug#. 2011-05-23 22:40:56 -07:00
Paul Eggert
0868606086 * dbusbind.c: Serial number integer overflow fixes.
(CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
(xd_invalid_serial): New static function.
(Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
to hold a serial number that is too large for a fixnum.
(Fdbus_method_return_internal, Fdbus_method_error_internal):
Check for serial numbers out of range.  Decode any serial number
that was so large that it became a float.
2011-05-23 22:16:14 -07:00
Paul Eggert
30217ff0cf * dbusbind.c (xd_read_message_1): Don't assume dbus_uint32_t can fit in int. 2011-05-23 19:06:12 -07:00
Paul Eggert
2d1fc3c73c * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
(Fdbus_call_method, Fdbus_call_method_asynchronously):
Use XFASTINT rather than XUINT when numbers are nonnegative.
(xd_append_arg, Fdbus_method_return_internal):
(Fdbus_method_error_internal): Likewise.  Also, for unsigned
arguments, check that Lisp number is nonnegative, rather than
silently wrapping negative numbers around.
2011-05-23 18:59:17 -07:00
Paul Eggert
c8a9ca5a64 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT. 2011-05-23 18:20:04 -07:00
Paul Eggert
519e1d6921 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'. 2011-05-22 23:58:38 -07:00
Paul Eggert
847044ea2e Add bug#. 2011-05-22 23:54:47 -07:00
Paul Eggert
305696990b ccl: add integer overflow checks
* ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
(IN_INT_RANGE): New macros.
(ccl_driver): Use them to check for integer overflow when
decoding a CCL program.  Many of the new checks are whether XINT (x)
fits in int; it doesn't always, on 64-bit hosts.  The new version
doesn't catch all possible integer overflows, but it's an
improvement.
2011-05-22 23:50:03 -07:00
Paul Eggert
c11285dca1 * alloc.c (make_event_array): Use XINT, not XUINT.
There's no need for unsigned here.
2011-05-22 17:31:35 -07:00
Paul Eggert
fdccd48e6d * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
This follows up to the 2011-05-06 change that substituted uintptr_t
for EMACS_INT.  This case wasn't caught back then.
2011-05-22 17:22:43 -07:00
Paul Eggert
af3d522ffb Merge from trunk. 2011-05-22 17:09:23 -07:00
Paul Eggert
7400048f60 * gnutls.c: Remove unused macros.
(fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
(fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
Remove macros that are defined and never used.
Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
2011-05-22 17:03:40 -07:00
Chong Yidong
abb71cf449 Remove var mistakenly introduced in 2011-05-22T19:46:47Z!cyd@stupidchicken.com.
* src/xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
(Fx_get_selection_internal): Minor cleanup.
(Fx_own_selection_internal): Rename arguments for consistency with
select.el.
2011-05-22 17:57:43 -04:00
Paul Eggert
6307db3930 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure. 2011-05-22 14:12:04 -07:00
Paul Eggert
37910ab251 Rework Fformat to avoid integer overflow issues.
* editfns.c: Include <float.h> unconditionally, as it's everywhere
now (part of C89).  Include <verify.h>.
(MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
(pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
(Fformat): Avoid the prepass trying to compute sizes; it was only
approximate and thus did not catch overflow reliably.  Instead, walk
through the format just once, formatting and computing sizes as we go,
checking for integer overflow at every step, and allocating a larger
buffer as needed.  Keep track separately whether the format is
multibyte.  Keep only the most-recently calculated precision, rather
than them all.  Record whether each argument has been converted to
string.  Use EMACS_INT, not int, for byte and char and arg counts.
Support field widths and precisions larger than INT_MAX.  Avoid
sprintf's undefined behavior with conversion specifications such as %#d
and %.0c.  Fix bug with strchr succeeding on '\0' when looking for
flags.  Fix bug with (format "%c" 256.0).  Avoid integer overflow when
formatting out-of-range floating point numbers with int
formats. (Bug#8668)
2011-05-22 13:27:07 -07:00
Chong Yidong
f3d4e0a47d * src/xselect.c (syms_of_xselect): Include character.h; use DEFSYM. 2011-05-22 15:39:54 -04:00
Paul Eggert
2e6578fb5e * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN. 2011-05-22 00:12:24 -07:00
Paul Eggert
0ae6bdee00 * data.c: Avoid integer truncation in expressions involving floats.
* data.c: Include <intprops.h>.
(arith_driver): When there's an integer overflow in an expression
involving floating point, convert the integers to floating point
so that the resulting value does not suffer from catastrophic
integer truncation.  For example, on a 64-bit host (* 4
most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
Do not rely on undefined behavior after integer overflow.
2011-05-20 22:38:43 -07:00
Paul Eggert
de883a701d merge count_size_as_multibyte, parse_str_to_multibyte
* character.c, character.h (count_size_as_multibyte):
Renamed from parse_str_to_multibyte; all uses changed.
Check for integer overflow.
* insdel.c, lisp.h (count_size_as_multibyte): Remove,
since it's now a duplicate of the other.  This is more of
a character than a buffer op, so better that it's in character.c.
* fns.c, print.c: Adjust to above changes.
2011-05-20 21:33:23 -07:00
Glenn Morris
a57471f935 Merge from emacs-23; up to 2010-06-11T18:51:00Z!juri@jurta.org. 2011-05-20 19:15:34 -07:00
Glenn Morris
33cf345f0c * src/Makefile.in (SOME_MACHINE_OBJECTS): Add some more files. 2011-05-20 19:04:48 -07:00
Glenn Morris
32078c8d48 * src/Makefile.in ($(etc)/DOC): Make second command line even shorter. 2011-05-20 19:02:42 -07:00
YAMAMOTO Mitsuharu
4d8ade8957 * dispnew.c (scrolling_window): Don't exclude the case that the
last enabled row in the desired matrix touches the bottom boundary.
2011-05-21 10:56:45 +09:00
Eli Zaretskii
7285dc67f4 Fix the MSDOS build as follows from 2011-05-19T06:04:16Z!rgm@gnu.org, 2011-05-20T00:41:03Z!rgm@gnu.org.
config.bat: Concatenate lisp.mk onto the end of src/Makefile.
 msdos/sed1v2.inp (make-docfile commands): Recognize only if the line
 begins with a TAB.  Use $(etc) rather than a literal "../etc".
 (`sed SED-COMMAND $(srcdir)/lisp.mk`): Edit to replace with "$(lisp).
 (@lisp_frag@): Edit out.
 msdos/sedlibmk.inp (GNULIB_GROUP_MEMBER, HAVE_GROUP_MEMBER): Edit to
 zero.
 src/callproc.c (Fcall_process) [MSDOS]: Fix arguments to
 report_file_error introduced by the change from 2011-05-07.
2011-05-20 12:47:59 +03:00
Paul Eggert
89d1bd225c * systime.h (Time): Define only if emacs is defined.
This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
where the include path doesn't have X11/X.h by default.  See
<http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
2011-05-19 23:37:13 -07:00
Kenichi Handa
e23640bb69 merge trunk 2011-05-20 09:54:09 +09:00
Kenichi Handa
31bfc35cca composite.c (find_automatic_composition): Fix previous change. 2011-05-20 09:51:38 +09:00
Glenn Morris
b9704ad993 Remove $shortlisp from src/Makefile.in.
* configure.in (lisp_frag): New output file.

* src/lisp.mk: New file, split from Makefile.in, and inheriting its
  copyright years.
* src/Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
(shortlisp): Remove.
($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.

* lisp/loadup.el, doc/misc/Makefile.in: Comment changes.
2011-05-19 17:41:03 -07:00
Glenn Morris
4a72048482 Remove the SOME_MACHINE_LISP distinction in src/Makefile.in.
See discussion in http://debbugs.gnu.org/8302

* configure.in (NS_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
(WINDOW_SUPPORT): Remove output variables that are no longer used.

* lib-src/makefile.w32-in (echolisp): Remove rule that is no longer needed.
(clean): No more echolisp.tmp.

* .bzrignore: Remove lib-src/echolisp.tmp.

* lisp/emacs-lisp/autoload.el (batch-update-autoloads):
Set autoload-excludes by parsing lisp/loadup.el rather than Makefiles.

* lisp/loadup.el: Update commentary.

* msdos/sed1x.inp (TOOLTIP_SUPPORT, WINDOW_SUPPORT):
* msdos/sed1v2.inp (MSDOS_SUPPORT, NS_SUPPORT, MOUSE_SUPPORT)
(TOOLTIP_SUPPORT, WINDOW_SUPPORT): No need to edit these any more.

* src/Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
(REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
(BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
(lisp): Set the order to that of loadup.el.
(shortlisp): Make it a copy of $lisp.
(SOME_MACHINE_LISP): Remove.
($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
Use just $shortlisp, not $SOME_MACHINE_LISP too.
2011-05-18 23:04:16 -07:00
Kenichi Handa
23373930da merge trunk 2011-05-19 09:37:36 +09:00