Update admin/unidata data files to latest versions
[bpt/emacs.git] / src / ChangeLog
CommitLineData
97a1ef48
EZ
12014-06-21 Eli Zaretskii <eliz@gnu.org>
2
3 * indent.c (Fvertical_motion): Doc fix.
53b15fa6
EZ
4 Move to the goal column, if any, with a single call to
5 move_it_in_display_line, not in two calls. Doing this with two
6 calls causes move_it_in_display_line apply the line-prefix
7 handling twice instead of just once. (Bug#17823)
97a1ef48 8
d895e63e
PE
92014-06-21 Paul Eggert <eggert@cs.ucla.edu>
10
11 Port to OS X ACLs (Bug#17810).
12 * fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
13 ACL_TYPE_ACCESS) doesn't work.
14
c400516a 152014-06-21 Stefan Monnier <monnier@iro.umontreal.ca>
1503d26a
SM
16
17 * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
18 before checking key-translation-map (bug#17659).
19
c400516a 202014-06-21 Dmitry Antipov <dmantipov@yandex.ru>
52a6194f
DA
21
22 * font.c (font_make_object): Avoid dangling pointer which may
23 crash GC (Bug#17771).
24
c400516a 252014-06-21 Eli Zaretskii <eliz@gnu.org>
b86b15b2
EZ
26
27 * image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
28 prototype of DGifCloseFile as appropriate for older and newer
29 versions of giflib.
30 (gif_close): New function, encapsulates the differences in the
31 calling sequence of DGifCloseFile before v5.1.0 and after it.
32 (gif_load): Call gif_close instead of DGifCloseFile. Divulge the
33 error string where appropriate. (Bug#17790)
34
4f9dc9b6
EZ
35 * xdisp.c (Fmove_point_visually): Instead of testing for keyboard
36 macro execution, make sure point didn't move since last complete
37 redisplay, as the condition for using the glyph matrix
38 information. (Bug#17777)
39
eb091237
DA
402014-06-19 Dmitry Antipov <dmantipov@yandex.ru>
41
42 Minor cleanup of fonset code.
43 * fontset.c (FONTSET_ID, set_fontset_id, FONTSET_NAME)
44 (set_fontset_name, FONTSET_ASCII, set_fontset_ascii)
45 (FONTSET_BASE, set_fontset_base, FONTSET_FRAME)
46 (set_fontset_frame, FONTSET_NOFONT_FACE, set_fontset_nofont_face)
47 (FONTSET_DEFAULT, set_fontset_default, FONTSET_FALLBACK)
48 (set_fontset_fallback): Reorder extra slots and avoid unused slots.
49 (free_realized_fontset): Remove because a no-op since 2008.
50 (free_face_fontset): Adjust user.
51 (syms_of_fontset): Shrink fontset by one extra slot.
52
73bfe891
PE
532014-06-17 Paul Eggert <eggert@cs.ucla.edu>
54
55 Omit redundant extern decls.
56 Most of this patch is from Dmitry Antipov, in:
57 http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html
58 * commands.h (update_mode_lines):
59 * frame.h (Qbackground_color, Qforeground_color)
60 (x_set_menu_bar_lines):
61 * ftfont.c (ftfont_font_format):
62 * intervals.h (Qkeymap, Qfont):
63 * keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function):
64 * lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump)
65 (Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp)
66 (Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p)
67 (Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object)
68 (Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite)
69 (Fidentity, extract_float, init_display, syms_of_display, Qdisplay):
70 (Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref)
71 (char_table_set, char_table_translate, Qautoload, Qbottom, Qtop)
72 (Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio)
73 (Qtool_bar, Qheader_line):
74 * macros.c (Fexecute_kbd_macro):
75 * xdisp.c (Ftool_bar_height, Ftool_bar_height):
76 * xterm.c (x_delete_terminal, XSetIMValues):
77 * xterm.h (x_set_window_size, x_query_color, x_get_focus_frame)
78 (x_implicitly_set_name, popup_activated)
79 (widget_store_internal_border):
80 Remove redundant decls.
81 * frame.c [USE_X_TOOLKIT]: Include widget.h.
82 * keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit):
83 Remove _Noreturn, as make-docfile now does that for us.
84 * lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile.
85 (Qregion_extract_function): New decl.
86 * window.c, xfns.c: Include menu.h.
87
319e8ddc
SM
882014-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
89
90 * callint.c (Fcall_interactively): Fix up last change (bug#17701).
91
9dc774d4
DA
922014-06-17 Dmitry Antipov <dmantipov@yandex.ru>
93
94 * fileio.c (Fread_file_name): Do not pass redundant args and ...
95 * callint.c (read_file_name): ... convert to static here.
96 * lisp.h (Fread_file_name): Do not EXFUN it.
3e1fc7fb 97 (STRING_COPYIN): Remove; unused.
9dc774d4
DA
98 * composite.c (CHAR_COMPOSABLE_P): Replace unsafe macro with ...
99 (char_composable_p): ... static function. All users changed.
67343d1d
DA
100 * eval.c (toplevel): Remove redundant #include directives.
101 * xterm.c (x_initialize): Add static to match prototype.
3e1fc7fb
DA
102 * ccl.c (Fccl_execute_on_string):
103 * font.c (fon_intern_prop): Use make_specified_string.
9dc774d4 104
64e10489
PE
1052014-06-16 Paul Eggert <eggert@cs.ucla.edu>
106
107 * Makefile.in (ns-app): Fix typo that broke build on OS X.
108 Reported by David Caldwell in:
109 http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00251.html
110
e9558d44
DA
1112014-06-16 Dmitry Antipov <dmantipov@yandex.ru>
112
113 Do not ask for XRender extension each time XFT font is opened.
114 * xftfont.c (xftfont_open): Move call to XRenderQueryExtension ...
115 * xterm.c (x_term_init) [HAVE_XFT]: ... to here. Adjust comment.
116
0d9f8137
GM
1172014-06-15 Glenn Morris <rgm@gnu.org>
118
119 * Makefile.in: Use `make -C' rather than `cd && make' throughout.
120
90de50e2 1212014-06-15 Eli Zaretskii <eliz@gnu.org>
59579a97
EZ
122
123 * xdisp.c (Fmove_point_visually): Don't use the glyph matrix
124 information if we are in the middle of executing a keyboard macro,
125 since redisplay doesn't update the screen until the macro is
126 finished. (Bug#17777)
127
4346235f
EZ
128 * alloc.c (cleanup_vector): Don't dereference a font driver
129 pointer if it is NULL. (Bug#17771)
130
f9d80c51
GM
1312014-06-13 Glenn Morris <rgm@gnu.org>
132
133 * Makefile.in ($(leimdir)/leim-list.el, $(srcdir)/macuvs.h)
134 ($(lispsource)/international/charprop.el)
135 ($(libsrc)/make-docfile$(EXEEXT), $(lwlibdir)/liblw.a)
136 ($(oldXMenudir)/libXMenu11.a, ns-app, .el.elc)
137 ($(lispsource)/loaddefs.el, bootstrap-emacs$(EXEEXT)):
138 GNU make automatically passes command-line arguments to sub-makes.
139
05d28210
PE
1402014-06-13 Paul Eggert <eggert@cs.ucla.edu>
141
142 Avoid hangs in accept-process-output (Bug#17647).
143 * lisp.h, process.c (wait_reading_process_input):
144 Return int, not bool. All uses changed.
145 * process.c (SELECT_CANT_DO_WRITE_MASK):
146 Remove macro, replacing with ...
147 (SELECT_CAN_DO_WRITE_MASK): ... new constant, with inverted sense.
148 All uses changed.
149 (status_notify): New arg WAIT_PROC. Return int, not void.
150 All uses changed.
151
8e3a5269
EZ
1522014-06-13 Eli Zaretskii <eliz@gnu.org>
153
154 * menu.c (Fx_popup_menu): Don't call the frame's menu_show_hook if
155 the frame is the initial frame, because the hook is not set up
156 then, and Emacs crashes.
157 Reported by Fabrice Popineau <fabrice.popineau@gmail.com>.
158
2baa734e
SM
1592014-06-12 Stefan Monnier <monnier@iro.umontreal.ca>
160
161 * keymap.c (silly_event_symbol_error): Don't recommend the use
162 of strings.
163
df907af0
EZ
1642014-06-11 Eli Zaretskii <eliz@gnu.org>
165
166 * xdisp.c (set_cursor_from_row): Fix an off-by-one error when
167 matching overlay strings with 'cursor' property against buffer
168 positions traversed in the glyph row. (Bug#17744)
169
b765f1fe
JD
1702014-06-11 Jan Djärv <jan.h.d@swipnet.se>
171
172 * nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst
173 on Cocoa.
174
175 * nsterm.m (run): Always compile for Cocoa. Use runtime check to
176 determine 10.9 (Bug#17751).
177
2baa734e 178 * macfont.m (macfont_draw): Positions were not freed.
b765f1fe 179
2e120be4
DA
1802014-06-10 Dmitry Antipov <dmantipov@yandex.ru>
181
182 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Remove as a duplicate of ...
183 * xfaces.c (prepare_face_for_display) [HAVE_WINDOW_SYSTEM]: ... this
184 function. Also adjust comment.
185 * fringe.c, w32term.c, xdisp.c, xterm.c: All users changed.
186
24ce6a02
DA
187 * dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member.
188 * font.c (font_done_for_face):
189 * xface.c (realize_non_ascii_face): Adjust user.
190 * font.h (struct font_driver): Convert 'prepare_face' to return
191 void because its return value is never used anyway.
192 * xfont.c (xfont_prepare_face): Return void.
193 * xftfont.c (xftfont_prepare_face): Likewise. Use xmalloc.
194 (xftfont_done_face): Use xfree.
195
bfd55935
DA
196 * dispextern.h (last_tool_bar_item): Remove declaration.
197 * frame.h (struct frame): New member last_tool_bar_item.
198 * frame.c (make_frame): Initialize it.
199 * xdisp.c (toplevel): Remove last_tool_bar_item.
200 (handle_tool_bar_click, note_tool_bar_highlight):
201 * w32term.c (w32_read_socket, w32_initialize):
202 * xterm.c (handle_one_xevent, x_initialize): Adjust users.
203
bd009aef
DA
204 * frame.h (window_system_available) [!HAVE_WINDOW_SYSTEM]: Always false.
205 * frame.c (window_system_available) [HAVE_WINDOW_SYSTEM]: Now here.
206
feb6546c
PE
2072014-06-09 Paul Eggert <eggert@cs.ucla.edu>
208
209 Say (accept-process-output P)'s result pertains to P if P is non-nil.
210 * process.c (Faccept_process_output)
211 (wait_reading_process_output): Mention that if PROCESS is non-nil,
212 the return value is about PROCESS, not about other processes.
213
2c70e6b0
DA
2142014-06-09 Dmitry Antipov <dmantipov@yandex.ru>
215
216 Further adjustments to mark_object and friends.
217 Now the mark_object's stack is just 32 bytes on a 64-bit
218 system, which means extra 20% off the stack usage.
219 * alloc.c (mark_save_value): As before, refactored out from ...
220 (mark_object): ... adjusted user. Also add comment.
221
f4454d52
PE
2222014-06-09 Paul Eggert <eggert@cs.ucla.edu>
223
224 Fix core dump after a dropped X connection (Bug#17704).
225 * sysdep.c (stuff_char): Don't abort merely because the selected frame
226 is dead, as we may be shutting down.
227
7b385b02
GM
2282014-06-08 Glenn Morris <rgm@gnu.org>
229
6cbdfa01
GM
230 * fileio.c (write-region-inhibit-fsync): Doc tweak.
231
7b385b02
GM
232 * data.c (Flss, Fgtr, Fleq, Fgeq): Doc tweaks.
233
ff2d0e83
PE
2342014-06-08 Paul Eggert <eggert@cs.ucla.edu>
235
236 If a C name must be extern on some platforms, make it extern on all.
237 * dispextern.h (set_vertical_scroll_bar, erase_phys_cursor)
238 (load_color):
239 * font.h (ftxfont_driver) [HAVE_XFT]:
240 * keyboard.h (menu_items_inuse, ignore_mouse_drag_p, make_ctrl_char):
241 * lisp.h (get_frame_param):
242 * menu.h (tty_menu_show):
243 * process.h (conv_sockaddr_to_lisp, catch_child_signal):
244 * termhooks.h (encode_terminal_code):
245 * xterm.h (x_menu_wait_for_event):
246 Always declare.
247 * frame.c (get_frame_param):
248 * fringe.c (max_used_fringe_bitmap):
249 * ftxfont.c (ftxfont_driver):
250 * keyboard.c (ignore_mouse_drag_p, make_ctrl_char):
251 * menu.c (menu_items_inuse):
252 * process.c (conv_sockaddr_to_lisp, catch_child_signal):
253 * term.c (encode_terminal_code, tty_menu_show):
254 * xdisp.c (set_vertical_scroll_bar, erase_phys_cursor):
255 * xfaces.c (load_color):
256 * xmenu.c (x_menu_wait_for_event):
257 Now always extern.
258
83f14500
DA
2592014-06-08 Dmitry Antipov <dmantipov@yandex.ru>
260
261 Change object marking routines to minimize stack usage.
262 This change moves a few cold paths from mark_object to NO_INLINE
263 functions and adjusts symbol marking loop. According to GCC 4.8.2
264 -Wstack-usage, this reduces mark_object's stack usage from 80 to
265 48 bytes on a 64-bit system. For a long byte-force-recompile runs,
266 stack usage at the mark phase is reduced up to 28%. Surprisingly,
267 it also gains up to 3% in speed (with default '-O2 -g3' flags).
268 * alloc.c (mark_compiled, mark_localized_symbol): New functions,
269 refactored out from ...
270 (mark_object): ... adjusted user. Also mark symbols in a tight
271 inner loop.
272 (mark_face_cache): Add NO_INLINE.
273
36cf8493 2742014-06-08 Eli Zaretskii <eliz@gnu.org>
d13adf6d 275
6032a3e8
EZ
276 * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
277 contains garbage on WINDOWSNT (which could potentially infloop at
278 exit).
279
d13adf6d 280 Minimize cursor motion during TTY menu updates.
36cf8493
GM
281 * term.c (tty_menu_display): Don't position cursor here.
282 Instead, pass the cursor coordinates to update_frame_with_menu.
d13adf6d
EZ
283 (tty_menu_activate): Send the hide cursor command only once in an
284 iteration through the outer 'while' loop.
285
286 * dispnew.c (update_frame_1): Accept an additional argument
287 SET_CURSOR_P, and position the cursor at the end of the frame
288 update only if that argument is non-zero. All callers changed to
289 provide the additional argument as non-zero, except for
290 update_frame_with_menu.
291 (update_frame_with_menu): Accept 2 additional arguments ROW and
292 COL; if they are non-negative, instruct update_frame_1 not to
36cf8493 293 position the cursor, and instead position it according to ROW and COL.
d13adf6d
EZ
294
295 * dispextern.h (update_frame_with_menu): Update prototype.
296
36cf8493 2972014-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
c4e6b585
SM
298
299 * callproc.c (call_process): Don't check read-only if we don't insert
300 anything (bug#17666).
301
36cf8493 3022014-06-08 Eli Zaretskii <eliz@gnu.org>
834dee20
EZ
303
304 * dispnew.c (update_frame_with_menu): Set display_completed.
305
3f2f9b6a
EZ
3062014-06-07 Eli Zaretskii <eliz@gnu.org>
307
308 * term.c (tty_menu_show) [WINDOWSNT]: Make tty_menu_show extern
309 only for WINDOWSNT.
310 * menu.h (tty_menu_show) [WINDOWSNT]: Declare extern only for WINDOWSNT.
311
5dda54d6
PE
3122014-06-06 Paul Eggert <eggert@cs.ucla.edu>
313
314 * term.c (tty_menu_show) [!HAVE_NTGUI]: Now static.
315 * menu.h (tty_menu_show) [!HAVE_NTGUI]: Omit extern decl.
316
79b0d216
SM
3172014-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
318
3da983f8
SM
319 * window.c (Frecenter): Signal an error if window-buffer is not
320 current-buffer.
321
631de55b
SM
322 * keyboard.c (make_lispy_position): Don't include a buffer position in
323 mode/header-line mouse events.
324
79b0d216
SM
325 * keyboard.c (read_char): Handle (t . <event>) in the second use of
326 Vunread_command_events (bug#17650).
327
b77205c0
DA
3282014-06-06 Dmitry Antipov <dmantipov@yandex.ru>
329
79b0d216
SM
330 * xterm.c (x_setup_pointer_blanking):
331 Conditionally probe Xfixes until this stuff is stabilized (Bug#17609).
b77205c0 332
ea633fff
DA
3332014-06-05 Dmitry Antipov <dmantipov@yandex.ru>
334
335 * keyboard.c, process.c: Do not define POLL_FOR_INPUT here
336 because it will be defined in generated config.h if needed.
337
680a6ad9
DA
3382014-06-04 Dmitry Antipov <dmantipov@yandex.ru>
339
340 Use terminal-specific hooks to display popup dialogs.
341 * termhooks.h (struct terminal): New field popup_dialog_hook.
342 * menu.c (emulate_dialog_with_menu): New function, refactored from ...
343 (Fx_popup_dialog): ... adjusted user. Also remove old #if 0
344 code and use popup_dialog_hook.
345 * nsmenu.m (ns_popup_dialog): Make hook-compatible.
346 * nsterm.h (ns_popup_dialog): Adjust prototype.
347 * nsterm.m (ns_create_terminal):
348 * w32term.c (w32_create_terminal):
79b0d216
SM
349 * xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]:
350 Setup popup_dialog_hook.
680a6ad9 351
5dff48b0
EZ
3522014-06-04 Eli Zaretskii <eliz@gnu.org>
353
a7f999dc 354 * w32heap.c (report_temacs_memory_usage): Improve the report by
79b0d216 355 reporting the large blocks that are actually occupied at dump time.
a7f999dc 356
5dff48b0
EZ
357 * w32console.c (initialize_w32_display): Set the console
358 menu_show_hook, otherwise TTY menus are broken on w32.
359
cfd794af
DA
3602014-06-04 Dmitry Antipov <dmantipov@yandex.ru>
361
362 Use terminal-specific hooks to display menus.
363 * termhooks.h (struct terminal): New field menu_show_hook.
364 * menu.h (<anonymous enum>): Bit flags for menu hooks.
365 (x_menu_show, w32_menu_show, ns_menu_show, tty_menu_show):
366 Adjust prototypes.
367 * menu.c (Fx_popup_menu): Use bit flags and menu_show_hook.
368 * nsmenu.m (ns_menu_show):
369 * w32menu.c (w32_menu_show):
370 * xmenu.c (x_menu_show):
371 * term.c (tty_menu_show): Adjust to use bit flags.
372 (set_tty_hooks): Set menu_show_hook.
373 * xterm.c (x_create_terminal):
374 * nsterm.m (ns_create_terminal):
375 * msdos.c (initialize_msdos_display):
376 * w32term.c (w32_create_terminal): Likewise.
377
6348c9d7
JB
3782014-06-03 Juanma Barranquero <lekktu@gmail.com>
379
380 * w32heap.c (DUMPED_HEAP_SIZE) [!_WIN64]: Reduce to 11 MB.
381
71b2605c
EZ
3822014-06-03 Eli Zaretskii <eliz@gnu.org>
383
384 * sysselect.h (fd_CLR, fd_ISSET, fd_SET, FD_CLR, FD_ISSET)
385 (FD_SET): Don't define on WINDOWSNT.
386
181f08a7
PE
3872014-06-03 Paul Eggert <eggert@cs.ucla.edu>
388
86caa902
PE
389 * emacs.c: Include "sysselect.h", to define its inline functions.
390 Problem reported by Glenn Morris in:
391 http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00077.html
392
181f08a7
PE
393 Do not require libXt-devel when building with gtk.
394 * gtkutil.h, menu.h: Include lwlib-widget.h, not lwlib-h, to avoid
395 dependency on libXt-devel.
396 * menu.h [HAVE_NTGUI]: Include lwlib-widget.h in this case too.
397 (enum button_type, widget_value) [HAVE_NTGUI]: Remove, as
398 lwlib-widget.h now does this.
399 * nsmenu.m (ns_menu_show): "enabled" -> "enable" to fix typo.
400
5897da1d
PE
4012014-06-03 Paul Eggert <eggert@penguin.cs.ucla.edu>
402
403 If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.
404 * process.c (add_read_fd, delete_read_fd, add_write_fd)
405 (delete_write_fd, wait_reading_process_output):
406 Remove now-redundant easserts.
407 * sysselect.h (SYSSELECT_H): New macro, to avoid double-inclusion woes.
408 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
409 (fd_CLR, fd_ISSET, fd_SET): New inline functions.
410 (FD_CLR, FD_ISSET, FD_SET): Redefine in terms of these functions.
411
0031c953
EZ
4122014-06-03 Eli Zaretskii <eliz@gnu.org>
413
89b36202 414 * w32heap.c (DUMPED_HEAP_SIZE): Move from w32heap.h. Don't use
79b0d216 415 HEAPSIZE; instead, define separate values for the 32- and 64-bit builds.
221e0a20
EZ
416 (calloc): Don't undef, it is never defined.
417 (HEAP_ENTRY_SHIFT): Remove unused macro.
89b36202
EZ
418
419 * Makefile.in (C_HEAP_SWITCH): Remove.
420 (ALL_CFLAGS): Don't use $(C_HEAP_SWITCH).
421
0031c953
EZ
422 Fix MS-Windows build broken by menu changes on 2014-06-02.
423 * w32menu.c (w32_menu_show): Fix a typo that broke compilation.
424
425 * menu.h (enum button_type, struct _widget_value) [HAVE_NTGUI]:
426 Define instead of including ../lwlib/lwlib.h, which causes
427 compilation errors due to missing X11 headers.
428
827a3c3d
PE
4292014-06-03 Paul Eggert <eggert@cs.ucla.edu>
430
79b0d216
SM
431 * process.c (wait_reading_process_output): Omit incorrect test of
432 p->infd against zero. Add easserts for infd having a plausible value.
827a3c3d 433
5668fb88
DA
4342014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
435
436 Adjust to match recent lwlib changes.
79b0d216 437 * menu.h (xmalloc_widget_value): Replace by ...
5668fb88 438 (make_widget_value): ... new prototype.
79b0d216 439 * menu.c (xmalloc_widget_value): Replace by ...
5668fb88
DA
440 (make_widget_value): ... new function.
441 (free_menubar_widget_value_tree, digest_single_submenu): Adjust users.
442 * gtkutil.c (malloc_widget_value, free_widget_value):
443 (widget_value_free_list, malloc_cpt): Remove old lwlib-compatible code.
444 * keyboard.h (enum button_type, struct _widget_value):
445 * gtkutil.h, nsgui.h, w32gui.h (malloc_widget_value, free_widget_value):
446 Likewise.
447 * nsmenu.m (ns_update_menubar, ns_menu_show):
448 * w32menu.c (set_frame_menubar, w32_menu_show, w32_dialog_show):
449 * xmenu.c (set_frame_menubar, xmenu_show, x_dialog_show): Adjust users.
450 * xterm.h (XtParent) [USE_GTK]: Remove unused macro.
451
da11196a
DA
4522014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
453
454 * image.c (x_query_frame_background_color)
455 [HAVE_PNG || HAVE_NS || HAVE_IMAGEMAGICK || HAVE_RSVG]:
456 Fix --enable-gcc-warnings compilation without image libraries.
457
0dd0ad37
EZ
4582014-06-02 Eli Zaretskii <eliz@gnu.org>
459
460 * w32heap.c (malloc_after_dump, realloc_after_dump): Update the
461 emulated break value only if it goes up.
462 (sbrk): Add assertion that the INCREMENT argument is strictly
463 zero. Improve and correct the commentary.
464
953e106a 4652014-06-02 Paul Eggert <eggert@cs.ucla.edu>
afca0e75 466
f34897e3
PE
467 Improve AIX-related merge from emacs-24.
468 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Fix comment.
469 * lisp.h (ENUMABLE) [!_AIX]: Don't define to 0 merely because we're
470 not on AIX; since we're on the trunk we can use enums more broadly.
471
afca0e75
PE
472 * frame.c (x_set_frame_parameters): Don't read uninitialized storage.
473
953e106a 4742014-06-02 Jan Djärv <jan.h.d@swipnet.se>
a3d0b7d1
JD
475
476 * xterm.c (xg_scroll_callback): Remove position, for jump set portion
477 to min(value, whole).
478
953e106a 4792014-06-02 Paul Eggert <eggert@cs.ucla.edu>
bba89481
PE
480
481 Bring back the changes to GDB-visible symbols, but only on AIX.
482 And only if it's not pre-4.2 GCC.
483 * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
484 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
485 (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
486 New macros.
487
953e106a 4882014-06-02 Eli Zaretskii <eliz@gnu.org>
2bbda049 489
bc329caa
EZ
490 * fileio.c (Finsert_file_contents): Call prepare_to_modify_buffer
491 with PT, not GPT. (Bug#16433)
492
2bbda049
EZ
493 Revert last changes to GDB-visible symbols.
494 * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros.
495 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Don't use them.
496 (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
497 Delete macros.
498
953e106a 4992014-06-02 Glenn Morris <rgm@gnu.org>
5d335d4b
GM
500
501 * cmds.c (Fself_insert_command): Allow zero repeat count. (Bug#17649)
502
953e106a 5032014-06-02 Paul Eggert <eggert@cs.ucla.edu>
1915d8d6
PE
504
505 Fix port to 32-bit AIX with xlc (Bug#17598).
506 * alloc.c (gdb_make_enums_visible): Remove FLOAT_TO_STRING_BUFSIZE.
507 * conf_post.h (FLEXIBLE_ARRAY_MEMBER) [__IBMC__]: Don't define to empty.
508 * lisp.h (FLOAT_TO_STRING_BUFSIZE): Make it a macro, instead of an enum,
509 to work around a compiler bug in IBM xlc 12.1.
510
953e106a 5112014-06-02 Eli Zaretskii <eliz@gnu.org>
60ae3d09
EZ
512
513 * xterm.c (x_update_window_end): Don't invalidate the entire
514 mouse-highlight info, just signal frame_up_to_date_hook that mouse
515 highlight needs to be redisplayed. (Bug#17588)
516
953e106a 5172014-06-02 Paul Eggert <eggert@cs.ucla.edu>
3c975a33
PE
518
519 Port the GDB-visible symbols to AIX.
520 Without them, GDB doesn't work to debug Emacs, since the AIX linker
521 optimizes away the relevant external symbols. Use enums instead;
522 this suffices for the AIX port, which is 32-bit-only anyway.
523 * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
524 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
525 (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
526 New macros.
527
cf2f54c4
PE
528 Include sources used to create macuvs.h.
529 * Makefile.in ($(srcdir)/macuvs.h): New rule.
530 * macuvs.h: Use automatically-generated header.
531
5c2b9423
PE
5322014-06-01 Paul Eggert <eggert@cs.ucla.edu>
533
534 Port signal-handling to DragonFly BSD (Bug#17646).
535 * callproc.c, sysdep.c (block_child_signal, unblock_child_signal):
536 Move implementations from callproc.c to sysdep.c.
537 * process.h, syssignal.h (block_child_signal, unblock_child_signal):
b9928bba 538 Move declarations from process.h to syssignal.h.
5c2b9423 539
cc304290
JB
5402014-06-01 Juanma Barranquero <lekktu@gmail.com>
541
542 * callint.c (Ffuncall_interactively): Add usage.
543
a2130fb7
JD
5442014-06-01 Jan Djärv <jan.h.d@swipnet.se>
545
546 * nsfns.m (ns_appkit_version_str): Add os version for Cocoa.
547
6c572f9a
EZ
5482014-05-30 Eli Zaretskii <eliz@gnu.org>
549
550 * w32heap.c (malloc_before_dump, malloc_after_dump)
551 (malloc_before_dump, realloc_after_dump, realloc_before_dump)
552 (mmap_alloc, mmap_realloc): Check for errors more thoroughly and
553 set errno where appropriate to emulate CRT functions.
554
8d3103b1
DA
5552014-05-30 Dmitry Antipov <dmantipov@yandex.ru>
556
557 Debugging facility to check whether 'const char *' points to
558 relocatable data of non-pure Lisp string.
559 * alloc.c (maybe_lisp_pointer): New function, refactored out of ...
560 (mark_maybe_pointer): ... adjusted user.
561 (relocatable_string_data_p): New function.
562 * lisp.h (relocatable_string_data_p): Add prototype.
563 * xdisp.c (message_with_string): If ENABLE_CHECKING, make sure
564 the pointer to relocatable Lisp data is not used.
565
8cf1e6e6
PE
5662014-05-30 Paul Eggert <eggert@cs.ucla.edu>
567
568 Don't let SIGINT handling block SIGCHLD indefinitely (Bug#17561).
569 * atimer.c (block_atimers):
570 * callproc.c (block_child_signal): Block SIGINT too;
571 otherwise, its handler might now unblock signals that it shouldn't.
572 * keyboard.c (read_char): Clear signal mask, since we may
573 be in a SIGINT handler, and many signals may be masked.
574 * keyboard.c (handle_interrupt):
575 * sysdep.c (handle_arith_signal):
576 Clear signal mask instead of just unblocking the signal that
577 was received, since several signals may be blocked at this point.
578
7479dd3e
EZ
5792014-05-29 Eli Zaretskii <eliz@gnu.org>
580
581 * Makefile.in (TEMACS_POST_LINK): Remove target.
582 (emacs$(EXEEXT)): Remove $(ADDSECTION) from prerequisites.
583 (temacs$(EXEEXT)): Remove $(TEMACS_POST_LINK) from the recipe.
584
f1b44793
DA
5852014-05-29 Dmitry Antipov <dmantipov@yandex.ru>
586
587 * xmenu.c (xdialog_show): Remove prototype, rename to
588 x_dialog_show, remove 2nd arg because it's always zero
589 and simplify accordingly.
590 (xw_popup_dialog): Adjust user.
591 * w32menu.c (w32_dialog_show): Adjust prototype, remove
592 2nd arg because it's always zero and simplify accordingly.
593 (w32_popup_dialog): Adjust user.
594
d2ff520a
EZ
5952014-05-29 Eli Zaretskii <eliz@gnu.org>
596
597 * w32heap.c (report_temacs_memory_usage): New function.
598
79b0d216
SM
599 * unexw32.c (unexec) [ENABLE_CHECKING]:
600 Call report_temacs_memory_usage.
d2ff520a
EZ
601
602 * w32heap.h (report_temacs_memory_usage): Add prototype.
603
035159ed
PE
6042014-05-29 Paul Eggert <eggert@cs.ucla.edu>
605
606 Don't substitute sigprocmask for pthread_sigmask (Bug#17561).
607 * Makefile.in (LIB_PTHREAD_SIGMASK): Remove; all uses removed.
608
0bbb27fc
EZ
6092014-05-29 Eli Zaretskii <eliz@gnu.org>
610
611 * buffer.c (init_buffer): Accept an argument 'initialized'.
612 [USE_MMAP_FOR_BUFFERS]: If 'initialized' is non-zero, reset
613 mmap_regions and mmap_fd, to avoid referencing stale data from the
614 dump phase. Add an assertion for buffer text of buffers created
615 in temacs before this function is called. (Bug#17622)
616 (mmap_regions_1, mmap_fd_1): Remove unused variables.
617
618 * lisp.h (init_buffer): Update prototype.
619
620 * emacs.c (main): Pass 'initialized' as the argument to init_buffer.
621
609b06a0
DA
6222014-05-29 Dmitry Antipov <dmantipov@yandex.ru>
623
624 * alloc.c (Fgarbage_collect): Fix compilation with
625 GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
626
6b5d3a51
PE
6272014-05-29 Paul Eggert <eggert@cs.ucla.edu>
628
629 * frame.c, frame.h (frame_char_to_pixel_position)
630 (frame_set_mouse_position): Now static, and made private in
631 frame.c rather than public in frame.h.
632
2b511374
DA
6332014-05-28 Dmitry Antipov <dmantipov@yandex.ru>
634
635 Refactor mouse positioning stuff to avoid code duplication.
636 * frame.h (frame_char_to_pixel_position): New function.
637 (x_set_mouse_position): Rename to...
638 (frame_set_mouse_position): ...new function.
639 (frame_set_mouse_pixel_position): Add prototype.
640 * nsterm.m, w32term.c, xterm.c (x_set_mouse_pixel_position):
641 Rename to frame_set_mouse_pixel_position.
642 * frame.c (Fset_mouse_pixel_position, Fset_mouse_position):
643 Adjust users.
644 * xterm.h, w32term.h ( x_set_mouse_position)
645 (x_set_mouse_pixel_position): Remove prototypes.
646
632fd57c
DA
6472014-05-28 Dmitry Antipov <dmantipov@yandex.ru>
648
649 On X, always make pointer visible when deleting frame (Bug#17609).
650 * frame.c (frame_make_pointer_visible, frame_make_pointer_invisible):
651 Pass frame as arg.
652 * frame.h (frame_make_pointer_visible, frame_make_pointer_invisible):
653 Adjust prototypes.
654 * cmds.c (Fself_insert_command): Use SELECTED_FRAME.
655 * keyboard.c (gobble_input): If there is no terminal input error,
656 make sure the pointer is visible for all frames on this terminal.
df384736
DA
657 * xterm.c (x_free_frame_resources): Enable pointer visibility if
658 it was previously disabled.
632fd57c 659
4c539a7b
SM
6602014-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
661
662 * data.c (Fzerop): Move to Elisp.
663 (syms_of_data): Don't defsubr it.
664 * keyboard.c (echo_keystrokes_p): New function.
665 (read_char, record_menu_key, read_key_sequence): Use it.
666
667 * callint.c (Qfuncall_interactively): New var.
668 (Qcall_interactively): Remove.
669 (Ffuncall_interactively): New function.
670 (Fcall_interactively): Use it.
671 (syms_of_callint): Defsubr it.
672
9da43ddc
SM
6732014-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
674
675 * bytecode.c (FETCH) [BYTE_CODE_SAFE]: Check the bytecode wasn't
676 relocated from under us.
677
587fd086
FP
6782014-05-27 Fabrice Popineau <fabrice.popineau@gmail.com>
679
bd5b233d 680 Use mmap(2) emulation for allocating buffer text on MS-Windows.
587fd086
FP
681 * Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from
682 configure.
683 (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used.
684
685 * lisp.h (NONPOINTER_BITS): Modify the condition to define to zero
686 for MinGW, since it no longer uses gmalloc.
687
688 * buffer.c: Do not define mmap allocations functions for Windows.
689 Remove mmap_find which is unused. Remove mmap_set_vars which does
690 nothing useful.
691 [WINDOWSNT]: Include w32heap.h.
692 (init_buffer): Always allocate new memory for buffers.
693
694 * emacs.c: Remove mmap_set_vars calls.
695
696 * image.c (free_image): Undef free for Windows because it is
697 redirected to our private version.
698
79b0d216 699 * unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits compatibility.
587fd086
FP
700 (copy_executable_and_dump_data): Remove dumping the heap section.
701 (unexec): Restore using_dynamic_heap after dumping.
702
703 * w32heap.c (dumped_data_commit, malloc_after_dump)
704 (malloc_before_dump, realloc_after_dump, realloc_before_dump)
705 (free_after_dump, free_before_dump, mmap_alloc, mmap_realloc)
706 (mmap_free): New functions.
707
708 * w32heap.h: Declare dumped_data and mmap_* function prototypes.
709
ca0279be
PE
7102014-05-27 Paul Eggert <eggert@cs.ucla.edu>
711
c24163d4
PE
712 * image.c (imagemagick_load_image): Use MagickRealType for local
713 'color_scale', instead of double, to avoid a GCC warning about
714 double promotion.
715
1ad913a1
PE
716 * xfns.c (Fx_window_property): Remove unused local.
717
ca0279be
PE
718 Don't kill already-reaped process (Bug#17561).
719 * process.c (process_send_signal): Fix race condition where a
720 subprocess was reaped by a signal handler between the check for
721 liveness and calling 'kill', which meant that Emacs could in
722 theory kill an innocent bystander process. Do the fix by blocking
723 SIGCHLD in a critical section that checks liveness before killing.
724
9aecbeb3
EZ
7252014-05-26 Eli Zaretskii <eliz@gnu.org>
726
79b0d216 727 * w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if undefined.
9aecbeb3 728
48e64ea6
KB
7292014-05-26 Ken Brown <kbrown@cornell.edu>
730
731 * w32term.c (x_delete_display): Don't free dpyinfo->w32_id_name,
732 even if !CYGWIN (see bug#17510).
733
6cf4e5d6
JD
7342014-05-26 Jan Djärv <jan.h.d@swipnet.se>
735
858e55f4
JD
736 * nsfns.m (Fns_do_applescript): Surround NSApp run
737 with calls to ns_init_events, ns_finish_events (Bug#17424).
738
6cf4e5d6
JD
739 * nsterm.h (ns_init_events, ns_finish_events): Declare.
740
741 * nsterm.m (ns_init_events, ns_finish_events): New functions.
742 (ns_read_socket, ns_select): Call ns_init_events, ns_finish_events.
743
744 * nsfns.m (ns_do_applescript): Surround executeAndReturnError
745 with calls to ns_init_events, ns_finish_events (Bug#17424).
746
015936fb 7472014-05-26 Eli Zaretskii <eliz@gnu.org>
285c68bc
EZ
748
749 * xdisp.c (move_it_in_display_line_to): Don't record wrap position
750 if we are iterating over an object that generates glyphs for
751 marginal areas. (Bug#17585)
752
015936fb 7532014-05-26 Paul Eggert <eggert@cs.ucla.edu>
2082742e
PE
754
755 * xdisp.c (safe__call1, safe__eval): Now static.
756
015936fb 7572014-05-26 Eli Zaretskii <eliz@gnu.org>
376f53c5
EZ
758
759 * xdisp.c (safe__call): Accept va_list argument instead of '...'.
760 (safe_call, safe__call1): Construct a va_list argument for safe_call.
761 (safe_call1): Call safe_call instead of safe__call directly.
762
015936fb 7632014-05-26 Ken Brown <kbrown@cornell.edu>
791dd8e7
KB
764
765 * w32term.c (x_delete_display) [CYGWIN]: Don't free
766 dpyinfo->w32_id_name, to make sure it doesn't get freed more than
767 once. (Bug#17510)
768
015936fb 7692014-05-26 Stefan Monnier <monnier@iro.umontreal.ca>
3b1c4207
SM
770
771 * xdisp.c: Bind inhibit-quit during pre-redisplay-function.
772 (safe__call, safe__call1, safe__eval): New functions.
773 (safe_call): Use it.
774 (prepare_menu_bars): Use it for pre-redisplay-function (bug#17577).
775 (display_mode_element): Same for `:eval'.
776
015936fb 7772014-05-26 Paul Eggert <eggert@cs.ucla.edu>
4f4ec76f
PE
778
779 Fix port to 32-bit AIX (Bug#17540).
780 * unexaix.c (copy_text_and_data): Don't add text_scnptr to ptr
781 twice. _text already includes this offset.
782 (unrelocate_symbols): Don't cast 64-bit integer to pointer.
783
015936fb 7842014-05-26 Eli Zaretskii <eliz@gnu.org>
5e2e0fa4
EZ
785
786 * xdisp.c (move_it_in_display_line_to): Avoid infinite recursion:
787 when closest_pos is identical to to_charpos, don't recurse, since
788 we already tried that, and failed. (Bug#17539)
789
ebdc8031
EZ
790 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: If we are
791 unwinding when frame's faces were not initialized yet, increment
792 the frame's image-cache reference count before calling
793 x_free_frame_resources. Don't dereference
794 dpyinfo->terminal->image_cache if it is NULL. (Bug#17524)
795
d6e8093a
JD
7962014-05-25 Jan Djärv <jan.h.d@swipnet.se>
797
798 * nsfont.m (nsfont_draw): Simplify as arguments are adjusted in
799 nsterm.m now.
800
801 * nsterm.m (ns_draw_glyph_string): Move isComposite and end from
802 macfont.m, call draw with adjusted arguments so font drivers
803 don't need to do that.
804
805 * macfont.m (macfont_draw): Merge changes from Macport.
806
c94e3311
EZ
8072014-05-24 Eli Zaretskii <eliz@gnu.org>
808
809 * alloc.c (garbage_collect_1): New function, with all of the guts
810 of Fgarbage_collect.
811 (mark_stack): Accept an argument END and don't mark Lisp objects
812 on the stack beyond the address given by END. Calculation of END
813 was moved to Fgarbage_collect.
814 (Fgarbage_collect): Calculate the end address of the stack portion
815 that needs to be examined by mark_stack, and pass that address to
2baa734e
SM
816 garbage_collect_1, which will pass it to mark_stack.
817 See http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00270.html
c94e3311
EZ
818 for more details about the underlying problems. In particular,
819 this avoids dumping Emacs with the large hash-table whose value is
820 held in purify-flag for most of the time loadup.el runs.
821
a235163a
JD
8222014-05-24 Jan Djärv <jan.h.d@swipnet.se>
823
824 * xfns.c (x_window_property_intern): New function (code from
825 x_window_property).
826 (Fx_window_property): Call x_window_property_intern. If property
827 not found and NILP (source) and outer window != inner window,
828 check outer window for property (Bug#17537).
829
74fde0f4
PE
8302014-05-22 Paul Eggert <eggert@cs.ucla.edu>
831
832 Supply malloc and alloc_size attributes for extern allocators.
833 This documents the C API, and helps GCC generate a bit better code.
834 * conf_post.h (ATTRIBUTE_MALLOC, ATTRIBUTE_ALLOC_SIZE)
835 (ATTRIBUTE_MALLOC_SIZE): New macros.
836 * gmalloc.c (malloc, realloc, calloc):
837 * gtkutil.h (malloc_widget_value):
838 * lisp.h (ralloc, r_re_alloc, xmalloc, xzalloc, xrealloc, xnmalloc)
839 (xnrealloc, xstrdup, xlispstrdup, record_xmalloc):
840 Use them.
841
6c596cb2
PE
8422014-05-21 Paul Eggert <eggert@cs.ucla.edu>
843
844 Don't assume that ImageMagick uses a 16-bit quantum (Bug#17519).
845 * image.c (imagemagick_load_image): Port to hosts that do not use
846 a 16-bit quantum, i.e., QuantumRange does not equal 65535.
847
254b7645
LL
8482014-05-21 Leo Liu <sdl.web@gmail.com>
849
850 * fns.c (Fnreverse): Accept strings for SEQ and update doc-string.
851
a05affb2
MA
8522014-05-20 Michael Albinus <michael.albinus@gmx.de>
853
854 * dbusbind.c (xd_signature): Revert last 2 patches.
855
2f1205e0
PE
8562014-05-19 Paul Eggert <eggert@cs.ucla.edu>
857
858 Allow any non-nil value to count as true in bool-vector.
859 Likewise for xd_signature in dbusbind.c.
860 This is more consistent with the usual practice in Emacs, which is
861 that any non-nil value counts as true.
862 * alloc.c (Fbool_vector): Don't require args to be t or nil.
863 * dbusbind.c (xd_signature): Likewise, for booleans.
864 * data.c, lisp.h (Qbooleanp):
865 * lisp.h (CHECK_BOOLEAN): Remove. All uses removed.
866
2bcf0551
DA
8672014-05-19 Dmitry Antipov <dmantipov@yandex.ru>
868
869 * lisp.h (CHECK_BOOLEAN): New function.
870 * alloc.c (Fbool_vector): New function.
871 (syms_of_alloc): Defsubr it.
872 * data.c (Qbooleanp): New symbol.
873 (syms_of_data): DEFSYM it.
874 * dbusbind.c (xd_signature): Use CHECK_BOOLEAN.
875
8bb59716
DA
876 * font.c (font_matching_entity): Extract font-entity object
877 from the vector of matching entities (Bug#17486).
878
8208d2bf
PE
8792014-05-17 Paul Eggert <eggert@cs.ucla.edu>
880
881 Assume C99 or later (Bug#17487).
882 * bytecode.c (B__dummy__): Remove.
883 * conf_post.h (bool_bf) [!NS_IMPL_GNUSTEP]: Use bool.
884 (FLEXIBLE_ARRAY_MEMBER): Now always empty.
885 * dbusbind.c (XD_DEBUG_MESSAGE) [!DBUS_DEBUG]:
886 * regex.c (DEBUG_PRINT): Assume varargs macros.
887 * lisp.h (DEFUN_FUNCTION_INIT): Remove. All uses now assume C99.
888
f63fc858
FP
8892014-05-17 Fabrice Popineau <fabrice.popineau@gmail.com>
890
891 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Always map new
892 memory for every buffer that was dumped.
893
c269148b
DA
8942014-05-15 Dmitry Antipov <dmantipov@yandex.ru>
895
896 * fns.c (Freverse): Allow vectors, bool vectors and strings.
ddc30c99 897 (Fnreverse): Allow vectors and bool vectors.
c269148b 898
6f1d9822
DA
8992014-05-14 Dmitry Antipov <dmantipov@yandex.ru>
900
901 Minor cleanup for terminal setup.
902 * termhooks.h (create_terminal): Adjust prototype.
903 * terminal.c (create_terminal): Pass output method and RIF as args.
904 (init_initial_terminal):
905 * nsterm.m (ns_create_terminal):
906 * term.c (init_tty):
907 * w32term.c (w32_create_terminal):
908 * xterm.c (x_create_terminal): Adjust users.
909 Avoid redundant NULL initializers and add comments.
910
3246c8b1
PE
9112014-05-13 Paul Eggert <eggert@cs.ucla.edu>
912
913 * keyboard.c (Qdeactivate_mark): Now static.
914
d3e5c0ea
DA
9152014-05-13 Dmitry Antipov <dmantipov@yandex.ru>
916
917 If available, use Xfixes extension to do pointer blanking.
918 * Makefile.in (XFIXES_CFLAGS, XFIXES_LIBS): New var.
919 * xfns.c (x_set_mouse_color): Do not call make_invisible_cursor here.
920 (make_invisible_cursor): Move to...
921 * xterm.c (make_invisible_cursor): ...here.
922 (x_probe_xfixes_extension, xfixes_toggle_visible_pointer)
923 (x_toggle_visible_pointer, x_setup_pointer_blanking): New functions.
924 (x_term_init): Call to x_setup_pointer_blanking.
925 (XTtoggle_invisible_pointer): Use blanking specific to this display.
926 * xterm.h (struct x_display_info): New member toggle_visible_pointer.
927
9ce28d80
YM
9282014-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
929
930 * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
931
bbbabffe 9322014-05-12 Glenn Morris <rgm@gnu.org>
970fd401
GM
933
934 * fileio.c (Ffile_executable_p): Doc tweak.
935
bbbabffe 9362014-05-12 Jan Djärv <jan.h.d@swipnet.se>
4a5c71d7
JD
937
938 * xsettings.c (init_gsettings): Use g_settings_schema_source_lookup
939 instead of deprecated g_settings_list_schemas if possible (Bug#17434).
940
fb3f83f5 9412014-05-08 Paul Eggert <eggert@cs.ucla.edu>
d1ff9ee4
PE
942
943 * minibuf.c (read_minibuf): Avoid C99ism in previous patch (Bug#17430).
944
fb3f83f5 9452014-05-08 Jarek Czekalski <jarekczek@poczta.onet.pl>
73b60c4a
JC
946
947 Fix initialization of minibuffer history variable (Bug#17430).
948 * minibuf.c (read_minibuf): Initialize histval to Qnil if unbound.
949 Move the initialization up to prevent any "value void" message.
950
fb3f83f5 9512014-05-08 Samuel Bronson <naesten@gmail.com>
8e102bcc
SB
952
953 * keyboard.c (Frecursive_edit): Ensure inc&dec of command_loop_level
954 are matched (bug#17413).
955
fb3f83f5 9562014-05-08 Jarek Czekalski <jarekczek@poczta.onet.pl>
863f07de
JC
957
958 Stop tooltips pulling Emacs window to front (Bug#17408).
959 * w32fns.c (Fx_show_tip): Add SWP_NOOWNERZORDER flag to
960 SetWindowPos invocations.
961
fb3f83f5 9622014-05-08 Jan Djärv <jan.h.d@swipnet.se>
879e3628
JD
963
964 * nsselect.m (Fx_selection_exists_p): Just return Qnil if window system
965 not initialized (Bug#17398).
966
1ba38c42
PE
9672014-05-07 Paul Eggert <eggert@cs.ucla.edu>
968
969 * image.c: Include <png.h> before <setjmp.h> (Bug#17429).
970
f62bc934
PE
9712014-05-06 Paul Eggert <eggert@cs.ucla.edu>
972
973 * image.c: Do not use libpng if HAVE_NS, as NS does its own thing.
974 [HAVE_NS]: Do not include png.h.
975 (x_query_frame_background_color): New function.
976 (png_load_body, imagemagick_load_image, svg_load_image): Use it.
977 (png_load_body): Coalesce duplicate code.
978
61febcb6
PE
9792014-05-04 Paul Eggert <eggert@cs.ucla.edu>
980
f8c2cef5
PE
981 Consult libpng-config more consistently (Bug#17339).
982 * Makefile.in (PNG_CFLAGS): New var.
983 (ALL_CFLAGS): Use it.
984 * image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
985 CFLAGS now handles this.
61febcb6 986
d355cad6
PE
9872014-05-03 Paul Eggert <eggert@cs.ucla.edu>
988
989 Handle systems without WCONTINUED consistently. (Bug#15110, 17339)
990 * process.c (handle_child_signal): Remove WCONTINUED ifdef,
991 because WCONTINUED is always defined now.
992 * syswait.h (WCONTINUED): Move here from ../lib-src/emacsclient.c.
993
74a9022a
EZ
9942014-05-03 Eli Zaretskii <eliz@gnu.org>
995
996 * buffer.c (overlay_strings): Fix the wording of the commentary.
997
d136f184
GM
9982014-05-01 Glenn Morris <rgm@gnu.org>
999
1000 * floatfns.c (Fisnan):
1001 * profiler.c (Fprofiler_cpu_running_p): Doc fix (replace `iff').
1002
28c05b69
EZ
10032014-05-01 Eli Zaretskii <eliz@gnu.org>
1004
1005 * term.c (tty_menu_activate): A better initialization for cursor
1006 coordinates.
1007
23c931aa
SM
10082014-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
1009
1010 * intervals.c: Tighten assertions.
1011 (create_root_interval): Make sure the interval is not empty.
1012 (intervals_equal): Use booleans.
1013 (rotate_right, rotate_left): Check LENGTHs rather than TOTAL_LENGTH.
1014 (balance_an_interval): Sanity check LENGTHs and TOTAL_LENGTHs.
1015 (balance_possible_root_interval): Simplify and use booleans.
1016 (split_interval_right, split_interval_left): Check LENGTH, and remove
1017 now redundant assertion.
1018 (adjust_intervals_for_insertion): Remove now redundant assertions.
1019 (delete_node, interval_deletion_adjustment)
1020 (adjust_intervals_for_deletion, merge_interval_right)
1021 (merge_interval_left): Check LENGTH rather than TOTAL_LENGTH.
1022 (reproduce_interval): Make sure the interval is not empty.
1023
bc6cb3ef
PE
10242014-04-30 Paul Eggert <eggert@cs.ucla.edu>
1025
1026 * term.c (tty_menu_activate): Don't assume row and col are initialized.
1027 GCC 4.9.0 warned about this, and I couldn't easily prove to my own
1028 satisfaction that they would always be initialized.
1029
09b911ad 10302014-04-30 Eli Zaretskii <eliz@gnu.org>
a55ea27f 1031
09b911ad 1032 * term.c (tty_menu_display): Move the cursor to the active menu item.
a55ea27f 1033 (tty_menu_activate): Return the cursor to the active menu item
4c539a7b
SM
1034 after displaying the menu and after displaying help-echo.
1035 See http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00402.html
a55ea27f
EZ
1036 for the details of why this is needed by screen readers and
1037 Braille displays.
1038
09b911ad 10392014-04-30 Glenn Morris <rgm@gnu.org>
4a25c1cb
GM
1040
1041 * process.c (handle_child_signal):
1042 Handle systems without WCONTINUED. (Bug#15110, 17339)
1043
4d89ee37
SM
10442014-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
1045
1046 * window.c (struct saved_window): Remove mark.
1047 (Fset_window_configuration, save_window_save)
1048 (compare_window_configurations): Don't touch marks any more.
1049
6ab1b16c
PE
10502014-04-28 Paul Eggert <eggert@cs.ucla.edu>
1051
9c23779a
PE
1052 Use bits_word for gcmarkbits.
1053 * alloc.c (struct cons_block, struct float_block): On 64-bit hosts,
1054 bits_word is typically a tad more efficient for mark bits than
1055 unsigned is, so use bits_word. All uses changed.
1056 * lisp.h (BITS_PER_INT): Remove; no longer used.
1057
6ab1b16c
PE
1058 Avoid undefined behavior in signed left shift.
1059 This ports to GCC 4.9.0 with -fsanitize=undefined.
1060 * alloc.c (bool_vector_fill, SETMARKBIT, UNSETMARKBIT):
1061 * data.c (Fash):
1062 * regex.c (extract_number):
1063 * lisp.h (make_number, XINT):
1064 Do not shift a 1 bit left into a sign bit.
1065 * alloc.c (struct cons_block, struct float_block): Use unsigned,
1066 not int, for gcmarkbits. All uses changed.
1067
dff4a9f6 10682014-04-25 Eli Zaretskii <eliz@gnu.org>
80d982d7
EZ
1069
1070 * search.c (Fnewline_cache_check): Don't try to count newlines
4d89ee37 1071 outside the buffer's restriction, as find_newline doesn't support that.
80d982d7 1072
8917710e
SM
10732014-04-24 Stefan Monnier <monnier@iro.umontreal.ca>
1074
1075 * window.c (Fset_window_configuration): Deactivate the mark before
1076 unsetting the mark.
1077 (set_window_buffer): Ignore window_initialized.
1078 (window_initialized): Remove.
1079 * keyboard.c (Qdeactivate_mark): Not static any more.
1080 * buffer.c (buffer_local_value): Rename from buffer_local_value_1.
1081 Update all callers.
1082
417c9bcb
PE
10832014-04-23 Paul Eggert <eggert@cs.ucla.edu>
1084
1085 * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0
1086 and to clang 3.4, which have fixed the bug. This should let us
1087 run a bit faster on these platforms when address sanitization is
1088 in effect.
1089
0fae5004
PE
10902014-04-22 Paul Eggert <eggert@cs.ucla.edu>
1091
34e856d5
PE
1092 Port to GCC 4.9.0 with --enable-gcc-warnings.
1093 * image.c (struct my_jpeg_error_mgr) [lint]: Remove member fp.
1094 All uses removed.
1095 (jpeg_load_body) [lint]: Add a 'volatile' to pacify a buggy GCC in
1096 a way that also works with GCC 4.9.0.
1097
0fae5004
PE
1098 * search.c (Fnewline_cache_check): Remove unused locals.
1099
2f999d52
EZ
11002014-04-22 Eli Zaretskii <eliz@gnu.org>
1101
1102 * search.c (find_newline1): New subroutine.
1103 (Fnewline_cache_check): New function.
1104 (syms_of_search): Defsubr it.
1105
42e91034 11062014-04-22 Jarek Czekalski <jarekczek@poczta.onet.pl>
6709d4da
JC
1107
1108 Fix freezing with scroll bars of GTK3 Toolkit (bug#15801).
1109 * keyboard.c (unblock_input): Add comment.
1110 * xgselect.c (xg_select): Prevent Glib main loop recursion.
1111
12b1389c
DC
11122014-04-22 Daniel Colascione <dancol@dancol.org>
1113
1114 * lread.c (readevalloop_eager_expand_eval): New function
1115 that can recurse into toplevel forms.
1116 (readevalloop): Call it.
1117 * lisp.h: Declare Qprogn.
1118 * callint.c (Qprogn): No longer static.
1119
d7b659bb
SM
11202014-04-19 Stefan Monnier <monnier@iro.umontreal.ca>
1121
1122 * intervals.c (rotate_right, rotate_left): Fix up length computation.
1123 Also change identifiers to match the comments, and add more assertions
1124 (bug#16234).
1125
31559517
PE
11262014-04-18 Paul Eggert <eggert@cs.ucla.edu>
1127
1128 * emacs.c (close_output_streams): Don't clear and restore errno.
1129
bba63379 11302014-04-18 Jan Djärv <jan.h.d@swipnet.se>
53e46f3a
JD
1131
1132 * xterm.c (x_make_frame_visible): Prevent endless loop when frame
1133 never becomes visible, i.e. using XMonad (Bug#17237).
1134
bba63379 11352014-04-18 Eli Zaretskii <eliz@gnu.org>
f76da67d 1136
bba63379
JB
1137 * xdisp.c (insert_left_trunc_glyphs): Ensure the left truncation
1138 glyph is written to TEXT_AREA of the temporary glyph_row. (Bug#17288)
1139 (Fline_pixel_height): Don't assume that the current buffer and the
1140 selected window's buffer are one and the same. (Bug#17281)
8915b842 1141
f76da67d
EZ
1142 * insdel.c (invalidate_buffer_caches): Invalidate the bidi
1143 paragraph-start cache before the newline cache. (Bug#17269)
1144
f0496348
PE
11452014-04-17 Paul Eggert <eggert@cs.ucla.edu>
1146
1147 * term.c (tty_send_additional_strings): No need to fflush here,
1148 as callers fflush.
1149 (tty_set_terminal_modes): fflush after sending additional strings,
1150 not before.
1151
bfc30790
DC
11522014-04-17 Daniel Colascione <dancol@dancol.org>
1153
4c539a7b
SM
1154 * term.c (Qtty_mode_set_strings, Qtty_mode_reset_strings):
1155 New symbols.
bfc30790
DC
1156 (tty_send_additional_strings): New function.
1157 (tty_set_terminal_modes, tty_reset_terminal_modes): Use it.
1158 (syms_of_term): Intern tty-mode-set-strings and
1159 tty-mode-reset-strings.
1160
63032a0e
SM
11612014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
1162
1163 * window.c (save_window_save): Lookup window_point_insertion_type in
1164 the right buffer (bug#15457).
1165 (Qwindow_point_insertion_type): New var.
1166 (syms_of_window): Initialize it.
1167
bf6b4923
EZ
11682014-04-16 Eli Zaretskii <eliz@gnu.org>
1169
ad62a115 1170 Fix the MSDOS build.
bf6b4923
EZ
1171 * unexcoff.c [MSDOS]: Include libc/atexit.h.
1172 (copy_text_and_data): Zero out the atexit chain pointer before
1173 dumping Emacs.
1174
1175 * termhooks.h (encode_terminal_code): Update prototype.
1176
1177 * term.c (encode_terminal_code) [DOS_NT]: Make it externally
1178 visible for all DOS_NT ports, not just WINDOWSNT.
1179 (syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
1180
1181 * sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
1182 unless it is defined.
1183 (emacs_pipe) [MSDOS]: Redirect to 'pipe'.
1184
1185 * process.c (close_on_exec, accept4, process_socket): Move into
1186 the "ifdef subprocesses" part.
1187 (catch_child_signal): Condition by "ifdef subprocesses".
1188 (syms_of_process) <Qinternal_default_process_sentinel>
1189 <Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
1190
1191 * msdos.h: Add prototypes for new functions.
1192 (EINPROGRESS): Define.
1193 (O_CLOEXEC): Define to zero.
1194
1195 * msdos.c (check_window_system): Remove unnecessary an
1196 incompatible duplicate function.
63032a0e
SM
1197 (sys_opendir, readlinkat, faccessat, fstatat, unsetenv):
1198 New functions in support of new functionality.
bf6b4923
EZ
1199
1200 * menu.c (single_menu_item): Add visual indication of submenu
1201 also for menus on MSDOS frames.
1202 (Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
1203
1204 * lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
1205 when async subprocesses aren't supported.
1206
1207 * font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
1208
1209 * emacs.c (close_output_streams): Zero out errno before calling
1210 close_stream.
1211
1212 * dired.c [MSDOS]: Include msdos.h.
1213
1214 * conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
1215 (DATA_START) [MSDOS]: Define.
1216 (SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
1217
1218 * callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
1219 Ifdef away for MSDOS.
1220 (record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
1221 (call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
1222 for MSDOS.
1223 (call_process) [MSDOS]: Fix call sequence of dostounix_filename.
1224 Use temporary file template that is compatible with mkostemp.
1225 Move vfork-related portions under #ifndef MSDOS.
1226 (syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.
1227
290d7ac2 12282014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
ad0dfd98
EZ
1229
1230 * buffer.c (Foverlays_at): Add argument `sorted'.
1231
290d7ac2 12322014-04-16 Eli Zaretskii <eliz@gnu.org>
ad0dfd98
EZ
1233
1234 * insdel.c (invalidate_buffer_caches): When deleting or replacing
1235 text, invalidate the bidi_paragraph_cache upto and including the
1236 preceding newline.
1237
290d7ac2 12382014-04-16 Paul Eggert <eggert@cs.ucla.edu>
13a5993b
PE
1239
1240 Port to IRIX 6.5 (Bug#9684).
13a5993b
PE
1241 * conf_post.h (INET6) [IRIX6_5]: Define.
1242 (HAVE_GETADDRINFO) [IRIX6_5]: Undef.
1243 * data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
13a5993b 1244
290d7ac2 12452014-04-16 Eli Zaretskii <eliz@gnu.org>
ff252be0 1246
ced78c5a
EZ
1247 * keyboard.c (Fopen_dribble_file): Encode the dribble file-name
1248 before passing it to system APIs.
1249
290d7ac2 12502014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
285d6d5d
SM
1251
1252 * bytecode.c (exec_byte_code): Rework the volatiles. Most importantly,
1253 make sure stack.byte_string_start is not de-adjusted by pushhandler.
1254
290d7ac2 12552014-04-16 Paul Eggert <eggert@cs.ucla.edu>
a9108bf1
PE
1256
1257 * keyboard.c (Fopen_dribble_file): Avoid some races. (Bug#17187)
1258
5403b2d3
PE
12592014-04-15 Paul Eggert <eggert@cs.ucla.edu>
1260
1261 Remove DATA_SEG_BITS.
1262 The DATA_SEG_BITS hack was needed for older 32 bit platforms.
1263 As a result of this change, Emacs won't work on IRIX 6.5 with IRIX
1264 cc, but that platform is so old that SGI itself stopped supporting
1265 it in December 2013. If you still need Emacs on IRIX, please
1266 either compile with GCC and port the undumping code, or run
1267 './configure --with-wide-int'.
1268 * alloc.c (gdb_make_enums_visible): Update to match lisp.h.
1269 * lisp.h (GCTYPEBITS): Move definition up, and switch to the
1270 DEFINE_GDB_SYMBOL_START way to define it.
1271 (NONPOINTER_BITS): New macro.
1272 (EMACS_INT): Use it.
1273 [!USE_LSB_TAG && !WIDE_EMACS_INT]: Fail, and suggest reporting
1274 the problem and/or configuring --with-wide-int.
1275 (USE_LSB_TAG): Simplify, based on above changes.
1276 (gdb_DATA_SEG_BITS): Remove. All uses removed.
1277 * vm-limit.c (exceeds_lisp_ptr): Remove. All uses removed.
1278
180c8ce0
EZ
12792014-04-12 Eli Zaretskii <eliz@gnu.org>
1280
1281 * xdisp.c (move_it_by_lines): If a large portion of buffer text is
1282 covered by a display string that ends in a newline, and that cases
1283 going back by DVPOS lines to hit the search limit, lift the limit
1284 and go back until DVPOS is reached. (Bug#17244)
1285
1286 * indent.c (Fvertical_motion): Handle correctly the case when the
1287 display string is preceded by an empty line.
1288
95765a6a
EZ
1289 * w32.c (sys_umask) <WRITE_USER>: Remove redundant constant, and
1290 use S_IWRITE instead.
1291
34e083e3
GM
12922014-04-11 Glenn Morris <rgm@gnu.org>
1293
1294 * keyboard.c (Fopen_dribble_file): Make file private. (Bug#17187)
1295
536aa466 12962014-04-11 Ken Brown <kbrown@cornell.edu>
0cccc183
KB
1297
1298 * Makefile.in (EMACS_MANIFEST): Revert last change.
1299
fb2dcc35
DC
13002014-04-10 Daniel Colascione <dancol@dancol.org>
1301
1302 * puresize.h (BASE_PURESIZE): Increase.
1303
6bc76cee
SM
13042014-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
1305
5f6378ee
SM
1306 * keyboard.c (syms_of_keyboard): Make deactivate-mark buffer-local.
1307
6bc76cee
SM
1308 * insdel.c (prepare_to_modify_buffer_1): Cancel lock-file checks and
1309 region handling (and don't call signal_before_change) if
1310 inhibit_modification_hooks is set.
1311 (signal_before_change): Don't check inhibit_modification_hooks any more.
1312
fd9c746d 13132014-04-08 Daniel Colascione <dancol@dancol.org>
1b85074c 1314
a237d879
DC
1315 * alloc.c (sweep_symbols, mark_object): Assert that symbol
1316 function cells contain valid lisp objects. (Modified version of
1317 patch from Dmitry).
1b85074c
DC
1318
1319 * alloc.c (detect_suspicious_free): Split actual stack capturing
1320 out into new function for easier breakpoint setting.
1321 (note_suspicious_free): New function.
1322
e3b83880
SM
13232014-04-07 Stefan Monnier <monnier@iro.umontreal.ca>
1324
1325 * lisp.h (struct Lisp_Symbol): New bitfield `pinned'.
1326
1327 * alloc.c: Keep track of symbols referenced from pure space (bug#17168).
1328 (symbol_block_pinned): New var.
1329 (Fmake_symbol): Initialize `pinned'.
1330 (purecopy): New function, extracted from Fpurecopy. Mark symbols as
1331 pinned and signal an error for un-purifiable objects.
1332 (pure_cons): Use it.
1333 (Fpurecopy): Use it, except for objects that can't be purified.
1334 (mark_pinned_symbols): New function.
1335 (Fgarbage_collect): Use it.
1336 (gc_sweep): Remove hack made unnecessary.
1337
6f287c89 13382014-04-07 Glenn Morris <rgm@gnu.org>
50ea0f87
GM
1339
1340 * keyboard.c (Fopen_dribble_file): Doc tweak.
1341
6f287c89 13422014-04-07 Ken Brown <kbrown@cornell.edu>
ebe8e076
KB
1343
1344 * Makefile.in (EMACS_MANIFEST): Update comment. (Bug#17176)
1345
608a4502
PE
13462014-04-07 Paul Eggert <eggert@cs.ucla.edu>
1347
1348 * alloc.c: Simplify by removing use of HAVE_EXECINFO_H.
1349 We have a substitute execinfo.h on hosts that lack it.
1350 (suspicious_free_history): Make it EXTERNALLY_VISIBLE so it
1351 isn't optimized away.
1352
faa52174
PE
13532014-04-05 Paul Eggert <eggert@cs.ucla.edu>
1354
1355 Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x'.
1356 * alloc.c (memory_full):
1357 * charset.c (syms_of_charset):
1358 * doc.c (Fsnarf_documentation):
1359 * emacs.c (main):
1360 * font.c (BUILD_STYLE_TABLE):
1361 * keyboard.c (make_lispy_event):
1362 * profiler.c (setup_cpu_timer):
1363 * xgselect.c (xg_select):
1364 * xterm.c (record_event, STORE_KEYSYM_FOR_DEBUG):
1365 Use ARRAYELTS.
1366 * font.c (FONT_PROPERTY_TABLE_SIZE): Remove.
1367 Replace the only use with ARRAYELTS (font_property_table).
1368 * xfaces.c (DIM): Remove. All uses replaced by ARRAYELTS.
1369
01ae0fbf
DC
13702014-04-03 Daniel Colascione <dancol@dancol.org>
1371
1b058e42
GM
1372 * xterm.c (x_term_init):
1373 * xfns.c (best_xim_style):
1374 * xfaces.c (Fdump_colors):
1375 * w32fns.c (w32_default_color_map):
1376 * w32.c (init_environment, N_ENV_VARS):
1377 * unexcw.c (read_exe_header):
1378 * term.c (term_get_fkeys_1):
1379 * sysdep.c (init_baud_rate):
1380 * nsterm.m (ns_convert_key):
1381 * nsfns.m (get_geometry_from_preferences):
1382 * msdos.c (dos_set_window_size, init_environment):
1383 * macfont.m (mac_font_get_glyph_for_cid)
1384 (macfont_store_descriptor_attributes)
1385 (macfont_create_attributes_with_spec, mac_ctfont_get_glyph_for_cid):
1386 * keyboard.c (command_loop_1, read_menu_command, make_lispy_event)
1387 (NUM_MOD_NAMES, read_key_sequence_vs, Fcurrent_input_mode)
1388 (syms_of_keyboard):
1389 * image.c (xpm_str_to_color_key):
1390 * fringe.c (MAX_STANDARD_FRINGE_BITMAPS):
1391 * frame.c (x_set_frame_parameters):
1392 * fileio.c (Ffile_selinux_context):
1393 * emacs.c (sort_args):
1394 * dosfns.c (msdos_stdcolor_name):
1395 * dired.c (file_attributes):
1396 * chartab.c (uniprop_decoder_count, uniprop_encode_count):
1397 Change expressions of the form sizeof(arr) / sizeof(arr[0])
9b017563 1398 to ARRAYELTS (arr).
705cf384
DC
1399
14002014-04-02 Daniel Colascione <dancol@dancol.org>
1401
01ae0fbf
DC
1402 * data.c (Ffset): Abort if we're trying to set a function call to
1403 a dead lisp object.
1404
c72d972c 1405 * lisp.h (ARRAYELTS): New macro.
01ae0fbf 1406
170c12e0
DC
1407 * alloc.c: Include execinfo.h if available.
1408 (SUSPICIOUS_OBJECT_CHECKING): New macro; define unconditionally.
1409 (suspicious_free_record): New structure.
9b017563
JB
1410 (suspicious_objects, suspicious_object_index)
1411 (suspicious_free_history, suspicious_free_history_index):
1412 New variables.
1413 (find_suspicious_object_in_range, detect_suspicious_free)
170c12e0
DC
1414 (Fsuspicious_object): New functions.
1415 (cleanup_vector): Call find_suspicious_object_in_range.
1416
ffcd5669
MR
14172014-04-02 Martin Rudalics <rudalics@gmx.at>
1418
1419 * xterm.c (x_new_font): Don't calculate non-toolkit scrollbar
1420 width from font width (Bug#17163).
1421
632e91a6
MR
1422 * frame.c (x_set_frame_parameters): Calculate default values of
1423 new frame sizes only after all other frame parameters have been
1424 processed (Bug#17142).
1425
09aba815 14262014-04-02 Ken Brown <kbrown@cornell.edu>
9c67d3ba
KB
1427
1428 * conf_post.h (SYSTEM_PURESIZE_EXTRA) [CYGWIN]: Set to 10000.
1429 (Bug#17112)
1430
09aba815 14312014-04-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
08be62f4
YM
1432
1433 * xterm.c (x_draw_image_glyph_string): Adjust image background
1434 width accordingly when its x position is adjusted. (Bug#17115)
1435
af1a69f4
DA
14362014-04-02 Dmitry Antipov <dmantipov@yandex.ru>
1437
1438 * font.c (font_list_entities): Do not add empty vector to font cache.
1439 (font_matching_entity): Likewise. If matching entity is found, insert
1440 1-item vector with this entity instead of entity itself (Bug#17125).
1441
ed859c7a
DA
1442 * xterm.c (x_term_init) [USE_LUCID]: Fix minor memory leak.
1443
8ec49c53
PE
14442014-04-01 Paul Eggert <eggert@cs.ucla.edu>
1445
1446 * fns.c (validate_subarray): Rename from validate_substring,
1447 since it works for vectors too. New arg ARRAY. Optimize for the
1448 non-nil case. Instead of returning bool, throw an error if out of
1449 range, so that the caller needn't do that. All uses changed.
1450 Report original values if out of range.
1451 (Fsubstring, Fsubstring_no_properties, secure_hash):
1452 Also optimize the case where FROM is 0 or TO is the size.
1453
68712e08
DA
14542014-03-31 Dmitry Antipov <dmantipov@yandex.ru>
1455
1456 * search.c (Freplace_match): Use make_specified_string.
1457 * xterm.c, w32term.c (x_set_glyph_string_gc): Use emacs_abort
1458 to catch bogus override face of glyph strings.
fbc87aea
DA
1459 * fns.c (Fsubstring, Fsubstring_no_properties, secure_hash):
1460 Move common substring range checking code to...
1461 (validate_substring): ...this function.
68712e08 1462
abe13366
JD
14632014-03-31 Jan Djärv <jan.h.d@swipnet.se>
1464
1465 * nsmenu.m (free_frame_tool_bar): Set wait_for_tool_bar = NO (Bug#16976)
1466
f9d45267
JD
14672014-03-30 Jan Djärv <jan.h.d@swipnet.se>
1468
1469 * nsterm.m (updateFrameSize:): If waiting for the tool bar and tool
1470 bar is zero height, just return (Bug#16976).
1471 (initFrameFromEmacs:): Initialize wait_for_tool_bar.
1472
1473 * nsterm.h (EmacsView): Add wait_for_tool_bar.
1474
1475 * nsmenu.m (update_frame_tool_bar): Return early if view or toolbar
1476 is nil. If waiting for toolbar to complete, force a redraw.
1477
c3153003
GM
14782014-03-28 Glenn Morris <rgm@gnu.org>
1479
7b207d6d
GM
1480 * emacs.c (emacs_version): Use PACKAGE_VERSION rather than VERSION.
1481 (emacs_bugreport): New variable.
1482 (usage_message): Use PACKAGE_BUGREPORT.
1483 (syms_of_emacs) <report-emacs-bug-address>: New variable.
1484
c3153003
GM
1485 * emacs.c (syms_of_emacs) <system-configuration-features>: New var.
1486
4e74624d
PE
14872014-03-27 Paul Eggert <eggert@cs.ucla.edu>
1488
1489 Port recent signal-related changes to FreeBSD.
1490 Problem reported by Herbert J. Skuhra.
1491 * lisp.h (block_tty_out_signal, unblock_tty_out_signal):
1492 Move decls from here ...
1493 * syssignal.h: ... to here, so that lisp.h doesn't depend on signal.h.
1494
0c4e715c
YM
14952014-03-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1496
1497 * w32term.c (x_draw_image_glyph_string): Fix computation of height
1498 and width of image background when it is displayed with a 'box'
1499 face. (Bug#17115)
1500
1e757eb0 15012014-03-27 Paul Eggert <eggert@penguin.cs.ucla.edu>
3fd3e736
PE
1502
1503 More backward-compatible fix to char-equal core dump (Bug#17011).
1504 * editfns.c (Fchar_equal): In unibyte buffers, assume values in
1505 range 128-255 are raw bytes. Suggested by Eli Zaretskii.
b18d7820 1506
b9b37dd0
JB
15072014-03-27 Juanma Barranquero <lekktu@gmail.com>
1508
1509 * image.c (init_svg_functions): When loading SVG-related libraries,
1510 free already loaded libraries if the initialization fails.
1511 (rsvg_handle_set_size_callback): Remove declaration, unused.
1512
b18d7820
PE
15132014-03-26 Paul Eggert <eggert@cs.ucla.edu>
1514
05b250c2
PE
1515 Fix core dump in char-equal (Bug#17011).
1516 * editfns.c (Fchar_equal): Do not use MAKE_CHAR_MULTIBYTE in
1517 unibyte buffers, as we can't tell whether the characters are
1518 actually unibyte.
1519
b18d7820
PE
1520 * insdel.c (adjust_markers_for_delete): Remove unused local.
1521
16adf2e6 15222014-03-26 Barry O'Reilly <gundaetiapo@gmail.com>
37ea8275
BR
1523
1524 Have (MARKER . ADJUSTMENT) undo records always be immediately
1525 after their corresponding (TEXT . POS) record in undo list.
1526 (Bug#16818)
1527 * lisp.h (record-delete): New arg record_markers.
1528 (record_marker_adjustment): No longer needed outside undo.c.
1529 * insdel.c (adjust_markers_for_delete): Move calculation of marker
1530 adjustments to undo.c's record_marker_adjustments. Note that
1531 fileio.c's decide_coding_unwind is another caller to
1532 adjust_markers_for_delete. Because it has undo list bound to t,
1533 it does not rely on adjust_markers_for_delete to record marker
1534 adjustments.
1535 (del_range_2): Swap call to record_delete and
1536 adjust_markers_for_delete so as undo marker adjustments are
1537 recorded before current deletion's adjustments, as before.
1538 (adjust_after_replace):
1539 (replace_range): Pass value for new record_markers arg to
1540 delete_record.
63032a0e 1541 * undo.c (record_marker_adjustment): Rename to
37ea8275
BR
1542 record_marker_adjustments and made static.
1543 (record_delete): Check record_markers arg and call
1544 record_marker_adjustments.
1545 (record_change): Pass value for new record_markers arg to
1546 delete_record.
1547 (record_point): at_boundary calculation no longer needs to account
1548 for marker adjustments.
1549
16adf2e6 15502014-03-26 Martin Rudalics <rudalics@gmx.at>
f2999a33
MR
1551
1552 * w32term.c (x_set_window_size): Refine fix from 2014-03-14
1553 (Bug#17077).
1554
16adf2e6 15552014-03-26 Glenn Morris <rgm@gnu.org>
33f0ba7e
GM
1556
1557 * fileio.c (Ffile_symlink_p): Doc fix. (Bug#17073)
1558
16adf2e6 15592014-03-26 Stefan Monnier <monnier@iro.umontreal.ca>
f6614a47
SM
1560
1561 * buffer.c (struct sortvec): Add field `spriority'.
1562 (compare_overlays): Use it.
1563 (sort_overlays): Set it.
1564
16adf2e6 15652014-03-26 Eli Zaretskii <eliz@gnu.org>
88c569ef
EZ
1566
1567 * xdisp.c (redisplay_window): If all previous attempts to find the
1568 cursor row failed, try a few alternatives before falling back to
9729c262 1569 the top-most row of the window. Use row_containing_pos. (Bug#17047)
88c569ef 1570
5af73b0f
JB
15712014-03-26 Juanma Barranquero <lekktu@gmail.com>
1572
1573 * image.c (x_bitmap_height, x_bitmap_width) [HAVE_X_WINDOWS]:
1574 * sysdep.c (reset_sigio) [!DOS_NT]: Declare conditionally.
1575
1576 * keyboard.c (read_decoded_event_from_main_queue): #ifdef out
1577 variables on Windows.
1578
1579 * w32fns.c (Ffile_system_info): Use parenthesis in and/or expression.
1580
1581 * w32.c (unsetenv): Remove unused var `retval'.
1582 (emacs_gnutls_pull): Remove unused vars `fdset' and `timeout'.
1583
1584 * w32notify.c (watch_worker): Remove unnecesary var sleep_result.
1585 (start_watching): Remove unused var `thr'.
1586
1587 * w32proc.c (sys_spawnve): Comment out unused vars `first', `last'.
1588 (find_child_console): Remove unnecesary var `thread_id'.
1589
1590 * w32term.c (w32_read_socket): Comment out unused vars `row', `columns'.
1591 (x_focus_frame): #ifdef 0 unused variable `dpyinfo'.
1592
11ee65af
GM
15932014-03-26 Glenn Morris <rgm@gnu.org>
1594
0b4fe078
GM
1595 * filelock.c (Flock_buffer): Doc tweak.
1596
11ee65af
GM
1597 * buffer.c (Frestore_buffer_modified_p, Fkill_buffer):
1598 * emacs.c (shut_down_emacs):
1599 * fileio.c (Finsert_file_contents, write_region):
1600 * filelock.c (top-level, syms_of_filelock):
1601 * insdel.c (prepare_to_modify_buffer_1):
1602 CLASH_DETECTION is always defined now.
1603
defd53bd
EZ
16042014-03-25 Eli Zaretskii <eliz@gnu.org>
1605
1606 * w32.c (w32_delayed_load): Call DisableThreadLibraryCalls on the
1607 DLL handle, to speed up thread startup.
1608
1e952f0a
PE
16092014-03-25 Paul Eggert <eggert@cs.ucla.edu>
1610
1611 Handle sigmask better with nested signal handlers (Bug#15561).
1612 * atimer.c (sigmask_atimers): Remove.
1613 Remaining use rewritten to use body of this function.
1614 * atimer.c (block_atimers, unblock_atimers):
1615 * callproc.c (block_child_signal, unblock_child_signal):
1616 * sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
1617 New arg OLDSET. All callers changed.
1618 * atimer.c (block_atimers, unblock_atimers):
1619 * callproc.c (block_child_signal, unblock_child_signal):
1620 * keyboard.c (handle_interrupt):
1621 * sound.c (vox_configure, vox_close):
1622 Restore the old signal mask rather than unilaterally clearing bits
1623 from the mask, in case a handler is running within another
1624 handler. All callers changed.
1625 * lisp.h, process.c, process.h, term.c:
1626 Adjust decls and callers to match new API.
1627 * sysdep.c (emacs_sigaction_init): Don't worry about masking SIGFPE;
1628 signal handlers aren't supposed to use floating point anyway.
1629 (handle_arith_signal): Unblock just SIGFPE rather than clearing mask.
1630
b029599f
DC
16312014-03-23 Daniel Colascione <dancol@dancol.org>
1632
1633 Split gc_sweep into discrete functions for legibility and better
1634 stack traces.
1635
9b017563 1636 * alloc.c (sweep_strings, sweep_vectors): Add NO_INLINE
b029599f 1637 (sweep_vectors): Fix typo in comment.
9b017563
JB
1638 (sweep_conses, sweep_floats, sweep_intervals)
1639 (sweep_symbols, sweep_misc, sweep_buffers): New functions.
b029599f
DC
1640 (gc_sweep): Call new functions, to which existing functionality is
1641 moved.
1642 * fns.c (sweep_weak_hash_tables): Add NO_INLINE.
1643
17bf44f8
JB
16442014-03-23 Juanma Barranquero <lekktu@gmail.com>
1645
1646 * w32fns.c (Fw32_shell_execute): Declare `result' only on Cygwin.
1647
b27a4043
DC
16482014-03-23 Daniel Colascione <dancol@dancol.org>
1649
df3964ce
DC
1650 * xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
1651 only if xic_style calls for it. This change allows Emacs to work
d2933655
DC
1652 with ibus. Also, don't leak resources if create_frame_xic fails,
1653 and stop caching xic_style across different displays.
577b2ffd
DC
1654 (supported_xim_styles): Make const.
1655 (best_xim_style): Remove first parameter: it's always just
1656 supported_xim_styles. Change to look at supported_xim_styles
1657 directly.
b27a4043 1658
a3116188
DC
16592014-03-23 Daniel Colascione <dancol@dancol.org>
1660
1661 * term.c (init_tty): Rearrange condition for clarity; print
1662 appropriate diagnostic.
1663
3768a869
DC
16642014-03-23 Daniel Colascione <dancol@dancol.org>
1665
1666 * process.c (DATAGRAM_CONN_P): Don't underflow datagram_address
1667 array. (ASAN caught.)
1668
00156f95
GM
16692014-03-22 Glenn Morris <rgm@gnu.org>
1670
1671 * callproc.c (init_callproc): In etc, look for NEWS rather than GNU.
1672
ea64063f
DC
16732014-03-22 Daniel Colascione <dancol@dancol.org>
1674
1675 * process.c (conv_sockaddr_to_lisp): When extracting the string
00156f95 1676 names of AF_LOCAL sockets, stop before reading uninitialized memory.
ea64063f 1677
fef27dc1
YM
16782014-03-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1679
1680 Fix regression introduced by patch for Bug#10500.
1681 * xterm.c (x_draw_image_relief): Respect Vtool_bar_button_margin.
1682 * w32term.c (x_draw_image_relief): Likewise.
1683
21e18b30
MR
16842014-03-21 Martin Rudalics <rudalics@gmx.at>
1685
1686 * w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't
1687 constrain frame size in SW_SHOWMAXIMIZED case so we can truly
1688 maximize a frame for odd default fonts.
1689
26e91130
GM
16902014-03-21 Glenn Morris <rgm@gnu.org>
1691
1692 * minibuf.c (history-length): Increase default from 30 to 100.
1693
f20b8315
DC
16942014-03-21 Daniel Colascione <dancol@dancol.org>
1695
c4beb8da
DC
1696 * xterm.c (x_bitmap_icon): Stop reading the icon bitmap from disk
1697 every time we switch to minibuffer.
1698
f20b8315
DC
1699 * alloc.c (lisp_align_malloc, allocate_string_data)
1700 (allocate_vectorlike): Allow mmap allocation of lisp objects.
9b017563 1701 (pointers_fit_in_lispobj_p, mmap_lisp_allowed_p): New functions.
f20b8315 1702
6d731d41
EZ
17032014-03-21 Eli Zaretskii <eliz@gnu.org>
1704
1705 * w32fns.c (Fw32_shell_execute) [!CYGWIN]: Use ShellExecuteEx, to
1706 support more "verbs".
1707
f58269c4
DC
17082014-03-21 Daniel Colascione <dancol@dancol.org>
1709
1710 Always prohibit dumping a dumped Emacs.
1711
1712 * emacs.c (might_dump): New variable.
1713 (Fdump_emacs): Always prohibit dumping of dumped Emacs.
1714 * lisp.h (might_dump): Declare.
1715 * unexcw.c (unexec): Remove now-redundant multiple-dump detection code.
1716
0df098bf
PE
17172014-03-20 Paul Eggert <eggert@cs.ucla.edu>
1718
1719 * doc.c (store_function_docstring): Fix pointer signedness mismatch.
1720
caecb91c
SM
17212014-03-20 Stefan Monnier <monnier@iro.umontreal.ca>
1722
049fac7c
SM
1723 * doc.c (store_function_docstring): Warn when we don't know where to
1724 put a docstring.
1725 (Fsubstitute_command_keys): Don't advertise the fact that
1726 text-properties are dropped, since we think it's a bug that we'll fix
1727 in 24.5.
1728
caecb91c
SM
1729 * frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date.
1730 * xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame.
1731 * frame.c (frame_garbaged): Make "docstring" more precise.
1732
7b9cb544
GM
17332014-03-20 Glenn Morris <rgm@gnu.org>
1734
1735 * charset.c (init_charset): When we cannot find the charsets directory,
1736 mention if EMACSDATA is set.
1737
37ca9077
PE
17382014-03-19 Paul Eggert <eggert@cs.ucla.edu>
1739
d16ae622
PE
1740 * fns.c (Frandom): Fix rare bug where the result isn't random.
1741
37ca9077
PE
1742 Fix porting inconsistency about rounding to even.
1743 * floatfns.c (emacs_rint) [!HAVE_RINT]: Round to even.
1744 This way, the unusual !HAVE_RINT case acts like the usual
1745 HAVE_RINT case, and we can fix the documentation accordingly.
1746
722493d7
EZ
17472014-03-19 Eli Zaretskii <eliz@gnu.org>
1748
1749 * w32fns.c (reset_modifiers): Zero out keystate[] before using it.
1750 (w32_wnd_proc): Initialize the dwHoverTime member of
1751 TRACKMOUSEEVENT structure.
1752
525d9a3c
TZ
17532014-03-17 Teodor Zlatanov <tzz@lifelogs.com>
1754
1755 * gnutls.c (Fgnutls_boot): Fix case of :verify-error = t.
1756
2a3d9a06
EZ
17572014-03-16 Eli Zaretskii <eliz@gnu.org>
1758
1759 * search.c (find_newline): Speed up the function when using the
5f0da6ce 1760 newline cache, by halving the number of calls to
2a3d9a06
EZ
1761 region_cache_forward and region_cache_backward. (Bug#16830)
1762
b6d8543c
JB
17632014-03-15 Juanma Barranquero <lekktu@gmail.com>
1764
1765 * buffer.c (Fset_buffer): Document return value (bug#17015).
1766
cfd5e825
MR
17672014-03-14 Martin Rudalics <rudalics@gmx.at>
1768
1769 * w32term.c (x_set_window_size): When frame-resize-pixelwise is
1770 nil, always resize character wise to avoid potential loss of the
1771 mode line (Bug#16923 related).
1772
8960529e
MR
17732014-03-12 Martin Rudalics <rudalics@gmx.at>
1774
1775 * frame.c (x_set_frame_parameters): Always calculate new sizes
1776 pixelwise to avoid potential loss when rounding.
1777
b0b486db
DA
17782014-03-11 Dmitry Antipov <dmantipov@yandex.ru>
1779
1780 * xfns.c (x_set_mouse_color): Recolor vertical_drag_cursor.
1781 * xterm.c (x_free_frame_resources): Free all allocated cursors.
1782
70db0db7
EZ
17832014-03-10 Eli Zaretskii <eliz@gnu.org>
1784
1785 * w32.c (fstatat): Don't add an extra slash if the argument ends
1786 with a slash: this fails the subsequent call to stat_worker on
1787 Windows 9X. Reported by oslsachem <oslsachem@gmail.com>.
1788
7e940b65
MR
17892014-03-09 Martin Rudalics <rudalics@gmx.at>
1790
1791 * xdisp.c (Fwindow_text_pixel_size): Adjust doc-string.
1792
e61a31bf
JD
17932014-03-08 Jan Djärv <jan.h.d@swipnet.se>
1794
1795 * nsterm.h (MAC_OS_X_VERSION_10_9): Add.
1796
7e940b65
MR
1797 * nsterm.m (constrainFrameRect:toScreen:): Constrain normally
1798 when frame is only on one screen (Bug#14713).
e61a31bf 1799
2c65ad21
EZ
18002014-03-08 Eli Zaretskii <eliz@gnu.org>
1801
1802 * xdisp.c (move_it_in_display_line_to): If word-wrap is ON, and
1803 there's a valid wrap point in the display line, the last glyph
1804 cannot "just barely fit" on this row, because display_line doesn't
1805 let it. Instead, proceed as if the last glyph didn't fit, so that
1806 we eventually back up the iterator to the wrap point. This avoids
1807 delusional behavior of move_it_to, whereby it proceeds to the next
1808 display line, but sets current_x to zero for all the glyphs that
caecb91c
SM
1809 without word-wrap would fit on the previous display line.
1810 One result was that visual-order cursor movement behaved erratically
2c65ad21
EZ
1811 under word-wrap.
1812 (Fmove_point_visually): Add code to find the x coordinate of the
1813 last character before wrap point, under word-wrap on a TTY.
1814
b646ea12
EZ
18152014-03-07 Eli Zaretskii <eliz@gnu.org>
1816
1817 * xdisp.c (Fmove_point_visually): When under word-wrap, accept
1818 also return value of MOVE_POS_MATCH_OR_ZV from
1819 move_it_in_display_line_to, when moving from beginning of line to
1820 point's position. (Bug#16961)
1821
2c6053e8
MR
18222014-03-07 Martin Rudalics <rudalics@gmx.at>
1823
1824 * buffer.c (Vbuffer_list_update_hook): Doc-string fix.
1825 * window.c (Fselect_window): Explain NORECORD and
1826 `buffer-list-update-hook' in doc-string.
1827
cac0a1d6
MR
18282014-03-06 Martin Rudalics <rudalics@gmx.at>
1829
1830 * window.c (Fother_window_for_scrolling): Check that
1831 Vother_window_scroll_buffer is a buffer.
1832
12e852a2
DA
18332014-03-06 Dmitry Antipov <dmantipov@yandex.ru>
1834
1835 * xterm.c (xim_initialize): Always pass a copy of resource name
1836 to XRegisterIMInstantiateCallback and eassert whether return
1837 value is True. Passing copy is important because Xlib doesn't
1838 make its own copy and resource name argument usually points to
1839 SSDATA (Vx_resource_name), which may be changed from Lisp.
1840 (xim_close_display): For XUnregisterIMInstantiateCallback,
1841 always eassert return value and pass exactly the same values
caecb91c
SM
1842 as were used for XRegisterIMInstantiateCallback.
1843 Otherwise XUnregisterIMInstantiateCallback will always fail. See Xlib
12e852a2
DA
1844 sources to check why if you are interested.
1845
e1a2cb1c
MR
18462014-03-05 Martin Rudalics <rudalics@gmx.at>
1847
1848 * dispnew.c (change_frame_size_1): Add new_lines instead of
1849 new_height, the latter may be still zero if passed as such.
1850 * window.c (Fwindow_pixel_height): Mention bottom divider in
1851 doc-string.
1852
d2f720ac
PE
18532014-03-05 Paul Eggert <eggert@cs.ucla.edu>
1854
e1a2cb1c
MR
1855 Fix "resource temporarily unavailable" with xgselect
1856 (Bug#16925).
e6e8a5eb
PE
1857 * xgselect.c: Include <stdbool.h>.
1858 (xg_select) [!USE_GTK]: Don't lose track of errno.
1859
d2f720ac
PE
1860 Fix minor --enable-gcc-warnings issues.
1861 * widget.c (update_various_frame_slots, EmacsFrameResize):
1862 Avoid unused locals. Prefer 'if' to '#if' when either will do.
1863
94a089b5
KB
18642014-03-04 Ken Brown <kbrown@cornell.edu>
1865
1866 * gmalloc.c (aligned_alloc): Clarify the code by making `adj'
1867 represent the actual adjustment needed for alignment.
1868
201572ec
EZ
18692014-03-04 Eli Zaretskii <eliz@gnu.org>
1870
1871 * gmalloc.c (aligned_alloc): Don't allocate more memory than
1872 needed, and don't reallocate if the initial allocation already
1873 fits the bill. Suggested by Ken Brown <kbrown@cornell.edu>.
1874
a55130ca
YM
18752014-03-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1876
1877 * xterm.c (x_draw_stretch_glyph_string): Reset clipping.
1878 (Bug#16932)
1879
5b87d0d9
MN
18802014-03-04 Michal Nazarewicz <mina86@mina86.com>
1881
1882 * cmds.c (delete-char): Update docstring pointing out that the
1883 function ignores `delete-active-region' and `overwrite-mode'.
1884
bd650c24
EZ
18852014-03-03 Eli Zaretskii <eliz@gnu.org>
1886
757c70af
EZ
1887 * font.c (Fframe_font_cache): Fix last change. (Bug#16930)
1888
bd650c24
EZ
1889 * gmalloc.c (aligned_alloc): Fix adjustment of size of the
1890 allocated buffer due to alignment.
1891 (freehook): If the block to be freed was allocated by
1892 'aligned_alloc', find its real pointer before calling 'free'.
1893 (Bug#16901)
1894 (mabort) [emacs]: Call 'emacs_abort', not 'abort', to provide a
1895 backtrace.
1896
8c1c7611
DA
18972014-03-03 Dmitry Antipov <dmantipov@yandex.ru>
1898
1899 * font.c (toplevel): Adjust comment about font cache layout.
1900 (font_clear_cache): Fix to match real font cache layout.
1901 Suggested by <namespace_collision@yahoo.com> in Bug#16069.
1902 (Fframe_font_cache) [FONT_DEBUG]: New function.
1903 (syms_of_font) [FONT_DEBUG]: Defsubr it.
1904
19dae293
DA
1905 Avoid crashes when X fonts are erroneously freed on reused X
1906 'Display *' connection data (Bug#16069). Note that X font
1907 resources still may be leaked, but currently there is no way
1908 to completely avoid it.
1909 * xterm.h (struct x_display_info): New member x_id. Add comments.
1910 * xterm.c (x_display_id): New variable.
1911 (x_term_init): Assign identifier to each opened X connection.
1912 * xfont.c (struct xfont): New member x_display_id.
1913 (xfont_open): Initialize it with frame's display id.
1914 (xfont_close): Check whether font's display id matches the one
1915 recorded for the given display. Adjust comment.
1916 * xftfont.c (struct xftfont_info):
1917 (xftfont_open, xftfont_close): Exactly as above with xfont stuff.
1918
2907acd4
MR
19192014-03-01 Martin Rudalics <rudalics@gmx.at>
1920
1921 Consider Vother_window_scroll_buffer valid iff it's a live buffer.
1922 * window.c (Fother_window_for_scrolling): Don't try to scroll a
1923 killed Vother_window_scroll_buffer.
1924 (Vother_window_scroll_buffer): Fix doc-string accordingly.
1925
cb8b26b4
EZ
19262014-03-01 Eli Zaretskii <eliz@gnu.org>
1927
1928 * fileio.c (Fexpand_file_name) [WINDOWSNT]: Don't treat file names
1929 that start with more than 2 slashes as UNCs. (Bug#16751)
1930
8268febf
PE
19312014-02-28 Paul Eggert <eggert@penguin.cs.ucla.edu>
1932
1933 Fix a few crashes and leaks when cloning C strings.
1934 * alloc.c, lisp.h (dupstring): New function.
1935 * gtkutil.c (xg_get_font):
1936 * term.c (tty_default_color_capabilities):
1937 * xsettings.c (store_monospaced_changed)
1938 (store_font_name_changed, parse_settings)
1939 (read_and_apply_settings, init_gsettings, init_gconf): Use it.
1940 This avoids some unlikely crashes due to accessing freed storage,
1941 and avoids some minor memory leaks in the more-typical case.
1942
5c809195
MR
19432014-02-28 Martin Rudalics <rudalics@gmx.at>
1944
1945 * xdisp.c (note_mode_line_or_margin_highlight): Don't show drag
1946 cursor when modeline can't be dragged (Bug#16647).
1947
2241d76e
GM
19482014-02-28 Glenn Morris <rgm@gnu.org>
1949
1950 * doc.c (Fsnarf_documentation): Snarf not-yet-bound variables
1951 from custom-delayed-init-variables. (Bug#11565)
1952
653b6ea3
MR
19532014-02-27 Martin Rudalics <rudalics@gmx.at>
1954
1955 More fixes for mouse glyph calculations (Bug#16647).
1956 * window.c (coordinates_in_window): In intersection of
1957 horizontal and vertical window dividers prefer the horizontal
1958 one. Add some extra parens to last fix.
1959 (window_relative_x_coord): Return x-coordinate for header and
1960 mode line too.
1961 * xdisp.c (remember_mouse_glyph): In text area don't extend
1962 glyph into mode line to show the vertical drag cursor there
1963 immediately. Subdivide mouse glyphs in right fringes to show a
1964 horizontal drag cursor as soon as we enter the "grabbable width"
1965 portion. Handle vertical border case separately. Do not
1966 subdivide window divider areas.
1967 (note_mouse_highlight): On bottom divider of bottommost windows
1968 show vertical drag cursor only when the minibuffer window can be
1969 resized.
1970
11de63ed
EZ
19712014-02-27 Eli Zaretskii <eliz@gnu.org>
1972
1973 * xdisp.c (pop_it): Restore the it->face_box_p flag which could be
1974 reset by the face of the object just displayed. See also bug#76.
1975 (get_next_display_element): If the string came from a display
1976 property, examine the box face attribute at it->position, not at
1977 it->current.pos, since the latter was not updated yet. (Bug#16870)
1978 (handle_face_prop): Improve commentary.
1979
d8c25f59
MA
19802014-02-27 Michael Albinus <michael.albinus@gmx.de>
1981
1982 * dbusbind.c (Fdbus__init_bus, Qdbus__init_bus, Sdbus__init_bus):
1983 Rename from Fdbus_init_bus_1, Qdbus_init_bus_1, Sdbus_init_bus_1.
1984
aea124c4
MR
19852014-02-26 Martin Rudalics <rudalics@gmx.at>
1986
1987 Fixes around Bug#16647.
1988 * xdisp.c (remember_mouse_glyph): Handle ON_RIGHT_DIVIDER and
1989 ON_BOTTOM_DIVIDER cases.
1990 * window.c (coordinates_in_window): Return ON_VERTICAL_BORDER
1991 only if the window has no right divider.
1992 (Fcoordinates_in_window_p): Fix doc-string.
1993
0e46275b
JB
19942014-02-25 Juanma Barranquero <lekktu@gmail.com>
1995
1996 * lread.c (Funintern): Fix doc to match advertised calling convention.
1997
7c56ecf5
DC
19982014-02-24 Daniel Colascione <dancol@dancol.org>
1999
2000 * keyboard.c (read_char): Close race that resulted in lost events.
2001
f33095ed
GM
20022014-02-22 Glenn Morris <rgm@gnu.org>
2003
ca58fa73
GM
2004 * frame.c (frame-alpha-lower-limit, frame-resize-pixelwise):
2005 * window.c (window-resize-pixelwise): Doc fixes.
2006
f33095ed
GM
2007 * process.c (Finternal_default_process_filter)
2008 (Finternal_default_process_sentinel): Doc tweaks.
2009
458e643b
GM
20102014-02-21 Glenn Morris <rgm@gnu.org>
2011
2012 * process.c (Fprocess_buffer, Faccept_process_output)
2013 (Finternal_default_process_filter, Finternal_default_process_sentinel):
2014 Doc fixes.
2015
8dd3e94f
MR
20162014-02-21 Martin Rudalics <rudalics@gmx.at>
2017
2018 * window.c (Fwindow_scroll_bar_width): New function.
2019
9901fa1a
PE
20202014-02-21 Paul Eggert <eggert@cs.ucla.edu>
2021
2022 Pacify GCC when configuring with --enable-gcc-warnings.
2023 * xdisp.c (move_it_in_display_line_to) [lint]:
2024 Initialize recently-added local.
2025
48198420
DC
20262014-02-21 Daniel Colascione <dancol@dancol.org>
2027
2028 * dbusbind.c: Rename dbus-init-bus to dbus-init-bus-1.
2029
44a2be2d
EZ
20302014-02-20 Eli Zaretskii <eliz@gnu.org>
2031
2032 * xdisp.c (init_iterator): Don't dereference a bogus face
2033 pointer. (Bug#16819)
dba8296c
EZ
2034 (try_cursor_movement): Don't use cursor position if
2035 set_cursor_from_row failed to compute it. This avoids assertion
2036 violations in MATRIX_ROW.
679f7827
EZ
2037 (move_it_in_display_line_to): Save the iterator state in ppos_it
2038 only once per call. Reimplement the method used to return to the
2039 best candidate position if all the positions found in display line
2040 are beyond TO_CHARPOS. This cuts down the number of calls to
2041 bidi_shelve_cache, which moves a lot of stuff when lines are long
2042 and include bidirectional text. (Bug#15555)
44a2be2d 2043
189e7007
GM
20442014-02-20 Glenn Morris <rgm@gnu.org>
2045
2046 * data.c (Fdefalias): Doc fix.
2047
c0213820
EZ
20482014-02-19 Eli Zaretskii <eliz@gnu.org>
2049
d34f67da
EZ
2050 * xdisp.c (display_line): Fix horizontal scrolling of large images
2051 when fringes are turned off. This comes at a price of not
2052 displaying the truncation/continuation glyphs in this case.
2053 (Bug#16806)
2054
c0213820
EZ
2055 * image.c (x_create_x_image_and_pixmap) [HAVE_NTGUI]: If
2056 CreateDIBSection returns an error indication, zero out *ximg after
2057 destroying the image. This avoids crashes in memory allocations
2058 due to the fact that some of the callers also call
2059 x_destroy_x_image, which will attempt to free an already free'd
2060 block of memory.
2061
5185f8ed
MR
20622014-02-18 Martin Rudalics <rudalics@gmx.at>
2063
2064 * widget.c (update_various_frame_slots): Don't set
2065 FRAME_PIXEL_HEIGHT and FRAME_PIXEL_WIDTH here (Bug#16736).
2066
1825653e
MA
20672014-02-18 Michael Albinus <michael.albinus@gmx.de>
2068
2069 * dbusbind.c (xd_close_bus): Apply proper check on busobj.
2070
3cb98721
PE
20712014-02-17 Paul Eggert <eggert@cs.ucla.edu>
2072
2073 temacs --daemon fix (Bug#16599).
2074 * emacs.c (main): Initialize daemon_pipe[1] here ...
2075 (syms_of_emacs): ... instead of here.
2076
35e951cd 20772014-02-16 Anders Lindgern <andlind@gmail.com>
62901354
AL
2078
2079 * nsterm.m (keyDown:): Check for normal key even if NSNumericPadKeyMask
2080 is set (Bug#16505).
2081
fa8ac13c
DC
20822014-02-16 Daniel Colascione <dancol@dancol.org>
2083
2084 * dbusbind.c (xd_lisp_dbus_to_dbus): New function.
2085 (xd_get_connection_address): Use it.
2086 (xd_close_bus): Use xd_lisp_dbus_to_dbus to instead of
2087 xd_get_connection_address because the latter signals if the bus
2088 we're trying to close is already disconnected.
2089
e2607667
EZ
20902014-02-13 Eli Zaretskii <eliz@gnu.org>
2091
2092 * w32proc.c (start_timer_thread): Pass a non-NULL pointer as last
2093 argument to CreateThread. This avoids segfaults on Windows 9X.
2094 Reported by oslsachem <oslsachem@gmail.com>.
2095
d51c175a
PE
20962014-02-13 Paul Eggert <eggert@cs.ucla.edu>
2097
2098 Fix subspace record bug on HP-UX 10.20 (Bug#16717).
2099 * unexhp9k800.c (unexec_error): New function, to simplify the code.
2100 (check_lseek): New function, to report lseek errors.
2101 (save_data_space, update_file_ptrs, read_header, write_header)
2102 (copy_file, copy_rest, unexec): Use these news functions.
2103 (update_file_ptrs): Don't assume wraparound behavior when
2104 converting a large size_t value to off_t.
2105
28c16c40
DA
21062014-02-13 Dmitry Antipov <dmantipov@yandex.ru>
2107
2108 * composite.c (fill_gstring_header): Pass positions as C integers
2109 and move parameters checking to...
ccd5d23b
DA
2110 (Fcomposition_get_gstring): ...this function. Handle case when
2111 buffer positions are in reversed order and avoid crash (Bug#16739).
2112 Adjust docstring.
28c16c40
DA
2113 * buffer.c (validate_region): Mention current buffer in error message.
2114
c295fc18 21152014-02-12 Marcus Karlsson <mk@acc.umu.se> (tiny change)
a9a61c77
JD
2116
2117 * image.c (pbm_load): Set to NO_PIXMAP on error (Bug#16683).
2118
81bf5420
LI
21192014-02-12 Lars Ingebrigtsen <larsi@gnus.org>
2120
2121 * buffer.c (syms_of_buffer): Doc clarification (bug#9981).
2122
9a84bfd6
GM
21232014-02-11 Glenn Morris <rgm@gnu.org>
2124
2125 * nsfns.m (ns_display_info_for_name, Fx_open_connection):
2126 Replace refs to "OpenStep" in messages.
2127
e41fe0d3
PE
21282014-02-10 Paul Eggert <eggert@cs.ucla.edu>
2129
2130 Avoid "." at end of error diagnostics.
2131 * cmds.c (Fself_insert_command): Reword and avoid "." at end.
2132 * font.c (Ffont_at):
2133 * nsfns.m (ns_display_info_for_name):
2134 * nsselect.m (Fx_own_selection_internal):
2135 * nsterm.m (performDragOperation:):
2136 Remove "." from end of diagnostic.
2137
a3a8a7da
LI
21382014-02-10 Lars Ingebrigtsen <larsi@gnus.org>
2139
2140 * fns.c (Fmaphash): Say what `maphash' returns, since it may be
2141 unintuitive (bug#15824).
8cd86d04 2142 (Fyes_or_no_p): Doc fix (bug#15456).
a3a8a7da 2143
c6795590
DA
21442014-02-10 Dmitry Antipov <dmantipov@yandex.ru>
2145
2146 * cmds.c (Fself_insert_command): Respect the width of EMACS_INT
2147 and avoid warning.
575593db
DA
2148 * eval.c (call_debugger): When exiting the debugger, do not allow
2149 max_specpdl_size less than actual binding depth (Bug#16603).
2150 (syms_of_eval): Adjust docstring.
c6795590 2151
fe461220
LI
21522014-02-09 Lars Ingebrigtsen <larsi@gnus.org>
2153
c838bca9
LI
2154 * cmds.c (Fself_insert_command): Output a clearer error message on
2155 negative repetitions (bug#9476).
2156
fe461220
LI
2157 * macros.c (Fexecute_kbd_macro): Doc fix (bug#14206).
2158
af3e68a0
LI
21592014-02-08 Lars Ingebrigtsen <larsi@gnus.org>
2160
8acaaad7
LI
2161 * syntax.c (Fskip_syntax_backward): Doc clarification (bug#15115).
2162
aa60235a
LI
2163 * minibuf.c (Fread_string): Doc clarification (bug#15422).
2164
af3e68a0
LI
2165 * buffer.c (Fmake_overlay): Doc clarification (bug#15489).
2166
85ade7ee
JB
21672014-02-08 Juanma Barranquero <lekktu@gmail.com>
2168
2169 * keyboard.c (Frecursive_edit): Fix typo in docstring.
2170
bb01d7bb
LI
21712014-02-08 Lars Ingebrigtsen <larsi@gnus.org>
2172
fff711ee
LI
2173 * xdisp.c (syms_of_xdisp): Doc clarification (bug#15657).
2174
bb01d7bb
LI
2175 * keyboard.c (Frecursive_edit): Say more precicely how throwing
2176 `exit' works (bug#15865).
2177
99f10a5d
MR
21782014-02-07 Martin Rudalics <rudalics@gmx.at>
2179
9be95071 2180 Constrain window box/body sizes and margin widths (Bug#16649).
99f10a5d
MR
2181 * xdisp.c (window_box_width): Don't return less than zero.
2182 (window_box_left_offset, window_box_right_offset): Don't return
2183 more than the window's pixel width.
dc0e4c48
MR
2184 * window.c (window_body_height, window_body_width): Don't return
2185 negative value.
9be95071 2186 (window_resize_apply): Adjust margin width, if necessary.
99f10a5d 2187
a0baf35f
GM
21882014-02-07 Glenn Morris <rgm@gnu.org>
2189
2190 * nsterm.m (syms_of_nsterm): Doc fix.
2191
829f4f22
EZ
21922014-02-06 Eli Zaretskii <eliz@gnu.org>
2193
5b87d0d9
MN
2194 * w32.c (pMultiByteToWideChar, pWideCharToMultiByte):
2195 New variables: pointers through which to call the respective APIs.
829f4f22 2196 (filename_to_utf16, filename_from_utf16, filename_to_ansi)
5b87d0d9
MN
2197 (filename_from_ansi, sys_link, check_windows_init_file):
2198 Call MultiByteToWideChar and WideCharToMultiByte through pointers.
829f4f22
EZ
2199 This is required on Windows 9X, where we dynamically load
2200 UNICOWS.DLL which has their non-stub implementations.
2201 (maybe_load_unicows_dll): Assign addresses to these 2 function
2202 pointers after loading UNICOWS.DLL.
2203
2204 * w32fns.c (Fx_file_dialog, Fw32_shell_execute) [!CYGWIN]: Call
2205 MultiByteToWideChar and WideCharToMultiByte through function
2206 pointers.
2207
5b87d0d9
MN
2208 * w32.h (pMultiByteToWideChar, pWideCharToMultiByte):
2209 New declarations.
829f4f22 2210
029788c7
JD
22112014-02-06 Jan Djärv <jan.h.d@swipnet.se>
2212
2213 * nsterm.m (toggleFullScreen:): Hide menubar on secondary monitor
2214 for OSX >= 10.9 if separate spaces are used.
2215 (toggleFullScreen:): Use screen of w instead of fw (Bug#16659).
2216
314ffdb1
GM
22172014-02-06 Glenn Morris <rgm@gnu.org>
2218
2219 * buffer.c (cache-long-scans): Doc fix.
2220
6d48053b
EZ
22212014-02-05 Eli Zaretskii <eliz@gnu.org>
2222
2223 * w32fns.c (Fw32_shell_execute): Doc fix.
2224
bfdd79d3
BG
22252014-02-05 Bastien Guerry <bzg@gnu.org>
2226
2227 * syntax.c (Fforward_word): Call Fconstrain_to_field with
2228 ESCAPE-FROM-EDGE set to `nil' (Bug#16453).
2229
fa49abf8
MR
22302014-02-05 Martin Rudalics <rudalics@gmx.at>
2231
415e3810
MR
2232 * fringe.c (draw_fringe_bitmap_1): Don't draw a fringe if it's
2233 outside the window (Bug#16649).
2234
fa49abf8
MR
2235 * xdisp.c (note_mouse_highlight): When entering a margin area show
2236 a non-text cursor (Bug#16647).
2237
8e5917ec
PE
22382014-02-04 Paul Eggert <eggert@cs.ucla.edu>
2239
2240 * menu.c (Fx_popup_dialog): Remove label 'dialog_via_menu'.
2241 It prompted a compile-time diagnostic on GNU/Linux.
2242 Simplify to remove the need for the label.
2243
e139a33c
EZ
22442014-02-04 Eli Zaretskii <eliz@gnu.org>
2245
2246 * w32menu.c (w32_popup_dialog): Don't condition the whole function
2247 on HAVE_DIALOGS. If the dialog is "simple", pop up a message box
2248 to show it; otherwise return 'unsupported--w32-dialog' to signal
5b87d0d9
MN
2249 to the caller that emulation with menus is necessary.
2250 This resurrects code inadvertently deleted by the 2013-10-08 commit.
e139a33c
EZ
2251 (Bug#16636)
2252 (syms_of_w32menu): DEFSYM Qunsupported__w32_dialog.
2253
2254 * w32term.h (w32_popup_dialog): Prototype is no longer conditioned
2255 by HAVE_DIALOGS.
2256
2257 * menu.c (Fx_popup_dialog): Don't condition the call to
2258 w32_popup_dialog on HAVE_DIALOGS. If w32_popup_dialog returns a
2259 special symbol 'unsupported--w32-dialog', emulate the dialog with
2260 a menu by calling x-popup-menu.
2261
2262 * menu.h (Qunsupported__w32_dialog): New extern variable.
2263
86d2bf49
MA
22642014-02-04 Michael Albinus <michael.albinus@gmx.de>
2265
2266 * keyboard.c (kbd_buffer_get_event): Read file notification events
2267 also in batch mode.
2268
2269 * xgselect.c (xg_select): Read glib events in any case, even if
2270 there are no file descriptors to watch for. (Bug#16519)
2271
764ec9e5
MR
22722014-02-03 Martin Rudalics <rudalics@gmx.at>
2273
2274 * dispextern.h (face_id): Add WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID
2275 and WINDOW_DIVIDER_LAST_PIXEL_FACE_ID.
2276 * w32term.c (w32_draw_window_divider): Handle first and last
2277 pixels specially.
2278 * w32term.h (w32_fill_area_abs): New function.
2279 * xdisp.c (x_draw_right_divider): Don't draw over bottom
2280 divider.
2281 * xfaces.c (realize_basic_faces): Handle new face ids.
2282 * xfns.c (Fx_create_frame): Call x_default_parameter for right
2283 and bottom divider width.
2284 * xterm.c (x_draw_window_divider): Handle first and last pixels
2285 specially.
2286
34baf96c
DA
22872014-02-03 Dmitry Antipov <dmantipov@yandex.ru>
2288
2289 * print.c (Fexternal_debugging_output): Add cast to pacify
2290 --enable-gcc-warnings.
9cad4576
DA
2291 * eval.c (call_debugger): Grow specpdl if the debugger was
2292 entered due to specpdl overflow (Bug#16603) and allow more
2293 specpdl space for the debugger itself.
34baf96c 2294
b4168649
MR
22952014-02-02 Martin Rudalics <rudalics@gmx.at>
2296
2297 * w32fns.c (Fx_create_frame): Process frame alpha earlier.
2298 (Bug#16619)
2299
cb13e9a8
EZ
23002014-02-01 Eli Zaretskii <eliz@gnu.org>
2301
28e6cee8
EZ
2302 * w32fns.c (Ffile_system_info): Use WINAPI in the function
2303 pointers that get the address of GetDiskFreeSpaceEx. (Bug#16615)
2304
9ef58a52
EZ
2305 * print.c (Fexternal_debugging_output): If the argument character
2306 is non-ASCII, encode it with the current locale's encoding before
2307 writing the result to the terminal. (Bug#16448)
2308
cb13e9a8
EZ
2309 * w32fns.c (Fw32_shell_execute): Don't call file-exists-p for
2310 DOCUMENT that is a "remote" file name, i.e. a file-handler exists
2311 for it. (Bug#16558)
2312
507a173f
AS
23132014-01-30 Andreas Schwab <schwab@linux-m68k.org>
2314
2315 * process.c (create_process): Reset SIGPROF handler in the child.
2316 * callproc.c (call_process): Likewise.
2317
e9abb8a8
PE
23182014-01-29 Paul Eggert <eggert@cs.ucla.edu>
2319
2320 * xmenu.c (create_and_show_popup_menu): Port comment to C89.
2321
198af6df
EZ
23222014-01-29 Eli Zaretskii <eliz@gnu.org>
2323
824a51e6
EZ
2324 * .gdbinit (xprintstr, xprintbytestr): Don't use repetition count
2325 of zero to print strings, GDB doesn't like it.
2326
198af6df
EZ
2327 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE, not
2328 STRING_CHAR_AND_LENGTH, so that if the string is relocated by GC,
2329 we still use correct addresses. (Bug#16576)
2330
52840a9c
KH
23312014-01-27 K. Handa <handa@gnu.org>
2332
f2726fa2
GM
2333 Fix bug#16286 by a different method from 2014-01-26T00:32:30Z!eggert@cs.ucla.edu,
2334 to preserve the code detection behavior of 24.3.
52840a9c 2335 * coding.h (struct coding_system): New member detected_utf8_bytes.
52840a9c
KH
2336 * coding.c (detect_coding_utf_8): Set coding->detected_utf8_bytes.
2337 (decode_coding_gap): Use short cut for UTF-8 file reading only
2338 when coding->detected_utf8_bytes equals to coding->src_bytes.
52840a9c
KH
2339 * fileio.c (Finsert_file_contents): Cancel the previous change.
2340
5442c6ce
MR
23412014-01-29 Martin Rudalics <rudalics@gmx.at>
2342
2343 * w32fns.c (x_set_tool_bar_lines): Don't clear area on frames
2344 that are not visible.
2345
61c2b0b3
JD
23462014-01-29 Jan Djärv <jan.h.d@swipnet.se>
2347
2348 * xmenu.c (create_and_show_popup_menu): Handle case when no key
2349 is grabbed (Bug#16565).
2350
1dcb169c
MR
23512014-01-28 Martin Rudalics <rudalics@gmx.at>
2352
2353 * xdisp.c (last_max_ascent): Re-remove after erroneously
2354 reintroducing it on 2013-11-30 and abolishing Dmitry's removal
2355 from 2013-03-29.
2356 (move_it_to): Re-remove reference to last_max_ascent.
2357 (Fwindow_text_pixel_size): Add iterator's max_ascent and
5b87d0d9
MN
2358 max_descent here instead of calling line_bottom_y.
2359 Fix doc-string.
1dcb169c 2360
6affb4a8
DA
23612014-01-28 Dmitry Antipov <dmantipov@yandex.ru>
2362
2363 * terminal.c (initial_free_frame_resources): New function.
2364 (init_initial_terminal): Install new hook to free face cache
2365 on initial frame and avoid memory leak. For details, see
2366 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01974.html>.
2275de87 2367 * xfaces.c (free_frame_faces): Adjust comment.
6affb4a8 2368
12cb2b06
PE
23692014-01-26 Paul Eggert <eggert@cs.ucla.edu>
2370
2371 * data.c (Fstring_to_number): Document results if unparsable
2372 (Bug#16551).
2373
4988180d
JD
23742014-01-26 Jan Djärv <jan.h.d@swipnet.se>
2375
2376 * xterm.c (x_focus_changed): Check for non-X terminal-frame (Bug#16540)
2377
4f8c23b1
PE
23782014-01-26 Paul Eggert <eggert@cs.ucla.edu>
2379
e6f29a68
PE
2380 When decoding, prefer ptrdiff_t to int for buffer positions etc.
2381 * coding.c (detect_coding_utf_8, emacs_mule_char)
2382 (detect_coding_iso_2022, encode_coding_iso_2022, check_ascii)
2383 (check_utf_8, decode_coding):
2384 * coding.h (struct coding_system.errors):
2385 Use ptrdiff_t, not int, for integer values derived from buffer and
2386 string positions.
2387
4f8c23b1
PE
2388 Fix crash with insert-file-contents and misdecoded text (Bug#16286).
2389 * fileio.c (Finsert_file_contents): Set CODING_MODE_LAST_BLOCK
2390 before invoking decode_coding_gap, since there's just one block.
2391
45ccd909
MR
23922014-01-25 Martin Rudalics <rudalics@gmx.at>
2393
2394 Fix handling of face attributes in Fx_create_frame (Bug#16529).
2395 * w32fns.c (Fx_create_frame): Don't inhibit running Lisp code
2396 too early. Again run change_frame_size before assigning menu-
2397 and tool-bar-lines.
2398
83682f3e
FP
23992014-01-25 Fabrice Popineau <fabrice.popineau@gmail.com>
2400
2401 * w32term.c (w32_read_socket): When the WM_DISPLAYCHANGE message
2402 arrives, call x_check_fullscreen, in case the new display has a
2403 different resolution. (Bug#16517)
2404
e96f7bf1
EZ
24052014-01-25 Eli Zaretskii <eliz@gnu.org>
2406
2407 * term.c (read_menu_input): If the selected frame changes, exit
2408 the menu.
2409 (tty_menu_show): If the selected frame changes while we displayed
2410 a menu, throw to top level. (Bug#16479)
2411
afd4479f
SM
24122014-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
2413
2414 * eval.c (Fsignal): Fix `debug' handling to match 2013-10-03 change.
2415
0fadc0b0
PE
24162014-01-24 Paul Eggert <eggert@cs.ucla.edu>
2417
2418 Fix bool-vector-count-population bug on MinGW64 (Bug#16535).
2419 * data.c (count_one_bits_word): Fix bug (negated comparison)
2420 when BITS_PER_ULL < BITS_PER_BITS_WORD.
2421
aac1f8dd
DA
24222014-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2423
5b87d0d9
MN
2424 * xdisp.c (reseat_1, Fcurrent_bidi_paragraph_direction):
2425 Avoid undefined behavior by initializing display property bit of a
aac1f8dd
DA
2426 string processed by the bidirectional iterator. For details, see
2427 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01920.html>.
2428
ed44be70
PE
24292014-01-23 Paul Eggert <eggert@cs.ucla.edu>
2430
2431 Minor cleanup of previous change.
2432 * image.c (imagemagick_error, Fimagemagick_types):
2433 Omit some recently-introduced and unnecessary casts and assignments.
2434
565935c8
DA
24352014-01-23 Dmitry Antipov <dmantipov@yandex.ru>
2436
2437 Fix two memory leaks discovered with Valgrind.
2438 * ftfont.c (ftfont_list) [HAVE_LIBOTF]: Call OTF_close.
2439 * image.c (Fimagemagick_types): Call MagickRelinquishMemory.
2440
6cb4da45
MR
24412014-01-22 Martin Rudalics <rudalics@gmx.at>
2442
2443 Fixes in window size functions around Bug#16430 and Bug#16470.
2444 * window.c (Fwindow_pixel_width, Fwindow_pixel_height)
2445 (Fwindow_mode_line_height, Fwindow_header_line_height)
2446 (Fwindow_right_divider_width, Fwindow_bottom_divider_width):
2447 Minor doc-string adjustments.
2448 (Fwindow_total_height, Fwindow_total_width): New argument ROUND.
2449 Rewrite doc-strings.
2450 (window_body_height, window_body_width): Do not count partially
2451 visible lines/columns when PIXELWISE is nil (Bug#16470).
2452 (Qfloor, Qceiling): New symbols.
2453
f7551c6c
EZ
24542014-01-21 Eli Zaretskii <eliz@gnu.org>
2455
2456 * w32fns.c (unwind_create_frame): Avoid crashing inside assertion
2457 when the image cache is not yet allocated. (Bug#16509)
2458
5004c3bf
DA
24592014-01-21 Dmitry Antipov <dmantipov@yandex.ru>
2460
2461 * buffer.c (Fkill_buffer): When killing an indirect buffer,
2462 re-attach intervals to its base buffer (Bug#16502).
2463 * intervals.c (set_interval_object): Move from here...
2464 * intervals.h (set_interval_object): ... to here. Fix comments.
2465
f952002e
PE
24662014-01-20 Paul Eggert <eggert@cs.ucla.edu>
2467
009581fa 2468 Avoid undefined behavior by initializing buffer redisplay bit.
3c35702f
PE
2469 Problem reported by Dmitry Antipov in
2470 <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01756.html>.
009581fa 2471 * buffer.c (Fget_buffer_create): Initialize redisplay bit.
3c35702f 2472
f952002e
PE
2473 Revert some of the CANNOT_DUMP fix (Bug#16494).
2474 * lread.c (init_lread): Fix typo: NILP, not !NILP.
2475
21f95411
EZ
24762014-01-19 Eli Zaretskii <eliz@gnu.org>
2477
2478 * w32font.c (w32_load_unicows_or_gdi32, get_outline_metrics_w)
2479 (get_text_metrics_w, get_glyph_outline_w, get_char_width_32_w)
2480 [!WINDOWSNT]: These functions are no longer compiled on Cygwin;
2481 they are replaced by macros that expand into direct calls to the
2482 corresponding functions from GDI32.DLL.
2483 (globals_of_w32font) [WINDOWSNT]: Don't initialize g_b_* static
2484 variables in the Cygwin build, they are unused.
2485
d25f735b
KH
24862014-01-19 K. Handa <handa@gnu.org>
2487
2488 * composite.c (composition_update_it): Fix previous change.
2489
5197f0c2
EZ
24902014-01-18 Eli Zaretskii <eliz@gnu.org>
2491
2492 Fix file name handling on MS-Windows 9X.
2493 * w32.c (maybe_load_unicows_dll): New function.
2494
2495 * emacs.c (main) [WINDOWSNT]: Call maybe_load_unicows_dll early
2496 on, to make sure we can convert file names to and from UTF-8 on
2497 Windows 9X. This fixes a failure to start up because Emacs cannot
2498 find term/w32-win.el. Reported by oslsachem <oslsachem@gmail.com>.
2499
2500 * w32font.c [WINDOWSNT]: Include w32.h.
2501 (w32_load_unicows_or_gdi32): Call maybe_load_unicows_dll, instead
2502 of implementing the same stuff.
2503 Remove now unused g_b_init_is_windows_9x.
2504
2505 * w32.h (maybe_load_unicows_dll): Add prototype.
2506
20adfbd8
EZ
25072014-01-17 Eli Zaretskii <eliz@gnu.org>
2508
2509 * menu.c (Fx_popup_menu): When invoking tty_menu_show, temporarily
2510 switch to single keyboard. Prevents daemon crashes when a new
2511 client connects while we show a TTY menu in an existing client.
2512 (Bug#16479)
2513
d1eaf34b
PE
25142014-01-14 Paul Eggert <eggert@cs.ucla.edu>
2515
2516 Fix MinGW64 porting problem with _setjmp.
2517 Reported by Eli Zaretskii in:
2518 http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01297.html
2519 * image.c (FAST_SETJMP, FAST_LONGJMP): New macros, replacing
2520 the old _setjmp and _longjmp. All uses changed.
2521
1b49bd5d
DC
25222014-01-13 Daniel Colascione <dancol@dancol.org>
2523
5b87d0d9
MN
2524 * textprop.c (Fremove_list_of_text_properties):
2525 Correctly handle reaching the end of the interval tree. (Bug#15344)
1b49bd5d 2526
a3f2bf1b
MR
25272014-01-13 Martin Rudalics <rudalics@gmx.at>
2528
2529 * xdisp.c (resize_mini_window): Round height to a multiple of
2530 frame's line height. Fix bug in calculation of window start
2531 position (Bug#16424).
2532
6c21e306
JD
25332014-01-13 Jan Djärv <jan.h.d@swipnet.se>
2534
2535 * macfont.m: Include termchar.h.
2536 (CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND)
2537 (CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND)
5b87d0d9 2538 (CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Modify from
6c21e306
JD
2539 *_WITH_GC_* to take face and f as parameters.
2540 (macfont_draw): Check for DRAW_MOUSE_FACE and set face accordingly.
2541 Use *_WITH_FACE_*, and pass face as parameter (Bug#16425).
2542
7a1b473c
DC
25432014-01-13 Daniel Colascione <dancol@dancol.org>
2544
2545 Fix menu item updating in the presence of the Unity global menu
2546 GTK+ module.
2547
2548 * gtkutil.h (xg_have_tear_offs): Add frame parameter
2549 * gtkutil.c (xg_have_tear_offs): Count the global menu as a
2550 tear-off.
c295fc18 2551 (xg_update_menubar, xg_update_menu_item): Call g_object_notify when
7a1b473c 2552 updating menus; explain why.
a787d37a
DC
2553 (xg_update_frame_menubar): Remove the 23px hack: I can't repro the
2554 problem it's supposed to solve and it interferes with detecting
2555 the presence of a global menu.
7a1b473c
DC
2556 * xmenu.c (set_frame_menubar): Call xg_have_tear_offs with new
2557 parameter.
2558
67671fb1
KH
25592014-01-11 K. Handa <handa@gnu.org>
2560
2561 * composite.c (composition_update_it): Fix indexing of
2562 LGSTRING_CHAR (Bug#15984).
2563
e05d3a05
FP
25642014-01-11 Fabrice Popineau <fabrice.popineau@gmail.com>
2565
2566 * unexw32.c (_start) [__MINGW64__]: Define to __start.
2567
02013850
EZ
25682014-01-11 Eli Zaretskii <eliz@gnu.org>
2569
2570 * xdisp.c (try_window_id): Don't use this function's optimizations
2571 if overlays in the buffer displayed by the window have changed
2572 since last redisplay. (Bug#16347)
2573 (message_dolog): Fix indentation.
2574
f96d0a6b
MR
25752014-01-11 Martin Rudalics <rudalics@gmx.at>
2576
2577 * frame.c (frame_resize_pixelwise): Fix doc-string.
2578
7d7ccb88
MR
25792014-01-10 Martin Rudalics <rudalics@gmx.at>
2580
2581 Fix handling of internal borders (Bug#16348).
5b87d0d9
MN
2582 * dispnew.c (adjust_frame_glyphs_for_window_redisplay):
2583 Remove internal border width from pixel width of windows.
7d7ccb88
MR
2584 (change_frame_size_1): Don't return early when frame's pixel
2585 size changes - we still have to record the new sizes in the
2586 frame structure.
2587 * w32fns.c (x_set_tool_bar_lines): Clear internal border width
2588 also when toolbar gets larger.
2589 * window.c (check_frame_size): Include internal_border_width in
2590 check.
2591 * xdisp.c (Ftool_bar_height): Fix doc-string typo.
5b87d0d9
MN
2592 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
2593 In non-toolkit/non-GTK version clear internal border.
7d7ccb88
MR
2594 * xterm.c (x_clear_under_internal_border): New function for
2595 non-toolkit/non-GTK version.
2596 (x_after_update_window_line): In non-toolkit/non-GTK version
2597 don't do that.
5b87d0d9
MN
2598 (handle_one_xevent, x_set_window_size):
2599 Call x_clear_under_internal_border in non-toolkit/non-GTK version.
7d7ccb88
MR
2600 * xterm.h (x_clear_under_internal_border): Extern it.
2601
be316ede
PE
26022014-01-07 Paul Eggert <eggert@cs.ucla.edu>
2603
2604 Fix misdisplay of interlaced GIFs with libgif5 (Bug#16372).
2605 * image.c (gif_load): libgif5 deinterlaces for us, so don't do
2606 it again.
2607
9f4e49e9
EZ
26082014-01-06 Eli Zaretskii <eliz@gnu.org>
2609
2610 * xdisp.c (redisplay_window): Don't skip window redisplay if the
2611 last value of point is not equal to buffer's point. (Bug#16129)
2612
81da295e
PE
26132014-01-05 Paul Eggert <eggert@cs.ucla.edu>
2614
da5ecfa9
PE
2615 Spelling fixes.
2616 * nsterm.h (updateCollectionBehavior): Rename from
2617 updateCollectionBehaviour. All uses changed.
2618
81da295e
PE
2619 Port to GNU/Linux with recent grsecurity/PaX patches (Bug#16343).
2620 * Makefile.in (SETFATTR): New macro.
2621 (temacs$(EXEEXT)): Use it.
2622
5159d590
MR
26232014-01-04 Martin Rudalics <rudalics@gmx.at>
2624
2625 Fix maximization behavior on Windows (Bug#16300).
2626 * w32fns.c (w32_fullscreen_rect): Don't handle
2627 FULLSCREEN_MAXIMIZED and FULLSCREEN_NONE specially.
2628 * w32term.c (w32fullscreen_hook): Use SetWindowPlacement instead
2629 of SetWindowPos. Restore last placement also when leaving
2630 FULLSCREEN_HEIGHT and FULLSCREEN_WIDTH. Call ShowWindow in all
2631 but the FULLSCREEN_BOTH case.
2632
56a0e352
PE
26332014-01-03 Paul Eggert <eggert@cs.ucla.edu>
2634
2635 Port to C89.
2636 * data.c (arithcompare_driver):
2637 * fileio.c (Fcar_less_than_car):
2638 * fns.c (internal_equal):
2639 * frame.c (delete_frame):
2640 * lisp.h (enum More_Lisp_Bits):
2641 * lread.c (read1):
2642 Avoid C99 constructs that don't work in C89.
2643 * data.c (ULL_MAX, count_trailing_zeros_ll): New macros,
2644 to port to C89, which doesn't have 'long long'.
2645 (count_trailing_zero_bits): Use them.
2646
0d53f628
CY
26472014-01-03 Chong Yidong <cyd@gnu.org>
2648
2649 * doc.c (Fdocumentation): Remove dynamic-docstring-function.
2650
44c5e192
MR
26512014-01-02 Martin Rudalics <rudalics@gmx.at>
2652
2653 Further adjust frame/window scrollbar width calculations.
5b87d0d9
MN
2654 * window.c (apply_window_adjustment):
2655 Set windows_or_buffers_changed.
44c5e192
MR
2656 (Fwindow_scroll_bars): Return actual scrollbar width.
2657 * xfns.c (x_set_scroll_bar_default_width): Rename wid to unit.
2658 For non-toolkit builds again use 14 as minimum width and set
2659 FRAME_CONFIG_SCROLL_BAR_WIDTH accordingly.
2660 * xterm.c (XTset_vertical_scroll_bar): Take width from
2661 WINDOW_SCROLL_BAR_AREA_WIDTH.
2662 (x_new_font): Rename wid to unit. Base calculation of new
2663 scrollbar width on toolkit used and make it analogous to that of
2664 x_set_scroll_bar_default_width.
2665 * w32fns.c (x_set_scroll_bar_default_width): Rename wid to unit.
2666 (Fx_create_frame): Call x_set_scroll_bar_default_width instead
2667 of GetSystemMetrics.
2668 * w32term.c (w32_set_vertical_scroll_bar): Take width from
2669 WINDOW_SCROLL_BAR_AREA_WIDTH.
2670 (x_new_font): Make it correspond to changes in xterm.c.
2671
b00cdd96
PE
26722014-01-01 Paul Eggert <eggert@cs.ucla.edu>
2673
2674 * lisp.h (EMACS_INT): Configure based on INTPTR_MAX, not LONG_MAX.
2675 This is a cleaner way to fix the MinGW-w64 porting problem.
2676 Check for INTPTR_MAX misconfiguration.
2677
c10e9ece
EZ
26782014-01-01 Eli Zaretskii <eliz@gnu.org>
2679
2680 * search.c (newline_cache_on_off, find_newline): In indirect
2681 buffers, use the newline cache of the base buffer.
2682
2683 * insdel.c (invalidate_buffer_caches): If BUF is an indirect
2684 buffer, invalidate the caches of its base buffer. (Bug#16265)
2685
2686 * indent.c (width_run_cache_on_off, compute_motion): In indirect
2687 buffers, use the width-run cache of the base buffer.
2688
2689 * xdisp.c (redisplay_window): When the window displays an indirect
2690 buffer, and the character widths in the display table have
2691 changed, invalidate the width-run cache of the corresponding base
2692 buffer.
2693
2694 * fileio.c (Finsert_file_contents): When invalidating the newline
2695 cache, consider the case of inserting into indirect buffer.
2696
2697 * bidi.c (bidi_paragraph_cache_on_off, bidi_find_paragraph_start):
2698 In indirect buffers, use the paragraph cache of the base buffer.
2699
91415fb1
MR
27002013-12-31 Martin Rudalics <rudalics@gmx.at>
2701
2702 * window.c (grow_mini_window): Fix last change.
2703
a2301006
JD
27042013-12-31 Jan Djärv <jan.h.d@swipnet.se>
2705
2706 * nsterm.m (windowDidResignKey:): Set mouse_moved to 0 (Bug#8421).
2707
0bbd0e0b
FP
27082013-12-31 Fabrice Popineau <fabrice.popineau@supelec.fr>
2709
bd717ca4
FP
2710 * w32term.c (w32_initialize): Use LCID and LOWORD.
2711
2712 * w32proc.c (create_child): Use pid_t for 5th argument.
2713 (IsValidLocale): Don't provide prototype for MinGW64.
2714 (Fw32_get_valid_keyboard_layouts, Fw32_get_keyboard_layout)
2715 (Fw32_set_keyboard_layout): Use HKL and HIWORD/LOWORD.
2716
2717 * w32heap.c (allocate_heap) [_WIN64]: Use "ull", not "i64", which
2718 MinGW64 doesn't support.
2719
2720 * lisp.h (EMACS_INT) [_WIN64]: Define for the MinGW64 build.
2721
0bbd0e0b
FP
2722 * w32.c (set_named_security_info): New function.
2723 (acl_set_file): Fall back on set_named_security_info if
2724 set_file_security fails.
2725 (g_b_init_set_named_security_info_w)
2726 (g_b_init_set_named_security_info_a): New static variables.
2727 (globals_of_w32): Initialize them to zero.
2728 (set_named_security_info): Set them to non-zero if the
2729 corresponding API is available.
5b87d0d9
MN
2730 (SetNamedSecurityInfoW_Proc, SetNamedSecurityInfoA_Proc):
2731 New function typedefs.
0bbd0e0b 2732
9b3c0a16
MR
27332013-12-31 Martin Rudalics <rudalics@gmx.at>
2734
2735 Some more fixes following pixelwise resize changes including one
2736 for Bug#16306.
2737 * gtkutil.c (x_wm_set_size_hint): Have size hints respect value
2738 of frame_resize_pixelwise.
2739 * widget.c (pixel_to_text_size): New function.
2740 (update_wm_hints): Have size hints respect value of
2741 frame_resize_pixelwise.
2742 (EmacsFrameResize): Alway process resize requests pixelwise.
2743 * window.c (grow_mini_window): Make sure mini window is at least
2744 one line tall.
2745 * xdisp.c (display_menu_bar): Make sure menubar extends till
2746 right end of frame.
2747 * xfns.c (x_set_menu_bar_lines): Resize frame windows pixelwise.
2748 (x_set_tool_bar_lines): Calculate pixelwise.
2749 * xterm.c (x_wm_set_size_hint): Have size hints respect value of
2750 frame_resize_pixelwise.
2751
2db9da01
JB
27522013-12-30 Juanma Barranquero <lekktu@gmail.com>
2753
2754 * fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
2755 variables not used there.
2756
1b7259fc
EZ
27572013-12-30 Eli Zaretskii <eliz@gnu.org>
2758
2759 * w32.c (sys_umask): New function. (Bug#16299)
2760
564eb533
MR
27612013-12-30 Martin Rudalics <rudalics@gmx.at>
2762
2763 * dispnew.c (change_frame_size_1): Take old width of root window
9b3c0a16 2764 from that window's pixel width. (Bug#16284)
564eb533 2765
a560b856
PE
27662013-12-29 Paul Eggert <eggert@cs.ucla.edu>
2767
2768 Plain copy-file no longer chmods an existing destination (Bug#16133).
2769 * fileio.c (realmask): Now a static var, not a local.
2770 (barf_or_query_if_file_exists): New arg KNOWN_TO_EXIST.
2771 Remove arg STATPTR. All uses changed.
2772 (Fcopy_file): Do not alter permissions of existing destinations,
2773 unless PRESERVE-PERMISSIONS (renamed from
2774 PRESERVE-EXTENDED-ATTRIBUTES) is non-nil.
2775 Avoid race when testing for existing destinations and for
2776 when input and output files are the same.
2777 If changing the group fails, adjust both default and
2778 preserved permissions so that access is not granted to the
2779 wrong group.
2780 (Fset_default_file_modes, init_fileio): Update realmask.
2781 (Fdefault_file_modes): Use realmask instead of calling umask.
2782
411bf4a4
PE
27832013-12-28 Paul Eggert <eggert@cs.ucla.edu>
2784
2785 Fix pipe bug with OS X emacs --daemon (Bug#16262).
2786 * emacs.c (main) [DAEMON_MUST_EXEC]: Clear the close-on-exec
2787 flags on the daemon pipe ends before execing.
2788
bf7bea5d
EZ
27892013-12-28 Eli Zaretskii <eliz@gnu.org>
2790
2791 * w32fns.c (Fx_create_frame): Error out if called from a TTY
2792 session. (Bug#14739)
2793
fdadeb49
JC
27942013-12-27 Jarek Czekalski <jarekczek@poczta.onet.pl>
2795
2796 * callproc.c (Vexec_path): Document that exec-directory is in it.
2797
765fe182
JD
27982013-12-27 Steve Purcell <steve@sanityinc.com> (tiny change)
2799
2800 * nsterm.m (syms_of_nsterm): Enable ns-use-srgb-colorspace by
2801 default.
2802
0f1d2934
CY
28032013-12-27 Chong Yidong <cyd@gnu.org>
2804
2805 * data.c (Fsymbol_function): Doc fix.
2806
0cbab19e
MR
28072013-12-26 Martin Rudalics <rudalics@gmx.at>
2808
2809 Some more tinkering with Bug#16051.
2810 * window.c (resize_frame_windows): Don't let the size of the
2811 root window drop below the frame's default character size.
2812 Never ever delete any subwindows - let the window manager do the
2813 clipping.
2814
2815 * w32fns.c (x_set_tool_bar_lines): Rewrite calculation of number
2816 of toolbar lines needed when they exceed the height of the root
2817 window.
2818 (unwind_create_frame_1): New function.
2819 (Fx_create_frame): Generally inhibit calling the window
2820 configuration change hook here. Remove extra call to
2821 change_frame_size - it's not needed when we don't run the
2822 configuration change hook.
2823
e76119d7
PE
28242013-12-26 Paul Eggert <eggert@cs.ucla.edu>
2825
2826 Fix core dumps with gcc -fsanitize=address and GNU/Linux.
2827 On my Fedora 19 platform the core dumps were so big that
2828 my desktop became nearly catatonic.
2829 * alloc.c (no_sanitize_memcpy) [MAX_SAVE_STACK > 0]: New function.
2830 (Fgarbage_collect) [MAX_SAVE_STACK > 0]: Use it.
2831 (USE_ALIGNED_MALLOC): Do not define if addresses are sanitized.
2832 (mark_memory): Use ATTRIBUTE_NO_SANITIZE_ADDRESS rather than
2833 a clang-only syntax.
2834 * conf_post.h (__has_feature): New macro, if not already defined.
2835 (ADDRESS_SANITIZER, ADDRESS_SANITIZER_WORKAROUND)
2836 (ATTRIBUTE_NO_SANITIZE_ADDRESS): New macros.
2837
9ab3ce4d
EZ
28382013-12-25 Eli Zaretskii <eliz@gnu.org>
2839
2840 * w32fns.c (Fw32_shell_execute): Make DOCUMENT absolute only if it
2841 is a file name. (Bug#16252)
2842
c9352587
CY
28432013-12-25 Chong Yidong <cyd@gnu.org>
2844
35e951cd 2845 * keyboard.c (Voverriding_terminal_local_map)
c9352587
CY
2846 (Voverriding_local_map): Doc fix.
2847
2848 * keymap.c (Vemulation_mode_map_alists): Doc fix.
2849
ec6e26b8
EZ
28502013-12-24 Eli Zaretskii <eliz@gnu.org>
2851
2852 * w32fns.c (Fw32_shell_execute): Ensure DOCUMENT is an absolute
2853 file name when it is submitted to ShellExecute. Simplify code.
2854 Don't test DOCUMENT for being a string, as that is enforced by
2855 CHECK_STRING. Doc fix.
2856
0db7548b
EZ
28572013-12-23 Eli Zaretskii <eliz@gnu.org>
2858
2859 * xdisp.c (tool_bar_height): Use WINDOW_PIXEL_WIDTH to set up the
2860 iterator X limits, not FRAME_TOTAL_COLS, for consistency with what
2861 redisplay_tool_bar does. Improve and fix commentary.
2862 (hscroll_window_tree): Don't assume w->cursor.vpos is within the
2863 limits of the glyph matrices. (Bug#16051)
cdcec259
EZ
2864 (redisplay_tool_bar): Modify the tool-bar-lines frame parameter
2865 only when the new size is different from the old one, and the new
2866 size can be achieved given the frame height.
0db7548b 2867
30143e3d
JD
28682013-12-23 Jan Djärv <jan.h.d@swipnet.se>
2869
2870 * conf_post.h: Use unsigned it for bool_bf if GNUSTEP (Bug#16210).
2871
aec3bf9f
GM
28722013-12-23 Glenn Morris <rgm@gnu.org>
2873
2874 * lread.c (Fload): Mention load-prefer-newer in doc.
2875
a2b89a51
MR
28762013-12-22 Martin Rudalics <rudalics@gmx.at>
2877
2878 Handle Bug#16207 by being more restrictive when running hooks.
2879 * window.c (unwind_change_frame): New function.
2880 (Fset_window_configuration): Don't run configuration change hook
2881 while the frame configuration is unsafe. Call select_window
2882 twice.
2883
2dc383bc
XF
28842013-12-22 Xue Fuqiao <xfq.free@gmail.com>
2885
2886 * lread.c (syms_of_lread) <load_prefer_newer>: Doc fix.
2887
df8b4c35
JD
28882013-12-21 Jan Djärv <jan.h.d@swipnet.se>
2889
2890 * nsterm.h: Declare EmacsColor category.
2891
2892 * nsterm.m (NSColor): Implement EmacsColor category.
2893 (ns_get_color): Use colorUsingDefaultColorSpace.
2894 (ns_get_color, ns_term_init): Use colorForEmacsRed.
2895
2896 * nsfns.m (Fxw_color_values): Use colorUsingDefaultColorSpace.
2897
7667eeb9
EZ
28982013-12-21 Eli Zaretskii <eliz@gnu.org>
2899
2900 * image.c (fn_png_longjmp) [WINDOWSNT]: Mark the function as
2901 having the PNG_NORETURN attribute, to avoid compiler warning in
2902 my_png_error.
2903
5b2b60f0
YM
29042013-12-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2905
2906 * w32term.h (struct scroll_bar): Remove member `fringe_extended_p'.
2907
2908 * w32term.c (w32_draw_fringe_bitmap, x_scroll_run): Remove code for
2909 fringe background extension.
2910 (x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
2911 because they are now always the same as `left' and `width',
2912 respectively. Remove code for the case that `width' and
2913 `sb_width' are different.
2914
c44de18d
MR
29152013-12-20 Martin Rudalics <rudalics@gmx.at>
2916
2917 Remove scroll_bar_actual_width from frames.
2918 * frame.h (struct frame): Remove scroll_bar_actual_width slot.
2919 * frame.c (Fscroll_bar_width): Return scroll bar area width.
2920 (x_figure_window_size):
2921 * nsterm.m (x_set_window_size):
2922 * widget.c (set_frame_size):
2923 * w32term.c (x_set_window_size):
2924 * xterm.c (x_set_window_size, x_set_window_size_1): Don't set
2925 scroll_bar_actual_width.
2926
2927 Convert scroll_bar members to integers on Windows.
2928 * w32term.h (struct scroll_bar): Convert top, left, width,
2929 height, start, end and dragging to integers.
2930 * w32fns.c (w32_createscrollbar): Remove XINT conversions for
2931 scroll_bar members.
2932 * w32term.c (w32_set_scroll_bar_thumb)
2933 (w32_scroll_bar_handle_click): Remove XINT conversions for
2934 scroll_bar members. Treat bar->dragging as integer.
2935 (x_scroll_bar_create): Call ALLOCATE_PSEUDOVECTOR with "top" as
2936 first element. Remove XINT conversions for scroll_bar members.
2937 (w32_set_vertical_scroll_bar, x_scroll_bar_report_motion):
2938 Remove XINT conversions for scroll_bar members.
2939
2940 Fix assignment for new window total sizes.
2941 * window.c (Fwindow_resize_apply_total): Assign values for
2942 minibuffer window.
2943
f5df4ceb
CY
29442013-12-20 Chong Yidong <cyd@gnu.org>
2945
2946 * textprop.c (Fadd_face_text_property): Doc fix. Rename `appendp'
2947 argument to `append'.
2948
79f7284f
EZ
29492013-12-19 Eli Zaretskii <eliz@gnu.org>
2950
5df389f5
EZ
2951 * xdisp.c (extend_face_to_end_of_line): Use default face, not the
2952 current text face, for extending the face of the display margins.
2953 (Bug#16192)
2954
79f7284f
EZ
2955 * casefiddle.c (Fupcase_word, Fdowncase_word, Fcapitalize_word):
2956 Doc fix. (Bug#16190)
2957
1269a680
JD
29582013-12-19 Jan Djärv <jan.h.d@swipnet.se>
2959
2960 * nsterm.h (KEY_NS_DRAG_FILE, KEY_NS_DRAG_COLOR, KEY_NS_DRAG_TEXT):
2961 Remove.
2962
2963 * nsterm.m (Qfile, Qurl): New.
2964 (EV_MODIFIERS2): New macro.
2965 (EV_MODIFIERS): Use EV_MODIFIERS2.
2966 (ns_term_init): Remove font and color from DND, does not work on
2967 newer OSX, and other ports don't have them.
2968 (performDragOperation:): Handle modifiers used during drag.
2969 Use DRAG_N_DROP_EVENT instead of NS specific events (Bug#8051).
2970 Remove global Lisp variables used to communicate with ns-win.el.
2971 Remove font and color handling.
2972 (syms_of_nsterm): Defsym Qfile and Qurl.
2973
e9dc713d 29742013-12-19 Anders Lindgren <andlind@gmail.com>
680e6b8c
JD
2975
2976 * nsterm.m (NSTRACE_SIZE, NSTRACE_RECT): New macros.
2977 (ns_constrain_all_frames, x_set_offset): Remove assignment to
2978 dont_constrain.
2979 (updateFrameSize:, windowWillResize:toSize:): Add trace.
2980 (constrainFrameRect): Remove special case nr_screens == 1.
2981 Don't constrain size to size of view.
2982
2983 * nsterm.h (ns_output): Remove dont_constrain.
2984
e9dc713d 29852013-12-19 Anders Lindgren <andlind@gmail.com>
570c054a
JD
2986
2987 * nsterm.m (mouseDown:): Generate HORIZ_WHEEL_EVENT.
2988
518c40a2
PE
29892013-12-18 Paul Eggert <eggert@cs.ucla.edu>
2990
2991 Minor fixes for recent openp changes.
2992 * lisp.h (GCPRO7): New macro.
2993 * lread.c (openp): Use bool for boolean; all callers changed.
2994 Protect save_string from GC. Don't assume that file descriptors
2995 are nonzero. Redo save_mtime comparison to avoid bogus GCC
2996 warning about uninitialized variable.
2997
39e896c1
EZ
29982013-12-18 Eli Zaretskii <eliz@gnu.org>
2999
3000 * w32fns.c (emacs_abort): Use intptr_t as argument of
3001 INT_BUFSIZE_BOUND, to avoid compiler warnings.
3002
9cdb8d85
GM
30032013-12-18 Glenn Morris <rgm@gnu.org>
3004
1f41ee56
GM
3005 * lread.c (Fload): Pass load_prefer_newer to openp.
3006 Don't bother checking mtime if openp already did it.
3007 (openp): Add `newer' argument, to check all suffixes
3008 and find the newest file.
3009 (syms_of_lread) <load_prefer_newer>: New option. (Bug#2061)
3010 * callproc.c (call_process):
3011 * charset.c (load_charset_map_from_file):
3012 * emacs.c (init_cmdargs):
3013 * image.c (x_create_bitmap_from_file, x_find_image_file):
3014 * lisp.h (openp):
3015 * lread.c (Flocate_file_internal):
3016 * process.c (Fformat_network_address):
3017 * sound.c (Fplay_sound_internal):
3018 * w32.c (check_windows_init_file):
3019 * w32proc.c (sys_spawnve): Update for new arg spec of openp.
3020
9cdb8d85
GM
3021 * emacs.c (standard_args) [HAVE_NS]: Remove -disable-font-backend.
3022
af025ae8
EZ
30232013-12-17 Eli Zaretskii <eliz@gnu.org>
3024
60e62dc5
EZ
3025 * w32.c (getloadavg): Don't index samples[] array with negative
3026 indices. Recover from wall-clock time being set backwards.
3027
af025ae8
EZ
3028 * w32term.c (w32_initialize): Declare the argument of
3029 set_user_model as const.
3030
3031 * w32menu.c <MessageBoxW_Proc>: Fix argument declarations.
3032 (w32_menu_show): Constify some arguments passed to MessageBox.
3033
3034 * w32uniscribe.c (uniscribe_font_driver): Use LISP_INITIALLY_ZERO
3035 to initialize Lisp objects.
3036
3037 * w32font.c (w32font_driver): Use LISP_INITIALLY_ZERO to
3038 initialize Lisp objects.
3039
3040 * frame.c (x_set_frame_parameters) [HAVE_X_WINDOWS]: Declare and
3041 use variables used only on X under that condition.
3042
3043 * fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
3044 variables not used there.
3045
8fb8c4f3
PE
30462013-12-16 Paul Eggert <eggert@cs.ucla.edu>
3047
3048 Fix problems with CANNOT_DUMP and EMACSLOADPATH.
3049 * lread.c (init_lread): If CANNOT_DUMP, we can't be dumping.
3050
397e886f
EZ
30512013-12-16 Eli Zaretskii <eliz@gnu.org>
3052
3053 * xdisp.c (Fmove_point_visually): Fix subtle bugs in the fallback
3054 code, revealed in presence of R2L characters, character
3055 compositions, and display vectors. A better fix for Bug#16148.
5e6d03b2
EZ
3056 (extend_face_to_end_of_line): Don't reference tool_bar_window in
3057 GTK and NS builds, they don't have this member of struct frame.
397e886f
EZ
3058
3059 * dispextern.h (struct composition_it): Correct a comment for the
3060 'width' member.
3061
32779713
PE
30622013-12-16 Paul Eggert <eggert@cs.ucla.edu>
3063
3064 * font.h (valid_font_driver) [!ENABLE_CHECKING]: Define a dummy.
3065 This prevents a compilation error on C compilers that do not
3066 default functions to return 'int' if not declared. Also, add
3067 INLINE_HEADER_BEGIN and INLINE_HEADER_END to this include file,
3068 since it now uses inline functions.
3069
d865f6b5
EZ
30702013-12-16 Eli Zaretskii <eliz@gnu.org>
3071
3072 * xdisp.c (extend_face_to_end_of_line): Don't fill background of
3073 display margins on mode line, header line, and in the frame's
3074 tool-bar window. (Bug#16165)
3075
0fa30f33
AS
30762013-12-16 Andreas Schwab <schwab@suse.de>
3077
3078 * gnutls.c (Fgnutls_boot): Properly check Flistp return value.
3079
82cf20e4
TZ
30802013-12-16 Teodor Zlatanov <tzz@lifelogs.com>
3081
3082 * gnutls.c (Fgnutls_boot): Use `Flistp' instead of
c295fc18 3083 `CHECK_LIST_CONS'.
82cf20e4 3084
d144ef06
MR
30852013-12-16 Martin Rudalics <rudalics@gmx.at>
3086
3087 * w32term.c (w32_enable_frame_resize_hack): Default to 1.
3088
5ae356d9
DA
30892013-12-16 Dmitry Antipov <dmantipov@yandex.ru>
3090
3091 * font.c (valid_font_driver) [ENABLE_CHECKING]: New function
3092 intended to find bogus pointers in font objects (Bug#16140).
3093 * font.h (valid_font_driver) [ENABLE_CHECKING]: Add prototype.
3094 * alloc.c (cleanup_vector): Use valid_font_driver in eassert.
3095 (compact_font_cache_entry, compact_font_caches) [!HAVE_NTGUI]:
3096 Disable for MS-Windows due to Bug#15876; apparently this
3097 requires more or less substantial changes in fontset code.
3098 * xfont.c (xfont_close):
3099 * xftfont.c (xftfont_close): Call x_display_info_for_display
3100 to check whether 'Display *' is valid (Bug#16093 and probably
3101 Bug#16069).
3102
e088f894
EZ
31032013-12-15 Eli Zaretskii <eliz@gnu.org>
3104
db50ad5f
EZ
3105 * fileio.c (Fexpand_file_name) [WINDOWSNT]: Fix conditionals.
3106 Reported by Juanma Barranquero <lekktu@gmail.com>.
3107
1014b1dc
EZ
3108 * process.c (Fprocess_send_eof): Don't crash if someone tries to
3109 open a pty on MS-Windows. (Bug#16152)
3110
e088f894
EZ
3111 * emacs.c (decode_env_path): Fix bogus comparison against
3112 emacs_dir. Reported by Juanma Barranquero <lekktu@gmail.com>.
3113
119f64db
JB
31142013-12-15 Juanma Barranquero <lekktu@gmail.com>
3115
3116 * w32fns.c (Fw32_shell_execute): Remove unused local variable.
3117 (Fx_file_dialog): Add parentheses around && to silence warning.
3118
3119 * w32term.c (construct_drag_n_drop): Remove unused local variable.
3120
dd1fb8cb
EZ
31212013-12-15 Eli Zaretskii <eliz@gnu.org>
3122
cdeb10ce
EZ
3123 * xdisp.c (extend_face_to_end_of_line): Extend background of
3124 non-default face in margin areas as well. (Bug#16151)
3125 (display_line): Call extend_face_to_end_of_line for continued
3126 lines as well, if the display margins have non-zero width.
3127 (set_glyph_string_background_width): When needed, set the
3128 extends_to_end_of_line_p flag on glyph strings to be drawn in
3129 margin areas, not only in the text area.
3130
dd1fb8cb
EZ
3131 * frame.h (FRAME_MOUSE_UPDATE): Fix a typo that caused infloop at
3132 startup.
3133
27c1b043
PE
31342013-12-15 Paul Eggert <eggert@cs.ucla.edu>
3135
3136 * gnutls.c (Fgnutls_boot): Fix typo; "!" applied to a Lisp_Object.
3137 Don't worry about verify_error being t, since it has to be a list.
3138
96c06863
PE
31392013-12-14 Paul Eggert <eggert@cs.ucla.edu>
3140
3141 Use bool for boolean, focusing on headers.
3142 * atimer.h, lisp.h, syssignal.h, syswait.h, unexelf.c:
3143 No need to include <stdbool.h>, since conf_post.h does it now.
3144 * buffer.h (BUF_COMPUTE_UNCHANGED, DECODE_POSITION)
3145 (BUFFER_CHECK_INDIRECTION, GET_OVERLAYS_AT, PER_BUFFER_VALUE_P)
3146 (SET_PER_BUFFER_VALUE_P):
3147 * ccl.c, ccl.h (setup_ccl_program):
3148 * ccl.h (CHECK_CCL_PROGRAM):
3149 * character.h (MAKE_CHAR_UNIBYTE, CHECK_CHARACTER_CAR)
3150 (CHECK_CHARACTER_CDR, CHAR_STRING_ADVANCE, NEXT_CHAR_BOUNDARY)
3151 (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE)
3152 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
3153 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
3154 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
3155 (DEC_BOTH, BUF_INC_POS, BUF_DEC_POS):
3156 * charset.h (CHECK_CHARSET, CHECK_CHARSET_GET_ID)
3157 (CHECK_CHARSET_GET_ATTR, CHECK_CHARSET_GET_CHARSET)
3158 (CHARSET_FAST_MAP_SET):
3159 * coding.c (decode_coding_ccl, encode_coding_ccl):
3160 * coding.h (CHECK_CODING_SYSTEM, CHECK_CODING_SYSTEM_GET_SPEC)
3161 (CHECK_CODING_SYSTEM_GET_ID, SJIS_TO_JIS, SJIS_TO_JIS2)
3162 (JIS_TO_SJIS, JIS_TO_SJIS2, ENCODE_FILE, DECODE_FILE)
3163 (ENCODE_SYSTEM, DECODE_SYSTEM, ENCODE_UTF_8)
3164 (decode_coding_c_string):
3165 * composite.h (COMPOSITION_DECODE_REFS, COMPOSITION_DECODE_RULE):
3166 * conf_post.h (has_attribute):
35e951cd 3167 * dispextern.h (trace_redisplay_p)
96c06863
PE
3168 (INC_TEXT_POS, DEC_TEXT_POS, SET_GLYPH_FROM_GLYPH_CODE)
3169 (SET_CHAR_GLYPH, SET_CHAR_GLYPH_FROM_GLYPH)
35e951cd 3170 (SET_GLYPH_FROM_CHAR_GLYPH)
96c06863
PE
3171 (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P)
3172 (FACE_SUITABLE_FOR_ASCII_CHAR_P, FACE_SUITABLE_FOR_CHAR_P)
3173 (PRODUCE_GLYPHS, reset_mouse_highlight, in_display_vector_p)
3174 (cursor_in_mouse_face_p):
3175 * dispnew.c (adjust_glyph_matrix, clear_glyph_matrix_rows)
3176 (blank_row, prepare_desired_row)
3177 (build_frame_matrix_from_leaf_window, make_current)
3178 (mirror_make_current, mirrored_line_dance, mirror_line_dance)
3179 (update_window, scrolling_window, update_frame_line):
3180 * disptab.h (GLYPH_FOLLOW_ALIASES):
3181 * editfns.c (Fformat):
3182 * font.h (FONT_WEIGHT_SYMBOLIC, FONT_SLANT_SYMBOLIC)
3183 (FONT_WIDTH_SYMBOLIC, FONT_WEIGHT_FOR_FACE, FONT_SLANT_FOR_FACE)
3184 (FONT_WIDTH_FOR_FACE, FONT_WEIGHT_NAME_NUMERIC)
3185 (FONT_SLANT_NAME_NUMERIC, FONT_WIDTH_NAME_NUMERIC)
3186 (FONT_SET_STYLE, CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY)
3187 (CHECK_FONT_OBJECT, CHECK_FONT_GET_OBJECT, FONT_ADD_LOG)
3188 (FONT_DEFERRED_LOG):
35e951cd 3189 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_WINDOW_P)
96c06863
PE
3190 (FRAME_EXTERNAL_TOOL_BAR, FRAME_EXTERNAL_MENU_BAR, FOR_EACH_FRAME)
3191 (FRAME_MOUSE_UPDATE):
3192 * fringe.c (Fdefine_fringe_bitmap):
3193 * image.c (x_create_bitmap_from_data, x_create_bitmap_mask)
3194 (x_create_bitmap_from_xpm_data, xpm_load_image):
3195 * intervals.h (INTERVAL_HAS_PARENT, INTERVAL_PARENT)
3196 (set_interval_parent, RESET_INTERVAL, COPY_INTERVAL_CACHE)
3197 (MERGE_INTERVAL_CACHE):
3198 * keymap.h (KEYMAPP):
3199 * lisp.h (eassert, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE)
3200 (STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE, DEFSYM, PSEUDOVECTORP)
3201 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER)
3202 (CHECK_NUMBER_COERCE_MARKER, CHECK_NUMBER_OR_FLOAT_COERCE_MARKER)
3203 (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
3204 (DEFVAR_BUFFER_DEFAULTS, DEFVAR_KBOARD, QUIT)
3205 (RETURN_UNGCPRO, USE_SAFE_ALLOCA, SAFE_NALLOCA, SAFE_FREE)
3206 (SAFE_ALLOCA_LISP, FOR_EACH_ALIST_VALUE, functionp):
3207 * syntax.h (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX)
3208 (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD)
3209 (SETUP_BUFFER_SYNTAX_TABLE):
3210 * systime.h (timespec_valid_p):
3211 * term.c (save_and_enable_current_matrix):
3212 * window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P):
3213 * xdisp.c (in_display_vector_p, display_tool_bar_line)
3214 (redisplay_internal, try_window_reusing_current_matrix)
3215 (sync_frame_with_window_matrix_rows, try_window_id)
3216 (display_menu_bar, display_tty_menu_item, display_mode_line)
3217 (coords_in_mouse_face_p, cursor_in_mouse_face_p):
b4dd49e0 3218 * xdisp.c (trace_redisplay_p) [GLYPH_DEBUG]:
96c06863
PE
3219 * xmenu.c (xmenu_show):
3220 * xterm.c (use_xim, x_term_init):
3221 * xterm.h (XSync, GTK_CHECK_VERSION, use_xim, SET_SCROLL_BAR_X_WIDGET)
3222 (struct x_bitmap_record):
3223 Use bool for booleans.
3224 * ccl.c (struct buffer_text):
3225 * ccl.h (struct ccl_program):
3226 * charset.h (struct charset):
3227 * cm.h (struct cm):
3228 * coding.h (struct iso_2022_spec, struct coding_system):
3229 * dispextern.h (struct glyph, struct glyph_matrix, struct glyph_row)
3230 (struct glyph_string, struct face, struct face_cache)
3231 (struct bidi_string_data, struct bidi_it)
3232 (struct draw_fringe_bitmap_params, struct it, Mouse_HLInfo)
3233 (struct image):
3234 * editfns.c (Fformat):
3235 * frame.h (struct frame):
3236 * fringe.c (struct fringe_bitmap):
3237 * intervals.h (struct interval):
3238 * keyboard.h (struct kboard):
3239 * lisp.h (struct Lisp_Symbol, struct Lisp_Misc_Any, struct Lisp_Marker)
3240 (struct Lisp_Overlay, struct Lisp_Save_Value, struct Lisp_Free)
3241 (struct Lisp_Buffer_Local_Value, union specbinding):
3242 * macfont.m (struct macfont_info):
3243 * process.h (struct Lisp_Process):
3244 * termchar.h (struct tty_display_info):
3245 * window.h (struct window):
3246 * xterm.h (struct x_output):
3247 Use bool_bf for boolean bit-fields.
3248 * ccl.c (setup_ccl_program): Now returns bool instead of -1 or 0.
3249 All callers changed.
3250 * ccl.h (struct ccl_program): Remove unused members private_state,
3251 src_multibyte, dst_multibyte, cr_consumed, suppress_error,
3252 eight_bit_control.
3253 (struct ccl_spec): Remove unused members cr_carryover,
3254 eight_bit_carryover.
3255 * conf_post.h: Include <stdbool.h>.
3256 (bool_bf): New type.
3257 * dispextern.h (TRACE, PREPARE_FACE_FOR_DISPLAY):
35e951cd
JB
3258 * intervals.h (RESET_INTERVAL, COPY_INTERVAL_CACHE)
3259 (MERGE_INTERVAL_CACHE): Surround statement macro with proper
3260 'do { ... } while (false)' brackets.
b4dd49e0
PE
3261 * dispextern.h (IF_DEBUG): Properly parenthesize and convert to void.
3262 Args must now be expressions; all callers changed.
96c06863
PE
3263 (SET_MATRIX_ROW_ENABLED_P): Assume 2nd arg is bool.
3264 (PRODUCE_GLYPHS): Simplify use of boolean.
3265 * fileio.c (Fcopy_file):
3266 If I is an integer, prefer 'if (I != 0)' to 'if (I)'.
3267 * lisp.h (UNGCPRO): Return void, not int.
3268 (FOR_EACH_TAIL): Use void expression, not int expression.
3269 * region-cache.c: Reindent.
3270 * region-cache.h: Copy comments from region-cache.c, to fix
3271 incorrect remarks about booleans.
3272
2897da4d
EZ
32732013-12-14 Eli Zaretskii <eliz@gnu.org>
3274
3275 * xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
3276 when character at point is displayed from a display vector.
3277 (Bug#16148)
3278
31b4827e
TZ
32792013-12-14 Teodor Zlatanov <tzz@lifelogs.com>
3280
3281 * gnutls.c: Replace `:verify_hostname_error' with `:verify_error',
3282 now a list of certificate validation checks that will abort a
3283 connection with an error.
3284 (Fgnutls_boot): Document it and use it.
3285
5645852c
MR
32862013-12-14 Martin Rudalics <rudalics@gmx.at>
3287
3288 * w32term.c (w32_enable_frame_resize_hack): New variable.
3289 (x_set_window_size): Use it to hack frame resizing on Windows
3290 (Bug#16028).
3291
ec4440cf
EZ
32922013-12-14 Eli Zaretskii <eliz@gnu.org>
3293
3294 * fileio.c (Fcopy_file) [WINDOWSNT]: Move most of the
3295 Windows-specific code to w32.c. Change error message text to
3296 match that of Posix platforms.
3297
3298 * w32.c (w32_copy_file): New function, most of the code copied and
3299 reworked from Fcopy_file. Improve error handling. Plug memory
3300 leak when errors are thrown. Support file names outside of the
3301 current codepage. (Bug#7100)
3302
dc7909c4
PE
33032013-12-13 Paul Eggert <eggert@cs.ucla.edu>
3304
3305 * lread.c (load_path_default): Prototype.
3306
06a4f110
GM
33072013-12-13 Glenn Morris <rgm@gnu.org>
3308
3309 * lread.c: Unconditionally reset load-path after dumping. (Bug#16107)
3310 (dump_path): Remove.
3311 (load-path-default): Remove `changed' argument.
3312 Do not set dump_path permanently. Simplify.
3313 (init_lread): Simplify.
3314 (syms_of_lread): Remove dump_path.
3315
5035fbc1
DA
33162013-12-13 Dmitry Antipov <dmantipov@yandex.ru>
3317
3318 * alloc.c, font.c, font.h, ftfont.c, ftxfont.c, macfont.m,
3319 * nsfont.m, w32font.c, xfont.c, xftfont.c: Revert last and
3320 2013-12-12 font-related change to avoid Bug#16128, which
3321 is quite hard to fix without even more substantial changes.
3322
b6c888cc
DA
33232013-12-13 Dmitry Antipov <dmantipov@yandex.ru>
3324
3325 * font.c (font_close_object): Check for live frame (Bug#16128).
3326
11dde529
PE
33272013-12-13 Paul Eggert <eggert@cs.ucla.edu>
3328
3329 * gnutls.c, gnutls.h (emacs_gnutls_record_check_pending):
3330 Return ptrdiff_t, not int, since it's a buffer size.
3331 Reindent/reparen some macros to a more Gnuish style.
3332
4618713a
PE
33332013-12-12 Paul Eggert <eggert@cs.ucla.edu>
3334
3335 Avoid undefined behavior with huge regexp interval counts.
3336 * regex.c (GET_INTERVAL_COUNT): Rename from 'GET_UNSIGNED_NUMBER',
e9dc713d 3337 since it's now specialized to interval counts. All uses changed.
4618713a
PE
3338 Do not assume wrapraound on signed integer overflow.
3339 (regex_compile): Simplify based on the above changes.
3340
01633a17
EZ
33412013-12-12 Eli Zaretskii <eliz@gnu.org>
3342
3343 Support file names on MS-Windows that use characters outside of
3344 the current system codepage. (Bug#7100)
3345
3346 * w32.c (get_file_security, set_file_security)
3347 (create_symbolic_link): Separate pointers and boolean flags for
3348 ANSI and Unicode APIs. Use the latter if w32_unicode_filenames is
3349 non-zero, else the former.
3350 (codepage_for_filenames, filename_to_utf16, )
5b87d0d9
MN
3351 (filename_from_utf16, filename_to_ansi, filename_from_ansi):
3352 New functions.
01633a17
EZ
3353 (init_user_info): Allow $HOME and $SHELL to include non-ANSI
3354 characters.
3355 (normalize_filename): Lose the DBCS code, now works on UTF-8.
3356 Accept only one argument; all callers changed.
3357 (dostounix_filename): Remove the second argument, now works in
3358 UTF-8. All callers changed.
3359 (parse_root): Lose DBCS code.
3360 (get_long_basename, w32_get_short_filename, init_environment)
3361 (GetCachedVolumeInformation, sys_readdir, open_unc_volume)
3362 (read_unc_volume, logon_network_drive, faccessat, sys_chdir)
3363 (sys_chmod, sys_creat, sys_fopen, sys_link, sys_mkdir, sys_open)
3364 (sys_rename_replace, sys_rmdir, sys_unlink, stat_worker, utime)
3365 (is_symlink, readlink, chase_symlinks, w32_delayed_load): Work in
3366 Unicode mode if w32_unicode_filenames is non-zero, in ANSI mode
3367 otherwise.
3368 (ansi_encode_filename): New function.
3369 (get_emacs_configuration, get_emacs_configuration_options):
3370 Functions deleted.
3371 (add_volume_info, GetCachedVolumeInformation): Run the input file
3372 name through unixtodos_filename, to ensure it is stored and
3373 referenced in canonical form.
3374 (get_volume_info): Lose the DBCS code, now works in UTF-8.
3375 (logon_network_drive, sys_link, utime): Improve error handling.
3376 (sys_access): New function.
3377 (hashval, generate_inode_val): Unused functions deleted.
3378 (symlink, readlink, readlinkat): Lose DBCS code, now works in UTF-8.
3379 (check_windows_init_file): Convert error message from UTF-8 to
3380 ANSI codepage, for display in the message box.
3381 (globals_of_w32): Set w32_unicode_filenames according to the OS
3382 version.
3383
3384 * w32term.c (construct_drag_n_drop): Work in Unicode mode when
3385 w32_unicode_filenames is non-zero, ANSI mode otherwise.
3386 (syms_of_w32term): Declare w32-unicode-filenames.
3387
3388 * w32proc.c (new_child, delete_child): Remove code that handled
3389 unused pending_deletion and input_file members of the child struct.
3390 (create_child, sys_spawnve): Convert all file names to ANSI
3391 codepage. Use ANSI APIs explicitly; forcibly fail if any file
3392 name cannot be encoded in ANSI codepage. Don't use
3393 unixtodos_filename, mirror slashes by hand.
3394 (record_infile, record_pending_deletion): Functions deleted.
3395 (Fw32_short_file_name): Call w32_get_short_filename instead of
3396 GetShortPathName.
3397
3398 * w32notify.c (add_watch): Work in Unicode mode when
3399 w32_unicode_filenames is non-zero, ANSI mode otherwise.
3400 (Fw32notify_add_watch): Rewrite to avoid using GetFullPathName;
3401 instead, do the same with Lisp primitives.
3402
3403 * w32fns.c (file_dialog_callback, Fx_file_dialog)
3404 (Fsystem_move_file_to_trash, Fw32_shell_execute)
3405 (Ffile_system_info, Fdefault_printer_name): Work in Unicode mode
3406 when w32_unicode_filenames is non-zero, ANSI mode otherwise.
3407 (Fw32_shell_execute): Improve error reporting.
3408 (Fdefault_printer_name): Ifdef away for Cygwin.
3409
3410 * w32.h (struct _child_process): Remove input_file and
3411 pending_deletion members that are no longer used.
3412 (dostounix_filename, w32_get_short_filename, filename_from_ansi)
3413 (filename_to_ansi, filename_from_utf16, filename_to_utf16)
3414 (ansi_encode_filename): New and updated prototypes.
3415
3416 * unexw32.c (open_input_file, open_output_file, unexec): Use ANSI
3417 APIs explicitly.
3418 (unexec): Don't use dostounix_filename, it expects a file name in
3419 UTF-8. Instead, mirror backslashes by hand. Convert NEW_NAME to
3420 ANSI encoding.
3421
3422 * fileio.c (Ffile_name_directory, file_name_as_directory)
3423 (directory_file_name, Fexpand_file_name)
3424 (Fsubstitute_in_file_name) [WINDOWSNT]: Adapt to the change in
3425 arguments of dostounix_filename.
3426 (Fexpand_file_name) [WINDOWSNT]: Convert value of $HOME to UTF-8.
3427 use MAX_UTF8_PATH for size of file-name strings.
3428 (emacs_readlinkat): Build an explicitly unibyte string for file
3429 names.
a544fbe1
GM
3430 (syms_of_fileio) <file-name-coding-system>:
3431 <default-file-name-coding-system>: Mention MS-Windows peculiarities.
01633a17
EZ
3432
3433 * emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8.
3434 (main) [WINDOWSNT]: Convert the argv[] elements that are files or
3435 directories to UTF-8.
3436 (decode_env_path) [WINDOWSNT]: Convert file names taken from the
3437 environment, and each element of the input PATH, to UTF-8.
3438
3439 * dired.c (file_attributes): Use build_unibyte_string explicitly
3440 to make Lisp strings from user and group names.
3441
3442 * coding.h (ENCODE_FILE, DECODE_FILE): Just call encode_file and
3443 decode_file.
3444
3445 * coding.c (decode_file_name, encode_file_name): New functions.
3446
3447 * termcap.c (tgetent): Adapt to the change in arguments of
3448 dostounix_filename.
3449
3450 * sysdep.c (sys_subshell) [WINDOWSNT]: Use MAX_UTF8_PATH for file
3451 names.
3452
3453 * msdos.c (dostounix_filename, init_environment): Adapt to the
3454 change in arguments of dostounix_filename.
3455
3456 * image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
3457 [WINDOWSNT]: Encode file names passed to the image libraries in
3458 ANSI codepage.
3459
3460 * gnutls.c (Fgnutls_boot): Encode all file names passed to GnuTLS.
3461 [WINDOWSNT]: Convert file names to the current ANSI codepage.
3462
3463 * filelock.c (lock_file) [WINDOWSNT]: Adapt to the change in
3464 arguments of dostounix_filename.
3465
cf86e18b
DA
34662013-12-12 Dmitry Antipov <dmantipov@yandex.ru>
3467
3468 * font.h (struct font_entity) [HAVE_NS]: New field to record
3469 font driver which was used to create this entity.
3470 (struct font) [HAVE_WINDOW_SYSTEM]: New field to record
3471 frame where the font was opened.
3472 (font_close_object): Add prototype.
3473 * font.c (font_make_entity) [HAVE_NS]: Zero out driver field.
3474 (font_close_object): Not static any more. Lost frame arg.
3475 Adjust comment and users.
3476 * alloc.c (cleanup_vector): Call font_close_object to adjust
3477 per-frame font counters correctly. If HAVE_NS, also call
3478 driver-specific cleanup for font-entity objects.
3479 * ftfont.c (ftfont_open):
3480 * nsfont.m (nsfont_open):
3481 * w32font.c (w32font_open_internal):
3482 * xfont.c (xfont_open):
3483 * xftfont.c (xftfont_open): Save frame pointer in font object.
3484 * macfont.m (macfont_open): Likewise.
3485 (macfont_descriptor_entity): Save driver pointer to be able
3486 to call its free_entity routine when font-entity is swept.
3487 * ftxfont.c (ftxfont_open): Add eassert because frame
3488 pointer should be saved by ftfont_driver.open.
3489
96542302
DA
34902013-12-12 Dmitry Antipov <dmantipov@yandex.ru>
3491
3492 * xterm.c (x_make_frame_visible): Restore hack which is needed when
3493 input polling is used. This is still meaningful for Cygwin, see
3494 http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html.
5b87d0d9
MN
3495 * keyboard.c (poll_for_input_1, input_polling_used):
3496 Define unconditionally.
397a32c1
DA
3497 * dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
3498 (FACE_FOR_CHAR): Simplify because face_for_char does the same.
3499 * fontset.c (face_suitable_for_char_p) [0]: Remove unused function.
3500 (font_for_char): Prefer ptrdiff_t to int for buffer position.
3501 (face_for_char): Likewise. Rearrange eassert and return ASCII
3502 face for CHAR_BYTE8_P.
3503 * fontset.h (font_for_char, face_for_char): Adjust prototypes.
96542302 3504
1421be84
KB
35052013-12-11 Ken Brown <kbrown@cornell.edu>
3506
3507 * dispextern.h (erase_phys_cursor):
3508 * keyboard.h (make_ctrl_char): Declare prototypes if HAVE_NTGUI.
3509
5a80236f
DA
35102013-12-11 Dmitry Antipov <dmantipov@yandex.ru>
3511
3512 * nsterm.m (x_free_frame_resources):
3513 * term.c (tty_free_frame_resources):
3514 * xterm.c (x_free_frame_resources): Do not check for non-NULL
3515 face cache because it's implied by free_frame_faces anyway.
3516 * w32term.c (x_free_frame_resources): Likewise. Do not call
3517 free_frame_faces twice.
3518
4ec52e2f
RS
35192013-12-11 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
3520
3521 * editfns.c (Fformat_time_string): Mention %F in the doc.
3522
d94c40c1
MR
35232013-12-11 Martin Rudalics <rudalics@gmx.at>
3524
3525 * window.c (resize_frame_windows): Don't return immediately when
3526 the root window's size doesn't change - the minibuffer window
3527 may still have to be repositioned/resized.
3528 * xfns.c (Fx_create_frame): Always change the frame size after
3529 initializing the frame's faces.
3530 * xterm.c (handle_one_xevent): Don't set pixel sizes here,
3531 change_frame_size should already have done it.
3532 (x_new_font): Assign new tool- and menu-bar heights.
3533 (x_set_window_size_1): Account for tool- and menu-bar heights
e9dc713d 3534 (Bug#16013). Don't set pixel sizes since change_frame_size
d94c40c1
MR
3535 should already have done it.
3536
a8f9bc05
PE
35372013-12-11 Paul Eggert <eggert@cs.ucla.edu>
3538
3539 Remove the option of using libcrypto.
3540 * Makefile.in (LIB_CRYPTO): Remove.
3541 (LIBES): Don't use it.
3542
26ec2ce9
JL
35432013-12-11 Juri Linkov <juri@jurta.org>
3544
3545 * term.c (term_get_fkeys_1): Remove non-standard IBM terminfo
3546 as obsolete to avoid conflicts with <S-up>. (Bug#13471)
3547
a71cfa02
DA
35482013-12-10 Dmitry Antipov <dmantipov@yandex.ru>
3549
3550 * xdisp.c (display_tool_bar_line): Don't extend on a previously
3551 drawn tool bar items (Bug#16058).
e8374b39 3552 * font.c (font_find_for_lface): Ensure SAFE_FREE on return.
a71cfa02 3553
336fe071
KB
35542013-12-09 Ken Brown <kbrown@cornell.edu>
3555
3556 * frame.c (get_frame_param): Make extern if HAVE_NTGUI.
3557
3558 * lisp.h (get_frame_param): Adjust conditions for prototype
3559 declaration.
3560
ad8a47b8
DA
35612013-12-09 Dmitry Antipov <dmantipov@yandex.ru>
3562
3563 * gtkutil.c (USE_NEW_GTK_FONT_CHOOSER) [HAVE_FREETYPE]:
3564 Avoid unused macro warning if configured --without-xft.
3565
5e48429a
JD
35662013-12-09 Jan Djärv <jan.h.d@swipnet.se>
3567
3568 * alloc.c (Fmemory_limit): Avoid compiler warning. Return 0 always.
3569
40f18bf3
JD
35702013-12-08 Jan Djärv <jan.h.d@swipnet.se>
3571
a6c4680a 3572 * nsterm.m (updateFrameSize:): Fix GNUstep toolbar not updating.
b3e42b70 3573
a6c4680a 3574 * emacs.c (main): Call fixup_locale a second time for GNUstep.
40f18bf3 3575
acfe4602
MR
35762013-12-08 Martin Rudalics <rudalics@gmx.at>
3577
3578 * frame.c (x_set_font): Mark frame as garbaged (Bug#16028).
3579
95b3d095
PE
35802013-12-08 Paul Eggert <eggert@cs.ucla.edu>
3581
e9551b12
PE
3582 Use libcrypto's checksum implementations if available, for speed.
3583 * Makefile.in (LIB_CRYPTO): New macro.
3584 (LIBES): Use it.
3585
95b3d095
PE
3586 * frame.h (SET_FRAME_VISIBLE): Now an inline function.
3587 The macro didn't conform to C99 due to type mismatch,
3588 which caused compilation failure with Sun C 5.12,
3589 and it was confusing anyway. Include window.h to declare
3590 redisplay_other_windows.
3591
0d9cba29
SM
35922013-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
3593
3594 * window.c (set_window_buffer): Update mode line (bug#16084).
3595
67840e66
PE
35962013-12-07 Paul Eggert <eggert@cs.ucla.edu>
3597
3598 Fix minor problems found by static checking.
3599 * keyboard.c (poll_for_input_1, input_polling_used):
3600 Define only if HAVE_NTGUI.
3601 * xmenu.c (popup_activate_callback): Omit unnecessary
3602 check against USE_X_TOOLKIT, which must be defined here anyway.
3603 * xterm.c, xterm.h (x_dispatch_event) [! (USE_X_TOOLKIT || USE_MOTIF)]:
3604 Now static.
3605
947003b5
MR
36062013-12-07 Martin Rudalics <rudalics@gmx.at>
3607
3608 * w32term.c (w32_read_socket): Fix int/Lisp_Object type mixup.
3609
7def8cbd
JD
36102013-12-07 Jan Djärv <jan.h.d@swipnet.se>
3611
c4142a83
JD
3612 * gtkutil.c (tb_size_cb): Call xg_height_or_width_changed.
3613
1bb2debd
JD
3614 * nsterm.m (x_set_window_size): Remove fprintf.
3615 (init): Define always. Set applicationDidFinishLaunchingCalled
a6c4680a 3616 for GNUstep.
0d9cba29
SM
3617 (applicationDidFinishLaunching:):
3618 Set applicationDidFinishLaunchingCalled.
1bb2debd
JD
3619 (applicationDidBecomeActive:): Call applicationDidFinishLaunching if
3620 not called.
3621
3622 * nsterm.h (EmacsApp): Add applicationDidFinishLaunchingCalled.
3623
fa6fa1a1 3624 Pixel resize changes for NS (Bug#16049).
7def8cbd
JD
3625 * nsterm.m (x_set_window_size): Change parameters rows/cols to
3626 height/width. row/cols are locals.
3627 Pass pixelwise to check_frame_size. Don't set FRAME_PIXEL_WIDTH/HEIGHT.
3628 (updateFrameSize:): Remove gsextra. Adjust for pixelwise resize.
3629 (windowWillResize): Remove gsextra. Calculate extra as in
3630 updateFrameSize.
0d9cba29
SM
3631 (x_new_font): Don't change frame size if fullscreen.
3632 Change size pixelwise.
7def8cbd
JD
3633
3634 * nsfns.m (Fx_create_frame): Call change_frame_size twice as per
3635 comment in xfns.c. Change to pixelwise call.
3636
6d6aa291
EZ
36372013-12-06 Eli Zaretskii <eliz@gnu.org>
3638
3639 * buffer.c (Fset_buffer_multibyte): Invalidate buffer caches.
3640 (Bug#16070)
3641
64ed4306
DA
36422013-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3643
3644 * xterm.c (input_signal_count): Remove.
3645 (x_dispatch_event): Define unconditionally.
3646 (x_make_frame_visible): Process X events until the frame
3647 is really visible (Bug#16027).
3648 * xterm.h (x_dispatch_event): Declare unconditionally.
3649
c619527c
JD
36502013-12-05 Jan Djärv <jan.h.d@swipnet.se>
3651
3652 * nsfns.m (ns_frame_parm_handlers): Add right/bottom_divider_width.
3653
3654 * nsterm.m (x_set_window_size): Handle pixelwise.
3655
8bea269d
MR
36562013-12-05 Martin Rudalics <rudalics@gmx.at>
3657
3658 * w32term.c (x_new_font):
3659 * xterm.c (x_new_font): Calculate new frame size from new font
3660 size (Bug#16028).
3661
22800ae9
SM
36622013-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
3663
105324ce
SM
3664 * lisp.h (FOR_EACH_TAIL): New macro.
3665 * fns.c (Fdelq): Use it to avoid inf-loops; remove QUIT.
3666
22800ae9
SM
3667 * window.c (select_window): Call second wset_redisplay before we change
3668 selected_window (bug#16034).
3669
c521fe29
PE
36702013-12-04 Paul Eggert <eggert@cs.ucla.edu>
3671
3672 * bidi.c (LRM_CHAR, RLM_CHAR): Remove; no longer used.
3673
913250cf
EZ
36742013-12-04 Eli Zaretskii <eliz@gnu.org>
3675
3676 * w32xfns.c: Include window.h, to avoid a compiler warning.
3677
5961ad6c
SM
36782013-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
3679
3680 * window.c (window_scroll): Mark window for redisplay (bug#16034).
3681 (scroll_command, Fscroll_other_window): Don't cause redisplay now that
3682 window_scroll takes care of it.
3683 (Fset_window_point, Fdelete_other_windows_internal)
3684 (set_window_buffer, Fwindow_resize_apply, resize_frame_windows)
3685 (Fsplit_window_internal, Fdelete_window_internal)
3686 (Fresize_mini_window_internal, Fset_window_configuration)
3687 (apply_window_adjustment): Use fset_redisplay and wset_redisplay to
3688 cause redisplay instead of forcing a complete redisplay.
3689 * xdisp.c (wset_redisplay): Don't set windows_or_buffers_changed if
3690 we're only affecting the selected_window.
3691
ad826124
EZ
36922013-12-04 Eli Zaretskii <eliz@gnu.org>
3693
3694 * bidi.c (bidi_get_type, bidi_get_category): Handle the isolate
3695 directional control characters. Update type and category
3696 determination according to the UBA from Unicode v6.3.
3697 (bidi_category_t): New category EXPLICIT_FORMATTING.
3698
3699 * dispextern.h (bidi_type_t): Update to include new bidirectional
3700 properties introduced with Unicode v6.3. (Bug#16043)
3701
2db4a1b6
MR
37022013-12-04 Martin Rudalics <rudalics@gmx.at>
3703
3704 * xterm.c (XTflash): Fix coordinate of bottom area to flash
3705 (Bug#16044).
3706
a378aa9d
DA
37072013-12-04 Dmitry Antipov <dmantipov@yandex.ru>
3708
3709 * font.c (font_list_entities): Remove dummy assignment.
3710 * font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are
3711 used on graphic displays only. Remove unused 'font_encoder' member.
a84c9950 3712 (struct font_bitmap): Remove unused 'extra' member.
a378aa9d 3713 * nsfont.m (nsfont_open):
a84c9950
DA
3714 * w32font.c (w32font_open_internal):
3715 * ftfont.c (ftfont_get_bitmap): Adjust users.
a378aa9d 3716
2654ac09
PE
37172013-12-03 Paul Eggert <eggert@cs.ucla.edu>
3718
5df474aa
PE
3719 Use bool for boolean.
3720 * tparam.c (tparam1):
3721 * undo.c (record_point, record_property_change):
3722 Use bool for boolean, for local vars that are always true or false.
3723
2654ac09
PE
3724 Minor integer overflow fixes (Bug#16033).
3725 * window.c (Fset_window_new_pixel): Don't let new_pixel go negative.
3726 This improves on the previous fix to this function.
3727 (window_resize_check): When summing up pixel counts, don't rely on
3728 undefined behavior if the sum overflows.
3729
7303a0ae
MR
37302013-12-03 Martin Rudalics <rudalics@gmx.at>
3731
3732 * window.c (Fset_window_new_pixel): Don't choke at negative
3733 argument value (Bug#16033).
3734
3735 * xfns.c (Fx_create_frame): Add another call to change_frame_size
3736 to avoid crash in window_box_height.
3737
3738 * gtkutil.h: Fix external declaration of xg_frame_set_char_size.
3739 * gtkutil.c (xg_frame_set_char_size, style_changed_cb): Fix size
3740 calculation.
3741 * xterm.c (x_set_window_size): Fix size calculation (Bug#16013).
3742
25636e13
PE
37432013-12-03 Paul Eggert <eggert@cs.ucla.edu>
3744
3745 Minor integer overflow fixes.
3746 * window.c (Fset_window_new_pixel, grow_mini_window):
3747 * xdisp.c (Fwindow_text_pixel_size):
3748 Avoid undefined behavior on signed integer overflow.
3749 * xfns.c (x_set_mouse_color):
3750 Check that drag shape fits in 'unsigned', since that's what X wants.
3751
21bf394d
EZ
37522013-12-02 Eli Zaretskii <eliz@gnu.org>
3753
3754 Improve reporting of fatal exception on MS-Windows.
3755 * w32fns.c (my_exception_handler): New function.
3756 (globals_of_w32fns): Set it up as the unhandled exception
3757 handler. Initialize exception code and address to zeros.
3758 (emacs_abort): If the exception code and address are available,
3759 print them at the beginning of the backtrace. Fix the format of
3760 printing addresses (was producing 0x0x12345678 on XP).
3761 (Bug#15994)
3762
f345395c
HE
37632013-12-02 Helmut Eller <eller.helmut@gmail.com>
3764
3765 * eval.c (Fbacktrace__locals): New function.
3766 (syms_of_eval): Defsubr it.
3767
dacc9715
DA
37682013-12-02 Dmitry Antipov <dmantipov@yandex.ru>
3769
3770 * font.h (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_DESCENT):
3771 Define here to unify between...
3772 * nsterm.h, w32term.h, xterm.h: ...port-specific headers.
3773 * w32term.h (CHECK_W32_FRAME): Remove unused macro.
3774
e0e0af3b
YM
37752013-12-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3776
3777 * xterm.h (struct scroll_bar): Remove member `fringe_extended_p'.
3778
3779 * xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for
3780 fringe background extension.
3781 (x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
3782 because they are now always the same as `left' and `width',
3783 respectively. Remove code for the case that `width' and
3784 `sb_width' are different.
3785
75b09539
PE
37862013-12-01 Paul Eggert <eggert@cs.ucla.edu>
3787
3788 Fix minor problems found by static checking.
3789 * dispextern.h, xdisp.c (x_draw_bottom_divider): Now static.
3790 * frame.c (set_frame_param) [!HAVE_NTGUI]: Remove.
3791 * xdisp.c (Ftool_bar_height) [USE_GTK || HAVE_NS]: Now const function.
3792
5f9aee6f
LMI
37932013-12-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
3794
3795 * image.c (imagemagick_compute_animated_image): Don't crash if we
3796 have an animation with different-sized images (bug#15313).
3797
90caab3f
MR
37982013-11-30 Martin Rudalics <rudalics@gmx.at>
3799
3800 Remove some unused items introduced during pixelwise change.
3801 * window.c (window_resize_total_check): Remove unused function.
3802 * xdisp.c (remember_mouse_glyph): Remove unused label.
3803 (Ftool_bar_height): Move declaration inside #if.
3804 * xterm.c (x_set_window_size): Don't use r and c.
3805
6ae87264
JB
38062013-11-30 Juanma Barranquero <lekktu@gmail.com>
3807
3808 * xdisp.c (Fwindow_text_pixel_size): Remove unused variables
3809 `value' and `endp'.
3810
3811 * window.c (Fset_window_configuration): Comment out unused variables.
3812
3813 * w32term.c (w32_read_socket): Remove unused variable `buf'.
3814
f80e1bb6
JD
38152013-11-30 Jan Djärv <jan.h.d@swipnet.se>
3816
eb6f376d
JD
3817 * xdisp.c (redisplay_internal): unrequest_sigio => request_sigio.
3818
8e2d7ef2
JD
3819 * xfaces.c (NEAR_SAME_COLOR_THRESHOLD): Move inside HAVE_WINDOW_SYSTEM.
3820
3821 * gnutls.c (gnutls_audit_log_function): Only declare and define if
3822 HAVE_GNUTLS3 (Bug#16001).
3823
f80e1bb6
JD
3824 * xdisp.c (redisplay_internal): Call request_sigio at end_of_redisplay
3825 if interrupts are deferred (Bug#15801).
3826
10634b40 38272013-11-30 Martin Rudalics <rudalics@gmx.at>
880e6158
MR
3828
3829 Support resizing frames and windows pixelwise.
3830 * dispextern.h (enum window_part): Add ON_SCROLL_BAR,
3831 ON_RIGHT_DIVIDER and ON_BOTTOM_DIVIDER.
3832 (struct glyph_matrix): Replace window_left_col and
3833 window_top_line by window_pixel_left and window_pixel_top.
0d9cba29
SM
3834 (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P):
3835 Minor rewrite.
880e6158
MR
3836 (enum face_id): Add WINDOW_DIVIDER_FACE_ID.
3837 (draw_window_divider, move_it_to, x_draw_right_divider)
3838 (x_draw_bottom_divider, change_frame_size): Add or fix
3839 declarations.
3840 * dispnew.c (change_frame_size_1): Change prototype.
3841 (adjust_glyph_matrix, required_matrix_width)
3842 (adjust_frame_glyphs_for_window_redisplay): Use pixel
3843 values instead of lines and columns.
3844 (marginal_area_string): Use WINDOW_FRINGES_WIDTH instead of
3845 WINDOW_TOTAL_FRINGE_WIDTH.
3846 (handle_window_change_signal, do_pending_window_change)
3847 (init_display): Adjusts calls of change_frame_size.
3848 (change_frame_size, change_frame_size_1): Handle pixelwise
3849 changes.
0d9cba29
SM
3850 * frame.c (Qright_divider_width, Qbottom_divider_width):
3851 New Lisp objects.
880e6158
MR
3852 (set_menu_bar_lines_1, set_menu_bar_lines, make_frame)
3853 (make_terminal_frame, Fmake_terminal_frame, Fframe_parameters)
3854 (x_set_internal_border_width, x_set_vertical_scroll_bars)
3855 (x_set_scroll_bar_width, x_figure_window_size): Handle pixel
3856 values.
3857 (set_frame_param): New function.
3858 (Fframe_text_cols, Fframe_text_lines, Fframe_total_cols)
3859 (Fframe_text_width, Fframe_text_height, Fscroll_bar_width)
3860 (Ffringe_width, Fborder_width, Fright_divider_width)
3861 (Fbottom_divider_width): New functions, defsubr them.
0d9cba29
SM
3862 (Fset_frame_height, Fset_frame_width, Fset_frame_size):
3863 New argument pixelwise.
880e6158
MR
3864 (struct frame_parm_table): New members Qright_divider_width and
3865 Qbottom_divider_width.
3866 (x_set_frame_parameters): Handle parameters for pixelwise sizes.
3867 (x_report_frame_params): Handle Qright_divider_width and
3868 Qbottom_divider_width.
0d9cba29
SM
3869 (x_set_right_divider_width, x_set_bottom_divider_width):
3870 New functions.
880e6158
MR
3871 (frame_resize_pixelwise): New option.
3872 * frame.h (struct frame): Add tool_bar_height, menu_bar_height,
3873 new_pixelwise, right_divider_width and bottom_divider_width;
3874 remove total_lines; rename text_lines, text_cols, new_text_lines
3875 and new_text_cols to text_height, text_width, new_height and
3876 new_width respectively.
3877 (FRAME_LINES, FRAME_COLS): Rename to FRAME_TEXT_HEIGHT and
3878 FRAME_TEXT_WIDTH respectively.
3879 (FRAME_MENU_BAR_HEIGHT, FRAME_TOOL_BAR_HEIGHT)
3880 (FRAME_RIGHT_DIVIDER_WIDTH, FRAME_BOTTOM_DIVIDER_WIDTH)
0d9cba29
SM
3881 (FRAME_TEXT_TO_PIXEL_WIDTH, FRAME_PIXEL_TO_TEXT_WIDTH):
3882 New macros.
880e6158
MR
3883 (FRAME_TOP_MARGIN_HEIGHT, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
3884 (FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH, FRAME_SCROLL_BAR_AREA_WIDTH)
3885 (SET_FRAME_COLS, SET_FRAME_WIDTH, SET_FRAME_HEIGHT)
3886 (FRAME_TEXT_COLS_TO_PIXEL_WIDTH, FRAME_PIXEL_WIDTH_TO_TEXT_COLS)
3887 (FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rewrite macros.
3888 (FRAME_TOTAL_COLS_ARG): Remove macro.
3889 * fringe.c (draw_fringe_bitmap_1): Handle right divder.
3890 * gtkutil.c (xg_frame_resized, xg_frame_set_char_size)
3891 (x_wm_set_size_hint): Handle frame pixel sizes.
0d9cba29
SM
3892 * indent.c (compute_motion, Fcompute_motion):
3893 Call window_body_width instead of window_body_cols.
880e6158
MR
3894 * keyboard.c (Qright_divider, Qbottom_divider): New symbols.
3895 (make_lispy_position): Handle right and bottom dividers.
3896 (Fsuspend_emacs): Pixelize call of change_frame_size.
3897 * keyboard.h: Extern Qright_divider, Qbottom_divider.
3898 * lisp.h: Extern set_frame_param.
3899 * nsfns.m (x_set_tool_bar_lines): Pixelize call of
3900 x_set_window_size.
0d9cba29
SM
3901 (Fx_create_frame): Add entry for vertical_drag_cursor.
3902 Pixelize call of change_frame_size.
880e6158
MR
3903 * nsterm.h (struct ns_output): Add vertical_drag_cursor.
3904 * nsterm.m (ns_update_window_end): Optionally draw right
3905 divider.
0d9cba29
SM
3906 (x_set_window_size): Add argument pixelwise.
3907 Call check_frame_size and change_frame_size with pixelwise zero.
880e6158
MR
3908 (ns_draw_window_divider): New function.
3909 (ns_redisplay_interface): Add ns_draw_window_divider.
3910 (updateFrameSize:): Call change_frame_size with pixelwise zero.
3911 (x_new_font): Call x_set_window_size with pixelwise zero.
3912 * print.c (print_object): For a window print its sequence
3913 number again.
3914 * term.c (Fresume_tty): Pixelize call of change_frame_size.
3915 * w32fns.c (x_set_mouse_color): Handle vertical drag cursor.
3916 (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
3917 (w32_createwindow): Use scroll bar area width.
0d9cba29
SM
3918 (w32_wnd_proc): Handle bottom divider width.
3919 For WM_WINDOWPOSCHANGING return zero if we resize pixelwise.
3920 (Fx_create_frame): Default divider width parameters.
3921 Caclulate sizes pixelwise. Add vertical drag cursor support.
3922 (x_create_tip_frame): Default divider widths to zero.
3923 Pixelize call to change_frame_size.
880e6158
MR
3924 (Fx_show_tip): Add handling of divider widths. Pixelize window
3925 position and sizes.
3926 (Fw32_frame_rect): New function.
3927 (frame_parm_handler w32_frame_parm_handlers): Add divider
3928 widths.
3929 (Vx_window_vertical_drag_shape): Add variable.
3930 * w32inevt.c (resize_event, maybe_generate_resize_event):
3931 Pixelize change_frame_size calls.
3932 * w32menu.c (set_frame_menubar): Pixelize x_set_window_size
3933 call.
3934 * w32term.c (w32_draw_window_divider): New function.
3935 (x_update_window_end): Handle right divider.
3936 (w32_draw_fringe_bitmap, x_scroll_run)
3937 (w32_set_vertical_scroll_bar): Pixelize scrollbar widths.
0d9cba29
SM
3938 (w32_read_socket): Handle SIZE_MAXIMIZED separately.
3939 Calculate new frame sizes pixelwise.
880e6158
MR
3940 (x_new_font): Pixelize call to x_set_window_size.
3941 (x_check_fullscreen): Pixelize call to change_frame_size.
3942 (x_set_window_size_1, x_set_window_size): New argument
3943 pixelwise. Calculate pixelwise.
3944 (x_wm_set_size_hint): Use scroll bar area width.
3945 (w32_redisplay_interface): Add w32_draw_window_divider.
3946 * w32term.h (struct w32_output): Add vertical drag cursor.
3947 * widget.c (set_frame_size, update_wm_hints)
3948 (EmacsFrameResize, EmacsFrameSetValues): Pixelize calls of
3949 change_frame_size.
3950 (EmacsFrameSetCharSize): Pixelize call of x_set_window_size.
3951 * window.c (sequence_number): Restore.
3952 (Fwindow_pixel_width, Fwindow_pixel_height)
3953 (Fwindow_mode_line_height, Fwindow_header_line_height)
3954 (window_pixel_to_total, Frun_window_scroll_functions)
3955 (Fset_window_new_pixel, window_resize_apply_total)
3956 (Fwindow_resize_apply_total): New functions.
3957 (window_body_height, window_body_width): Rename from
0d9cba29
SM
3958 window_body_lines. New argument PIXELWISE.
3959 Calculate pixelwise.
880e6158
MR
3960 (Fwindow_body_height, Fwindow_body_width): New argument
3961 PIXELWISE.
3962 (coordinates_in_window, window_relative_x_coord): Use window's
3963 pixel width instead of total width.
3964 (replace_window, recombine_windows): Initialize pixel values.
3965 (resize_root_window, resize_frame_windows, grow_mini_window)
0d9cba29
SM
3966 (shrink_mini_window): New argument PIXELWISE.
3967 Calculate pixelwise.
880e6158
MR
3968 (Fdelete_other_windows_internal, adjust_window_margins)
3969 (window_resize_check, window_resize_apply)
3970 (Fdelete_window_internal, Fresize_mini_window_internal)
3971 (Fwindow_text_width, Fwindow_text_height): Calculate pixelwise.
3972 (check_frame_size): Rename arguments. New argument PIXELWISE.
3973 Calculate pixelwise.
3974 (set_window_buffer): Make samebuf bool. Run configuration change
3975 hook only if buffer changed.
3976 (Fset_window_buffer): Rewrite doc-string.
3977 (make_window): Initialize new_pixel slot.
3978 (Fwindow_resize_apply): Check pixel size of root window.
3979 (Fsplit_window_internal): Call 2nd argument pixel_size.
3980 Calculate pixelwise.
3981 (Fscroll_left, Fscroll_right): Call window_body_width instead of
3982 window_body_cols.
3983 (save_window_data): New slots frame_text_width,
3984 frame_text_height, frame_menu_bar_height, frame_tool_bar_height.
3985 (saved_window): New slots pixel_left, pixel_top, pixel_height,
3986 pixel_width.
3987 (Fcurrent_window_configuration, Fset_window_configuration)
3988 (save_window_save, compare_window_configurations): Handle new
3989 slots in save_window_data and saved_window.
3990 (Fset_window_scroll_bars): Fix doc-string.
3991 (window_resize_pixelwise): New variable.
0d9cba29
SM
3992 (coordinates_in_window, Fcoordinates_in_window_p):
3993 Handle dividers.
880e6158 3994 (make_parent_window): Adjust sequence_number.
0d9cba29
SM
3995 (Fwindow_right_divider_width, Fwindow_bottom_divider_width):
3996 New functions.
880e6158
MR
3997 * window.h (struct window): New members new_pixel, pixel_left,
3998 pixel_top, pixel_width, pixel_height. Restore sequence_number.
3999 (wset_new_pixel): New function.
4000 (WINDOW_PIXEL_WIDTH, WINDOW_PIXEL_HEIGHT)
4001 (MIN_SAFE_WINDOW_PIXEL_WIDTH, MIN_SAFE_WINDOW_PIXEL_HEIGHT)
4002 (WINDOW_LEFT_PIXEL_EDGE, WINDOW_RIGHT_PIXEL_EDGE)
4003 (WINDOW_TOP_PIXEL_EDGE, WINDOW_BOTTOM_PIXEL_EDGE)
4004 (WINDOW_BOTTOMMOST_P, WINDOW_BOX_LEFT_PIXEL_EDGE)
4005 (WINDOW_BOX_RIGHT_PIXEL_EDGE, WINDOW_MARGINS_COLS)
4006 (WINDOW_MARGINS_WIDTH, WINDOW_RIGHT_DIVIDER_WIDTH)
4007 (WINDOW_BOTTOM_DIVIDER_WIDTH): New macros.
4008 (WINDOW_TOTAL_FRINGE_WIDTH): Rename to WINDOW_FRINGES_WIDTH.
4009 (WINDOW_TOTAL_WIDTH, WINDOW_TOTAL_HEIGHT): Remove macros.
4010 (WINDOW_RIGHT_EDGE_X, WINDOW_LEFT_EDGE_X, WINDOW_TOP_EDGE_Y)
4011 (WINDOW_BOTTOM_EDGE_Y, WINDOW_FULL_WIDTH_P, WINDOW_LEFTMOST_P)
4012 (WINDOW_RIGHTMOST_P, WINDOW_BOX_LEFT_EDGE_X)
4013 (WINDOW_BOX_RIGHT_EDGE_X, WINDOW_FRINGE_COLS)
4014 (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT):
4015 Rewrite.
4016 (resize_frame_windows, grow_mini_window, shrink_mini_window)
4017 (window_body_width, check_frame_size): Adapt external declarations.
4018 * xdisp.c (last_max_ascent): New integer.
4019 (window_text_bottom_y): Handle bottom divider.
4020 (window_box_width, window_box_height): Calculate pixelwise.
4021 (get_glyph_string_clip_rects): Handle right divider.
4022 (remember_mouse_glyph): When windows are resized pixelwise
4023 proceed with width and height set to 1.
4024 (init_iterator): Use WINDOW_PIXEL_WIDTH instead of
4025 WINDOW_TOTAL_WIDTH.
4026 (move_it_to): Calculate and return maximum x position
4027 encountered.
4028 (Fwindow_text_pixel_size): New function.
4029 (resize_mini_window, update_tool_bar): Calculate pixelwise.
0d9cba29
SM
4030 (tool_bar_lines_needed): Rename to tool_bar_height.
4031 Calculate pixelwise.
4032 (Ftool_bar_lines_needed): Rename to Ftool_bar_height.
4033 Calculate pixelwise.
880e6158
MR
4034 (redisplay_tool_bar): Calculate pixelwise.
4035 (redisplay_window): Calculate pixelwise. Handle dividers.
4036 (draw_glyphs, x_clear_end_of_line, note_mouse_highlight)
4037 (x_draw_vertical_border): Handle dividers.
4038 (define_frame_cursor1): Handle vertical drag cursor.
4039 (x_draw_right_divider, x_draw_bottom_divider): New functions.
4040 (expose_window): Calculate pixelwise. Handle dividers.
4041 (init_xdisp): Initialize pixel values.
4042 * xfaces.c (Qwindow_divider): New face.
4043 (realize_basic_faces): Realize it.
4044 * xfns.c (x_set_mouse_color): Handle vertical_drag_cursor.
4045 (x_set_menu_bar_lines, x_set_tool_bar_lines): Calculate pixelwise.
4046 (x_set_scroll_bar_default_width): Default actual width to 16.
4047 (Fx_create_frame): Set sizes pixelwise.
0d9cba29
SM
4048 (x_create_tip_frame): Default divider widths to zero.
4049 Pixelize call of change_frame_size.
880e6158
MR
4050 (Fx_show_tip): Handle divider widths. Initial pixel position
4051 and sizes.
4052 (frame_parm_handler x_frame_parm_handlers): Add divider widths.
4053 (Vx_window_vertical_drag_shape): New option.
4054 * xmenu.c (free_frame_menubar): Pixelize call of
4055 x_set_window_size.
4056 * xterm.c (x_draw_window_divider): New function.
4057 (x_update_window_end): Optionally draw right divider.
4058 (x_draw_fringe_bitmap, x_scroll_run, x_scroll_bar_create)
4059 (XTset_vertical_scroll_bar): Use scroll bar pixel width.
4060 (handle_one_xevent, x_new_font): Calculate pixelwise.
4061 (x_set_window_size_1, x_set_window_size): New argument
4062 pixelwise. Calculate pixelwise.
4063 (x_wm_set_size_hint): Pixelize call of check_frame_size.
4064 (struct x_redisplay_interface): Add x_draw_window_divider.
4065 * xterm.h (struct x_output): Add vertical_drag_cursor.
4066
44ad1cf7
SM
40672013-11-30 Stefan Monnier <monnier@iro.umontreal.ca>
4068
4069 * xdisp.c (redisplay_internal): Don't call set_window_update_flags.
4070 Set invisible frames's `redisplay' when a full redisplay is requested.
4071 (redisplay_window): Set must_be_updated_p instead (bug#15999).
4072 (redisplay_mode_lines): Don't set must_be_updated_p any more.
4073 (display_mode_lines): Set it here instead.
4074
4075 * dispnew.c (set_window_update_flags): Remove `b' argument; make static.
4076
4077 * dispextern.h (set_window_update_flags): Remove.
4078
da048127
SM
40792013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
4080
9f4ffeee
SM
4081 * fns.c (internal_equal): Add a hash_table argument to handle cycles.
4082
a8253776
SM
4083 * xdisp.c (REDISPLAY_SOME_P): New macro.
4084 (redisplay_internal): Use it (bug#15999).
4085 (prepare_menu_bars, redisplay_window): Use it as well.
4086
4e36a6a6 4087 * lisp.mk (lisp): Add electric.elc and uniquify.elc.
da048127 4088
579ca67b
TS
40892013-11-29 Tom Seddon <emacs@tomseddon.plus.com> (tiny change)
4090
4091 * w32font.c (g_b_init_get_char_width_32_w): New static var.
4092 (globals_of_w32font): Zero it out.
4093 (GetCharWidth32W_Proc): New function pointer.
4094 (get_char_width_32_w): New function.
4095 (compute_metrics): If get_glyph_outline_w returns an error, try
4096 get_char_width_32_w before declaring a failure. This avoids
4097 punishing raster (a.k.a. "bitmap") fonts by slowing down
4098 redisplay. (Bug#6364).
b7f79a5c 4099
da048127
SM
41002013-11-29 Eli Zaretskii <eliz@gnu.org>
4101
b7f79a5c
EZ
4102 * xdisp.c (clear_mouse_face): Don't invalidate the entire
4103 mouse-highlight info, just signal frame_up_to_date_hook that mouse
4104 highlight needs to be redisplayed. (Bug#15913)
4105
49faeaaf
PE
41062013-11-29 Paul Eggert <eggert@cs.ucla.edu>
4107
4108 Fix minor problems found by static checking.
4109 * buffer.h (struct buffer_text, struct buffer):
4110 * frame.h (struct frame):
4111 * window.h (struct window):
4112 Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers,
4113 as described in ../lib/stdbool.in.h. Use 'unsigned foo : 1;' instead.
4114 * menu.c (syms_of_menu): Define x-popup-dialog, removing a
4115 no-longer-valid use of HAVE_MENUS.
4116 * xdisp.c (propagate_buffer_redisplay): Now static.
4117
ef869611
SM
41182013-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
4119
7cdf484b
SM
4120 * xmenu.c (Fmenu_or_popup_active_p):
4121 * window.c (Fset_window_configuration):
4122 * menu.c (Fx_popup_menu, Fx_popup_dialog):
4123 * keyboard.c (record_menu_key, read_char_x_menu_prompt):
4124 * fns.c (Fyes_or_no_p):
4125 * editfns.c (Fmessage_box, Fmessage_or_box):
4126 * alloc.c (make_save_ptr_ptr):
4127 * xdisp.c, w32menu.c, term.c, xterm.h, xterm.c: Remove HAVE_MENUS.
4128
ef869611
SM
4129 * window.c (Fset_window_configuration): Move select_window later.
4130
655ab9a3
SM
41312013-11-28 Stefan Monnier <monnier@iro.umontreal.ca>
4132
4133 Refine redisplay optimizations to only redisplay *some* frames/windows
4134 rather than all of them.
4135 * xdisp.c (REDISPLAY_SOME): New constant.
4136 (redisplay_other_windows, wset_redisplay, fset_redisplay)
4137 (bset_redisplay, bset_update_mode_line): New functions.
4138 (message_dolog): Use bset_redisplay.
4139 (clear_garbaged_frames): Use fset_redisplay.
4140 (echo_area_display): Use wset_redisplay.
4141 (buffer_shared_and_changed): Remove.
4142 (prepare_menu_bars): Call Vpre_redisplay_function before updating
4143 frame titles. Compute the actual set of windows redisplayed.
4144 Don't update frame titles and menu bars for frames that don't need to
4145 be redisplayed.
4146 (propagate_buffer_redisplay): New function.
4147 (AINC): New macro.
4148 (redisplay_internal): Use it. Be more selective in the set of windows
4149 we redisplay. Propagate windows_or_buffers_changed to
4150 update_mode_lines a bit later to simplify the code.
4151 (mark_window_display_accurate_1): Reset window and buffer's
4152 `redisplay' flag.
4153 (redisplay_window): Do nothing if neither the window nor the buffer nor
4154 the frame needs redisplay.
4155 * window.h (struct window): Add `redisplay' field.
4156 (wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
4157 (redisplay_other_windows, window_list): New declarations.
4158 * window.c (select_window, Fset_window_start): Use wset_redisplay.
4159 (window_list): Not static any more.
4160 (grow_mini_window, shrink_mini_window): Use fset_redisplay.
4161 * minibuf.c (read_minibuf_unwind): Don't redisplay everything.
4162 * insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
4163 * frame.c (Fmake_frame_visible): Don't redisplay everything.
4164 * frame.h (struct frame): Add `redisplay' field.
4165 Move `external_menu_bar' bitfield next to other bit-fields.
4166 (SET_FRAME_GARBAGED): Use fset_redisplay.
4167 (SET_FRAME_VISIBLE): Don't garbage the frame;
4168 Use redisplay_other_windows.
4169 * buffer.h (struct buffer): Add `redisplay' field.
4170 * buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
4171 (modify_overlay): Use bset_redisplay.
4172 * alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.
4173
9c099ca7
EZ
41742013-11-28 Eli Zaretskii <eliz@gnu.org>
4175
4176 Support w32 file notifications in batch mode.
4177 * w32proc.c (sys_select): Don't wait on interrupt_handle if it is
4178 invalid (which happens in batch mode). If non-interactive, call
4179 handle_file_notifications to store file notification events in the
4180 input queue. (Bug#15933)
4181
655ab9a3 4182 * w32notify.c (send_notifications): Handle FRAME_INITIAL frames as well.
9c099ca7 4183
655ab9a3 4184 * w32inevt.c (handle_file_notifications): Now external, not static.
9c099ca7
EZ
4185
4186 * w32term.h (handle_file_notifications): Provide prototype.
4187
4188 * emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
4189 init_crit, since init_display, which does that otherwise, is not
4190 called.
4191
7e3bf78c
GM
41922013-11-27 Glenn Morris <rgm@gnu.org>
4193
4194 * Makefile.in ($(lispsource)/international/charprop.el): New.
4195 (emacs$(EXEEXT)): Depend on charprop.el.
4196
fb6a5d68
EZ
41972013-11-27 Eli Zaretskii <eliz@gnu.org>
4198
de1e0d91
EZ
4199 * fileio.c (Finsert_file_contents): Invalidate buffer caches when
4200 deleting portions of the buffer under non-nil REPLACE argument.
4201 (Bug#15973)
4202
fb6a5d68
EZ
4203 * w32notify.c (Fw32notify_add_watch): If the argument FILE is a
4204 directory, watch it and not its parent.
4205 (add_watch): Allow empty string in FILE.
4206
72fdd473
MR
42072013-11-27 Martin Rudalics <rudalics@gmx.at>
4208
4209 * window.c (Fset_window_start, window_resize_apply)
4210 (window_scroll): Reset window_end_valid (Bug#15957).
4211
cb6c95a3
GM
42122013-11-27 Glenn Morris <rgm@gnu.org>
4213
4214 * Makefile.in (leimdir): Now in lisp source directory.
4215 ($(leimdir)/leim-list.el): Just use ../leim .
4216 * epaths.in (PATH_DUMPLOADSEARCH):
4217 * lread.c (load_path_default):
4218 * nsterm.m (ns_load_path): No more leim directory.
4219
ed87760c
AS
42202013-11-26 Andreas Schwab <schwab@suse.de>
4221
4222 * .gdbinit (xgettype): Add cast.
4223
624780f0
GM
42242013-11-26 Glenn Morris <rgm@gnu.org>
4225
4226 Preload leim-list.el.
4227 * epaths.in (PATH_DUMPLOADSEARCH): Add leim/.
4228 * callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH
4229 is a single directory.
4230
4aaf6b61
PE
42312013-11-25 Paul Eggert <eggert@cs.ucla.edu>
4232
3f73284a
PE
4233 bool-vector-subsetp is now the normal direction (Bug#15912).
4234 * data.c (Fbool_vector_subsetp): Test whether the first argument
4235 is a subset of the second one, not the reverse. Add doc string.
4236
4aaf6b61
PE
4237 Fix minor problems found by static checking.
4238 * lread.c (load_path_default): Now static.
4239 * textprop.c (text_property_stickiness): Be consistent about the
4240 test used when deciding whether to consider the previous character.
4241 This simplifies the code a bit.
4242
511fa0d3
SM
42432013-11-25 Stefan Monnier <monnier@iro.umontreal.ca>
4244
a5fa8eb4
SM
4245 * textprop.c (text_property_stickiness): Fix front-stickiness at BOB.
4246
511fa0d3
SM
4247 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Move to frame.el.
4248 (syms_of_frame): Don't defsubr them.
4249
97bacf8c
GM
42502013-11-25 Glenn Morris <rgm@gnu.org>
4251
310294a3
GM
4252 * lread.c (load_path_default): Change the sense of the argument.
4253 (init_lread): When EMACSLOADPATH is set, do not ignore changes
4254 from dump_path. When it is not, avoid checking dump_path twice.
4255
97bacf8c
GM
4256 * lread.c (init_lread): Fix 2013-11-23 goof that was checking
4257 uninstalled dump_path against installed Vload_path. (Bug#15964)
4258
450533b0
SM
42592013-11-24 Stefan Monnier <monnier@iro.umontreal.ca>
4260
740bcff0
SM
4261 Export get_pos_property to Elisp.
4262 * editfns.c (Fget_pos_property): Rename from get_pos_property.
4263 (syms_of_editfns): Export it to Elisp.
4264
450533b0
SM
4265 * data.c (Fmake_variable_buffer_local): Mention `permanent-local'.
4266
1db72ad3
RF
42672013-11-23 Romain Francoise <romain@orebokech.com>
4268
4269 * fileio.c (init_fileio): Move `write_region_inhibit_fsync'
4270 initialization here ...
4271 (syms_of_fileio): ... from here.
4272
2c98e669
SM
42732013-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
4274
4275 * lread.c (init_lread): Fix int/Lisp_Object mixup.
4276 Please use --enable-check-lisp-object-type.
4277
50dca5df
GM
42782013-11-23 Glenn Morris <rgm@gnu.org>
4279
4280 * process.c (get_process): Explicit error for dead buffers.
4281
d7aff0d6
GM
42822013-11-23 Andreas Schwab <schwab@linux-m68k.org>
4283
4284 * process.c (get_process): Check that OBJ is a live buffer. (Bug#15923)
4285
17e0445b
GM
42862013-11-23 Glenn Morris <rgm@gnu.org>
4287
4288 Empty elements in EMACSLOADPATH stand for the default. (Bug#12100)
4289 * lread.c (load_path_check): Take path to check as argument.
4290 (load_path_default): New, split from init_lread.
4291 (init_lread): Move calc of default load-path to load_path_default.
4292 Empty elements in EMACSLOADPATH now stand for the default.
4293 (load-path): Doc fix.
4294 * emacs.c (decode_env_path): Add option to treat empty elements
4295 as nil rather than ".".
4296 * callproc.c (init_callproc_1, init_callproc):
4297 * image.c (Vx_bitmap_file_path):
4298 * lisp.h (decode_env_path):
4299 * lread.c (Vsource_directory):
4300 Update for new argument spec of decode_env_path.
4301
cd88d682
EZ
43022013-11-22 Eli Zaretskii <eliz@gnu.org>
4303
4304 * bidi.c (bidi_find_paragraph_start): Limit the returned positions
4305 to BEGV_BYTE..ZV_BYTE range. (Bug#15951)
4306
75360f19
PE
43072013-11-21 Paul Eggert <eggert@cs.ucla.edu>
4308
7e8ed4f7
PE
4309 Fix some dependency problems that cause unnecessary recompiles.
4310 Problem reported by RMS in
4311 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00421.html>.
4312 * Makefile.in (OLDXMENU_TARGET, OLDXMENU, OLDXMENU_DEPS)
4313 (really-lwlib, really-oldXMenu, stamp-oldxmenu)
4314 (../src/$(OLDXMENU), $(OLDXMENU)): Remove.
7e8ed4f7
PE
4315 (temacs$(EXEEXT)): Depend on $(LIBXMENU), not stamp-oldxmenu.
4316 ($(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a, FORCE): New targets.
4317 (boostrap-clean): No need to remove stamp-oldxmenu.
4318
75360f19
PE
4319 Fix recently introduced bool vector overrun.
4320 This was due to an optimization that went awry.
4321 Reported by Glenn Morris in
4322 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00622.html>.
4323 * alloc.c (make_uninit_bool_vector): Don't allocate a dummy word
4324 for empty vectors, undoing the 2013-11-18 change.
4325 * data.c (bool_vector_binop_driver): Rely on this.
4326 Fix bug that occasionally overran the destination.
4327 * lisp.h (struct Lisp_Bool_vector): Document this.
4328
f03f7d3d
JD
43292013-11-20 Jan Djärv <jan.h.d@swipnet.se>
4330
e9dc713d 4331 * nsterm.m (init, run, stop:): Enable again. stop calls super stop
cab0d91d
JD
4332 to handle dialogs.
4333
f03f7d3d
JD
4334 * nsterm.m (init, run, stop:): Comment out for now, does not work
4335 with dialogs.
4336
12455b2f
PE
43372013-11-19 Paul Eggert <eggert@cs.ucla.edu>
4338
4339 * charset.c (syms_of_charset): Don't read past end of string.
4340
8d1c3af9
GM
43412013-11-19 Glenn Morris <rgm@gnu.org>
4342
4343 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Doc fixes.
4344
8e015705
BJ
43452013-11-19 Brian Jenkins <brian@brianjenkins.org> (tiny change)
4346
4347 Add hooks to run on gaining/losing focus. (Bug#15029)
4348 * frame.c (Qfocus_in_hook, Qfocus_out_hook): New static lisp objects.
4349 (Fhandle_focus_in, Fhandle_focus_out): Run focus hooks.
4350 (syms_of_frame): Add focus-in-hook, focus-out-hook.
4351
87d86601
PE
43522013-11-18 Paul Eggert <eggert@cs.ucla.edu>
4353
23e79746
PE
4354 * data.c (bool_vector_binop_driver): Rename locals for sanity's sake.
4355 The old names predated the API change that put destination at end.
4356
ec2c4ee6
PE
4357 Improve API of recently-added bool vector functions (Bug#15912).
4358 The old API had (bool-vector-count-matches A B)
4359 and (bool-vector-count-matches-at A B I), which gave the
4360 misleading impression that the two functions were variants, one
4361 with a location I. The new API has (bool-vector-count-population A)
4362 and (bool-vector-count-consecutive A B I) to make the distinction
4363 clearer. The first function no longer has a B argument, since the
4364 caller can easily determine the number of nils if the length and
4365 number of ts is known.
4366 * data.c (Fbool_vector_count_population): Rename from
4367 bool_vector_count_matches, and accept just 1 argument.
4368 (Fbool_vector_count_consecutive): Rename from
4369 Fbool_vector_count_matches_at.
4370
87d86601
PE
4371 Always allocate at least one bits_word per bool vector.
4372 See Daniel Colascione in:
4373 http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00518.html
4374 * alloc.c (make_uninit_bool_vector): Always allocate at least one word.
4375 * data.c (bool_vector_binop_driver): Rely on this. Tune.
4376 * lisp.h (struct Lisp_Bool_vector): Document this.
4377
37c790b3
EZ
43782013-11-18 Eli Zaretskii <eliz@gnu.org>
4379
4380 * insdel.c (invalidate_buffer_caches): New function, consolidated
4381 from part of prepare_to_modify_buffer.
4382 (insert_from_gap, prepare_to_modify_buffer):
655ab9a3
SM
4383 * coding.c (code_convert_region, code_convert_string):
4384 Call invalidate_buffer_caches. (Bug#15841)
37c790b3
EZ
4385
4386 * lisp.h (invalidate_buffer_caches): Add prototype.
4387
96e78d1f
EZ
43882013-11-17 Eli Zaretskii <eliz@gnu.org>
4389
4390 * w32term.c (x_update_window_end): Don't invalidate the entire
4391 mouse-highlight info, just signal frame_up_to_date_hook that mouse
4392 highlight needs to be redisplayed. (Bug#15913)
4393
0f679e86
PE
43942013-11-17 Paul Eggert <eggert@cs.ucla.edu>
4395
4396 * lisp.h (DEBUGGER_SEES_C_MACROS): Remove.
4397
3d6dec8d
EZ
43982013-11-16 Eli Zaretskii <eliz@gnu.org>
4399
d17f4dba
EZ
4400 * doc.c (Fsubstitute_command_keys): Inhibit modification hooks
4401 while we are using Vprin1_to_string_buffer.
4402
3d6dec8d
EZ
4403 * keymap.c (describe_map): Don't crash if PT is 1 both before and
4404 after inserting the description string. (Bug#15907)
4405
2fcc742f
PE
44062013-11-15 Paul Eggert <eggert@cs.ucla.edu>
4407
4408 * data.c: Work around bogus GCC diagnostic about shift count.
4409 Reported by Eli Zaretskii in
4410 <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00489.html>.
4411 (pre_value): New function.
4412 (count_trailing_zero_bits): Use it.
4413
73583a99
EZ
44142013-11-15 Eli Zaretskii <eliz@gnu.org>
4415
4416 * lisp.h (DEBUGGER_SEES_C_MACROS) [GCC < v3.5]: Pessimistically
4417 assume C macros are not supported even under -g3 in these old GCC
4418 versions.
4419
a1f03e89
LL
44202013-11-15 Leo Liu <sdl.web@gmail.com>
4421
4422 * minibuf.c (Ftry_completion, Fall_completions)
4423 (Ftest_completion): Use FUNCTIONP. (Bug#15889)
4424
1a191e5c
PE
44252013-11-15 Paul Eggert <eggert@cs.ucla.edu>
4426
4427 * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END):
4428 Define to empty if DEBUGGER_SEES_C_MACROS is defined.
4429 This avoids placing unnecessary constants into the Emacs code.
4430
c9f63070
KI
44312013-11-14 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4432
4433 * keyboard.c (make_ctrl_char) [HAVE_NTGUI]: Now externally visible
4434 for Cygwin w32 build.
4435
4436 * xdisp.c (erase_phys_cursor) [HAVE_NTGUI]: Now externally visible
4437 for Cygwin w32 build. (Bug#15892)
4438
d672ac3c
PE
44392013-11-14 Paul Eggert <eggert@cs.ucla.edu>
4440
2cf00efc
PE
4441 Simplify, port and tune bool vector implementation.
4442 * alloc.c (bool_vector_exact_payload_bytes)
4443 (bool_vector_payload_bytes): Remove.
4444 (bool_vector_fill): Return its argument.
4445 * alloc.c (bool_vector_fill):
4446 * lread.c (read1):
4447 * print.c (print_object):
4448 Simplify by using bool_vector_bytes.
4449 * alloc.c (make_uninit_bool_vector):
4450 New function, broken out from Fmake_bool_vector.
4451 (Fmake_bool_vector): Use it. Use tail call.
4452 (make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
4453 * data.c (BITS_PER_ULL): New constant.
4454 (ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
4455 if long long versions don't exist.
4456 (shift_right_ull): New function.
4457 (count_one_bits_word): New function, replacing popcount_bits_word
4458 macro. Don't assume that bits_word is no wider than long long.
4459 (count_one_bits_word, count_trailing_zero_bits):
4460 Don't assume that bits_word is no wider than long long.
4461 * data.c (bool_vector_binop_driver, bool_vector_not):
4462 * fns.c (Fcopy_sequence):
4463 * lread.c (read1):
4464 Create an uninitialized destination, to avoid needless work.
4465 (internal_equal): Simplify.
4466 (Ffillarray): Prefer tail call.
4467 * data.c (bool_vector_binop_driver): Don't assume bit vectors always
4468 contain at least one word.
4469 (bits_word_to_host_endian): Prefer if to #if. Don't assume
4470 chars are narrower than ints.
4471 * data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
4472 * fns.c (Fcopy_sequence):
4473 Simplify and tune.
4474 * lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
4475 Don't try to port to hosts where bits_word values have holes; the
4476 code wouldn't work there anyway. Verify this assumption, though.
4477 (bool_vector_bytes): New function.
4478 (make_uninit_bool_vector): New decl.
4479 (bool_vector_fill): Now returns Lisp_Object.
4480
d672ac3c
PE
4481 * xfns.c (xic_create_fontsetname):
4482 * xrdb.c (gethomedir): Prefer tail calls.
4483
bd7cd30a
PE
44842013-11-12 Paul Eggert <eggert@cs.ucla.edu>
4485
b3671617
PE
4486 * xterm.c (syms_of_xterm): staticpro Qmodifier_value, Qalt, Qhyper,
4487 Qmeta, and Qsuper. This is safer, and it's what w32fns.c does.
e3ac17b6 4488
bd7cd30a
PE
4489 * buffer.c (Fforce_mode_line_update): Don't fall off end of function
4490 that requires a return value.
4491 (Fset_buffer_modified_p): Take advantage of this change to do
4492 a tail call.
4493
ecda65d4
SM
44942013-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
4495
4496 * buffer.c (Frestore_buffer_modified_p): Sync it with
4497 Fset_buffer_modified_p.
4498 (Fforce_mode_line_update): New function, moved from subr.el.
4499 (Fset_buffer_modified_p): Use them.
4500 (syms_of_buffer): Defsubr Fforce_mode_line_update.
4501
5389db9e
PE
45022013-11-11 Paul Eggert <eggert@cs.ucla.edu>
4503
4504 * search.c (find_newline): Rewrite to prefer offsets to pointers.
4505 This avoids undefined behavior when subtracting pointers into
4506 different aways. On my platform it also makes the code a tad
4507 smaller and presumably faster.
4508
7818df11
SM
45092013-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
4510
4511 * keyboard.c (command_loop_1): Use region-extract-function.
4512 * insdel.c (Qregion_extract_function): Not static any more (can we
4513 stop pretending that these vars can benefit from being marked static?).
4514
85f37d10
EZ
45152013-11-09 Eli Zaretskii <eliz@gnu.org>
4516
4517 * search.c (find_newline): If buffer text is relocated during the
4518 "dumb loop", adjust C pointers into buffer text to follow suit.
4519 (Bug#15841)
4520
0449d6cd 45212013-11-09 Łukasz Stelmach <stlman@poczta.fm> (tiny change)
b24ac90f
JD
4522
4523 * gtkutil.c (xg_check_special_colors): Use rgb: instead of rgbi:
4524 for conversion (Bug#15837).
4525
addccbd0
EZ
45262013-11-09 Eli Zaretskii <eliz@gnu.org>
4527
4528 * fileio.c (Finsert_file_contents): Invalidate the newline cache
4529 for the entire range of inserted characters. (Bug#15841)
4530
5b97b4c0
JD
45312013-11-08 Jan Djärv <jan.h.d@swipnet.se>
4532
4533 * xfaces.c (lface_fully_specified_p): Let distant-foreground be
4534 unspecified.
4535 (realize_default_face): Remove assignment to distant-foreground if
4536 unspecified (Bug#15815).
4537
080db47f
EZ
45382013-11-08 Eli Zaretskii <eliz@gnu.org>
4539
4540 * xdisp.c (message_dolog): Make sure the *Messages* buffer has its
4541 cache-long-scans disabled, since we don't want to call
4542 prepare_to_modify_buffer (in insert_1_both) for each message we
4543 display.
4544
4545 * buffer.h (bset_cache_long_scans): New INLINE function, moved
4546 from buffer.c. Improve commentary to the buffer field setter
4547 functions.
4548
4549 * buffer.c (bset_cache_long_scans): Static function deleted.
4550 Improve commentary to the buffer field setter functions.
4551 (init_buffer_once): Default for cache-long-scans changed to t.
4552 (Bug#15797)
4553
7f1913b2
PE
45542013-11-08 Paul Eggert <eggert@cs.ucla.edu>
4555
220a304a
PE
4556 * gmalloc.c (special_realloc, calloc, mallochook): Use tail calls.
4557
7f1913b2
PE
4558 * chartab.c (make_sub_char_table): Fix size typo (Bug#15825).
4559 This bug was introduced in my 2013-06-21 change, and caused
4560 struct Lisp_Sub_Char_Table objects to be given too many slots,
4561 which broke 'make -C admin/unidata'.
4562
5ee29210
JD
45632013-11-07 Jan Djärv <jan.h.d@swipnet.se>
4564
4565 Import changes from mac-port 4.5.
4566 * macfont.m (mac_font_copy_default_descriptors_for_language)
4567 (mac_font_copy_default_name_for_charset_and_languages): Declare.
4568 (cf_charset_table): big-5-0 has uniquifier 0x4EDC.
4569 (macfont_language_default_font_names): New.
4570 (macfont_list): Rearrange language/charset code.
4571 (macfont_close): Don't check for macfont_info->cache.
4572 (mac_ctfont_create_preferred_family_for_attributes): New font
4573 selection code, call
4574 mac_font_copy_default_name_for_charset_and_languages.
4575 (mac_font_copy_default_descriptors_for_language)
4576 (mac_font_copy_default_name_for_charset_and_languages): New functions.
4577
4578 * macfont.h (kCTVersionNumber10_9): Define if not defined.
4579
aea07e2c
PE
45802013-11-07 Paul Eggert <eggert@cs.ucla.edu>
4581
4582 Port to C11 aligned_alloc, and fix some integer overflows.
4583 * alloc.c (USE_ALIGNED_ALLOC): New symbol.
4584 (USE_POSIX_MEMALIGN): Remove. All uses replaced with USE_ALIGNED_ALLOC,
4585 and use of posix_memalign replaced with aligned_alloc.
4586 (aligned_alloc): New function, defined or declared as needed.
4587 * conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
4588 Don't undef; configure.ac now does this.
4589 * gmalloc.c (aligned_alloc) [MSDOS]: New decl.
4590 (calloc, aligned_alloc): Check for integer overflow.
4591 (aligned_alloc): Rename from memalign. All uses changed.
4592 (memalign): New function, an alias for aligned_alloc.
4593
e2e894cf
SM
45942013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
4595
4596 * xdisp.c (redisplay_internal): Fix typo in last change.
4597
a5d376b0
PE
45982013-11-06 Paul Eggert <eggert@cs.ucla.edu>
4599
4600 * regex.c: Fix --enable-gcc-warning glitch with GCC 4.5.2.
4601
2ec9db5d
SM
46022013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
4603
4604 * xdisp.c (syms_of_xdisp): New vars redisplay--all-windows-cause and
4605 redisplay--mode-lines-cause.
4606 (redisplay_internal): Keep them uptodate. Remove redundant check of
4607 buffer_shared_and_changed.
4608 * *.[chm]: Number every assignment to update_mode_lines so we
4609 can track why it is set.
4610
d7ac0815
EZ
46112013-11-06 Eli Zaretskii <eliz@gnu.org>
4612
4613 * editfns.c (Fformat_time_string): Doc fix. (Bug#15816)
4614
94ae2ad4
SM
46152013-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
4616
4617 * *.[chm]: Number every assignment to windows_or_buffers_changed so we
4618 can track why it is set.
4619
798aef02
PE
46202013-11-06 Paul Eggert <eggert@cs.ucla.edu>
4621
4622 Integer-related fixes for term.c etc.
4623 * dispextern.h (face_tty_specified_color): New function.
4624 * term.c (turn_on_face): Don't rely on undefined behavior when
94ae2ad4
SM
4625 assigning an out-of-range value to 'long'.
4626 Simplify test for toggling highlight.
798aef02
PE
4627 (tty_capable_p): Omit last two (unused) args. All callers changed.
4628 * term.c (tty_capable_p, tty_menu_display, tty_menu_add_selection)
4629 (read_menu_input, tty_menu_activate, tty_menu_show):
4630 * xfaces.c (x_supports_face_attributes_p)
4631 (tty_supports_face_attributes_p):
4632 Use bool for boolean. All callers changed.
4633 (tty_supports_face_attributes_p): Omit defaults for color indices;
4634 no longer needed. Simplify tail call.
4635
9e6e9826
SM
46362013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
4637
4638 * xdisp.c (prepare_menu_bars): Mark static.
4639 * lisp.h (prepare_menu_bars): Don't declare.
4640 * xselect.c (x_handle_selection_clear):
4641 * callproc.c (call_process): Remove redundant call to prepare_menu_bars.
4642
7544a9d3
PE
46432013-11-05 Paul Eggert <eggert@cs.ucla.edu>
4644
4645 * keyboard.c (Fcommand_error_default_function): Fix pointer signedness
4646 glitch. Eliminate 'sz' prefix; Hungarian notation is not helpful here.
4647
2e670b95
SM
46482013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
4649
4650 * keyboard.c (Fcommand_error_default_function): Rename from
4651 Fdefault_error_output.
4652
2ea0d614
JC
46532013-11-05 Jarek Czekalski <jarekczek@poczta.onet.pl> (tiny change)
4654
2e670b95
SM
4655 * keyboard.c (Fdefault_error_output): New function, extracted from
4656 cmd_error_internal.
4657 (syms_of_keyboard): Use it for Vcommand_error_function.
2ea0d614 4658
70de5e86
SM
46592013-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
4660
4661 * eval.c (handlerlist_sentinel): New variable (bug#15802).
4662 (init_eval): Use it to ensure handlerlist is non-NULL.
4663 (unwind_to_catch): Make sure we never set handlerlist to NULL.
4664 (Fsignal): Adjust NULLness test of handlerlist.
70de5e86
SM
4665 * lisp.h (PUSH_HANDLER): Assume handlerlist is non-NULL.
4666
d57f4dde
EZ
46672013-11-05 Eli Zaretskii <eliz@gnu.org>
4668
4669 * callproc.c (call_process): Call prepare_to_modify_buffer before
4670 decoding text read from the sub-process, as the decoded stuff will
4671 be inserted into the buffer. This will invalidate the various
4672 caches maintained for the buffer. (Bug#15148)
4673
29aa2b71
XF
46742013-11-05 Xue Fuqiao <xfq.free@gmail.com>
4675
4676 * xdisp.c (syms_of_xdisp): Mention the active display table in doc
4677 string of glyphless-char-display.
4678
ceb486d4
JD
46792013-11-05 Jan Djärv <jan.h.d@swipnet.se>
4680
4681 * nsfns.m (ns_get_name_from_ioreg): New function.
4682 (ns_screen_name): Don't use deprecated CGDisplayIOServicePort on
4683 OSX >= 10.9. Use ns_get_name_from_ioreg.
4684
69369809
PE
46852013-11-05 Paul Eggert <eggert@cs.ucla.edu>
4686
df5b4930
PE
4687 Simplify and port recent bool vector changes.
4688 * alloc.c (ROUNDUP): Move here from lisp.h, since it's now used
4689 only in this file. Use a more-efficient implementation if the
4690 second argument is a power of 2.
4691 (ALIGN): Rewrite in terms of ROUNDUP. Make it a function.
4692 Remove no-longer-necessary compile-time checks.
4693 (bool_vector_exact_payload_bytes): New function.
4694 (bool_vector_payload_bytes): Remove 2nd arg; callers that need
4695 exact payload changed to call the new function. Do not assume
4696 that the arg or result fits in ptrdiff_t.
4697 (bool_vector_fill): New function.
4698 (Fmake_bool_vector): Use it. Don't assume bit counts fit
4699 in ptrdiff_t.
4700 (vroundup_ct): Don't assume arg fits in size_t.
4701 * category.c (SET_CATEGORY_SET): Remove. All callers now just
4702 invoke set_category_set.
4703 (set_category_set): 2nd arg is now EMACS_INT and 3rd is now bool.
4704 All callers changed. Use bool_vector_set.
4705 * category.h (XCATEGORY_SET): Remove; no longer needed.
4706 (CATEGORY_MEMBER): Now a function. Rewrite in terms of
4707 bool_vector_bitref.
4708 * data.c (Faref): Use bool_vector_ref.
4709 (Faset): Use bool_vector_set.
4710 (bits_word_to_host_endian): Don't assume you can shift by CHAR_BIT.
4711 (Fbool_vector_not, Fbool_vector_count_matches)
4712 (Fbool_vector_count_matches_at): Don't assume CHAR_BIT == 8.
4713 * fns.c (concat): Use bool_vector_ref.
4714 (Ffillarray): Use bool_vector_fill.
4715 (mapcar1): Use bool_vector_ref.
4716 (sxhash_bool_vector): Hash words, not bytes.
4717 * lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Now a macro as well as
4718 a constant, since it's now used in #if.
4719 (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Fall back on
4720 unsigned char on unusual architectures, so that we no longer
4721 assume that the number of bits per bits_word is a power of two or
4722 is a multiple of 8 or of CHAR_BIT.
4723 (Qt): Add forward decl.
4724 (struct Lisp_Bool_Vector): Don't assume EMACS_INT is aligned
4725 at least as strictly as bits_word.
4726 (bool_vector_data, bool_vector_uchar_data): New accessors.
4727 All data structure accesses changed to use them.
4728 (bool_vector_words, bool_vector_bitref, bool_vector_ref)
4729 (bool_vector_set): New functions.
4730 (bool_vector_fill): New decl.
4731 (ROUNDUP): Move to alloc.c as described above.
4732
69369809
PE
4733 Fix recent gnutls changes.
4734 * gnutls.c (Fgnutls_boot): Don't assume C99.
4735 * process.c (wait_reading_process_output): Fix typo in recent change.
4736
194b4d9f
TZ
47372013-11-05 Teodor Zlatanov <tzz@lifelogs.com>
4738
4739 * process.c (wait_reading_process_output, read_process_output)
4740 (send_process): Check gnutls_state is not NULL.
4741
4742 * gnutls.c (emacs_gnutls_handle_error): Adjust log level for EAGAIN.
4743 (Fgnutls_boot): Set process gnutls_p later, after initialization.
4744
c8b09927
JD
47452013-11-04 Jan Djärv <jan.h.d@swipnet.se>
4746
4747 * nsterm.m (init, run, stop:): New methods in EmacsApp for
4748 OSX >= 10.9 to prevent memory leak of GCD dispatch source.
4749
4750 * nsterm.h (EmacsApp): Add shouldKeepRunning and isFirst for
4751 OSX >= 10.9.
4752
4753 * nsfns.m (Fx_create_frame): Fix memory leak.
4754
4755 * macfont.m (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND)
4756 (CG_SET_FILL_COLOR_WITH_GC_BACKGROUND)
4757 (CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): Fix memory leak.
4758
d0065ff1
EZ
47592013-11-04 Eli Zaretskii <eliz@gnu.org>
4760
4761 * xdisp.c (message3_nolog, message_with_string): Encode the string
4762 before writing it to the terminal in a non-interactive session.
4763
4764 * lread.c (openp): If both FILENAME and SUFFIX are unibyte, make
4765 sure we concatenate them into a unibyte string.
4766
4767 * fileio.c (make_temp_name): Encode PREFIX, and decode the
4768 resulting temporary name before returning it to the caller.
4769 (Fexpand_file_name): If NAME is pure-ASCII and DEFAULT_DIRECTORY
4770 is a unibyte string, convert NAME to a unibyte string to ensure
4771 that the result is also a unibyte string.
4772
4773 * emacs.c (init_cmdargs): Use build_unibyte_string to make sure we
4774 create unibyte strings from default paths and directory/file
4775 names.
4776
4777 * coding.h (ENCODE_FILE): Do not attempt to encode a unibyte
4778 string.
4779
4780 * callproc.c (init_callproc): Use build_unibyte_string to make
4781 sure we create unibyte strings from default paths and
4782 directory/file names.
4783
4784 * buffer.c (init_buffer): Don't store default-directory of
be80645a 4785 *scratch* in multibyte form. The original problem which led to
d0065ff1
EZ
4786 that is described in
4787 http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-11/msg00532.html,
4788 but it was solved long ago. (Bug#15260)
4789
91f2d272
PE
47902013-11-04 Paul Eggert <eggert@cs.ucla.edu>
4791
4792 Port to stricter C99 platforms.
4793 Especially, C99 prohibits nesting a struct X inside struct Y if
4794 struct X has a flexible array member.
4795 * alloc.c (struct sdata): New type.
4796 (sdata): Implement in terms of struct sdata.
4797 Remove u member; all uses replaced by next_vector, set_next_vector.
4798 (SDATA_SELECTOR, SDATA_DATA, SDATA_DATA_OFFSET): Adjust to sdata change.
4799 (SDATA_DATA_OFFSET): Now a constant, not a macro.
4800 (struct sblock): Rename first_data member to data, which is now
4801 a flexible array member. All uses changed.
4802 (next_vector, set_next_vector, large_vector_vec): New functions.
4803 (vector_alignment): New constant.
4804 (roundup_size): Make it a multiple of ALIGNOF_STRUCT_LISP_VECTOR, too.
4805 (struct large-vector): Now merely a NEXT member, since the old approach
4806 ran afoul of stricter C99. All uses changed to use
4807 large_vector_vec or large_vector_offset.
4808 (large_vector_offset): New constant.
4809 * dispnew.c: Include tparam.h, for tgetent.
4810 Do not include term.h; no longer needed.
4811 * gnutls.c (Fgnutls_boot): Don't continue after calling a _Noreturn.
4812 * lisp.h (ENUM_BF) [__SUNPRO_C && __STDC__]: Use unsigned int.
4813 (struct Lisp_Vector): Use a flexible array member for contents,
4814 instead of a union with a member that is an array of size 1.
4815 All uses changed.
4816 (ALIGNOF_STRUCT_LISP_VECTOR): New constant, to make up for the
4817 fact that the struct no longer contains a union.
4818 (struct Lisp_Misc_Any, struct Lisp_Marker, struct Lisp_Overlay)
4819 (struct Lisp_Save_Value, struct Lisp_Free):
4820 Use unsigned, not int, for spacers, to avoid c99 warning.
4821 (union specbinding): Use unsigned, not bool, for bitfield, as
4822 bool is not portable to pre-C99 hosts.
4823
6dc6d301
GM
48242013-11-04 Glenn Morris <rgm@gnu.org>
4825
4826 * emacs.c (usage_message): Mention that `-L :...' appends.
4827
b0b9e592
GM
48282013-11-02 Glenn Morris <rgm@gnu.org>
4829
fca2fccb
GM
4830 * Makefile.in (abs_builddir): Remove.
4831 (bootstrap_exe): Use relative filename.
4832
c617f3d0
GM
4833 Use relative filenames in TAGS files.
4834 * Makefile.in (abs_srcdir): Remove it again.
4835 (.PHONY): Remove frc.
4836 (maintainer-clean): No more TAGS-LISP file.
4837 (TAGS): Pass relative file names to etags.
4838 (../lisp/TAGS): Rename from TAGS-LISP. Work in ../lisp.
4839
b0b9e592 4840 * Makefile.in (abs_srcdir): New, set by configure.
739f57cd 4841 (lispdir): Remove.
b0b9e592
GM
4842 (maintainer-clean): Remove pointless echo. That should be in the
4843 top-level Makefile, if anywhere. Delete TAGS-LISP.
4844 (extraclean): No s/ and m/ directories for some time.
739f57cd
GM
4845 (TAGS): Also depend on ctagsfiles3.
4846 Remove no-longer-defined S_FILE.
b0b9e592 4847 Pass absolute filenames to etags once more.
739f57cd 4848 (TAGS-LISP): Replace lispdir with its expansion.
b0b9e592
GM
4849 (TAGS-LISP, $(lwlibdir)/TAGS): Correctly pass ETAGS to sub-makes.
4850 ($(lwlibdir)/TAGS): Remove useless subshell, check cd return value.
4851
0c21fa44
JD
48522013-11-02 Jan Djärv <jan.h.d@swipnet.se>
4853
94ae2ad4
SM
4854 * xfaces.c (check_lface_attrs, realize_default_face):
4855 Add LFACE_DISTANT_FOREGROUND_INDEX (Bug#15788).
39dd7bb2 4856 (realize_default_face): Set DISTANT_FOREGROUND to unspecified_fg.
0c21fa44 4857
a90e5a33
PE
48582013-11-02 Paul Eggert <eggert@cs.ucla.edu>
4859
4860 * emacs.c (original_pwd): Remove global var by making it local.
4861 (init_cmdargs): New arg ORIGINAL_PWD; caller changed.
4862
3c334c14
JD
48632013-11-01 Jan Djärv <jan.h.d@swipnet.se>
4864
4865 * xfaces.c: Declare color_distance.
4866 (QCdistant_foreground): New variable.
4867 (NEAR_SAME_COLOR_THRESHOLD): New define.
4868 (load_color2): New function.
4869 (load_color): Call load_color2.
4870 (load_face_colors): Call load_color2 and if distant-color is specified
4871 calculate distant and use distant-color if colors are near.
4872 (LFACE_DISTANT_FOREGROUND): New define.
4873 (merge_face_ref, Finternal_set_lisp_face_attribute)
4874 (Finternal_get_lisp_face_attribute)
4875 (x_supports_face_attributes_p): Handle distant-foreground similar to
4876 foreground.
4877 (syms_of_xfaces): DEFSYM QCdistant_foreground.
4878
94ae2ad4
SM
4879 * dispextern.h (lface_attribute_index):
4880 Add LFACE_DISTANT_FOREGROUND_INDEX.
3c334c14 4881
d14c81ee
CB
48822013-11-01 Claudio Bley <claudio.bley@googlemail.com>
4883
94ae2ad4
SM
4884 * image.c (pbm_next_char): New function.
4885 See http://netpbm.sourceforge.net/doc/pbm.html for the details.
0e7690de
CB
4886 (pbm_scan_number): Use it.
4887 (Qlibjpeg_version): New variable.
d14c81ee
CB
4888 (syms_of_image): DEFSYM and initialize it.
4889
26ca8870
JD
48902013-10-31 Jan Djärv <jan.h.d@swipnet.se>
4891
4892 * emacs.c (main): Skip -psn args on OSX even if ! isatty (0).
4893
8fd07417
GM
48942013-10-31 Glenn Morris <rgm@gnu.org>
4895
4896 * emacs.c (original_pwd): New char.
4897 (main): If using --chdir, store original_pwd.
4898 (init_cmdargs): When setting Vinvocation_directory based on a
4899 relative argv[0], use original_pwd if set. (Bug#15768)
4900
4c9797cb
SM
49012013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
4902
4903 * keyboard.c (command_loop_1): If command is nil, call `undefined'.
4904
dcd163ac
PE
49052013-10-29 Paul Eggert <eggert@cs.ucla.edu>
4906
4907 * insdel.c: Fix minor problems found by static checking.
4908 (Qregion_extract_function): Now static.
4909 (prepare_to_modify_buffer_1): Remove unused locals.
4910
3472b6c6
SM
49112013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
4912
4913 * xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function.
4914 (syms_of_xdisp): Declare pre-redisplay-function.
4915 (markpos_of_region): Remove function.
4916 (init_iterator, compute_stop_pos, handle_face_prop)
4917 (face_before_or_after_it_pos, reseat_to_string)
4918 (get_next_display_element, window_buffer_changed)
4919 (redisplay_internal, try_cursor_movement, redisplay_window)
4920 (try_window_reusing_current_matrix, try_window_id, display_line)
4921 (note_mode_line_or_margin_highlight, note_mouse_highlight)
4922 (display_string, mouse_face_from_buffer_pos): Remove region handling.
4923 * window.h (struct window): Remove field `region_showing'.
4924 * dispextern.h (struct it): Remove region_beg/end_charpos.
4925 (face_at_buffer_position, face_for_overlay_string)
4926 (face_at_string_position): Update prototypes.
4927 * xfaces.c (face_at_buffer_position, face_for_overlay_string)
4928 (face_at_string_position): Remove `region_beg' and `region_end' args.
4929 * fontset.c (Finternal_char_font):
4930 * font.c (font_at, font_range): Adjust calls accordingly.
4931 * insdel.c (Qregion_extract_function): New var.
4932 (syms_of_insdel): Initialize it.
4933 (prepare_to_modify_buffer_1): Use it.
4934
2d9783e0
DA
49352013-10-29 Dmitry Antipov <dmantipov@yandex.ru>
4936
4937 Prefer 'unsigned long' to 'long unsigned int' and 'unsigned long int'.
4938 * ftxfont.c (ftxfont_get_gcs):
4939 * gtkutil.c (xg_set_widget_bg, xg_set_background_color):
4940 * xfaces.c (x_free_colors, x_free_dpy_colors)
4941 (x_create_gc, unload_color):
4942 * xselect.c (x_property_data_to_lisp):
4943 * xsettings.c (parse_settings):
4944 * xterm.c (x_copy_color, x_alloc_lighter_color, x_setup_relief_color)
4945 (get_bits_and_offset): Adjust definition.
4946 * frame.c (XParseGeometry): Adjust locals.
4947 * lisp.h (toplevel): Adjust EMACS_UINT type definition.
4948 * regex.h (toplevel): Likewise for reg_syntax_t.
4949
dee4ba59
SM
49502013-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
4951
4952 * eval.c (run_hook_with_args): Use FUNCTIONP.
4953
0085b9be
DA
49542013-10-29 Dmitry Antipov <dmantipov@yandex.ru>
4955
4956 * xterm.h (struct x_output): For 'black_relief' and 'white_relief'
4957 fields, drop 'allocated_p' member and use -1 for uninitialized value.
4958 * w32term.h (struct w32_output): Similarly but do not use -1 because...
4959 * xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op
4960 on MS-Windows anyway.
4961 (free_face_colors): Define only if HAVE_X_WINDOWS and...
4962 (free_realized_face): ...adjust user.
4963 * xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and
4964 white relief pixels to -1.
4965 * xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users.
4966 * w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise.
4967 * dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS.
4968
b7e0ef72
PE
49692013-10-28 Paul Eggert <eggert@cs.ucla.edu>
4970
4971 * dispextern.h, image.c (x_bitmap_height, x_bitmap_width): Now static.
4972 * xfaces.c (load_pixmap): Omit last two args, which are always NULL
4973 in practice now. All callers changed.
4974
5d3311e5
DA
49752013-10-28 Dmitry Antipov <dmantipov@yandex.ru>
4976
4977 * dispextern.h (struct face): Use bitfields for 'underline_type'
4978 and 'box' members. Remove set-but-unused members 'pixmap_w' and
4979 'pixmap_h'. If not HAVE_WINDOW_SYSTEM, also remove dummy
4980 'stipple' member. Move 'lface' member up to help...
4981 * xfaces.c (make_realized_face): ...this function to find and
4982 clear just the members that need clearing.
4983 (load_face_colors, realize_x_face):
4984 * xdisp.c (extend_face_to_end_of_line): Adjust user.
4985
0f771d26
DA
49862013-10-27 Dmitry Antipov <dmantipov@yandex.ru>
4987
4988 * xftfont.c (struct xftfont_info): Remove set-but-unused
4989 'screen' member.
4990 (xftfont_open): Adjust user.
4991 (xftfont_get_colors): Remove useless prototype.
4992
c556b44b
EZ
49932013-10-26 Eli Zaretskii <eliz@gnu.org>
4994
4995 * emacs.c (Fdump_emacs): Encode FILENAME and SYMFILE arguments
4996 before passing them to 'unexec'. (Bug#15260)
4997
2a03e2bc
XF
49982013-10-26 Xue Fuqiao <xfq.free@gmail.com>
4999
5000 * fringe.c (set_fringe_bitmap_face): Add usage note from lispref.
5001
6702c559
EZ
50022013-10-25 Eli Zaretskii <eliz@gnu.org>
5003
f67599d5
EZ
5004 * w32uniscribe.c (uniscribe_close): Adjust the argument list to
5005 the changed signature of the font driver's 'close' method.
5006
6702c559
EZ
5007 * w32font.h (w32font_close): Adjust the prototype to the change in
5008 function definition.
5009
5010 * w32font.c (w32font_close): Reintroduce deleted declaration of i.
5011
5012 * w32uniscribe.c (uniscribe_close): Adapt the call to
5013 w32font_close to its new prototype.
5014
78e0b35c
DA
50152013-10-25 Dmitry Antipov <dmantipov@yandex.ru>
5016
5017 Omit unused frame argument of font API's close function.
5018 * font.h (struct font): Drop frame argument. Adjust comment.
5019 * font.c (font_clear_cache, font_close_object): Adjust users.
5020 * ftfont.c (ftfont_close):
5021 * ftxfont.c (ftxfont_close):
5022 * macfont.m (macfont_close):
5023 * nsfont.m (nsfont_close):
5024 * w32font.c (w32font_close):
5025 * xfont.c (xfont_close):
86bd985e
DA
5026 * xftfont.c (xftfont_close): Adjust driver-specific close functions,
5027 tweak comments and make functions safe if called more than once for
5028 the same font object.
5029
5030 Perform font-specific cleanup when font object is swept by GC. See
5031 http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00740.html.
5032 * alloc.c (cleanup_vector): New function.
5033 (sweep_vector): Call it for each reclaimed vector object.
5034 * font.h (struct font): Adjust comment.
78e0b35c 5035
eb9a3661
GM
50362013-10-24 Glenn Morris <rgm@gnu.org>
5037
5038 * Makefile.in (abs_top_srcdir): New, set by configure.
5039
df24a230
DA
50402013-10-23 Dmitry Antipov <dmantipov@yandex.ru>
5041
66b238df 5042 Adjust recent font-related changes to fix bug#15686.
df24a230 5043 * alloc.c (mark_object) [HAVE_WINDOW_SYSTEM]: If marked frame
66b238df 5044 is a live window system frame, mark its default font too.
df24a230 5045
b8e3b0a9
GM
50462013-10-23 Glenn Morris <rgm@gnu.org>
5047
5048 * Makefile.in (RUN_TEMACS): Make relative (again).
5049 ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
5050 (bootstrap-emacs$(EXEEXT)):
5051 Quote entities that might contain whitespace.
5052
e4ea223d
PE
50532013-10-23 Paul Eggert <eggert@cs.ucla.edu>
5054
5055 Port to Solaris 10 and its bundled GCC.
5056 Problem reported by Timothy C. Burt.
5057 * floatfns.c (isfinite, isnan): Redefine unconditionally.
5058
fc54bdd5
DA
50592013-10-21 Dmitry Antipov <dmantipov@yandex.ru>
5060
5061 Do not allow font caches to grow too large.
5062 * alloc.c (compact_font_cache_entry, compact_font_caches):
5063 New functions or stub if not HAVE_WINDOW_SYSTEM.
5064 (compact_undo_list): Factor out from Fgarbage_collect.
5065 Add comment.
5066 (mark_face_cache): Mark face font. Move down to avoid
5067 extra prototypes.
5068 (mark_terminals): Do not mark font cache here.
5069 (Fgarbage_collect): Call compaction functions described
5070 above. Adjust comment.
5071
aca5fcdc
JD
50722013-10-20 Jan Djärv <jan.h.d@swipnet.se>
5073
a9f8deec
JD
5074 * emacs.c (main): On Cocoa, if GUI session and 0 is not a tty,
5075 chdir to HOME (bug#15607).
5076
aca5fcdc
JD
5077 * nsterm.m (Qcocoa, Qgnustep): New variables.
5078 (syms_of_nsterm): Defsym Qcocoa, Qgnustep. Fprovide appropriate one.
a6c4680a 5079 (ns_get_color): Make selection color work for GNUstep also.
aca5fcdc 5080
c4e3099f
EZ
50812013-10-18 Eli Zaretskii <eliz@gnu.org>
5082
5083 * keyboard.c (make_lispy_event): Remove GPM-specific code that
5084 handles mouse clicks. Instead, let GPM use the same code as all
5085 the other mice use. See the discussion starting at
5086 http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00521.html
5087 for the details of the problem with the menu bar this fixes.
5088
d141d701
DA
50892013-10-18 Dmitry Antipov <dmantipov@yandex.ru>
5090
5091 Remove port-specific display name lists to avoid extra
5092 complexity and data duplication with display info lists.
5093 * xterm.h (x_display_name_list): Remove declaration.
5094 * xterm.c (x_display_name_list): Remove.
5095 (x_term_init, x_delete_display, syms_of_xterm): Adjust users.
5096 * xfns.c (x_display_info_for_name, Fx_display_list):
5097 Likewise. Use x_display_list where appropriate.
5098 * w32term.h (w32_display_name_list): Remove declaration.
5099 * w32term.c (w32_display_name_list): Remove.
5100 (w32_initialize_display_info, x_delete_display, syms_of_w32term):
5101 Adjust users.
5102 * w32fns.c (x_display_info_for_name, Fx_display_list):
5103 Likewise. Use x_display_list where appropriate.
5104 * nsterm.h (ns_display_name_list): Remove declaration.
5105 * nsterm.m (ns_display_name_list): Remove.
5106 (ns_term_init, syms_of_nsterm): Adjust users.
5107 * nsfns.m (ns_display_info_for_name, Fx_display_list):
5108 Likewise. Use x_display_list where appropriate.
5109 * termhooks.h (TERMINAL_FONT_CACHE): New macro.
5110 * alloc.c (toplevel) [HAVE_WINDOW_SYSTEM]: Include TERM_HEADER.
5111 (mark_terminals): Mark per-terminal font cache.
5112
ef566920
BR
51132013-10-17 Barry O'Reilly <gundaetiapo@gmail.com>
5114
5115 Don't run timers in input-pending-p. Its new check-timers param
e9dc713d 5116 provides the prior behavior. (Bug#15045).
39c87140 5117 * keyboard.c (Finput_pending_p): Accept optional check-timers param.
ef566920 5118
f2752e01
PE
51192013-10-17 Paul Eggert <eggert@cs.ucla.edu>
5120
3d798ba7
PE
5121 Make some functions static in non-Microsoft builds.
5122 On my platform (Fedora 19 x86-64), this shrinks the
5123 Emacs executable (text+data) by 0.25%.
5124 * dispextern.h (erase_phys_cursor) [!WINDOWSNT]:
5125 (load_color) [!MSDOS]:
5126 * gnutls.h (emacs_gnutls_transport_set_errno) [!WINDOWSNT]:
5127 * keyboard.h (make_ctrl_char) [!WINDOWSNT]:
5128 * lisp.h (check_existing):
5129 * process.h (conv_sockaddr_to_lisp, network_interface_list)
5130 (network_interface_info) [!WINDOWSNT]:
5131 * termhooks.h (encode_terminal_code) [!WINDOWSNT]:
5132 Remove extern decls.
5133 * fileio.c (check_existing):
5134 * keyboard.c (make_ctrl_char) [!WINDOWSNT]:
5135 * process.c (conv_sockaddr_to_lisp, network_interface_list)
5136 (network_interface_info) [!WINDOWSNT]:
5137 * term.c (encode_terminal_code) [!WINDOWSNT]:
5138 * xdisp.c (erase_phys_cursor) [!WINDOWSNT]:
5139 * xfaces.c (load_color) [!MSDOS]:
5140 Now static.
5141 * fileio.c (check_existing, check_executable, check_writable):
5142 * process.c (network_interface_list, network_interface_info):
5143 Move earlier, so that we don't need forward decls.
5144 * gnutls.c (fn_gnutls_transport_set_errno)
5145 (emacs_gnutls_transport_set_errno) [!WINDOWNT]:
5146 Remove; unused.
5147 * w32.c (init_environment): Use faccessat rather than
5148 check_existing, partly for consistency with the rest of the code
5149 in this file, partly so that check_existing can be static.
5150
bb9937df
PE
5151 Make VALMASK visible to GDB even if clang is used (Bug#15574).
5152 * emacs.c (MAIN_PROGRAM): New macro.
5153 * lisp.h (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END): New macros.
5154 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
5155
f2752e01
PE
5156 bool vector int width fixes
5157 * data.c (bool_vector_spare_mask, Fbool_vector_count_matches)
5158 (Fbool_vector_count_matches_at):
5159 Use EMACS_INT, not ptrdiff_t, to record bit counts, as a bit count
5160 can exceed PTRDIFF_MAX, at least in theory.
5161 (Fbool_vector_count_matches_at):
5162 Use int, not ptrdiff_t, to record a value that can't exceed INT_MAX.
5163
0a2b8e3c
PE
51642013-10-16 Paul Eggert <eggert@cs.ucla.edu>
5165
5166 * process.h (conv_sockaddr_to_lisp): New decl, for newly-extern func.
5167 (struct sockaddr): Add forward decl, for platforms that lack it.
5168
2318fcca
JD
51692013-10-16 Jan Djärv <jan.h.d@swipnet.se>
5170
5171 * nsselect.m (ns_string_from_pasteboard): Remove Fquit, just return
5172 Qnil (Bug#15628).
5173
b911a94d
EZ
51742013-10-16 Eli Zaretskii <eliz@gnu.org>
5175
3dffe395
EZ
5176 * w32.c (network_interface_get_info, network_interface_list)
5177 (network_interface_info): New functions. (Bug#15610)
5178 (GetAdaptersInfo_Proc): New typedef.
5179 (get_adapters_info): New wrapper function.
5180 (globals_of_w32): Initialize g_b_init_get_adapters_info.
5181
dee4ba59
SM
5182 * process.h (network_interface_list, network_interface_info):
5183 New prototypes.
3dffe395
EZ
5184
5185 * process.c (conv_sockaddr_to_lisp): Now externally-visible.
5186 (Fnetwork_interface_list, Fnetwork_interface_info): Define for
5187 all systems. Return non-nil for systems that HAVE_NET_IF_H and
5188 for WINDOWSNT. Doc fix.
5189 (syms_of_process): Defsubr Snetwork_interface_list and
5190 Snetwork_interface_info unconditionally.
5191
b911a94d
EZ
5192 * menu.c (have_boxes): Fix redundant simulation of radio buttons
5193 in NS GUI sessions. (Bug#15629)
5194
04d47595
DA
51952013-10-16 Dmitry Antipov <dmantipov@yandex.ru>
5196
5197 * fns.c (Fstring_as_unibyte): Use xlispstrdup.
5198
5e15c624
PE
51992013-10-15 Paul Eggert <eggert@cs.ucla.edu>
5200
5201 * print.c (print_object): Print " ..." when truncating bool vectors.
5202
5d64d770
EZ
52032013-10-15 Eli Zaretskii <eliz@gnu.org>
5204
5205 * w32inevt.c (do_mouse_event): Support mouse wheel and all the 5
5206 standard mouse buttons.
5207
5208 * termhooks.h (struct input_event): Remove incorrect commentary.
5209
c911772e
PE
52102013-10-15 Paul Eggert <eggert@cs.ucla.edu>
5211
454e2fb9
PE
5212 Disallow bool vector operations on mixed-length operands.
5213 The old behavior left garbage in the result vector sometimes,
5214 and didn't seem to be useful.
5215 * data.c (Qwrong_length_argument): New static var.
5216 (wrong_length_argument): New function.
5217 (bool_vector_binop_driver): Check that args agree in length.
5218
c911772e
PE
5219 * keyboard.c, keyboard.h (all_kboards): Now static.
5220
57f623e2
XF
52212013-10-15 Xue Fuqiao <xfq.free@gmail.com>
5222
5223 * buffer.c (syms_of_buffer) <buffer-invisibility-spec>: Add usage
5224 note from the lispref.
5225
47c4d1e9
DA
52262013-10-15 Dmitry Antipov <dmantipov@yandex.ru>
5227
5228 * nsterm.h (struct ns_display_info): Remove set-but-unused
5229 member image_cache (image caches are per-terminal anyway).
5230 (FRAME_X_IMAGE_CACHE): Remove.
5231 * nsterm.m (ns_initialize_display_info): Adjust user.
5232
ccd4a783
EZ
52332013-10-14 Eli Zaretskii <eliz@gnu.org>
5234
279066b2
EZ
5235 * w32proc.c: Include mingw_time.h.
5236
5237 * w32.c: Include mingw_time.h.
5238
ccd4a783
EZ
5239 Implement scrolling of TTY menus when the screen is too short.
5240
5241 * term.c (tty_menu_display): Accept an additional argument, the
5242 menu item from which to start displaying the menu. Account for
5243 the value of Y when limiting the menu to the number of available
5244 screen lines.
5245 (mi_result): New enumeration.
5246 (read_menu_input): Return enumerated value. When the y coordinate
5247 hits min_y or max_y, return scroll indication instead of wrapping
5248 around the menu.
5249 (tty_menu_activate): Handle the scrolling indications from
5250 read_menu_input. Compute the first menu item to display and pass
5251 it to tty_menu_display.
5252
77e3b1b7
DA
52532013-10-14 Dmitry Antipov <dmantipov@yandex.ru>
5254
5255 * termhooks.h (FRAME_MUST_WRITE_SPACES, FRAME_LINE_INS_DEL_OK)
5256 (FRAME_CHAR_INS_DEL_OK, FRAME_SCROLL_REGION_OK)
5257 (FRAME_SCROLL_REGION_COST, FRAME_MEMORY_BELOW_FRAME):
5258 Adjust to match the change described below.
5259 (struct terminal): Move must_write_spaces, line_ins_del_ok,
5260 char_ins_del_ok, scroll_region_ok, scroll_region_cost and
5261 memory_below_frame members to...
5262 * termchar.h (struct tty_display_info): ...here because they're
5263 relevant only on TTYs. Prefer unsigned bitfield where appropriate.
5264 * term.c (init_tty):
5265 * nsterm.m (ns_create_terminal):
5266 * w32term.c (w32_create_terminal):
5267 * xterm.c (x_create_terminal): Adjust users.
5268 * dispnew.c (line_hash_code, line_draw_cost): Pass frame arg
5269 to filter out non-TTY frames. Adjust comment.
5270 (scrolling): Adjust user. Prefer eassert for debugging check.
5271
e558436b
DA
52722013-10-14 Dmitry Antipov <dmantipov@yandex.ru>
5273
5274 * xfaces.c (PT_PER_INCH): Remove unused macro.
5275 * termhooks.h (struct terminal): Remove set-but-unused
5276 member fast_clear_end_of_line.
5277 (FRAME_FAST_CLEAR_END_OF_LINE): Remove.
5278 * nsterm.m (ns_create_terminal):
5279 * term.c (init_tty):
5280 * w32term.c (w32_create_terminal):
5281 * xterm.c (x_create_terminal): Adjust users.
5282
1c0a7493
PE
52832013-10-14 Paul Eggert <eggert@cs.ucla.edu>
5284
5285 * lisp.h (bool_vector_size): New function.
5286 All uses of XBOOL_VECTOR (x)->size changed to bool_vector_size (x).
5287 * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
5288 (Fbool_vector_not, Fbool_vector_count_matches_at):
5289 Remove uses of 'eassume' that should no longer be needed,
5290 because they are subsumed by the 'eassume' in bool_vector_size.
5291
567f95ec
EZ
52922013-10-12 Eli Zaretskii <eliz@gnu.org>
5293
5294 * image.c (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE): Move back
5295 after inclusion of gif_lib.h, thus fixing compiler warnings caused
5296 by 2013-10-10T19:15:33Z!eggert@cs.ucla.edu.
5297
abe02020
EZ
52982013-10-11 Eli Zaretskii <eliz@gnu.org>
5299
5300 * xdisp.c (deep_copy_glyph_row): Handle the case that FROM and TO
5301 have different dimensions. (Bug#15575)
5302
5303 * dispnew.c (fill_up_frame_row_with_spaces): Now has external
5304 visibility.
5305
5306 * dispextern.h (fill_up_frame_row_with_spaces): Add prototype.
5307
9428abbf
DA
53082013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
5309
5310 * term.c (tty_menu_show): Never return with unbalanced
5311 specpdl. Use eassert for debugging check. Adjust style.
5312
052bac0b
EZ
53132013-10-11 Eli Zaretskii <eliz@gnu.org>
5314
5315 * term.c (read_menu_input): Make selection of menu items
5316 cyclical. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
5317 (tty_menu_activate): Fix off-by-one error when computing max_y.
5318
e1f9f9e3
TZ
53192013-10-11 Teodor Zlatanov <tzz@lifelogs.com>
5320
5321 * gnutls.c (gnutls_audit_log_function): Add function for GnuTLS
5322 audit logging (only used with GnuTLS 3.x) and enable it.
5323
7d563e36
DA
53242013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
5325
5326 * dispnew.c (redraw_frame): Remove useless #ifdef because
5327 FRAME_MSDOS_P is a compile-time zero everywhere except MS-DOS.
5328 Also, move TTY fflush to...
5329 * term.c (tty_update_end): ...this function.
5330
48621e69
EZ
53312013-10-11 Eli Zaretskii <eliz@gnu.org>
5332
5333 * xdisp.c (display_tty_menu_item): Make sure we never write beyond
5334 the end of the frame's glyph matrix. (Bug#15575)
5335
5336 * term.c (tty_menu_display): Don't move cursor while overwriting
5337 frame's glyphs with menu items. Limit the number of items
5338 displayed to what can be shown on the available screen lines,
5339 excluding the echo area.
5340 (tty_menu_activate): Limit the Y coordinate allowed by
5341 read_menu_input to the last screen line used for menu display.
5342
b9ff995e
PE
53432013-10-11 Paul Eggert <eggert@cs.ucla.edu>
5344
5345 * lisp.h (eassume): New macro.
5346 Also, include <verify.h>, for 'assume'.
5347 * alloc.c (bool_vector_payload_bytes, Fmake_bool_vector)
5348 (vroundup, vector_nbytes):
5349 * data.c (bool_vector_spare_mask, bool_vector_binop_driver)
5350 (Fbool_vector_not, Fbool_vector_count_matches)
5351 (Fbool_vector_count_matches_at):
5352 Use eassume, not eassert.
5353 * casetab.c (set_identity, shuffle):
5354 * composite.c (composition_gstring_put_cache):
5355 * dispnew.c (update_frame_1):
5356 * ftfont.c (ftfont_shape_by_flt):
5357 * image.c (gif_load):
5358 * intervals.c (offset_intervals):
5359 * macfont.m (macfont_shape):
5360 Remove calls to 'assume' that are no longer needed, because
5361 --enable-gcc-warnings no longer generates bogus warnings
5362 when these calls are removed.
5363
33ac0265
DA
53642013-10-11 Dmitry Antipov <dmantipov@yandex.ru>
5365
5366 * xdisp.c (deep_copy_glyph_row): Remove unused locals.
5367
ee041f2d
SM
53682013-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
5369
5370 * fileio.c (Fsubstitute_in_file_name): Use substitute-env-in-file-name.
5371 (Qsubstitute_env_in_file_name): New var.
5372 (syms_of_fileio): Define it.
5373
00036e1d
EZ
53742013-10-10 Eli Zaretskii <eliz@gnu.org>
5375
5376 * xdisp.c (deep_copy_glyph_row): Assert that the 'used' counts of
5377 FROM and TO are identical. Copy only the glyphs of TEXT_AREA.
5378 (Bug#15575)
5379
5380 * term.c (save_and_enable_current_matrix): Don't allocate and
5381 don't save margin areas.
5382 (restore_desired_matrix): Don't restore margin areas.
5383 (free_saved_screen): Don't free margin areas.
5384
99149625
PE
53852013-10-10 Paul Eggert <eggert@cs.ucla.edu>
5386
5387 * image.c: Pacify --enable-gcc-warnings.
5388 (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE, fn_GifErrorString):
5389 #define only if used.
5390
a5dab159
EZ
53912013-10-10 Eli Zaretskii <eliz@gnu.org>
5392
5393 * image.c (GIFLIB_MAJOR): Define to 4 if undefined.
5394 (GIFLIB_MINOR, GIFLIB_RELEASE): Define to zero if undefined.
5395 (GifErrorString) [GIFLIB_MAJOR >= 5]: Define a function pointer.
5396 (gif_load): For giflib v5.x and later, display the error message
5397 produced by giflib when its functions fail.
5398 (syms_of_image) <Qlibgif_version> [HAVE_NTGUI]: New DEFSYM.
5399 (Bug#15531)
5400
6bbe6da8
DA
54012013-10-10 Dmitry Antipov <dmantipov@yandex.ru>
5402
5403 * keyboard.c (last_event_timestamp): Remove. For X selection and
5404 GTK popup menus, it may be obtained from per-frame X display info.
5405 (kbd_buffer_store_event_hold, kbd_buffer_get_event)
5406 (process_special_events): Adjust users.
5407 * keyboard.h (last_event_timestamp): Remove declaration.
5408 * xmenu.c (xmenu_show, create_and_show_popup_menu): Lost last arg.
5409 Use FRAME_DISPLAY_INFO (f)->last_user_time for gtk_menu_popup.
5410 * menu.h (xmenu_show): Adjust prototype.
5411 * menu.c (Fx_popup_menu): Adjust user.
5412 * xselect.c (x_own_selection, x_get_foreign_selection)
5413 (Fx_disown_selection_internal): Use dpyinfo->last_user_time.
5414
1afcba63
DA
54152013-10-10 Dmitry Antipov <dmantipov@yandex.ru>
5416
5417 * keyboard.c (init_kboard): Now static. Add arg
5418 to denote window system. Adjust comment.
5419 (init_keyboard): Adjust user.
5420 (allocate_kboard): New function.
5421 (syms_of_keyboard):
5422 * nsterm.m (ns_term_init):
5423 * term.c (init_tty):
5424 * w32term.c (w32_create_terminal):
5425 * xterm.c (x_term_init): Use it.
5426 * keyboard.h (init_kboard): Remove prototype.
5427 (allocate_kboard): Add prototype.
5428
f3606ef7
BF
54292013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
5430
5431 * image.c (GIFLIB_MAJOR): Ensure it's defined.
5432 (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531)
5433
e20bb249
PE
54342013-10-09 Paul Eggert <eggert@cs.ucla.edu>
5435
5436 * fns.c (sxhash_bool_vector): Fix buffer read overrun.
5437
9f6a18d2
EZ
54382013-10-09 Eli Zaretskii <eliz@gnu.org>
5439
5440 * term.c (tty_menu_activate): Flush the output stream after
5441 showing the cursor, and don't mark the frame garbaged at exit from
5442 the function. Fixes redisplay glitches when moving from one menu
5443 to another.
5444
0486beac
JD
54452013-10-09 Jan Djärv <jan.h.d@swipnet.se>
5446
5447 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Check input for valid UTF-8
5448 or throw error (Bug#15570).
5449
0d5d3029
PE
54502013-10-09 Paul Eggert <eggert@cs.ucla.edu>
5451
ab7ce978
PE
5452 * intervals.c (temp_set_point_both): Move test into 'eassert',
5453 for speed.
5454
0d5d3029
PE
5455 * lisp.h (eassert): Don't use 'assume'.
5456 Sometimes 'assume' wins in performance, and sometimes it loses,
5457 so it shouldn't be used all the time. Perhaps we need two
5458 flavors of 'eassert', one for where 'assume' is far more likely
5459 to help or to hurt; but that can be done later.
1afcba63 5460 Problem reported by Dmitry Antipov in
0d5d3029
PE
5461 <http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>.
5462 Also, don't include <verify.h>; no longer needed.
5463
fa022909
GM
54642013-10-09 Glenn Morris <rgm@gnu.org>
5465
5466 * eval.c (Fcond): Doc tweak.
5467
051277bf
EZ
54682013-10-09 Eli Zaretskii <eliz@gnu.org>
5469
5470 * xfaces.c (x_free_gc) [HAVE_X_WINDOWS, HAVE_NTGUI]: Don't pass
5471 expressions with side effects to eassert. (Bug#15565)
5472
79804536
SM
54732013-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
5474
5475 * fns.c (hashfn_user_defined): Allow hash functions to return any
5476 Lisp_Object.
5477
3b158d11
PE
54782013-10-08 Paul Eggert <eggert@cs.ucla.edu>
5479
5480 Fix minor problems found by static checking.
5481 * dispnew.c (save_current_matrix): Omit unnecessary casts.
5482 * dispnew.c (update_frame_with_menu): Mark debug local as used.
5483 * keyboard.c, keyboard.h (Qmouse_movement): Now static.
5484 * keyboard.c (read_menu_command): Remove unused local.
5485 * lisp.h (read_menu_command): New decl.
5486 * menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for
5487 benefit of STRING_CHAR_AND_LENGTH. All uses changed.
5488 Return ptrdiff_t, not int.
5489 * term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t,
5490 not int, for benefit of xpalloc.
5491 (tty_menu_create, tty_menu_make_room): Simplify by using xzalloc
5492 and xpalloc.
5493 (have_menus_p): Remove; unused.
5494 (tty_menu_add_pane, tty_menu_add_selection): Change signedness of
5495 local char * pointer to pacify STRING_CHAR_AND_LENGTH.
5496 (tty_menu_add_selection, tty_menu_locate, tty_meny_destroy):
5497 Now static.
5498 (save_and_enable_current_matrix): Omit unnecessary casts.
5499 (read_menu_input): Omit local extern decl (now in lisp.h).
5500 Don't access uninitialized storage if mouse_get_xy fails.
5501 (tty_menu_activate): Mark local as initialized, for lint.
5502 (tty_menu_activate, tty_meny_show): Remove unused locals.
5503
4ed77415
EZ
55042013-10-08 Eli Zaretskii <eliz@gnu.org>
5505
5506 Support menus on text-mode terminals.
5507 * xterm.h (xw_popup_dialog): Add prototype.
5508
5509 * xmenu.c (Fx_popup_dialog): Function moved to menu.c.
5510 (xmenu_show): Block input here, instead in Fx_popup_menu.
5511 (xw_popup_dialog): New function, with X-specific bits of popup
5512 dialogs.
5513
dee4ba59
SM
5514 * xdisp.c (deep_copy_glyph_row, display_tty_menu_item):
5515 New functions.
4ed77415
EZ
5516
5517 * window.c (Fset_window_configuration): Use run-time tests of the
5518 frame type instead of compile-time conditionals, when menu-bar
5519 lines are considered.
5520
5521 * w32term.h (w32con_hide_cursor, w32con_show_cursor)
5522 (w32_popup_dialog): New prototypes.
5523
5524 * w32menu.c (Fx_popup_dialog): Function deleted.
5525 (w32_popup_dialog): New function, with w32 specific bits of popup
5526 dialogs. Block input here.
5527
5528 * w32inevt.c (w32_console_read_socket): Minor change to add
5529 debugging TTY events.
5530
5531 * w32fns.c (show_hourglass): If returning early because the frame
5532 is not a GUI frame, unblock input.
5533
5534 * w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX)
5535 (cursorY): New functions.
5536
5537 * termhooks.h (cursorX, cursorY): Prototypes of functions on
5538 WINDOWSNT, macros that call curX and curY elsewhere.
5539
5540 * termchar.h (struct tty_display_info) <showing_menu>: New flag.
5541
5542 * term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32
5543 specific function to hide and show cursor on a text-mode terminal.
5544 (tty_menu_struct, struct tty_menu_state): New structures.
5545 (tty_menu_create, tty_menu_make_room, tty_menu_search_pane)
5546 (tty_menu_calc_size, mouse_get_xy, tty_menu_display)
5547 (have_menus_p, tty_menu_add_pane, tty_menu_add_selection)
5548 (tty_menu_locate, save_and_enable_current_matrix)
5549 (restore_desired_matrix, screen_update, read_menu_input)
5550 (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback)
5551 (tty_pop_down_menu, tty_menu_last_menubar_item)
5552 (tty_menu_new_item_coords, tty_menu_show): New functions.
5553 (syms_of_term): New DEFSYMs for tty-menu-* symbols.
5554
5555 * nsterm.h (ns_popup_dialog): Adjust prototype.
5556
5557 * nsmenu.m (ns_menu_show): Block and unblock input here, instead
5558 of in x-popup-menu.
5559 (ns_popup_dialog): Adapt order of arguments to the other
5560 *_menu_show implementations.
5561 (Fx_popup_dialog): Function deleted.
5562
5563 * msdos.c (x_set_menu_bar_lines): Delete unused function.
5564
c295fc18 5565 * menu.h (tty_menu_show, menu_item_width): Provide prototypes.
4ed77415
EZ
5566
5567 * menu.c (have_boxes): New function.
5568 (single_keymap_panes): Use it instead of a compile-time
5569 conditional.
5570 (single_menu_item): Use run-time tests of the frame type instead
5571 of compile-time conditionals.
5572 (encode_menu_string): New function.
5573 (list_of_items, list_of_panes): Use it instead of ENCODE_STRING
5574 the macro, since different types of frame need different encoding
5575 of menu items.
5576 (digest_single_submenu): Use run-time tests of frame type instead
5577 of, or in addition to, compile-time conditionals.
5578 (menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
5579 (Fx_popup_menu): Detect when the function is called from keyboard
dee4ba59
SM
5580 on a TTY. Don't barf when invoked on a text-mode frame.
5581 Check frame type at run time, instead of compile-time conditionals for
5582 invoking terminal-specific menu-show functions.
5583 Call tty_menu_show on text-mode frames.
5584 (Fx_popup_dialog): Move here from xmenu.c. Test frame types at
4ed77415
EZ
5585 run time to determine which alternative to invoke; support dialogs
5586 on TTYs.
5587
5588 * keyboard.h <Qmouse_movement>: Declare.
5589
5590 * keyboard.c <Qmouse_movement>: Now extern.
5591 <Qecho_keystrokes>: New static variable.
5592 (read_key_sequence): Accept an additional argument, a flag to
5593 prevent redisplay during reading of the key sequence. All callers
5594 changed.
5595 (read_menu_command): New function.
5596 (read_char): When COMMANDFLAG is -2, do not redisplay and do not
5597 autosave.
5598 (toolkit_menubar_in_use): New function.
5599 (make_lispy_event): Use it instead of a compile-time test.
5600
5601 * fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on
5602 window-system being available.
5603
5604 * editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call
5605 to x-popup-dialog on the frame type, they all now support popup
5606 dialogs.
5607
5608 * dispnew.c (save_current_matrix): Save the margin areas.
5609 (restore_current_matrix): Restore margin areas.
5610 (update_frame_with_menu): New function.
5611
5612 * dispextern.h (display_tty_menu_item, update_frame_with_menu):
5613 Add prototypes.
5614
5615 * alloc.c (make_save_ptr): Now compiled unconditionally.
5616
ecab13d4
DA
56172013-10-08 Dmitry Antipov <dmantipov@yandex.ru>
5618
5619 * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment.
5620 (redraw_frame, update_frame): Adjust users.
5621 * dispextern.h (set_window_update_flags): Adjust prototype.
5622 * xdisp.c (redisplay_internal): When updating all frames with zero
5623 windows_or_buffers_changed, assume that only the windows that shows
5624 current buffer should be really updated.
5625
f8498081
DA
56262013-10-08 Dmitry Antipov <dmantipov@yandex.ru>
5627
5628 Do not allocate huge temporary memory areas and objects while encoding
5629 for file I/O, thus reducing an enormous memory usage for large buffers.
5630 See http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00180.html.
5631 * coding.h (struct coding_system): New member raw_destination.
5632 * coding.c (setup_coding_system): Initialize it to zero.
5633 (encode_coding_object): If raw_destination is set, do not create
5634 dst_object. Add comment.
5635 * fileio.c (toplevel): New constant E_WRITE_MAX.
5636 (e_write): Do not encode more than E_WRITE_MAX characters per one loop
5637 iteration. Use raw_destination if E_WRITE_MAX characters is encoded.
5638
d180bde8
JD
56392013-10-08 Jan Djärv <jan.h.d@swipnet.se>
5640
35e951cd 5641 * nsterm.m (windowDidExitFullScreen:)
d180bde8
JD
5642 (toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS.
5643
87c4314d
PE
56442013-10-08 Paul Eggert <eggert@cs.ucla.edu>
5645
18978362
PE
5646 Fix race where emacs aborts when sent SIGTERM (Bug#15534).
5647 * keyboard.c (unblock_input_to): Don't process pending signals
5648 if a fatal error is in progress.
5649
87c4314d
PE
5650 * lisp.h (bits_word, BITS_WORD_MAX): New type and macro.
5651 All uses of 'size_t' and 'SIZE_MAX' changed to use them, when
5652 they're talking about words in Lisp bool vectors.
5653 (BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T. All uses changed.
1142cc2a
PE
5654 * data.c (popcount_bits_word): Rename from popcount_size_t.
5655 (bits_word_to_host_endian): Rename from size_t_to_host_endian.
5656 All uses changed.
87c4314d 5657
595e113b
PE
56582013-10-07 Paul Eggert <eggert@cs.ucla.edu>
5659
5660 Improve support for popcount and counting trailing zeros (Bug#15550).
5661 * data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>.
5662 (USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE)
5663 (NEED_GENERIC_POPCOUNT, popcount_size_t_generic)
5664 (popcount_size_t_msc, popcount_size_t_gcc):
5665 Remove; now done by Gnulib.
5666 (popcount_size_t): Now a macro that defers to Gnulib.
5667 (count_trailing_zero_bits): Return int, for consistency with
5668 Gnulib and because Emacs prefers signed to unsigned int.
5669 Don't assume that size_t is either unsigned int or unsigned long
5670 or unsigned long long.
5671 (size_t_to_host_endian): Do not assume that size_t is either
5672 exactly 32 or exactly 64 bits wide.
5673 * lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG
5674 etc., so that it's now an enum constant, not a macro.
5675 No need to assume that it's either 32 or 64.
5676
ddb317ba
JD
56772013-10-07 Jan Djärv <jan.h.d@swipnet.se>
5678
5679 * nsterm.m (windowDidEnterFullScreen:): setPresentationOptions only
5680 on >= 10.7.
5681
bd74250f
DA
56822013-10-07 Dmitry Antipov <dmantipov@yandex.ru>
5683
5684 * insdel.c (insert_from_gap): Prefer ptrdiff_t to int where needed.
764636db 5685 * xdisp.c (handle_fontified_prop): Likewise. Use bool for boolean.
bd74250f 5686
223752d7
PE
56872013-10-07 Paul Eggert <eggert@cs.ucla.edu>
5688
5689 emacs_read and emacs_write now use void *, not char *.
5690 * alloc.c (valid_pointer_p) [!WINDOWSNT]: Remove now-unnecessary cast.
5691 * sysdep.c (emacs_read, emacs_write, emacs_write_sig):
5692 Buffer arg is now void *, not char *. This matches plain
5693 'read' and 'write' better, and avoids a constraint violation
5694 on Solaris 9 with Oracle Studio.
5695
3c439e0a
DA
56962013-10-07 Dmitry Antipov <dmantipov@yandex.ru>
5697
5698 * alloc.c (Fmake_string): For ASCII char initializer, prefer
5699 memset to explicit loop. Otherwise copy largest possible chunk
5700 from initialized to uninitialized part, thus allowing the longer
5701 memcpy runs and reducing the number of loop iterations.
5702
28c76099
JD
57032013-10-06 Jan Djärv <jan.h.d@swipnet.se>
5704
5705 * nsterm.m (ns_update_begin): If native fullscreen and no toolbar,
5706 hide toolbar (Bug#15388).
5707 (windowDidEnterFullScreen:): If presentation options are zero,
5708 set them here (Bug#15388).
a3e9050c
JD
5709 (ns_update_auto_hide_menu_bar): Remove runtime check.
5710 Don't auto hide dock unless menubar is also auto hidden.
28c76099 5711
544a2a80
XF
57122013-10-05 Xue Fuqiao <xfq.free@gmail.com>
5713
5714 * editfns.c (message): Mention batch mode in doc string.
5715
a27fd309
JD
57162013-10-05 Jan Djärv <jan.h.d@swipnet.se>
5717
5718 * nsterm.m (check_native_fs): Remove erroneous comment.
5719
942f6f82
DA
57202013-10-04 Dmitry Antipov <dmantipov@yandex.ru>
5721
5722 * xdisp.c (redisplay_internal): Simplify because scan_for_column now
5723 uses find_newline instead of scan_newline and so doesn't move point.
5724
157fec2e
PE
57252013-10-04 Paul Eggert <eggert@cs.ucla.edu>
5726
4eed3157
PE
5727 Use hardware support for byteswapping on glibc x86 etc.
5728 On Fedora 19 x86-64, the new bswap_64 needs 1 instruction,
5729 whereas the old swap64 needed 30.
5730 * fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]:
5731 * sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]:
5732 Use byteswap.h's macros to swap bytes.
5733 * lisp.h (swap16, swap32, swap64): Remove.
5734 All uses replaced by bswap_16, bswap_32, bswap_64.
5735
157fec2e
PE
5736 * bytecode.c (exec_byte_code): Use some more volatile variables
5737 to work around local variables getting clobbered by longjmp.
5738 Port to pre-C99, which doesn't allow decls after stmts.
5739
b52f569d
PE
57402013-10-03 Paul Eggert <eggert@cs.ucla.edu>
5741
75273afb
PE
5742 * lisp.h (eassert): Assume that COND is true when optimizing.
5743 In other words, take on the behavior of eassert_and_assume.
5744 This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64).
5745 (eassert_and_assume): Remove. All uses replaced by eassert.
5746
ead45345
PE
5747 * xdisp.c (Qglyphless_char): Now static.
5748
0a858ebf
PE
5749 Adjust to merge from gnulib.
5750 * conf_post.h (__has_builtin, assume): Remove; gnulib now does these.
5751 * lisp.h: Include <verify.h>, for 'assume'.
5752
b52f569d
PE
5753 * eval.c (clobbered_eassert): New macro.
5754 (internal_catch, internal_condition_case)
5755 (internal_condition_case_1, internal_condition_case_2)
5756 (internal_condition_case_n): Use it instead of eassert
5757 when the argument contains locals clobbered by longjmp.
5758 Don't use clobbered locals outside of clobbered_eassert.
5759 (internal_lisp_condition_case): Use a volatile variable
5760 to work around a local variable's getting clobbered.
5761
adf2aa61
SM
57622013-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
5763
5764 * lisp.h (struct handler): Merge struct handler and struct catchtag.
5765 (PUSH_HANDLER): New macro.
5766 (catchlist): Remove.
5767 (handlerlist): Always declare.
5768
5769 * eval.c (catchlist): Remove (merge with handlerlist).
5770 (handlerlist, lisp_eval_depth): Not static any more.
5771 (internal_catch, internal_condition_case, internal_condition_case_1)
5772 (internal_condition_case_2, internal_condition_case_n):
5773 Use PUSH_HANDLER.
5774 (unwind_to_catch, Fthrow, Fsignal): Adjust to merged
5775 handlerlist/catchlist.
5776 (internal_lisp_condition_case): Use PUSH_HANDLER. Adjust to new
5777 handlerlist which can only handle a single condition-case handler at
5778 a time.
5779 (find_handler_clause): Simplify since we only a single branch here
5780 any more.
5781
5782 * bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase
5783 and Bpophandler.
5784 (bcall0): New function.
5785 (exec_byte_code): Add corresponding cases. Improve error message when
5786 encountering an invalid byte-code. Let Bunwind_protect accept
5787 a function (rather than a list of expressions) as argument.
5788
5789 * alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist,
5790 and make them unconditional now that they're heap-allocated.
5791
328a8179
SM
57922013-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
5793
5794 * charset.c (Fdecode_char, Fencode_char): Remove description of
5795 `restriction' arg. now that it's hidden by advertised-calling-convention.
5796
c348360a
JD
57972013-10-02 Jan Djärv <jan.h.d@swipnet.se>
5798
328a8179
SM
5799 * macfont.m (mac_ctfont_create_preferred_family_for_attributes):
5800 Remove unused variable (from mac-port).
c348360a
JD
5801 (macfont_draw): Use s->ybase for correct y position.
5802
1a23cd48
DA
58032013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
5804
5805 * frame.h (struct frame): Drop has_minibuffer member because...
5806 (FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it.
5807 * frame.c (make_frame, make_minibuffer_frame): Adjust users.
5808
29bf4de4
DA
58092013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
5810
5811 * window.h (struct window): Prefer enum text_cursor_kinds to int
5812 for phys_cursor_type member. Move the latter, phys_cursor_width,
5813 phys_cursor_ascent and phys_cursor_height under HAVE_WINDOW_SYSTEM.
5814 * window.c (replace_window, make_window): Adjust users.
5815
a30ddace
DA
58162013-10-02 Dmitry Antipov <dmantipov@yandex.ru>
5817
5818 * fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM because
5819 this module is never compiled otherwise.
5820
45435f08
AA
58212013-10-01 Alp Aker <alp.tekin.aker@gmail.com>
5822
5823 * macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRect
5824 (Bug#15500).
5825
92e5298b
EZ
58262013-09-29 Eli Zaretskii <eliz@gnu.org>
5827
5828 * xdisp.c (get_next_display_element): Don't call face_for_font in
5829 a build configured --without-x. (Bug#15484)
5830
caa50be2
JD
58312013-09-29 Jan Djärv <jan.h.d@swipnet.se>
5832
66d13b20
JD
5833 * window.c (calc_absolute_offset): #elif should be #elif defined.
5834
caa50be2
JD
5835 * frame.c (delete_frame): Block/unblock input to overcome race
5836 condition (Bug#15475).
5837
062e286b 58382013-09-29 Andreas Politz <politza@hochschule-trier.de>
d3e2acb6
AP
5839
5840 * frame.c (delete_frame): Record selected frame only after
5841 calling Qdelete_frame_functions (Bug#15477).
5842
1610938f
JD
58432013-09-28 Jan Djärv <jan.h.d@swipnet.se>
5844
5845 * nsterm.m (ns_selection_color): Remove.
5846 (ns_get_color): Check for ns_selection_(fg|bg)_color using
5847 NSColor selectedText(Background)Color. Only for COCOA.
5848 (ns_term_init): Remove assignment of ns_selection_color, logic
5849 moved to ns_get_color.
5850
328a8179 5851 * nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Rename from
1610938f
JD
5852 NS_SELECTION_COLOR_DEFAULT.
5853 (NS_SELECTION_FG_COLOR_DEFAULT): New.
5854
0d2647e6
EZ
58552013-09-28 Eli Zaretskii <eliz@gnu.org>
5856
5857 * xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
5858 frame' does not have the tool_bar_window member.
5859
ba355de0
BR
58602013-09-26 Barry O'Reilly <gundaetiapo@gmail.com>
5861
5862 Signal error when reading an empty byte-code object (Bug#15405)
c295fc18
JB
5863 * lread.c (read1): Signal error.
5864 * alloc.c (make_byte_code): eassert header size.
5865 (sweep_vectors): Change an int to size_t.
ba355de0 5866
4710d6f4
PE
58672013-09-24 Paul Eggert <eggert@cs.ucla.edu>
5868
cf647d93
PE
5869 * dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums
5870 instead of ints, as it's the usual style for offsetof constants. See:
5871 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00478.html
5872
4710d6f4
PE
5873 * data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount.
5874 This is ugly, but it should fix the performance problem for older
5875 GCC versions in the short run. I'll look into integrating the
5876 Gnulib module for popcount, as a better fix.
5877 See the thread starting in:
5878 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00474.html
5879 (popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]:
5880 (popcount_size_t_msc) [USE_MSC_POPCOUNT]:
5881 (popcount_size_t_gcc) [USE_GCC_POPCOUNT]:
5882 (popcount_size_t): Use it.
5883
10ebac9d
DC
58842013-09-24 Daniel Colascione <dancol@dancol.org>
5885
5886 * process.c (Fnetwork_interface_info): Fix build break due to
5887 vector changes.
5888
9da0f50e
PE
58892013-09-24 Paul Eggert <eggert@cs.ucla.edu>
5890
5891 * dispnew.c (clear_glyph_row, copy_row_except_pointers):
5892 Prefer signed to unsigned integers where either will do.
5893 No need for 'const' on locals that do not escape.
5894 Omit easserts with unnecessary and unportable assumptions about
5895 alignment. Avoid unnecessary casts to char *.
5896
d6d9cbc1
DA
58972013-09-24 Dmitry Antipov <dmantipov@yandex.ru>
5898
5899 Use union for the payload of struct Lisp_Vector.
5900 This helps to avoid a few glitches dictated by C's aliasing rules.
5901 * lisp.h (struct Lisp_Vector): Use union for next and
5902 contents member. Adjust comment. Change related users.
5903 * alloc.c (next_in_free_list, set_next_in_free_list): Remove.
5904 Related users changed.
5905 * buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
5906 * composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
5907 * lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
5908 * xfaces.c, xfont.c, xmenu.c: Related users changed.
5909
ec7bc82f
DA
59102013-09-24 Dmitry Antipov <dmantipov@yandex.ru>
5911
5912 Optimize glyph row clearing and copying routines.
5913 * dispextern.h (struct glyph_row): Change layout of struct
5914 glyph_row to help copy_row_except_pointers. Adjust comment.
5915 * dispnew.c (null_row): Remove.
5916 (clear_glyph_row): Use offsetof and memset to find and clear
5917 just the members that need clearing. Adjust comment.
5918 (copy_row_except_pointers): Likewise for copying.
5919
d160dd0c
PE
59202013-09-24 Paul Eggert <eggert@cs.ucla.edu>
5921
7be68de5
PE
5922 Some minor cleanups of recently-added bool vector code.
5923 * conf_post.h (assume): Always return void. Use lint version
5924 only if GCC and MSC versions don't apply.
5925 * conf_post.h (assume):
5926 * data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits):
5927 Depend on _MSC_VER, not __MSC_VER, for consistency with
5928 the rest of Emacs.
5929 * data.c (bool_vector_spare_mask, popcount_size_t_generic)
5930 (popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t)
5931 (bool_vector_binop_driver, count_trailing_zero_bits)
5932 (size_t_to_host_endian): Now static, not static inline;
5933 the latter isn't needed with modern compilers and doesn't
5934 work with older compilers anyway.
5935
d160dd0c
PE
5936 * alloc.c (valgrind_p): Use bool for boolean.
5937
e08813d0
DA
59382013-09-23 Dmitry Antipov <dmantipov@yandex.ru>
5939
5940 * xdisp.c (noninteractive_need_newline, message_log_need_newline)
5941 (overlay_arrow_seen, message_enable_multibyte, line_number_displayed)
5942 (display_last_displayed_message_p, message_buf_print)
5943 (message_cleared_p, help_echo_showing_p, hourglass_shown_p):
5944 Use bool for boolean.
3a6a78fd
DA
5945 * dispextern.h (cancel_line, init_desired_glyphs):
5946 Remove ancient leftover.
5947 (help_echo_showing_p, hourglass_shown_p):
e08813d0
DA
5948 * lisp.h (noninteractive_need_newline): Adjust declaration.
5949
5492865b
DA
59502013-09-23 Dmitry Antipov <dmantipov@yandex.ru>
5951
5952 * dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
5953 Move to...
5954 * frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
5955 ...this file and convert the latter to static. Adjust comment.
5956 (make_initial_frame):
5957 * window.c (init_window_once): Adjust user.
5958 * frame.h (last_nonminibuf_frame): Remove declaration.
5959 * lisp.h (selected_frame): Likewise.
5960 * msdos.c (the_only_display_info): Adjust comment.
5961
cd548fa4
EZ
59622013-09-23 Eli Zaretskii <eliz@gnu.org>
5963
f03eddbf
EZ
5964 * xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in
5965 computing the end column of mouse-highlight that comes from
5966 display or overlay strings. (Bug#15437)
b519df23
EZ
5967 (note_mouse_highlight): Adapt calculation of last argument to
5968 mouse_face_from_string_pos to the above change.
f03eddbf 5969
cd548fa4
EZ
5970 * conf_post.h (__has_builtin): Define to zero, if undefined, on
5971 all platforms, not just for clang.
5972
8762e524
JD
59732013-09-23 Jan Djärv <jan.h.d@swipnet.se>
5974
5975 * filelock.c (lock_file_1): Rearrange to remove compiler warning
5976 about excess arguments to snprintf.
5977
5978 * conf_post.h(assume): Use __builtin_unreachable for clang.
5979
d4a9284f
JB
59802013-09-23 Juanma Barranquero <lekktu@gmail.com>
5981
5982 * w32console.c (initialize_w32_display): Remove unused variable hlinfo.
5983 * w32term.c (w32_scroll_bar_handle_click): Remove unused variable f.
5984
a84683fd
DC
59852013-09-23 Daniel Colascione <dancol@dancol.org>
5986
5987 * alloc.c (USE_VALGRIND): New macro; on by default
5988 when ENABLE_CHECKING.
ffb3f67a 5989 (mark_maybe_object, mark_maybe_pointer)
a84683fd
DC
5990 [USE_VALGRIND]: Mark conservatively-scanned regions valid for
5991 valgrind purposes.
5992 (valgrind_p) [USE_VALGRIND]: New variable.
5993 (init_alloc) [USE_VALGRIND]: Initialize valgrind_p.
5994
8fef36c6
JD
59952013-09-22 Jan Djärv <jan.h.d@swipnet.se>
5996
fb83ea63
JD
5997 * process.c (wait_reading_process_output): Change int pnamelen to
5998 socklen_t.
5999
35e951cd 6000 * nsterm.m (setMarkedText:selectedRange:, deleteWorkingText):
fb83ea63
JD
6001 * nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:):
6002 * nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog
6003 argument to unsigned long to avoid warning.
6004 (nsfont_draw): Use 0.25 instead of Fix2X (kATSItalicQDSkew).
6005
8fef36c6
JD
6006 * conf_post.h (assume): Fix compiler error: x shall be cond.
6007
cd9356f2
DC
60082013-09-22 Daniel Colascione <dancol@dancol.org>
6009
6010 * xfns.c (x_get_monitor_attributes): Suppress unused variable
6011 warning when compiling without a window system.
6012
3e0b94e7
DC
60132013-09-22 Daniel Colascione <dancol@dancol.org>
6014
6015 * data.c (Qbool_vector_p): New symbol.
ffb3f67a
PE
6016 (bool_vector_spare_mask, popcount_size_t_generic)
6017 (popcount_size_t_msc, popcount_size_t_gcc)
3e0b94e7
DC
6018 (popcount_size_t)
6019 (bool_vector_binop_driver)
ffb3f67a 6020 (count_trailing_zero_bits, size_t_to_host_endian)
3e0b94e7
DC
6021 (Fbool_vector_exclusive_or)
6022 (Fbool_vector_union)
ffb3f67a
PE
6023 (Fbool_vector_intersection, Fbool_vector_set_difference)
6024 (Fbool_vector_subsetp, Fbool_vector_not)
3e0b94e7
DC
6025 (Fbool_vector_count_matches)
6026 (Fbool_vector_count_matches_at): New functions.
6027 (syms_of_data): Intern new symbol, functions.
6028 * alloc.c (bool_vector_payload_bytes): New function.
6029 (Fmake_bool_vector): Instead of calling Fmake_vector,
6030 which performs redundant initialization and argument checking,
6031 just call allocate_vector ourselves. Make sure we clear any
6032 terminating padding to zero.
ffb3f67a 6033 (vector_nbytes, sweep_vectors): Use bool_vector_payload_bytes
3e0b94e7
DC
6034 instead of open-coding the size calculation.
6035 (vroundup_ct): New macro.
6036 (vroundup): Assume argument >= 0; invoke vroundup_ct.
ffb3f67a 6037 * casetab.c (shuffle, set_identity): Change lint_assume to assume.
328a8179
SM
6038 * composite.c (composition_gstring_put_cache):
6039 Change lint_assume to assume.
3e0b94e7
DC
6040 * conf_post.h (assume): New macro.
6041 (lint_assume): Remove.
6042 * dispnew.c (update_frame_1): Change lint_assume to assume.
6043 * ftfont.c (ftfont_shape_by_flt): Change lint_assume
6044 to assume.
6045 * image.c (gif_load): Change lint_assume to assume.
6046 * lisp.h (eassert_and_assume): New macro.
6047 (Qbool_vector_p): Declare.
ffb3f67a
PE
6048 (CHECK_BOOL_VECTOR, ROUNDUP, BITS_PER_SIZE_T): New macros.
6049 (swap16, swap32, swap64): New inline functions.
a12bf61e 6050 * macfont.m (macfont_shape): Change lint_assume to assume.
3e0b94e7
DC
6051 * ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
6052 * xsettings.c (parse_settings): Use new swap16 and
6053 swap32 from lisp.h instead of file-specific macros.
6054
76880d88
EZ
60552013-09-22 Eli Zaretskii <eliz@gnu.org>
6056
6057 * xdisp.c (try_window_id): Don't abort if cursor row could not be
6058 found (which can legitimately happen when the glyph row at the
6059 window start is disabled in the current_matrix. (Bug#15365)
6060
c6cfd910
PE
60612013-09-22 Paul Eggert <eggert@cs.ucla.edu>
6062
6063 Fix syntax.h bug introduced by recent INLINE change.
6064 syntax.h defined an extern inline function SYNTAX_ENTRY that was
6065 conditionally compiled one way in some modules, and a different
6066 way in others. This doesn't work with extern inline functions,
6067 which must have the same definition in all modules, because the
6068 defining code might be shared across modules, depending on the
6069 implementation. Symptoms reported by Martin Rudalics in:
6070 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00414.html
6071 * regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove.
6072 (SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros,
6073 overriding the corresponding functions in syntax.h.
6074 * syntax.h (syntax_property_entry, syntax_property_with_flags)
6075 (syntax_property): New inline functions.
6076 (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX):
6077 Rewrite in terms of these new functions.
6078
b3f1d119
EZ
60792013-09-21 Eli Zaretskii <eliz@gnu.org>
6080
6081 * dired.c (directory_files_internal): Use multibyte_chars_in_text,
6082 not chars_in_text, whose result depends on the multibyteness of
6083 the current buffer. (Bug#15426)
6084
00382e8b
PE
60852013-09-20 Paul Eggert <eggert@cs.ucla.edu>
6086
e3b29769
PE
6087 Port recent change to hosts where pointers aren't 'long'.
6088 * xterm.c (x_send_scroll_bar_event, x_scroll_bar_to_input_event):
6089 Don't assume that pointers are the same width as 'long'.
6090 Add a compile-time check that a pointer fits into two X slots.
6091
00382e8b
PE
6092 A simpler, centralized INLINE.
6093 * conf_post.h (INLINE): Define only if not already defined.
6094 This allows us to use a single INLINE, defined by one file
6095 per executable.
6096 * emacs.c (INLINE): Define it.
6097 Also, include category.h, charset.h, composite.h, dispextern.h,
6098 syntax.h, systime.h, so that their INLINE definitions are expanded
6099 properly for Emacs.
6100 * blockinput.h, keyboard.c (BLOCKINPUT_INLINE):
6101 * buffer.h, buffer.c (BUFFER_INLINE):
6102 * category.h, category.c (CATEGORY_INLINE):
6103 * character.h, character.c (CHARACTER_INLINE):
6104 * charset.h, charset.c (CHARSET_INLINE):
6105 * composite.h, composite.c (COMPOSITE_INLINE):
6106 * dispextern.h, dispnew.c (DISPEXTERN_INLINE):
6107 * frame.h, frame.c (FRAME_INLINE):
6108 * intervals.h, intervals.c (INTERVALS_INLINE):
6109 * keyboard.h, keyboard.c (KEYBOARD_INLINE):
6110 * lisp.h, alloc.c (LISP_INLINE):
6111 * process.h, process.c (PROCESS_INLINE):
6112 * syntax.h, syntax.c (SYNTAX_INLINE):
6113 * systime.h, sysdep.c (SYSTIME_INLINE):
a12bf61e 6114 * termhooks.h, terminal.c (TERMHOOKS_INLINE):
00382e8b
PE
6115 * window.h, window.c (WINDOW_INLINE):
6116 Remove. All uses replaced with INLINE.
6117
2b943ba6
DA
61182013-09-20 Dmitry Antipov <dmantipov@yandex.ru>
6119
6120 * xterm.c (handle_one_xevent): Revert part of 2013-09-17 change
6121 to avoid Bug#15398.
6122
13d9698a
EZ
61232013-09-19 Eli Zaretskii <eliz@gnu.org>
6124
6125 * w32reg.c (w32_get_string_resource): Make the first 2 arguments
6126 'const char *' to avoid compiler warnings due to similar change in
6127 the prototype of x_get_string_resource.
6128
ced135eb
DA
61292013-09-19 Dmitry Antipov <dmantipov@yandex.ru>
6130
6131 * xterm.h (struct x_display_info): New members last_mouse_glyph_frame,
6132 last_mouse_scroll_bar, last_mouse_glyph and last_mouse_movement_time,
6133 going to replace static variables below. Adjust comments.
6134 * xterm.c (last_mouse_glyph, last_mouse_glyph_frame)
6135 (last_mouse_scroll_bar, last_mouse_movement_time): Remove.
6136 (note_mouse_movement, XTmouse_position, x_scroll_bar_note_movement)
6137 (x_scroll_bar_report_motion, handle_one_xevent, syms_of_xterm):
6138 Related users changed.
6139 * w32term.h (struct w32_display_info): New members last_mouse_glyph_frame,
6140 last_mouse_scroll_bar, last_mouse_scroll_bar_pos, last_mouse_glyph and
6141 last_mouse_movement_time, going to replace static variables below.
6142 Adjust comments.
6143 * w32term.c (last_mouse_glyph_frame, last_mouse_scroll_bar)
6144 (last_mouse_scroll_bar_pos, last_mouse_glyph, last_mouse_movement_time):
6145 Remove.
6146 (note_mouse_movement, w32_mouse_position, w32_scroll_bar_handle_click)
6147 (x_scroll_bar_report_motion, syms_of_w32term): Related users changed.
6148 * nsterm.h (struct ns_display_info): New members last_mouse_glyph,
6149 last_mouse_movement_time and last_mouse_scroll_bar, going to replace
6150 static variables below.
6151 * nsterm.m (last_mouse_glyph, last_mouse_movement_time)
6152 (last_mouse_scroll_bar): Remove.
6153 (note_mouse_movement, ns_mouse_position, mouseMoved, mouseEntered)
6154 (mouseExited): Related users changed.
6155
091f1e1f
DA
61562013-09-19 Dmitry Antipov <dmantipov@yandex.ru>
6157
6158 Do not use external array to process X scroll bar messages.
6159 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): Remove.
6160 (x_send_scroll_bar_event): Pack window pointer into two slots
6161 of XClientMessageEvent if we're 64-bit. Adjust comment.
6162 (x_scroll_bar_to_input_event): Unpack accordingly.
6163
582ed56c
DA
61642013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
6165
6166 Ifdef away recent changes which aren't relevant to NS port.
6167 * dispextern.h (x_mouse_grabbed, x_redo_mouse_highlight)
6168 [!HAVE_NS]: Declare as such.
6169 * frame.c (x_mouse_grabbed, x_redo_mouse_highlight)
6170 [!HAVE_NS]: Define as such.
6171
18da0d8a
DA
61722013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
6173
6174 * frame.c (x_redo_mouse_highlight): New function
6175 to factor out common code used in W32 and X ports.
6176 * dispextern.h (x_redo_mouse_highlight): Add prototype.
6177 * xterm.h (struct x_display_info):
6178 * w32term.h (struct w32_display_info):
6179 * nsterm.h (struct ns_display_info): New members
6180 last_mouse_motion_frame, last_mouse_motion_x and
6181 last_mouse_motion_y, going to replace static variables below.
6182 * xterm.c (last_mouse_motion_event, last_mouse_motion_frame)
6183 (redo_mouse_highlight): Remove.
6184 (note_mouse_movement, syms_of_xterm): Adjust user.
6185 (handle_one_xevent): Likewise. Use x_redo_mouse_highlight.
6186 * w32term.c (last_mouse_motion_event, last_mouse_motion_frame)
6187 (redo_mouse_highlight): Remove.
6188 (note_mouse_movement, syms_of_w32term): Adjust user.
6189 (w32_read_socket): Likewise. Use x_redo_mouse_highlight.
6190 * nsterm.m (last_mouse_motion_position, last_mouse_motion_frame):
6191 Remove.
6192 (note_mouse_movement, mouseMoved, syms_of_nsterm):
6193 * nsfns.m (compute_tip_xy): Adjust user.
6194
7a0c745a
DA
61952013-09-18 Dmitry Antipov <dmantipov@yandex.ru>
6196
6197 * frame.c (x_mouse_grabbed): New function.
6198 * dispextern.h (x_mouse_grabbed): Add prototype.
6199 (last_mouse_frame): Remove declaration.
6200 * xterm.h (struct x_display_info):
6201 * w32term.h (struct w32_display_info):
6202 * nsterm.h (struct ns_display_info): New member
6203 last_mouse_frame, going to replace...
6204 * xdisp.c (last_mouse_frame): ...global variable.
6205 (note_tool_bar_highlight):
6206 * w32term.c (w32_mouse_position, w32_read_socket):
6207 * xterm.c (XTmouse_position, handle_one_xevent):
6208 Use x_mouse_grabbed.
6209 * nsterm.m (ns_mouse_position, mouseDown): Adjust user.
6210
0791d107
DA
62112013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
6212
6213 * w32term.c (w32_read_socket): Avoid temporary
6214 variables in a call to x_real_positions.
6215 * xterm.c (handle_one_xevent): Likewise.
6216
2cd98812
DA
62172013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
6218
6219 * frame.h (x_set_bitmap_icon) [!HAVE_NS]: New function.
6220 (x_icon_type): Remove prototype.
6221 (x_bitmap_icon) [!HAVE_NS]: Declare as such.
6222 * frame.c (x_icon_type): Remove.
6223 * w32term.c (x_make_frame_visible, x_iconify_frame):
6224 * xterm.c (x_make_frame_visible, x_iconify_frame):
6225 Use x_set_bitmap_icon to factor out common code.
6226
a6c2ee1b
DA
62272013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
6228
6229 * dispextern.h (check_x_display_info, x_get_string_resource):
6230 Declare here just once and unify the latter.
6231 * frame.c (check_x_display_info, x_get_string_resource):
6232 * nsterm.h (check_x_display_info):
6233 * xrdb.c (x_get_string_resource):
6234 * xterm.h (check_x_display_info): Remove prototypes.
6235 * nsfns.m (x_get_string_resource): Likewise. Adjust definition.
6236 * w32reg.c (x_get_string_resource): Likewise.
6237 (w32_get_rdb_resource): Adjust user.
6238
baed3603
DA
62392013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
6240
6241 * xterm.h (struct x_display_info): New member
6242 x_pending_autoraise_frame, going to replace...
6243 * xterm.c (pending_autoraise_frame): ...static variable.
6244 (x_new_focus_frame, XTread_socket): Adjust users.
6245 * w32term.h (struct w32_display_info): New member
6246 w32_pending_autoraise_frame, going to replace...
6247 * w32term.c (pending_autoraise_frame): ...global variable.
6248 (x_new_focus_frame, w32_read_socket): Adjust users.
6249
90582f05
GM
62502013-09-17 Glenn Morris <rgm@gnu.org>
6251
6252 * xdisp.c (message_dolog): If we create *Messages*,
6253 switch it to messages-buffer-mode.
6254
b7ad2f74
PE
62552013-09-17 Paul Eggert <eggert@cs.ucla.edu>
6256
6257 Don't overuse 'const' in types of locals.
6258 * bidi.c (bidi_count_bytes):
6259 * gtkutil.c, gtkutil.h (xg_event_is_for_menubar)
6260 (xg_event_is_for_scrollbar):
6261 * xselect.c (x_handle_property_notify)
6262 (x_handle_selection_notify, x_handle_dnd_message):
6263 * xsettings.c, xsettings.h (xft_settings_event):
6264 * xterm.c (x_handle_net_wm_state, handle_one_event)
6265 (x_menubar_window_to_frame, x_detect_focus_change)
6266 (construct_mouse_click, note_mouse_movement)
6267 (x_scroll_bar_to_input_event, x_scroll_bar_expose)
6268 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
6269 (handle_one_xevent, x_handle_net_wm_state):
6270 * xterm.h (x_handle_property_notify, x_handle_selection_notify)
6271 (x_handle_dnd_message):
6272 Avoid unnecessary 'const', typically the second 'const' in
6273 'const foo * const arg', a 'const' that does not affect the API
6274 and doesn't significantly help the human reader.
6275
19452b86
DA
62762013-09-17 Dmitry Antipov <dmantipov@yandex.ru>
6277
6278 * image.c (fn_g_type_init) [WINDOWSNT]: Define and load
6279 only if Glib < 2.36.0.
6280 (fn_g_type_init) [!WINDOWSNT]: Define only if Glib < 2.36.0.
6281 * xsettings.c (init_gconf, init_gsettings): Do not check
6282 for g_type_init.
1893694e
DA
6283 * xterm.c (handle_one_xevent): Do not call to x_clear_area
6284 if GTK >= 2.7.0.
33b83dd7 6285 (toplevel) [USE_MOTIF]: Include xlwmenu.h to pacify GCC.
19452b86 6286
6434e343
JD
62872013-09-16 Jan Djärv <jan.h.d@swipnet.se>
6288
3f386383
JD
6289 * xsettings.c (init_gconf, init_gsettings): Check for Glib 2.36.0
6290 before calling g_type_init.
6291
6434e343
JD
6292 * font.c (syms_of_font): Move call to syms_of_(ns|mac)font ...
6293
6294 * nsterm.m (syms_of_nsterm): ... to here.
6295
83a119f8
DA
62962013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
6297
6298 * xterm.c (toolkit_scroll_bar_interaction): Use bool for boolean.
6299 (ignore_next_mouse_click_timeout): Use Time as X does.
6300 (handle_one_xevent): Avoid cast and use unsigned comparison.
6301
61582e6a
DA
63022013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
6303
6304 Do not copy X event in handle_one_xevent except KeyPress case.
6305 Wnen XEvent is processed, it is unlikely to be changed except
6306 KeyPress case, so we can avoid copying and use const pointer to
6307 const data to make sure that an event is not changed elsewhere.
6308 * xterm.c (handle_one_xevent): Change 2nd arg to 'const XEvent *
6309 const' and do not create local copy except for the KeyPress event.
6310 Use casts to avoid a few glitches. Adjust formatting. Add comments.
6311 (SET_SAVED_BUTTON_EVENT): Remove and move the code to the only user.
6312 (x_handle_net_wm_state, x_menubar_window_to_frame)
6313 (x_detect_focus_change, construct_mouse_click, note_mouse_movement)
6314 (x_scroll_bar_to_input_event, x_scroll_bar_expose)
6315 (x_scroll_bar_handle_click, x_scroll_bar_note_movement):
6316 * gtkutil.c (xg_event_is_for_menubar, xg_event_is_for_scrollbar):
6317 * xselect.c (x_handle_property_notify, x_handle_selection_notify)
6318 (x_handle_dnd_message):
6319 * xsettings.c (xft_settings_event):
6320 Use 'const XEvent * const' where appropriate.
a12bf61e 6321 * xterm.h, gtkutil.h, xsettings.h: Adjust related prototypes.
61582e6a 6322
f8eb1572
DA
63232013-09-16 Dmitry Antipov <dmantipov@yandex.ru>
6324
6325 Fix X event waiting to handle multiple frames.
6326 * frame.h (struct frame) [HAVE_X_WINDOWS]: New member wait_event_type.
6327 * xterm.c (pending_event_wait): Remove. Adjust users.
6328 (x_detect_focus_change): Pass frame arg.
6329 (handle_one_xevent): Find related frame early and clear per-frame
6330 wait_event_type only if this is an event for the relevant frame.
6331 (x_wait_for_event): Use per-frame wait_event_type.
6332
3fa2054e
JD
63332013-09-15 Jan Djärv <jan.h.d@swipnet.se>
6334
745d3809 6335 * nsfns.m (Fx_create_frame): Fix font driver registration for
a6c4680a 6336 GNUstep.
745d3809
JD
6337
6338 * font.c (syms_of_font): Check MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
6339 for syms_of_macfont.
6340
3fa2054e
JD
6341 * nsterm.m: Include macfont.h.
6342 (ns_tmp_flags, ns_tmp_font): Remove.
6343 (ns_compute_glyph_string_overhangs): Check for driver Qns.
6344 (ns_draw_glyph_string): Use local variables instead of ns_tmp_flags,
6345 ns_tmp_font. Call ns_draw_text_decoration here instead of nsfont.m.
6346 (changeFont:): Fix code style. Check for font driver type when
6347 getiing font.
6348
6349 * nsterm.h (FONT_DESCENT, FONT_ASCENT): Define to (f)->ascent and
6350 (f)->descent.
6351
6352 * nsfont.m (ns_tmp_flags, ns_tmp_font): Remove.
6353 (nsfont_open): Set font driver type.
6354 Set font->ascent and font->descent. Figure out font instead of
6355 ns_tmp_font, and flags instead of ns_tmp_flags.
e9dc713d 6356 Fix indentation. Remove call to ns_draw_text_decoration,
3fa2054e
JD
6357 moved to nsterm.
6358
6359 * nsfns.m: Include macfont.h.
6360 (Fx_create_frame): Register macfont driver, make a better default font.
6361 (Fns_popup_font_panel): Get font from macfont driver, if used.
6362
a12bf61e 6363 * macfont.m, macfont.h, macuvs.h: New files.
3fa2054e
JD
6364
6365 * font.h: Declare syms_of_macfont.
6366
6367 * font.c (syms_of_font): Call syms_of_macfont.
6368
6369 * Makefile.in (NS_OBJ, SOME_MACHINE_OBJECTS): Add macfont.o.
6370
0eed0355
DA
63712013-09-15 Dmitry Antipov <dmantipov@yandex.ru>
6372
6373 Drop VERTICAL_SCROLL_BAR_WIDTH_TRIM. For X, it is zero since 1999,
6374 and it is always zero for others, so I assume that this is an ancient
6375 leftover which nobody will want to change any more.
6376 * xterm.h, w32term.h, nsterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Remove.
6377 (VERTICAL_SCROLL_BAR_INSIDE_WIDTH):
6378 * frame.c (x_set_scroll_bar_width):
6379 * w32fns.c (w32_createscrollbar):
6380 * w32term.c (w32_set_vertical_scroll_bar):
6381 * xfns.c (x_set_scroll_bar_default_width):
6382 * xterm.c (XTflash, x_scroll_bar_create, XTset_vertical_scroll_bar)
6383 (x_scroll_bar_expose): Related users changed.
6384
07013c68
DA
63852013-09-15 Dmitry Antipov <dmantipov@yandex.ru>
6386
6387 * xterm.h (FRAME_X_SCREEN_NUMBER): Add comment.
6388 (BLACK_PIX_DEFAULT, WHITE_PIX_DEFAULT): Use FRAME_X_SCREEN_NUMBER.
901049a6
DA
6389 (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET) [USE_X_TOOLKIT]:
6390 Define as such.
c7cc32f7
DA
6391 * frame.h (FRAME_SMALLEST_CHAR_WIDTH, FRAME_SMALLEST_FONT_HEIGHT):
6392 Define once here...
6393 * nsterm.h, w32term.h, xterm.h: ...and not here.
901049a6
DA
6394 * w32term.h (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
6395 Remove unused Xisms.
7f09455e
DA
6396 * xterm.c, xfns.c (toplevel): Remove #ifdef HAVE_X_WINDOWS because
6397 these modules are never compiled otherwise.
07013c68 6398
0df00f59
EZ
63992013-09-14 Eli Zaretskii <eliz@gnu.org>
6400
08a209bf 6401 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
0df00f59
EZ
6402 Doc fix. (Bug#15375)
6403
fcd42c11
DA
64042013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
6405
6406 Unify Fx_focus_frame between all ports.
6407 * frame.h (x_focus_frame): New prototype.
6408 * xfns.c (Fx_focus_frame): Remove.
6409 (syms_of_xfns): Do not defsubr it.
6410 (x_focus_frame): X implementation.
6411 * nsfns.m (Fx_focus_frame): Remove.
6412 (syms_of_nsfns): Do not defsubr it.
6413 (x_focus_frame): NS implementation.
6414 * w32term.c (Fx_focus_frame): Remove.
6415 (x_focus_on_frame): Rename to...
6416 (x_focus_frame): W32 implementation.
6417 * w32term.h (x_focus_on_frame): Remove prototype.
6418 * w32fns.c (Fx_focus_frame): Remove.
6419 (syms_of_w32fns): Do not defsubr it.
6420 * frame.c (Fx_focus_frame): Define here.
6421 (syms_of_frame): Defsubr here.
6422 * gtkutil.c (xg_tool_bar_callback): Use x_focus_frame.
6423
aad3612f
DA
64242013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
6425
6426 Unify FRAME_window_system_DISPLAY_INFO macros between all ports.
6427 All of them are replaced with FRAME_DISPLAY_INFO, defined in
6428 each port to reference the port-specific window system data.
6429 * msdos.h (FRAME_X_DISPLAY_INFO): Remove.
6430 (FRAME_DISPLAY_INFO): Define.
6431 * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
6432 (FRAME_DISPLAY_INFO): Define. Adjust users.
6433 * xterm.h (FRAME_X_DISPLAY_INFO): Remove.
6434 (FRAME_DISPLAY_INFO): Define. Adjust users.
6435 * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
6436 * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
6437 * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
6438 * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
6439 * xselect.c, xterm.c: All related users changed.
6440
9a650e62
DA
64412013-09-13 Dmitry Antipov <dmantipov@yandex.ru>
6442
6443 * xterm.h (x_window_to_frame, x_any_window_to_frame)
6444 (x_menubar_window_to_frame): Remove prototypes.
6445 * xfns.c (x_window_to_frame, x_any_window_to_frame)
6446 (x_menubar_window_to_frame, x_top_window_to_frame):
6447 Move from here...
6448 * xterm.c (x_window_to_frame, x_any_window_to_frame)
6449 (x_menubar_window_to_frame, x_top_window_to_frame):
6450 ...to here and convert all but the last to static.
6451
347ae3e1
EZ
64522013-09-12 Eli Zaretskii <eliz@gnu.org>
6453
6454 * lisp.mk (lisp): Add w32-common-fns.elc.
6455
15c6d837
XF
64562013-09-12 Xue Fuqiao <xfq.free@gmail.com>
6457
6458 * charset.c (char_charset): Document an exception for char-charset.
6459
27e90f77
DA
64602013-09-12 Dmitry Antipov <dmantipov@yandex.ru>
6461
6462 * xterm.h (x_display_info): New field last_user_time...
6463 * xterm.c (toplevel): ...to replace static last_user_time.
6464 (handle_one_xevent, x_ewmh_activate_frame): Adjust users.
6465
8ffbc36b
DA
64662013-09-12 Dmitry Antipov <dmantipov@yandex.ru>
6467
6468 * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip
6469 scroll bar values to prevent thumb from disappear and update comment.
6470
5ec0337a
GM
64712013-09-11 Glenn Morris <rgm@gnu.org>
6472
6473 * emacs.c (usage_message): Possessive apostrophe tweak.
6474
fb55b9d1
DA
64752013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6476
8d2db8be
DA
6477 * nsterm.m (syms_of_nsterm): Use Qns.
6478 * w32fns.c (Fx_open_connection): Remove old '#if 0' code.
6479 * w32term.c (w32_create_terminal, syms_of_w32term): Use Qw32.
6480 * xfns.c (x_display_info_for_name, Fx_open_connection):
6481 Remove old '#if 0' code.
6482 (syms_of_xfns): Use Qx.
fb55b9d1
DA
6483 * termhooks.h (fullscreen_hook): Remove the leftover.
6484 (struct terminal): Fix typo in comment.
6485
927eec55
DA
64862013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6487
6488 Cleaning up a few X scroll bar bits.
6489 * termhooks.h (enum scroll_bar_part): Add scroll_bar_nowhere member.
6490 * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
6491 New member last_seen_part, going to replace...
6492 * xterm.c [USE_TOOLKIT_SCROLL_BARS]: ...global last_scroll_bar_part.
6493 (xt_action_hook) [USE_LUCID]: Adjust user.
6494 (xm_scroll_callback, xg_scroll_callback): Do not bloat with
6495 Lucid-specific scroll bar support.
6496 (xaw_jump_callback, xaw_scroll_callback): Prefer enum scroll_par_part
6497 to int and adjust to use last_seen_part member.
6498 (x_set_toolkit_scroll_bar_thumb) [USE_LUCID]: Adjust user.
6499 (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS && USE_LUCID]:
6500 Initialize last_seen_part.
6501
71b28baa
SM
65022013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
6503
6504 * insdel.c (insert_from_buffer_1): Don't mark buffer as modified when
6505 insert-buffer-substring an empty string.
6506
f5dacaae
PE
65072013-09-11 Paul Eggert <eggert@cs.ucla.edu>
6508
6509 * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out,
6510 avoiding a GCC warning.
6511
742516e0
DA
65122013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6513
6514 Ifdef away frame tool bar code when it is not really used.
6515 * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
6516 Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
6517 and minimize_tool_bar_window_p under the above.
6518 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
6519 (fset_tool_bar_window): Likewise.
6520 * dispnew.c (clear_current_matrices, clear_desired_matrices)
6521 (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
6522 (change_frame_size_1):
6523 * window.c (window_from_coordinates, Frecenter): Adjust users.
6524 * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
6525 code is not really used.
6526 * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
6527 (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
6528 (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
6529 [!USE_GTK && !HAVE_NS]: Define as such.
6530 (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
6531 (note_mouse_highlight, expose_frame):
6532 * xfns.c (x_set_tool_bar_lines):
6533 * xterm.c (handle_one_xevent): Adjust users.
6534
73f82c7e
PE
65352013-09-11 Paul Eggert <eggert@cs.ucla.edu>
6536
6537 Fix corruption with multiple emacsclient -t instances (Bug#15222).
6538 This bug was introduced by my 2013-08-26 patch, which incorrectly
6539 assumed that the terminfo implementation doesn't use termcap buffers.
6540 * term.c (init_tty) [TERMINFO]: Remove optimization, as
6541 these buffers apparently are used after all.
6542 * termchar.h (TERMCAP_BUFFER_SIZE) [TERMINFO]: Define here too.
6543 (struct tty_display_info): Define members termcap_term_buffer and
6544 termcap_strings_buffer even if TERMINFO.
6545
53482f41
DA
65462013-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6547
6548 Fix last change.
6549 * data.c (Feqlsign, Flss, Fgtr, Fleq, Fgeq): Add convenient
6550 'usage' docstring entry to pacify make-docfile.
6551
65522013-09-11 Barry O'Reilly <gundaetiapo@gmail.com>
6553
6554 Change comparison functions =, <, >, <=, >= to take many arguments.
6555 * data.c: Change comparison functions' interface and implementation.
6556 * lisp.h: Make arithcompare available for efficient two arg
6557 comparisons.
6558 * bytecode.c: Use arithcompare.
6559 * fileio.c: Use new interface.
6560
533f258f
SM
65612013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
6562
6563 * keyboard.c (read_char): Don't break immediate_echo (bug#15332).
6564
8c27f5ff
SM
65652013-09-10 Stefan Monnier <monnier@iro.umontreal.ca>
6566
6567 * eval.c (Feval): Document the new use of `lexical'.
6568
0750a308
DA
65692013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
6570
6571 Review and drop old frame resize hack.
6572 * frame.h (struct frame): Remove force_flush_display_p.
6573 * dispnew.c (update_frame): Adjust user and don't call
6574 flush_frame here. The comment has said that there was an issues
6575 with redisplaying fringes, but I don't see any differences with
6576 and without this hack. Hopefully we can continue without it.
6577 * xdisp.c (clear_garbaged_frames): Adjust user and do not clear
6578 current frame matrices twice if resized_p is set.
6579
83fc0554
DA
65802013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
6581
6582 Do not populate pure Xism x_sync to other ports.
6583 * frame.h (x_sync): Move under HAVE_X_WINDOWS.
6584 * frame.c (other_visible_frames) [HAVE_X_WINDOWS]: Use as such.
6585 * nsfns.m, w32xfns.c (x_sync): Remove no-op.
6586 * w32term.h (x_sync): Remove prototype.
6587
fd462129
DA
65882013-09-09 Dmitry Antipov <dmantipov@yandex.ru>
6589
6590 Cleanup frame flushing.
8c27f5ff
SM
6591 * dispextern.h (struct redisplay_interface):
6592 Drop flush_display_optional because flush_display is enough
fd462129
DA
6593 for X and flushing via RIF is just a no-op for others.
6594 * frame.h (flush_frame): New function.
6595 * dispnew.c (update_frame):
6596 * minibuf.c (read_minibuf):
6597 * xdisp.c (echo_area_display, redisplay_preserve_echo_area):
6598 Use it.
6599 * keyboard.c (detect_input_pending_run_timers): Do not flush
6600 all frames but selected one in redisplay_preserve_echo_area.
6601 * nsterm.m (ns_flush): Remove no-op.
6602 (ns_redisplay_interface): Adjust user.
6603 * w32term.h (x_flush): Remove no-op.
6604 (w32_redisplay_interface): Adjust user.
6605 * xterm.c (x_flush): Simplify because we do not flush all
6606 frames at once any more. Adjust comment.
6607 (x_redisplay_interface): Adjust user.
6608
4b73fc73
PE
66092013-09-07 Paul Eggert <eggert@cs.ucla.edu>
6610
6611 Port --without-x --enable-gcc-warnings to Fedora 19.
6612 * gfilenotify.c (globals_of_gfilenotify):
6613 Call g_type_init only if using an older glib version that needs it.
6614
77394d40
DA
66152013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
6616
6617 * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
6618 (last_glyphless_glyph_merged_face_id): Remove declarations.
6619 * dispextern.h (merge_glyphless_glyph_face): Add prototype.
6620 * xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
6621 (last_glyphless_glyph_merged_face_id): Now static.
6622 (merge_escape_glyph_face): New function, refactored from...
6623 (get_next_display_element): ...here.
6624 (merge_glyphless_glyph_face): New function, refactored from...
6625 (produce_glyphless_glyph): ...here...
6626 * term.c (produce_glyphless_glyph): ...and here.
6627
306d67bd
SM
66282013-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
6629
6630 * eval.c (eval_sub): Only call Ffunction if necessary.
6631
7f6c6450
DA
66322013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
6633
6634 Attempt to make redisplay more selective when changing cursor type.
6635 * frame.h (struct frame): New bitfield cursor_type_changed.
6636 * xdisp.c (cursor_type_changed): Remove.
6637 (try_cursor_movement, redisplay_window, try_window_id)
6638 (set_frame_cursor_types, try_window_reusing_current_matrix):
6639 Adjust to use per-frame bitfield.
6640 (redisplay_internal): Look for cursor type change on each visible
6641 frame and consider all frames if cursor type has been changed on
6642 the frame other than selected. If cursor type has been changed on
6643 selected frame only, do not use fast update.
6644
bd0443bb
DA
66452013-09-06 Dmitry Antipov <dmantipov@yandex.ru>
6646
6647 Attempt to make redisplay more selective when changing fonts.
6648 * frame.h (struct frame): New bitfield fonts_changed.
6649 * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
6650 (adjust_frame_glyphs): Add prototype.
6651 * dispnew.c (fonts_changed_p): Remove.
8bda01d3 6652 (adjust_glyphs): Remove because we do not
bd0443bb
DA
6653 adjust matrices on all frames at once any more.
6654 (adjust_frame_glyphs): Block and unblock input here.
6655 (adjust_glyph_matrix): Use fonts_changed.
6656 (change_frame_size_1): Use adjust_frame_glyphs.
6657 * font.c (font_open_entity): Use fonts_changed.
6658 * frame.c (set_menu_bar_lines, Fmake_terminal_frame):
6659 * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
6660 * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
6661 (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
6662 (shrink_mini_window, Fresize_mini_window_internal)
6663 (window_scroll_pixel_based, Fset_window_configuration)
6664 (apply_window_adjustment, Fset_window_vscroll):
6665 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
6666 Use adjust_frame_glyphs.
6667 * xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
6668 (try_window_reusing_current_matrix, try_window_id, display_line)
6669 (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
6670 (redisplay_internal): Consider fonts_changed and adjust frame
6671 matrices for each frame only if the frame is visible. If font
6672 has been changed on some frame during full redisplay, retry
6673 only visible frames where the font has been actually changed.
6674
b9695828
DA
66752013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
6676
6677 Cache current header and mode line height for each window.
6678 * window.h (struct window): New fields mode_line_height
6679 and header_line_height.
6680 * window.c (make_window): Initialize them.
6681 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
6682 (CURRENT_HEADER_LINE_HEIGHT): Use them. Adjust comment.
6683 (current_mode_line_height, current_header_line_height):
6684 Remove declaration.
6685 * xdisp.c (current_mode_line_height, current_header_line_height):
6686 Remove.
6687 (pos_visible_p, init_xdisp): Adjust user.
6688 (redisplay_window): Invalidate mode_line_height and
6689 header_line_height if current and desired matrices do not agree.
6690
66738305
DA
66912013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
6692
6693 * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER.
6694 * xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice.
6695
257b3b03
DA
66962013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
6697
6698 Make --without-x compatible with --enable-gcc-warnings.
6699 * font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
6700 * font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
6701 members under HAVE_WINDOW_SYSTEM.
6702 * keyboard.c (make_lispy_focus_out): Likewise.
6703 (record_menu_key): Move under HAVE_MENUS.
6704 * xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
6705 THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
6706 (syms_of_xdisp): Adjust user.
6707 (window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
6708 (start_hourglass, cancel_hourglass):
6709 * xfaces.c (toplevel): Likewise with PT_PER_INCH,
6710 clear_font_table_count, CLEAR_FONT_TABLE_COUNT
6711 and CLEAR_FONT_TABLE_NFONTS.
6712 (set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
6713 Declare only if HAVE_WINDOW_SYSTEM.
6714 (lface_same_font_attributes_p, clear_face_gcs): Define only
6715 if HAVE_WINDOW_SYSTEM.
6716
98b7f4bd
DA
67172013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
6718
6719 * frame.c (check_minibuf_window): Update 'frame' with frame pointer.
6720 * xterm.c (x_scroll_bar_handle_click) [!USE_TOOLKIT_SCROLL_BARS]:
6721 Don't pass C integer to XINT (tiny fix for 2013-09-03 change).
6722
a7e43722
SM
67232013-09-05 Stefan Monnier <monnier@iro.umontreal.ca>
6724
6725 * cmds.c (Fself_insert_command): Don't pass a non-integer to XINT.
6726
0c90b9ee
PE
67272013-09-04 Paul Eggert <eggert@cs.ucla.edu>
6728
6729 * alloc.c (make_event_array): First arg is now ptrdiff_t, not int.
6730 This fixes a type error on hosts where ptrdiff_t is wider than int.
6731
d99760fa
SM
67322013-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
6733
6629638e
SM
6734 * keyboard.c (read_key_sequence_vs): New function.
6735 (Fread_key_sequence_vector, Fread_key_sequence): Use it to factor out
6736 common code.
6737
d99760fa
SM
6738 * callint.c (Fcall_interactively): Always return a vector for 'K'.
6739
224e313d
PE
67402013-09-04 Paul Eggert <eggert@cs.ucla.edu>
6741
6742 Makefile improvements.
6743 * Makefile.in (config.status): Don't use double-colon rules, as
6744 they are not portable according to POSIX. Fix shell typo with `;
6745 I guess this rule has never been tested?
6746 (VCSWITNESS): New macro, to override any environment var.
6747
6d6ed1af
DA
67482013-09-04 Dmitry Antipov <dmantipov@yandex.ru>
6749
6750 * xterm.h (struct x_display_info): Do not track X connection
6751 fd separately because it is always available from Display.
6752 * xterm.c (x_term_init, x_delete_terminal, x_delete_display):
6753 Adjust users.
6754
bc923770
DA
67552013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
6756
6757 * buffer.c (drop_overlay):
6758 * fileio.c (restore_point_unwind): Prefer unchain_marker to
6759 Fset_marker (X, Qnil, ...) (which is the same but a bit slower).
6760
b1cf96de
DA
67612013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
6762
6763 * buffer.c (Fmake_overlay, Fmove_overlay):
6764 * intervals.c (set_point_from_marker):
6765 * print.c (PRINTPREPARE): Prefer signal_error
6766 to plain error and report unsuitable marker too.
6767
d1fc6c21
DA
67682013-09-03 Dmitry Antipov <dmantipov@yandex.ru>
6769
6770 * xterm.h (struct scroll_bar): Prefer int to Lisp_Object
6771 for 'dragging' member.
d1ae6a0b
DA
6772 (struct x_output): Remove set-but-unused leftovers
6773 'left_before_move' and 'top_before_move'.
d1fc6c21
DA
6774 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
6775 * xterm.c (xt_action_hook, xm_scroll_callback, xg_scroll_callback)
6776 (xg_end_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
6777 (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
6778 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
6779 (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
d1ae6a0b 6780 (x_scroll_bar_report_motion, x_set_offset): Related users changed.
ec5e7504 6781 * xfns.c, image.c (XLIB_ILLEGAL_ACCESS): No longer needed.
d1fc6c21 6782
0ce9f6de
JD
67832013-09-03 Jan Djärv <jan.h.d@swipnet.se>
6784
6785 * nsfont.m (INVALID_GLYPH): New define.
6786 (nsfont_encode_char): Use INVALID_GLYPH.
6787 (ns_uni_to_glyphs): Ditto, check for NSNullGlyph (Bug#15138).
6788
b594a96c
DA
67892013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
6790
6791 * xterm.c (x_last_mouse_movement_time): Revert last change.
6792 This code should use XDisplayMotionBufferSize to check display's
6793 motion history first, and there are few other issues as well.
6794 (x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent.
6795 (handle_one_xevent): Adjust user.
6796
8b098236
MR
67972013-09-02 Martin Rudalics <rudalics@gmx.at>
6798
9718b207
MR
6799 * dispnew.c (Flast_nonminibuf_frame): Move from here ...
6800 * frame.c (Flast_nonminibuf_frame): ... to here.
6801 (check_minibuf_window): Don't abort if no window was found
6802 (Bug#15247).
8b098236 6803
84e70bba
DA
68042013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
6805
6806 Use XGetMotionEvents to ask the last mouse motion time from X server.
6807 * xterm.c (X_MOTION_HISTORY): Default to 1.
6808 (x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function.
6809 (x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version.
6810 (note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]:
6811 Ifdef away legacy code.
6812 (XTmouse_position, x_scroll_bar_report_motion):
6813 Use x_last_mouse_movement_time.
fc85e20b
DA
6814 (handle_one_xevent): Use event.xunmap and not event.xmap when handling
6815 UnmapNotify event.
84e70bba 6816
1fccc530
DA
68172013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
6818
6819 * msdos.c (last_mouse_window): Move to...
6820 (dos_rawgetc): ...this function and adjust comment.
6821 * nsterm.m (last_window): Rename to last_mouse_window, move to...
6822 (mouseMoved): ...this function and adjust comment.
6823 * w32term.c (last_window): Likewise with...
6824 (w32_read_socket): ...this function.
6825 * xterm.c (last_window): Likewise with...
6826 (handle_one_xevent): ...this function.
6827
0ab10992
DA
68282013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
6829
b7da754d 6830 * window.h (Vmouse_window, Vmouse_event): Remove the leftovers.
0ab10992
DA
6831 * xterm.c (toplevel): Drop obsolete comment and move compose_status...
6832 (handle_one_xevent): ...to here.
6833 (STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op
6834 otherwise.
6835
0c7f856e
DA
68362013-09-02 Dmitry Antipov <dmantipov@yandex.ru>
6837
6838 * msdos.c (IT_set_terminal_window): Remove no-op.
6839 (initialize_msdos_display): Adjust terminal setup.
6840 * w32console.c (w32con_set_terminal_window): Remove no-op.
6841 (initialize_w32_display): Adjust terminal setup.
6842 * w32term.c (w32_set_terminal_window): Remove no-op.
6843 (w32_create_terminal): Adjust terminal setup.
6844 * xterm.c (XTset_terminal_window): Remove no-op.
6845 (x_create_terminal): Adjust terminal setup.
6846
a892a94c
DA
68472013-09-01 Dmitry Antipov <dmantipov@yandex.ru>
6848
6849 * nsterm.m (ns_set_terminal_modes, ns_reset_terminal_modes):
6850 Remove no-ops.
6851 (ns_create_terminal): Adjust terminal setup.
6852 * w32term.c (w32_set_terminal_modes, w32_reset_terminal_modes):
6853 Remove no-ops.
6854 (w32_create_terminal): Adjust terminal setup.
6855 * xterm.c (XTset_terminal_modes, XTreset_terminal_modes):
6856 Remove no-ops.
6857 (x_create_terminal): Adjust terminal setup.
6858
cf91889a
DA
68592013-09-01 Dmitry Antipov <dmantipov@yandex.ru>
6860
6861 * dispextern.h (SET_TEXT_POS_FROM_MARKER): Indent.
6862 (CLIP_TEXT_POS_FROM_MARKER): New macro.
6863 * dispnew.c (buffer_posn_from_coords):
6864 * window.c (Fwindow_end, displayed_window_lines):
6865 * xdisp.c (redisplay_mode_lines): Use it.
6866
5b0891df
JD
68672013-09-01 Jan Djärv <jan.h.d@swipnet.se>
6868
6869 * fontset.c (face_for_char): Check char in the current face font first
6870 if HAVE_NS (Bug#15138).
6871
0a357e98
MR
68722013-08-31 Martin Rudalics <rudalics@gmx.at>
6873
6874 * window.c (temp_output_buffer_show): Make sure window returned
6875 by display_buffer is live (Bug#15213).
6876
9d7693d7
DA
68772013-08-30 Dmitry Antipov <dmantipov@yandex.ru>
6878
6879 Minor cleanup to avoid forward declarations.
6880 * coding.h (struct ccl_spec): Remove forward declaration.
6881 * composite.h (toplevel): Include font.h.
6882 (struct composition_it, struct face, struct font_metrics):
6883 Remove forward declaration.
6884 * dispextern.h (struct image, struct atimer): Likewise.
6885 * emacsgtkfixed.h (struct frame): Likewise.
6886 * emacsgtkfixed.c (toplevel): Reorder headers and drop stdio.h.
6887 * font.h (struct font_driver, struct font, struct glyph_string)
6888 (struct face): Remove forward declaration.
6889 * fontset.h (struct face, struct font): Likewise.
6890 * frame.h (toplevel): Style cleanup.
6891 (enum output_method): Move to...
6892 * termhooks.h (enum output_method): ...here.
6893 (struct glyph, struct frame, struct ns_display_info)
6894 (struct x_display_info, struct w32_display_info):
6895 Remove forward declaration.
6896 * xterm.h (toplevel): Include termhooks.h.
6897 (struct font, struct window, struct glyph_matrix, struct frame)
6898 (struct input_event, struct face, struct image): Remove forward
6899 declaration.
6900 * gtkutil.h (struct _widget_value): Likewise.
6901 * keyboard.h (toplevel): Include termhooks.h.
6902 (struct input_event): Remove forward declaration.
6903
032f7451
DA
69042013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
6905
6906 * intervals.c (set_point_from_marker): New function.
6907 * editfns.c (Fgoto_char):
6908 * process.c (Finternal_default_process_filter):
6909 * window.c (select_window_1): Use it.
6910 * buffer.h (set_point_from_marker): Add prototype.
6911
3f940c5a
EZ
69122013-08-29 Eli Zaretskii <eliz@gnu.org>
6913
6914 * w32.c (term_winsock): Call release_listen_threads before calling
6915 WSACleanup.
6916 (_sys_wait_accept): Wait for accept event in a loop with a finite
6917 timeout, instead of waiting indefinitely. Will hopefully avoid
6918 hanging during exit because WSACleanup deadlocks waiting for the
6919 event object to be released. (Bug#14333)
6920
6921 * w32proc.c (release_listen_threads): New function, signals all
6922 the reader threads that listen for connections to stop waiting.
6923
6924 * w32.h (release_listen_threads): Add prototype.
6925
101ed2bb
DA
69262013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
6927
6928 * alloc.c (Fmake_marker, build_marker): Zero need_adjustment
6929 field of new marker (for sanity and safety).
20de2834
DA
6930 * lisp.h (XSETMARKER): Remove unused macro (it doesn't work
6931 anyway because XMISCTYPE is a function and can't be an lvalue).
101ed2bb 6932
1f5cf200
DA
69332013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
6934
6935 * xterm.c (x_clear_area): Lost 7th arg because it is always False.
35e951cd
JB
6936 (x_after_update_window_line, x_scroll_bar_create)
6937 (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
1f5cf200
DA
6938 (handle_one_xevent, x_clear_frame_area):
6939 * gtkutil.c (xg_clear_under_internal_border, xg_update_scrollbar_pos):
6940 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Adjust users.
6941 * xterm.h (x_clear_area): Adjust prototype.
6942
d2b36813
DA
69432013-08-29 Dmitry Antipov <dmantipov@yandex.ru>
6944
6945 Hook scanning and indentation functions to find_newline. This helps
6946 to avoid duplicated code and renders more respect to newline cache.
6947 * lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT.
6948 * cmds.c (Fforward_line):
6949 * indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p):
6950 Use find_newline and avoid unnecessary point movements.
6951 * search.c (scan_newline): Implement on top of find_newline.
6952
3ec7babc
SM
69532013-08-28 Stefan Monnier <monnier@iro.umontreal.ca>
6954
6955 * eval.c (Ffuncall): Fix handling of ((lambda ..) ..) in lexically
6956 scoped code (bug#11258).
6957
5ab473cd
JD
69582013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (tiny change)
6959
6960 * nsterm.m (last_window): New variable.
6961 (EV_TRAILER2): New macro.
6962 (EV_TRAILER): Call EV_TRAILER2.
e9dc713d 6963 (mouseMoved:): Add support for mouse-autoselect-window
5ab473cd
JD
6964 on nextstep (Bug#6888).
6965
78779650
AS
69662013-08-28 Andreas Schwab <schwab@suse.de>
6967
6968 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
6969 (SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MAKE_CHAR, BYTE8_TO_CHAR):
6970 Remove unused macro definitions.
6971 (CHARSET_RANGE_TABLE_BITS, EXTEND_RANGE_TABLE)
3ec7babc
SM
6972 (SET_RANGE_TABLE_WORK_AREA_BIT, SET_RANGE_TABLE_WORK_AREA):
6973 Only define if emacs.
78779650 6974
c3c4768d
DA
69752013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
6976
6977 Prefer enum glyph_row_area to int where appropriate.
6978 * dispextern.h (enum glyph_row_area): Add ANY_AREA member.
6979 Fix comment.
6980 (window_box, window_box_width, window_box_left, window_box_left_offset)
6981 (window_box_right, window_box_right_offset): Adjust prototypes.
6982 * xdisp.c (window_box, window_box_width, window_box_left)
6983 (window_box_left_offset, window_box_right, window_box_right_offset):
6984 Use enum glyph_row_area. Adjust users and tweak comment where needed.
6985 (window_box_edges): Likewise. Lost 2nd arg since it is always ANY_AREA.
6986 * nsterm.m (ns_clip_to_row):
6987 * w32term.c (w32_clip_to_row):
6988 * xterm.c (x_clip_to_row): Likewise.
6989
6bdcbfe1
DA
69902013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
6991
6992 * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
6993 (Fprevious_overlay_change): Fast path for buffer with no overlays.
6994
50b13cde
PE
69952013-08-28 Paul Eggert <eggert@cs.ucla.edu>
6996
6997 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
6998 for portability to hosts where /bin/sh has problems.
6999
f60e429a
DA
70002013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7001
7002 Redesign redisplay interface to drop global output_cursor.
7003 * dispextern.h (struct redisplay_interface): Remove cursor_to member.
7004 (toplevel): Remove declaration of output_cursor.
7005 (set_output_cursor, x_cursor_to): Remove prototype.
7006 * window.h (struct window): New member output_cursor.
7007 (output_cursor_to): New function to replace RIF member.
7008 * dispnew.c (redraw_overlapped_rows, update_marginal_area)
7009 (update_text_area, set_window_cursor_after_update): Use it.
7010 * xdisp.c (output_cursor, set_output_cursor, x_cursor_to): Remove.
7011 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
7012 * nsterm.m (ns_update_window_begin, ns_update_window_end):
7013 * w32term.c (x_update_window_begin, x_update_window_end):
7014 * xterm.c (x_update_window_begin, x_update_window_end):
7015 Adjust to use per-window output cursor.
7016
43aac990
PE
70172013-08-27 Paul Eggert <eggert@cs.ucla.edu>
7018
d486344e
PE
7019 Simplify SELECT_TYPE-related code.
7020 Like EMACS_TIME, this portability layer is no longer needed, since
7021 Emacs has been using fd_set as a portability layer for some time.
7022 * sysselect.h (FD_SETSIZE): Rename from MAXDESC. All uses changed.
7023 (SELECT_TYPE): Remove. All uses changed to fd_set.
7024 (fd_set) [!FD_SET]: New typedef.
7025
43aac990
PE
7026 Simplify EMACS_TIME-related code.
7027 This portability layer is no longer needed, since Emacs has been
7028 using struct timespec as a portability layer for some time.
7029 * atimer.h, buffer.h, dispextern.h, xgselect.h:
7030 Include <time.h> rather than "systime.h"; that's all that's needed now.
7031 * dispnew.c: Include <timespec.h> rather than "systime.h";
7032 that's all that's needed now.
7033 * systime.h (EMACS_TIME): Remove. All uses changed to struct timespec.
7034 (EMACS_TIME_RESOLUTION): Remove. All uses changed to
7035 TIMESPEC_RESOLUTION.
7036 (LOG10_EMACS_TIME_RESOLUTION): Remove. All uses changed to
7037 LOG10_TIMESPEC_RESOLUTION.
7038 (EMACS_SECS, emacs_secs_addr): Remove. All uses changed to tv_sec.
7039 (EMACS_NSECS): Remove. All uses changed to tv_nsec.
7040 (make_emacs_time): Remove. All used changed to make_timespec.
7041 (invalid_timespec): Rename from invalid_emacs_time. All uses changed.
7042 (current_timespec): Rename from current_emacs_time. All uses changed.
7043 (add_emacs_time): Remove. All uses changed to timespec_add.
7044 (sub_emacs_time): Remove. All uses change dot timespec_sub.
7045 (EMACS_TIME_SIGN): Remove. All uses changed to timespec_sign.
7046 (timespec_valid_p): Rename from EMACS_TIME_VALID_P. All uses changed.
7047 (EMACS_TIME_FROM_DOUBLE): Remove. All uses changed to dtotimespec.
7048 (EMACS_TIME_TO_DOUBLE): Remove. All uses changed to timespectod.
7049 (current_timespec): Rename from current_emacs_time. All uses changed.
7050 (EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove. All uses
7051 changed to timespec_cmp.
7052 * xgselect.c: Include <timespec.h>, since our .h files don't.
7053
d350e350
DA
70542013-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7055
7056 * xterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE:)
7057 * nsterm.h (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE):
7058 Remove the leftovers.
7059 * gtkutil.c (toplevel): Do not declare Qxft but include
7060 font.h to do so.
7061 * image.c (toplevel): Do not declare Vlibrary_cache because
7062 it's already done in lisp.h.
7063
9fed9729
DA
70642013-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7065
7066 * lisp.h (Mouse_HLInfo): Move from here...
7067 * dispextern.h (Mouse_HLInfo): ...to here and offload lisp.h.
7068 (reset_mouse_highlight): New function.
7069 * msdos.c (dos_set_window_size, IT_update_begin)
7070 (internal_terminal_init):
7071 * nsterm.m (ns_update_window_end, x_free_frame_resources)
7072 (ns_initialize_display_info):
7073 * w32console.c (initialize_w32_display):
7074 * w32term.c (x_update_window_end, x_free_frame_resources)
7075 (w32_initialize_display_info):
7076 * xterm.c (x_update_window_end, x_free_frame_resources, x_term_init):
7077 * window.c (Fdelete_other_windows_internal):
7078 * xdisp.c (clear_mouse_face, cancel_mouse_face): Use it.
7079 * termchar.h (toplevel):
7080 * xterm.h (toplevel): Include dispextern.h.
7081
f462f075
PE
70822013-08-26 Paul Eggert <eggert@cs.ucla.edu>
7083
7084 Fix minor problems found by static checking.
7085 * image.c (XGetPixel, XPutPixel) [HAVE_NS]: Now static.
7086 (expect): Avoid nested-if warning.
7087 (x_build_heuristic_mask) [HAVE_NS]: Avoid unused-var warning.
7088 * nsmenu.m (fillWithWidgetValue:): Avoid type warning.
7089 * nsterm.h, nsterm.m (ns_select):
7090 * xgselect.c, xgselect.h (xg_select):
7091 Adjust signature to better match pselect's.
7092 * nsterm.m (ns_select):
7093 Don't set *TIMEOUT, since pselect doesn't.
7094 * regex.c (whitespace_regexp): Now const_re_char *, to avoid
7095 diagnostic about assigning const char * to it.
7096 * xfaces.c (x_display_info) [HAVE_NS]: Remove; unused.
7097
068f9124
SM
70982013-08-26 Stefan Monnier <monnier@iro.umontreal.ca>
7099
7100 * lread.c (substitute_object_recurse): Handle hash-tables as well
7101 (bug#15190).
7102
f5adc984
PE
71032013-08-26 Paul Eggert <eggert@cs.ucla.edu>
7104
1fc8eb33
PE
7105 Fix unlikely core dump in init_tty, and simplify terminfo case.
7106 * term.c (init_tty) [TERMINFO]: Fix check for buffer overrun.
7107 The old version incorrectly dumped core if malloc returned a
7108 buffer containing only non-NUL bytes.
7109 (init_tty): Do not allocate or free termcap buffers; the
7110 struct does that for us now.
7111 * termchar.h (TERMCAP_BUFFER_SIZE) [!TERMINFO]: New constant.
7112 (struct tty_display_info): Define members termcap_term_buffer and
7113 termcap_strings_buffer only if !TERMINFO, since terminfo doesn't
7114 use them. Allocate them directly in struct rather than indirectly
7115 via a pointer, to simplify init_tty.
7116
f5adc984
PE
7117 * frame.c (check_minibuf_window): Initialize 'window' properly,
7118 so that Emacs reliably aborts later if 'window' is not initialized.
7119
efec3894
JD
71202013-08-26 Jan Djärv <jan.h.d@swipnet.se>
7121
7122 * gtkutil.c (xg_initialize): Set gtk-menu-bar-accel to "" instead
7123 of VoidSymbol (Bug#15154).
7124
e1d0341e
DA
71252013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
7126
7127 * lisp.h (Mouse_HLInfo): Drop set-but-unused members
7128 mouse_face_beg_y and mouse_face_end_y.
7129 * xdisp.c (note_tool_bar_highlight, mouse_face_from_buffer_pos)
7130 (mouse_face_from_string_pos, note_mode_line_or_margin_highlight):
7131 Adjust users and update comment where appropriate.
7132
bfff6445
MR
71332013-08-26 Martin Rudalics <rudalics@gmx.at>
7134
7135 * frame.c (check_minibuf_window): New function.
068f9124
SM
7136 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
7137 Call check_minibuf_window (Bug#15183).
bfff6445 7138
c80016b3
DA
71392013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
7140
7141 * window.h (struct window): Replace last_cursor with last_cursor_vpos
7142 because this is the only last cursor data we need to keep and consult.
7143 * window.c (replace_window, set_window_buffer, Fsplit_window_internal):
7144 * xdisp.c (mark_window_display_accurate_1, try_cursor_movement):
7145 Adjust users.
7146
de396731
DA
71472013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
7148
068f9124
SM
7149 Fix recovering from possible decompression error.
7150 Since insert_from_gap doesn't always move point, we can't use PT as
de396731 7151 the position where the partially decompressed data ends, and
447218dd 7152 should count how many bytes was produced so far.
de396731
DA
7153 * decompress.c (struct decompress_unwind_data): Add nbytes member.
7154 (unwind_decompress): Really delete partially uncompressed data.
7155 (Fzlib_decompress_region): Take decompressed data size into account.
7156
c76826d9
DA
71572013-08-26 Dmitry Antipov <dmantipov@yandex.ru>
7158
7159 * syntax.c (init_syntax_once): Adjust comment and do an early
7160 initialization of Qchar_table_extra_slots just once...
7161 * casetab.c (init_casetab_once):
7162 * category.c (init_category_once):
7163 * character.c (syms_of_character):
7164 * coding.c (syms_of_coding):
7165 * xdisp.c (syms_of_xdisp): ...and omit it here.
7166
b34454d0
EZ
71672013-08-24 Eli Zaretskii <eliz@gnu.org>
7168
11f20add
EZ
7169 * xdisp.c (get_next_display_element): Don't apply to characters
7170 from a display vector the logic of setting it->end_of_box_run_p
7171 suitable for characters from a buffer. (Bug#15175)
7172
b34454d0
EZ
7173 * w32.c (fdutimens): Call 'utime', which is implemented on w32.c
7174 to handle directories, rather than '_utime' which doesn't.
7175 (Bug#15176)
7176
6e1b469e
JD
71772013-08-24 Jan Djärv <jan.h.d@swipnet.se>
7178
7179 * gtkutil.c (x_wm_set_size_hint): Don't set hints when maximized
7180 or fullscreen (Bug#14627).
7181
9c05bccf
PE
71822013-08-24 Paul Eggert <eggert@cs.ucla.edu>
7183
7184 System-dependent integer overflow fixes.
7185 * process.c (Fset_process_window_size): Signal an error if
7186 the window size is outside the range supported by the lower level.
7187 * sysdep.c (set_window_size): Return negative on error,
7188 nonnegative on success, rather than -1, 0, 1 on not in system,
7189 failure, success. This is simpler. Caller changed.
7190 (serial_configure): Remove unnecessary initialization of local.
7191 (procfs_get_total_memory) [GNU_LINUX]: Don't assume system memory
7192 size fits in unsigned long; this isn't true on some 32-bit hosts.
7193 Avoid buffer overrun if some future version of /proc/meminfo has a
7194 variable name longer than 20 bytes.
7195 (system_process_attributes) [__FreeBSD__]:
7196 Don't assume hw.availpages fits in 'int'.
7197
c365c355
PE
71982013-08-23 Paul Eggert <eggert@cs.ucla.edu>
7199
7200 Don't let very long directory names overrun the stack.
7201 Fix some related minor problems involving "//", vfork.
7202 * callproc.c (encode_current_directory): New function.
7203 (call_process): Don't append "/"; not needed.
7204 * fileio.c (file_name_as_directory_slop): New constant.
7205 (file_name_as_directory): Allow SRC to be longer than SRCLEN;
7206 this can save the caller having to alloca.
7207 (Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
7208 Use SAFE_ALLOCA, not alloca.
7209 (directory_file_name, Fexpand_file_name): Leave leading "//"
7210 alone, since it can be special even on POSIX platforms.
7211 * callproc.c (call_process):
7212 * process.c (Fformat_network_address):
7213 * sysdep.c (sys_subshell):
7214 Use encode_current_directory rather than rolling our own.
7215 (create_process): No need to encode directory; caller does that now.
7216 * process.h (encode_current_directory): New decl.
7217 * sysdep.c (sys_subshell): Work even if vfork trashes saved_handlers.
7218 Rework to avoid 'goto xyzzy;'.
7219
6c6014d4
EZ
72202013-08-23 Eli Zaretskii <eliz@gnu.org>
7221
7222 * xdisp.c (handle_face_prop): If the default face was remapped use
7223 the remapped face for strings from prefix properties. (Bug#15155)
7224
9997ec56
DA
72252013-08-23 Dmitry Antipov <dmantipov@yandex.ru>
7226
7227 Minor cleanup for redisplay interface and few related functions.
7228 * frame.h (enum text_cursor_kinds): Move from here...
7229 * dispextern.h (enum text_cursor_kinds): ...to here.
7230 (toplevel): Drop unnecessary declarations.
7231 (struct redisplay_interface): Use bool and enum text_cursor_kinds
7232 in update_window_end_hook and draw_window_cursor functions.
7233 (display_and_set_cursor, x_update_cursor): Adjust prototypes.
7234 * nsterm.m (ns_update_window_end, ns_draw_window_cursor):
ffb3f67a 7235 * w32term.c (x_update_window_end, w32_draw_window_cursor):
9997ec56
DA
7236 * xterm.c (x_update_window_end, x_draw_window_cursor):
7237 * xdisp.c (display_and_set_cursor, update_window_cursor)
7238 (update_cursor_in_window_tree, x_update_cursor): Use bool and
7239 enum text_cursor_kinds where appropriate.
7240
7f780da6
DA
72412013-08-23 Dmitry Antipov <dmantipov@yandex.ru>
7242
7243 Redesign redisplay interface to drop updated_row and updated_area.
7244 * dispextern.h (updated_row, updated_area): Remove declaration.
7245 (struct redisplay_interface): Pass glyph row and row area parameters
7246 to write_glyphs, insert_glyphs and clear_end_of_line functions.
7247 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
7248 Adjust prototypes.
7249 * dispnew.c (updated_row, updated_area): Remove.
7250 (redraw_overlapped_rows, update_window_line): Adjust user.
7251 (update_marginal_area, update_text_area): Likewise. Pass updated row
7252 as a parameter. Prefer enum glyph_row_area to int where appropriate.
7253 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
7254 Adjust users.
7255
26495794
PE
72562013-08-22 Paul Eggert <eggert@cs.ucla.edu>
7257
7258 * process.c (flush_pending_output): Remove stub.
7259 All uses removed.
7260
4a88129a
PE
72612013-08-21 Paul Eggert <eggert@cs.ucla.edu>
7262
7263 * callproc.c: Fix race that killed background processes (Bug#15144).
7264 (call_process): New arg TEMPFILE_INDEX. Callers changed.
7265 Record deleted process-id in critical section, not afterwards.
7266 Don't mistakenly kill process created by a call-process invocation
7267 that discards output and does not wait.
7268
0c5307b0
DA
72692013-08-21 Dmitry Antipov <dmantipov@yandex.ru>
7270
7271 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE
7272 and GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES.
7273 * alloc.c (toplevel): Remove unnecessary nested #if...#endif.
7274 (mark_maybe_object) [!GC_MARK_STACK]: Define to emacs_abort
7275 to shut up compiler in mark_object.
7276 (dump_zombies): Convert to global and add EXTERNALLY_VISIBLE.
7277
0d7c1e66
PE
72782013-08-21 Paul Eggert <eggert@cs.ucla.edu>
7279
7280 * process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag.
7281 We can't portably rely on PTY_OPEN doing that, even if
7282 it calls posix_openpt with O_CLOEXEC.
7283
3f246b65
KH
72842013-08-20 Kenichi Handa <handa@gnu.org>
7285
7286 * character.c (string_char): Improve commentary.
7287
8c2f38aa
PE
72882013-08-20 Paul Eggert <eggert@cs.ucla.edu>
7289
7290 * image.c (SIGNATURE_DIGESTSIZE): Remove.
7291 (struct animation_cache): Make signature a flexible array member.
7292 All uses changed. This is a tad slower but may insulate us better
7293 from future changes to ImageMagick.
7294
bb566cea
PE
72952013-08-19 Paul Eggert <eggert@cs.ucla.edu>
7296
7297 * image.c: Shrink memory needed for animation cache.
7298 (SIGNATURE_DIGESTSIZE): New constant.
7299 (struct animation_cache): Make 'signature' a fixed size array of bytes.
7300 (imagemagick_create_cache): Copy the signature. This saves
7301 several KB of memory that ImageMagick wastes per signature.
7302 Don't bother updating the update_time, as the caller does that now.
7303 (imagemagick_prune_animation_cache): Don't destroy the signature, as
7304 it's a fixed size struct member now.
7305 (imagemagick_get_animation_cache): Always destroy the signature,
7306 as it's now imagemagick_create_cache's responsibility to copy it.
7307 Avoid duplicate calls to strcmp and to imagemagick_create_cache,
7308 and use memcmp rather than strcmp.
7309 eassert that ImageMagick returns a signature of the specified length.
7310
6da26928
LMI
73112013-08-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
7312
7313 * image.c (imagemagick_get_animation_cache): Don't segfault on
7314 each invocation.
453f4022
LMI
7315 (imagemagick_get_animation_cache): Revert to previous definition
7316 so that it actually works. But keep the memory leak fix.
7317 (imagemagick_get_animation_cache): Fix memory leak.
6da26928 7318
22490125
PE
73192013-08-19 Paul Eggert <eggert@cs.ucla.edu>
7320
d0139df5
PE
7321 * image.c: Fix animation cache signature memory leak.
7322 Fix some other minor performance problems while we're at it.
7323 (imagemagick_create_cache): Clear just the members that
7324 need clearing. Don't set update_time, as caller does that now.
7325 (imagemagick_prune_animation_cache, imagemagick_get_animation_cache):
7326 Simplify by using pointer-to-pointer instead of a prev pointer.
7327 (imagemagick_prune_animation_cache): Use make_emacs_time rather
7328 than EMACS_TIME_FROM_DOUBLE, and DestroyString rather than free.
7329 (imagemagick_get_animation_cache): Don't xstrdup the image signature;
7330 it's already a copy. Free the signature probe unless it's cached.
7331
22490125
PE
7332 * process.c (handle_child_signal): Fix crash; deleted pid (Bug#15106).
7333 This was introduced by my 2013-08-12 fix for Bug#15035.
7334
deb31e75
DA
73352013-08-19 Dmitry Antipov <dmantipov@yandex.ru>
7336
7337 * image.c (imagemagick_create_cache, imagemagick_get_animation_cache)
7338 (imagemagick_prune_animation_cache): Now static.
7339
319a4d03
LMI
73402013-08-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
7341
7342 * image.c (imagemagick_get_animation_cache): Don't segfault when
7343 pruning all entries.
7344
f747d82e
KB
73452013-08-18 Ken Brown <kbrown@cornell.edu>
7346
7347 * sheap.c (STATIC_HEAP_SIZE): Adjust to current needs; use bigger
7348 static heap if ENABLE_CHECKING is defined.
7349 (max_bss_sbrk_ptr): New variable.
7350 (bss_sbrk): Use it.
7351 (report_sheap_usage): Report maximum static heap usage instead of
7352 ending static heap usage.
7353
d2c28fab
EZ
73542013-08-17 Eli Zaretskii <eliz@gnu.org>
7355
7356 * decompress.c (Fzlib_available_p) [WINDOWSNT]: Update the value
7357 of zlib_initialized according to the results of calling
7358 init_zlib_functions.
7359
274ff63f
LMI
73602013-08-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
7361
7362 * image.c: Implement an ImageMagick per-image cache.
8a6f875f 7363 (imagemagick_get_animation_cache): Fix a double-free error.
49ceb676
LMI
7364 (imagemagick_load_image): Remove the ping_wand code, which only
7365 apparently saved time on invalid animated images, and slowed down
7366 everything else. Optimise for the common case.
274ff63f 7367
2bede2ed
XF
73682013-08-16 Xue Fuqiao <xfq.free@gmail.com>
7369
70ff8240
XF
7370 * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
7371
de179a3e
XF
7372 * editfns.c (insert_before_markers): Mention overlay in the doc string.
7373
2bede2ed
XF
7374 * marker.c (set_marker): Remove documentation of undefined behavior.
7375
703dbeba
LMI
73762013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
7377
7378 * image.c (imagemagick_compute_animated_image): Animate correctly
7379 when sub-images are smaller than the main image.
1d18b1e6
LMI
7380 (imagemagick_compute_animated_image): Setting the iterator row to
7381 zero is apparently not allowed.
79670014
LMI
7382 (imagemagick_compute_animated_image): Allow images that say they
7383 have sub-images that are bigger than the main image, but just crop
7384 them.
703dbeba 7385
63216c5e
JD
73862013-08-15 Jan Djärv <jan.h.d@swipnet.se>
7387
7388 * nsmenu.m (menuWillOpen:): Fix preprocessor test (Bug#15001).
7389
a5b5f73f
LMI
73902013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
7391
7392 * image.c (imagemagick_compute_animated_image): Respect the GIF
7393 disposal methods.
7394
0fe73012
KB
73952013-08-15 Ken Brown <kbrown@cornell.edu>
7396
7397 * emacs.c (main): Update comment about G_SLICE_ALWAYS_MALLOC.
7398 * gmalloc.c (memalign) [CYGWIN]: Revert last change; it's not
7399 needed.
7400
691a357f
PE
74012013-08-15 Paul Eggert <eggert@cs.ucla.edu>
7402
7403 Fix minor problems found by static checking.
7404 * frame.c (delete_frame):
7405 * xdisp.c (next_element_from_display_vector):
7406 Avoid uninitialized local.
7407 * image.c (imagemagick_compute_animated_image): Port to C89.
7408 Prefer usual GNU indentation style for loops.
7409 Be more careful about bizarrely large sizes, by using ptrdiff_t
7410 instead of int.
7411
42fe2e88
DA
74122013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
7413
7414 Fix infinite frame selection loop (Bug#15025).
7415 * frame.c (delete_frame): Prefer fast ad-hoc loop to next_frame.
7416
d39a3da6
EZ
74172013-08-15 Eli Zaretskii <eliz@gnu.org>
7418
068f9124
SM
7419 * xdisp.c (compute_window_start_on_continuation_line):
7420 When WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines
d39a3da6
EZ
7421 to make sure we end up setting the window start at the leftmost
7422 visible character of the display line. This avoids funky
7423 horizontal shifting because the window start is not kept on the
7424 same position. (Bug#15090)
05426239
EZ
7425 (next_element_from_display_vector): Support 'box' face attribute
7426 in the face definitions of a display vector. (Bug#15099)
d39a3da6 7427
6e856b69
LMI
74282013-08-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
7429
7430 * image.c (imagemagick_compute_animated_image): Implement animated
7431 images (bug#14700).
995be755
LMI
7432 (imagemagick_compute_animated_image): Fix some compilation
7433 warnings. Implement a very simple cache to make the animation
7434 usable at all, but it should be replaced with a per-image cache.
6e856b69 7435
d5a1acfa
DA
74362013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
7437
7438 * lisp.h (FOR_EACH_ALIST_VALUE): New macro
7439 to do `for' loops over alist values.
7440 * buffer.h (FOR_EACH_BUFFER):
7441 * process.c (FOR_EACH_PROCESS): Use it.
7442 (handle_child_signal, status_notify, Fget_buffer_process)
7443 (kill_buffer_processes): Use FOR_EACH_PROCESS.
7444
9c253307
DA
74452013-08-15 Dmitry Antipov <dmantipov@yandex.ru>
7446
7447 * term.c (get_named_tty, create_tty_output, tty_free_frame_resources)
7448 (tty_free_frame_resources, delete_tty): Prefer eassert to emacs_abort.
7449 * image.c (make_image_cache): For struct image_cache, prefer xmalloc
7450 to xzalloc and so avoid redundant call to memset.
7451 * xterm.c (x_term_init): Avoid unnecessary initializations of dpyinfo
7452 members because it is allocated with xzalloc and so already zeroed.
7453
05e64f9f
KB
74542013-08-14 Ken Brown <kbrown@cornell.edu>
7455
7456 * gmalloc.c (memalign) [CYGWIN]: Rename to emacs_memalign
7457 (Bug#15094).
7458
5b71542d
DA
74592013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
7460
7461 Utility function and macro to copy Lisp string to C string.
7462 * lisp.h (xlispstrdupa): New macro.
7463 (xlispstrdup): New prototype.
7464 * alloc.c (xlispstrdup): New function.
7465 * callint.c (Fcall_interactively):
7466 * fileio.c (Ffile_name_directory, Fexpand_file_name)
7467 (Fsubstitute_in_file_name):
7468 * frame.c (Fmake_terminal_frame): Use xlispstrdupa.
7469 * image.c (x_create_bitmap_from_file):
7470 * w32term.c (w32_term_init):
7471 * xterm.c (x_term_init): Use xlispstrdup.
7472
71530c97
LMI
74732013-08-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
7474
4ce82fb8
LMI
7475 * image.c (imagemagick_load_image): Make animated pictures work.
7476 There's still some problems with background color settings, though
7477 (bug#14700).
7478
71530c97
LMI
7479 * decompress.c (unwind_decompress): Always restore point.
7480
7510a061
XF
74812013-08-14 Xue Fuqiao <xfq.free@gmail.com>
7482
7483 * marker.c (set_marker): Reformat documentation.
7484
01c3051f
PE
74852013-08-14 Paul Eggert <eggert@cs.ucla.edu>
7486
aab1fcdf
PE
7487 * xdisp.c (cursor_type_changed): Now static.
7488
01c3051f
PE
7489 * image.c (imagemagick_filename_hint): New arg HINT_BUFFER.
7490 Use changed. This avoids the need to call xmalloc and for the
7491 caller to call xfree, and avoids memory leaks in some situations.
7492
2084152a
DA
74932013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
7494
7495 * xdisp.c (adjust_window_ends): Move duplicated code to new function.
7496 (try_window, try_window_reusing_current_matrix, try_window_id): Use it.
94a4e898
DA
7497 (redisplay_window): If window_end_valid is cleared due to non-zero
7498 windows_or_buffers_changed, clear current_matrix_up_to_date_p and
7499 so do not call to try_cursor_movement for that window.
2084152a 7500
02455cb6
DA
75012013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
7502
7503 * window.h (struct window): Convert window_end_pos and
7504 window_end_vpos from Lisp_Object to ptrdiff_t and int, respectively.
7505 (wset_window_end_pos, wset_window_end_vpos): Remove.
7506 * dispnew.c (adjust_glyph_matrix):
7507 * window.c (Fwindow_end, replace_window, set_window_buffer)
7508 (make_window):
7509 * xdisp.c (check_window_end, move_it_to, redisplay_internal)
7510 (set_vertical_scroll_bar, redisplay_window, try_window)
7511 (try_window_reusing_current_matrix, find_first_unchanged_at_end_row)
7512 (try_window_id, decode_mode_spec, mouse_face_from_buffer_pos)
7513 (note_mouse_highlight): Adjust users.
7514 (try_cursor_movement): Likewise. Convert old precondition to eassert.
7515 Add comment.
7516
da5707e8
DA
75172013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
7518
7519 Fix --enable-gcc-warnings errors introduced in 2013-08-13 commit.
7520 * image.c (imagemagick_filename_hint): Use `const char *' and
7521 prefer SSDATA to SDATA to avoid warnings.
7522
25554267
DA
75232013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
7524
7525 Cleanup window fringes, margins and scroll bars adjustments.
7526 * window.c (set_window_fringes, set_window_margins)
7527 (set_window_scroll_bars, apply_window_adjustment): New functions.
7528 (set_window_buffer, Fset_window_margins, Fset_window_fringes)
7529 (Fset_window_scroll_bars): Use them.
7530
38a2c910
DA
75312013-08-14 Dmitry Antipov <dmantipov@yandex.ru>
7532
7533 * window.h (struct window): Convert scroll_bar_width
7534 from Lisp_Object to integer. Adjust comment.
7535 (WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS):
7536 Adjust users.
7537 * window.c (wset_scroll_bar_width): Remove.
7538 (make_window): Initialize scroll_bar_width.
7539 (Fsplit_window_internal): Use direct assignment.
7540 (Fset_window_configuration, save_window_save):
7541 Convert Lisp_Object to integer and back where appropriate.
7542 (Fset_window_scroll_bars): Adjust user. Return t if any scroll
7543 bar was actually changed, and mention this in docstring.
7544
2d065031
PE
75452013-08-13 Paul Eggert <eggert@cs.ucla.edu>
7546
7547 * decompress.c: Minor simplifications.
7548 (Fzlib_decompress_region): Don't bother verifying
7549 that avail_out <= UINT_MAX, as that was confusing.
7550 Mention the restriction in a comment instead.
7551 Prefer 'int' to 'ptrdiff_t' when 'int' is wide enough.
7552
a5bd5abb
JD
75532013-08-13 Jan Djärv <jan.h.d@swipnet.se>
7554
7555 * nsmenu.m (x_activate_menubar): Check for OSX >= 10.5
7556 (trackingNotification:): Call ns_check_menu_open only for OSX >= 10.5.
7557
66e7901a
LMI
75582013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
7559
7560 * image.c (imagemagick_filename_hint): Check for errors in the
7561 alist structure.
7562
2fa611b7
EZ
75632013-08-13 Eli Zaretskii <eliz@gnu.org>
7564
7565 * window.c (Fwindow_margins): Return nil when there's no marginal
7566 area, as per the documented API.
7567
7568 * w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not
7569 Fmake_vector, as scroll bar's struct members are not all Lisp
7570 objects now. This avoids crashes in GC.
7571
7572 * w32term.h (struct scroll_bar): Convert fringe_extended_p to a
7573 bool, so its address could be taken.
7574
8259030d
LMI
75752013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
7576
7577 * image.c (imagemagick_filename_hint): New function to possibly
7578 apply `image-content-type-suffixes'.
7579 (imagemagick_load_image): Use it.
7580
866c710e
EZ
75812013-08-13 Eli Zaretskii <eliz@gnu.org>
7582
7583 * decompress.c (Fzlib_decompress_region) [WINDOWSNT]: Return Qnil
7584 if loading zlib failed.
7585
f10490f0
JD
75862013-08-13 Jan Djärv <jan.h.d@swipnet.se>
7587
96311be7
JD
7588 * nsterm.m (ns_set_vertical_scroll_bar): Fix breakage intruduced by
7589 2013-08-13 checkin below. Change bool to BOOL, rule is:
7590 All Obj-C code uses BOOL, except for interfaces callable from C.
7591
f10490f0
JD
7592 * nsterm.h: Fix CGFloat for OSX 10.4 (Bug#15086).
7593
c8ae93b0
DA
75942013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
7595
7596 * window.h (WINDOW_FRINGE_EXTENDED_P): New macro.
7597 * nsterm.m (ns_set_vertical_scroll_bar): Use it. Use convenient
7598 bool instead of BOOL.
7599 * w32term.h (struct scroll_bar): Convert fringe_extended_p
7600 from Lisp_Object to bitfield. Adjust comment.
7601 * w32term.c (x_scroll_bar_create): Adjust user.
7602 Use WINDOW_FRINGE_EXTENDED_P and bool for boolean.
7603 * xterm.c (XTset_vertical_scroll_bar): Likewise.
7604 Use bool for boolean.
7605 * xterm.h (struct scroll_bar): Prefer commonly used `unsigned'
7606 to `unsigned int' when defining a bitfield.
7607
53b64418
PE
76082013-08-13 Paul Eggert <eggert@cs.ucla.edu>
7609
7610 * decompress.c (Fzlib_decompress_region): Try to clarify 'avail_out'.
7611
eeaf9bf3
DA
76122013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
7613
7614 * window.h (struct window): Convert left_margin_cols and
7615 right_margin_cols from Lisp_Objects to integers. Adjust comment.
7616 (WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS)
7617 (WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH):
7618 Adjust users.
7619 * dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int.
7620 Adjust comment.
7621 (showing_window_margins_p, update_window_line, update_frame_1):
7622 * fringe.c (draw_fringe_bitmap_1):
7623 * xdisp.c (window_box_width): Adjust users.
7624 * window.c (wset_left_margin_cols, wset_right_margin_cols): Remove.
7625 (adjust_window_margins, set_window_buffer, Fsplit_window_internal):
7626 Use direct assignment.
7627 (Fset_window_configuration, save_window_save, Fwindow_margins):
7628 Convert Lisp_Object to integer and back where appropriate.
7629 (Fset_window_margins): Adjust user. Return t if any margin
7630 was actually changed, and mention this in docstring.
7631
956720af
XF
76322013-08-13 Xue Fuqiao <xfq.free@gmail.com>
7633
f73f4ce6 7634 * syntax.c (forward_word):
956720af
XF
7635 * cmds.c (forward_char, backward_char): Mention the optional argument.
7636
9e37ee3b
DA
76372013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
7638
7639 * window.h (struct window): Convert left_fringe_width
7640 and right_fringe_width from Lisp_Objects to integers.
7641 Adjust comment.
7642 (WINDOW_FRINGE_COLS, WINDOW_LEFT_FRINGE_WIDTH)
7643 (WINDOW_RIGHT_FRINGE_WIDTH): Adjust users.
7644 * window.c (wset_left_fringe_width, wset_right_fringe_width):
7645 Remove.
7646 (make_window): Initialize new integer fields to -1.
7647 (Fsplit_window_internal): Use direct assignment.
068f9124
SM
7648 (Fset_window_configuration, save_window_save):
7649 Convert Lisp_Object to integer and back where appropriate.
9e37ee3b
DA
7650 (Fset_window_fringes): Adjust user. Return t if any fringe
7651 was actually changed, and mention this in docstring.
7652
e4375ca7
DA
76532013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
7654
7655 * keyboard.c (Fdiscard_input): Do not increment update_mode_lines.
9cda66e4
DA
7656 * nsfns.m (x_set_cursor_type):
7657 * w32fns.c (x_set_cursor_type):
e903c210 7658 * xfns.c (x_set_cursor_type): Do not set cursor_type_changed here...
9cda66e4 7659 * xdisp.c (set_frame_cursor_types): ...but in common code.
e4375ca7 7660
a45543bc
DA
76612013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
7662
7663 * font.c (clear_font_cache): New function, stripped from...
7664 (Fclear_font_cache): ...here, which now uses the function
7665 above. Adjust comment.
7666 * font.h (clear_font_cache): Add prototype.
7667 * xfaces.c (clear_face_cache): Use clear_font_cache.
7668
ae966a86
DA
76692013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
7670
7671 * window.c (Fset_window_start): Compare `w', not `window' because
7672 `w' might not be equal to `window' after call to decode_live_window.
7673
297a545b
PE
76742013-08-12 Paul Eggert <eggert@cs.ucla.edu>
7675
7676 * process.c (deactivate_process): Reset fds to -1 (Bug#15035).
7677 This fixes a problem introduced by the Bug#15035 patch
7678 when using GPG. Reported by Herbert J. Skuhra.
7679
aa942e2b
EZ
76802013-08-12 Eli Zaretskii <eliz@gnu.org>
7681
7682 * decompress.c <zlib_initialized> [WINDOWSNT]: New static variable.
7683 (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if
7684 not yet initialized.
7685
7699d09e
LMI
76862013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
7687
7688 * decompress.c (Fzlib_decompress_region): Support zlib
7689 decompression, too, and rename.
7690
1d238bc7
PE
76912013-08-12 Paul Eggert <eggert@cs.ucla.edu>
7692
7693 Minor zlib configuration tweaks.
7694 * decompress.c (fn_inflateInit2) [!WINDOWSNT]:
7695 Don't assume presence of fn_inflateInit2_ zlib internal function.
7696
8a44a184
LMI
76972013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
7698
7699 * decompress.c (Fzlib_decompress_gzipped_region): Rename to
7700 include the zlib prefix.
7701
594a4307
EZ
77022013-08-12 Eli Zaretskii <eliz@gnu.org>
7703
7704 * decompress.c [WINDOWSNT]: Include windows.h and w32.h.
7705 (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros. Use them to
7706 define static variables that are pointers to zlib functions to be
7707 dynamically loaded.
7708 (init_zlib_functions) [WINDOWSNT]: New function.
7709 (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2):
7710 New macros.
7711 (Fdecompress_gzipped_region, unwind_decompress): Use the fn_*
7712 macros instead of invoking the zlib functions directly.
068f9124
SM
7713 (syms_of_decompress): DEFSYM Qzlib_dll.
7714 Staticpro Szlib_available_p.
594a4307 7715
d2e113bc
DA
77162013-08-12 Dmitry Antipov <dmantipov@yandex.ru>
7717
7718 Avoid looping over all frame windows to freeze and unfreeze.
7719 * window.h (struct window): Drop frozen_window_start_p.
7720 (freeze_window_starts): Drop prototype.
7721 * frame.h (struct frame): New frozen_window_starts flag.
7722 (FRAME_WINDOWS_FROZEN): New macro.
7723 * window.c (freeze_window_start, freeze_window_starts):
7724 Remove.
7725 (select_window, replace_window): Adjust users.
7726 * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
7727 (window_frozen_p): New function.
7728 (redisplay_window): Use it.
7729
94fcd171
PE
77302013-08-12 Paul Eggert <eggert@cs.ucla.edu>
7731
7732 Fix some fd issues when running subprocesses (Bug#15035).
7733 Fix bugs that can leak files or file descriptors on errors.
7734 Don't unlink open temp files, as that's hard for users to diagnose
7735 when things go awry (e.g., temp disk exhausted).
7736 Don't bother to lock temp files. Check for invalid recursion.
7737 * callproc.c (synch_process_fd): Remove. All uses removed.
7738 (synch_process_tempfile): New var or macro.
7739 (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS):
7740 New constants.
7741 (record_kill_process): New arg, the temp name. All callers changed.
7742 (delete_temp_file): Now just a simple wrapper around unlink.
7743 (call_process_kill): New arg, the call_process_fd array.
7744 Close them all. Clear synch_process_pid. Remove the temp file,
7745 or arrange for it to be removed.
7746 (call_process_cleanup) [MSDOS]: Arg no longer contains file name;
7747 that's been moved to synch_process_tempfile. Caller changed.
7748 Do not remove the tempfile; that's now call_process_kill's
7749 responsibility.
7750 (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for
7751 call_process_kill; the caller now does that.
7752 (call_process_cleanup): Do not close the process fd; that's now
7753 call_process_kill's responsibility.
7754 (Fcall_process): Implement via new function call_process, which
7755 has most of the old body of Fcall_process, but with a different API.
7756 (call_process): New function that does not open or close filefd if
7757 it is nonnegative. Record which fds need to be closed, and let
7758 call_process_kill close (and remove the tempfile, on MSDOS) on error.
7759 Signal an error if invoked recursively (could be done via a hook).
7760 Simplify creation of the tempfile in the MSDOS case.
7761 Don't create the output file until after checking for the executable.
7762 Report any failure to open /dev/null.
7763 Don't open /dev/null for writing twice; once is enough.
7764 Don't create pipe if all output is being discarded or sent to file.
7765 Don't worry about setting up the coding system or reading from the
7766 pipe if all output is being discarded.
7767 Hoist fd_error local into top level, to lessen block nesting.
7768 Don't record deleted pid here; now done by Fcall_process_region.
7769 (Fcall_process) [MSDOS]: Report mktemp failure immediately,
7770 and note its success in synch_process_tempfile.
7771 Do not leak resources when child_setup fails.
7772 (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment
7773 to child_errno. Remove unnecessary close of fd0; it's close-on-exec.
7774 (create_temp_file): Now returns open fd, with an additional
7775 Lisp_Object * argument to return the name. All callers changed.
7776 Do not close the file; rewind it instead, and leave it open for
7777 the caller. Do not lock the temp file. Unwind-protect the file
7778 and the file-descriptor.
7779 (Fcall_process_region): If the input is /dev/null, unwind-protect it.
7780 If an asynchrounous process, record it here, not in call_process.
7781 (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile.
7782 * eval.c (set_unwind_protect): New function.
7783 * fileio.c (write_region): New function, generalized from the
7784 old Fwrite_region. Do not lock temp files.
7785 (Fwrite_region): Use it.
7786 * lisp.h (set_unwind_protect, write_region): New decls.
7787 * process.c: Include <verify.h>.
7788 (make_process): Mark fds as initially closed.
7789 (deleted_pid_list): Now a list of pid-filename pairs.
7790 All uses changed.
7791 (close_process_fd): New function.
7792 (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS)
7793 (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT):
7794 New constants. Verify that their number matches PROCESS_OPEN_FDS.
7795 (create_process, create_pty, Fmake_serial_process)
7796 (server_accept_connection): Record which fds need to be closed,
7797 and let deactivate_process close them.
7798 (Fmake_network_process): Do not discard the unwind-protect
7799 until it's safe to do so.
7800 (deactivate_process): Close the fds opened by create_process etc.
7801 (Fprocess_send_eof): Adjust to new way of recording open fds.
7802 Report an error if /dev/null can't be opened, instead of aborting.
7803 * process.h (PROCESS_OPEN_FDS): New constant.
7804 (struct Lisp_Process): New member open_fds.
7805 (record_kill_process, record_deleted_pid): Adjust signatures.
7806 (record_deleted_pid): Move decl here ...
7807 * syswait.h (record_deleted_pid): ... from here.
7808
d0e615c3
PE
78092013-08-11 Paul Eggert <eggert@cs.ucla.edu>
7810
7811 * decompress.c: Fix bugs with large buffers and weird inputs.
7812 Tune a bit. Reindent as per usual Emacs style.
7813 (BUFFER_SIZE): Remove.
7814 (Fdecompress_gzipped_region): Do not mishandle input buffers with
7815 more than UINT_MAX bytes. Decompress into the gap instead of into
7816 an auto buffer, as this should avoid copying. Return nil if
7817 'inflate' returns Z_NEED_DICT, as we have no dictionary. Do not
7818 set immediate_quit; we shouldn't trust zlib code that much.
7819
313546eb
LMI
78202013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
7821
99a32242
LMI
7822 * decompress.c (Fdecompress_gzipped_region): Respect all zlib
7823 errors, and really move the gap to where we want it.
7824
313546eb
LMI
7825 * lisp.h: Include decompress.c support.
7826
7827 * emacs.c (main): Include decompress.c support.
7828
7829 * Makefile.in: Include -lz if present.
7830
d2d699ac
JD
78312013-08-11 Jan Djärv <jan.h.d@swipnet.se>
7832
f90e3ebd
JD
7833 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
7834 (initWithTitle:): Initialize frame to 0.
7835 (fillWithWidgetValue:): Call fillWithWidgetValue:frame.
068f9124 7836 (fillWithWidgetValue:frame:): Rename from
f90e3ebd
JD
7837 fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
7838
7839 * nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
7840 fillWithWidgetValue:frame:
7841
423d3b3f
JD
7842 * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
7843 remove memory leak warnings.
7844
d2d699ac
JD
7845 * nsterm.m (menu_pending_title, ns_get_pending_menu_title): Remove.
7846 (ns_check_menu_open): Handle menu == nil. Remove assignment to
7847 menu_pending_title.
7848
7849 * nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:setDelegate.
7850 (x_activate_menubar): Update the whole menu.
7851 (trackingNotification:): Call ns_check_menu_open if tracking ends.
7852 (menuWillOpen:): Increment trackingMenu. For OSX <= 10.6, exit if
7853 current event is not NSSystemDefined (Bug#15001).
7854 Call ns_check_menu_open only if trackingMenu is 2.
7855 (menuDidClose:): New method, decrease trackingMenu.
7856 (fillWithWidgetValue:setDelegate:): New method.
7857 (fillWithWidgetValue:): Call the above.
7858
7859 * nsterm.h (EmacsMenu): Add fillWithWidgetValue:setDelegate:
7860
7d652d97
PE
78612013-08-11 Paul Eggert <eggert@cs.ucla.edu>
7862
7863 Omit some unnecessary casts.
7864 Many of these go back to the old pre-C89 days, when they may have
7865 been needed, but we've been assuming C89 or later for a while now.
7866 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
7867 (live_float_p, live_misc_p, live_vector_p):
7868 * buffer.c (compare_overlays, cmp_for_strings, mmap_find)
7869 (mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
7870 (defvar_per_buffer):
7871 * callint.c (Fcall_interactively):
7872 * doc.c (Fsubstitute_command_keys):
7873 * filelock.c (get_boot_time):
7874 * frame.c (xrdb_get_resource):
7875 * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
7876 (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
7877 (xg_get_file_name_from_selector, menuitem_destroy_callback)
7878 (menuitem_highlight_callback, menu_destroy_callback)
7879 (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
7880 (xg_tool_bar_callback, xg_get_tool_bar_widgets)
7881 (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
7882 (xg_tool_bar_help_callback, tb_size_cb):
7883 * image.c (xpm_alloc_color, png_read_from_memory)
7884 (png_read_from_file, png_load_body, our_memory_skip_input_data)
7885 (jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
7886 (syms_of_image):
7887 * keymap.c (describe_map):
7888 * nsfns.m (Fns_display_monitor_attributes_list):
7889 * nsmenu.m (process_dialog:):
7890 * nsterm.m (hold_event):
7891 * process.c (wait_reading_process_output):
7892 * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
7893 * scroll.c (do_direct_scrolling, scrolling_1):
7894 * termcap.c (tgetent):
7895 * window.c (check_window_containing, add_window_to_list)
7896 (freeze_window_starts):
7897 * xdisp.c (compare_overlay_entries, vmessage):
7898 * xfns.c (x_window, x_get_monitor_attributes_xinerama)
7899 (x_get_monitor_attributes_xrandr)
7900 (Fx_display_monitor_attributes_list, x_display_info_for_name)
7901 (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
7902 * xfont.c (xfont_match, xfont_open):
7903 * xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
7904 (menubar_selection_callback, menu_position_func)
7905 (popup_selection_callback, create_and_show_popup_menu)
7906 (dialog_selection_callback, create_and_show_dialog):
35e951cd 7907 * xrdb.c (x_get_string_resource)
7d652d97
PE
7908 (main) [TESTRM]:
7909 * xsmfns.c (x_session_check_input):
7910 * xterm.c (x_draw_glyphless_glyph_string_foreground)
7911 (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
7912 (xaw_jump_callback, xaw_scroll_callback):
7913 Omit unnecessary casts.
7914
9acc1074
PE
79152013-08-10 Paul Eggert <eggert@cs.ucla.edu>
7916
7917 Minor string-length refactoring.
7918 * alloc.c (xstrdup): Use memcpy, not strcpy, since the length's known.
7919 * frame.c (make_monitor_attribute_list):
7920 Prefer build_string to strlen + make_string.
7921
361c0eb8
JD
79222013-08-10 Jan Djärv <jan.h.d@swipnet.se>
7923
7924 * xterm.c (x_error_handler): Also ignore BadWindow for X_SetInputFocus,
7925 don't check minor_code (Bug#14417).
7926
14ba0822
EZ
79272013-08-09 Eli Zaretskii <eliz@gnu.org>
7928
7929 * xdisp.c (draw_glyphs): Don't compare row pointers, compare row
7930 vertical positions instead. This avoids calling MATRIX_ROW with
7931 row numbers that are possibly beyond valid limits. (Bug#15064)
7932
309f24d1
DA
79332013-08-09 Dmitry Antipov <dmantipov@yandex.ru>
7934
7935 Use xstrdup and build_unibyte_string where applicable.
7936 * alloc.c (xstrdup): Tiny cleanup. Add eassert.
7937 * xfns.c (x_window):
7938 * xrdb.c (x_get_customization_string):
7939 * xterm.c (xim_initialize):
7940 * w32fns.c (w32_window): Use xstrdup.
7941 (w32_display_monitor_attributes_list):
7942 * emacs.c (init_cmdargs):
7943 * keyboard.c (PUSH_C_STR):
7944 * nsfont.m (nsfont_open):
7945 * sysdep.c (system_process_attributes):
7946 * w32.c (system_process_attributes):
7947 * xdisp.c (message1, message1_nolog): Use build_unibyte_string.
7948
55902276
EZ
79492013-08-09 Eli Zaretskii <eliz@gnu.org>
7950
7951 * w32.c (PEXCEPTION_POINTERS, PEXCEPTION_RECORD, PCONTEXT): Define
7952 variables of these types so that GDB would know about them, as aid
7953 for debugging fatal exceptions. (Bug#15024) See also
7954 http://sourceware.org/ml/gdb/2013-08/msg00010.html for related
7955 discussions.
7956
10bf7f5a
JD
79572013-08-08 Jan Djärv <jan.h.d@swipnet.se>
7958
7959 * nsterm.m (ns_update_begin): Don't change clip path if it would be
7960 larger than the NSWindow (Bug#14934).
7961
65620264
DA
79622013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7963
7964 Redesign redisplay interface to drop global variable updated_window.
7965 Always pass currently updated window as a parameter to update routines.
7966 * dispextern.h (updated_window): Remove declaration.
7967 (struct redisplay_interface): Pass window parameter to
7968 write_glyphs, insert_glyphs, clear_end_of_line, cursor_to
7969 and after_update_window_hook.
7970 (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to):
7971 Adjust prototypes.
7972 * dispnew.c (updated_window): Remove.
7973 (redraw_overlapped_rows, update_marginal_area, update_text_area)
7974 (update_window_line): Adjust to match redisplay interface changes.
7975 * nsterm.m (ns_update_window_begin, ns_update_window_end)
7976 (ns_scroll_run, ns_after_update_window_line):
7977 * w32term.c (x_update_window_begin, x_update_window_end)
7978 (x_after_update_window_line, x_scroll_run):
7979 * xterm.c (x_update_window_begin, x_update_window_end)
7980 (x_after_update_window_line, x_scroll_run):
7981 * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
7982 Likewise. Adjust comments where appropriate.
7983 (x_cursor_to): Simplify because this is always called during window
7984 update (but install debugging check anyway).
7985 (expose_window): Check must_be_updated_p flag to see whether this
7986 function is called during window update.
7987
628fdc56
DA
79882013-08-08 Dmitry Antipov <dmantipov@yandex.ru>
7989
7990 Do not reset window modification event counters excessively.
7991 These leftovers and poor man's tricky methods to catch extra
7992 redisplay's attention are no longer needed.
7993 * frame.c (set_menu_bar_lines_1):
7994 * minibuf.c (read_minibuf_unwind):
7995 * window.c (Fset_window_start, set_window_buffer, window_resize_apply)
7996 (grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
7997 (window_scroll_line_based, Fset_window_configuration):
7998 * xdisp.c (redisplay_window): Do not reset last_modified and
7999 last_overlay_modified counters.
8000
8fd9c92e
JD
80012013-08-07 Jan Djärv <jan.h.d@swipnet.se>
8002
8003 * xselect.c (x_send_client_event): Set send_event and serial, memset
8004 data.l as it might be bigger than data.b. Use 24 bit mask to
8005 XSendEvent (Bug#15034).
8006
0ee18172
EZ
80072013-08-07 Eli Zaretskii <eliz@gnu.org>
8008
8009 * xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
8010 for TTY frames that are not the top frame on their console.
8011 (Bug#14616)
8012
16ddd1a6
MR
80132013-08-07 Martin Rudalics <rudalics@gmx.at>
8014
8015 * w32term.c (w32fullscreen_hook): Really maximize frame when
8016 asked for (Bug#14841).
8017
d2a95ffb
DA
80182013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8019
8020 Prefer selected_window to Fselected_window, likewise for frames.
8021 * buffer.c (Fbuffer_swap_text):
8022 * data.c (Fvariable_binding_locus):
8023 * window.c (run_window_configuration_change_hook): Adjust users.
8024 * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
8025 Use decode_live_frame.
8026
170da1ec
DA
80272013-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8028
8029 Be more careful if selected window shows the buffer other than current,
8030 use window_outdated only if this is not so. This change should also
8031 address some weird issues discussed in Bug#13012.
8032 * window.h (window_outdated): New prototype.
8033 * window.c (window_outdated): Now here. Convert from static and
8034 always assume window's buffer.
8035 (Fwindow_end, Fwindow_line_height): Use it.
8036 * xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
8037 and always assume window's buffer.
8038 (redisplay_window): Adjust user.
e5eefe9b 8039 (redisplay_internal): Call to reconsider_clip_changes once and
170da1ec
DA
8040 check whether mode line should be updated only if selected window
8041 shows current buffer.
8042 (run_window_scroll_functions): Use eassert for debugging check.
8043 (Fmove_point_visually, note_mouse_highlight): Use window_outdated.
8044
56b5d5b1
DA
80452013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8046
8047 * window.c (window_scroll, window_scroll_pixel_based)
8048 (window_scroll_line_based): Use bool for booleans.
8049
2878ba7e
PE
80502013-08-06 Paul Eggert <eggert@cs.ucla.edu>
8051
8052 * process.c: Fix minor off-by-one issues in descriptor counts.
8053 This shouldn't fix any real bugs, but it cleans up the code a bit.
8054 (max_process_desc, max_input_desc): -1, not 0, means none.
8055 All uses changed.
8056 (delete_input_desc): New function.
8057 (delete_write_fd, delete_keyboard_wait_descriptor): Use it.
8058 (deactivate_process): Scan backwards when recomuting max_process_desc;
8059 that should be faster.
8060 (init_process_emacs): Initialize max_input_desc.
8061
e30b79c1
DA
80622013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8063
8064 Use region cache to speedup bidi_find_paragraph_start.
8065 * buffer.h (struct buffer): New member bidi_paragraph_cache.
8066 Rename cache_long_line_scans to cache_long_scans.
8067 * buffer.c (bset_cache_long_line_scans): Rename to
8068 bset_cache_long_scans.
8069 (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer)
8070 (Fbuffer_swap_text, init_buffer_once): Take bidi_paragraph_cache
8071 into account.
8072 (syms_of_buffer): Rename cache-long-line-scans to
8073 cache-long-scans. Adjust docstring.
8074 * search.c (newline_cache_on_off):
8075 * indent.c (width_run_cache_on_off): Adjust users.
8076 * bidi.c (bidi_paragraph_cache_on_off): New function.
8077 (bidi_find_paragraph_start): Use bidi_paragraph_cache if needed.
068f9124
SM
8078 * insdel.c (prepare_to_modify_buffer):
8079 Invalidate bidi_paragraph_cache if enabled.
e30b79c1 8080
00012b86
DA
80812013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8082
8083 Invalidate region caches only if buffer text is going to be changed.
8084 * lisp.h (modify_region_1): Remove 3rd arg and rename to...
8085 (modify_text): ...new prototype.
8086 (prepare_to_modify_buffer_1): New prototype.
8087 * textprop.c (modify_region): Rename to...
8088 (modify_text_properties): ...new function.
8089 (add_text_properties_1, set_text_properties, Fremove_text_properties)
8090 (Fremove_list_of_text_properties): Adjust users.
8091 * insdel.c (modify_region_1): Remove 3rd arg and reimplement as...
8092 (modify_text): ...new function.
8093 (prepare_to_modify_buffer): Reimplement mostly as a wrapper for...
8094 (prepare_to_modify_buffer_1): ...new function.
8095 * casefiddle.c (casify_region):
8096 * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
8097 (Ftranspose_regions): Use modify_text.
8098
dc6c0eda
SM
80992013-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
8100
8101 * lisp.mk (lisp): Add nadvice.elc.
8102
8f3a2c26
DA
81032013-08-05 Dmitry Antipov <dmantipov@yandex.ru>
8104
8105 New macro to iterate over live buffers similar to frames.
8106 * buffer.h (FOR_EACH_LIVE_BUFFER): New macro.
8107 (Vbuffer_alist, Qpriority, Qbefore_string, Qafter_string):
8108 Declare buffer-related variables here to offload lisp.h.
8109 * buffer.c (Vbuffer_alist): Adjust comment.
8110 (Fget_file_buffer, get_truename_buffer, Fother_buffer)
8111 (other_buffer_safely):
8112 * data.c (store_symval_forwarding):
8113 * dispnew.c (Fframe_or_buffer_changed_p):
8114 * fileio.c (Fdo_auto_save):
8115 * filelock.c (unlock_all_files):
8116 * minibuf.c (read_minibuf): Use FOR_EACH_LIVE_BUFFER.
8117
e0fdb694
PE
81182013-08-04 Paul Eggert <eggert@cs.ucla.edu>
8119
8120 Fix some minor races in hosts lacking mkostemp (Bug#15015).
8121 * callproc.c (create_temp_file):
8122 * filelock.c (create_lock_file):
8123 Assume mkostemp, since it's now provided by Gnulib.
8124
63f5c6c2
EZ
81252013-08-04 Eli Zaretskii <eliz@gnu.org>
8126
8127 * w32.c (mkostemp): New function.
8128 (mktemp): Remove, no longer used. Most of the code reused in
8129 mkostemp. (Bug#15015)
484ab239 8130 (mktemp): Don't undef.
63f5c6c2 8131
f0b79313
DA
81322013-08-04 Dmitry Antipov <dmantipov@yandex.ru>
8133
8134 * dispnew.c (glyph_matrix_count, glyph_pool_count):
8135 Move under GLYPH_DEBUG and ENABLE_CHECKING.
8136 (new_glyph_matrix, free_glyph_matrix, new_glyph_pool)
8137 (free_glyph_pool, check_glyph_memory): Likewise for
8138 all users. Adjust comments where appropriate.
8139
98f638d6
PE
81402013-08-03 Paul Eggert <eggert@cs.ucla.edu>
8141
8142 * composite.h: Minor fixups.
8143 (composition_registered_p): Rename from COMPOSITION_REGISTERD_P
8144 to fix a misspelling, and change it to an inline function while
8145 we're at it (it need not be a macro). All uses changed.
8146 (composition_method, composition_valid_p):
8147 Rewrite to avoid assignments in if-conditions.
8148
75c59fb3
DA
81492013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
8150
8151 Do not use global Lisp_Object in composition macros.
8152 * composite.h (composition_temp): Remove declaration.
8153 (COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
8154 (composition_method, composition_valid_p): ...inline functions.
416a3e01 8155 (compose_region): Remove the leftover.
75c59fb3
DA
8156 * composite.c (composition_temp): Remove.
8157 (run_composition_function, update_compositions)
8158 (composition_compute_stop_pos, composition_adjust_point)
8159 (Ffind_composition_internal):
8160 * coding.c (handle_composition_annotation):
8161 * xdisp.c (handle_composition_prop, check_point_in_composition):
8162 Related users changed.
8163
a10c8269
DA
81642013-08-03 Dmitry Antipov <dmantipov@yandex.ru>
8165
8166 Drop FRAME_PTR typedef.
8167 * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
8168 * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
8169 * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
8170 * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
8171 * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
8172 * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
8173 * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
8174 All related users changed.
8175
a104f656
SM
81762013-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
8177
8178 * eval.c (default_toplevel_binding): New function.
8179 (Fdefvar): Use it.
8180 (unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification.
8181 (Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs.
8182 (syms_of_eval): Export them.
8183 * data.c (Fdefault_value): Micro cleanup.
8184 * term.c (init_tty): Use "false".
8185
4b5c9326
DA
81862013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
8187
8188 Fix X GC leak in GTK and raw (no toolkit) X ports.
8189 * xterm.c (x_free_frame_resources): If white and black relief
8190 GCs are allocated, always free them here.
8191 * xfns.c (x_make_gc): Omit redundant initialization.
8192 * widget.c (create_frame_gcs): Remove the leftover.
8193 (EmacsFrameDestroy): Do nothing because all GCs are now freed
8194 in x_free_frame_resources.
8195
b19aa636
JD
81962013-08-02 Jan Djärv <jan.h.d@swipnet.se>
8197
8198 * nsterm.m (windowWillResize:toSize:): Only change title if
8199 ! maximizing_resize && FULLSCREEN_NONE (Bug#15005). strdup title before
8200 modifying it.
8201 (viewDidEndLiveResize): New method.
8202
8203 * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
8204 inside NS_IMPL_COCOA.
8205
af1f7e06
DA
82062013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
8207
8208 * insdel.c (adjust_after_replace, replace_range, del_range_2):
8209 Do not check whether undo is enabled because record_insert and
8210 record_delete does that themselves.
8211
65b02bb9
DA
82122013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
8213
8214 * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
8215 member which is not really used any more.
8216 (FRAME_XIC_BASE_FONTNAME): Remove.
8217 * xfns.c (xic_free_fontset): Adjust user.
8218 * xmenu.c (mouse_position_for_popup, x_activate_menubar)
8219 (update_frame_menubar, set_frame_menubar, free_frame_menubar)
8220 (create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
8221 (xdialog_show): Use eassert for debugging check.
7ee0f047 8222 * w32term.c (x_unfocus_frame): Remove unused dummy function.
65b02bb9 8223
6318cde0
PE
82242013-08-01 Paul Eggert <eggert@cs.ucla.edu>
8225
8226 * fileio.c, fns.c (merge): Move extern decl from here ...
8227 * lisp.h (merge): ... to here.
8228
6c1a09ba
DA
82292013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8230
8231 Fix last font-related change.
8232 * w32font.h (w32font_list_internal, w32font_match_internal):
8233 Fix prototype.
35e951cd 8234 * w32uniscribe.c (uniscribe_list, uniscribe_match)
6c1a09ba
DA
8235 (uniscribe_list_family): Adjust to match font API change.
8236 MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
8237 at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html.
8238
f8c20208
DA
82392013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8240
8241 * frame.h (FRAME_MOUSE_UPDATE):
8242 * nsterm.m (ns_frame_up_to_date): Omit redundant check
8243 whether hlinfo->mouse_face_mouse_frame is non-NULL.
8244
fdb396e2
DA
82452013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8246
8247 Avoid redundant Lisp_Object <-> struct frame conversions in font API.
8248 * font.h (struct font_driver): Change list, match, and list_family
8249 functions to accept struct frame * as first arg.
068f9124
SM
8250 * font.c (font_score, font_compare, font_sort_entities):
8251 Remove prototypes.
35e951cd 8252 (font_sort_entities, font_list_entities, font_select_entity)
fdb396e2
DA
8253 (font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
8254 match font API change.
8255 * xfont.c (xfont_list, xfont_match, xfont_list_family):
8256 * ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
8257 * ftxfont.c (ftxfont_list, ftxfont_match):
8258 * xftfont.c (xftfont_list, xftfont_match):
8259 * nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
35e951cd 8260 * w32font.c (w32font_list, w32font_match, w32font_list)
fdb396e2
DA
8261 (w32font_list_internal, w32_font_match_internal): Likewise.
8262 * xfaces.c (Fx_family_fonts): Adjust user.
8263
52b8a085
DA
82642013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8265
8266 Do not use pure Xism x_wm_set_icon_position in non-X ports.
8267 * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
8268 only if HAVE_X_WINDOWS is in use.
8269 * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
8270 * nsterm.m (x_wm_set_icon_position): Remove no-op.
8271 * w32term.c (x_wm_set_icon_position): Likewise.
8272 * w32fns.c (x_icon): Adjust user.
8273
c791c18e
DA
82742013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
8275
8276 * xterm.c (last_mouse_press_frame): Remove the
8277 leftover which is not really used any more.
8278 (handle_one_xevent, syms_of_xterm): Adjust users.
1ca6cc28
DA
8279 (x_flush): Call XFlush once per each X display, not frame.
8280 This is better because this code always unconditionally skips
e9dc713d 8281 non-X frames in Vframe_list and issues the only XFlush if we
1ca6cc28 8282 have more than one X frame on the same X display.
2f935d86
DA
8283 (any_help_event_p, x_draw_glyph_string_background, x_display_ok):
8284 Use bool for booleans.
35e951cd 8285 (x_draw_glyph_string_background, cvt_string_to_pixel)
2f935d86
DA
8286 (cvt_pixel_dtor): Drop unnecessary prototypes.
8287 * xterm.h (x_display_ok): Adjust prototype.
c791c18e 8288
f435830e
DA
82892013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
8290
8291 Drop unnecessary functions that deals with frame pixel size.
8292 * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
8293 (x_pixel_height): Drop prototypes.
8294 * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
8295 (x_pixel_height): Drop implementations.
8296 * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
8297 which should be always valid for window frame.
8298 (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
8299 * w32menu.c (Fx_popup_dialog):
8300 * xmenu.c (Fx_popup_dialog): Likewise for both.
8301
84231434
DA
83022013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
8303
8304 * frame.c (Fmake_terminal_frame): Use store_in_alist to setup
8305 frame parameters and call to Fmodify_frame_parameters just once.
4c131798
DA
8306 (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
8307 (Fset_frame_size, Fset_frame_position): Use decode_live_frame
8308 and mention nil frame in docstring.
84231434 8309
959067a1
DA
83102013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
8311
8312 * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
8313 (x_figure_window_size): Likewise. Adjust to return long.
8314 (syms_of_frame): Do not DEFSYM Qterminal_live_p.
8315 (toplevel): Move Qterminal_live_p to...
8316 * terminal.c (toplevel): ...here, make it static, and...
8317 (syms_of_terminal): ...DEFSYM here.
8318 * frame.h (Qterminal_live_p): Remove declaration.
8319 (make_frame, x_figure_window_size): Adjust prototype.
8320 * nsfns.m (Fx_create_frame): Use long for window flags.
8321
f4b169ce
PE
83222013-07-30 Paul Eggert <eggert@cs.ucla.edu>
8323
8324 Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986).
8325 * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
8326 Do not assume that emacs_close (INT_MAX) is a no-op.
8327
bee6a2c7
DA
83282013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
8329
8330 * xfaces.c (make_face_cache): For struct face_cache, prefer
8331 xmalloc to xzalloc and so avoid redundant call to memset.
8332 (Finternal_set_lisp_face_attribute): Fix comment typo and style.
8333
d7e6881a
DA
83342013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
8335
8336 * fringe.c (draw_window_fringes, update_window_fringes)
8337 (compute_fringe_widths):
8338 * w32term.c (x_draw_glyph_string):
8339 * window.c (candidate_window_p, Frecenter):
8340 * xfaces.c (realize_basic_faces, realize_default_face)
8341 (Fbitmap_space_p, Finternal_set_lisp_face_attribute)
8342 (x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
8343 * xfns.c (x_set_cursor_color, xic_free_xfontset):
8344 * xmenu.c (Fx_menu_bar_open_internal):
8345 * xselect.c (x_reply_selection_request, Fx_get_atom_name):
8346 * xsettings.c (xft_settings_event):
8347 * xterm.c (x_draw_glyph_string, x_had_errors_p):
8348 Use bool for booleans. Adjust style and comments where
8349 appropriate.
8350 * dispextern.h (draw_window_fringes, update_window_fringes)
8351 (compute_fringe_widths):
8352 * xterm.h (x_had_errors_p): Adjust prototype.
8353
ec3058af
DA
83542013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
8355
8356 * frame.c (Fmodify_frame_parameters): Always check 2nd arg with
8357 CHECK_LIST. Rewrite the loop to avoid useless local variable.
8358
218e0637
DA
83592013-07-29 Dmitry Antipov <dmantipov@yandex.ru>
8360
8361 * fns.c (toplevel): Remove comment before Fsafe_length because
8362 it checks for QUIT.
8363
e560aba9
PE
83642013-07-28 Paul Eggert <eggert@cs.ucla.edu>
8365
8366 * frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970).
8367
2e5ce5de
EZ
83682013-07-28 Eli Zaretskii <eliz@gnu.org>
8369
8370 * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
8371 frame which got the message is still alive, before dereferencing
8372 its pointer. (Bug#14970)
8373
8374 * frame.c (delete_frame): Test "this" frame's minibuffer window to
8375 be a live window, before using it as such. (Bug#14970)
8376
e95da6d3
EZ
83772013-07-27 Eli Zaretskii <eliz@gnu.org>
8378
8379 * w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
8380 w32_detect_focus_change instead of doing part of its job by hand.
8381 This fixes the problem whereby FOCUS_OUT events were not sent to
8382 the event queue.
8383
a8f93651
EZ
83842013-07-26 Eli Zaretskii <eliz@gnu.org>
8385
fec92060
EZ
8386 * process.c (Fprocess_list): Doc fix.
8387
a8f93651
EZ
8388 * w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
8389 being re-exposed only if it didn't ask to become visible.
8390 <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
8391 was previously iconified. (Bug#14841)
8392 (x_iconify_frame): Mark the frame iconified.
8393
d5a7a9d9
PE
83942013-07-26 Paul Eggert <eggert@cs.ucla.edu>
8395
8396 Fix minor problems found by static checking.
8397 * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static.
8398 (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
8399
56ea7291
SM
84002013-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
8401
8402 * eval.c (set_specpdl_old_value): New function.
8403 (unbind_to): Minor simplification.
8404 (get_backtrace_frame): New function.
8405 (Fbacktrace_frame): Use it. Add `base' argument.
8406 (backtrace_eval_unrewind, Fbacktrace_eval): New functions.
8407 (syms_of_eval): Export backtrace-eval.
8408 * xterm.c (x_focus_changed): Simplify.
8409
9d611ffe
PE
84102013-07-25 Paul Eggert <eggert@cs.ucla.edu>
8411
8412 * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
8413
999c74e3
EZ
84142013-07-24 Eli Zaretskii <eliz@gnu.org>
8415
8416 * xdisp.c (redisplay_window): Instead of moving point out of
8417 scroll margin, reject the force_start method, and try scrolling
8418 instead. (Bug#14780)
8419
198fa217
KB
84202013-07-24 Ken Brown <kbrown@cornell.edu>
8421
8422 * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
8423 (Bug#14944).
8424
53840e55
PE
84252013-07-24 Paul Eggert <eggert@cs.ucla.edu>
8426
8427 * eval.c (Fprogn): Do not check that BODY is a proper list.
8428 This undoes the previous change. The check slows down the
8429 interpreter, and is not needed to prevent a crash. See
8430 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
8431
60967f56
GM
84322013-07-23 Glenn Morris <rgm@gnu.org>
8433
8434 * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
8435
9ca960e2
PE
84362013-07-23 Paul Eggert <eggert@cs.ucla.edu>
8437
a29c3e6d
PE
8438 Port to GNU/Linux systems with tinfo but not ncurses.
8439 * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
8440 to decide whether ncurses is being used. Without this change,
8441 GCC complains about tgetent not being declared, on a system
8442 that has tinfo installed but ncurses not installed.
8443
f274311c
PE
8444 * eval.c (Fprogn): Check that BODY is a proper list.
8445
16b0520a
PE
8446 Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
8447 * data.c (Fsetq_default):
8448 * eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
8449 (Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
8450 (Fcondition_case):
8451 Tune by taking advantage of the fact that ARGS is always a list
8452 when a function is declared to have UNEVALLED args.
8453
9ca960e2
PE
8454 * emacsgtkfixed.c: Port to GCC 4.6.
8455 GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7.
8456
afacaa1b
JB
84572013-07-23 Juanma Barranquero <lekktu@gmail.com>
8458
8459 * callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid
8460 here to silence compiler warnings.
8461
368a85a4
PE
84622013-07-22 Paul Eggert <eggert@cs.ucla.edu>
8463
8464 * sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame
8465 when including <sys/user.h>, to prevent Sparc/ARM machine/frame.h
8466 from messing up Emacs's 'struct frame' (Bug#14923).
8467
f4e891b5
PE
84682013-07-21 Paul Eggert <eggert@cs.ucla.edu>
8469
8470 * alloc.c (make_save_ptr_ptr): Define this function.
8471 It was inadvertently omitted. It's needed only if
8472 HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK).
8473
96c8b65e
JD
84742013-07-21 Jan Djärv <jan.h.d@swipnet.se>
8475
8476 * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
8477 frame have focus (Bug#14895).
8478
ee010797
PE
84792013-07-21 Paul Eggert <eggert@cs.ucla.edu>
8480
8481 Avoid vfork-related deadlock more cleanly.
8482 * callproc.c (child_setup): When the child's exec fails, output
8483 the program name, as that's more useful. Use O_NONBLOCK to avoid
8484 deadlock.
8485 * process.c (create_process_1): Remove; no longer needed.
8486 (create_process): Remove timer hack; no longer needed, now that
8487 the child avoids deadlock.
8488
f0398ec1 84892013-07-20 Glenn Morris <rgm@gnu.org>
8bfcc21a
GM
8490
8491 * image.c (Fimage_flush): Fix doc typo.
8492
b2a069c2
PE
84932013-07-20 Paul Eggert <eggert@cs.ucla.edu>
8494
6496aec9
PE
8495 Fix array bounds violation when pty allocation fails.
8496 * process.c (PTY_NAME_SIZE): New constant.
8497 (pty_name): Remove static variable; it's now auto.
8498 (allocate_pty): Define even if !HAVE_PTYS; that's simpler.
8499 Take pty_name as an arg rather than using a static variable.
8500 All callers changed.
8501 (create_process): Recover pty_flag from process, not from volatile local.
8502 (create_pty): Stay inside array even when pty allocation fails.
8503 (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
8504
b2a069c2
PE
8505 * lread.c (Fload): Avoid initialization only when lint checking.
8506 Mention that it's needed only for older GCCs.
8507
99107004
KH
85082013-07-20 Kenichi Handa <handa@gnu.org>
8509
8510 * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
8511 (decode_coding_iso_2022): Check the single-shift area. (Bug#8522)
8512
6b1b199d
AS
85132013-07-20 Andreas Schwab <schwab@linux-m68k.org>
8514
8515 * lread.c (Fload): Avoid uninitialized warning.
8516
4195afc3
PE
85172013-07-19 Paul Eggert <eggert@cs.ucla.edu>
8518
3f5bef16
PE
8519 Fix some minor file descriptor leaks and related glitches.
8520 * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
8521 (create_lock_file): Use write, not emacs_write.
8522 * image.c (slurp_file, png_load_body):
8523 * process.c (Fnetwork_interface_list, Fnetwork_interface_info)
8524 (server_accept_connection):
8525 Don't leak an fd on memory allocation failure.
8526 * image.c (slurp_file): Add a cheap heuristic for growing files.
8527 * xfaces.c (Fx_load_color_file): Block input around the fopen too,
8528 as that's what the other routines do. Maybe input need not be
8529 blocked at all, but it's better to be consistent.
8530 Avoid undefined behavior when strlen is zero.
8531
4195afc3
PE
8532 * alloc.c (staticpro): Avoid buffer overrun on repeated calls.
8533 (NSTATICS): Now a constant; doesn't need to be a macro.
8534
a1aeeffe
RS
85352013-07-19 Richard Stallman <rms@gnu.org>
8536
8537 * coding.c (decode_coding_utf_8): Add simple loop for fast
8538 processing of ASCII characters.
8539
63b34baa
PE
85402013-07-19 Paul Eggert <eggert@cs.ucla.edu>
8541
8542 * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization.
8543
621dd9ac
EZ
85442013-07-19 Eli Zaretskii <eliz@gnu.org>
8545
8546 * keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
8547 unportable 'struct x_display_info'.
8548 (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
8549 is a portable type.
8550
1396ac86
PE
85512013-07-19 Paul Eggert <eggert@cs.ucla.edu>
8552
ab9980cd
PE
8553 * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
8554 (procfs_ttyname): Don't use uninitialized storage if emacs_fopen
8555 or fscanf fails.
8556 (system_process_attributes): Prefer plain char to unsigned char
8557 when either will do. Clean up properly if interrupted or if
068f9124
SM
8558 memory allocations fail. Don't assume sscanf succeeds.
8559 Remove no-longer-needed workaround to stop GCC from whining.
8560 Read command-line once, instead of multiple times. Check read status a
ab9980cd
PE
8561 bit more carefully.
8562
1396ac86
PE
8563 Fix obscure porting bug with varargs functions.
8564 The code assumed that int is treated like ptrdiff_t in a vararg
8565 function, which is not a portable assumption. There was a similar
8566 -- though these days less likely -- porting problem with various
8567 assumptions that pointers of different types all smell the same as
8568 far as vararg functions is conserved. To make this problem less
8569 likely in the future, redo the API to use varargs functions.
8570 * alloc.c (make_save_value): Remove this vararg function.
8571 All uses changed to ...
8572 (make_save_int_int_int, make_save_obj_obj_obj_obj)
8573 (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
8574 New functions.
8575 (make_save_ptr): Rename from make_save_pointer, for consistency with
8576 the above. Define only on platforms that need it. All uses changed.
8577
4d19d194
PE
85782013-07-18 Paul Eggert <eggert@cs.ucla.edu>
8579
8580 * keyboard.c: Try to fix typos in previous change.
8581 (DISPLAY_LIST_INFO): New macro.
8582 (kbd_buffer_get_event): Do not access members that are not present
c7064f05 8583 in X11. Revert inadvertent change of "!=" to "=".
4d19d194 8584
945c5bb1
JB
85852013-07-18 Juanma Barranquero <lekktu@gmail.com>
8586
8587 * keyboard.c (kbd_buffer_get_event):
8588 * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
8589 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
8590
f4b1eb36
PE
85912013-07-18 Paul Eggert <eggert@cs.ucla.edu>
8592
5e679a2c
PE
8593 * filelock.c: Fix unlikely file descriptor leaks.
8594 (get_boot_time_1): Rework to avoid using emacs_open.
8595 This doesn't actually fix a leak, but is better anyway.
8596 (read_lock_data): Use read, not emacs_read.
8597
a8cd4836
PE
8598 * doc.c: Fix minor memory and file descriptor leaks.
8599 * doc.c (get_doc_string): Fix memory leak when doc file absent.
8600 (get_doc_string, Fsnarf_documentation):
8601 Fix file descriptor leak on error.
8602
ef30e638
PE
8603 * term.c: Fix minor fdopen-related file descriptor leaks.
8604 * term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
8605 (init_tty) [!DOS_NT]: Likewise. Also close fd if isatty (fd) fails.
8606
f4b1eb36
PE
8607 * charset.c: Fix file descriptor leaks and errno issues.
8608 Include <errno.h>.
8609 (load_charset_map_from_file): Don't leak file descriptor on error.
8610 Use plain record_xmalloc since the allocation is larger than
8611 MAX_ALLOCA; that's simpler here. Simplify test for exhaustion
8612 of entries.
8613 * eval.c (record_unwind_protect_nothing):
8614 * fileio.c (fclose_unwind):
8615 New functions.
8616 * lread.c (load_unwind): Remove. All uses replaced by fclose_unwind.
8617 The replacement doesn't block input, but that no longer seems
8618 necessary.
8619
b648c163
PE
86202013-07-17 Paul Eggert <eggert@cs.ucla.edu>
8621
a0931322
PE
8622 * lread.c: Fix file descriptor leaks and errno issues.
8623 (Fload): Close some races that leaked fds or streams when 'load'
8624 was interrupted.
8625 (Fload, openp): Report error number of last nontrivial failure to open.
8626 ENOENT counts as trivial.
8627 * eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
8628 New functions.
8629 * fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
8630 now that the function is always called with a nonnegative arg.
8631 * lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
8632 All uses replaced with ...
8633 (clear_unwind_protect, set_unwind_protect_ptr): New decls.
8634
b648c163
PE
8635 A few more minor file errno-reporting bugs.
8636 * callproc.c (Fcall_process):
8637 * doc.c (Fsnarf_documentation):
8638 * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
8639 * process.c (set_socket_option):
8640 Don't let a constructor trash errno.
8641 * doc.c: Include <errno.h>.
8642
b1dc4084
JB
86432013-07-16 Juanma Barranquero <lekktu@gmail.com>
8644
8645 * w32fns.c (unwind_create_tip_frame): Fix declaration.
8646
c43843aa
PE
86472013-07-16 Paul Eggert <eggert@cs.ucla.edu>
8648
50a30cce
PE
8649 Fix w32 bug with call-process-region (Bug#14885).
8650 * callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
8651 to Fcall_process when the input is empty. This simplifies the
8652 code a bit. It makes no difference on POSIXish platforms but
8653 apparently it fixes a bug on w32.
8654
44e18199 8655 Fix bug where insert-file-contents closes a file twice (Bug#14839).
41d48a42
PE
8656 * fileio.c (close_file_unwind): Don't close if FD is negative;
8657 this can happen when unwinding a zapped file descriptor.
8658 (Finsert_file_contents): Unwind-protect the fd before the point marker,
8659 in case Emacs runs out of memory between the two unwind-protects.
8660 Don't trash errno when closing FD.
8661 Zap the FD in the specpdl when closing it, instead of deferring
8662 the removal of the unwind-protect; this fixes a bug where a child
8663 function unwinds the stack past us.
8664
27e498e6
PE
8665 New unwind-protect flavors to better type-check C callbacks.
8666 This also lessens the need to write wrappers for callbacks,
8667 and the need for make_save_pointer.
a12bf61e 8668 * alloc.c (free_save_value):
27e498e6
PE
8669 * atimer.c (run_all_atimers):
8670 Now extern.
8671 * alloc.c (safe_alloca_unwind):
8672 * atimer.c (unwind_stop_other_atimers):
8673 * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
8674 * menu.c (cleanup_popup_menu) [HAVE_NS]:
8675 * minibuf.c (choose_minibuf_frame_1):
8676 * process.c (make_serial_process_unwind):
a12bf61e 8677 * xdisp.c (pop_message_unwind):
27e498e6
PE
8678 * xselect.c (queue_selection_requests_unwind):
8679 Remove no-longer-needed wrapper. All uses replaced by the wrappee.
a12bf61e 8680 * alloc.c (record_xmalloc):
27e498e6
PE
8681 Prefer record_unwind_protect_ptr to record_unwind_protect with
8682 make_save_pointer.
a12bf61e 8683 * alloc.c (Fgarbage_collect):
27e498e6
PE
8684 Prefer record_unwind_protect_void to passing a dummy.
8685 * buffer.c (restore_buffer):
8686 * window.c (restore_window_configuration):
8687 * xfns.c, w32fns.c (do_unwind_create_frame)
8688 New wrapper. All record-unwind uses of wrappee changed.
8689 * buffer.c (set_buffer_if_live):
8690 * callproc.c (call_process_cleanup, delete_temp_file):
8691 * coding.c (code_conversion_restore):
8692 * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
8693 * editfns.c (save_excursion_restore)
8694 (subst_char_in_region_unwind, subst_char_in_region_unwind_1)
8695 (save_restriction_restore):
8696 * eval.c (restore_stack_limits, un_autoload):
8697 * fns.c (require_unwind):
8698 * keyboard.c (recursive_edit_unwind, tracking_off):
8699 * lread.c (record_load_unwind, load_warn_old_style_backquotes):
8700 * macros.c (pop_kbd_macro, restore_menu_items):
8701 * nsfns.m (unwind_create_frame):
8702 * print.c (print_unwind):
8703 * process.c (start_process_unwind):
8704 * search.c (unwind_set_match_data):
8705 * window.c (select_window_norecord, select_frame_norecord):
8706 * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
8707 (fast_set_selected_frame):
8708 * xfns.c, w32fns.c (unwind_create_tip_frame):
8709 Return void, not a dummy Lisp_Object. All uses changed.
8710 * buffer.h (set_buffer_if_live): Move decl here from lisp.h.
8711 * callproc.c (call_process_kill):
8712 * fileio.c (restore_point_unwind, decide_coding_unwind)
8713 (build_annotations_unwind):
8714 * insdel.c (Fcombine_after_change_execute_1):
8715 * keyboard.c (read_char_help_form_unwind):
8716 * menu.c (unuse_menu_items):
8717 * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
8718 * sound.c (sound_cleanup):
8719 * xdisp.c (unwind_redisplay):
8720 * xfns.c (clean_up_dialog):
8721 * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
8722 Accept no args and return void, instead of accepting and returning
8723 a dummy Lisp_Object. All uses changed.
8724 * cygw32.c (fchdir_unwind):
8725 * fileio.c (close_file_unwind):
8726 * keyboard.c (restore_kboard_configuration):
8727 * lread.c (readevalllop_1):
8728 * process.c (wait_reading_process_output_unwind):
8729 Accept int and return void, rather than accepting an Emacs integer
8730 and returning a dummy object. In some cases this fixes an
8731 unlikely bug when the corresponding int is outside Emacs integer
8732 range. All uses changed.
8733 * dired.c (directory_files_internal_unwind):
8734 * fileio.c (do_auto_save_unwind):
8735 * gtkutil.c (pop_down_dialog):
8736 * insdel.c (reset_var_on_error):
8737 * lread.c (load_unwind):
8738 * xfns.c (clean_up_file_dialog):
8739 * xmenu.c, nsmenu.m (pop_down_menu):
8740 * xmenu.c (cleanup_widget_value_tree):
8741 * xselect.c (wait_for_property_change_unwind):
8742 Accept pointer and return void, rather than accepting an Emacs
8743 save value encapsulating the pointer and returning a dummy object.
8744 All uses changed.
8745 * editfns.c (Fformat): Update the saved pointer directly via
8746 set_unwind_protect_ptr rather than indirectly via make_save_pointer.
8747 * eval.c (specpdl_func): Remove. All uses replaced by definiens.
8748 (unwind_body): New function.
8749 (record_unwind_protect): First arg is now a function returning void,
8750 not a dummy Lisp_Object.
8751 (record_unwind_protect_ptr, record_unwind_protect_int)
8752 (record_unwind_protect_void): New functions.
8753 (unbind_to): Support SPECPDL_UNWIND_PTR etc.
8754 * fileio.c (struct auto_save_unwind): New type.
8755 (do_auto_save_unwind): Use it.
8756 (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
8757 * insdel.c (struct rvoe_arg): New type.
8758 (reset_var_on_error): Use it.
8759 * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
8760 New constants.
8761 (specbinding_func): Remove; there are now several such functions.
8762 (union specbinding): New members unwind_ptr, unwind_int, unwind_void.
8763 (set_unwind_protect_ptr): New function.
8764 * xselect.c: Remove unnecessary forward decls, to simplify maintenance.
8765
4e604a5d
PE
8766 Be simpler and more consistent about reporting I/O errors.
8767 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
8768 Say "Read error" and "Write error", rather than "I/O error", or
8769 "IO error reading", or "IO error writing", when a read or write
8770 error occurs.
8771 * process.c (Fmake_network_process, wait_reading_process_output)
8772 (send_process, Fprocess_send_eof, wait_reading_process_output):
8773 Capitalize diagnostics consistently. Put "failed foo" at the
8774 start of the diagnostic, so that we don't capitalize the
8775 function name "foo". Consistently say "failed" for such
8776 diagnostics.
8777 * sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
8778 All callers changed. This is so it can use report_file_error.
8779 * sysdep.c (serial_open, serial_configure): Capitalize I/O
8780 diagnostics consistently as above.
8781
a9757f6a
PE
8782 * fileio.c (report_file_errno): Fix errno reporting bug.
8783 If the file name is neither null nor a pair, package it up as a
8784 singleton list. All callers changed, both to this function and to
8785 report_file_error. This fixes a bug where the memory allocator
8786 invoked by list1 set errno so that the immediately following
8787 report_file_error reported the wrong errno value.
8788
c43843aa
PE
8789 Fix minor problems found by --enable-gcc-warnings.
8790 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
8791 * keyboard.c (kbd_buffer_get_event): Remove unused local.
8792
18c26d81
JD
87932013-07-16 Jan Djärv <jan.h.d@swipnet.se>
8794
8795 * xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
8796 Set event->arg to Qt if switch-event shall be generated.
8797 Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
8798
8799 * termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
8800
8801 * nsterm.m (windowDidResignKey): If this is the focused frame, generate
8802 FOCUS_OUT_EVENT.
8803
8804 * keyboard.c (Qfocus_in, Qfocus_out): New static objects.
8805 (make_lispy_focus_in, make_lispy_focus_out): Declare and define.
8806 (kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
8807 switch frame event is made. Check ! NILP (event->arg) if X11 (moved
44e18199 8808 from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
18c26d81
JD
8809 and there is a focused frame.
8810 (head_table): Add focus-in and focus-out.
8811 (keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
8812 bind to handle-focus-in/out.
8813
8814 * frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
8815 (Fhandle_switch_frame): Call Fhandle_focus_in.
8816 (syms_of_frame): defsubr handle-focus-in/out.
8817
6c6f1994
PE
88182013-07-16 Paul Eggert <eggert@cs.ucla.edu>
8819
c7ddc792
PE
8820 Fix porting bug to older POSIXish platforms (Bug#14862).
8821 * sysdep.c (emacs_pipe): New function, that implements
8822 pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC.
8823 This should port better to CentOS 5 and to Mac OS X 10.6.
8824 All calls to pipe2 changed.
8825
6c6f1994
PE
8826 Prefer list1 (X) to Fcons (X, Qnil) when building lists.
8827 This makes the code easier to read and the executable a bit smaller.
8828 Do not replace all calls to Fcons that happen to create lists,
8829 just calls that are intended to create lists. For example, when
8830 creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
8831 rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
8832 Similarly for list2 through list5.
8833 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
8834 * bytecode.c (exec_byte_code):
8835 * callint.c (quotify_arg, Fcall_interactively):
8836 * callproc.c (Fcall_process, create_temp_file):
8837 * charset.c (load_charset_map_from_file)
8838 (Fdefine_charset_internal, init_charset):
8839 * coding.c (get_translation_table, detect_coding_system)
8840 (Fcheck_coding_systems_region)
8841 (Fset_terminal_coding_system_internal)
8842 (Fdefine_coding_system_internal, Fdefine_coding_system_alias):
8843 * composite.c (update_compositions, Ffind_composition_internal):
8844 * dired.c (directory_files_internal, file_name_completion)
8845 (Fsystem_users):
8846 * dispnew.c (Fopen_termscript, bitch_at_user, init_display):
8847 * doc.c (Fsnarf_documentation):
8848 * editfns.c (Fmessage_box):
8849 * emacs.c (main):
8850 * eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
8851 (Feval, eval_sub, Ffuncall, apply_lambda):
8852 * fileio.c (make_temp_name, Fcopy_file, Faccess_file)
8853 (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
8854 (Fset_file_times, Finsert_file_contents)
8855 (Fchoose_write_coding_system, Fwrite_region):
8856 * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
8857 * font.c (font_registry_charsets, font_parse_fcname)
8858 (font_prepare_cache, font_update_drivers, Flist_fonts):
8859 * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
8860 * frame.c (make_frame, Fmake_terminal_frame)
8861 (x_set_frame_parameters, x_report_frame_params)
8862 (x_default_parameter, Fx_parse_geometry):
8863 * ftfont.c (syms_of_ftfont):
8864 * image.c (gif_load):
8865 * keyboard.c (command_loop_1):
8866 * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
8867 (Fcopy_keymap, append_key, Fcurrent_active_maps)
8868 (Fminor_mode_key_binding, accessible_keymaps_1)
8869 (Faccessible_keymaps, Fwhere_is_internal):
8870 * lread.c (read_emacs_mule_char):
8871 * menu.c (find_and_return_menu_selection):
8872 * minibuf.c (get_minibuffer):
8873 * nsfns.m (Fns_perform_service):
8874 * nsfont.m (ns_script_to_charset):
8875 * nsmenu.m (ns_popup_dialog):
8876 * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
8877 (Fx_own_selection_internal):
8878 * nsterm.m (append2):
8879 * print.c (Fredirect_debugging_output)
8880 (print_prune_string_charset):
8881 * process.c (Fdelete_process, Fprocess_contact)
8882 (Fformat_network_address, set_socket_option)
8883 (read_and_dispose_of_process_output, write_queue_push)
8884 (send_process, exec_sentinel):
8885 * sound.c (Fplay_sound_internal):
8886 * textprop.c (validate_plist, add_properties)
8887 (Fput_text_property, Fadd_face_text_property)
8888 (copy_text_properties, text_property_list, syms_of_textprop):
8889 * unexaix.c (report_error):
8890 * unexcoff.c (report_error):
8891 * unexsol.c (unexec):
8892 * xdisp.c (redisplay_tool_bar, store_mode_line_string)
8893 (Fformat_mode_line, syms_of_xdisp):
8894 * xfaces.c (set_font_frame_param)
8895 (Finternal_lisp_face_attribute_values)
8896 (Finternal_merge_in_global_face, syms_of_xfaces):
8897 * xfns.c (x_default_scroll_bar_color_parameter)
8898 (x_default_font_parameter, x_create_tip_frame):
8899 * xfont.c (xfont_supported_scripts):
8900 * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
8901 (menu_help_callback, xmenu_show):
8902 * xml.c (make_dom):
8903 * xterm.c (set_wm_state):
8904 Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
8905 and similarly for list2 through list5.
8906
bafe80ce
PE
89072013-07-15 Paul Eggert <eggert@cs.ucla.edu>
8908
8909 * callproc.c (Fcall_process_region): Fix minor race and tune.
8910 (create_temp_file): New function, with the temp-file-creation part
8911 of the old Fcall_process_region. Use Fcopy_sequence to create the
8912 temp file name, rather than alloca + build_string, for simplicity.
8913 Don't bother to block input around the temp file creation;
068f9124
SM
8914 shouldn't be needed. Simplify use of mktemp.
8915 Use record_unwind_protect immediately after creating the temp file;
bafe80ce
PE
8916 this closes an unlikely race where the temp file was not removed.
8917 Use memcpy rather than an open-coded loop.
8918 (Fcall_process_region): Use the new function. If the input is
8919 empty, redirect from /dev/null rather than from a newly created
8920 empty temp file; this avoids unnecessary file system traffic.
8921
4700b5a5
PE
89222013-07-14 Paul Eggert <eggert@cs.ucla.edu>
8923
5c97beae
PE
8924 * filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]:
8925 Simplify by making this case like the other two. This is a bit
8926 slower on obsolete hosts, but the extra complexity isn't worth it.
8927
4700b5a5
PE
8928 * callproc.c (child_setup, relocate_fd) [!DOS_NT]:
8929 * process.c (create_process) [!DOS_NT]:
8930 Remove now-unnecessary calls to emacs_close.
8931
f9a74c4c
EZ
89322013-07-13 Eli Zaretskii <eliz@gnu.org>
8933
922ae7ee
EZ
8934 * w32term.c (x_draw_hollow_cursor): Delete the brush object when
8935 returning early. (Bug#14850)
8936
f9a74c4c
EZ
8937 * coding.c (syms_of_coding): Set up inhibit-null-byte-detection
8938 and inhibit-iso-escape-detection attributes of 'undecided'.
8939 (Bug#14822)
8940
5e301d76
PE
89412013-07-13 Paul Eggert <eggert@cs.ucla.edu>
8942
69e0e5ee
PE
8943 * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h.
8944 Reported by Herbert J. Skuhra in
8945 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00455.html>.
8946
5e301d76
PE
8947 Don't lose top specpdl entry when memory is exhausted.
8948 * eval.c (grow_specpdl): Increment specpdl top by 1 and check for
8949 specpdl overflow here, to simplify callers; all callers changed.
8950 Always reserve an unused entry at the stack top; this avoids
8951 losing the top entry's information when memory is exhausted.
8952
7e649856
PE
89532013-07-12 Paul Eggert <eggert@cs.ucla.edu>
8954
a773ed9a
PE
8955 Clean up errno reporting and fix some errno-reporting bugs.
8956 * callproc.c (Fcall_process):
8957 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
8958 * process.c (create_process, Fmake_network_process):
8959 * unexaix.c (report_error):
8960 * unexcoff.c (report_error):
8961 Be more careful about reporting the errno of failed operations.
8962 The code previously reported the wrong errno sometimes.
8963 Also, prefer report_file_errno to setting errno + report_file_error.
8964 (Fcall_process): Look at openp return value rather than at path,
8965 as that's a bit faster and clearer when there's a numeric predicate.
8966 * fileio.c (report_file_errno): New function, with most of the
8967 old contents of report_file_error.
8968 (report_file_error): Use it.
8969 (Ffile_exists_p, Ffile_accessible_directory_p):
8970 Set errno to 0 when it is junk.
8971 * fileio.c (Faccess_file):
8972 * image.c (x_create_bitmap_from_file):
8973 Use faccessat rather than opening the file, to avoid the hassle of
8974 having a file descriptor open.
8975 * lisp.h (report_file_errno): New decl.
8976 * lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
8977
7e649856
PE
8978 Minor EBADF fixes.
8979 * process.c (create_process, wait_reading_process_output) [AIX]:
8980 Remove obsolete SIGHUP-related code, as Emacs no longer disables
8981 SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
8982 a multithreaded environment anyway).
8983 * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
8984
f6774c1a
AS
89852013-07-12 Andreas Schwab <schwab@linux-m68k.org>
8986
8987 * image.c (x_find_image_file): Don't close a remote file handle.
8988
bacba3c2
PE
89892013-07-12 Paul Eggert <eggert@cs.ucla.edu>
8990
8991 Fix races with threads and file descriptors.
8992 * callproc.c (Fcall_process_region):
8993 * dired.c (open_directory):
8994 * emacs.c (main, Fdaemon_initialized):
8995 * image.c (x_find_image_file):
8996 * inotify.c (Finotify_rm_watch):
8997 * lread.c (Flocate_file_internal):
8998 * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
8999 * term.c (term_mouse_moveto, init_tty):
9000 * termcap.c (tgetent):
9001 * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
9002 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
9003 * unexhp9k800.c, unexmacosx.c (unexec):
9004 * callproc.c (Fcall_process_region):
9005 Use emacs_close, not close.
9006 * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
9007 New macro and function, which emulates the POSIX_CLOSE_RESTART macro
9008 and posix_close function on current platforms (which all lack them).
9009 (emacs_close): Use it. This should fix the races on GNU/Linux and
9010 on AIX and on future platforms that support POSIX_CLOSE_RESTART,
9011 and it should avoid closing random victim file descriptors on
9012 other platforms.
9013
653d4f43
PE
90142013-07-11 Paul Eggert <eggert@cs.ucla.edu>
9015
c8536ec4
PE
9016 * inotify.c (uninitialized): Remove. All uses replaced by -1.
9017 (Finotify_add_watch): Simplify, since -1 means uninitialized now.
9018 Touch up doc a bit.
9019
9c203066
PE
9020 * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
9021 This is for .gdbinit xbacktrace.
9022
653d4f43
PE
9023 * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
9024 * sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
9025 (emacs_set_tty): Now static.
9026 * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
9027 * term.c (tty_capable_p, tty_default_color_capabilities)
9028 (get_tty_terminal, term_mouse_movement)
9029 (handle_one_term_event, init_tty, maybe_fatal):
9030 * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
9031 (tgetent, scan_file, name_match, compare_contin):
9032 * terminal.c (get_terminal):
9033 Use bool for boolean.
9034 * sysdep.c (init_system_name): Don't overflow stack on huge hostname.
9035 Prefer char to unsigned char if either will do.
9036 * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
9037 (tty_write_glyphs): Prefer int to unsigned.
9038 (produce_glyphless_glyph): Remove 2nd (unused) int arg.
9039 All callers changed.
9040 * termcap.c (tprint, main) [TEST]: Remove non-working test.
9041
45b683a1
PE
90422013-07-10 Paul Eggert <eggert@cs.ucla.edu>
9043
29abe551
PE
9044 Port to C89.
9045 * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
9046 (B__dummy__): New dummy symbol, to pacify C89.
9047 * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
9048 they can't grok varargs macros.
9049 * dispnew.c (add_window_display_history)
9050 (add_frame_display_history):
9051 * print.c (print_object):
9052 * xdisp.c (debug_method_add):
9053 Use %p printf format only for void pointers.
9054 * emacs.c (usage_message): New constant, replacing ...
9055 (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
9056 (main): Adjust to usage reorg.
9057 * fns.c (syms_of_fns):
9058 * profiler.c (syms_of_profiler):
9059 Don't use non-constant struct initializers.
9060 * gnutls.h (gnutls_initstage_t):
9061 * lisp.h (enum Lisp_Fwd_Type):
9062 * lread.c (lisp_file_lexically_bound_p):
9063 * xsettings.c (anonymous enum):
9064 Remove trailing comma.
9065 * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
9066 * lisp.h (ENUM_BF): Use unsigned if pedantic.
9067 (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
9068 (DEFUN): Use it.
9069 * regex.c (const_re_char): New type, to pacify strict C89.
9070 All uses of 'const re_char' replaced to use it.
9071 * regex.h (_Restrict_): Rename from __restrict, to avoid clash
9072 with glibc when strict C89. This change is imported from gnulib.
9073 All uses changed.
9074 (_Restrict_arr_): Rename from __restrict_arr, similarly.
9075 * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
9076 Omit GNU_LINUX implementation, since it requires long long.
9077 * xterm.c (x_draw_underwave):
9078 Do not assume the traditional order of struct's members.
9079 (x_term_init): Rewrite to avoid the need for non-constant structure
9080 initializers.
9081
45b683a1 9082 Syntax cleanup, mostly replacing macros with functions.
763a086d 9083 This removes the need for the syntax_temp hack.
45b683a1
PE
9084 * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
9085 * syntax.c (SYNTAX_INLINE): New macro.
9086 (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
9087 (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
9088 (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
9089 (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
9090 (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
9091 (SYNTAX_COMEND_FIRST): Now functions, not macros.
9092 (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
9093 Now constants, not macros.
9094 (syntax_temp) [!__GNUC__]: Remove.
9095 (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
9096 (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
9097 (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
9098 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
9099 Move here from syntax.h; now functions, not macros. Except for the
9100 last function, these are static since only syntax.c uses them.
9101 (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
9102 All uses changed. Now a function, not a macro; use this fact
9103 to simplify the code.
9104 (scan_lists, scan_sexps_forward): Remove workarounds for ancient
9105 compiler bugs; no longer relevant.
9106 * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
9107 (SYNTAX_INLINE): New macro.
9108 (struct gl_state_s, gl_state): Move earlier, so that it's in scope
9109 for the new functions. Use bool for boolean member.
9110 (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
9111 (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
9112 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
9113 (SETUP_BUFFER_SYNTAX_TABLE):
9114 Now extern inline functions, not macros.
9115 (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
9116 Remove; all uses replaced by implementation.
9117 (syntax_temp) [!__GNUC__]: Remove decl.
9118 (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
9119
29be4a50
JD
91202013-07-10 Jan Djärv <jan.h.d@swipnet.se>
9121
9122 * emacs.c (main): Fix syntax error.
9123
954b166e
PE
91242013-07-10 Paul Eggert <eggert@cs.ucla.edu>
9125
9126 Timestamp fixes for undo (Bug#14824).
9127 * atimer.c (schedule_atimer):
9128 * fileio.c (Ffile_newer_than_file_p):
9129 Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
9130 * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
9131 * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
9132 (syms_of_fileio): Remove Sclear_visited_file_name.
9133 (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
9134 file doesn't exist; this avoids an ambiguity with negative timestamps.
9135 (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
9136 * systime.h (make_emacs_time, invalid_emacs_time):
9137 Don't assume struct timespec layout; POSIX doesn't guarantee it.
9138 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
9139 * undo.c (record_first_change): Push (visited-file-modtime) onto
9140 undo list rather than reimplementing it by hand, incorrectly.
9141
d74647c3
KB
91422013-07-09 Ken Brown <kbrown@cornell.edu>
9143
9144 * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
9145
3c51b96b
JB
91462013-07-09 Juanma Barranquero <lekktu@gmail.com>
9147
9148 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
9149
4ebbdd67
PE
91502013-07-09 Paul Eggert <eggert@cs.ucla.edu>
9151
9152 Handle errno and exit status a bit more carefully.
9153 * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
9154 number into an exit status. Instead, use EXIT_CANCELED.
9155 (child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
9156 * callproc.c (relocate_fd):
9157 * emacs.c (close_output_streams, main):
9158 * process.c (create_process):
9159 * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
9160 Use emacs_perror for simplicity.
9161 * callproc.c (relocate_fd, main):
9162 * sysdep.c (sys_subshell):
9163 Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
9164 (shut_down_emacs): Use emacs_write, not write.
9165 * emacs.c, sysdep.c: Don't include <ignore-value.h>.
9166 * fileio.c (Fcopy_file, e_write):
9167 * nsterm.m (ns_select):
9168 * process.c (send_process):
9169 * sound.c (vox_write):
9170 Use emacs_write_sig, not emacs_write.
9171 * lisp.h (emacs_write_sig, emacs_perror): New decls.
9172 * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
9173 New constants.
9174 * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
9175 of write.
9176 (emacs_full_write): New function.
9177 (emacs_write): Rewrite to use it.
9178 (emacswrite_sig, emacs_perror): New functions.
9179 * xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
9180
44e18199 91812013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change)
e4b1e5af
JD
9182
9183 * image.c (imagemagick_load_image): Do not use MagickExportImagePixels
9184 on NS even if it is present. Pixmap on NS is a void*.
9185
9caab067
PE
91862013-07-07 Paul Eggert <eggert@cs.ucla.edu>
9187
9188 Port to Ubuntu 10 (Bug#14803).
9189 Problem reported by T.V. Raman.
9190 * process.c (close_on_exec, accept4, process_socket):
9191 Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
9192
1d442672
EZ
91932013-07-07 Eli Zaretskii <eliz@gnu.org>
9194
9195 * w32.c (sys_dup): Declare prototype.
9196
9197 * filelock.c:
9198 * emacs.c:
9199 * callproc.c [WINDOWSNT]: Include sys/socket.h.
9200
067428c1
PE
92012013-07-07 Paul Eggert <eggert@cs.ucla.edu>
9202
9203 Make file descriptors close-on-exec when possible (Bug#14803).
9204 This simplifies Emacs a bit, since it no longer needs to worry
9205 about closing file descriptors by hand in some cases.
9206 It also fixes some unlikely races. Not all such races, as
9207 libraries often open files internally without setting
9208 close-on-exec, but it's an improvement.
9209 * alloc.c (valid_pointer_p) [!WINDOWSNT]:
9210 * callproc.c (Fcall_process) [!MSDOS]:
9211 * emacs.c (main) [!DOS_NT]:
9212 * nsterm.m (ns_term_init):
9213 * process.c (create_process):
9214 Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
9215 * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
9216 * filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
9217 Prefer mkostemp with O_CLOEXEC to mkstemp.
9218 * callproc.c (relocate_fd) [!WINDOWSNT]:
9219 * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
9220 No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
9221 now using pipe2.
9222 * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
9223 Make the resulting file descriptor close-on-exec.
9224 * lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
9225 * lread.c (load_descriptor_list, load_descriptor_unwind):
9226 Remove; no longer needed. All uses removed.
9227 * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
9228 (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
9229 New functions.
9230 (socket) [!SOCK_CLOEXEC]: Supply a substitute.
35e951cd 9231 (Fmake_network_process, Fnetwork_interface_list)
067428c1
PE
9232 (Fnetwork_interface_info, server_accept_connection):
9233 Make newly-created socket close-on-exec.
9234 * sysdep.c (emacs_open, emacs_fopen):
9235 Make new-created descriptor close-on-exec.
9236 * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
9237 * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
9238
0da857dd
JD
92392013-07-07 Jan Djärv <jan.h.d@swipnet.se>
9240
9241 * nsterm.m (sendEvent:): Propagate keyboard events to modal windows
9242 for NS_IMPL_GNUSTEP.
9243
5f86adcd
PE
92442013-07-07 Paul Eggert <eggert@cs.ucla.edu>
9245
9246 Fix openp errno handling.
9247 * callproc.c (Fcall_process): Preserve openp errno around close.
9248 * lread.c (openp): Set errno when returning -1, as some callers
9249 expect this.
9250
1afb1d07
JD
92512013-07-06 Jan Djärv <jan.h.d@swipnet.se>
9252
9253 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
9254
9255 * nsterm.h (NSSavePanel): Update comment.
9256 (NSAPP_DATA2_RUNFILEDIALOG): Define.
9257 (ns_run_file_dialog): Declare.
9258
9259 * nsfns.m: Remove panelOK.
9260 (ns_fd_data): New.
9261 (ns_run_file_dialog): New function.
9262 (Fns_read_file_name): Fill in ns_fd_data, post an event and start the
9263 event loop, so file dialog is popped up by ns_run_file_dialog, called
9264 by sendEvent (Bug#14578).
9265 (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
9266
3323c263
EZ
92672013-07-06 Eli Zaretskii <eliz@gnu.org>
9268
fdda0220
EZ
9269 * xdisp.c (default_line_pixel_height): New function.
9270 (pos_visible_p, move_it_vertically_backward, try_scrolling)
9271 (try_cursor_movement, redisplay_window, try_window)
9272 (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
9273
068f9124
SM
9274 * window.c (window_scroll_pixel_based):
9275 use default_line_pixel_height.
fdda0220
EZ
9276
9277 * dispextern.h (default_line_pixel_height): Add prototype.
9278
9279 * frame.c (x_set_line_spacing): Accept a float value for
9280 line-spacing parameter, per the documentation.
9281
3323c263
EZ
9282 * data.c (Fmultibyte_string_p): Doc fix.
9283
47ba6d43
PE
92842013-07-05 Paul Eggert <eggert@cs.ucla.edu>
9285
406af475
PE
9286 Use emacs_open more consistently when opening files.
9287 This handles EINTR more consistently now, and makes it easier
9288 to introduce other uniform changes to file descriptor handling.
a12bf61e
GM
9289 * sysstdio.h: New file.
9290 * buffer.c (mmap_init):
406af475
PE
9291 * cygw32.c (chdir_to_default_directory):
9292 * dispnew.c (Fopen_termscript):
9293 * emacs.c (Fdaemon_initialized):
9294 * fileio.c (Fdo_auto_save):
9295 * image.c (slurp_file, png_load_body, jpeg_load_body):
9296 * keyboard.c (Fopen_dribble_file):
9297 * lread.c (Fload):
9298 * print.c (Fredirect_debugging_output):
9299 * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
9300 * termcap.c (tgetent):
9301 * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
9302 * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
9303 * w32term.c (w32_initialize) [CYGWIN]:
9304 * xfaces.c (Fx_load_color_file):
9305 Use emacs_open instead of plain open, and emacs_fopen instead of
9306 plain fopen.
9307 * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
9308 * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
9309 * callproc.c (default_output_mode): New constant.
9310 (Fcall_process): Use it to call emacs_open instead of plain creat.
9311 * dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
9312 * sysdep.c (emacs_open): Add commentary and don't call file name "path".
9313 (emacs_fopen): New function.
9314 * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
9315 Include <lisp.h>, for emacs_open.
9316 * unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
9317
47ba6d43
PE
9318 Remove duplicate #include directives.
9319 * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
9320 * xfaces.c:
9321 Don't include stdio.h twice.
9322 * buffer.c [USE_MMAP_FOR_BUFFERS]:
9323 Don't include sys/types.h or stdio.h twice.
9324 * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
9325 * lread.c: Don't include coding.h twice.
9326 * nsfont.m: Don't include frame.h twice.
9327 * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
9328 * ralloc.c: Don't include <unistd.h> twice.
9329 * xdisp.c: Don't include font.h twice.
9330 * xterm.c: Don't include fontset.h twice.
9331 * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
9332
b9ed53d5
PE
93332013-07-04 Paul Eggert <eggert@cs.ucla.edu>
9334
9335 Scale ImageMagick images more carefully.
9336 * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
9337 (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
9338 Be more careful about avoiding undefined behavior after
9339 integer overflow and division by zero.
9340
cf13177e
YM
93412013-07-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9342
9343 * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
9344 (syms_of_w32fns): DEFSYM them.
9345 (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
9346 (CCHDEVICENAME): Define macros if not defined.
9347 (struct MONITOR_INFO_EX): New struct.
9348 (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
9349 (enum_display_monitors_fn): New variable.
9350 (globals_of_w32fns): Initialize it.
9351 (Fx_display_pixel_width, Fx_display_pixel_height)
9352 (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
9353 multi-monitor setups in docstrings.
9354 (Fx_display_mm_height, Fx_display_mm_width): Approximate whole
9355 screen size by primary monitor's millimeter per pixel.
9356 (w32_monitor_enum, w32_display_monitor_attributes_list)
9357 (w32_display_monitor_attributes_list_fallback)
9358 (Fw32_display_monitor_attributes_list): New functions.
9359 (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
9360
9361 * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
9362 if not defined.
9363 (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
9364
86dfb7a8
MA
93652013-07-04 Michael Albinus <michael.albinus@gmx.de>
9366
9367 * fileio.c (Qfile_notify_error): New error symbol.
9368
9369 * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
9370 * inotify.c (inotify_callback, symbol_to_inotifymask)
9371 (Finotify_add_watch, Finotify_rm_watch): Use it.
9372 (inotifyevent_to_event): Exchange order of cookie and file name.
9373 (Finotify_add_watch): Adapt docstring.
9374
9375 * lisp.h (Qfile_notify_error): Declare.
9376
2c1c974b
PE
93772013-07-04 Paul Eggert <eggert@cs.ucla.edu>
9378
9379 Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
9380 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
9381 Do not clear _malloc_thread_enabled_p, undoing the previous change,
9382 which did not work (see <http://bugs.gnu.org/14569#307>).
9383 (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
9384 && (!noninteractive || initialized)). This attempts to thread
9385 the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
9386
7a35b20f
JB
93872013-07-04 Juanma Barranquero <lekktu@gmail.com>
9388
9389 * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
9390 (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
9391
1ce5cd04
PE
93922013-07-04 Paul Eggert <eggert@cs.ucla.edu>
9393
9394 Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
9395 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
9396 Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in
9397 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.
9398
57f8c490
PE
93992013-07-02 Paul Eggert <eggert@cs.ucla.edu>
9400
9401 * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
9402 Define to __sys_siglist.
9403
bcffb5ca
EZ
94042013-07-02 Eli Zaretskii <eliz@gnu.org>
9405
9406 * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
9407 word-wrap, so that overflow-newline-into-fringe would work in
9408 visual-line-mode. (Bug#2749)
9409 (move_it_in_display_line_to): When the last scanned display
9410 element fits exactly on the display line, and
9411 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
9412 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
9413 wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
9414 finding buffer position that corresponds to pixel coordinates,
9415 e.g. in buffer_posn_from_coords.
9416
2c41e781
JD
94172013-07-02 Jan Djärv <jan.h.d@swipnet.se>
9418
9419 * process.c (handle_child_signal): Call catch_child_signal if
9420 NS_IMPL_GNUSTEP.
9421
c2418359
PE
94222013-07-02 Paul Eggert <eggert@cs.ucla.edu>
9423
52a9bcae
PE
9424 Don't convert function pointers to void * and back.
9425 It isn't portable C, and it's easy enough to avoid.
9426 * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
9427 (make_save_value): Add support for SAVE_FUNCPOINTER.
9428 * keymap.c (map_keymap_char_table_item, map_keymap_internal):
9429 * print.c (print_object):
9430 Distinguish function from object pointers.
9431 * lisp.h (SAVE_FUNCPOINTER): New constant.
9432 (SAVE_SLOT_BITS): Adjust to it.
9433 (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
9434 SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
9435 (voidfuncptr): New typedef.
9436 (struct Lisp_Save_Value): New member data[0].funcpointer.
9437 (XSAVE_FUNCPOINTER): New function.
9438
c2418359
PE
9439 Simplify buildobj processing.
9440 * Makefile.in (buildobj.h): Make it a sequence of strings each
9441 followed by comma, rather than a single string. Put it into a
9442 .tmp file in case there's an error while generating it.
9443 (gl-stamp): Use .tmp for temp files.
9444 (mostlyclean): Clean .tmp files.
9445 * doc.c (buildobj): Move to just the routine that needs it.
9446 It's now an array of strings, so processing is simpler.
9447
8f43ce49
PE
94482013-07-01 Paul Eggert <eggert@cs.ucla.edu>
9449
9450 Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
9451 * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
9452 (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
9453 Invoke malloc_enable_thread even when not interactive.
9454 Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
9455 * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
9456 in this case, since the underlying bug has now been fixed.
9457
24827db9
JB
94582013-07-01 Juanma Barranquero <lekktu@gmail.com>
9459
9460 * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
9461 unlinking it (bug#14691).
9462
ef099a94
MN
94632013-06-30 Michal Nazarewicz <mina86@mina86.com>
9464
9465 * buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
9466 before checking whether buffer is modified. This lets
9467 `kill-buffer-query-functions' cancel killing of the buffer or save
9468 its content before `kill-buffer' asks user the "Buffer %s
9469 modified; kill anyway?" question.
9470
9d3f2fc2
JD
94712013-06-30 Jan Djärv <jan.h.d@swipnet.se>
9472
9473 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
9474 Let the super performKeyEquivalent deal with them (Bug#14747).
9475
e6c6c8c7
PE
94762013-06-30 Paul Eggert <eggert@cs.ucla.edu>
9477
1d71c1d9
PE
9478 * widget.c (resize_cb): Remove unused local.
9479
8f5f35cc
PE
9480 Do not use GTK 3 if it exists but cannot be compiled.
9481 * xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
9482 * xterm.c (x_error_handler) [!USE_GTK]:
9483 Do not use GTK 3.
9484
e6c6c8c7
PE
9485 * intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
9486
0ba54312
EZ
94872013-06-30 Eli Zaretskii <eliz@gnu.org>
9488
5d1c3286
EZ
9489 * intervals.c (get_local_map): Instead of aborting, clip POSITION
9490 to the valid range of values. (Bug#14753)
9491
0ba54312
EZ
9492 * xdisp.c (Fmove_point_visually): Invalidate the cursor position
9493 when moving point by using the current glyph matrix. This avoids
9494 the need to force redisplay when this function is called in a
9495 loop.
9496
9c90cc06
PE
94972013-06-29 Paul Eggert <eggert@cs.ucla.edu>
9498
9499 Fix minor problems found by static checking.
9500 * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
9501 Redo the latter's body to sidestep GCC parenthesization warnings.
9502 (setup_coding_system, detect_coding, detect_coding_system): Use them.
9503 * coding.c (detect_coding, detect_coding_system):
9504 * coding.h (struct undecided_spec):
9505 Use bool for boolean.
9506 * image.c (QCmax_width, QCmax_height): Now static.
9507 * xdisp.c (Fmove_point_visually): Remove unused local.
9508
4c672a0f
EZ
95092013-06-29 Eli Zaretskii <eliz@gnu.org>
9510
9511 * xdisp.c (Fmove_point_visually): New function.
9512
c1ea3abf
JB
95132013-06-28 Kenichi Handa <handa@gnu.org>
9514
9515 * coding.h (define_coding_undecided_arg_index): New enum.
9516 (coding_attr_index): New members
9517 coding_attr_undecided_inhibit_null_byte_detection,
9518 coding_attr_undecided_inhibit_iso_escape_detection,
9519 coding_attr_undecided_prefer_utf_8.
9520 (undecided_spec): New struct.
9521 (struct coding_system): New member `undecided' of the member
9522 `spec'.
9523
9524 * coding.c (setup_coding_system): Handle CODING->spec.undecided.
9525 (detect_coding): Likewise.
9526 (detect_coding_system): Likewise.
9527 (Fdefine_coding_system_internal): New coding system properties
9528 :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
9529 :prefer-utf-8.
9530 (syms_of_coding): Adjust for coding_arg_undecided_max.
9531
ba3de9e6
PE
95322013-06-28 Paul Eggert <eggert@cs.ucla.edu>
9533
9534 * image.c (x_from_xcolors): Remove unused local.
9535
547c9269
YM
95362013-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9537
9538 Defer image data transfer between X client and server until actual
9539 display happens.
9540
9541 * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
9542 and `mask_img'.
9543
9544 * image.c (Destroy_Image): Remove.
9545 (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
9546 `mask_p', and `colors_p'. All uses changed.
9547 (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
ef099a94
MN
9548 (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
9549 New macros for `flags' arg to x_clear_image_1.
547c9269
YM
9550 (postprocess_image, xpm_load_image, x_build_heuristic_mask)
9551 (png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
04b66ce7 9552 (ZPixmap, XGetImage) [HAVE_NS]: Remove.
547c9269
YM
9553 (image_get_x_image_or_dc, image_unget_x_image_or_dc)
9554 (image_get_x_image, image_unget_x_image): New functions or macros.
9555 (image_background, image_background_transparent, x_to_xcolors)
9556 (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
9557 XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc
9558 instead of Destroy_Image.
9559 (image_create_x_image_and_pixmap, image_put_x_image): New functions.
9560 (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
9561 (png_load_body, jpeg_load_body, tiff_load, gif_load)
9562 (imagemagick_load_image, svg_load_image): Use them instead of
9563 x_create_x_image_and_pixmap, and x_put_x_image followed by
9564 x_destroy_x_image, respectively.
9565 (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
9566 XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
9567 XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and
9568 background_transparent fields.
9569 (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
9570 (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
9571
dae2f5ef
PE
95722013-06-27 Paul Eggert <eggert@cs.ucla.edu>
9573
9574 Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
9575 This mostly consists of undoing recent changes.
9576 * callproc.c (Fcall_process):
9577 * process.c (create_process):
9578 Do not worry about catching SIGCHLD here, undoing previous change.
9579 * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
9580 * process.c, process.h (catch_child_signal):
9581 No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
9582 * process.c (catch_child_handler): Don't worry about being called
9583 lazily and do not assume caller has blocked SIGCHLD, undoing
9584 previous change. Move first-time stuff back to
9585 init_process_emacs, undoing 06-22 change. If CYGWIN, do not
9586 tickle glib, as that causes Cygwin bootstrap to fail. Do not
9587 set lib_child_handler if it's already initialized, which may
a6c4680a 9588 help avoid problems on GNUstep.
dae2f5ef 9589
fa55d2aa
PE
95902013-06-23 Paul Eggert <eggert@cs.ucla.edu>
9591
9592 A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
9593 * callproc.c (Fcall_process):
9594 * process.c (create_process):
9595 Make sure SIGCHLD is caught before we fork,
9596 since Emacs startup no arranges to catch SIGCHLD.
9597 * process.c (lib_child_handler): Initialize to null, not to
9598 dummy_handler.
9599 (catch_child_signal): Allow self to be called lazily.
9600 Do nothing if it's already been called.
9601 Assume caller has blocked SIGCHLD (all callers do now).
9602 * emacs.c (main): Do not catch SIGCHLD here; defer it until
9603 just before it's really needed.
9604 * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
9605 since it hasn't been caught yet.
9606
f3f9606c
LMI
96072013-06-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
9608
9609 * image.c (compute_image_size): New function to implement
9610 :max-width and :max-height.
9611 (imagemagick_load_image): Use it.
9612
c7041908
PE
96132013-06-23 Paul Eggert <eggert@cs.ucla.edu>
9614
9615 Try to avoid malloc SEGVs on Cygwin (Bug#14569).
9616 * callproc.c, process.h (block_child_signal, unblock_child_signal):
9617 Now extern.
9618 * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
9619 * process.c (catch_child_signal): Block SIGCHLD while futzing with
9620 the SIGCHLD handler, since the code is not atomic and (due to glib)
9621 signals may be arriving now.
9622 * sysdep.c (init_signals): Do not catch child signals here;
9623 'main' now does that later, at a safer time.
9624
f86852b4
PE
96252013-06-22 Paul Eggert <eggert@cs.ucla.edu>
9626
0dfeed58
PE
9627 Clean up SIGCHLD handling a bit (Bug#14569).
9628 * process.c, process.h (catch_child_signal):
9629 Now always extern, even if !NS_IMPL_GNUSTEP.
9630 * process.c (catch_child_signal): Move glib tickler here from
9631 init_process_emacs, so that it's done earlier in Emacs
9632 initialization. Also move the noninteractive && !initialized
9633 check here from init_process_emacs. This is all a bit cleaner for
9634 GNUish platforms, and I hope it works around the Cygwin bug.
9635 * sysdep.c (init_signals): Invoke catch_child_signal here, so
9636 that glib signal handling is tickled before glib creates threads.
9637
f86852b4
PE
9638 * process.c (wait_reading_process_output): Avoid int overflow
9639 when reading more than 2 GiB total from a process.
9640
cbd6509c
PE
96412013-06-21 Paul Eggert <eggert@cs.ucla.edu>
9642
9643 * process.c (create_process): Handle a couple more cases,
9644 i.e., work even if new_argv and wait_child_setup[i] are cached.
9645 Use Fcall_process's style for volatile vars.
9646
9de1114a
AS
96472013-06-21 Andreas Schwab <schwab@linux-m68k.org>
9648
9649 * process.c (create_process): Mark PROCESS volatile.
9650
fbe9e0b9
PE
96512013-06-21 Paul Eggert <eggert@cs.ucla.edu>
9652
9653 Use C99-style flexible array members if available.
9654 This avoids some subtle aliasing issues, which typically
9655 aren't a problem with GCC but may be a problem elsewhere.
9656 * alloc.c (sdata): New typedef, replacing the old struct sdata.
9657 It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
9658 In either case, it uses a flexible array member rather than
9659 the old struct hack. All uses changed.
9660 (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
9661 Adjust to sdata reorganization.
9662 * alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
9663 Use offsetof (struct, flex_array_member), not sizeof (struct), as
9664 that ports better to pre-C99 non-GCC.
9665 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
9666 Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
9667 as the latter has changed.
9668 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
9669 and port better to pre-C99 GCC.
9670 * image.c (struct xpm_cached_color):
9671 * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
9672 (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
9673 Use FLEXIBLE_ARRAY_MEMBER.
9674 * lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
9675 Move decl to top level so it gets checked against implementation.
9676 (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
9677 * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
9678
1fc71008
PE
96792013-06-20 Paul Eggert <eggert@cs.ucla.edu>
9680
9681 * syntax.c: Integer cleanups.
9682 (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
9683 All uses that need 0-or-2 changed to:
9684 (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
9685 as the old SYNTAX_FLAGS_COMMENT_STYLEC.
9686 (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
9687 (char_quoted, prev_char_comend_first, back_comment)
9688 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
9689 (in_classes, forw_comment, scan_lists, scan_sexps_forward):
9690 Use bool for boolean.
9691 (update_syntax_table, skip_chars, skip_syntaxes):
9692 Prefer int to unsigned when either will do.
9693 (back_comment): Return boolean success flag, like forw_comment,
9694 instead of positive-or-minus-1 (which might have overflowed int anyway).
9695 Don't stuff ptrdiff_t into int.
9696 (syntax_spec_code, syntax_code_spec): Now const.
9697 (Fmatching_paren, scan_lists, scan_sexps_forward):
9698 Use enum syntaxcode for syntax code.
9699 (Fmatching_paren): Check that arg is a character, not just an integer.
9700 (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
9701 (Finternal_describe_syntax_value): Omit no-longer-needed
9702 comparison to 0.
9703 (skip_chars): Use char, not unsigned char, when the distinction
9704 doesn't matter.
9705 (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
9706 * bytecode.c (exec_byte_code):
9707 * syntax.c (syntax_spec_code, Fchar_syntax)
9708 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
9709 (init_syntax_once):
9710 * syntax.h (SYNTAX_WITH_FLAGS):
9711 Omit unnecessary casts.
9712
b932cad7
EZ
97132013-06-20 Eli Zaretskii <eliz@gnu.org>
9714
9715 * w32fns.c (w32_wnd_proc): Don't compute the header line and mode
9716 line dimensions here, to avoid race conditions with the main
9717 thread. (Bug#14062, bug#14630, bug#14669)
9718
9719 * w32term.c (w32_draw_window_cursor): Compute the header line and
9720 mode line dimensions here.
9721 <w32_system_caret_window, w32_system_caret_hdr_height>:
9722 <w32_system_caret_mode_height>: New variables.
9723
9724 * w32term.h: Declare them.
9725
89561f72
PE
97262013-06-20 Paul Eggert <eggert@cs.ucla.edu>
9727
5013fc08
PE
9728 * alloc.c (die): Move "assertion failed" string here ...
9729 * lisp.h (eassert): ... from here. Also, suppress evaluation of
9730 COND when SUPPRESS_CHECKING. This shrinks the executable text
9731 size by 0.8% to 2.2% when configured with --enable-checking,
9732 depending on optimization flags (GCC 4.8.1 x86-64).
9733
89561f72
PE
9734 * floatfns.c (Flog10): Move to Lisp (marked obsolete there).
9735
763a086d 97362013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
89561f72
PE
9737
9738 * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
9739 base is 2; this is more accurate.
9740
983aeb9a
JB
97412013-06-19 Juanma Barranquero <lekktu@gmail.com>
9742
9743 * sound.c (string_default): Move to !WINDOWSNT section.
9744 (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
9745
178ba3e6
PE
97462013-06-19 Paul Eggert <eggert@cs.ucla.edu>
9747
bbc51b15
PE
9748 * sound.c: Integer cleanups.
9749 Remove unnecessary forward decls.
9750 (struct sound_device): The 'file' member is now a Lisp_Object, not
9751 a char *, so that we needn't invoke alloca on a huge size.
9752 (Fplay_sound_internal): Adjust to this.
9753 (string_default): New function.
9754 (vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
9755 Use it to adjust to the struct sound_device change.
9756 (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
9757 (be2hs) [0]: Remove.
9758
178ba3e6
PE
9759 * syntax.c (skip_chars): Don't use uninitialized storage
9760 when searching a multibyte buffer for characters that are not in a
9761 unibyte string that contains non-ASCII characters.
9762
69f60cdc
JD
97632013-06-18 Jan Djärv <jan.h.d@swipnet.se>
9764
9765 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
9766 if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
9767
0d6224d4
PE
97682013-06-18 Paul Eggert <eggert@cs.ucla.edu>
9769
9770 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
9771
3c542890
KH
97722013-06-18 Kenichi Handa <handa@gnu.org>
9773
f7e3f7cd
KH
9774 * font.c (Ffont_spec): Signal an error for an invalid font name
9775 (Bug#14648).
3c542890 9776
9349e5f7
PE
97772013-06-18 Paul Eggert <eggert@cs.ucla.edu>
9778
9779 Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
9780 In particular this ports to 32-bit sparc Sun cc.
9781 * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
9782 array with a dummy element at specpdl[-1], so that its address can
9783 be taken portably.
9784 (unbind_to): Do not copy the binding; not needed, now that we
9785 copy old_value in the one place where the copy is needed.
9786 * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
9787 * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
9788 (union specbinding): Rename from struct specbinding. Redo layout
9789 to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
9790 which is not portable. With Sun C 5.12 32-bit sparc, the
9791 declaration causes nargs to be an unsigned bitfield, a behavior
9792 that the C standard allows; but Emacs wants nargs to be signed.
9793 The overall type is now a union of structures rather than a
9794 structure of union of structures, and the 'kind' member is now a
9795 bitfield, so that the overall type doesn't grow. All uses changed.
9796 * process.c (Fmake_serial_process): Remove unnecessary initialization.
9797
0a4df6a5
PE
97982013-06-17 Paul Eggert <eggert@cs.ucla.edu>
9799
ec6ecaad
PE
9800 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
9801 Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
9802
0a4df6a5
PE
9803 * nsfont.m (ns_registry_to_script): Parenthesize while expression.
9804
7bfe8dbc
EZ
98052013-06-17 Eli Zaretskii <eliz@gnu.org>
9806
9807 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
9808 unless we know that the window w's frame is a frame object.
9809 Another attempt at solving bug#14062 and bug#14630.
9810
708e05f6
LMI
98112013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
9812
9813 * textprop.c (property_set_type): New enum.
9814 (add_properties): Allow appending/prepending text properties.
9815 (add_text_properties_1): Factored out of Fadd_text_properties.
ef099a94 9816 (Fadd_text_properties): Move all the code into
708e05f6
LMI
9817 add_text_properties_1.
9818 (Fadd_face_text_property): New function that calls
9819 add_text_properties_1.
9820
84575e67
PE
98212013-06-17 Paul Eggert <eggert@cs.ucla.edu>
9822
9823 Move functions from lisp.h to individual modules when possible.
9824 From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
9825 * alloc.c (XFLOAT_INIT, set_symbol_name):
9826 * buffer.c (CHECK_OVERLAY):
9827 * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
9828 (set_char_table_parent):
9829 * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
9830 * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
9831 (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
9832 (blv_value, set_blv_value, set_blv_where, set_blv_defcell)
9833 (set_blv_valcell):
9834 * emacs.c (setlocale) [!HAVE_SETLOCALE]:
9835 * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
9836 (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
9837 (backtrace_args, backtrace_debug_on_exit):
9838 * floatfns.c (CHECK_FLOAT):
9839 * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
9840 (set_hash_key_and_value, set_hash_next, set_hash_next_slot)
9841 (set_hash_hash, set_hash_hash_slot, set_hash_index)
9842 (set_hash_index_slot):
9843 * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
9844 * marker.c (CHECK_MARKER):
9845 * textprop.c (CHECK_STRING_OR_BUFFER):
9846 * window.c (CHECK_WINDOW_CONFIGURATION):
9847 Move here from lisp.h, and make these functions static rather than
9848 extern inline.
9849 * buffer.c (Qoverlayp):
9850 * data.c (Qsubrp):
9851 * fns.c (Qhash_table_p):
9852 * window.c (Qwindow_configuration_p):
9853 Now static.
9854 * lisp.h: Remove the abovementioned defns and decls.
9855
44e18199 9856 Use functions, not macros, for XINT etc (Bug#11935).
84575e67
PE
9857 In lisp.h, prefer functions to function-like macros, and
9858 constants to object-like macros, when either will do. This:
9859 . simplifies use, as there's no more need to worry about
9860 arguments' side effects being evaluated multiple times.
9861 . makes the code easier to debug on some platforms.
9862 However, when using gcc -O0, keep using function-like macros
9863 for a few critical operations, for performance reasons.
9864 This sort of thing isn't needed with gcc -Og, but -Og
9865 is a GCC 4.8 feature and isn't widely-enough available yet.
9866 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
9867 Remove enum lsb_bits; no longer needed.
9868 (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
9869 * buffer.c (Qoverlap):
9870 * data.c (Qsubrp):
9871 * fns.c (Qhash_table_p):
9872 Now extern, so lisp.h can use these symbols.
9873 * dispextern.h: Include character.h, for MAX_CHAR etc.
9874 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
9875 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
9876 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
9877 (GLYPH_CODE_P): Move here from lisp.h.
9878 (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
9879 (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
9880 (GLYPH_MODE_LINE_FACE): Now enums, not macros.
9881 * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
9882 XUNTAG now returns void *.
9883 * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
9884 (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
9885 (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
9886 (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
9887 (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
9888 (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
9889 (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
9890 (lisp_h_XPNTR, lisp_h_XSYMBOL):
9891 New macros, renamed from their sans-lisp_h_ counterparts.
9892 (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
9893 (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
9894 (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
9895 (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
9896 If compiling via GCC without optimization, define these as macros
9897 in addition to inline functions.
9898 To disable this, compile with -DINLINING=0.
9899 (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
9900 (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
9901 (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
9902 hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
9903 (INTMASK, VALMASK): Now macros, since static values cannot be
9904 accessed from extern inline functions.
9905 (VALMASK): Also a constant, for benefit of old GDB.
9906 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
9907 is INTEGERP, which can fold it in.
5165d44a 9908 (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
84575e67
PE
9909 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
9910 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
9911 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
9912 (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
9913 (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
9914 (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
9915 (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
9916 (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
9917 (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
9918 (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
9919 (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
9920 (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
9921 (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
9922 (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
9923 (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
9924 (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
9925 (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
9926 (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
9927 (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
9928 (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
9929 (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
9930 (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
9931 (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
9932 (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
9933 (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
9934 (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
9935 (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
9936 (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
9937 (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
9938 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
9939 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
9940 (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
9941 Now functions.
9942 (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
9943 (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
9944 (VALMASK): Define in one place rather than in two, merging the
9945 USE_LSB_TAG parts; this is simpler.
9946 (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
9947 (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
9948 Move up, to avoid use before definition.
9949 Also include "globals.h" earlier, for the same reason.
9950 (make_natnum): New function.
9951 (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
9952 (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
9953 (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
9954 (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
9955 (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
9956 (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
9957 (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
9958 (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
9959 (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
9960 (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
9961 (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
9962 (Qwindow_configuration_p, Qimage): New forward declarations.
9963 (XSETFASTINT): Simplify by rewriting in terms of make_natnum.
9964 (STRING_COPYIN): Remove; unused.
9965 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
9966 (xcar_addr, xcdr_addr): New functions. All uses changed.
9967 (IEEE_FLOATING_POINT): Now a constant, not a macro.
9968 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
9969 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
9970 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
9971 (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
9972 (TYPE_RANGED_INTEGERP): Simplify.
9973 (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
9974 (setlocale, fixup_locale, synchronize_system_messages_locale)
9975 (synchronize_system_time_locale) [!HAVE_SETLOCALE]:
9976 Now empty functions, not macros.
9977 (functionp): Return bool, not int.
9978 * window.c (Qwindow_configuration_p): Now extern,
9979 so window.h can use it.
9980 * window.h (Qwindowp): Move decl back to lisp.h.
9981
9583ec36
EZ
99822013-06-15 Eli Zaretskii <eliz@gnu.org>
9983
9984 * xdisp.c (Fline_pixel_height): New function, required for solving
9985 bug #14567.
9986
210272ce
PE
99872013-06-15 Paul Eggert <eggert@cs.ucla.edu>
9988
9989 * fns.c (Fcopy_sequence): Simplify XTYPE calculation.
9990
de0503df
SM
99912013-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
9992
9993 * lread.c (syms_of_lread):
9994 * fns.c (Fprovide): Adjust to new format of after-load-alist.
9995
afbfe143
KD
99962013-06-13 Kelly Dean <kellydeanch@yahoo.com> (tiny change)
9997
9998 * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479)
9999
d177e213
XF
100002013-06-12 Xue Fuqiao <xfq.free@gmail.com>
10001
10002 * fileio.c (expand_file_name): Doc fix.
10003
05e3e412
PE
100042013-06-11 Paul Eggert <eggert@cs.ucla.edu>
10005
f7394b12
PE
10006 Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
10007 * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
10008 Wait for self, not for 0. This can't hurt on GNU or similar
10009 system, and may help with Cygwin.
10010
05e3e412
PE
10011 * keyboard.c: Don't use PROP (...) as an lvalue.
10012 (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
10013 Use set_prop (A, B), not PROP (A) = B.
10014
17dd3097
EZ
100152013-06-10 Eli Zaretskii <eliz@gnu.org>
10016
10017 * xdisp.c (get_it_property): Use it->window instead of generating
10018 a Lisp object from it->w.
10019
52fab9c9
EZ
100202013-06-09 Eli Zaretskii <eliz@gnu.org>
10021
10022 * xdisp.c (get_it_property): If it->object is a buffer, pass to
10023 get-char-property the window that is being rendered, instead of
10024 the buffer, to support window-specific overlays. (Bug#14575)
ad257d4f
EZ
10025 (compute_display_string_pos): When W is NULL, use the current
10026 buffer as the object to pass to get-char-property.
10027 (Fcurrent_bidi_paragraph_direction): Assign NULL to the window
10028 pointer member of the bidi iterator, since no window is pertinent
10029 to this function.
52fab9c9 10030
5bf97bfc
EZ
100312013-06-08 Eli Zaretskii <eliz@gnu.org>
10032
10033 * bidi.c (bidi_fetch_char): Accept additional argument, the window
10034 being displayed, and pass it to compute_display_string_pos.
10035 (bidi_level_of_next_char, bidi_resolve_explicit_1)
10036 (bidi_paragraph_init): All callers changed.
10037
10038 * xdisp.c (init_from_display_pos, init_iterator)
10039 (handle_single_display_spec, next_overlay_string)
10040 (get_overlay_strings_1, reseat_1, reseat_to_string)
e7b41c4c
JB
10041 (push_prefix_prop, Fcurrent_bidi_paragraph_direction):
10042 Set bidi_it.w member from it->w.
5bf97bfc
EZ
10043 (compute_display_string_pos): Accept additional argument, the
10044 window being displayed, and pass it to Fget_char_property.
10045 (Bug#14575)
10046
10047 * dispextern.h (struct bidi_it): New member w, the window being
10048 displayed.
10049 (compute_display_string_pos): Adjust prototype.
10050
5de0e011
JD
100512013-06-08 Jan Djärv <jan.h.d@swipnet.se>
10052
e7b41c4c 10053 * xgselect.c: Remove unneeded include xterm.h.
b33f93ee
JD
10054
10055 * process.c (wait_reading_process_output): Check for NS before GLIB.
10056 GLIB may be linked in due to rsvg, but ns_select must be called.
10057
5de0e011
JD
10058 * xgselect.c (xg_select): Remove call to window_system_available
10059 and g_main_context_pending at the top, so Gdk events (i.e. file
10060 notify) are processed when Emacs is started with -nw.
10061
a822acff
EZ
100622013-06-07 Eli Zaretskii <eliz@gnu.org>
10063
10064 * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
10065 (ctagsfiles3): New variable, includes only *.m files.
10066 (TAGS): Use an explicit language name in the regular expressions,
10067 to avoid transformation of '/SOMETHING' by MSYS to
10068 'c:\MSYS\SOMETHING'.
10069
6c0a9ed1
RC
100702013-06-07 Richard Copley <rcopley@gmail.com> (tiny change)
10071
10072 * epaths.in: Fix commentary to PATH_SITELOADSEARCH.
10073
9ef6111b
EZ
100742013-06-06 Eli Zaretskii <eliz@gnu.org>
10075
10076 * xdisp.c (note_mouse_highlight): When mouse-highlight is off,
10077 still need to set the mouse pointer shape and activate help-echo.
10078 (Bug#14558)
10079
7d300d64
PE
100802013-06-06 Paul Eggert <eggert@cs.ucla.edu>
10081
10082 A few porting etc. fixes for the new file monitor code.
10083 See the thread containing
10084 <http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
10085 * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
10086 (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
10087 (dir_monitor_callback, Fgfile_rm_watch):
10088 Use assq_no_quit instead of Fassoc, for speed.
10089 (dir_monitor_callback, Fgfile_rm_watch):
10090 eassert that the monitor is a fixnum.
10091 (dir_monitor_callback): No need for CDR_SAFE.
10092 Simplify building of lisp with alternative tails.
10093 (Fgfile_add_watch, Fgfile_rm_watch):
10094 Do not assume glib functions set errno reliably on failure.
10095 (Fgfile_add_watch): Check that the monitor survives the XIL trick,
10096 and signal an error otherwise.
10097 (Fgfile_rm_watch): Prefer CONSP to !NILP.
10098 Use Fdelq instead of Fdelete, for speed.
10099
817ebfcf
EZ
101002013-06-05 Eli Zaretskii <eliz@gnu.org>
10101
10102 * xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
10103 don't insist on being invoked on a highlighted tool-bar button.
10104 Avoids losing tool-bar functionality when mouse-highlight is nil.
10105 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
10106 Don't highlight when mouse-highlight is nil.
10107 (note_mouse_highlight): When mouse-highlight is nil, don't return
10108 right away; instead, run tool-bar and mode-line highlight
10109 subroutine, clear any existing highlight, and revert the mouse
10110 pointer to its default shape. (Bug#14558)
10111
55577e7c
SM
101122013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
10113
10114 * lisp.mk (lisp): Add prog-mode.el.
10115
f019a684
PE
101162013-06-05 Paul Eggert <eggert@cs.ucla.edu>
10117
10118 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
10119 * process.c (dummy_handler): New function.
10120 (lib_child_handler): New static var.
10121 (handle_child_signal): Invoke it.
10122 (catch_child_signal): If a library has set up a signal handler,
10123 save it into lib_child_handler.
10124 (init_process_emacs): If using glib and not on Windows, tickle glib's
10125 child-handling code so that it initializes its private SIGCHLD handler.
10126 * syssignal.h (SA_SIGINFO): Default to 0.
10127 * xterm.c (x_term_init): Remove D-bus hack that I installed on May
10128 31; it should no longer be needed now.
10129
90db8702
MA
101302013-06-05 Michael Albinus <michael.albinus@gmx.de>
10131
10132 * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
10133
10134 * gfilenotify.c (globals_of_gfilenotify): New function.
10135 (syms_of_gfilenotify): Move global initialization there.
10136
10137 * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
10138
bfa3acd6
SM
101392013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
10140
10141 * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
10142 * keyboard.c (menu_bar_items, tool_bar_items):
10143 * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
10144 not override local keymaps any more.
10145
ba59bd80
EZ
101462013-06-04 Eli Zaretskii <eliz@gnu.org>
10147
10148 * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540)
10149
7f203aa1
EZ
101502013-06-03 Eli Zaretskii <eliz@gnu.org>
10151
9337e206
EZ
10152 * w32console.c (initialize_w32_display): Return the dimensions of
10153 the console window via 2 additional arguments, not via the current
10154 frame. This avoids crashes due to overrunning the bounds of
10155 frame's decode_mode_spec_buffer, which is not resized following
10156 the change of the frame dimensions from the initial 10x10.
10157
10158 * w32term.h (w32_initialize_display_info): Adjust prototype.
10159
10160 * term.c (init_tty): Take dimensions of the frame from the values
10161 returned by initialize_w32_display.
10162
7f203aa1
EZ
10163 * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
10164 (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
10165 (LIBES): Add $(GFILENOTIFY_LIBS).
10166
10167 * w32inevt.c (handle_file_notifications): Add dummy implementation
10168 for !HAVE_W32NOTIFY.
10169
10170 * w32term.c: Wrap code with HAVE_W32NOTIFY.
10171
55a87246
JD
101722013-06-03 Jan Djärv <jan.h.d@swipnet.se>
10173
10174 * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
10175
10176 * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
10177
10178 * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
10179
3d5ee10a
PE
101802013-06-03 Paul Eggert <eggert@cs.ucla.edu>
10181
10182 Fix minor problems found by static checking.
10183 * data.c (pure_write_error):
10184 Use xsignal2, not Fsignal, as Fsignal might return.
10185 * eval.c (set_backtrace_debug_on_exit): Now static.
10186 (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
10187 No longer inline. EXTERN_INLINE is needed only for functions
10188 defined in .h files. Reindent function header as per GNU style.
10189 (backtrace_p, backtrace_top, backtrace_next):
10190 Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
10191 compiler or linker. Add extern decls to pacify gcc -Wall.
10192 * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
10193 Now static.
10194 * frame.c (free_monitors): Define only on platforms that need it.
10195 * nsterm.m (ns_term_init):
10196 * process.c (catch_child_signal):
10197 Don't worry about whether SIGCHLD is defined, as SIGCHLD is
10198 defined on all porting targets these days.
10199 * process.c, process.h (catch_child_signal):
10200 Make it extern only if NS_IMPL_GNUSTEP is defined.
10201
e2d8a6f0
EZ
102022013-06-03 Eli Zaretskii <eliz@gnu.org>
10203
10204 * w32.c (gettimeofday): Make the signature identical to prototype
10205 in nt/inc/sys/time.h.
10206
a8a7c5f6
SM
102072013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
10208
10209 * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
10210 .gdbinit.
10211
10212 * keyboard.c (safe_run_hooks_error): Improve error message.
10213
10214 * data.c (pure_write_error): Add `object' argument.
10215 * puresize.h (CHECK_IMPURE): Use it.
10216
c9628c79
MA
102172013-06-03 Michael Albinus <michael.albinus@gmx.de>
10218
10219 * Makefile.in (NOTIFY_OBJ): New variable.
10220 (base_obj): Replace inotify.o by $(NOTIFY_OBJ).
10221
10222 * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
10223 Call syms_of_gfilenotify.
10224
10225 * gfilenotify.c: New file.
10226
10227 * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
10228 and Qfile_w32notify.
10229 (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
10230 HAVE_W32NOTIFY and USE_FILE_NOTIFY.
10231
10232 * lisp.h: Declare syms_of_gfilenotify.
10233
10234 * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
10235
2f592f95
SM
102362013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
10237
10238 Merge the specpdl and backtrace stacks. Make the structure of the
10239 specpdl entries more obvious via a tagged union of structs.
10240 * lisp.h (BITS_PER_PTRDIFF_T): New constant.
10241 (enum specbind_tag): New enum.
10242 (struct specbinding): Make it a tagged union of structs.
10243 Add a case for backtrace records.
10244 (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
10245 (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
10246 (backtrace_debug_on_exit): New accessors.
10247 (struct backtrace): Remove.
10248 (struct catchtag): Remove backlist field.
10249 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
10250 Move to eval.c.
10251 (Flocal_variable_p): Speed up the common case where the binding is
10252 already loaded.
10253 * eval.c (backtrace_list): Remove.
10254 (set_specpdl_symbol, set_specpdl_old_value): Remove.
10255 (set_backtrace_args, set_backtrace_nargs)
10256 (set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
10257 (backtrace_next): New functions.
10258 (Fdefvaralias, Fdefvar): Adjust to new specpdl format.
10259 (unwind_to_catch, internal_lisp_condition_case)
10260 (internal_condition_case, internal_condition_case_1)
10261 (internal_condition_case_2, internal_condition_case_n): Don't bother
10262 with backtrace_list any more.
10263 (Fsignal): Adjust to new backtrace format.
10264 (grow_specpdl): Move up.
10265 (record_in_backtrace): New function.
10266 (eval_sub, Ffuncall): Use it.
10267 (apply_lambda): Adjust to new backtrace format.
10268 (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
10269 data.c.
10270 (specbind): Adjust to new specpdl format. Simplify.
10271 (record_unwind_protect, unbind_to): Adjust to new specpdl format.
10272 (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
10273 backtrace format.
10274 (mark_backtrace): Remove.
10275 (mark_specpdl, get_backtrace, backtrace_top_function): New functions.
10276 * xdisp.c (redisplay_internal): Use record_in_backtrace.
10277 * alloc.c (Fgarbage_collect): Use record_in_backtrace.
10278 Use mark_specpdl.
10279 * profiler.c (record_backtrace): Use get_backtrace.
10280 (handle_profiler_signal): Use backtrace_top_function.
10281 * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
10282 accessor functions.
10283
c0342369
JD
102842013-06-02 Jan Djärv <jan.h.d@swipnet.se>
10285
10286 * process.h (catch_child_signal): Declare.
10287
10288 * process.c (catch_child_signal): New function.
10289 (init_process_emacs): Call it.
10290
10291 * nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
10292 (ns_menu_bar_is_hidden, menu_will_open_state): Define only if
10293 NS_IMPL_COCOA.
10294 (x_set_cursor_type): Remove declaration.
10295 (ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
a6c4680a 10296 (ns_update_end, ns_focus, ns_unfocus): Remove GNUstep specific code.
c0342369
JD
10297 (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
10298 (ns_get_color): Use F suffix on float.
10299 (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
10300 (ns_get_rgb_color): Remove.
10301 (x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
10302 (note_mouse_movement): x and y are CGFloat.
10303 (ns_draw_fringe_bitmap): Remove unused rowY.
10304 Change #if to COCOA && >= 10_6.
10305 (ns_draw_window_cursor): Remove unused overspill.
10306 (ns_draw_underwave): width and x are EamcsCGFloat.
10307 (ns_draw_box): thickness is CGFloat.
10308 (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
10309 (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
10310 if not in main thread.
10311 (ns_get_pending_menu_title, ns_check_menu_open)
10312 (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
10313 (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
10314 (sendFromMainThread:): New method.
10315 (changeFont:): size is CGFloat.
10316 (keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
10317 Disable warning about permanent text.
a6c4680a 10318 (characterIndexForPoint:): Adjust return type depending on GNUstep
c0342369
JD
10319 version.
10320 (mouseDown:): delta is CGFloat.
10321 (updateFrameSize): Remove unised variable f.
10322 (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
10323 Cast float to EmacsCGFloat.
10324 (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
10325 also to -1 when restoring.
10326 (windowDidExitFullScreen:): Put call to updateCollectionBehaviour
10327 inside NS_IMPL_COCOA.
10328 (toggleFullScreen:): Put call to toggleFullScreen inside
10329 NS_IMPL_COCOA. Cast float to EmacsCGFloat.
10330 (setPosition:portion:whole:): por is CGFloat.
10331 (getMouseMotionPart:window:x:y:): Add F suffix to float.
10332 (mouseDown:): Use CGFloat.
10333 (mouseDragged:): Remove unised variable edge.
10334 (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
10335
a6c4680a 10336 * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUstep when the size
c0342369
JD
10337 of CGFloat differs.
10338 (EmacsApp): New variable nextappdefined. Declare sendFromMainThread
10339 when NS_IMPL_GNUSTEP.
10340 (EmacsDocument): Declare when NS_IMPL_GNUSTEP.
10341 (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
10342 (EmacsToolbar): Add clearAll. Add tag argument to
10343 addDisplayItemWithImage.
10344 (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
10345
10346 * nsselect.m (ns_get_local_selection): Remove unused variable type.
10347
10348 * nsmenu.m (ns_update_menubar): Make static.
10349 (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
10350 (fillWithWidgetValue:): Add cast to SEL for setAction.
10351 (addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
a6c4680a 10352 (update_frame_tool_bar): Update code for GNUstep.
c0342369
JD
10353 (clearAll): New method.
10354 (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
4f405069 10355 argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
e7b41c4c 10356 Move identifierToItem setObject and activeIdentifiers addObject before
c0342369
JD
10357 call to insertItemWithItemIdentifier.
10358 (validateVisibleItems): Fix indentation.
10359 (toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
10360 (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
10361 UtilityWindow to aStyle, remove call to setStyleMask.
10362
10363 * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
10364
10365 * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
10366 (ns_charset_covers, ns_get_covering_families, nsfont_open):
10367 Use F suffix on floats.
10368 (ns_char_width): Returns CGFloat.
10369 (ns_ascii_average_width): w is CGFloat instead of float.
e7b41c4c 10370 (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to
c0342369
JD
10371 DPSxshow.
10372 (ns_glyph_metrics): CGFloat instead of float.
10373
a0eb10b3
JB
10374 * nsfns.m (x_set_foreground_color, x_set_background_color):
10375 Use EmacsCGFloat.
10376 (ns_implicitly_set_icon_type, Fx_create_frame): Make static,
10377 remove unused variables.
10378 (Fns_read_file_name): Keep track if panel is for save.
10379 Use ns_filename_from_panel/ns_directory_from_panel.
c0342369 10380 (Fns_list_services): delegate only used for COCOA.
a6c4680a
GM
10381 (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUstep.
10382 Just return the input if GNUstep.
c0342369
JD
10383 (x_screen_planes): Remove.
10384 (Fxw_color_values): Use EmacsCGFloat
10385 (Fns_display_monitor_attributes_list): Only get screen number for
10386 Cocoa.
ef099a94 10387 (getDirectory, getFilename): Remove from EmacsOpenPanel and
c0342369
JD
10388 EmacsSavePanel.
10389 (EmacsOpenPanel:ok:): Use ns_filename_from_panel and
10390 ns_directory_from_panel.
10391
da9aff11
PE
103922013-06-01 Paul Eggert <eggert@cs.ucla.edu>
10393
10394 * process.c (handle_child_signal): Also use WCONTINUED.
10395 This is so that list-processes doesn't mistakenly list the process
10396 as stopped, when the process has actually been continued and is
10397 now running.
10398
0e64479a
PE
103992013-05-31 Paul Eggert <eggert@cs.ucla.edu>
10400
fc186a96
PE
10401 Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
10402 * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
10403 not already configured.
10404
0e64479a
PE
10405 * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
10406
38b787fa
EZ
104072013-05-29 Eli Zaretskii <eliz@gnu.org>
10408
10409 * Makefile.in (mostlyclean): Remove *.res files.
10410
22513e52
SM
104112013-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
10412
10413 * fileio.c (Finsert_file_contents): Preserve undo info when reverting
10414 a buffer (bug#8447).
10415
6ef3db10
EZ
104162013-05-27 Eli Zaretskii <eliz@gnu.org>
10417
10418 * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
10419 display vector, and we backtrack, handle the case that the
10420 previous character position is also displayed from a display
10421 vector or covered by a display string or image. (Bug#14476)
10422
6799bb26
JD
104232013-05-25 Jan Djärv <jan.h.d@swipnet.se>
10424
10425 * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
10426 (struct MonitorInfo, free_monitors): Remove.
10427 (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
10428 (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
10429 (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
10430 Qframes, Qsource.
10431
10432 * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
10433 (struct MonitorInfo, free_monitors): Remove.
10434 (ns_screen_name): Make static.
10435 (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
10436 (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
10437 Qframes, Qsource.
10438
10439 * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
10440 (struct MonitorInfo): New struct.
10441 (free_monitors, make_monitor_attribute_list): Declare.
10442
22513e52
SM
10443 * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
10444 New Lisp_Object:s.
6799bb26
JD
10445 (free_monitors, make_monitor_attribute_list): New functions.
10446 (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
10447 Qsource.
10448
38cd43eb
XF
104492013-05-25 Xue Fuqiao <xfq.free@gmail.com>
10450
10451 * callproc.c (call_process): Refine the doc string. (Bug#14045)
10452
2af0948d
SM
104532013-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
10454
a7eb9b0f
SM
10455 * keyboard.c: Apply keyboard decoding only to events that come directly
10456 from the tty, not from unread-command-events (bug#14368).
0f1d2934 10457 (read_event_from_main_queue): New function, extracted from read_char.
a7eb9b0f
SM
10458 (read_decoded_char): Remove.
10459 (read_decoded_event_from_main_queue): New function to replace it.
10460 (read_char): Use it.
10461 (read_key_sequence): Use read_char rather than read_decoded_char.
10462
2af0948d
SM
10463 * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
10464
9698f11c 104652013-05-22 Barry O'Reilly <gundaetiapo@gmail.com>
1413e9a5
BR
10466
10467 * casetab.c (init_casetab_once): Fix last change (bug#14424).
10468
e6d2f155
KH
104692013-05-22 Kenichi Handa <handa@gnu.org>
10470
10471 The following changes are to fix the setting of
10472 buffer-file-coding-system on, for instance, C-x RET c unix RET
10473 _FILE_OF_DOS_EOL_TYPE_ RET.
10474
10475 * coding.h (struct coding_system): New member detected_utf8_chars.
10476
10477 * coding.c (detect_coding_utf_8): Count characters and check EOL
10478 format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
10479 BOM is there.
10480 (setup_coding_system): Do not initialize coding->head_ascii.
10481 (check_ascii): Do not set coding->eol_seen but update it. Do not
10482 call adjust_coding_eol_type here.
1413e9a5
BR
10483 (detect_coding): Fix detection of BOM for utf-8 and utf-16.
10484 If the eol-type of CODING is already specified, adjust the eol type
e6d2f155
KH
10485 of the found coding-system.
10486 (decode_coding_gap): Cancel previous change. Utilize the
10487 character numbers counted by detect_coding_utf_8. Fix detection
10488 of BOM for utf-8.
10489
9698f11c 104902013-05-21 Barry O'Reilly <gundaetiapo@gmail.com>
fc30d803
SM
10491
10492 * search.c (looking_at_1): Only set last_thing_searched if the match
10493 changed the match-data (bug#14281).
10494
ecc3c6ed
DA
104952013-05-21 Dmitry Antipov <dmantipov@yandex.ru>
10496
10497 * xdisp.c (reseat_at_previous_visible_line_start):
a0eb10b3 10498 Already declared in dispextern.h, so remove it here.
ecc3c6ed
DA
10499 (move_it_vertically_backward): Likewise.
10500
5ba8bf35
YM
105012013-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10502
10503 * xfns.c (check_x_display_info): Don't use XINT for terminal object.
d6635ba2 10504 (Fx_display_pixel_width, Fx_display_pixel_height)
fc30d803
SM
10505 (Fx_display_mm_width, Fx_display_mm_height):
10506 Mention `display-monitor-attributes-list' in docstrings.
5ba8bf35 10507
91e8418b 10508 * nsfns.m (ns_get_screen): Remove function. All uses removed.
a0eb10b3 10509 (check_ns_display_info): Sync with check_x_display_info in xfns.c.
91e8418b
YM
10510 (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
10511 (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
10512 (Fx_display_backing_store, Fx_display_visual_class)
10513 (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
10514 (Fx_display_grayscale_p, Fx_display_pixel_width)
10515 (Fx_display_pixel_height, Fx_display_planes)
10516 (Fx_display_color_cells): Sync args and docstrings with xfns.c.
10517 (Fx_display_screens): Don't confuse X11 screens with NS screens.
10518 (Fx_display_mm_width, Fx_display_mm_height)
10519 (Fx_display_pixel_width, Fx_display_pixel_width): Return width or
10520 height for all physical monitors as in X11.
10521
fc30d803
SM
10522 * nsterm.m (x_display_pixel_width, x_display_pixel_height):
10523 Return pixel width or height for all physical monitors as in X11.
91e8418b 10524
31ff141c
PE
105252013-05-18 Paul Eggert <eggert@cs.ucla.edu>
10526
10527 Port --enable-gcc-warnings to clang.
10528 * bytecode.c (exec_byte_code):
10529 * regex.c:
10530 Redo diagnostic pragmas to pacify clang, too.
10531 * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
10532 * editfns.c (Fencode_time):
10533 * fileio.c (file_accessible_directory_p):
10534 * font.c (font_unparse_xlfd):
10535 Use '&"string"[index]' instead of '"string" + (index)'.
10536 * undo.c (user_error): Remove; unused.
10537
df065a0b
EZ
105382013-05-16 Eli Zaretskii <eliz@gnu.org>
10539
04d360e7
EZ
10540 * insdel.c (insert_1_both): Document the arguments, instead of
10541 referring to insert_1, which no longer exists.
10542
5bb98290
EZ
10543 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
10544 some window, increment windows_or_buffers_changed, so that
10545 *Messages* display in that window is updated. (Bug#14408)
10546
df065a0b
EZ
10547 * w32.c: Include epaths.h.
10548 (init_environment): Use cmdproxy.exe without leading directories.
10549 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
10550 case.
10551 (gettimeofday): Adjust signature and return value to Posix
10552 expectations.
10553
10554 * unexw32.c (open_output_file): Delete the existing emacs.exe
10555 before creating it, to break the hard link to the versioned
10556 executable.
10557
10558 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
10559 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
10560 (FIRSTFILE_OBJ): New variables.
10561 (W32_RES): Rename to EMACSRES. All users changed.
10562 (base_obj): Use $(CM_OBJ).
10563 (ALLOBJS): Use $(FIRSTFILE_OBJ).
10564 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
10565 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
10566 $(W32_RES_LINK) before $(LIBES).
10567 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
10568
1aa8d505
SM
105692013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
10570
6e911150
SM
10571 * makefile.w32-in (DOC): Use just "DOC".
10572
10573 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
10574
1aa8d505
SM
10575 * process.c: Export default filters and sentinels to Elisp.
10576 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
10577 New constants.
10578 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
10579 (Fset_process_sentinel, Fformat_network_address):
10580 Default to them instead of nil.
10581 (server_accept_connection): Sentinels can't be nil any more.
10582 (read_and_dispose_of_process_output): New function, extracted from
10583 read_process_output.
10584 (read_process_output): Use it; filters can't be nil.
10585 (Finternal_default_process_filter): New function, extracted from
10586 read_process_output.
10587 (exec_sentinel_unwind): Remove function.
10588 (exec_sentinel): Don't zilch sentinel while running.
10589 (status_notify): Sentinels can't be nil.
10590 (Finternal_default_process_sentinel): New function extracted from
10591 status_notify.
10592 (setup_process_coding_systems): Default filter is not nil any more.
10593 (syms_of_process): Export new Elisp functions and initialize
10594 new constants.
10595 * lisp.h (make_lisp_proc): New function.
10596
5ac2eb34
SM
105972013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
10598
10599 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
10600
eda9c7d7
EZ
106012013-05-14 Eli Zaretskii <eliz@gnu.org>
10602
10603 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
5ac2eb34
SM
10604 unless we know that the window w is a leaf window.
10605 Another attempt at solving bug#14062.
eda9c7d7 10606
8fdeaad5
JD
106072013-05-14 Jan Djärv <jan.h.d@swipnet.se>
10608
10609 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
10610 fdesc (Bug#14375).
10611
44aa9ee6
PE
106122013-05-12 Paul Eggert <eggert@cs.ucla.edu>
10613
10614 * image.c (gif_load): Check that subimages fit (Bug#14345).
10615
759fd763
SM
106162013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
10617
10618 * lread.c (skip_dyn_eof): New function.
10619 (read1): Use it to skip the end of a file in response to #@00.
10620
10621 * doc.c (get_doc_string): Slightly relax the sanity checking.
10622
4465bfb4
JD
106232013-05-09 Jan Djärv <jan.h.d@swipnet.se>
10624
10625 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
10626 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
10627 (MonitorInfo): New struct.
10628 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
10629 (Fns_display_monitor_attributes_list): New functions.
10630 (display-usable-bounds): Remove.
10631 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
10632 Qsource.
10633
7583e2a0
PE
106342013-05-09 Paul Eggert <eggert@cs.ucla.edu>
10635
10636 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
10637 (GTK_CHECK_VERSION): New macro, if not already defined.
10638 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
10639 replaced by GTK_CHECK_VERSION.
10640
ad75d77e
PE
106412013-05-08 Paul Eggert <eggert@cs.ucla.edu>
10642
10643 * xterm.h (GTK_PREREQ): New macro.
10644 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
10645 to use this macro instead, for consistency and clarity.
10646
07525f77
EZ
106472013-05-08 Eli Zaretskii <eliz@gnu.org>
10648
10649 * xdisp.c (row_for_charpos_p): New function, with code of
10650 cursor_row_p, but accepts an additional argument CHARPOS instead
10651 of using a hardcoded PT.
10652 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
10653 (row_containing_pos): Call row_for_charpos_p instead of partially
10654 doing the same. Fixes cursor positioning under longlines-mode
10655 when longlines-show-effect includes more than one newline, when
10656 moving the cursor vertically up.
10657
d901fc8d
JB
106582013-05-08 Juanma Barranquero <lekktu@gmail.com>
10659
10660 * makefile.w32-in (ACL_H): New macro.
10661 ($(BLD)/fileio.$(O)): Update dependencies.
10662
f269bc61
PE
106632013-05-07 Paul Eggert <eggert@cs.ucla.edu>
10664
e7b41c4c 10665 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
ffdc270a
PE
10666 * Makefile.in (LIB_ACL): New macro.
10667 (LIBACL_LIBS): Remove.
10668 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
10669 * fileio.c: Include <acl.h>.
10670 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
10671 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
10672 !acl_errno_valid.
10673 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
10674 it ourselves.
10675
f269bc61
PE
10676 * unexelf.c: Don't assume ElfW (Half) fits in int.
10677 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
10678 when dealing with ElfW (Half) values, since they can exceed 2**31
10679 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
10680 (entry_address): Omit unused NUM arg. All uses changed.
10681
a261c53e
JL
106822013-05-07 Juri Linkov <juri@jurta.org>
10683
10684 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
10685 to the string converted from number with `Fnumber_to_string'.
10686 (Bug#14254)
10687
2b66427d
PE
106882013-05-07 Paul Eggert <eggert@cs.ucla.edu>
10689
10690 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
10691 This fixes a problem introduced by my previous change.
10692
15acfe41
GM
106932013-05-07 Glenn Morris <rgm@gnu.org>
10694
10695 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
10696
5ea03bf5
JD
106972013-05-07 Jan Djärv <jan.h.d@swipnet.se>
10698
10699 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
10700
e0c9d565
PE
107012013-05-07 Paul Eggert <eggert@cs.ucla.edu>
10702
10703 Static checking by GCC 4.8.0.
10704 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
10705 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
10706 (x_get_monitor_attributes_fallback)
10707 (x_get_monitor_attributes_xinerama)
10708 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
10709 Define only if USE_GTK.
10710 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
10711 (x_get_monitor_attributes_fallback): Omit unused locals.
10712 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
10713 Use double, not float, to avoid mixed-mode floating point arithmetic.
10714
4e3f9230
YM
107152013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
10716 Jan Djärv <jan.h.d@swipnet.se>
10717
10718 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
10719 (XINERAMA_CFLAGS): New macros.
10720 (ALL_CFLAGS, LIBES): Use them.
10721
10722 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
10723 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
10724 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
10725 (syms_of_xfns): DEFSYM them.
10726 (struct MonitorInfo): New struct.
10727 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
10728 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
10729 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
10730 (x_get_monitor_attributes_xinerama): New functions.
10731 (Fx_display_monitor_attributes_list): New primitive.
10732 (syms_of_xfns): Defsubr it.
10733
10734 * xterm.h (x_display_info): Add Xatom_net_workarea and
10735 Xatom_net_current_desktop.
10736
10737 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
10738 and dpyinfo->Xatom_net_current_desktop.
10739
05839b6a
EZ
107402013-05-06 Eli Zaretskii <eliz@gnu.org>
10741
10742 * xdisp.c (pos_visible_p): Use the special code for finding the
10743 beginning of a display property or overlay for any "replacing"
10744 display property, not just for display strings. This solves
10745 incorrect reporting of position by posn-at-point. (Bug#14241)
10746
dc4a2ee0
PE
107472013-05-06 Paul Eggert <eggert@cs.ucla.edu>
10748
5ee94506
PE
10749 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
10750 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
10751 Verify that ElfW (Half) fits in int.
10752 (fatal): Use same signature as lisp.h.
10753 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
10754 configure and build with -DUNEXELF_DEBUG without worrying about
10755 other modules that use DEBUG.
10756 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
10757 possibly-wide integers now uses it instead of plain fprintf.
10758 (entry_address): New function, which avoids problems with 32-bit
10759 overflow on 64-bit hosts.
10760 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
10761 (round_up): Don't assume the remainder fits in int.
10762 (find_section): Use bool for boolean. Simplify debug code.
10763 (unexec): Don't assume file sizes fit in int or size_t.
10764 Omit unnecessary trailing newline in 'fatal' format.
10765 Use strerror rather than outputting decimal error number.
10766 Remove unused code when emacs is not defined;
10767 this file relies on Emacs now.
10768 Don't assume e_phnum and e_shnum are positive.
10769
dc4a2ee0
PE
10770 * regex.c: Fix problems when DEBUG is defined.
10771 (extract_number, extract_number_and_incr): Define regardless of
10772 whether DEBUG is defined; that's simpler and makes the code less
10773 likely to go stale in the normal case when DEBUG is not defined.
10774 Return int rather than taking an int * arg. All callers changed.
10775 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
10776 Remove, replacing with ...
10777 (DEBUG_PRINT): New macro. All callers changed.
10778 (DEBUG_COMPILES_ARGUMENTS): New macro.
10779 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
10780 (print_compiled_pattern, print_double_string) [DEBUG]:
10781 Use prototype rather than old-style definition.
10782 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
10783 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
10784 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
10785 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
10786 Don't assume ptrdiff_t, size_t, and long are the same width as int.
10787 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
10788 This matters only when DEBUG is defined.
10789
14c7ed05
EZ
107902013-05-05 Eli Zaretskii <eliz@gnu.org>
10791
10792 * xdisp.c (set_iterator_to_next): Set the
10793 ignore_overlay_strings_at_pos_p flag only if we are _really_
10794 iterating over an overlay string, as indicated by the
10795 current.overlay_string_index member. (Bug#14306)
10796
e6076b1b
JD
107972013-05-05 Jan Djärv <jan.h.d@swipnet.se>
10798
10799 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
10800 to where it is used, to avoid autorelease issues (Bug#14050).
10801
cbee2131
PE
108022013-05-05 Paul Eggert <eggert@cs.ucla.edu>
10803
10804 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
10805 * fileio.c (syms_of_fileio): Implement this.
10806 * filelock.c (create_lock_file): If symbolic links don't work, so
10807 we use a regular file as a lock file, do not fsync the lock file;
10808 it's not needed.
10809
30c7e542
SM
108102013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
10811
10812 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
10813 (syms_of_minibuf): Adjust accodingly.
10814 * lread.c (Fread):
10815 * callint.c (Fcall_interactively): Adjust calls accordingly.
10816
5bebd186
EZ
108172013-05-04 Eli Zaretskii <eliz@gnu.org>
10818
10819 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
30c7e542
SM
10820 w->contents is a buffer before computing everything else.
10821 Use parentheses to disambiguate last part of the condition.
5bebd186
EZ
10822
10823 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
10824 assertion violations. (Bug#14062)
10825
0fb0a4f3
DR
108262013-05-01 David Reitter <david.reitter@gmail.com>
10827
10828 * nsfns.m (ns_tooltip): Initialize.
10829
9e63b4a5
EZ
108302013-04-28 Eli Zaretskii <eliz@gnu.org>
10831
10832 * coding.c (decode_coding_gap): Don't remove the character before
10833 a newline unless it's a CR character. (Bug#14287)
10834
ad60824e
DN
108352013-04-28 Dan Nicolaescu <dann@gnu.org>
10836
10837 * dispextern.h (struct face): Move enum face_underline_type
10838 earlier so that bitfields can be in the same word.
10839
edbdcec0
JD
108402013-04-28 Jan Djärv <jan.h.d@swipnet.se>
10841
10842 * nsfns.m (handlePanelKeys): New function.
10843 (EmacsOpenPanel:performKeyEquivalent:)
10844 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
10845 arrows/function/control and copy/paste keys (Bug#14296).
10846
0208ede7
JL
108472013-04-27 Juri Linkov <juri@jurta.org>
10848
10849 * callint.c (Fcall_interactively): Call `Qread_number' for
10850 interactive code letter `n' instead of using duplicate code.
10851 (Bug#14254)
10852
b8dd59f7
PE
108532013-04-27 Paul Eggert <eggert@cs.ucla.edu>
10854
10855 * systime.h (make_timeval): Declare as 'const'.
10856
8bd722db
KH
108572013-04-27 Kenichi Handa <handa@gnu.org>
10858
10859 * font.c (font_open_entity): Always open a font of manageable
10860 size.
10861
13d0e56f 108622013-04-26 Paul Eggert <eggert@cs.ucla.edu>
cbee2131 10863
f780d632
PE
10864 Port better to AIX (Bug#14258).
10865 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
10866 to pacify AIX xlc.
10867
ec509856
KH
108682013-04-24 Kenichi Handa <handa@gnu.org>
10869
10870 * coding.c (decode_coding_iso_2022): When an invalid escape
10871 sequence is encountered, reset the invocation and designation
10872 status to the safest one.
10873
84fc48e5
PE
108742013-04-22 Paul Eggert <eggert@cs.ucla.edu>
10875
10876 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
10877 Without this fix, "make distclean" leaves stamp-h1 behind.
10878
806bda47
EC
108792013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
10880
10881 * w32fns.c (w32_fullscreen_rect): New function to compute the
10882 window rectangle for the given fullscreen mode.
10883 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
10884 longer tunes the window size. This keeps the window's edges flush
10885 with the screen and allows the taskbar to hide itself in fullboth.
10886
10887 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
10888 window decorations and uses the entire screen.
10889
10890 * w32term.h (w32_fullscreen_rect) Add prototype.
10891 (struct w32_output): Replace normal_width, normal_height,
10892 normal_top, and normal_left members with a single normal_placement
10893 struct.
10894 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
10895 Remove macros.
10896 (FRAME_NORMAL_PLACEMENT): New macro.
10897
9cc2810b
JB
108982013-04-16 Juanma Barranquero <lekktu@gmail.com>
10899
10900 * minibuf.c (Ftest_completion): Silence compiler warning.
10901
fd16b54c
EZ
109022013-04-15 Eli Zaretskii <eliz@gnu.org>
10903
10904 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
5fbcd237 10905 bug#14062.
fd16b54c
EZ
10906
10907 * frame.h (WINDOW_FRAME): Protect macro and its argument with
10908 parentheses.
10909
10910 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
10911 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
10912 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
10913 parentheses where appropriate.
10914
9e3379a0
PE
109152013-04-14 Paul Eggert <eggert@cs.ucla.edu>
10916
10917 * keyboard.c (timer_start_idle): Remove no-longer-used local.
10918
ddd6b685
EZ
109192013-04-14 Eli Zaretskii <eliz@gnu.org>
10920
a544fbe1 10921 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>:
ddd6b685
EZ
10922 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
10923 Mention in the doc string that setting these variables takes
10924 effect only after a call to set-window-buffer. (Bug#14200)
10925
29b79ba1
EZ
109262013-04-13 Eli Zaretskii <eliz@gnu.org>
10927
10928 * indent.c (Fvertical_motion): Don't consider display strings on
10929 overlay strings as display strings on the buffer position we
10930 started from. This prevents vertical cursor motion from jumping
10931 more than one line when there's an overlay string with a display
10932 property at end of line.
10933 Reported by Karl Chen <Karl.Chen@quarl.org> in
10934 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
10935
562c6ee9
SM
109362013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
10937
10938 * window.c (select_window): `record_buffer' even if window is
10939 already selected (bug#14191).
10940
fcc1fe85
EZ
109412013-04-11 Eli Zaretskii <eliz@gnu.org>
10942
10943 * window.c (Fwindow_end): Test more flags, including the buffer's
10944 last_overlay_modified flag, to determine whether the window's
10945 display is really up-to-date. Prevents the function from
10946 returning a stale value. (Bug#14170)
10947 (Fwindow_line_height): Fix the test for up-to-date-ness of the
10948 current matrix.
10949
f009190a
EZ
109502013-04-10 Eli Zaretskii <eliz@gnu.org>
10951
10952 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
562c6ee9
SM
10953 garbaged only if it is not already the top frame on its TTY.
10954 This prevents flickering due to constant redrawing of TTY frames when
f009190a
EZ
10955 there are GUI frames open in the same session. (Bug#13864)
10956
78ce603d
SM
109572013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
10958
10959 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
10960 of marking the idle timers directly.
10961
a8036e40
SM
109622013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
10963
10964 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
10965 tables (bug#14054).
10966
7ffe7ef6
SM
109672013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
10968
10969 * window.c (select_window): Don't record_buffer while the invariant is
10970 temporarily broken (bug#14161).
10971
10972 * fns.c (Fdelq): Don't assume !NILP => CONSP.
10973
7d9f6883
EZ
109742013-04-07 Eli Zaretskii <eliz@gnu.org>
10975
10976 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
10977
5406cfd9
RF
109782013-04-07 Romain Francoise <romain@orebokech.com>
10979
10980 Ignore additional platform-specific ACL errors (Bug#13702).
10981 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
10982 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
10983
95c0e83b
JD
109842013-03-31 Jan Djärv <jan.h.d@swipnet.se>
10985
10986 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
10987 f->output_data.ns.
10988
876da980
PE
109892013-04-07 Paul Eggert <eggert@cs.ucla.edu>
10990
10991 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
10992 This bug was introduced by my 2013-02-25 change that simplified
10993 data_start configuration. Without this change, on GNU/Linux
10994 an Emacs configured with --enable-profiling fails immediately
10995 due to a profiler signal.
10996 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
10997 with these flags. On platforms where special flags are needed
10998 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
10999 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
11000 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
11001
7452b7bd
DA
110022013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
11003
11004 Get rid of some platform-specific functions examining window
11005 system and its capabilities. This is a partial rework of the
11006 2013-04-05 change.
11007 * lisp.h (have_menus_p): Remove prototype. This function is
11008 replaced with platform-independent window_system_available.
11009 (check_window_system): Move to...
11010 * frame.h (decode_window_system_frame, window_system_available):
11011 ...here, add new prototypes.
11012 * frame.c (window_system_available, decode_window_system_frame):
11013 New functions.
11014 (check_window_system): Platform-independent now.
11015 * xterm.h (x_in_use): Remove declaration.
11016 (check_x_frame):
11017 * w32term.h (check_x_frame):
11018 * nsterm.h (check_x_frame): Remove prototypes. This function
11019 is replaced with platform-independent decode_window_system_frame.
11020 * msdos.c (have_menus_p): Remove.
11021 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
11022 Remove platform-specific functions. Use check_window_system,
11023 decode_window_system_frame and check_ns_display_info where
11024 appropriate. Minor style and comment tweaks.
11025 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
11026 (check_x_frame): Likewise.
11027 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
11028 Likewise.
11029 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
11030 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
11031 * xmenu.c, xselect.c: All related users changed.
11032
251e9147
KH
110332013-04-03 Kenichi Handa <handa@gnu.org>
11034
11035 The following changes is to optimize the code for reading UTF-8
11036 files.
11037
562c6ee9 11038 * coding.c (check_ascii): Rename from detect_ascii. Return value
251e9147
KH
11039 changed. Check EOL format. Do not call adjust_coding_eol_type
11040 here.
11041 (check_utf_8): New function.
11042 (adjust_coding_eol_type): Do nothing if already adjusted.
11043 (detect_coding): Compare the return value of check_ascii with
11044 coding->src_bytes. Call adjust_coding_eol_type if necessary.
11045 (decode_coding_gap): Optimize for valid UTF-8.
11046
8bc369d4
KH
110472013-03-21 Kenichi Handa <handa@gnu.org>
11048
11049 * coding.c (syms_of_coding): Cancel previous change.
11050
11051 * insdel.c (insert_from_gap): Fix previous change.
11052
73931ad1
DA
110532013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
11054
11055 Consistently use platform-specific function to detect window system.
11056 * lisp.h (check_window_system): New prototype. This function is
11057 going to replace check_x, check_w32 and check_ns.
11058 (have_menus_p): Mention msdos.c in comment.
11059 * fontset.c (check_window_system_func): Remove. Adjust all users.
11060 * fontset.h (check_window_system_func): Remove prototype.
11061 * nsterm.h (check_ns):
11062 * xterm.h (check_x):
11063 * w32term.h (check_w32): Likewise.
11064 * menu.c (Fx_popup_menu): Use check_window_system.
11065 * msdos.c (check_window_system): Define for MS-DOS.
11066 * nsfns.m (check_window_system): Define for NS. Adjust all users.
11067 * w32fns.c (check_window_system): Likewise for MS-Windows.
11068 * xfns.c (check_window_system): Likewise for X.
11069 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
11070 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
11071
7216e43b
PE
110722013-04-02 Paul Eggert <eggert@cs.ucla.edu>
11073
11074 Prefer < to > in range checks such as 0 <= i && i < N.
11075 This makes it easier to visualize quantities on a number line.
11076 This patch doesn't apply to all such range checks,
11077 only to the range checks affected by the 2013-03-24 change.
11078 This patch reverts most of the 2013-03-24 change.
11079 * alloc.c (xpalloc, Fgarbage_collect):
11080 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
11081 * character.c (string_escape_byte8):
11082 * charset.c (read_hex):
11083 * data.c (cons_to_unsigned):
11084 * dispnew.c (update_frame_1):
11085 * doc.c (Fsubstitute_command_keys):
11086 * doprnt.c (doprnt):
11087 * editfns.c (hi_time, decode_time_components):
11088 * fileio.c (file_offset):
11089 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
11090 * font.c (font_intern_prop):
11091 * frame.c (x_set_alpha):
11092 * gtkutil.c (get_utf8_string):
11093 * indent.c (check_display_width):
11094 * keymap.c (Fkey_description):
11095 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
11096 * lread.c (read1):
11097 * minibuf.c (read_minibuf_noninteractive):
11098 * process.c (wait_reading_process_output):
11099 * search.c (Freplace_match):
11100 * window.c (get_phys_cursor_glyph):
11101 * xdisp.c (redisplay_internal):
11102 * xsmfns.c (smc_save_yourself_CB):
11103 Prefer < to > for range checks.
11104 * dispnew.c (sit_for): Don't mishandle NaNs.
11105 This fixes a bug introduced in the 2013-03-24 change.
11106 * editfns.c (decode_time_components): Don't hoist comparison.
11107 This fixes another bug introduced in the 2013-03-24 change.
11108
92759988
DA
111092013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
11110
11111 * frame.h (struct frame): Drop scroll_bottom_vpos
11112 member becaue all real users are dead long ago.
11113 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
11114 * xdisp.c (redisplay_internal): Adjust user.
11115
812a0930 111162013-03-30 Darren Hoo <darren.hoo@gmail.com> (tiny change)
9a1971bb 11117
f38ab167
JD
11118 * nsmenu.m (showAtX:Y:for:): setLevel to
11119 NSPopUpMenuWindowLevel (Bug#13998).
11120
6d01f1fe
JD
111212013-03-30 Jan Djärv <jan.h.d@swipnet.se>
11122
11123 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
11124 (ns_check_pending_open_menu): Declare.
11125
11126 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
11127 (x_activate_menubar): Update the menu with title that matches
11128 ns_get_pending_menu_title, and call
11129 ns_check_pending_openmenu (Bug#12698).
11130 (menuWillOpen:): New method.
11131 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
11132
11133 * nsterm.m (menu_will_open_state, menu_mouse_point)
11134 (menu_pending_title): New varaibles.
11135 (ns_get_pending_menu_title, ns_check_menu_open)
11136 (ns_check_pending_open_menu): New functions.
11137
781f4782
DA
111382013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
11139
11140 * indent.c (current_column_bol_cache): Remove leftover which is not
11141 used in Fmove_to_column any more.
11142 (current_column, scan_for_column): Adjust users.
11143 * keyboard.c (last_point_position_buffer, last_point_position_window):
11144 Remove leftovers which are not used for recording undo any more.
11145 (command_loop_1, syms_of_keyboard): Adjust users.
11146 * xdisp.c (last_max_ascent): Remove leftover which is not used in
11147 redisplay_window any more.
11148 (move_it_to): Adjust user.
11149
1921c31b
JB
111502013-03-29 Juanma Barranquero <lekktu@gmail.com>
11151
11152 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
11153 Update dependencies.
11154
717b8bcd
SM
111552013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
11156
11157 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
11158 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
11159 forward references.
11160
e74aeda8
DA
111612013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
11162
11163 * window.h (struct window): Replace hchild, vchild and buffer slots
fa9daa28 11164 with a single slot 'contents'. This is possible because each valid
e74aeda8
DA
11165 window may have either the child window (in vertical or horizontal
11166 combination) or buffer to display (for the leaf window). Using that,
fa9daa28 11167 a lot of operations to traverse and/or change window hierarchies may
e74aeda8
DA
11168 be simplified. New member horizontal is used to distinguish between
11169 horizontal and vertical combinations of internal windows.
11170 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
11171 (WINDOW_VERTICAL_COMBINATION_P): New macros.
11172 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
11173 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
11174 Use contents slot, not buffer, where appropriate.
11175 (wset_combination): New function.
11176 (wset_buffer): Add eassert.
11177 (Fframe_first_window): Simplify the loop reaching first window.
11178 (Fwindow_buffer): Use WINDOW_LEAF_P.
11179 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
11180 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
11181 (unshow_buffer): Convert initial debugging check to eassert.
11182 (replace_window, recombine_windows, Fdelete_other_windows_internal)
11183 (make_parent_window, window_resize_check, window_resize_apply)
11184 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
11185 (Fset_window_configuration, delete_all_child_windows, save_window_save):
11186 Adjust to match struct window changes.
11187 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
11188 (mark_window_cursors_off, count_windows, get_leaf_windows)
11189 (foreach_window_1): Simplify the loop.
11190 * alloc.c (mark_object): Do not check for the leaf window because
11191 internal windows has no glyph matrices anyway.
11192 * dispnew.c (clear_window_matrices, showing_window_margins_p)
11193 (allocate_matrices_for_window_redisplay, fake_current_matrices)
11194 (allocate_matrices_for_frame_redisplay, free_window_matrices)
11195 (build_frame_matrix_from_window_tree, mirror_make_current)
11196 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
11197 (update_window_tree, set_window_update_flags): Simplify the loop.
11198 (sync_window_with_frame_matrix_rows): Enforce live window.
11199 Use contents slot, not buffer, where appropriate.
11200 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
11201 and WINDOW_HORIZONTAL_COMBINATION_P.
11202 (make_frame_visible_1): Simplify the loop.
11203 Use contents slot, not buffer, where appropriate.
11204 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
11205 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
11206 (expose_window_tree): Likewise.
11207 Use contents slot, not buffer, where appropriate.
11208 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
11209 to avoid deleted windows. Use contents slot instead of buffer.
11210 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
11211 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
11212 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
11213 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
11214
121ab1cd
EZ
112152013-03-28 Eli Zaretskii <eliz@gnu.org>
11216
ef454cf7
EZ
11217 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
11218 identify the reasons for assertion violations in bug#14062 and
11219 similar ones.
21e930f8
EZ
11220 (Fx_show_tip): Fix compilation error under
11221 "--enable-check-lisp-object-type". (Bug#14073)
ef454cf7 11222
121ab1cd
EZ
11223 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
11224 Reported by <rzl24ozi@gmail.com>.
11225
5c89ca24
DA
112262013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
11227
11228 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
11229 start marker...
562c6ee9
SM
11230 (unwind_with_echo_area_buffer): ...to restore it here.
11231 This is needed to ensure that...
5c89ca24
DA
11232 (redisplay_window): ...both window markers are valid here,
11233 which is verified by eassert.
11234 * editfns.c (save_excursion_save): Do not assume that
11235 selected_window always displays the buffer.
c7f53895
DA
11236 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
11237 Fix comment.
5c89ca24 11238
f557c1b1
SM
112392013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
11240
11241 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
11242 the upcase table.
11243
40693bba 112442013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
11245
11246 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
11247
c86f791f
EZ
112482013-03-27 Eli Zaretskii <eliz@gnu.org>
11249
11250 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
11251 since MinGW's w32api headers do. This avoids compiler warnings.
11252
11253 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
11254 if already defined.
11255
c6e72e17
EZ
112562013-03-26 Eli Zaretskii <eliz@gnu.org>
11257
11258 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
11259
54e95010
JD
112602013-03-26 Jan Djärv <jan.h.d@swipnet.se>
11261
11262 * gtkutil.c (style_changed_cb): Check if frame is live and an
11263 X frame (Bug#14038).
11264
b88b62de
EZ
112652013-03-26 Eli Zaretskii <eliz@gnu.org>
11266
a18d7de6
EZ
11267 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
11268 Define only for _WIN32_WINNT less than 0x0500.
da9dcbb8
EZ
11269 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
11270 MinGW64.
8f5e14c8
EZ
11271 Move inclusion of time.h before sys/time.h, so that MinGW64 could
11272 see its own definitions of 'struct timeval' and 'struct timezone'.
a18d7de6 11273
b88b62de
EZ
11274 Fix incompatibilities between MinGW.org and MinGW64 headers.
11275 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
11276
11277 * w32.c (REPARSE_DATA_BUFFER): Guard with
11278 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
11279
c074e458
JD
112802013-03-25 Jan Djärv <jan.h.d@swipnet.se>
11281
11282 * xterm.c: Include X11/XKBlib.h
11283 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
11284
908589fd
AS
112852013-03-24 Andreas Schwab <schwab@linux-m68k.org>
11286
11287 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
11288 written backwards.
11289 * blockinput.h (input_blocked_p): Likewise.
11290 * bytecode.c (exec_byte_code): Likewise.
11291 * callproc.c (call_process_kill, call_process_cleanup)
11292 (Fcall_process): Likewise.
11293 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
11294 (Fccl_execute_on_string): Likewise.
11295 * character.c (string_escape_byte8): Likewise.
11296 * charset.c (read_hex): Likewise.
11297 * cm.c (calccost): Likewise.
11298 * data.c (cons_to_unsigned): Likewise.
11299 * dired.c (directory_files_internal, file_name_completion):
11300 Likewise.
11301 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
11302 (sit_for): Likewise.
11303 * doc.c (Fsubstitute_command_keys): Likewise.
11304 * doprnt.c (doprnt): Likewise.
11305 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
11306 * emacsgtkfixed.c: Likewise.
11307 * fileio.c (file_offset, Fwrite_region): Likewise.
11308 * floatfns.c (Fexpt, fmod_float): Likewise.
11309 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
11310 Likewise.
11311 * font.c (font_intern_prop): Likewise.
11312 * frame.c (x_set_alpha): Likewise.
11313 * gtkutil.c (get_utf8_string): Likewise.
11314 * indent.c (check_display_width): Likewise.
11315 * intervals.c (create_root_interval, rotate_right, rotate_left)
11316 (split_interval_right, split_interval_left)
11317 (adjust_intervals_for_insertion, delete_node)
11318 (interval_deletion_adjustment, adjust_intervals_for_deletion)
11319 (merge_interval_right, merge_interval_left, copy_intervals)
11320 (set_intervals_multibyte_1): Likewise.
11321 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
11322 * keymap.c (Fkey_description): Likewise.
11323 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
11324 * lread.c (openp, read_integer, read1, string_to_number):
11325 Likewise.
11326 * menu.c (ensure_menu_items): Likewise.
11327 * minibuf.c (read_minibuf_noninteractive): Likewise.
11328 * print.c (printchar, strout): Likewise.
11329 * process.c (create_process, Faccept_process_output)
11330 (wait_reading_process_output, read_process_output, send_process)
11331 (wait_reading_process_output): Likewise.
11332 * profiler.c (make_log, handle_profiler_signal): Likewise.
11333 * regex.c (re_exec): Likewise.
11334 * regex.h: Likewise.
11335 * search.c (looking_at_1, Freplace_match): Likewise.
11336 * sysdep.c (get_child_status, procfs_ttyname)
11337 (procfs_get_total_memory): Likewise.
11338 * systime.h (EMACS_TIME_VALID_P): Likewise.
11339 * term.c (dissociate_if_controlling_tty): Likewise.
11340 * window.c (get_phys_cursor_glyph): Likewise.
11341 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
11342 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
11343 Likewise.
11344 * xfns.c (Fx_window_property): Likewise.
11345 * xmenu.c (set_frame_menubar): Likewise.
11346 * xselect.c (x_get_window_property, x_handle_dnd_message):
11347 Likewise.
11348 * xsmfns.c (smc_save_yourself_CB): Likewise.
11349 * xterm.c (x_scroll_bar_set_handle): Likewise.
11350
2bf7d27a
DA
113512013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
11352
11353 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
11354 to be optional or nil. Adjust comment and convert it to docstring.
11355 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
11356 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
11357
a9ebfa0b
PE
113582013-03-24 Paul Eggert <eggert@cs.ucla.edu>
11359
11360 Static checking by GCC 4.8-20130319.
11361 * image.c (gif_load): Assume pass < 3 to pacify GCC.
11362 * process.c (Fset_process_datagram_address)
11363 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
35e951cd 11364 * xdisp.c (get_char_face_and_encoding)
a9ebfa0b
PE
11365 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
11366 (get_glyph_face_and_encoding): Prepare face before possibly using it.
11367 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
11368
4f3576ee
KB
113692013-03-24 Ken Brown <kbrown@cornell.edu>
11370
789b5e9a
KB
11371 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
11372 fix compilation on 64-bit Cygwin, where underscores are not
11373 automatically prepended.
11374
4f3576ee
KB
11375 * w32term.c (w32_initialize): Silence compiler warning.
11376
b5b7745f
EZ
113772013-03-23 Eli Zaretskii <eliz@gnu.org>
11378
cdc0d0bd
EZ
11379 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
11380 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
562c6ee9
SM
11381 variables, to save and restore frame dimensions.
11382 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
11383 after returning from a 'fullscreen' configuration.
11384 use SendMessage instead of PostMessage to send the SC_RESTORE message,
cdc0d0bd
EZ
11385 to avoid races between the main thread and the input thread.
11386
11387 * w32term.h (struct w32_output): New members normal_width,
11388 normal_height, normal_top, normal_left, and prev_fsmode.
11389 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
11390 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
11391 members of a frame.
11392
b5b7745f
EZ
11393 * w32term.c (w32fullscreen_hook): Record last value of the frame's
11394 'fullscreen' parameter. Always record previous width and height
11395 of the frame, except when switching out of maximized modes, so
11396 that they could be restored correctly, instead of resetting to the
11397 default frame dimensions. Send SC_RESTORE command to the frame,
11398 unless we are going to send SC_MAXIMIZE, to restore the frame
11399 resize hints in the mouse pointer shown by the window manager.
11400 (Bug#14032)
11401
11402 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
11403
11404 * lisp.h (get_frame_param): Adjust conditions for prototype
11405 declaration.
11406
a3454eed
KB
114072013-03-22 Ken Brown <kbrown@cornell.edu>
11408
11409 * unexcw.c: Drop unneeded inclusion of w32common.h.
11410 (report_sheap_usage): Declare.
11411 (read_exe_header): Add magic numbers for x86_64.
11412 (fixup_executable): Fix printf format specifier for unsigned long
11413 argument.
11414
5a49b79c
DA
114152013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
11416
11417 * frame.h (struct frame): Put menu_bar_window under #ifdef
11418 because this member is not needed when X toolkit is in use.
11419 (fset_menu_bar_window):
11420 * dispnew.c (clear_current_matrices, clear_desired_matrices)
11421 (free_glyphs, update_frame):
11422 * xdisp.c (expose_frame): Likewise.
11423 (display_menu_bar): Likewise. Remove redundant eassert.
11424 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
11425 toolkit is in use.
11426
d6723bf7
PE
114272013-03-21 Paul Eggert <eggert@cs.ucla.edu>
11428
7b1123d8
PE
11429 Use functions and constants to manipulate Lisp_Save_Value objects.
11430 This replaces code that used macros and strings and token-pasting.
11431 The change makes the C source a bit easier to follow,
11432 and shrinks the Emacs executable a bit.
11433 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
11434 (make_save_value): Change 1st arg from string to enum. All callers
11435 changed.
11436 (INTX): Remove.
11437 (mark_object): Use if, not #if, for GC_MARK_STACK.
11438 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
11439 (XSAVE_OBJECT): Now functions, not macros.
11440 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
11441 the constant was never used.
11442 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
11443 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
11444 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
11445 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
11446 New constants.
11447 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
11448 type3 with a single member save_type. All uses changed.
11449 (save_type, set_save_pointer, set_save_integer): New functions.
11450 * print.c (PRINTX): Remove.
11451
d6723bf7
PE
11452 * alloc.c: Remove redundant static declarations.
11453
5f24fa51
DA
114542013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
11455
11456 * window.h (struct window): Convert left_col, top_line, total_lines
11457 and total_cols from Lisp_Objects to integers. Adjust comments.
11458 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
11459 Remove.
11460 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
11461 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
11462 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
11463 Adjust users where appropriate.
11464
42143acd
DA
114652013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
11466
11467 * frame.h (struct frame): Drop resx and resy because the same data is
11468 available from window system-specific output context. Adjust users.
562c6ee9
SM
11469 (default_pixels_per_inch_x, default_pixels_per_inch_y):
11470 New functions to provide defaults when no window system available.
42143acd 11471 (FRAME_RES_X, FRAME_RES_Y): New macros.
562c6ee9 11472 (NUMVAL): Move from xdisp.c.
42143acd
DA
11473 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
11474 (Ffont_face_attributes, Fopen_font):
11475 * image.c (gs_load):
11476 * w32font.c (fill_in_logfont):
11477 * xdisp.c (calc_pixel_width_or_height):
11478 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
11479 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
11480
c0a17406
KH
114812013-03-20 Kenichi Handa <handa@gnu.org>
11482
11483 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
11484 to 1 (temporary workaround until a bug related to ASCII
11485 optimization is fixed).
11486
095d384d
DA
114872013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
11488
11489 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
11490 Signal error if window is not internal. Adjust docstring.
11491 (delete_all_child_windows): Use combination_limit to save the buffer.
11492 (Fset_window_configuration): Adjust accordingly.
cf4bb06d
DA
11493 * print.c (syms_of_print): Initialize debugging output not here...
11494 (init_print_once): ...but in a new function here.
11495 * lisp.h (init_print_once): Add prototype.
11496 * emacs.c (main): Add call to init_print_once. Adjust comments.
095d384d 11497
748fa866
DA
114982013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
11499
11500 * window.c (window_resize_check, window_resize_apply)
11501 (window_from_coordinates, recombine_windows, set_window_buffer)
11502 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
11503 (Fsplit_window_internal, Fdelete_window_internal)
11504 (freeze_window_starts): Use bool for booleans.
11505 * window.h (window_frame_coordinates, resize_frame_windows)
11506 (freeze_window_starts, set_window_buffer): Adjust prototypes.
11507
81519fd2
SM
115082013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
11509
11510 * dispnew.c (bitch_at_user): Use `user-error'.
11511
6db423a9
KB
115122013-03-17 Ken Brown <kbrown@cornell.edu>
11513
11514 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
11515 as return type of image_background. (Bug#13981)
11516 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
11517
8f2906f5
JD
115182013-03-16 Jan Djärv <jan.h.d@swipnet.se>
11519
960ce480 11520 * nsterm.m (updateFrameSize:): Change resize increments if needed.
6615748a 11521 (ns_select): Don't return with result uninitialized.
960ce480 11522
8f2906f5
JD
11523 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
11524 and getDirectory.
11525
81519fd2
SM
11526 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
11527 New functions.
8f2906f5
JD
11528 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
11529 directories. If filename is nil, get directory name (Bug#13932).
11530 Use getFilename and getDirectory.
11531 (getFilename, getDirectory): New methods for EmacsSavePanel and
11532 EmacsOpenPanel.
11533 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
11534
cded56c1
PE
115352013-03-15 Paul Eggert <eggert@cs.ucla.edu>
11536
11537 * coding.c (decode_coding_gap): Fix typo caught by static checking.
11538
251e9147 115392013-03-15 Kenichi Handa <handa@gnu.org>
8a44e6d1
KH
11540
11541 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
11542 (adjust_after_replace): Make it back to static. Delete the third
11543 arg text_at_gap_tail. Cancel the code for handling it.
11544
11545 * coding.h (struct coding_system): New member eol_seen.
11546
11547 * coding.c (detect_ascii): New function.
11548 (detect_coding): Set coding->head_ascii and coding->eol_seen only
11549 when the source bytes are actually scanned. On detecting for
11550 coding_category_utf_8_auto, call detect_ascii instead of scanning
11551 source bytes directly.
11552 (produce_chars): Call insert_from_gap with the new arg 0.
11553 (encode_coding): Likewise.
11554 (decode_coding_gap): Control ASCII optimization by the variable
11555 disable_ascii_optimization instead of #ifndef .. #endif.
11556 Deccode EOL format according to coding->eol_seen.
11557 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
11558 variable.
11559
8a44e6d1
KH
11560 * lisp.h (adjust_after_replace): Cancel externing it.
11561 (insert_from_gap): Adjust prototype.
11562
5f795e34
EZ
115632013-03-15 Eli Zaretskii <eliz@gnu.org>
11564
11565 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
11566 FULLSCREEN_MAXIMIZED. (Bug#13935)
11567
f258b4be
DA
115682013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
11569
11570 * region-cache.c (find_cache_boundary, move_cache_gap)
11571 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
11572 Simplify debugging check and convert to eassert. Adjust comment.
11573 (pp_cache): Put under ENABLE_CHECKING.
11574
a5cc4dde
EZ
115752013-03-14 Eli Zaretskii <eliz@gnu.org>
11576
11577 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
11578 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
11579 and WM_ACTIVATEAPP.
11580 (w32fullscreen_hook): If the frame is visible, reset
11581 f->want_fullscreen flag after changing the frame size. If the
11582 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
11583 (Bug#13953)
11584
3fc5e44a
DC
115852013-03-13 Daniel Colascione <dancol@dancol.org>
11586
11587 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
11588 too so that these builds can use Cygwin's file conversion
11589 functions. (We've been building and linking cygw32.o all along
11590 and just not using it.)
11591
47d7532e
PE
115922013-03-13 Paul Eggert <eggert@cs.ucla.edu>
11593
11594 File synchronization fixes (Bug#13944).
11595 * Makefile.in (LIB_FDATASYNC): New macro.
11596 (LIBES): Use it.
11597 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
11598 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
11599 Don't worry about HAVE_FSYNC, since a substitute fsync is
11600 available if the system lacks one.
11601 (Fwrite_regin): Retry fsync if interrupted.
11602
c7ffccaf
EZ
116032013-03-13 Eli Zaretskii <eliz@gnu.org>
11604
4e2df81d 11605 * w32term.c (w32_read_socket): If the Emacs frame is being
c7ffccaf
EZ
11606 activated, call w32fullscreen_hook, to make sure the new frame
11607 dimensions are in effect. (Bug#13937)
11608
8a7debc1
DA
116092013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
11610
11611 * xdisp.c (init_iterator): Simplify because both character and byte
11612 positions are either specified or -1. Add eassert. Adjust comment.
ffcd945e
DA
11613 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
11614 character and byte positions can be obtained from marker.
8a7debc1 11615
7fd8c501
PE
116162013-03-13 Paul Eggert <eggert@cs.ucla.edu>
11617
d9df6f40
PE
11618 Static checking by Sun C 5.12.
11619 * alloc.c (buffer_memory_full) [REL_ALLOC]:
11620 * bytecode.c (exec_byte_code):
11621 * dispnew.c (init_display):
11622 * eval.c (error):
11623 * fileio.c (Fsubstitute_in_file_name):
11624 * keyboard.c (Fevent_convert_list):
11625 * keymap.c (Fsingle_key_description):
11626 * term.c (maybe_fatal, fatal):
11627 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
11628 * xsmfns.c (Fhandle_save_session):
11629 Omit unreachable code.
11630 * keymap.c (map_keymap_char_table_item): Cast void * to
11631 a function pointer type; the C Standard requires this.
11632
7fd8c501
PE
11633 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
11634 Include <sys/param.h> unconditionally, as that works elsewhere and
11635 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
11636 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
11637 and FreeBSD now.
11638
a020afb9 11639See ChangeLog.12 for earlier changes.
aac0c6e3
MR
11640
11641;; Local Variables:
11642;; coding: utf-8
aac0c6e3
MR
11643;; End:
11644
ba318903 11645 Copyright (C) 2011-2014 Free Software Foundation, Inc.
aac0c6e3
MR
11646
11647 This file is part of GNU Emacs.
11648
11649 GNU Emacs is free software: you can redistribute it and/or modify
11650 it under the terms of the GNU General Public License as published by
11651 the Free Software Foundation, either version 3 of the License, or
11652 (at your option) any later version.
11653
11654 GNU Emacs is distributed in the hope that it will be useful,
11655 but WITHOUT ANY WARRANTY; without even the implied warranty of
11656 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11657 GNU General Public License for more details.
11658
11659 You should have received a copy of the GNU General Public License
11660 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.