aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorKenichi Handa2011-05-19 09:37:36 +0900
committerKenichi Handa2011-05-19 09:37:36 +0900
commit23373930daa192623bfda56960ccb04b2703fbe5 (patch)
tree4350ad7774b3d4dc6f2ccf0e6343b505582e0112 /src/ChangeLog
parenta28d4396018e48479916fd624e2371aa1f75e6e7 (diff)
parent627abcddd1c45a07d58b9c0cbfd6bb62caf256a9 (diff)
downloademacs-23373930daa192623bfda56960ccb04b2703fbe5.tar.gz
emacs-23373930daa192623bfda56960ccb04b2703fbe5.zip
merge trunk
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog164
1 files changed, 136 insertions, 28 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index fd6f42acb91..372bf383fb8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -4,6 +4,114 @@
4 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis. 4 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
5 (find_automatic_composition): Mostly rewrite for efficiency. 5 (find_automatic_composition): Mostly rewrite for efficiency.
6 6
72011-05-18 Juanma Barranquero <lekktu@gmail.com>
8
9 * makefile.w32-in: Update dependencies.
10
112011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
12
13 * menu.c: Include limits.h (fixes the MS-Windows build broken by
14 revision 104625).
15
162011-05-18 Paul Eggert <eggert@cs.ucla.edu>
17
18 Fix some integer overflow issues, such as string length overflow.
19
20 * insdel.c (count_size_as_multibyte): Check for string overflow.
21
22 * character.c (lisp_string_width): Check for string overflow.
23 Use EMACS_INT, not int, for string indexes and lengths; in
24 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
25 the resulting string length overflows an EMACS_INT; instead,
26 report a string overflow if no precision given. When checking for
27 precision exhaustion, use a check that cannot possibly have
28 integer overflow. (Bug#8675)
29 * character.h (lisp_string_width): Adjust to new signature.
30
31 * alloc.c (string_overflow): New function.
32 (Fmake_string): Use it. This doesn't change behavior, but saves
33 a few bytes and will simplify future changes.
34 * character.c (string_escape_byte8): Likewise.
35 * lisp.h (string_overflow): New decl.
36
37 Fixups, following up to the user-interface timestamp change.
38 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
39 for UI timestamps, instead of unsigned long.
40 * msdos.c (mouse_get_pos): Likewise.
41 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
42 * w32gui.h (Time): Define by including "systime.h" rather than by
43 declaring it ourselves. (Bug#8664)
44
45 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
46 * image.c (clear_image_cache): Likewise.
47
48 * term.c (term_mouse_position): Don't assume time_t wraparound.
49
50 Be more systematic about user-interface timestamps.
51 Before, the code sometimes used 'Time', sometimes 'unsigned long',
52 and sometimes 'EMACS_UINT', to represent these timestamps. This
53 change causes it to use 'Time' uniformly, as that's what X uses.
54 This makes the code easier to follow, and makes it easier to catch
55 integer overflow bugs such as Bug#8664.
56 * frame.c (Fmouse_position, Fmouse_pixel_position):
57 Use Time, not unsigned long, for user-interface timestamps.
58 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
59 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
60 * keyboard.h (last_event_timestamp): Likewise.
61 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
62 * menu.h (xmenu_show): Likewise.
63 * term.c (term_mouse_position): Likewise.
64 * termhooks.h (struct input_event.timestamp): Likewise.
65 (struct terminal.mouse_position_hook): Likewise.
66 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
67 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
68 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
69 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
70 what it was before.
71 * menu.h, termhooks.h: Include "systime.h", for Time.
72
73 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
74 Don't assume that the difference between two unsigned long values
75 can fit into an integer. At this point, we know button_down_time
76 <= event->timestamp, so the difference must be nonnegative, so
77 there's no need to cast the result if double-click-time is
78 nonnegative, as it should be; check that it's nonnegative, just in
79 case. This bug is triggered when events are more than 2**31 ms
80 apart (about 25 days). (Bug#8664)
81
82 * xselect.c (last_event_timestamp): Remove duplicate decl.
83 (x_own_selection): Remove needless cast to unsigned long.
84
85 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
86 that always fit in int. Use a sentinel instead of a counter, to
87 avoid a temp and to allay GCC's concerns about possible int overflow.
88 * frame.h (struct frame): Use int for menu_bar_items_used
89 instead of EMACS_INT, since it always fits in int.
90
91 * menu.c (grow_menu_items): Check for int overflow.
92
93 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
94
95 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
96 Before, the code was not consistent. These values cannot exceed
97 2**31 - 1 so there's no need to make them unsigned.
98 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
99 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
100 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
101 as modifiers.
102 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
103
104 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
105 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
106 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
107 presumably because the widths might not match.
108
109 * window.c (size_window): Avoid needless test at loop start.
110
1112011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
112
113 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
114
72011-05-12 Drew Adams <drew.adams@oracle.com> 1152011-05-12 Drew Adams <drew.adams@oracle.com>
8 116
9 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655). 117 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
@@ -14,8 +122,8 @@
14 `width' to `bar_area_x' and `bar_area_width', respectively. 122 `width' to `bar_area_x' and `bar_area_width', respectively.
15 (x_scroll_run): Take account of fringe background extension. 123 (x_scroll_run): Take account of fringe background extension.
16 124
17 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]: Rename 125 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
18 local vars `left' and `width' to `bar_area_x' and 126 Rename local vars `left' and `width' to `bar_area_x' and
19 `bar_area_width', respectively. 127 `bar_area_width', respectively.
20 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe 128 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
21 background extension. 129 background extension.
@@ -132,8 +240,8 @@
132 * dbusbind.c: Do not use XPNTR on a value that may be an integer. 240 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
133 Reported by Stefan Monnier in 241 Reported by Stefan Monnier in
134 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>. 242 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
135 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): Use 243 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
136 SYMBOLP-guarded XSYMBOL, not XPNTR. 244 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
137 245
138 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t. 246 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
139 (EMACS_UINTPTR): Likewise, with uintptr_t. 247 (EMACS_UINTPTR): Likewise, with uintptr_t.
@@ -319,8 +427,8 @@
319 * callproc.c: Indentation fixup. 427 * callproc.c: Indentation fixup.
320 428
321 * sysdep.c (wait_for_termination_1): Make static. 429 * sysdep.c (wait_for_termination_1): Make static.
322 (wait_for_termination, interruptible_wait_for_termination): Move 430 (wait_for_termination, interruptible_wait_for_termination):
323 after wait_for_termination_1. 431 Move after wait_for_termination_1.
324 432
3252011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org> 4332011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
326 434
@@ -436,8 +544,8 @@
436 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0. 544 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
437 545
438 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546) 546 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
439 GCC 4.6.0 optimizes based on type-based alias analysis. For 547 GCC 4.6.0 optimizes based on type-based alias analysis.
440 example, if b is of type struct buffer * and v of type struct 548 For example, if b is of type struct buffer * and v of type struct
441 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size 549 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
442 != &v->size, and therefore "v->size = 1; b->size = 2; return 550 != &v->size, and therefore "v->size = 1; b->size = 2; return
443 v->size;" must therefore return 1. This assumption is incorrect 551 v->size;" must therefore return 1. This assumption is incorrect
@@ -457,8 +565,8 @@
457 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR. 565 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
458 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE, 566 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
459 since Lisp_Subr is a special case (no "next" field). 567 since Lisp_Subr is a special case (no "next" field).
460 (ASIZE): Now uses header.size rather than size. All 568 (ASIZE): Now uses header.size rather than size.
461 previous uses of XVECTOR (foo)->size replaced to use this macro, 569 All previous uses of XVECTOR (foo)->size replaced to use this macro,
462 to avoid the hassle of writing XVECTOR (foo)->header.size. 570 to avoid the hassle of writing XVECTOR (foo)->header.size.
463 (struct vectorlike_header): New type. 571 (struct vectorlike_header): New type.
464 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the 572 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
@@ -507,7 +615,7 @@
507 Break out the floating-point parsing into a new 615 Break out the floating-point parsing into a new
508 function string_to_number, so that Fstring_to_number parses 616 function string_to_number, so that Fstring_to_number parses
509 floating point numbers consistently with the Lisp reader. 617 floating point numbers consistently with the Lisp reader.
510 (digit_to_number): Moved here from data.c. Make it static inline. 618 (digit_to_number): Move here from data.c. Make it static inline.
511 (E_CHAR, EXP_INT): Remove, replacing with ... 619 (E_CHAR, EXP_INT): Remove, replacing with ...
512 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below. 620 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
513 (string_to_number): New function, replacing isfloat_string. 621 (string_to_number): New function, replacing isfloat_string.
@@ -744,8 +852,8 @@
744 Fix doprnt so it could be used again safely in `verror'. (Bug#8435) 852 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
745 * doprnt.c: Include limits.h. 853 * doprnt.c: Include limits.h.
746 (SIZE_MAX): New macro. 854 (SIZE_MAX): New macro.
747 (doprnt): Return a size_t value. 2nd arg is now size_t. Many 855 (doprnt): Return a size_t value. 2nd arg is now size_t.
748 local variables are now size_t instead of int or unsigned. 856 Many local variables are now size_t instead of int or unsigned.
749 Improve overflow protection. Support `l' modifier for integer 857 Improve overflow protection. Support `l' modifier for integer
750 conversions. Support %l conversion. Don't assume an EMACS_INT 858 conversions. Support %l conversion. Don't assume an EMACS_INT
751 argument for integer conversions and for %c. 859 argument for integer conversions and for %c.
@@ -946,8 +1054,8 @@
946 1054
947 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT. 1055 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
948 1056
949 * textprop.c (verify_interval_modification, interval_of): Declare 1057 * textprop.c (verify_interval_modification, interval_of):
950 arguments EMACS_INT. 1058 Declare arguments EMACS_INT.
951 1059
952 * intervals.c (adjust_intervals_for_insertion): Declare arguments 1060 * intervals.c (adjust_intervals_for_insertion): Declare arguments
953 EMACS_INT. 1061 EMACS_INT.
@@ -1198,8 +1306,8 @@
1198 (free_realized_fontset) #if-0 the body, which does nothing. 1306 (free_realized_fontset) #if-0 the body, which does nothing.
1199 (face_suitable_for_char_p): #if-0, as it's never called. 1307 (face_suitable_for_char_p): #if-0, as it's never called.
1200 * fontset.h (face_suitable_for_char_p): Remove decl. 1308 * fontset.h (face_suitable_for_char_p): Remove decl.
1201 * xfaces.c (face_at_string_position): Use 1309 * xfaces.c (face_at_string_position):
1202 FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P, 1310 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
1203 since 0 is always ASCII. 1311 since 0 is always ASCII.
1204 1312
1205 * fns.c (weak_hash_tables): Now static. 1313 * fns.c (weak_hash_tables): Now static.
@@ -1308,8 +1416,8 @@
1308 (last_point_position_window): Remove decls. 1416 (last_point_position_window): Remove decls.
1309 * keyboard.c: Make these variables static. 1417 * keyboard.c: Make these variables static.
1310 1418
1311 * coding.h (coding, code_convert_region, encode_coding_gap): Remove 1419 * coding.h (coding, code_convert_region, encode_coding_gap):
1312 decls. 1420 Remove decls.
1313 * coding.c (Vsjis_coding_system, Vbig5_coding_system): 1421 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
1314 (iso_code_class, detect_coding, code_convert_region): Now static. 1422 (iso_code_class, detect_coding, code_convert_region): Now static.
1315 (encode_coding_gap): Remove; unused. 1423 (encode_coding_gap): Remove; unused.
@@ -1340,7 +1448,7 @@
1340 exported only to the debugger. 1448 exported only to the debugger.
1341 1449
1342 * atimer.c (alarm_signal_handler, run_all_atimers): Now static. 1450 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
1343 * atimer.h (run_all_atimers): Removed; not exported. 1451 * atimer.h (run_all_atimers): Remove; not exported.
1344 1452
1345 font.c: Make copy_font_spec and merge_font_spec ordinary C functions. 1453 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
1346 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it 1454 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
@@ -1595,8 +1703,8 @@
1595 1703
15962011-04-09 Chong Yidong <cyd@stupidchicken.com> 17042011-04-09 Chong Yidong <cyd@stupidchicken.com>
1597 1705
1598 * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use 1706 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
1599 unsigned char, to match FcChar8 type definition. 1707 Use unsigned char, to match FcChar8 type definition.
1600 1708
1601 * xterm.c (handle_one_xevent): 1709 * xterm.c (handle_one_xevent):
1602 * xmenu.c (create_and_show_popup_menu): 1710 * xmenu.c (create_and_show_popup_menu):
@@ -1669,8 +1777,8 @@
1669 1777
16702011-04-06 Chong Yidong <cyd@stupidchicken.com> 17782011-04-06 Chong Yidong <cyd@stupidchicken.com>
1671 1779
1672 * process.c (Flist_processes): Removed to Lisp. 1780 * process.c (Flist_processes): Remove to Lisp.
1673 (list_processes_1): Deleted. 1781 (list_processes_1): Delete.
1674 1782
16752011-04-06 Eli Zaretskii <eliz@gnu.org> 17832011-04-06 Eli Zaretskii <eliz@gnu.org>
1676 1784
@@ -1928,8 +2036,8 @@
1928 * callint.c (Fcall_interactively): Preserve lexical-binding mode for 2036 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
1929 interactive spec. 2037 interactive spec.
1930 2038
1931 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): New 2039 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
1932 byte-codes. 2040 New byte-codes.
1933 (exec_byte_code): New function extracted from Fbyte_code to handle new 2041 (exec_byte_code): New function extracted from Fbyte_code to handle new
1934 calling convention for byte-code-functions. Add new byte-codes. 2042 calling convention for byte-code-functions. Add new byte-codes.
1935 2043
@@ -1944,8 +2052,8 @@
19442011-03-31 Eli Zaretskii <eliz@gnu.org> 20522011-03-31 Eli Zaretskii <eliz@gnu.org>
1945 2053
1946 * xdisp.c (SCROLL_LIMIT): New macro. 2054 * xdisp.c (SCROLL_LIMIT): New macro.
1947 (try_scrolling): Use it when setting scroll_limit. Limit 2055 (try_scrolling): Use it when setting scroll_limit.
1948 scrolling to 100 screen lines. 2056 Limit scrolling to 100 screen lines.
1949 (redisplay_window): Even when falling back on "recentering", 2057 (redisplay_window): Even when falling back on "recentering",
1950 position point in the window according to scroll-conservatively, 2058 position point in the window according to scroll-conservatively,
1951 scroll-margin, and scroll-*-aggressively variables. (Bug#6671) 2059 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)