diff options
| author | Eli Zaretskii | 2014-10-14 21:10:37 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2014-10-14 21:10:37 +0300 |
| commit | e3060a0c4d2f418ac786775109d71e5843ccf42e (patch) | |
| tree | 347b37fc39d0db9cd23b3e9f79ee81b4bbc40f08 /src/ChangeLog | |
| parent | 1a3eca0656bdb764200e10a4f264138e94b1f3ce (diff) | |
| parent | 980d78b3587560c13a46aef352ed8d5ed744acf6 (diff) | |
| download | emacs-e3060a0c4d2f418ac786775109d71e5843ccf42e.tar.gz emacs-e3060a0c4d2f418ac786775109d71e5843ccf42e.zip | |
Merge from trunk and resolve conflicts.
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 1787 |
1 files changed, 1716 insertions, 71 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 5d2e75577b9..c1b7c6cc8c3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,1648 @@ | |||
| 1 | 2014-10-14 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 2 | |||
| 3 | Cleanup terminal handling code. | ||
| 4 | * dispextern.h (get_named_tty): Remove prototype but... | ||
| 5 | * termhooks.h (get_named_terminal): ...resurrect it under | ||
| 6 | more meaningful name. | ||
| 7 | (get_terminal): Likewise, but with... | ||
| 8 | (decode_live_terminal): ...this name. | ||
| 9 | (decode_tty_terminal): Add prototype. | ||
| 10 | * term.c (get_tty_terminal): Remove. | ||
| 11 | (get_named_tty): Remove. | ||
| 12 | (Ftty_display_color_p, Ftty_display_color_cells, Ftty_type) | ||
| 13 | (Fcontrolling_tty_p, Fsuspend_tty, Fresume_tty): | ||
| 14 | Use decode_tty_terminal. | ||
| 15 | (Ftty_no_underline, Ftty_top_frame): Use decode_live_terminal. | ||
| 16 | * terminal.c (get_terminal): Refactor to... | ||
| 17 | (decode_terminal, decode_live_terminal): ...new functions. | ||
| 18 | (decode_tty_terminal): Replacement for get_tty_terminal. | ||
| 19 | (get_named_terminal): Likewise for get_named_tty. | ||
| 20 | * coding.c (Fset_terminal_coding_system_internal) | ||
| 21 | (Fterminal_coding_system, Fset_keyboard_coding_system_internal): | ||
| 22 | (Fkeyboard_coding_system): | ||
| 23 | * composite.c (Fcomposition_get_gstring): | ||
| 24 | * dispnew.c (Fsend_string_to_terminal): | ||
| 25 | * frame.c (Fmake_terminal_frame): | ||
| 26 | * nsfns.m (check_ns_display_info): | ||
| 27 | * w32fns.c, xfns.c (check_x_display_info): | ||
| 28 | * xselect.c (frame_for_x_selection): Use decode_live_terminal. | ||
| 29 | * keyboard.c (handle_interrupt_signal, handle_interrupt) | ||
| 30 | (Fset_quit_char): Use get_named_terminal. | ||
| 31 | (Fset_output_flow_control, Fset_input_meta_mode): | ||
| 32 | Use decode_tty_terminal. | ||
| 33 | |||
| 34 | 2014-10-13 Eli Zaretskii <eliz@gnu.org> | ||
| 35 | |||
| 36 | * w32term.h (ALIGN_STACK): Use _WIN64, not _W64, to distinguish | ||
| 37 | between 32-bit and 64-bit MinGW builds. (Bug#18699) | ||
| 38 | |||
| 39 | 2014-10-12 Paul Eggert <eggert@cs.ucla.edu> | ||
| 40 | |||
| 41 | Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666). | ||
| 42 | * process.c (accept4) [!HAVE_ACCEPT4]: New macro. | ||
| 43 | |||
| 44 | 2014-10-12 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 45 | |||
| 46 | * frame.c (Fmouse_pixel_position): Call Vmouse_position_function | ||
| 47 | (bug#18638). | ||
| 48 | |||
| 49 | 2014-10-12 Paul Eggert <eggert@cs.ucla.edu> | ||
| 50 | |||
| 51 | * editfns.c (dump_tz_string): No longer const. | ||
| 52 | It might be modified. | ||
| 53 | |||
| 54 | * nsmenu.m (clear): Assume OS X 10.6 or later. | ||
| 55 | |||
| 56 | 2014-10-12 Jan Djärv <jan.h.d@swipnet.se> | ||
| 57 | |||
| 58 | * unexmacosx.c: Remove include ppc/reloc.h. | ||
| 59 | (unrelocate, copy_dysymtab): Remove PPC code. | ||
| 60 | (rebase_reloc_address): Remove, only used for PPC: | ||
| 61 | |||
| 62 | * nsterm.m: Always include macfont.h on COCOA. | ||
| 63 | (ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap) | ||
| 64 | (ns_dumpglyphs_image, ns_check_menu_open) | ||
| 65 | (applicationDidFinishLaunching) | ||
| 66 | (antialiasThresholdDidChange:) | ||
| 67 | (keyDown:, toggleFullScreen:, setPosition:portion:whole:): Remove | ||
| 68 | checks for OSX <= 10.5/10.6. | ||
| 69 | (changeFont:): Use macfont on COCOA, nsfont on GNUSTEP. | ||
| 70 | (syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on | ||
| 71 | GNUSTEP. | ||
| 72 | |||
| 73 | * nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove. | ||
| 74 | (NS_HAVE_NSINTEGER): Remove block. | ||
| 75 | Remove >= OSX 10.6 tests. | ||
| 76 | |||
| 77 | * nsmenu.m (NSMenuDidBeginTrackingNotification): Remove. | ||
| 78 | (x_activate_menubar, trackingNotification:): Remove check for | ||
| 79 | OSX >= 10.5. | ||
| 80 | (menuNeedsUpdate:): Remove check for OSX < 10.5. | ||
| 81 | |||
| 82 | * nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6. | ||
| 83 | |||
| 84 | * nsfns.m: Always include macfont.h on COCOA. | ||
| 85 | (ns_filename_from_panel, ns_directory_from_panel) | ||
| 86 | (Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog) | ||
| 87 | (Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6 | ||
| 88 | |||
| 89 | * macfont.m: Remove >= 1050 check. | ||
| 90 | (macfont_create_family_with_symbol) | ||
| 91 | (macfont_get_glyph_for_character) | ||
| 92 | (mac_font_get_glyphs_for_variants) | ||
| 93 | (mac_ctfont_create_available_families, syms_of_macfont): Remove | ||
| 94 | code for OSX < 10.6. | ||
| 95 | (mac_font_family_group, mac_font_family_compare): Remove, only used | ||
| 96 | for OSX < 10.6. | ||
| 97 | |||
| 98 | * macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP) | ||
| 99 | (mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6 | ||
| 100 | |||
| 101 | * Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in | ||
| 102 | comment. | ||
| 103 | |||
| 104 | 2014-10-12 Paul Eggert <eggert@cs.ucla.edu> | ||
| 105 | |||
| 106 | Fix putenv race conditions with undefined behavior (Bug#8705). | ||
| 107 | Do all putenv calls before Emacs creates any threads. | ||
| 108 | Use a safer way to modify the TZ environment variable in the | ||
| 109 | presence of multiple threads. For further thread-safety, | ||
| 110 | prefer localtime_r and gmtime_r to localtime and gmtime, | ||
| 111 | and prefer struct tm's tm_gmtoff (if available) to calling | ||
| 112 | both localtime_r and gmtime_r. | ||
| 113 | * dbusbind.c (Fdbus__init_bus): Move xputenv call from here ... | ||
| 114 | (init_dbusbind): ... to this new function. | ||
| 115 | * emacs.c (main) [HAVE_DBUS]: Call it before creating threads. | ||
| 116 | * xterm.c (x_term_init): Move xputenv call from here ... | ||
| 117 | (init_xterm): ... to this new function. | ||
| 118 | * emacs.c (main) [USE_GTK]: Call it before creating threads. | ||
| 119 | * editfns.c (HAVE_TM_GMTOFF): Default to false. | ||
| 120 | (dump_tz_string): New constant. | ||
| 121 | (init_editfns): Use it. This centralizes the dump_tz stuff. | ||
| 122 | Call set_time_zone_rule here, so that its xputenv is done | ||
| 123 | before Emacs goes multithreaded. | ||
| 124 | (mktime_z) [!HAVE_TZALLOC]: New function, which is typically | ||
| 125 | thread-safe enough for Emacs. | ||
| 126 | (format_time_string, Fdecode_time, Fcurrent_time_string) | ||
| 127 | (Fcurrent_time_zone): | ||
| 128 | Prefer localtime_r and gmtime_r, which are more thread-safe, to | ||
| 129 | localtime and gmtime. Remove now-unnecessary calls to block_input. | ||
| 130 | (tm_gmtoff): New static function. | ||
| 131 | (Fdecode_time, Fcurrent_time_zone): Use it. | ||
| 132 | (Fencode_time): Use mktime_z, for better thread-safety. | ||
| 133 | (set_time_zone_rule): Now static. Rewrite to be mostly thread-safe, | ||
| 134 | i.e., not quite thread-safe but good enough for Emacs typical usage. | ||
| 135 | Do not reclaim storage that is in the environment; let it leak. | ||
| 136 | Always call tzset, since localtime_r does not. | ||
| 137 | * emacs.c (dump_tz, Fdump_emacs) [HAVE_TZSET]: Remove dump_tz stuff. | ||
| 138 | This is now done in init_editfns. | ||
| 139 | * systime.h (mktime_z, timezone_t, tzalloc, tzfree) [!HAVE_TZALLOC]: | ||
| 140 | New macros and declarations, for platforms lacking tzalloc & friends. | ||
| 141 | |||
| 142 | 2014-10-09 Paul Eggert <eggert@cs.ucla.edu> | ||
| 143 | |||
| 144 | * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS. | ||
| 145 | On x86 platforms this works around GCC bug 63495 | ||
| 146 | <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63495>, | ||
| 147 | and more generally should fix a portability problem in Emacs. | ||
| 148 | Problem reported by Stefan Monnier in: | ||
| 149 | http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html | ||
| 150 | |||
| 151 | 2014-10-08 Leo Liu <sdl.web@gmail.com> | ||
| 152 | |||
| 153 | Enhance terpri to allow conditionally output a newline. (Bug#18652) | ||
| 154 | * keymap.c (describe_vector_princ): | ||
| 155 | * keyboard.c (Fcommand_error_default_function): Adapt to change to | ||
| 156 | Fterpri. | ||
| 157 | |||
| 158 | * print.c (printchar_stdout_last): Declare. | ||
| 159 | (printchar): Record the last char written to stdout. | ||
| 160 | (Fterpri): Add optional argument ENSURE. | ||
| 161 | |||
| 162 | 2014-10-08 Eli Zaretskii <eliz@gnu.org> | ||
| 163 | |||
| 164 | * w32inevt.c (maybe_generate_resize_event): Pass non-zero as the | ||
| 165 | DELAY argument to change_frame_size, so that the frame size | ||
| 166 | changes, if any are needed, are delayed until the next redisplay. | ||
| 167 | This is to avoid a too early QUIT inside change_frame_size, when | ||
| 168 | it calls Lisp in frame_windows_min_size, in case one of the events | ||
| 169 | we've read sets the quit-flag. (Bug#18649) | ||
| 170 | |||
| 171 | * w32fns.c (check_x_display_info): Accept terminal objects as | ||
| 172 | argument, to follow what xfns.c does. | ||
| 173 | |||
| 174 | 2014-10-07 Glenn Morris <rgm@gnu.org> | ||
| 175 | |||
| 176 | * Makefile.in ($(srcdir)/macuvs.h) | ||
| 177 | ($(lispsource)/international/charprop.el): Add explicit FORCE. | ||
| 178 | |||
| 179 | 2014-10-07 Eli Zaretskii <eliz@gnu.org> | ||
| 180 | |||
| 181 | * decompress.c (init_zlib_functions): Move the message about zlib | ||
| 182 | being unavailable from here... | ||
| 183 | (Fzlib_decompress_region): ...to here. (Bug#18650) | ||
| 184 | |||
| 185 | 2014-10-07 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 186 | |||
| 187 | * font.c (Ffont_get_glyphs): Use validate_subarray and fix | ||
| 188 | the case where an optional string is used. Adjust docstring. | ||
| 189 | |||
| 190 | 2014-10-06 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 191 | |||
| 192 | * lisp.mk (lisp): Remove w32-common-fns.elc. | ||
| 193 | |||
| 194 | 2014-10-05 Paul Eggert <eggert@cs.ucla.edu> | ||
| 195 | |||
| 196 | * keyboard.c (Qleft, Qright): Remove duplicate definitions (Bug#9927). | ||
| 197 | These were already defined in buffer.c, and the duplicate | ||
| 198 | definitions cause problems on platforms like 'gcc -fno-common'. | ||
| 199 | Reported by Peter Dyballa in: http://bugs.gnu.org/9927#137 | ||
| 200 | |||
| 201 | 2014-10-05 Jan Djärv <jan.h.d@swipnet.se> | ||
| 202 | |||
| 203 | * nsterm.m (updateFrameSize:): Only call update_frame_tool_bar | ||
| 204 | if toolbar is visible. | ||
| 205 | |||
| 206 | * nsfont.m (nsfont_draw): Use CGFloat for GNUstep newer than | ||
| 207 | 0.23 (Bug#18030). | ||
| 208 | |||
| 209 | * nsterm.m (syms_of_nsterm): ns-use-fullscreen-animation is new. | ||
| 210 | (toggleFullScreen:): Use ns-use-fullscreen-animation for animate. | ||
| 211 | (ns_select, ns_read_socket): Use unwind_protect to decrease | ||
| 212 | apploopnr (Bug#18345). | ||
| 213 | (ns_draw_window_cursor): Adjust y for hbar cursor only if smaller than | ||
| 214 | line height (Bug#17977). | ||
| 215 | |||
| 216 | * macfont.m: Fix indentation and import changes from macport 24.3.94. | ||
| 217 | (macfont_closest_traits_index): New function. | ||
| 218 | (macfont_closest_traits_index_p): Rename from | ||
| 219 | macfont_closest_traits_index. | ||
| 220 | (macfont_list): Use macfont_closest_traits_index_p. | ||
| 221 | |||
| 222 | 2014-10-05 K. Handa <handa@gnu.org> | ||
| 223 | |||
| 224 | * coding.c (detect_coding_iso_2022): Set coding->rejected | ||
| 225 | correctly when an invalid escape sequence is found (Bug#18610). | ||
| 226 | |||
| 227 | 2014-10-04 Jan Djärv <jan.h.d@swipnet.se> | ||
| 228 | |||
| 229 | * gtkutil.c (create_menus): Only add tearoffs to empty menus. | ||
| 230 | (xg_update_submenu): Remove has_tearoff_p, pass 1 to create_menus | ||
| 231 | for add_tearoff_p. | ||
| 232 | |||
| 233 | 2014-10-04 Martin Rudalics <rudalics@gmx.at> | ||
| 234 | |||
| 235 | * buffer.c (scroll_bar_width, scroll_bar_height): | ||
| 236 | Fix doc-strings. | ||
| 237 | * window.c (Fset_window_scroll_bars): Fix doc-string. | ||
| 238 | (Fwindow_scroll_bars): Have it return what the doc-string says. | ||
| 239 | |||
| 240 | 2014-10-03 Eli Zaretskii <eliz@gnu.org> | ||
| 241 | |||
| 242 | * xdisp.c (move_it_by_lines): Call reseat_1 after moving the | ||
| 243 | iterator backwards, to resync the bidi iterator. (Bug#18584) | ||
| 244 | |||
| 245 | 2014-10-03 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 246 | |||
| 247 | Consistently use min and max macros from lisp.h. | ||
| 248 | * coding.c (min, max): | ||
| 249 | * font.c (MAX): | ||
| 250 | * unexhp9k800.c (min): | ||
| 251 | * unexw32.c (min, max): Use definitions from lisp.h. | ||
| 252 | * regex.c (MAX, MIN) [!emacs]: Define own max and min as such. | ||
| 253 | Adjust users. | ||
| 254 | * gmalloc.c (min): Tiny style change. | ||
| 255 | |||
| 256 | * fileio.c (emacs_readlinkat, Finsert_file_contents): | ||
| 257 | * w32fns.c, xfns.c (x_create_tip_frame): Use AUTO_STRING. | ||
| 258 | |||
| 259 | 2014-10-03 Paul Eggert <eggert@cs.ucla.edu> | ||
| 260 | |||
| 261 | Fix x-focus-frame bug with "Not an in-range integer" (Bug#18586). | ||
| 262 | * xselect.c (X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX, X_LONG_MIN) | ||
| 263 | (X_ULONG_MAX): Move these macros to xterm.h. | ||
| 264 | (x_fill_property_data): Be more generous about allowing either | ||
| 265 | signed or unsigned data of the appropriate width. | ||
| 266 | * xterm.h (x_display_set_last_user_time): New function. | ||
| 267 | All setters of last_user_time changd to use this function. | ||
| 268 | If ENABLE_CHECKING, check that the times are in range. | ||
| 269 | |||
| 270 | 2014-10-02 Eli Zaretskii <eliz@gnu.org> | ||
| 271 | |||
| 272 | * dispnew.c (adjust_decode_mode_spec_buffer): Use 'int' instead of | ||
| 273 | 'ssize_t'. Suggested by Paul Eggert <eggert@cs.ucla.edu>. | ||
| 274 | |||
| 275 | 2014-10-02 Jan Djärv <jan.h.d@swipnet.se> | ||
| 276 | |||
| 277 | * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to | ||
| 278 | make a font_object from a tty frame (Bug#18573). | ||
| 279 | (Finternal_set_lisp_face_attribute): Add FIXME comment. | ||
| 280 | |||
| 281 | 2014-10-02 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 282 | |||
| 283 | * alloc.c (mark_overlay): Assume that overlay boundaries are | ||
| 284 | always markers. Add comment. | ||
| 285 | * lread.c (read_internal_start): Use convenient validate_subarray. | ||
| 286 | Adjust docstring. | ||
| 287 | (Fread_from_string): Adjust docstring. | ||
| 288 | |||
| 289 | 2014-10-02 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 290 | |||
| 291 | * lisp.h: Fix up compilation for USE_STACK_LISP_OBJECTS=false. | ||
| 292 | |||
| 293 | * nsselect.m (ns-own-selection-internal, ns-disown-selection-internal): | ||
| 294 | Rename from the "x-" prefix. | ||
| 295 | |||
| 296 | 2014-10-01 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 297 | |||
| 298 | * xselect.c (selection-converter-alist): Fix docstring. | ||
| 299 | |||
| 300 | 2014-10-01 Eli Zaretskii <eliz@gnu.org> | ||
| 301 | |||
| 302 | * w32proc.c (sys_spawnve): Avoid modification of the CMDNAME | ||
| 303 | argument passed by the caller, when we mirror all slashes into | ||
| 304 | backslashes. | ||
| 305 | |||
| 306 | 2014-10-01 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 307 | |||
| 308 | * gtkutil.c (xg_set_toolkit_horizontal_scroll_bar_thumb): | ||
| 309 | Resurrect old code and fix compilation with GTK < 2.13.6. | ||
| 310 | |||
| 311 | 2014-10-01 Paul Eggert <eggert@cs.ucla.edu> | ||
| 312 | |||
| 313 | Use AUTO_CONS instead of SCOPED_CONS, etc. | ||
| 314 | * frame.h (AUTO_FRAME_ARG): Rename from FRAME_PARAMETER. | ||
| 315 | * lisp.h (AUTO_CONS): Rename from scoped_cons. | ||
| 316 | (AUTO_LIST1): Rename from scoped_list1. | ||
| 317 | (AUTO_LIST2): Rename from scoped_list2. | ||
| 318 | (AUTO_LIST3): Rename from scoped_list3. | ||
| 319 | (AUTO_LIST4): Rename from scoped_list4. | ||
| 320 | (AUTO_STRING): Rename from SCOPED_STRING. | ||
| 321 | * frame.h (AUTO_FRAME_ARG): | ||
| 322 | * lisp.h (AUTO_CONS, AUTO_LIST1, AUTO_LIST2, AUTO_LIST3) | ||
| 323 | (AUTO_LIST4, AUTO_STRING): | ||
| 324 | Prepend a new argument 'name'. | ||
| 325 | Declare a variable instead of yielding a value. | ||
| 326 | All uses changed. | ||
| 327 | * lisp.h (STACK_CONS, AUTO_CONS_EXPR): New internal macros. | ||
| 328 | |||
| 329 | 2014-09-30 Eli Zaretskii <eliz@gnu.org> | ||
| 330 | |||
| 331 | * w32fns.c (w32_createwindow): Accept an additional argument, an | ||
| 332 | array of 2 values specifying the coordinates of the frame's | ||
| 333 | top-left corner. Use these values instead of calling x_get_arg, | ||
| 334 | which can cons Lisp objects, and therefore cannot be called except | ||
| 335 | from the main thread. Remove redundant tests for the default | ||
| 336 | values. | ||
| 337 | (my_create_window): Move the calculation of the coordinates of the | ||
| 338 | frame's top-left edge here. Pass them to the input thread via the | ||
| 339 | second parameter of the WM_EMACS_CREATEWINDOW message. | ||
| 340 | See http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html | ||
| 341 | for the details. | ||
| 342 | |||
| 343 | 2014-09-30 Eli Zaretskii <eliz@gnu.org> | ||
| 344 | |||
| 345 | * xdisp.c (cursor_row_fully_visible_p): Update commentary. | ||
| 346 | (redisplay_window): Treat the frame's frozen_window_starts flag | ||
| 347 | the same way as the optional_new_start flag for the window: only | ||
| 348 | obey it if the glyph row showing point will be fully visible. | ||
| 349 | Likewise when the window start is in a continuation line. If, | ||
| 350 | after trying everything under the 'force_start' label, point is | ||
| 351 | still not fully visible, give up and scroll the window. | ||
| 352 | Add debugging traces. (Bug#18545) | ||
| 353 | |||
| 354 | * window.c (Frecenter): Set the window's redisplay flag. | ||
| 355 | |||
| 356 | 2014-09-30 Eli Zaretskii <eliz@gnu.org> | ||
| 357 | |||
| 358 | * w32term.c (w32_read_socket): Don't use frame dimensions for | ||
| 359 | resizing if GetClientRect returned an empty (0, 0, 0, 0) | ||
| 360 | rectangle. Check the return value of GetClientRect, and don't use | ||
| 361 | the results if it didn't succeed. | ||
| 362 | |||
| 363 | * dispnew.c (change_frame_size_1): Recompute the frame dimensions | ||
| 364 | in columns and lines after correcting the pixel dimensions in | ||
| 365 | check_frame_size. | ||
| 366 | (adjust_decode_mode_spec_buffer): Add assertion to avoid passing | ||
| 367 | negative values to xrealloc. (Bug#18528) | ||
| 368 | |||
| 369 | 2014-09-30 Paul Eggert <eggert@cs.ucla.edu> | ||
| 370 | |||
| 371 | * alloc.c: Remove now-unnecessary check. | ||
| 372 | Suggested by Dmitry Antipov in: | ||
| 373 | http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00891.html | ||
| 374 | |||
| 375 | * xterm.c (x_term_init): Allocate temps on stack, not on heap. | ||
| 376 | |||
| 377 | * frame.c (x_set_frame_parameters): Port --enable-gcc-warnings | ||
| 378 | to Ubuntu 14.04.1 x86-64. | ||
| 379 | |||
| 380 | Simplify stack-allocated Lisp objects, and make them more portable. | ||
| 381 | The build_local_string macro was used in two ways: (1) string | ||
| 382 | literals for which scoped allocation suffices, and (2) file name | ||
| 383 | components, where it's not safe in general to assume bounded-size | ||
| 384 | ASCII data. Simplify by defining a new macro SCOPED_STRING that | ||
| 385 | allocates a block-scope string, and by using SCOPED_STRING for (1) | ||
| 386 | and build_string for (2). Furthermore, actually use stack | ||
| 387 | allocation only for objects known to have sufficient alignment. | ||
| 388 | This simpler implementation means Emacs can make | ||
| 389 | USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK != | ||
| 390 | GC_MAKE_GCPROS_NOOPS. | ||
| 391 | * lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS, | ||
| 392 | for fewer differences among implementations. | ||
| 393 | (struct Lisp_String): Now GCALIGNED. | ||
| 394 | (USE_STACK_LISP_OBJECTS): Default to true, since the | ||
| 395 | implementation no longer insists on a nonempty GCALIGNED. | ||
| 396 | But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS. | ||
| 397 | (SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed | ||
| 398 | separately. Move definiens to scoped_cons. The old definition | ||
| 399 | was incorrect when GCALIGNED was defined to be empty. | ||
| 400 | (union Aligned_String): New type. | ||
| 401 | (USE_STACK_CONS, USE_STACK_STRING): New constants, so that the | ||
| 402 | implementation ports to compilers that don't align strictly enough. | ||
| 403 | Don't worry about the union sizes; it's not worth bothering about. | ||
| 404 | (scoped_cons, scoped_list1, scoped_list3, scoped_list4): | ||
| 405 | Rewrite using USE_STACK_CONS. | ||
| 406 | (scoped_cons): Assume the use of union Aligned_Cons. | ||
| 407 | (lisp_string_size, make_local_string, build_local_string): Remove. | ||
| 408 | Unless otherwise specified, all callers of build_local_string | ||
| 409 | changed to use SCOPED_STRING. | ||
| 410 | (SCOPED_STRING): New macro. | ||
| 411 | * data.c (wrong_choice): | ||
| 412 | * menu.c (single_menu_item): | ||
| 413 | * process.c (Fformat_network_address): | ||
| 414 | Hoist use of SCOPED_STRING out of a scope, so that its returned | ||
| 415 | object lives long enough. | ||
| 416 | * fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING, | ||
| 417 | as the string might be long or might not be ASCII. | ||
| 418 | |||
| 419 | 2014-09-29 Eli Zaretskii <eliz@gnu.org> | ||
| 420 | |||
| 421 | * msdos.c (internal_terminal_init): Bump version to 25. | ||
| 422 | |||
| 423 | 2014-09-29 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 424 | |||
| 425 | Keep stack-allocated Lisp objects fast rather than versatile. | ||
| 426 | * lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such. | ||
| 427 | (SCOPED_CONS_INITIALIZER): New macro. | ||
| 428 | (scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it. | ||
| 429 | (USE_LOCAL_ALLOCA): Remove. | ||
| 430 | (local_cons, local_list1, local_list2, local_list3, local_list4): | ||
| 431 | Remove. Stack overflow checking makes them too slow. | ||
| 432 | (make_local_vector): Likewise. Also we just don't have enough | ||
| 433 | users for it. | ||
| 434 | (enum LISP_STRING_OVERHEAD): Remove. | ||
| 435 | (local_string_init, local_vector_init): Remove prototypes. | ||
| 436 | (make_local_string, build_local_string): Redesign to target short | ||
| 437 | compile-time string constants, fall back to regular string allocation | ||
| 438 | where appropriate. | ||
| 439 | (lisp_string_size): New function. | ||
| 440 | (verify_ascii) [ENABLE_CHECKING]: Add prototype. | ||
| 441 | * alloc.c (local_string_init, local_vector_init): Remove. | ||
| 442 | (verify_ascii) [ENABLE_CHECKING]: New function. | ||
| 443 | * buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c: | ||
| 444 | * fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c: | ||
| 445 | * menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c: | ||
| 446 | * xselect.c, xterm.c: All related users changed. | ||
| 447 | |||
| 448 | 2014-09-28 Ken Brown <kbrown@cornell.edu> | ||
| 449 | |||
| 450 | * sheap.c (bss_sbrk_buffer_beg): Remove redundant variable. | ||
| 451 | * gmalloc.c [CYGWIN]: Adapt to change in sheap.c. | ||
| 452 | |||
| 453 | 2014-09-27 Ken Brown <kbrown@cornell.edu> | ||
| 454 | |||
| 455 | Fix implementation of HYBRID_MALLOC on Cygwin. | ||
| 456 | * sheap.c (bss_sbrk_buffer_end): Cast to void *. | ||
| 457 | (bss_sbrk_buffer_beg): New variable. Use it... | ||
| 458 | * gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix | ||
| 459 | incorrect definition. | ||
| 460 | |||
| 461 | 2014-09-27 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 462 | |||
| 463 | * keyboard.c (track-mouse): Rename to internal--track-mouse. | ||
| 464 | Make it into a function and change arg to be a function. | ||
| 465 | |||
| 466 | * lisp.mk (lisp): Add elisp-mode.elc. | ||
| 467 | |||
| 468 | 2014-09-26 Paul Eggert <eggert@cs.ucla.edu> | ||
| 469 | |||
| 470 | * xfns.c (x_default_scroll_bar_color_parameter): | ||
| 471 | Use USE_LOCAL_ALLOCA only if USE_TOOLKIT_SCROLL_BARS, | ||
| 472 | to pacify --enable-gcc-warnings in non-scrollbar builds. | ||
| 473 | |||
| 474 | 2014-09-26 Ken Brown <kbrown@cornell.edu> | ||
| 475 | |||
| 476 | * w32term.h (ALIGN_STACK): Fix the cpp condition. | ||
| 477 | |||
| 478 | 2014-09-25 Eli Zaretskii <eliz@gnu.org> | ||
| 479 | |||
| 480 | * lisp.h (USE_STACK_LISP_OBJECTS): Default to false for 32-bit | ||
| 481 | MinGW builds that use GCC before 4.2. | ||
| 482 | |||
| 483 | Default to stack objects on DOS_NT platforms as well. | ||
| 484 | * w32term.h (ALIGN_STACK) [__GNUC__]: Define to | ||
| 485 | __attribute__((force_align_arg_pointer)) for GCC 4.2 and later. | ||
| 486 | |||
| 487 | * lisp.h (USE_STACK_LISP_OBJECTS): Remove the !DOS_NT condition. | ||
| 488 | |||
| 489 | * w32proc.c (enum_locale_fn, enum_codepage_fn): Add the | ||
| 490 | ALIGN_STACK attribute. | ||
| 491 | |||
| 492 | * w32fns.c (w32_monitor_enum): Add the ALIGN_STACK attribute. | ||
| 493 | |||
| 494 | * w32uniscribe.c (add_opentype_font_name_to_list): Add the | ||
| 495 | ALIGN_STACK attribute. | ||
| 496 | |||
| 497 | * w32font.c (add_font_name_to_list, add_font_entity_to_list) | ||
| 498 | (add_one_font_entity_to_list): Add the ALIGN_STACK attribute. | ||
| 499 | |||
| 500 | 2014-09-25 Martin Rudalics <rudalics@gmx.at> | ||
| 501 | |||
| 502 | * frame.c (frame_inhibit_resize): | ||
| 503 | * widget.c (EmacsFrameResize): | ||
| 504 | * window.c (resize_frame_windows, Fset_window_configuration): | ||
| 505 | * xdisp.c (expose_frame): | ||
| 506 | * xfns.c (x_change_tool_bar_height): | ||
| 507 | * xmenu.c (update_frame_menubar): | ||
| 508 | * xterm.c (handle_one_xevent, x_new_font, x_set_window_size_1): | ||
| 509 | Remove code left dead after 2014-07-27 changes. | ||
| 510 | |||
| 511 | 2014-09-25 Paul Eggert <eggert@cs.ucla.edu> | ||
| 512 | |||
| 513 | Fix local_cons etc. to not exhaust the stack when in a loop. | ||
| 514 | Problem reported in: | ||
| 515 | http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00696.html | ||
| 516 | * buffer.c (Fother_buffer, other_buffer_safely, init_buffer): | ||
| 517 | * charset.c (load_charset_map_from_file, Ffind_charset_region) | ||
| 518 | (Ffind_charset_string): | ||
| 519 | * chartab.c (uniprop_encode_value_numeric, uniprop_table): | ||
| 520 | * data.c (wrong_range): | ||
| 521 | * editfns.c (Fpropertize, format2): | ||
| 522 | * emacs.c (init_cmdargs, decode_env_path): | ||
| 523 | * fileio.c (auto_save_error): | ||
| 524 | * fns.c (Fyes_or_no_p): | ||
| 525 | * font.c (font_style_to_value, font_parse_xlfd) | ||
| 526 | (font_parse_family_registry, font_delete_unmatched) | ||
| 527 | (font_add_log): | ||
| 528 | * fontset.c (Fset_fontset_font): | ||
| 529 | * frame.c (x_get_arg): | ||
| 530 | * keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item) | ||
| 531 | (read_char_minibuf_menu_prompt): | ||
| 532 | * keymap.c (silly_event_symbol_error, describe_vector): | ||
| 533 | * lread.c (load_warn_old_style_backquotes): | ||
| 534 | * menu.c (single_menu_item): | ||
| 535 | * minibuf.c (Fread_buffer): | ||
| 536 | * process.c (status_message, Fformat_network_address) | ||
| 537 | (server_accept_connection): | ||
| 538 | * textprop.c (copy_text_properties): | ||
| 539 | * xdisp.c (Fcurrent_bidi_paragraph_direction): | ||
| 540 | * xfns.c (x_default_scroll_bar_color_parameter): | ||
| 541 | * xfont.c (xfont_open): | ||
| 542 | * xselect.c (x_clipboard_manager_error_1): | ||
| 543 | * xterm.c (x_term_init): | ||
| 544 | Put USE_LOCAL_ALLOCA at the start of the function. | ||
| 545 | * fns.c (maybe_resize_hash_table): Use build_string instead of | ||
| 546 | build_local_string, since we'd otherwise need a conditional | ||
| 547 | USE_LOCAL_ALLOCA here, but this is just debugging output and is | ||
| 548 | not worth the bother of optimization. | ||
| 549 | * font.c (font_delete_unmatched): Remove by-hand code that | ||
| 550 | observed MAX_ALLOCA limit, since it's now done automatically. | ||
| 551 | * keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top, | ||
| 552 | since build_local_string needs its sa_alloc. | ||
| 553 | * lisp.h (lisp_word_count): New function. | ||
| 554 | (SAFE_ALLOCA_LISP): Use it. | ||
| 555 | (USE_LOCAL_ALLOCA): New macro. | ||
| 556 | (local_cons, make_local_vector, make_local_string): | ||
| 557 | Observe the MAX_ALLOCA limit. | ||
| 558 | (LISP_STRING_OVERHEAD): New constant. | ||
| 559 | (make_local_string): Use it. | ||
| 560 | |||
| 561 | 2014-09-24 Paul Eggert <eggert@cs.ucla.edu> | ||
| 562 | |||
| 563 | Default to stack objects on non-GNU/Linux, non-DOS_NT platforms. | ||
| 564 | * lisp.h (USE_STACK_LISP_OBJECTS): Also default to true | ||
| 565 | if !defined DOS_NT && !defined GNU_LINUX. I've tested this on AIX | ||
| 566 | and Solaris and it's likely to work on similar platforms. | ||
| 567 | |||
| 568 | Avoid signed integer overflow when converting Time to ptrdiff_t. | ||
| 569 | * keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN): | ||
| 570 | New macros. | ||
| 571 | (position_to_Time, Time_to_position): New functions. | ||
| 572 | (gen_help_event, kbd_buffer_get_event): Use them. | ||
| 573 | * systime.h (Time) [emacs && !HAVE_X_WINDOWS]: | ||
| 574 | Go back to plain 'unsigned long', so that 'Time' is the same | ||
| 575 | for both X and non-X builds; this is less likely to cause surprise. | ||
| 576 | * termhooks.h: Remove compile-time check that Time and ptrdiff_t | ||
| 577 | are the same size; this is no longer required. | ||
| 578 | |||
| 579 | * keyboard.c (make_lispy_event): Avoid unnecessary tests | ||
| 580 | of bit 28 and of whether an unsigned value is negative. | ||
| 581 | This simplifies the code a bit, and pacifies clang 3.4. | ||
| 582 | |||
| 583 | 2014-09-24 Eli Zaretskii <eliz@gnu.org> | ||
| 584 | |||
| 585 | * systime.h (Time): Define as size_t, to be consistent with 64-bit | ||
| 586 | Windows builds, where 'long' is a 32-bit type. | ||
| 587 | |||
| 588 | * w32inevt.h (w32_console_mouse_position): Update the argument | ||
| 589 | types to use 'Time'. | ||
| 590 | |||
| 591 | * w32term.c (w32_mouse_position) | ||
| 592 | (x_horizontal_scroll_bar_report_motion) | ||
| 593 | (x_scroll_bar_report_motion): Update the argument types to use | ||
| 594 | 'Time'. | ||
| 595 | |||
| 596 | 2014-09-24 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 597 | |||
| 598 | * termhooks.h (enum scroll_bar_part): Begin from 0 to allow... | ||
| 599 | (struct input_event): ...unsigned bitfields. Likewise for | ||
| 600 | `event_kind' member. Prefer unsigned for `code' and 'modifiers'. | ||
| 601 | Use `timestamp' for HELP_EVENT position. Add compile-time assert. | ||
| 602 | * keyboard.c (gen_help_event, kbd_buffer_store_help_event) | ||
| 603 | (kbd_buffer_get_event): Adjust users. | ||
| 604 | (scroll_bar_parts): Add Qnil to match scroll_bar_nowhere. | ||
| 605 | (make_scroll_bar_position): New function, refactored out of... | ||
| 606 | (make_lispy_event): ...adjusted user. | ||
| 607 | * nsterm.h (EmacsScroller): Use enum for `last_hit_part' member. | ||
| 608 | * nsterm.m (ns_mouse_position, mouseUp): | ||
| 609 | * term.c (term_mouse_position): | ||
| 610 | * w32inevt.c (w32_console_mouse_position): | ||
| 611 | * w32term.c (w32_mouse_position): | ||
| 612 | * xterm.c (XTmouse_position): Use scroll_bar_above_handle. | ||
| 613 | (x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback): | ||
| 614 | Prefer enum and explicit enum members to integers and numeric values. | ||
| 615 | |||
| 616 | * chartab.c (uniprop_encode_value_numeric): | ||
| 617 | * font.c (font_style_to_value): Use make_local_vector. | ||
| 618 | (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA. | ||
| 619 | * keymap.c (append_key): Use scoped_list1. | ||
| 620 | |||
| 621 | * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX | ||
| 622 | && __GNUC__ && !__clang__. Mention known problems. Adjust comment. | ||
| 623 | |||
| 624 | 2014-09-24 Paul Eggert <eggert@cs.ucla.edu> | ||
| 625 | |||
| 626 | Fix some slow uses and misuses of strcat. | ||
| 627 | * doc.c (get_doc_string): | ||
| 628 | * gtkutil.c (get_utf8_string): | ||
| 629 | * xsmfns.c (x_session_initialize): | ||
| 630 | Avoid recomputation of string length. | ||
| 631 | * ftfont.c (ftfont_spec_pattern): | ||
| 632 | * xfns.c (xic_create_fontsetname): | ||
| 633 | Don't assume output buffer is initially zero. | ||
| 634 | |||
| 635 | 2014-09-23 Paul Eggert <eggert@cs.ucla.edu> | ||
| 636 | |||
| 637 | * lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy. | ||
| 638 | All callers changed. | ||
| 639 | * xterm.c (x_term_init): Use new functionality to avoid two needs | ||
| 640 | to compute a string length. | ||
| 641 | |||
| 642 | * dispextern.h, xdisp.c (window_box_right_offset): Now static. | ||
| 643 | |||
| 644 | 2014-09-23 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 645 | |||
| 646 | Use known length of a Lisp string to copy it faster. | ||
| 647 | * lisp.h (lispstrcpy): New function. Add comment. | ||
| 648 | * callproc.c (child_setup): | ||
| 649 | * dbusbind.c (xd_append_arg): | ||
| 650 | * doc.c (get_doc_string): | ||
| 651 | * font.c (Ffont_xlfd_name): | ||
| 652 | * frame.c (xrdb_get_resource): | ||
| 653 | * process.c (Fmake_network_process, network_interface_info): | ||
| 654 | * w32fns.c (Fx_open_connection): | ||
| 655 | * w32proc.c (sys_spawnve): | ||
| 656 | * xfns.c (select_visual): | ||
| 657 | * xfont.c (xfont_list): | ||
| 658 | * xsmfns.c (x_session_initialize): | ||
| 659 | * xterm.c (x_term_init): Use it. | ||
| 660 | |||
| 661 | 2014-09-23 Paul Eggert <eggert@cs.ucla.edu> | ||
| 662 | |||
| 663 | Fix SAFE_ALLOCA to not exhaust the stack when in a loop. | ||
| 664 | Problem reported by Dmitry Antipov in thread leading to: | ||
| 665 | http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00713.html | ||
| 666 | This patch fixes only SAFE_ALLOCA, SAFE_NALLOCA, and SAFE_ALLOCA_LISP; | ||
| 667 | the experimental local_* macros enabled by USE_LOCAL_ALLOCATORS | ||
| 668 | remain unfixed. | ||
| 669 | * callproc.c (call_process): Save and restore sa_avail. | ||
| 670 | * lisp.h (USE_SAFE_ALLOCA): Define sa_avail. | ||
| 671 | (AVAIL_ALLOCA): New macro. | ||
| 672 | (SAFE_ALLOCA, SAFE_NALLOCA, SAFE_ALLOCA_LISP): | ||
| 673 | Use it, and check against sa_avail rather than MAX_ALLOCA. | ||
| 674 | |||
| 675 | 2014-09-22 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 676 | |||
| 677 | On OSX, do not free font-specific data more than once (Bug#18501). | ||
| 678 | * macfont.m (macfont_close): Release and free font-specific data | ||
| 679 | only if it wasn't previously freed. | ||
| 680 | |||
| 681 | 2014-09-22 David Caldwell <david@porkrind.org> (tiny change) | ||
| 682 | |||
| 683 | * unexmacosx.c (dump_it): Improve error message. | ||
| 684 | |||
| 685 | 2014-09-22 Juri Linkov <juri@jurta.org> | ||
| 686 | |||
| 687 | * image.c (imagemagick_load_image): Add delay to imagemagick metadata. | ||
| 688 | (Bug#10747, bug#18334) | ||
| 689 | |||
| 690 | 2014-09-22 Eli Zaretskii <eliz@gnu.org> | ||
| 691 | |||
| 692 | * frame.c (Fmouse_position, Fset_mouse_position): Clarify the | ||
| 693 | units in which the position is measured. (Bug#18493) | ||
| 694 | |||
| 695 | * xdisp.c (redisplay_internal): Force redisplay of all windows | ||
| 696 | that show a buffer whose narrowing has changed. (Bug#18490) | ||
| 697 | |||
| 698 | 2014-09-22 Eli Zaretskii <eliz@gnu.org> | ||
| 699 | |||
| 700 | * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor): | ||
| 701 | * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L | ||
| 702 | lines, draw the hollow-box and hbar cursors on the right side of | ||
| 703 | cursor-glyph. Thanks to martin rudalics <rudalics@gmx.at> for | ||
| 704 | testing on X. | ||
| 705 | |||
| 706 | * xterm.c (x_draw_stretch_glyph_string): | ||
| 707 | * w32term.c (x_draw_stretch_glyph_string): Fix a thinko that | ||
| 708 | caused the block cursor to disappear on a TAB in R2L lines in | ||
| 709 | every window except the leftmost one. Reported by Martin Rudalics | ||
| 710 | <rudalics@gmx.at>. | ||
| 711 | |||
| 712 | 2014-09-22 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 713 | |||
| 714 | Always use matched specpdl entry to record call arguments (Bug#18473). | ||
| 715 | * lisp.h (record_in_backtrace): Adjust prototype. | ||
| 716 | * eval.c (record_in_backtrace): Return current specpdl level. | ||
| 717 | (set_backtrace_args, set_backtrace_nargs): Merge. Adjust all users. | ||
| 718 | (eval_sub, Ffuncall): Record call arguments in matched specpdl | ||
| 719 | entry and use that entry in call to backtrace_debug_on_exit. | ||
| 720 | (apply_lambda): Likewise. Get current specpdl level as 3rd arg. | ||
| 721 | (do_debug_on_call): Get current specpdl level as 2nd arg. | ||
| 722 | |||
| 723 | Prefer ptrdiff_t to int and avoid integer overflows. | ||
| 724 | * fileio.c (make_temp_name): | ||
| 725 | * font.c (font_parse_family_registry): Avoid integer | ||
| 726 | overflow on string size calculation. | ||
| 727 | * data.c (Faset): Likewise for byte index. | ||
| 728 | |||
| 729 | 2014-09-22 Eli Zaretskii <eliz@gnu.org> | ||
| 730 | |||
| 731 | Fix display of R2L lines in partial-width windows. | ||
| 732 | * xdisp.c (init_iterator): Don't use it->bidi_p before it is | ||
| 733 | assigned the correct value. | ||
| 734 | (extend_face_to_end_of_line): Account for truncation and | ||
| 735 | continuation glyphs in R2L rows when one of the fringes is not | ||
| 736 | displayed. | ||
| 737 | (display_line): Don't assign negative X offset to a row if we are | ||
| 738 | going to produce a truncation glyph for it. When handling | ||
| 739 | truncated R2L rows, consider the width of the left fringe instead | ||
| 740 | of the right one. | ||
| 741 | (produce_special_glyphs): Fix bogus assignments. | ||
| 742 | |||
| 743 | 2014-09-22 Eli Zaretskii <eliz@gnu.org> | ||
| 744 | |||
| 745 | * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of pipes. | ||
| 746 | |||
| 747 | 2014-09-22 Eli Zaretskii <eliz@gnu.org> | ||
| 748 | |||
| 749 | * fileio.c (Fexpand_file_name) [DOS_NT]: Make sure newdirlim is | ||
| 750 | always set to a valid value. Make sure the size passed to alloca | ||
| 751 | is always positive. (Bug#18516) | ||
| 752 | |||
| 753 | 2014-09-22 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 754 | |||
| 755 | Avoid extra call to oblookup when interning symbols. | ||
| 756 | * lisp.h (intern_driver): Add prototype. | ||
| 757 | * lread.c (intern_driver): New function. | ||
| 758 | (intern1, intern_c_string_1, Fintern): | ||
| 759 | * font.c (font_intern_prop): | ||
| 760 | * w32font.c (intern_font_name): Use it. | ||
| 761 | |||
| 762 | 2014-09-21 Paul Eggert <eggert@cs.ucla.edu> | ||
| 763 | |||
| 764 | Minor improvements to new stack-allocated Lisp objects. | ||
| 765 | * frame.h (FRAME_PARAMETER): | ||
| 766 | Prefer scoped_list1 to local_list1 where either would do. | ||
| 767 | * lisp.h (scoped_list4): New macro. | ||
| 768 | (local_cons, local_list1, local_list2, local_list3, local_list4) | ||
| 769 | (make_local_vector, make_local_string, build_local_string): | ||
| 770 | Prefer functions to macros where either would do. | ||
| 771 | * xdisp.c (build_desired_tool_bar_string): | ||
| 772 | Prefer scoped_list4 to local_list4 where either would do. | ||
| 773 | |||
| 774 | 2014-09-18 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 775 | |||
| 776 | More and more stack-allocated Lisp objects if USE_LOCAL_ALLOCATORS. | ||
| 777 | * lisp.h (local_list4) [USE_LOCAL_ALLOCATORS]: New macro. | ||
| 778 | [!USE_LOCAL_ALLOCATORS]: Fall back to regular list4. | ||
| 779 | * frame.h (FRAME_PARAMETER): New macro. | ||
| 780 | * dispnew.c (init_display): | ||
| 781 | * fontset.c (Fset_fontset_font): | ||
| 782 | * frame.c (x_default_parameter): | ||
| 783 | * xfaces.c (set_font_frame_param, Finternal_merge_in_global_face): | ||
| 784 | * xfns.c (x_default_scroll_bar_color_parameter) | ||
| 785 | (x_default_font_parameter, x_create_tip_frame): Use it. | ||
| 786 | * editfns.c (Fpropertize): Use local_cons. | ||
| 787 | * process.c (status_message): Use build_local_string. | ||
| 788 | * xfont.c (xfont_open): Use make_local_string. | ||
| 789 | * xdisp.c (build_desired_tool_bar_string): Use local_list4. | ||
| 790 | |||
| 791 | 2014-09-18 Paul Eggert <eggert@cs.ucla.edu> | ||
| 792 | |||
| 793 | Port USE_LOCAL_ALLOCATORS code to clang 3.4 x86-64. | ||
| 794 | * lisp.h (USE_LOCAL_ALLOCATORS): Define only if __GNUC__ && | ||
| 795 | !__clang__. This works with GCC and with clang and is safer for | ||
| 796 | compilers we don't know about. | ||
| 797 | (local_cons): Rename parameter to make capture less likely. | ||
| 798 | |||
| 799 | 2014-09-17 Samuel Bronson <naesten@gmail.com> | ||
| 800 | |||
| 801 | * unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927). | ||
| 802 | |||
| 803 | 2014-09-17 Paul Eggert <eggert@cs.ucla.edu> | ||
| 804 | |||
| 805 | Fix minor problems found by static checking. | ||
| 806 | * alloc.c, lisp.h (SAVE_TYPE_INT_OBJ, make_save_int_obj): | ||
| 807 | Remove; now unused. | ||
| 808 | * buffer.h (decode_buffer): Doc and indentation fixes. | ||
| 809 | * fns.c (Qstring_collate_lessp, Qstring_collate_equalp): Now static. | ||
| 810 | |||
| 811 | 2014-09-17 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 812 | |||
| 813 | Avoid clang-specific warnings. | ||
| 814 | * buffer.c (init_buffer): Shut up -Wself-assign. | ||
| 815 | * process.c (server_accept_connection): Shut up -Wunsequenced. | ||
| 816 | |||
| 817 | 2014-09-16 Daniel Colascione <dancol@dancol.org> | ||
| 818 | |||
| 819 | * fns.c (sxhash): For symbols, use address as hash code. | ||
| 820 | |||
| 821 | 2014-09-16 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 822 | |||
| 823 | If USE_LOCAL_ALLOCATORS, allocate even more Lisp objects on stack. | ||
| 824 | * charset.c (load_charset_map_from_file): Use scoped_list2 | ||
| 825 | and build_local_string. | ||
| 826 | * buffer.c (Fother_buffer, other_buffer_safely, init_buffer): | ||
| 827 | * emacs.c (init_cmdargs, decode_env_path): | ||
| 828 | * fileio.c (Fexpand_file_name): | ||
| 829 | * fns.c (maybe_resize_hash_table) [ENABLE_CHECKING]: | ||
| 830 | * frame.c (x_get_arg): | ||
| 831 | * keyboard.c (safe_run_hooks_error): | ||
| 832 | * lread.c (load_warn_old_style_backquotes): | ||
| 833 | * xdisp.c (Fcurrent_bidi_paragraph_direction): | ||
| 834 | * xfns.c (x_default_scroll_bar_color_parameter, select_visual): | ||
| 835 | * xselect.c (x_clipboard_manager_error_1) | ||
| 836 | (x_clipboard_manager_save_all): | ||
| 837 | * xterm.c (x_term_init): Use build_local_string. | ||
| 838 | |||
| 839 | Avoid more integer overflows on string size calculations. | ||
| 840 | * category.c (Fmake_category_set): | ||
| 841 | * xdisp.c (get_overlay_arrow_glyph_row): | ||
| 842 | * w32font.c (intern_font_name): Prefer ptrdiff_t to int. | ||
| 843 | |||
| 844 | 2014-09-15 Eli Zaretskii <eliz@gnu.org> | ||
| 845 | |||
| 846 | * sound.c [WINDOWSNT]: Include w32common.h and mbstring.h. | ||
| 847 | (SOUND_WARNING) [WINDOWSNT]: Include in do..while and improve the | ||
| 848 | error message format. Use message_with_string to have non-ASCII | ||
| 849 | file names properly displayed. | ||
| 850 | (do_play_sound) [WINDOWSNT]: Use Unicode APIs to play sound files | ||
| 851 | when w32-unicode-filenames is non-nil, but not on Windows 9X, | ||
| 852 | where these APIs are not available even in UNICOWS.DLL. | ||
| 853 | Improve the format of error messages and include the file name in them | ||
| 854 | where appropriate. | ||
| 855 | (Fplay_sound_internal) [WINDOWSNT]: Make the MS-Windows branch | ||
| 856 | call play-sound-functions, per documentation. | ||
| 857 | |||
| 858 | * w32.c (w32_get_long_filename, w32_get_short_filename): | ||
| 859 | Constify the input file name arguments. | ||
| 860 | |||
| 861 | * w32.h (w32_get_long_filename, w32_get_short_filename): | ||
| 862 | Update prototypes. | ||
| 863 | |||
| 864 | 2014-09-15 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 865 | |||
| 866 | If USE_LOCAL_ALLOCATORS, allocate some Lisp objects on stack. | ||
| 867 | * lisp.h (local_cons, local_list1, local_list2, local_list3) | ||
| 868 | [USE_LOCAL_ALLOCATORS]: New macros. | ||
| 869 | [!USE_LOCAL_ALLOCATORS]: Fall back to regular functions. | ||
| 870 | (build_local_string): Avoid argument name expansion clash with | ||
| 871 | make_local_string. | ||
| 872 | * alloc.c (toplevel) | ||
| 873 | [USE_LOCAL_ALLOCATORS && GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS]: | ||
| 874 | Preprocessor guard to avoid impossible configuration. | ||
| 875 | * charset.c (Ffind_charset_region, Ffind_charset_string): | ||
| 876 | Use make_local_vector. | ||
| 877 | * lread.c (read1, substitute_object_recurse): Use scoped_cons. | ||
| 878 | * textprop.c (Fput_text_property, Fadd_face_text_property): | ||
| 879 | Use scoped_list2. | ||
| 880 | (copy_text_properties): Use local_cons and local_list3. | ||
| 881 | * chartab.c (uniprop_table): | ||
| 882 | * data.c (wrong_choice, wrong_range): | ||
| 883 | * doc.c (get_doc_string): | ||
| 884 | * editfns.c (format2): | ||
| 885 | * fileio.c (Fexpand_file_name, auto_save_error): | ||
| 886 | * fns.c (Fyes_or_no_p): | ||
| 887 | * font.c (font_parse_xlfd, font_parse_family_registry, font_add_log): | ||
| 888 | * fontset.c (Fset_fontset_font): | ||
| 889 | * keyboard.c (echo_add_key, echo_dash, parse_menu_item) | ||
| 890 | (read_char_minibuf_menu_prompt): | ||
| 891 | * keymap.c (silly_event_symbol_error, describe_vector): | ||
| 892 | * menu.c (single_menu_item): | ||
| 893 | * minibuf.c (Fread_buffer): | ||
| 894 | * process.c (status_message, Fformat_network_address) | ||
| 895 | (server_accept_connection): Use make_local_string and | ||
| 896 | build_local_string. Prefer compound literals where appropriate. | ||
| 897 | |||
| 898 | 2014-09-15 Daniel Colascione <dancol@dancol.org> | ||
| 899 | |||
| 900 | * fns.c (Fsort): Tweak sort docstring. | ||
| 901 | |||
| 902 | 2014-09-15 Eli Zaretskii <eliz@gnu.org> | ||
| 903 | |||
| 904 | * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of pipes. | ||
| 905 | (sys_write): When a write to a non-blocking pipe returns ENOSPC, | ||
| 906 | set errno to EAGAIN instead, to allow the caller to retry the | ||
| 907 | write after some waiting. Fixes deadlocks when Emacs exchanges a | ||
| 908 | lot of data through the pipe. (Bug#18420) | ||
| 909 | |||
| 910 | * sound.c (Fplay_sound_internal): Encode the sound file name in | ||
| 911 | the ANSI codepage. Expand it against data-directory, as per docs, | ||
| 912 | not against the current directory. No need to make a local copy | ||
| 913 | of the file name; pass the encoded file name directly to | ||
| 914 | do_play_sound. (Bug#18463) | ||
| 915 | |||
| 916 | * w32.c (ansi_encode_filename): If w32_get_short_filename returns | ||
| 917 | NULL, and the file name is not encodable in ANSI codepage, return | ||
| 918 | the string with "?" replacement characters, which will fail the | ||
| 919 | caller. This avoids returning a random value in that case. | ||
| 920 | |||
| 921 | 2014-09-15 Martin Rudalics <rudalics@gmx.at> | ||
| 922 | |||
| 923 | * window.c (Fresize_mini_window_internal): Set w->total_lines | ||
| 924 | from w->pixel_height (Bug#18422). | ||
| 925 | |||
| 926 | 2014-09-15 Jan Djärv <jan.h.d@swipnet.se> | ||
| 927 | |||
| 928 | * nsterm.m (updateFrameSize:, initFrameFromEmacs:) | ||
| 929 | (toggleFullScreen:): Take frame_resize_pixelwise into account when | ||
| 930 | setting resize increments (Bug#18435). | ||
| 931 | |||
| 932 | 2014-09-15 Eli Zaretskii <eliz@gnu.org> | ||
| 933 | |||
| 934 | * xdisp.c (pos_visible_p): Properly save and restore the iterator | ||
| 935 | state around the call to line_bottom, since it can move the | ||
| 936 | iterator to another screen line. This fixes off-by-one errors in | ||
| 937 | the reported row in some rare cases. | ||
| 938 | |||
| 939 | 2014-09-14 Jan Djärv <jan.h.d@swipnet.se> | ||
| 940 | |||
| 941 | * callproc.c (init_callproc): Fix bug introduced at | ||
| 942 | 2014-09-07 (Bug#18474). | ||
| 943 | |||
| 944 | 2014-09-13 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 945 | |||
| 946 | Prefer ptrdiff_t to int and avoid integer overflows. | ||
| 947 | * fileio.c (make_temp_name): | ||
| 948 | * font.c (font_parse_family_registry): Avoid integer | ||
| 949 | overflow on string size calculation. | ||
| 950 | * data.c (Faset): Likewise for byte index. | ||
| 951 | |||
| 952 | 2014-09-12 Detlev Zundel <dzu@member.fsf.org> | ||
| 953 | |||
| 954 | * buffer.c (syms_of_buffer): DEFSYM Qchoice (Bug#18337). | ||
| 955 | |||
| 956 | 2014-09-11 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 957 | |||
| 958 | * lisp.h (make_local_string): Nitpick indent. | ||
| 959 | * print.c (Fprin1_to_string): Remove unused GCPROs. | ||
| 960 | |||
| 961 | More debugging aids around GCPROs. | ||
| 962 | * lisp.h (struct gcpro) [DEBUG_GCPRO]: Add extra members. | ||
| 963 | (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7): | ||
| 964 | Minor restyle. If DEBUG_GCPRO, initialize extra fields. | ||
| 965 | |||
| 966 | * lread.c (readevalloop_eager_expand_eval): Add GCPRO and fix | ||
| 967 | bootstrap broken if GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. | ||
| 968 | |||
| 969 | Remove redundant GCPROs around Ffuncall and Fapply calls. | ||
| 970 | This is safe because Ffuncall protects all of its arguments by itself. | ||
| 971 | * charset.c (map_charset_for_dump): Remove redundant GCPRO. | ||
| 972 | * eval.c (Fapply, apply1, call0, call1, call2, call3, call4, call5) | ||
| 973 | (call6, call7): Likewise. Use compound literals where applicable. | ||
| 974 | (run_hook_with_args_2): Use compound literal. | ||
| 975 | |||
| 976 | 2014-09-11 Paul Eggert <eggert@cs.ucla.edu> | ||
| 977 | |||
| 978 | Pacify --enable-gcc-warnings when no window system is used. | ||
| 979 | These warnings found that subscript error, so they seem worthwhile. | ||
| 980 | * composite.c (char_composable_p): Simplify a bit. | ||
| 981 | * frame.c (x_set_frame_parameters): Add an IF_LINT. | ||
| 982 | * frame.c (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): | ||
| 983 | * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): | ||
| 984 | * window.c (set_window_scroll_bars): | ||
| 985 | Use USE_HORIZONTAL_SCROLL_BARS for simplicity. | ||
| 986 | * frame.h [! USE_HORIZONTAL_SCROLL_BARS]: | ||
| 987 | Ignore -Wsuggest-attribute=const. | ||
| 988 | * window.h (USE_HORIZONTAL_SCROLL_BARS): New macro. | ||
| 989 | (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Use it. | ||
| 990 | |||
| 991 | 2014-09-10 Paul Eggert <eggert@penguin.cs.ucla.edu> | ||
| 992 | |||
| 993 | * charset.c (Fget_unused_iso_final_char): Fix subscript error. | ||
| 994 | Use check_iso_charset_parameter instead of doing the checks by hand. | ||
| 995 | (check_iso_charset_parameter): Move up. Check parameters a bit | ||
| 996 | more carefully, and return true for 96-char sets. All callers changed. | ||
| 997 | |||
| 998 | 2014-09-10 Paul Eggert <eggert@cs.ucla.edu> | ||
| 999 | |||
| 1000 | Simplify lisp.h by removing the __COUNTER__ business. | ||
| 1001 | Problem reported by Dmitry Antipov in: | ||
| 1002 | http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00220.html | ||
| 1003 | * lisp.h (make_local_vector, make_local_string) | ||
| 1004 | (build_local_string): Simplify by not bothering with __COUNTER__. | ||
| 1005 | The __COUNTER__ business wasn't working properly, and was needed | ||
| 1006 | only for hypothetical future expansion anyway. | ||
| 1007 | |||
| 1008 | 2014-09-10 Alp Aker <alp.tekin.aker@gmail.com> | ||
| 1009 | |||
| 1010 | * nsterm.m (ns_draw_fringe_bitmap): Use the same logic as other | ||
| 1011 | terms to determine bitmap color. (Bug#18437) | ||
| 1012 | |||
| 1013 | 2014-09-10 Eli Zaretskii <eliz@gnu.org> | ||
| 1014 | |||
| 1015 | * w32.c (sys_write): Use SAFE_NALLOCA for the NL -> CRLF | ||
| 1016 | translation buffer. | ||
| 1017 | |||
| 1018 | 2014-09-10 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1019 | |||
| 1020 | * xterm.c (handle_one_xevent): Add braces to pacify gcc -Wall. | ||
| 1021 | |||
| 1022 | 2014-09-10 Jan Djärv <jan.h.d@swipnet.se> | ||
| 1023 | |||
| 1024 | * xterm.c (handle_one_xevent): Detect iconified by looking at | ||
| 1025 | _NET_WM_STATE_HIDDEN. | ||
| 1026 | |||
| 1027 | 2014-09-10 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1028 | |||
| 1029 | * lisp.h (DEFINE_GDB_SYMBOL_ENUM): Remove. | ||
| 1030 | These can generate a constant with the correct value but the wrong | ||
| 1031 | width, which doesn't work as a printf argument. All uses removed. | ||
| 1032 | Problem reported by Dmitry Antipov in: | ||
| 1033 | http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00213.html | ||
| 1034 | (ENUMABLE): Remove; no longer needed. | ||
| 1035 | (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val): | ||
| 1036 | Remove; no longer needed because of the above change. | ||
| 1037 | Each definiens moved to the only use. | ||
| 1038 | |||
| 1039 | Improve the experimental local and scoped allocation. | ||
| 1040 | * alloc.c (local_string_init, local_vector_init): | ||
| 1041 | New functions, defined if USE_LOCAL_ALLOCATORS. | ||
| 1042 | Mostly, these are moved here from lisp.h, as it's not | ||
| 1043 | clear it's worth making them inline. | ||
| 1044 | * lisp.h (USE_STACK_LISP_OBJECTS): Default to false. | ||
| 1045 | (GCALIGNED): Depend on HAVE_STRUCT_ATTRIBUTE_ALIGNED and | ||
| 1046 | USE_STACK_LISP_OBJECTS, not on a laundry list. | ||
| 1047 | (local_string_init, local_vector_init): New decls. | ||
| 1048 | (union Aligned_Cons): New type. | ||
| 1049 | (scoped_cons): Use it. Give up on the char trick, as it's a too | ||
| 1050 | much of a maintenance hassle; if someone wants this speedup | ||
| 1051 | they'll just need to convince their compiler to align properly. | ||
| 1052 | Conversely, use the speedup if struct Lisp_Cons happens to | ||
| 1053 | be aligned even without a directive. Better yet, help it along | ||
| 1054 | by using union Aligned_Cons rather than struct Lisp_Cons. | ||
| 1055 | (pointer_valid_for_lisp_object): Remove. This check is not | ||
| 1056 | necessary, since make_lisp_ptr is already doing it. All uses removed. | ||
| 1057 | (local_vector_init, local_string_init): Move to alloc.c. | ||
| 1058 | (build_local_vector): Remove this awkward macro, replacing with ... | ||
| 1059 | (make_local_vector): New macro, which acts more like a function. | ||
| 1060 | Use statement expressions and use __COUNTER__ to avoid macro | ||
| 1061 | capture. Fall back on functions if these features are not supported. | ||
| 1062 | (build_local_string, make_local_string): Likewise. | ||
| 1063 | |||
| 1064 | 2014-09-09 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 1065 | |||
| 1066 | * xterm.c (x_term_init): Consolidate duplicated code. | ||
| 1067 | [USE_LUCID]: Revert 2014-04-02 change (Bug#18403). Add comment. | ||
| 1068 | (x_delete_terminal): Do not close X connection fd (Bug#18403). | ||
| 1069 | Add eassert and mark dpyinfo as dead only if it was alive. | ||
| 1070 | |||
| 1071 | Add macros to allocate temporary Lisp objects with alloca. | ||
| 1072 | Respect MAX_ALLOCA and fall back to regular GC for large objects. | ||
| 1073 | * character.h (parse_str_as_multibyte): Move prototype to ... | ||
| 1074 | * lisp.h (parse_str_as_multibyte): ... here. | ||
| 1075 | (struct Lisp_Cons): Add GCALIGNED attribute if supported. | ||
| 1076 | (scoped_cons, scoped_list2, build_local_vector, build_local_string): | ||
| 1077 | New macros. | ||
| 1078 | (scoped_cons_init, pointer_valid_for_lisp_object, local_vector_init) | ||
| 1079 | (local_string_init): New functions. | ||
| 1080 | * alloc.c (verify_alloca) [ENABLE_CHECKING]: New function. | ||
| 1081 | (init_alloc_once): Call it. | ||
| 1082 | |||
| 1083 | Cleanup last change and make all new stuff conditional. | ||
| 1084 | * lisp.h (build_local_string): Rename to ... | ||
| 1085 | (make_local_string): ... this macro. | ||
| 1086 | (build_local_string, scoped_list1, scoped_list3): New macros. | ||
| 1087 | (toplevel) [USE_STACK_LISP_OBJECTS]: Define all new macros | ||
| 1088 | and functions as such, use regular fallbacks otherwise. | ||
| 1089 | * alloc.c (verify_alloca) [USE_STACK_LISP_OBJECTS]: Define | ||
| 1090 | conditionally. | ||
| 1091 | |||
| 1092 | 2014-09-08 Eli Zaretskii <eliz@gnu.org> | ||
| 1093 | |||
| 1094 | * dispnew.c (prepare_desired_row): When MODE_LINE_P is zero, | ||
| 1095 | always make sure the marginal areas of the row are in sync with | ||
| 1096 | what the window wants. (Bug#18419) | ||
| 1097 | |||
| 1098 | * data.c (set_internal): Use assq_no_quit, not Fassq, to find an | ||
| 1099 | existing binding of a variable, to avoid silently aborting | ||
| 1100 | commands that use specbind. (Bug#18331) | ||
| 1101 | |||
| 1102 | 2014-09-07 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1103 | |||
| 1104 | Fix bug uncovered by changing alloca to auto buffer (Bug#18410). | ||
| 1105 | * coding.c (growable_destination): New function. | ||
| 1106 | (produce_chars): Use it for sanity checks. Do not fiddle with | ||
| 1107 | dst_end if the source and destination are both nil, as it's | ||
| 1108 | the caller's responsibility to avoid overlap. | ||
| 1109 | * keyboard.c (read_decoded_event_from_main_queue): | ||
| 1110 | The destination must be MAX_MULTIBYTE_LENGTH times the max source | ||
| 1111 | length, not 4 times, to prevent decode_coding_c_string from trying | ||
| 1112 | to reallocate a destination. This removes the need for the FIXME. | ||
| 1113 | |||
| 1114 | * callproc.c (exec_failed) [DOS_NT]: Define a dummy. | ||
| 1115 | All callers simplified. Add a comment about exec_failed, vfork, | ||
| 1116 | and alloca. | ||
| 1117 | |||
| 1118 | Adjust drag-and-drop fix when window is above top (Bug#18303). | ||
| 1119 | * xselect.c (x_fill_property_data): Don't let sign bit of negative | ||
| 1120 | XCDR bleed into XCAR's encoded value. Improve checks for | ||
| 1121 | out-of-range data while we're at it. | ||
| 1122 | |||
| 1123 | 2014-09-07 Jan Djärv <jan.h.d@swipnet.se> | ||
| 1124 | |||
| 1125 | * xselect.c (x_fill_property_data): Handle negative XCDR when data | ||
| 1126 | is CONSP (Bug#18303). | ||
| 1127 | |||
| 1128 | 2014-09-07 Eli Zaretskii <eliz@gnu.org> | ||
| 1129 | |||
| 1130 | * callproc.c (child_setup) [WINDOWSNT]: Don't call exec_failed if | ||
| 1131 | 'alloca' gets passed arguments larger than MAX_ALLOCA. | ||
| 1132 | |||
| 1133 | * font.c (MAX): Define if not defined elsewhere. | ||
| 1134 | |||
| 1135 | 2014-09-07 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1136 | |||
| 1137 | * keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca | ||
| 1138 | here for destination buffer, to work around what appears to be a | ||
| 1139 | bug in decode_coding_c_string when the source and destination are | ||
| 1140 | both C strings. | ||
| 1141 | |||
| 1142 | Use SAFE_ALLOCA etc. to avoid unbounded stack allocation (Bug#18410). | ||
| 1143 | This follows up on the recent thread in emacs-devel on alloca; see: | ||
| 1144 | http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00042.html | ||
| 1145 | This patch also cleans up alloca-related glitches noted while | ||
| 1146 | examining the code looking for unbounded alloca. | ||
| 1147 | * alloc.c (listn): | ||
| 1148 | * callproc.c (init_callproc): | ||
| 1149 | Rewrite to avoid need for alloca. | ||
| 1150 | * buffer.c (mouse_face_overlay_overlaps) | ||
| 1151 | (report_overlay_modification): | ||
| 1152 | * buffer.h (GET_OVERLAYS_AT): | ||
| 1153 | * coding.c (make_subsidiaries): | ||
| 1154 | * doc.c (Fsnarf_documentation): | ||
| 1155 | * editfns.c (Fuser_full_name): | ||
| 1156 | * fileio.c (Ffile_name_directory, Fexpand_file_name) | ||
| 1157 | (search_embedded_absfilename, Fsubstitute_in_file_name): | ||
| 1158 | * fns.c (Fmake_hash_table): | ||
| 1159 | * font.c (font_vconcat_entity_vectors, font_update_drivers): | ||
| 1160 | * fontset.c (fontset_pattern_regexp, Ffontset_info): | ||
| 1161 | * frame.c (Fmake_terminal_frame, x_set_frame_parameters) | ||
| 1162 | (xrdb_get_resource, x_get_resource_string): | ||
| 1163 | * ftfont.c (ftfont_get_charset, ftfont_check_otf, ftfont_drive_otf): | ||
| 1164 | * ftxfont.c (ftxfont_draw): | ||
| 1165 | * image.c (xbm_load, xpm_load, jpeg_load_body): | ||
| 1166 | * keyboard.c (echo_add_key, menu_bar_items, tool_bar_items) | ||
| 1167 | |||
| 1168 | * keymap.c (Fdescribe_buffer_bindings, describe_map): | ||
| 1169 | * lread.c (openp): | ||
| 1170 | * menu.c (digest_single_submenu, find_and_call_menu_selection) | ||
| 1171 | (find_and_return_menu_selection): | ||
| 1172 | * print.c (PRINTFINISH): | ||
| 1173 | * process.c (Fformat_network_address): | ||
| 1174 | * scroll.c (do_scrolling, do_direct_scrolling, scrolling_1): | ||
| 1175 | * search.c (search_buffer, Fmatch_data, Fregexp_quote): | ||
| 1176 | * sound.c (wav_play, au_play): | ||
| 1177 | * syntax.c (skip_chars): | ||
| 1178 | * term.c (tty_menu_activate, tty_menu_show): | ||
| 1179 | * textprop.c (get_char_property_and_overlay): | ||
| 1180 | * window.c (Fset_window_configuration): | ||
| 1181 | * xdisp.c (safe__call, next_overlay_change, vmessage) | ||
| 1182 | (compute_overhangs_and_x, draw_glyphs, note_mouse_highlight): | ||
| 1183 | * xfaces.c (face_at_buffer_position): | ||
| 1184 | * xmenu.c (x_menu_show): | ||
| 1185 | Use SAFE_ALLOCA etc. instead of plain alloca, since the | ||
| 1186 | allocation size isn't bounded. | ||
| 1187 | * callint.c (Fcall_interactively): Redo memory_full check | ||
| 1188 | so that it can be done at compile-time on some platforms. | ||
| 1189 | * coding.c (MAX_LOOKUP_MAX): New constant. | ||
| 1190 | (get_translation_table): Use it. | ||
| 1191 | * callproc.c (call_process): Use SAFE_NALLOCA instead of | ||
| 1192 | SAFE_ALLOCA, to catch integer overflows on size calculation. | ||
| 1193 | (exec_failed) [!DOS_NT]: New function. | ||
| 1194 | (child_setup) [!DOS_NT]: Use it. | ||
| 1195 | * editfns.c (Ftranspose_regions): | ||
| 1196 | Hoist USE_SAFE_ALLOC + SAFE_FREE out of 'if'. | ||
| 1197 | * editfns.c (check_translation): | ||
| 1198 | Allocate larger buffers on the heap. | ||
| 1199 | * eval.c (internal_lisp_condition_case): | ||
| 1200 | Check for MAX_ALLOCA overflow. | ||
| 1201 | * fns.c (sort_vector): Use SAFE_ALLOCA_LISP rather than Fmake_vector. | ||
| 1202 | (Fbase64_encode_region, Fbase64_decode_region): | ||
| 1203 | Avoid unnecessary calls to SAFE_FREE before 'error'. | ||
| 1204 | * buffer.c (mouse_face_overlay_overlaps): | ||
| 1205 | * editfns.c (Fget_pos_property, check_translation): | ||
| 1206 | * eval.c (Ffuncall): | ||
| 1207 | * font.c (font_unparse_xlfd, font_find_for_lface): | ||
| 1208 | * ftfont.c (ftfont_drive_otf): | ||
| 1209 | * keyboard.c (echo_add_key, read_decoded_event_from_main_queue) | ||
| 1210 | (menu_bar_items, tool_bar_items): | ||
| 1211 | * sound.c (Fplay_sound_internal): | ||
| 1212 | * xdisp.c (load_overlay_strings, dump_glyph_row): | ||
| 1213 | Use an ordinary auto buffer rather than alloca, since the | ||
| 1214 | allocation size is fixed and small. | ||
| 1215 | * ftfont.c: Include <c-strcase.h>. | ||
| 1216 | (matching_prefix): New function. | ||
| 1217 | (get_adstyle_property): Use it, to avoid need for alloca. | ||
| 1218 | * keyboard.c (echo_add_key): | ||
| 1219 | * keymap.c (describe_map): Use ptrdiff_t, not int. | ||
| 1220 | * keyboard.c (echo_add_key): Prefer sizeof to strlen. | ||
| 1221 | * keymap.c (Fdescribe_buffer_bindings): Use SBYTES, not SCHARS, | ||
| 1222 | when counting bytes. | ||
| 1223 | * lisp.h (xlispstrdupa): Remove, replacing with ... | ||
| 1224 | (SAFE_ALLOCA_STRING): ... new macro with different API. | ||
| 1225 | This fixes a portability problem, namely, alloca result | ||
| 1226 | passed to another function. All uses changed. | ||
| 1227 | (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Check for MAX_ALLOCA, | ||
| 1228 | not MAX_ALLOCA - 1. | ||
| 1229 | * regex.c (REGEX_USE_SAFE_ALLOCA, REGEX_SAFE_FREE) | ||
| 1230 | (REGEX_ALLOCATE): New macros. | ||
| 1231 | (REGEX_REALLOCATE, REGEX_ALLOCATE_STACK, REGEX_REALLOCATE_STACK) | ||
| 1232 | (REGEX_FREE_STACK, FREE_VARIABLES, re_match_2_internal): | ||
| 1233 | Use them. | ||
| 1234 | * xdisp.c (message3): Use SAFE_ALLOCA_STRING rather than doing it | ||
| 1235 | by hand. | ||
| 1236 | (decode_mode_spec_coding): Store directly into buf rather than | ||
| 1237 | into an alloca temporary and copying the temporary to the buf. | ||
| 1238 | |||
| 1239 | 2014-09-06 Eli Zaretskii <eliz@gnu.org> | ||
| 1240 | |||
| 1241 | * Makefile.in (EMACS_HEAPSIZE): Remove, no longer used. (Bug#18416) | ||
| 1242 | |||
| 1243 | 2014-09-04 Jan D <jan.h.d@swipnet.se> | ||
| 1244 | |||
| 1245 | * xterm.c (x_term_init): Don't call x_session_initialize if running | ||
| 1246 | as a daemon (Bug#18375). | ||
| 1247 | |||
| 1248 | * xsmfns.c: Initialize ice_fd. | ||
| 1249 | |||
| 1250 | 2014-09-04 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1251 | |||
| 1252 | Less chatter in 'make' output. | ||
| 1253 | * Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1, AM_V_at) | ||
| 1254 | (am__v_at_, am__v_at_0, am__v_at_1): New macros, taken from Automake. | ||
| 1255 | ($(etc)/DOC, buildobj.h, gl-stamp): Use them. | ||
| 1256 | |||
| 1257 | 2014-09-03 Martin Rudalics <rudalics@gmx.at> | ||
| 1258 | |||
| 1259 | * buffer.c (scroll-bar-height): Fix typo in doc-string. | ||
| 1260 | * frame.c (Vdefault_frame_horizontal_scroll_bars): | ||
| 1261 | Remove variable. | ||
| 1262 | * nsfns.m (Fx_create_frame): | ||
| 1263 | * w32fns.c (Fx_create_frame): | ||
| 1264 | * xfns.c (Fx_create_frame): Default horizontal scroll bars to | ||
| 1265 | nil. | ||
| 1266 | |||
| 1267 | 2014-09-03 Eli Zaretskii <eliz@gnu.org> | ||
| 1268 | |||
| 1269 | * dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in | ||
| 1270 | the reported row in the case of a window with a header line, by | ||
| 1271 | improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org | ||
| 1272 | eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc. (Bug#18384) | ||
| 1273 | |||
| 1274 | 2014-09-03 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1275 | |||
| 1276 | * eval.c (internal_lisp_condition_case): Don't overrun the stack | ||
| 1277 | when configured --with-wide-int on typical 32-bit platforms. | ||
| 1278 | |||
| 1279 | 2014-09-03 Eli Zaretskii <eliz@gnu.org> | ||
| 1280 | |||
| 1281 | * xdisp.c (display_and_set_cursor): Call erase_phys_cursor also | ||
| 1282 | when HPOS is negative, for the benefit of R2L glyph rows whose | ||
| 1283 | newline overflows into the fringe. | ||
| 1284 | |||
| 1285 | 2014-09-03 Ken Brown <kbrown@cornell.edu> | ||
| 1286 | |||
| 1287 | * conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define. (Bug#18366) | ||
| 1288 | |||
| 1289 | 2014-09-02 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1290 | |||
| 1291 | Minor cleanup of recent strlen-avoiding patch. | ||
| 1292 | * fileio.c (CHECK_LENGTH): Remove. | ||
| 1293 | Rewrite callers so that they don't need it. | ||
| 1294 | (Fexpand_file_name) [DOS_NT]: Fix a case where directory length | ||
| 1295 | variable wasn't set. | ||
| 1296 | |||
| 1297 | 2014-09-02 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 1298 | |||
| 1299 | * fileio.c (CHECK_LENGTH): New macro. | ||
| 1300 | (Fexpand_file_name): Use it and get rid of a few more calls | ||
| 1301 | to strlen and strcat. | ||
| 1302 | * callproc.c (egetenv_internal): Add arg and rename from egetenv ... | ||
| 1303 | * lisp.h (egetenv): ... because of a new inline function used to | ||
| 1304 | avoid calls to strlen for a compile-time constants. | ||
| 1305 | |||
| 1306 | * buffer.h (decode_buffer): New function. | ||
| 1307 | * buffer.c (Fbuffer_name, Fbuffer_file_name, Fbuffer_base_buffer) | ||
| 1308 | (Fbuffer_local_variables, Fbuffer_modified_p, Fbuffer_modified_tick) | ||
| 1309 | (Fbuffer_chars_modified_tick, Fdelete_all_overlays): | ||
| 1310 | * data.c (Flocal_variables_p): | ||
| 1311 | * fileio.c (Fverify_visited_file_modtime): | ||
| 1312 | * marker.c (live_buffer): Use it. | ||
| 1313 | |||
| 1314 | 2014-09-01 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 1315 | |||
| 1316 | Avoid extra calls to strlen in filesystem I/O routines. | ||
| 1317 | * fileio.c (Fexpand_file_name): Avoid calls to strlen if | ||
| 1318 | the length of 'newdir' is known or may be precalculated. | ||
| 1319 | (file_accessible_directory_p): Prefer to pass Lisp_Object, | ||
| 1320 | not 'char *', and so use precalculated length. | ||
| 1321 | (Ffile_accessible_directory_p): | ||
| 1322 | * callproc.c (encode_current_directory, init_callproc): | ||
| 1323 | * charset.c (init_charset): | ||
| 1324 | * lread.c (load_path_check, load_path_default): Adjust users. | ||
| 1325 | * lisp.h (file_accessible_directory_p): Tweak prototype. | ||
| 1326 | |||
| 1327 | 2014-09-01 Eli Zaretskii <eliz@gnu.org> | ||
| 1328 | |||
| 1329 | * w32proc.c (w32_compare_strings): Support "C" and "POSIX" | ||
| 1330 | locales. | ||
| 1331 | |||
| 1332 | 2014-09-01 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1333 | |||
| 1334 | --enable-silent-rules now suppresses more chatter. | ||
| 1335 | * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_) | ||
| 1336 | (am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0) | ||
| 1337 | (am__v_CCLD_1): New macros, taken from Automake. | ||
| 1338 | (.c.o, .m.o, temacs$(EXEEXT)): Use them. | ||
| 1339 | |||
| 1340 | Clean up extern decls a bit. | ||
| 1341 | * bytecode.c: Include blockinput.h and keyboard.h rather | ||
| 1342 | than rolling their APIs by hand. | ||
| 1343 | * emacs.c: Include regex.h and rely on its and lisp.h's API | ||
| 1344 | rather than rolling them by hand. | ||
| 1345 | * lastfile.c: Include lisp.h, to check this file's API. | ||
| 1346 | * lisp.h (lisp_eval_depth, my_edata, my_endbss, my_endbss_static): | ||
| 1347 | New decls. | ||
| 1348 | * regex.h (re_max_failures): New decl. | ||
| 1349 | * unexcw.c, unexmacosx.c, unexw32.c: | ||
| 1350 | Rely on lisp.h's API rather than rolling it by hand. | ||
| 1351 | * vm-limit.c (__after_morecore_hook, __morecore, real_morecore): | ||
| 1352 | Declare at top level, to pacify GCC -Wnested-externs. | ||
| 1353 | |||
| 1354 | 2014-08-31 Eli Zaretskii <eliz@gnu.org> | ||
| 1355 | |||
| 1356 | * xdisp.c (get_glyph_string_clip_rects): Don't let the width of a | ||
| 1357 | clipping rectangle become negative (i.e. large positive, since | ||
| 1358 | it's an unsigned data type). This can happen in R2L hscrolled | ||
| 1359 | glyph rows, and caused us to draw the cursor glyph on the fringe. | ||
| 1360 | For the details, see | ||
| 1361 | http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00543.html. | ||
| 1362 | |||
| 1363 | 2014-08-31 Ken Brown <kbrown@cornell.edu> | ||
| 1364 | |||
| 1365 | * gmalloc.c: Don't include <stdlib.h>. Declare system malloc and | ||
| 1366 | friends before defining hybrid_malloc and friends if HYBRID_MALLOC | ||
| 1367 | is defined. (Bug#18368) | ||
| 1368 | |||
| 1369 | 2014-08-30 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1370 | |||
| 1371 | Vector-sorting fixes (Bug#18361). | ||
| 1372 | It's not safe to call qsort or qsort_r, since they have undefined | ||
| 1373 | behavior if the user-specified predicate is not a total order. | ||
| 1374 | Also, watch out for garbage-collection while sorting vectors. | ||
| 1375 | * fns.c: Include <vla.h>. | ||
| 1376 | (sort_vector_predicate) [!HAVE_QSORT_R]: Remove. | ||
| 1377 | (sort_vector_compare): Remove, replacing with .... | ||
| 1378 | (inorder, merge_vectors, sort_vector_inplace, sort_vector_copy): | ||
| 1379 | ... these new functions. | ||
| 1380 | (sort_vector): Rewrite to use the new functions. | ||
| 1381 | GCPRO locals, since the predicate can invoke the GC. | ||
| 1382 | Since it's in-place return void; caller changed. | ||
| 1383 | (merge): Use 'inorder', for clarity. | ||
| 1384 | |||
| 1385 | * sysdep.c (str_collate): Clear errno just before wcscoll(_l). | ||
| 1386 | One can't hoist this out of the 'if', because intervening calls to | ||
| 1387 | newlocale, twolower, etc. can change errno. | ||
| 1388 | |||
| 1389 | 2014-08-30 Eli Zaretskii <eliz@gnu.org> | ||
| 1390 | |||
| 1391 | * sysdep.c (str_collate) [__STDC_ISO_10646__]: Improve the | ||
| 1392 | wording of the error messages. | ||
| 1393 | (str_collate) [WINDOWSNT]: Signal an error if w32_compare_strings | ||
| 1394 | sets errno. | ||
| 1395 | |||
| 1396 | * w32proc.c (get_lcid_callback): Accept locale specifications | ||
| 1397 | without the country part, as in "enu" vs "enu_USA". | ||
| 1398 | (w32_compare_strings): Signal an error if a locale was specified, | ||
| 1399 | but couldn't be translated into a valid LCID. | ||
| 1400 | |||
| 1401 | 2014-08-29 Michael Albinus <michael.albinus@gmx.de> | ||
| 1402 | |||
| 1403 | * sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno. | ||
| 1404 | |||
| 1405 | 2014-08-29 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1406 | |||
| 1407 | * sysdep.c (str_collate) [__STDC_ISO_10646__]: Do not look at | ||
| 1408 | errno after towlower_l. errno's value is not specified after | ||
| 1409 | towlower_l. Instead, assume that towlower_l returns its argument | ||
| 1410 | on failure, which is portable in practice. | ||
| 1411 | |||
| 1412 | 2014-08-29 Eli Zaretskii <eliz@gnu.org> | ||
| 1413 | |||
| 1414 | * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): Doc fix. | ||
| 1415 | |||
| 1416 | * w32proc.c (w32_compare_strings): Accept additional argument | ||
| 1417 | IGNORE_CASE. Set up the flags for CompareStringW to ignore case | ||
| 1418 | if requested. If w32-collate-ignore-punctuation is non-nil, add | ||
| 1419 | NORM_IGNORESYMBOLS to the flags. | ||
| 1420 | (LINGUISTIC_IGNORECASE): Define if not already defined. | ||
| 1421 | (syms_of_ntproc) <Vw32_collate_ignore_punctuation>: New variable. | ||
| 1422 | |||
| 1423 | * sysdep.c (str_collate) [WINDOWSNT]: Adapt to the interface | ||
| 1424 | change. | ||
| 1425 | |||
| 1426 | 2014-08-29 Michael Albinus <michael.albinus@gmx.de> | ||
| 1427 | |||
| 1428 | * sysdep.c (LC_CTYPE, LC_CTYPE_MASK, towlower_l): | ||
| 1429 | Define substitutes for platforms that lack them. | ||
| 1430 | (str_collate): Add arguments locale and ignore_case. | ||
| 1431 | |||
| 1432 | * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): | ||
| 1433 | Add optional arguments LOCALE and IGNORE-CASE. | ||
| 1434 | |||
| 1435 | * lisp.h (str_collate): Adapt argument list. | ||
| 1436 | |||
| 1437 | 2014-08-29 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 1438 | |||
| 1439 | Add vectors support to Fsort. | ||
| 1440 | * fns.c (sort_vector, sort_vector_compare): New functions. | ||
| 1441 | (sort_list): Likewise, refactored out of ... | ||
| 1442 | (Fsort): ... adjusted user. Mention vectors in docstring. | ||
| 1443 | (sort_vector_predicate) [!HAVE_QSORT_R]: New variable. | ||
| 1444 | * alloc.c (make_save_int_obj): New function. | ||
| 1445 | * lisp.h (enum Lisp_Save_Type): New member SAVE_TYPE_INT_OBJ. | ||
| 1446 | (make_save_int_obj): Add prototype. | ||
| 1447 | |||
| 1448 | Fix last change to support Darwin/OSX and FreeBSD (Bug#18354). | ||
| 1449 | * sysdep.c (sort_vector_compare) [DARWIN_OS || __FreeBSD__]: | ||
| 1450 | Conditionally define to match system's qsort_r signature. | ||
| 1451 | (sort_vector) [DARWIN_OS || __FreeBSD__]: Likewise in call to qsort_r. | ||
| 1452 | |||
| 1453 | 2014-08-28 Ken Brown <kbrown@cornell.edu> | ||
| 1454 | |||
| 1455 | Add support for HYBRID_MALLOC, allowing the use of gmalloc before | ||
| 1456 | dumping and the system malloc after dumping. (Bug#18222) | ||
| 1457 | |||
| 1458 | * conf_post.h (malloc, realloc, calloc, free) [HYBRID_MALLOC]: | ||
| 1459 | Define as macros, expanding to hybrid_malloc, etc. | ||
| 1460 | (HYBRID_GET_CURRENT_DIR_NAME): New macro. | ||
| 1461 | (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Define as | ||
| 1462 | macro. | ||
| 1463 | * gmalloc.c: Set up the infrastructure for HYBRID_MALLOC, with a | ||
| 1464 | full implementation on Cygwin. Remove Cygwin-specific code that | ||
| 1465 | is no longer needed. | ||
| 1466 | (malloc, realloc, calloc, free, aligned_alloc) [HYBRID_MALLOC]: | ||
| 1467 | Redefine as macros expanding to gmalloc, grealloc, etc. | ||
| 1468 | (DUMPED, ALLOCATED_BEFORE_DUMPING) [CYGWIN]: New macros. | ||
| 1469 | (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Undefine. | ||
| 1470 | (USE_PTHREAD, posix_memalign) [HYBRID_MALLOC]: Don't define. | ||
| 1471 | (hybrid_malloc, hybrid_calloc, hybrid_free, hybrid_realloc) | ||
| 1472 | [HYBRID_MALLOC]: | ||
| 1473 | (hybrid_get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: | ||
| 1474 | (hybrid_aligned_alloc) [HYBRID_MALLOC && (HAVE_ALIGNED_ALLOC || | ||
| 1475 | HAVE_POSIX_MEMALIGN)]: New functions. | ||
| 1476 | * alloc.c (aligned_alloc) [HYBRID_MALLOC && (ALIGNED_ALLOC || | ||
| 1477 | HAVE_POSIX_MEMALIGN)]: Define as macro expanding to | ||
| 1478 | hybrid_aligned_alloc; declare. | ||
| 1479 | (USE_ALIGNED_ALLOC) [HYBRID_MALLOC && (ALIGNED_ALLOC || | ||
| 1480 | HAVE_POSIX_MEMALIGN)]: Define. | ||
| 1481 | (refill_memory_reserve) [HYBRID_MALLOC]: Do nothing. | ||
| 1482 | * sysdep.c (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: | ||
| 1483 | Define as macro, expanding to gget_current_dir_name, and define | ||
| 1484 | the latter. | ||
| 1485 | * emacs.c (main) [HYBRID_MALLOC]: Don't call memory_warnings() or | ||
| 1486 | malloc_enable_thread(). Don't initialize malloc. | ||
| 1487 | * lisp.h (NONPOINTER_BITS) [CYGWIN]: Define (because GNU_MALLOC is | ||
| 1488 | no longer defined on Cygwin). | ||
| 1489 | (refill_memory_reserve) [HYBRID_MALLOC]: Don't declare. | ||
| 1490 | * sheap.c (bss_sbrk_buffer_end): New variable. | ||
| 1491 | * unexcw.c (__malloc_initialized): Remove variable. | ||
| 1492 | * ralloc.c: Throughout, treat HYBRID_MALLOC the same as | ||
| 1493 | SYSTEM_MALLOC. | ||
| 1494 | * xdisp.c (decode_mode_spec) [HYBRID_MALLOC]: Don't check | ||
| 1495 | Vmemory_full. | ||
| 1496 | |||
| 1497 | 2014-08-28 Martin Rudalics <rudalics@gmx.at> | ||
| 1498 | |||
| 1499 | * w32term.c (w32_horizontal_scroll_bar_handle_click): | ||
| 1500 | In `event->y' return entire range (the size of the scroll bar minus | ||
| 1501 | that of the thumb). | ||
| 1502 | * xterm.c (xm_scroll_callback, xaw_jump_callback): In `whole' | ||
| 1503 | return entire range (the scaled size of the scroll bar minus | ||
| 1504 | that of the slider). In `portion' return the scaled position of | ||
| 1505 | the slider. | ||
| 1506 | (xaw_jump_callback): Restore part of code for vertical scroll | ||
| 1507 | bar broken in change from 2014-07-27. | ||
| 1508 | (xaw_scroll_callback): Provide incremental scrolling with | ||
| 1509 | horizontal scroll bars. | ||
| 1510 | |||
| 1511 | 2014-08-28 Eli Zaretskii <eliz@gnu.org> | ||
| 1512 | |||
| 1513 | * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define. | ||
| 1514 | |||
| 1515 | * indent.c (Fvertical_motion): Fix vertical motion up through a | ||
| 1516 | display property after a newline. (Bug#18276) | ||
| 1517 | |||
| 1518 | * xdisp.c (display_line): Don't assume that the call to | ||
| 1519 | reseat_at_next_visible_line_start ends up at a character | ||
| 1520 | immediately following the newline on the previous line. | ||
| 1521 | Avoids setting the ends_at_zv_p flag on screen lines that are not at or | ||
| 1522 | beyond ZV, which causes infloop in redisplay. For the details, see | ||
| 1523 | http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html. | ||
| 1524 | |||
| 1525 | * dispnew.c (buffer_posn_from_coords): Fix mirroring of X | ||
| 1526 | coordinate for hscrolled R2L screen lines. (Bug#18277) | ||
| 1527 | |||
| 1528 | 2014-08-28 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1529 | |||
| 1530 | * sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults | ||
| 1531 | (Bug#18051). | ||
| 1532 | |||
| 1533 | 2014-08-27 Eli Zaretskii <eliz@gnu.org> | ||
| 1534 | |||
| 1535 | * syntax.c (scan_lists): Don't examine positions before BEGV. | ||
| 1536 | (Bug#18339) | ||
| 1537 | |||
| 1538 | 2014-08-27 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1539 | |||
| 1540 | Improve robustness of new string-collation code (Bug#18051). | ||
| 1541 | * sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t) | ||
| 1542 | (newlocale, wcscoll_l): Define substitutes for platforms that | ||
| 1543 | lack them, so as to simplify the mainline code. | ||
| 1544 | (str_collate): Simplify the code by assuming the above definitions. | ||
| 1545 | Use wcscoll_l, not uselocale, as uselocale is too fragile. | ||
| 1546 | For example, the old version left the Emacs in the wrong locale if | ||
| 1547 | wcscoll reported an error. Use 'int', not ptrdiff_t, for the int | ||
| 1548 | result. Report an error if newlocale fails. | ||
| 1549 | |||
| 1550 | 2014-08-27 Michael Albinus <michael.albinus@gmx.de> | ||
| 1551 | |||
| 1552 | * lisp.h (str_collate): | ||
| 1553 | * sysdep.c (str_collate): Return int. | ||
| 1554 | (str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll. | ||
| 1555 | |||
| 1556 | 2014-08-27 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 1557 | |||
| 1558 | Fix some glitches in previous change. | ||
| 1559 | * sysdep.c (stack_direction): Replace stack_grows_down | ||
| 1560 | to simplify calculation of stack boundaries. | ||
| 1561 | (handle_sigsegv): Check whether we really crash somewhere near | ||
| 1562 | to stack boundary, and handle fatal signal as usual if not. | ||
| 1563 | (init_sigsegv): Adjust accordingly. | ||
| 1564 | * keyboard.c (Vtop_level_message): Rename to | ||
| 1565 | Vinternal__top_level_message, as suggested by Stefan Monnier in | ||
| 1566 | http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00493.html | ||
| 1567 | All related users changed. | ||
| 1568 | |||
| 1569 | 2014-08-26 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 1570 | |||
| 1571 | Handle C stack overflow caused by too nested Lisp evaluation. | ||
| 1572 | * lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare | ||
| 1573 | siglongjmp point to transfer control from SIGSEGV handler. | ||
| 1574 | * keyboard.c (return_to_command_loop, recover_top_level_message) | ||
| 1575 | [HAVE_STACK_OVERFLOW_HANDLING]: New variables. | ||
| 1576 | (regular_top_level_message): New variable. | ||
| 1577 | (command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local | ||
| 1578 | exit from SIGSEGV handler and adjust message displayed by Vtop_level | ||
| 1579 | if appropriate. | ||
| 1580 | (syms_of_keyboard): DEFVAR Vtop_level_message and initialize | ||
| 1581 | new variables described above. | ||
| 1582 | * sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such. | ||
| 1583 | (stack_grows_down, sigsegv_stack, handle_sigsegv) | ||
| 1584 | [HAVE_STACK_OVERFLOW_HANDLING]: New variables and function. | ||
| 1585 | (init_sigsegv): New function. | ||
| 1586 | (init_signals): Use it. | ||
| 1587 | |||
| 1588 | 2014-08-25 Ken Brown <kbrown@cornell.edu> | ||
| 1589 | |||
| 1590 | * emacs.c (main): Remove use of obsolete macro | ||
| 1591 | G_SLICE_ALWAYS_MALLOC. | ||
| 1592 | |||
| 1593 | 2014-08-25 Eli Zaretskii <eliz@gnu.org> | ||
| 1594 | |||
| 1595 | Implement locale-sensitive string collation for MS-Windows. | ||
| 1596 | * w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings): | ||
| 1597 | New functions. (Bug#18051) | ||
| 1598 | |||
| 1599 | * w32.h (w32_compare_strings): Add prototype. | ||
| 1600 | |||
| 1601 | * w32.c <g_b_init_compare_string_w>: New global flag. | ||
| 1602 | (globals_of_w32): Initialize it. | ||
| 1603 | |||
| 1604 | * sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows. | ||
| 1605 | |||
| 1606 | * fns.c (Fstring_collate_lessp, Fstring_collate_equalp) | ||
| 1607 | [WINDOWSNT]: Call str_collate on MS-Windows. | ||
| 1608 | |||
| 1609 | 2014-08-25 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 1610 | |||
| 1611 | One more minor cleanup of font subsystem. | ||
| 1612 | * font.h (struct font_driver): Convert text_extents to | ||
| 1613 | return void because returned value is never actually used. | ||
| 1614 | * macfont.m (macfont_text_extents): | ||
| 1615 | * w32font.c (w32font_text_extents): | ||
| 1616 | * xftfont.c (xftfont_text_extents): Adjust to return void | ||
| 1617 | and assume that 'metrics' argument is always non-NULL. | ||
| 1618 | * ftfont.c (ftfont_text_extents): | ||
| 1619 | * xfont.c (xfont_text_extents): Likewise. Avoid redundant memset. | ||
| 1620 | |||
| 1621 | 2014-08-25 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1622 | |||
| 1623 | Minor cleanups of str_collate fix (Bug#18051). | ||
| 1624 | * fns.c (str_collate): Move decl from here ... | ||
| 1625 | * lisp.h (str_collate): ... to here. | ||
| 1626 | * sysdep.c (str_collate): Prune away some of the forest of ifdefs. | ||
| 1627 | Remove unnecessary casts. Use SAFE_NALLOCA to avoid | ||
| 1628 | potential problems with integer overflow. Don't assume | ||
| 1629 | setlocale succeeds. Remove unnecessary test before restoring | ||
| 1630 | locale via setlocale, and free the copied setlocale string | ||
| 1631 | when done with it. | ||
| 1632 | |||
| 1633 | 2014-08-24 Michael Albinus <michael.albinus@gmx.de> | ||
| 1634 | |||
| 1635 | * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): New DEFUNs. | ||
| 1636 | |||
| 1637 | * sysdep.c (str_collate): New function. (Bug#18051) | ||
| 1638 | |||
| 1639 | 2014-08-23 Karol Ostrovsky <karol.ostrovsky@gmail.com> (tiny change) | ||
| 1640 | |||
| 1641 | * Makefile.in (emacs$(EXEEXT)): Retry deletion of bootstrap-emacs | ||
| 1642 | if the initial "rm -f" fails. This is for MinGW builds, where | ||
| 1643 | MS-Windows will not allow deleting the executable file of a | ||
| 1644 | running program. | ||
| 1645 | |||
| 1 | 2014-08-20 Eli Zaretskii <eliz@gnu.org> | 1646 | 2014-08-20 Eli Zaretskii <eliz@gnu.org> |
| 2 | 1647 | ||
| 3 | * w32term.c (w32_scroll_bar_handle_click) | 1648 | * w32term.c (w32_scroll_bar_handle_click) |
| @@ -117,8 +1762,8 @@ | |||
| 117 | * term.c (OUTPUT, tty_set_terminal_modes) | 1762 | * term.c (OUTPUT, tty_set_terminal_modes) |
| 118 | (tty_set_terminal_window, tty_set_scroll_region) | 1763 | (tty_set_terminal_window, tty_set_scroll_region) |
| 119 | (tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face) | 1764 | (tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face) |
| 120 | (tty_ins_del_lines, tty_menu_display, tty_menu_activate): Use | 1765 | (tty_ins_del_lines, tty_menu_display, tty_menu_activate): |
| 121 | FRAME_TOTAL_LINES instead of FRAME_LINES. | 1766 | Use FRAME_TOTAL_LINES instead of FRAME_LINES. |
| 122 | (Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES. | 1767 | (Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES. |
| 123 | Call change_frame_size with frame's menu bar lines subtracted | 1768 | Call change_frame_size with frame's menu bar lines subtracted |
| 124 | from height. | 1769 | from height. |
| @@ -129,9 +1774,10 @@ | |||
| 129 | 2014-08-09 Reuben Thomas <rrt@sc3d.org> | 1774 | 2014-08-09 Reuben Thomas <rrt@sc3d.org> |
| 130 | 1775 | ||
| 131 | * alloc.c (Fmemory_info): Remove a stray brace. | 1776 | * alloc.c (Fmemory_info): Remove a stray brace. |
| 1777 | |||
| 132 | * process.c: Fix a comment typo. | 1778 | * process.c: Fix a comment typo. |
| 133 | * msdos.c: | 1779 | |
| 134 | * dosfns.c (init_dosfns): Remove support for DJGPP < 2.02. | 1780 | * msdos.c, dosfns.c (init_dosfns): Remove support for DJGPP < 2.02. |
| 135 | 1781 | ||
| 136 | 2014-08-09 Jan Djärv <jan.h.d@swipnet.se> | 1782 | 2014-08-09 Jan Djärv <jan.h.d@swipnet.se> |
| 137 | 1783 | ||
| @@ -168,14 +1814,14 @@ | |||
| 168 | 1814 | ||
| 169 | 2014-08-04 Martin Rudalics <rudalics@gmx.at> | 1815 | 2014-08-04 Martin Rudalics <rudalics@gmx.at> |
| 170 | 1816 | ||
| 171 | * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): Condition | 1817 | * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): |
| 172 | correctly according to toolkit used. | 1818 | Condition correctly according to toolkit used. |
| 173 | * frame.c (make_initial_frame, make_terminal_frame) | 1819 | * frame.c (make_initial_frame, make_terminal_frame) |
| 174 | (x_set_horizontal_scroll_bars, x_set_scroll_bar_height) | 1820 | (x_set_horizontal_scroll_bars, x_set_scroll_bar_height) |
| 175 | (Vdefault_frame_horizontal_scroll_bars): Correctly condition | 1821 | (Vdefault_frame_horizontal_scroll_bars): Correctly condition |
| 176 | assignments according to presence of toolkit scrollbars. | 1822 | assignments according to presence of toolkit scrollbars. |
| 177 | * window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Condition | 1823 | * window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): |
| 178 | correctly according to toolkit used. | 1824 | Condition correctly according to toolkit used. |
| 179 | * window.c (set_window_scroll_bars): Set horizontal scroll bar | 1825 | * window.c (set_window_scroll_bars): Set horizontal scroll bar |
| 180 | only if toolkit supports it. | 1826 | only if toolkit supports it. |
| 181 | * w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if | 1827 | * w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if |
| @@ -431,15 +2077,15 @@ | |||
| 431 | (x_set_scroll_bar_height): Add external declarations. | 2077 | (x_set_scroll_bar_height): Add external declarations. |
| 432 | * frame.c: (frame_inhibit_resize, frame_windows_min_size) | 2078 | * frame.c: (frame_inhibit_resize, frame_windows_min_size) |
| 433 | (adjust_frame_size): New functions. | 2079 | (adjust_frame_size): New functions. |
| 434 | (make_frame): Initial horizontal_scroll_bars field. Use | 2080 | (make_frame): Initial horizontal_scroll_bars field. |
| 435 | SET_FRAME_LINES. Don't allow horizontal scroll bar in | 2081 | Use SET_FRAME_LINES. Don't allow horizontal scroll bar in |
| 436 | minibuffer window. | 2082 | minibuffer window. |
| 437 | (make_initial_frame, make_terminal_frame): No horizontal scroll | 2083 | (make_initial_frame, make_terminal_frame): No horizontal scroll |
| 438 | bar in initial and terminal frames. Use adjust_frame_size. | 2084 | bar in initial and terminal frames. Use adjust_frame_size. |
| 439 | (Fframe_total_cols): Fix doc-string. | 2085 | (Fframe_total_cols): Fix doc-string. |
| 440 | (Fframe_total_lines, Fscroll_bar_height): New Lisp functions. | 2086 | (Fframe_total_lines, Fscroll_bar_height): New Lisp functions. |
| 441 | (Fset_frame_height, Fset_frame_width, Fset_frame_size): Rewrite | 2087 | (Fset_frame_height, Fset_frame_width, Fset_frame_size): |
| 442 | using adjust_frame_size. | 2088 | Rewrite using adjust_frame_size. |
| 443 | (Qscroll_bar_height, Qhorizontal_scroll_bars) | 2089 | (Qscroll_bar_height, Qhorizontal_scroll_bars) |
| 444 | (Qframe_windows_min_size): New symbols. | 2090 | (Qframe_windows_min_size): New symbols. |
| 445 | (x_set_frame_parameters): Remove call of check_frame_size. | 2091 | (x_set_frame_parameters): Remove call of check_frame_size. |
| @@ -450,8 +2096,8 @@ | |||
| 450 | (x_set_internal_border_width, x_set_vertical_scroll_bars) | 2096 | (x_set_internal_border_width, x_set_vertical_scroll_bars) |
| 451 | (x_set_scroll_bar_width, x_set_right_divider_width) | 2097 | (x_set_scroll_bar_width, x_set_right_divider_width) |
| 452 | (x_set_bottom_divider_width): Rewrite using adjust_frame_size. | 2098 | (x_set_bottom_divider_width): Rewrite using adjust_frame_size. |
| 453 | (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): New | 2099 | (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): |
| 454 | functions. | 2100 | New functions. |
| 455 | (x_figure_window_size): Rewrite to make frame display the | 2101 | (x_figure_window_size): Rewrite to make frame display the |
| 456 | expected number of lines. | 2102 | expected number of lines. |
| 457 | (Vdefault_frame_scroll_bars): Rewrite doc-string. | 2103 | (Vdefault_frame_scroll_bars): Rewrite doc-string. |
| @@ -498,8 +2144,8 @@ | |||
| 498 | compute_fringe_widths. | 2144 | compute_fringe_widths. |
| 499 | * term.c (Fresume_tty): When changing the size of a tty frame do | 2145 | * term.c (Fresume_tty): When changing the size of a tty frame do |
| 500 | not pass height of menu bar. | 2146 | not pass height of menu bar. |
| 501 | (clear_tty_hooks, set_tty_hooks): Clear | 2147 | (clear_tty_hooks, set_tty_hooks): |
| 502 | horizontal_scroll_bar_hook. | 2148 | Clear horizontal_scroll_bar_hook. |
| 503 | (init_tty): Frame has no horizontal scroll bars. | 2149 | (init_tty): Frame has no horizontal scroll bars. |
| 504 | * termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio, | 2150 | * termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio, |
| 505 | scroll_bar_before_handle, scroll_bar_horizontal_handle, | 2151 | scroll_bar_before_handle, scroll_bar_horizontal_handle, |
| @@ -508,25 +2154,25 @@ | |||
| 508 | scroll_bar_to_rightmost entries. | 2154 | scroll_bar_to_rightmost entries. |
| 509 | (enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT | 2155 | (enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT |
| 510 | (struct terminal): Add set_horizontal_scroll_bar_hook. | 2156 | (struct terminal): Add set_horizontal_scroll_bar_hook. |
| 511 | * w32console.c (initialize_w32_display): Clear | 2157 | * w32console.c (initialize_w32_display): |
| 512 | horizontal_scroll_bar_hook. | 2158 | Clear horizontal_scroll_bar_hook. |
| 513 | * w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of | 2159 | * w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of |
| 514 | FRAME_X_DISPLAY. | 2160 | FRAME_X_DISPLAY. |
| 515 | (x_clear_under_internal_border, x_set_internal_border_width): | 2161 | (x_clear_under_internal_border, x_set_internal_border_width): |
| 516 | New functions. | 2162 | New functions. |
| 517 | (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize. Set | 2163 | (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize. |
| 518 | windows_or_buffers_changed when adding the menu bar. | 2164 | Set windows_or_buffers_changed when adding the menu bar. |
| 519 | (x_set_tool_bar_lines): Rewrite using adjust_frame_size. | 2165 | (x_set_tool_bar_lines): Rewrite using adjust_frame_size. |
| 520 | (x_change_tool_bar_height, x_set_scroll_bar_default_height) | 2166 | (x_change_tool_bar_height, x_set_scroll_bar_default_height) |
| 521 | (w32_createhscrollbar): New functions. | 2167 | (w32_createhscrollbar): New functions. |
| 522 | (w32_createscrollbar): Rename to w32_createvscrollbar. | 2168 | (w32_createscrollbar): Rename to w32_createvscrollbar. |
| 523 | (w32_createwindow): Init WND_HSCROLLBAR_INDEX. | 2169 | (w32_createwindow): Init WND_HSCROLLBAR_INDEX. |
| 524 | (w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by | 2170 | (w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by |
| 525 | WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR. Add | 2171 | WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR. |
| 526 | WM_EMACS_SHOWCURSOR. | 2172 | Add WM_EMACS_SHOWCURSOR. |
| 527 | (w32_wnd_proc): Handle WM_HSCROLL case. In WM_WINDOWPOSCHANGING | 2173 | (w32_wnd_proc): Handle WM_HSCROLL case. In WM_WINDOWPOSCHANGING |
| 528 | case do not artificially impose WM size hints. Handle | 2174 | case do not artificially impose WM size hints. |
| 529 | WM_EMACS_SHOWCURSOR case. Replace WM_EMACS_CREATESCROLLBAR case | 2175 | Handle WM_EMACS_SHOWCURSOR case. Replace WM_EMACS_CREATESCROLLBAR case |
| 530 | by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR | 2176 | by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR |
| 531 | cases. | 2177 | cases. |
| 532 | (my_create_tip_window): Replace WND_SCROLLBAR_INDEX by | 2178 | (my_create_tip_window): Replace WND_SCROLLBAR_INDEX by |
| @@ -545,8 +2191,8 @@ | |||
| 545 | pass height of menu bar to change_frame_size. | 2191 | pass height of menu bar to change_frame_size. |
| 546 | * w32menu.c (set_frame_menubar): Rewrite using | 2192 | * w32menu.c (set_frame_menubar): Rewrite using |
| 547 | frame_inhibit_resize. | 2193 | frame_inhibit_resize. |
| 548 | * w32term.h (struct w32_display_info): Add | 2194 | * w32term.h (struct w32_display_info): |
| 549 | horizontal_scroll_bar_cursor and cursor_display_counter. | 2195 | Add horizontal_scroll_bar_cursor and cursor_display_counter. |
| 550 | (struct scroll_bar): Add horizontal. | 2196 | (struct scroll_bar): Add horizontal. |
| 551 | (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT) | 2197 | (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT) |
| 552 | (HORIZONTAL_SCROLL_BAR_LEFT_RANGE) | 2198 | (HORIZONTAL_SCROLL_BAR_LEFT_RANGE) |
| @@ -556,8 +2202,8 @@ | |||
| 556 | (HORIZONTAL_SCROLL_BAR_TOP_BORDER) | 2202 | (HORIZONTAL_SCROLL_BAR_TOP_BORDER) |
| 557 | (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER) | 2203 | (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER) |
| 558 | (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros. | 2204 | (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros. |
| 559 | (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR): Define | 2205 | (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR): |
| 560 | instead of WM_EMACS_CREATESCROLLBAR. | 2206 | Define instead of WM_EMACS_CREATESCROLLBAR. |
| 561 | (WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of | 2207 | (WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of |
| 562 | WND_SCROLLBAR_INDEX. | 2208 | WND_SCROLLBAR_INDEX. |
| 563 | * w32term.c (horizontal_scroll_bar_min_handle) | 2209 | * w32term.c (horizontal_scroll_bar_min_handle) |
| @@ -576,18 +2222,18 @@ | |||
| 576 | scrollbar cases. | 2222 | scrollbar cases. |
| 577 | (my_create_scrollbar): Replace with two new functions | 2223 | (my_create_scrollbar): Replace with two new functions |
| 578 | my_create_vscrollbar and my_create_hscrollbar. | 2224 | my_create_vscrollbar and my_create_hscrollbar. |
| 579 | (x_scroll_bar_create): New argument "horizontal". Update | 2225 | (x_scroll_bar_create): New argument "horizontal". |
| 580 | callers accordingly. | 2226 | Update callers accordingly. |
| 581 | (x_scroll_bar_remove, w32_condemn_scroll_bars) | 2227 | (x_scroll_bar_remove, w32_condemn_scroll_bars) |
| 582 | (w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal | 2228 | (w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal |
| 583 | scroll bar case. | 2229 | scroll bar case. |
| 584 | (w32_read_socket): Handle WM_HSCROLL cae. | 2230 | (w32_read_socket): Handle WM_HSCROLL cae. |
| 585 | (x_new_font): Don't recompute fringe widths. Use | 2231 | (x_new_font): Don't recompute fringe widths. |
| 586 | frame_inhibit_resize. Calculate new menu bar height iff we | 2232 | Use frame_inhibit_resize. Calculate new menu bar height iff we |
| 587 | build without toolkit. Always clear under internal border. | 2233 | build without toolkit. Always clear under internal border. |
| 588 | (x_set_window_size): Don't check frame size or recompute | 2234 | (x_set_window_size): Don't check frame size or recompute |
| 589 | fringes. Reset fullscreen status before applying sizes. Always | 2235 | fringes. Reset fullscreen status before applying sizes. |
| 590 | resize as requested by pixelwise argument. Don't call | 2236 | Always resize as requested by pixelwise argument. Don't call |
| 591 | do_pending_window_change. | 2237 | do_pending_window_change. |
| 592 | (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT. | 2238 | (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT. |
| 593 | (w32_initialize_display_info): Initialize dpyinfo's | 2239 | (w32_initialize_display_info): Initialize dpyinfo's |
| @@ -613,8 +2259,8 @@ | |||
| 613 | (WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR) | 2259 | (WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR) |
| 614 | (WINDOW_CONFIG_SCROLL_BAR_HEIGHT) | 2260 | (WINDOW_CONFIG_SCROLL_BAR_HEIGHT) |
| 615 | (WINDOW_CONFIG_SCROLL_BAR_LINES) | 2261 | (WINDOW_CONFIG_SCROLL_BAR_LINES) |
| 616 | (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT): New | 2262 | (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT): |
| 617 | macros. | 2263 | New macros. |
| 618 | (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS) | 2264 | (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS) |
| 619 | (WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros. | 2265 | (WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros. |
| 620 | (WINDOW_VERTICAL_SCROLL_BAR_TYPE) | 2266 | (WINDOW_VERTICAL_SCROLL_BAR_TYPE) |
| @@ -627,11 +2273,11 @@ | |||
| 627 | (Fwindow_old_point, sanitize_window_sizes): New functions. | 2273 | (Fwindow_old_point, sanitize_window_sizes): New functions. |
| 628 | (Qwindow_sanitize_window_sizes): New symbol. | 2274 | (Qwindow_sanitize_window_sizes): New symbol. |
| 629 | (window_body_height): Count in horizontal scroll bar. | 2275 | (window_body_height): Count in horizontal scroll bar. |
| 630 | (set_window_hscroll, Fscroll_left, Fscroll_right): Set | 2276 | (set_window_hscroll, Fscroll_left, Fscroll_right): |
| 631 | suspend_auto_hscroll slot. | 2277 | Set suspend_auto_hscroll slot. |
| 632 | (Fwindow_inside_edges): Count fringes pixelwise. | 2278 | (Fwindow_inside_edges): Count fringes pixelwise. |
| 633 | (coordinates_in_window, Fcoordinates_in_window_p): Consider | 2279 | (coordinates_in_window, Fcoordinates_in_window_p): |
| 634 | horizontal scroll bar. | 2280 | Consider horizontal scroll bar. |
| 635 | (check_frame_size, adjust_window_margins): Remove functions and | 2281 | (check_frame_size, adjust_window_margins): Remove functions and |
| 636 | corresponding calls. | 2282 | corresponding calls. |
| 637 | (set_window_buffer): Initialize old_pointm and horizontal scroll | 2283 | (set_window_buffer): Initialize old_pointm and horizontal scroll |
| @@ -647,8 +2293,8 @@ | |||
| 647 | (Fsplit_window_internal): Inherit horizontal scroll bar type and | 2293 | (Fsplit_window_internal): Inherit horizontal scroll bar type and |
| 648 | height. | 2294 | height. |
| 649 | (Fdelete_window_internal): Unchain old_pointm marker. | 2295 | (Fdelete_window_internal): Unchain old_pointm marker. |
| 650 | (window_scroll_pixel_based, Fscroll_other_window): Adjust | 2296 | (window_scroll_pixel_based, Fscroll_other_window): |
| 651 | old_pointm. | 2297 | Adjust old_pointm. |
| 652 | (Fwindow_text_width, Fwindow_text_height): New argument | 2298 | (Fwindow_text_width, Fwindow_text_height): New argument |
| 653 | "pixelwise". | 2299 | "pixelwise". |
| 654 | (struct saved_window): New fields, old_pointm, hscroll_whole, | 2300 | (struct saved_window): New fields, old_pointm, hscroll_whole, |
| @@ -703,10 +2349,10 @@ | |||
| 703 | (x_frame_parm_handlers): Add x_set_scroll_bar_height, | 2349 | (x_frame_parm_handlers): Add x_set_scroll_bar_height, |
| 704 | x_set_horizontal_scroll_bars, x_set_left_fringe, | 2350 | x_set_horizontal_scroll_bars, x_set_left_fringe, |
| 705 | x_set_right_fringe. | 2351 | x_set_right_fringe. |
| 706 | * xmenu.c (update_frame_menubar, free_frame_menubar): Use | 2352 | * xmenu.c (update_frame_menubar, free_frame_menubar): |
| 707 | adjust_frame_size. | 2353 | Use adjust_frame_size. |
| 708 | * xterm.h (struct x_display_info): Add | 2354 | * xterm.h (struct x_display_info): |
| 709 | horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar | 2355 | Add horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar |
| 710 | slots. | 2356 | slots. |
| 711 | (struct scroll_bar): Add horizontal slot. | 2357 | (struct scroll_bar): Add horizontal slot. |
| 712 | (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT) | 2358 | (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT) |
| @@ -729,15 +2375,15 @@ | |||
| 729 | (x_set_toolkit_horizontal_scroll_bar_thumb) | 2375 | (x_set_toolkit_horizontal_scroll_bar_thumb) |
| 730 | (XTset_horizontal_scroll_bar, x_net_wm_state) | 2376 | (XTset_horizontal_scroll_bar, x_net_wm_state) |
| 731 | (x_horizontal_scroll_bar_report_motion): New functions. | 2377 | (x_horizontal_scroll_bar_report_motion): New functions. |
| 732 | (xg_scroll_callback, x_scroll_bar_handle_click): Handle | 2378 | (xg_scroll_callback, x_scroll_bar_handle_click): |
| 733 | horizontal scroll bars. | 2379 | Handle horizontal scroll bars. |
| 734 | (SCROLL_BAR_HORIZONTAL_NAME): Define. | 2380 | (SCROLL_BAR_HORIZONTAL_NAME): Define. |
| 735 | (XTset_vertical_scroll_bar): Attempt to clear areas not covered | 2381 | (XTset_vertical_scroll_bar): Attempt to clear areas not covered |
| 736 | by scroll bar. | 2382 | by scroll bar. |
| 737 | (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite. Handle | 2383 | (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite. |
| 738 | horizontal scroll bars. | 2384 | Handle horizontal scroll bars. |
| 739 | (handle_one_xevent): Handle horizontal scroll bar events. Call | 2385 | (handle_one_xevent): Handle horizontal scroll bar events. |
| 740 | x_net_wm_state. | 2386 | Call x_net_wm_state. |
| 741 | (x_set_window_size_1, x_wm_set_size_hint): Don't call | 2387 | (x_set_window_size_1, x_wm_set_size_hint): Don't call |
| 742 | check_frame_size. | 2388 | check_frame_size. |
| 743 | (x_set_window_size): Don't call check_frame_size and | 2389 | (x_set_window_size): Don't call check_frame_size and |
| @@ -787,8 +2433,8 @@ | |||
| 787 | 2433 | ||
| 788 | 2014-07-25 Eli Zaretskii <eliz@gnu.org> | 2434 | 2014-07-25 Eli Zaretskii <eliz@gnu.org> |
| 789 | 2435 | ||
| 790 | * w32term.h (current_popup_menu, menubar_in_use): Move | 2436 | * w32term.h (current_popup_menu, menubar_in_use): |
| 791 | declarations from w32term.c. | 2437 | Move declarations from w32term.c. |
| 792 | 2438 | ||
| 793 | 2014-07-25 Martin Rudalics <rudalics@gmx.at> | 2439 | 2014-07-25 Martin Rudalics <rudalics@gmx.at> |
| 794 | 2440 | ||
| @@ -842,8 +2488,8 @@ | |||
| 842 | * xterm.c (handle_one_xevent): | 2488 | * xterm.c (handle_one_xevent): |
| 843 | * gtkutil.c (xg_event_is_for_menubar): | 2489 | * gtkutil.c (xg_event_is_for_menubar): |
| 844 | * xfns.c (x_window) [USE_X_TOOLKIT]: | 2490 | * xfns.c (x_window) [USE_X_TOOLKIT]: |
| 845 | * xmenu.c (set_frame_menubar, free_frame_menubar): Prefer | 2491 | * xmenu.c (set_frame_menubar, free_frame_menubar): |
| 846 | to use FRAME_MENUBAR_HEIGHT. | 2492 | Prefer to use FRAME_MENUBAR_HEIGHT. |
| 847 | 2493 | ||
| 848 | 2014-07-21 Dmitry Antipov <dmantipov@yandex.ru> | 2494 | 2014-07-21 Dmitry Antipov <dmantipov@yandex.ru> |
| 849 | 2495 | ||
| @@ -864,12 +2510,12 @@ | |||
| 864 | 2510 | ||
| 865 | 2014-07-21 Eli Zaretskii <eliz@gnu.org> | 2511 | 2014-07-21 Eli Zaretskii <eliz@gnu.org> |
| 866 | 2512 | ||
| 867 | * w32select.c (setup_windows_coding_system): Apply | 2513 | * w32select.c (setup_windows_coding_system): |
| 868 | CODING_ANNOTATION_MASK to the common_flags member of struct | 2514 | Apply CODING_ANNOTATION_MASK to the common_flags member of struct |
| 869 | coding_system. Reported by martin rudalics <rudalics@gmx.at>. | 2515 | coding_system. Reported by martin rudalics <rudalics@gmx.at>. |
| 870 | 2516 | ||
| 871 | * w16select.c (Fw16_get_clipboard_data): Apply | 2517 | * w16select.c (Fw16_get_clipboard_data): |
| 872 | CODING_ANNOTATION_MASK to the common_flags member of struct | 2518 | Apply CODING_ANNOTATION_MASK to the common_flags member of struct |
| 873 | coding_system. | 2519 | coding_system. |
| 874 | 2520 | ||
| 875 | * xdisp.c (init_iterator): Initialize it->stop_charpos to the | 2521 | * xdisp.c (init_iterator): Initialize it->stop_charpos to the |
| @@ -877,8 +2523,8 @@ | |||
| 877 | (handle_invisible_prop): Record in it->stop_charpos the position | 2523 | (handle_invisible_prop): Record in it->stop_charpos the position |
| 878 | where the invisible text ends. (Bug#18035) | 2524 | where the invisible text ends. (Bug#18035) |
| 879 | (hscroll_window_tree): Don't try hscrolling windows whose cursor | 2525 | (hscroll_window_tree): Don't try hscrolling windows whose cursor |
| 880 | row has zero buffer position as their start position. Reported by | 2526 | row has zero buffer position as their start position. |
| 881 | martin rudalics <rudalics@gmx.at>. | 2527 | Reported by martin rudalics <rudalics@gmx.at>. |
| 882 | 2528 | ||
| 883 | * xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent | 2529 | * xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent |
| 884 | infinite looping in redisplay when display lines don't have enough | 2530 | infinite looping in redisplay when display lines don't have enough |
| @@ -1318,8 +2964,8 @@ | |||
| 1318 | are in sync with what the window wants. | 2964 | are in sync with what the window wants. |
| 1319 | (Bug#17892) | 2965 | (Bug#17892) |
| 1320 | 2966 | ||
| 1321 | * xdisp.c (display_line, display_mode_line): Call | 2967 | * xdisp.c (display_line, display_mode_line): |
| 1322 | prepare_desired_row with additional arguments, as appropriate. | 2968 | Call prepare_desired_row with additional arguments, as appropriate. |
| 1323 | 2969 | ||
| 1324 | * dispextern.h (prepare_desired_row): Adjust prototype. | 2970 | * dispextern.h (prepare_desired_row): Adjust prototype. |
| 1325 | 2971 | ||
| @@ -1408,7 +3054,7 @@ | |||
| 1408 | 3054 | ||
| 1409 | 2014-06-28 K. Handa <handa@gnu.org> | 3055 | 2014-06-28 K. Handa <handa@gnu.org> |
| 1410 | 3056 | ||
| 1411 | * coding.c (MAX_CHARBUF_SIZE): Renamed from CHARBUF_SIZE. | 3057 | * coding.c (MAX_CHARBUF_SIZE): Rename from CHARBUF_SIZE. |
| 1412 | (MIN_CHARBUF_SIZE): New macro. | 3058 | (MIN_CHARBUF_SIZE): New macro. |
| 1413 | (ALLOC_CONVERSION_WORK_AREA): New arg SIZE. Callers changed. | 3059 | (ALLOC_CONVERSION_WORK_AREA): New arg SIZE. Callers changed. |
| 1414 | 3060 | ||
| @@ -1674,7 +3320,7 @@ | |||
| 1674 | 3320 | ||
| 1675 | * dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member. | 3321 | * dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member. |
| 1676 | * font.c (font_done_for_face): | 3322 | * font.c (font_done_for_face): |
| 1677 | * xface.c (realize_non_ascii_face): Adjust user. | 3323 | * xfaces.c (realize_non_ascii_face): Adjust user. |
| 1678 | * font.h (struct font_driver): Convert 'prepare_face' to return | 3324 | * font.h (struct font_driver): Convert 'prepare_face' to return |
| 1679 | void because its return value is never used anyway. | 3325 | void because its return value is never used anyway. |
| 1680 | * xfont.c (xfont_prepare_face): Return void. | 3326 | * xfont.c (xfont_prepare_face): Return void. |
| @@ -2167,7 +3813,7 @@ | |||
| 2167 | 3813 | ||
| 2168 | Use mmap(2) emulation for allocating buffer text on MS-Windows. | 3814 | Use mmap(2) emulation for allocating buffer text on MS-Windows. |
| 2169 | * Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from | 3815 | * Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from |
| 2170 | configure. | 3816 | configure, not from HEAPSIZE. |
| 2171 | (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used. | 3817 | (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used. |
| 2172 | 3818 | ||
| 2173 | * lisp.h (NONPOINTER_BITS): Modify the condition to define to zero | 3819 | * lisp.h (NONPOINTER_BITS): Modify the condition to define to zero |
| @@ -3211,8 +4857,7 @@ | |||
| 3211 | * doc.c (store_function_docstring): Warn when we don't know where to | 4857 | * doc.c (store_function_docstring): Warn when we don't know where to |
| 3212 | put a docstring. | 4858 | put a docstring. |
| 3213 | (Fsubstitute_command_keys): Don't advertise the fact that | 4859 | (Fsubstitute_command_keys): Don't advertise the fact that |
| 3214 | text-properties are dropped, since we think it's a bug that we'll fix | 4860 | text-properties are dropped, since we think it's a bug that we'll fix. |
| 3215 | in 24.5. | ||
| 3216 | 4861 | ||
| 3217 | * frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date. | 4862 | * frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date. |
| 3218 | * xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame. | 4863 | * xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame. |
| @@ -8443,7 +10088,7 @@ | |||
| 8443 | * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically | 10088 | * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically |
| 8444 | scoped code (bug#11258). | 10089 | scoped code (bug#11258). |
| 8445 | 10090 | ||
| 8446 | 2013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change) | 10091 | 2013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change) |
| 8447 | 10092 | ||
| 8448 | * nsterm.m (last_window): New variable. | 10093 | * nsterm.m (last_window): New variable. |
| 8449 | (EV_TRAILER2): New macro. | 10094 | (EV_TRAILER2): New macro. |
| @@ -8851,7 +10496,7 @@ | |||
| 8851 | (imagemagick_get_animation_cache): Fix a double-free error. | 10496 | (imagemagick_get_animation_cache): Fix a double-free error. |
| 8852 | (imagemagick_load_image): Remove the ping_wand code, which only | 10497 | (imagemagick_load_image): Remove the ping_wand code, which only |
| 8853 | apparently saved time on invalid animated images, and slowed down | 10498 | apparently saved time on invalid animated images, and slowed down |
| 8854 | everything else. Optimise for the common case. | 10499 | everything else. Optimize for the common case. |
| 8855 | 10500 | ||
| 8856 | 2013-08-16 Xue Fuqiao <xfq.free@gmail.com> | 10501 | 2013-08-16 Xue Fuqiao <xfq.free@gmail.com> |
| 8857 | 10502 | ||