diff options
| author | Kenichi Handa | 2011-05-19 09:37:36 +0900 |
|---|---|---|
| committer | Kenichi Handa | 2011-05-19 09:37:36 +0900 |
| commit | 23373930daa192623bfda56960ccb04b2703fbe5 (patch) | |
| tree | 4350ad7774b3d4dc6f2ccf0e6343b505582e0112 /src/ChangeLog | |
| parent | a28d4396018e48479916fd624e2371aa1f75e6e7 (diff) | |
| parent | 627abcddd1c45a07d58b9c0cbfd6bb62caf256a9 (diff) | |
| download | emacs-23373930daa192623bfda56960ccb04b2703fbe5.tar.gz emacs-23373930daa192623bfda56960ccb04b2703fbe5.zip | |
merge trunk
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 164 |
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 | ||
| 7 | 2011-05-18 Juanma Barranquero <lekktu@gmail.com> | ||
| 8 | |||
| 9 | * makefile.w32-in: Update dependencies. | ||
| 10 | |||
| 11 | 2011-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 | |||
| 16 | 2011-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 | |||
| 111 | 2011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change) | ||
| 112 | |||
| 113 | * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687). | ||
| 114 | |||
| 7 | 2011-05-12 Drew Adams <drew.adams@oracle.com> | 115 | 2011-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 | ||
| 325 | 2011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org> | 433 | 2011-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 | ||
| 1596 | 2011-04-09 Chong Yidong <cyd@stupidchicken.com> | 1704 | 2011-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 | ||
| 1670 | 2011-04-06 Chong Yidong <cyd@stupidchicken.com> | 1778 | 2011-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 | ||
| 1675 | 2011-04-06 Eli Zaretskii <eliz@gnu.org> | 1783 | 2011-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 @@ | |||
| 1944 | 2011-03-31 Eli Zaretskii <eliz@gnu.org> | 2052 | 2011-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) |