aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorEli Zaretskii2014-10-14 21:10:37 +0300
committerEli Zaretskii2014-10-14 21:10:37 +0300
commite3060a0c4d2f418ac786775109d71e5843ccf42e (patch)
tree347b37fc39d0db9cd23b3e9f79ee81b4bbc40f08 /src/ChangeLog
parent1a3eca0656bdb764200e10a4f264138e94b1f3ce (diff)
parent980d78b3587560c13a46aef352ed8d5ed744acf6 (diff)
downloademacs-e3060a0c4d2f418ac786775109d71e5843ccf42e.tar.gz
emacs-e3060a0c4d2f418ac786775109d71e5843ccf42e.zip
Merge from trunk and resolve conflicts.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog1787
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 @@
12014-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
342014-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
392014-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
442014-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
45
46 * frame.c (Fmouse_pixel_position): Call Vmouse_position_function
47 (bug#18638).
48
492014-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
562014-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
1042014-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
1422014-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
1512014-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
1622014-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
1742014-10-07 Glenn Morris <rgm@gnu.org>
175
176 * Makefile.in ($(srcdir)/macuvs.h)
177 ($(lispsource)/international/charprop.el): Add explicit FORCE.
178
1792014-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
1852014-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
1902014-10-06 Stefan Monnier <monnier@iro.umontreal.ca>
191
192 * lisp.mk (lisp): Remove w32-common-fns.elc.
193
1942014-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
2012014-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
2222014-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
2272014-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
2332014-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
2402014-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
2452014-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
2592014-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
2702014-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
2752014-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
2812014-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
2892014-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
2962014-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
297
298 * xselect.c (selection-converter-alist): Fix docstring.
299
3002014-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
3062014-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
3112014-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
3292014-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
3432014-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
3562014-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
3692014-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
4192014-09-29 Eli Zaretskii <eliz@gnu.org>
420
421 * msdos.c (internal_terminal_init): Bump version to 25.
422
4232014-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
4482014-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
4532014-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
4612014-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
4682014-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
4742014-09-26 Ken Brown <kbrown@cornell.edu>
475
476 * w32term.h (ALIGN_STACK): Fix the cpp condition.
477
4782014-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
5002014-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
5112014-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
5612014-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
5832014-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
5962014-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
6242014-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
6352014-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
6442014-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
6612014-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
6752014-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
6812014-09-22 David Caldwell <david@porkrind.org> (tiny change)
682
683 * unexmacosx.c (dump_it): Improve error message.
684
6852014-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
6902014-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
6982014-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
7122014-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
7292014-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
7432014-09-22 Eli Zaretskii <eliz@gnu.org>
744
745 * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of pipes.
746
7472014-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
7532014-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
7622014-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
7742014-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
7912014-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
7992014-09-17 Samuel Bronson <naesten@gmail.com>
800
801 * unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927).
802
8032014-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
8112014-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
8172014-09-16 Daniel Colascione <dancol@dancol.org>
818
819 * fns.c (sxhash): For symbols, use address as hash code.
820
8212014-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
8442014-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
8642014-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
8982014-09-15 Daniel Colascione <dancol@dancol.org>
899
900 * fns.c (Fsort): Tweak sort docstring.
901
9022014-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
9212014-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
9262014-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
9322014-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
9392014-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
9442014-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
9522014-09-12 Detlev Zundel <dzu@member.fsf.org>
953
954 * buffer.c (syms_of_buffer): DEFSYM Qchoice (Bug#18337).
955
9562014-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
9762014-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
9912014-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
9982014-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
10082014-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
10132014-09-10 Eli Zaretskii <eliz@gnu.org>
1014
1015 * w32.c (sys_write): Use SAFE_NALLOCA for the NL -> CRLF
1016 translation buffer.
1017
10182014-09-10 Paul Eggert <eggert@cs.ucla.edu>
1019
1020 * xterm.c (handle_one_xevent): Add braces to pacify gcc -Wall.
1021
10222014-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
10272014-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
10642014-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
10922014-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
11022014-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
11232014-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
11282014-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
11352014-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
12392014-09-06 Eli Zaretskii <eliz@gnu.org>
1240
1241 * Makefile.in (EMACS_HEAPSIZE): Remove, no longer used. (Bug#18416)
1242
12432014-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
12502014-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
12572014-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
12672014-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
12742014-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
12792014-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
12852014-09-03 Ken Brown <kbrown@cornell.edu>
1286
1287 * conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define. (Bug#18366)
1288
12892014-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
12972014-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
13142014-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
13272014-09-01 Eli Zaretskii <eliz@gnu.org>
1328
1329 * w32proc.c (w32_compare_strings): Support "C" and "POSIX"
1330 locales.
1331
13322014-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
13542014-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
13632014-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
13692014-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
13892014-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
14012014-08-29 Michael Albinus <michael.albinus@gmx.de>
1402
1403 * sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
1404
14052014-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
14122014-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
14262014-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
14372014-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
14532014-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
14972014-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
15112014-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
15282014-08-28 Paul Eggert <eggert@cs.ucla.edu>
1529
1530 * sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults
1531 (Bug#18051).
1532
15332014-08-27 Eli Zaretskii <eliz@gnu.org>
1534
1535 * syntax.c (scan_lists): Don't examine positions before BEGV.
1536 (Bug#18339)
1537
15382014-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
15502014-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
15562014-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
15692014-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
15882014-08-25 Ken Brown <kbrown@cornell.edu>
1589
1590 * emacs.c (main): Remove use of obsolete macro
1591 G_SLICE_ALWAYS_MALLOC.
1592
15932014-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
16092014-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
16212014-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
16332014-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
16392014-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
12014-08-20 Eli Zaretskii <eliz@gnu.org> 16462014-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 @@
1292014-08-09 Reuben Thomas <rrt@sc3d.org> 17742014-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
1362014-08-09 Jan Djärv <jan.h.d@swipnet.se> 17822014-08-09 Jan Djärv <jan.h.d@swipnet.se>
137 1783
@@ -168,14 +1814,14 @@
168 1814
1692014-08-04 Martin Rudalics <rudalics@gmx.at> 18152014-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
7882014-07-25 Eli Zaretskii <eliz@gnu.org> 24342014-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
7932014-07-25 Martin Rudalics <rudalics@gmx.at> 24392014-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
8482014-07-21 Dmitry Antipov <dmantipov@yandex.ru> 24942014-07-21 Dmitry Antipov <dmantipov@yandex.ru>
849 2495
@@ -864,12 +2510,12 @@
864 2510
8652014-07-21 Eli Zaretskii <eliz@gnu.org> 25112014-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
14092014-06-28 K. Handa <handa@gnu.org> 30552014-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
84462013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change) 100912013-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
88562013-08-16 Xue Fuqiao <xfq.free@gmail.com> 105012013-08-16 Xue Fuqiao <xfq.free@gmail.com>
8857 10502