* tutorials/TUTORIAL.cn: Update; synchronize with TUTORIAL.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
b19aa636
JD
12013-08-02 Jan Djärv <jan.h.d@swipnet.se>
2
3 * nsterm.m (windowWillResize:toSize:): Only change title if
4 ! maximizing_resize && FULLSCREEN_NONE (Bug#15005). strdup title before
5 modifying it.
6 (viewDidEndLiveResize): New method.
7
8 * nsterm.h (EmacsView): Add maximizing_resize, put it and old_title
9 inside NS_IMPL_COCOA.
10
af1f7e06
DA
112013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
12
13 * insdel.c (adjust_after_replace, replace_range, del_range_2):
14 Do not check whether undo is enabled because record_insert and
15 record_delete does that themselves.
16
65b02bb9
DA
172013-08-02 Dmitry Antipov <dmantipov@yandex.ru>
18
19 * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname
20 member which is not really used any more.
21 (FRAME_XIC_BASE_FONTNAME): Remove.
22 * xfns.c (xic_free_fontset): Adjust user.
23 * xmenu.c (mouse_position_for_popup, x_activate_menubar)
24 (update_frame_menubar, set_frame_menubar, free_frame_menubar)
25 (create_and_show_popup_menu, xmenu_show, create_and_show_dialog)
26 (xdialog_show): Use eassert for debugging check.
7ee0f047 27 * w32term.c (x_unfocus_frame): Remove unused dummy function.
65b02bb9 28
6318cde0
PE
292013-08-01 Paul Eggert <eggert@cs.ucla.edu>
30
31 * fileio.c, fns.c (merge): Move extern decl from here ...
32 * lisp.h (merge): ... to here.
33
6c1a09ba
DA
342013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
35
36 Fix last font-related change.
37 * w32font.h (w32font_list_internal, w32font_match_internal):
38 Fix prototype.
39 * w32uniscribe.c (uniscribe_list, uniscribe_match):
40 (uniscribe_list_family): Adjust to match font API change.
41 MS-Windows breakage reported by Juanma Barranquero <lekktu@gmail.com>
42 at http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00006.html.
43
f8c20208
DA
442013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
45
46 * frame.h (FRAME_MOUSE_UPDATE):
47 * nsterm.m (ns_frame_up_to_date): Omit redundant check
48 whether hlinfo->mouse_face_mouse_frame is non-NULL.
49
fdb396e2
DA
502013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
51
52 Avoid redundant Lisp_Object <-> struct frame conversions in font API.
53 * font.h (struct font_driver): Change list, match, and list_family
54 functions to accept struct frame * as first arg.
55 * font.c (font_score, font_compare, font_sort_entities): Remove
56 prototypes.
57 (font_sort_entities, font_list_entities, font_select_entity):
58 (font_find_for_lface, Flist_fonts, Ffont_family_list): Adjust to
59 match font API change.
60 * xfont.c (xfont_list, xfont_match, xfont_list_family):
61 * ftfont.c (ftfont_list, ftfont_match, ftfont_list_family):
62 * ftxfont.c (ftxfont_list, ftxfont_match):
63 * xftfont.c (xftfont_list, xftfont_match):
64 * nsfont.m (nsfont_list, nsfont_match, nsfont_list_family):
65 * w32font.c (w32font_list, w32font_match, w32font_list):
66 (w32font_list_internal, w32_font_match_internal): Likewise.
67 * xfaces.c (Fx_family_fonts): Adjust user.
68
52b8a085
DA
692013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
70
71 Do not use pure Xism x_wm_set_icon_position in non-X ports.
72 * frame.c (x_set_frame_parameters): Call to x_wm_set_icon_position
73 only if HAVE_X_WINDOWS is in use.
74 * frame.h (x_set_frame_parameters): Move under HAVE_X_WINDOWS.
75 * nsterm.m (x_wm_set_icon_position): Remove no-op.
76 * w32term.c (x_wm_set_icon_position): Likewise.
77 * w32fns.c (x_icon): Adjust user.
78
c791c18e
DA
792013-08-01 Dmitry Antipov <dmantipov@yandex.ru>
80
81 * xterm.c (last_mouse_press_frame): Remove the
82 leftover which is not really used any more.
83 (handle_one_xevent, syms_of_xterm): Adjust users.
1ca6cc28
DA
84 (x_flush): Call XFlush once per each X display, not frame.
85 This is better because this code always unconditionally skips
86 non-X frames in Vframe_list and issues the only XFlush if we
87 have more than one X frame on the same X display.
2f935d86
DA
88 (any_help_event_p, x_draw_glyph_string_background, x_display_ok):
89 Use bool for booleans.
90 (x_draw_glyph_string_background, cvt_string_to_pixel):
91 (cvt_pixel_dtor): Drop unnecessary prototypes.
92 * xterm.h (x_display_ok): Adjust prototype.
c791c18e 93
f435830e
DA
942013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
95
96 Drop unnecessary functions that deals with frame pixel size.
97 * frame.h, msdos.h, w32term.h, xterm.h (x_pixel_width)
98 (x_pixel_height): Drop prototypes.
99 * msdos.c, nsfns.m, w32fns.c, xfns.c (x_pixel_width)
100 (x_pixel_height): Drop implementations.
101 * frame.c (Fframe_pixel_height): Use FRAME_PIXEL_HEIGHT
102 which should be always valid for window frame.
103 (Frame_pixel_width): Likewise with FRAME_PIXEL_WIDTH.
104 * w32menu.c (Fx_popup_dialog):
105 * xmenu.c (Fx_popup_dialog): Likewise for both.
106
84231434
DA
1072013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
108
109 * frame.c (Fmake_terminal_frame): Use store_in_alist to setup
110 frame parameters and call to Fmodify_frame_parameters just once.
4c131798
DA
111 (Fset_frame_height, Fset_frame_width): Mention nil frame in docstring.
112 (Fset_frame_size, Fset_frame_position): Use decode_live_frame
113 and mention nil frame in docstring.
84231434 114
959067a1
DA
1152013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
116
117 * frame.c (make_frame, x_set_frame_parameters): Use bool for boolean.
118 (x_figure_window_size): Likewise. Adjust to return long.
119 (syms_of_frame): Do not DEFSYM Qterminal_live_p.
120 (toplevel): Move Qterminal_live_p to...
121 * terminal.c (toplevel): ...here, make it static, and...
122 (syms_of_terminal): ...DEFSYM here.
123 * frame.h (Qterminal_live_p): Remove declaration.
124 (make_frame, x_figure_window_size): Adjust prototype.
125 * nsfns.m (Fx_create_frame): Use long for window flags.
126
f4b169ce
PE
1272013-07-30 Paul Eggert <eggert@cs.ucla.edu>
128
129 Fix tempfile bug on platforms lacking mkostemp and mkstemp (Bug#14986).
130 * callproc.c (create_temp_file) [! (HAVE_MKOSTEMP || HAVE_MKSTEMP)]:
131 Do not assume that emacs_close (INT_MAX) is a no-op.
132
bee6a2c7
DA
1332013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
134
135 * xfaces.c (make_face_cache): For struct face_cache, prefer
136 xmalloc to xzalloc and so avoid redundant call to memset.
137 (Finternal_set_lisp_face_attribute): Fix comment typo and style.
138
d7e6881a
DA
1392013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
140
141 * fringe.c (draw_window_fringes, update_window_fringes)
142 (compute_fringe_widths):
143 * w32term.c (x_draw_glyph_string):
144 * window.c (candidate_window_p, Frecenter):
145 * xfaces.c (realize_basic_faces, realize_default_face)
146 (Fbitmap_space_p, Finternal_set_lisp_face_attribute)
147 (x_update_menu_appearance, face_attr_equal_p, lface_equal_p):
148 * xfns.c (x_set_cursor_color, xic_free_xfontset):
149 * xmenu.c (Fx_menu_bar_open_internal):
150 * xselect.c (x_reply_selection_request, Fx_get_atom_name):
151 * xsettings.c (xft_settings_event):
152 * xterm.c (x_draw_glyph_string, x_had_errors_p):
153 Use bool for booleans. Adjust style and comments where
154 appropriate.
155 * dispextern.h (draw_window_fringes, update_window_fringes)
156 (compute_fringe_widths):
157 * xterm.h (x_had_errors_p): Adjust prototype.
158
ec3058af
DA
1592013-07-30 Dmitry Antipov <dmantipov@yandex.ru>
160
161 * frame.c (Fmodify_frame_parameters): Always check 2nd arg with
162 CHECK_LIST. Rewrite the loop to avoid useless local variable.
163
218e0637
DA
1642013-07-29 Dmitry Antipov <dmantipov@yandex.ru>
165
166 * fns.c (toplevel): Remove comment before Fsafe_length because
167 it checks for QUIT.
168
e560aba9
PE
1692013-07-28 Paul Eggert <eggert@cs.ucla.edu>
170
171 * frame.c (delete_frame): Avoid unnecessary 'this_f' test (Bug#14970).
172
2e5ce5de
EZ
1732013-07-28 Eli Zaretskii <eliz@gnu.org>
174
175 * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Make sure the
176 frame which got the message is still alive, before dereferencing
177 its pointer. (Bug#14970)
178
179 * frame.c (delete_frame): Test "this" frame's minibuffer window to
180 be a live window, before using it as such. (Bug#14970)
181
e95da6d3
EZ
1822013-07-27 Eli Zaretskii <eliz@gnu.org>
183
184 * w32term.c (w32_read_socket) <WM_KILLFOCUS>: Call
185 w32_detect_focus_change instead of doing part of its job by hand.
186 This fixes the problem whereby FOCUS_OUT events were not sent to
187 the event queue.
188
a8f93651
EZ
1892013-07-26 Eli Zaretskii <eliz@gnu.org>
190
fec92060
EZ
191 * process.c (Fprocess_list): Doc fix.
192
a8f93651
EZ
193 * w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
194 being re-exposed only if it didn't ask to become visible.
195 <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
196 was previously iconified. (Bug#14841)
197 (x_iconify_frame): Mark the frame iconified.
198
d5a7a9d9
PE
1992013-07-26 Paul Eggert <eggert@cs.ucla.edu>
200
201 Fix minor problems found by static checking.
202 * eval.c (get_backtrace_frame, backtrace_eval_unrewind): Now static.
203 (backtrace_eval_unrewind): ';' -> '{}' to pacify GCC.
204
56ea7291
SM
2052013-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
206
207 * eval.c (set_specpdl_old_value): New function.
208 (unbind_to): Minor simplification.
209 (get_backtrace_frame): New function.
210 (Fbacktrace_frame): Use it. Add `base' argument.
211 (backtrace_eval_unrewind, Fbacktrace_eval): New functions.
212 (syms_of_eval): Export backtrace-eval.
213 * xterm.c (x_focus_changed): Simplify.
214
9d611ffe
PE
2152013-07-25 Paul Eggert <eggert@cs.ucla.edu>
216
217 * fileio.c (Finsert_file_contents): Avoid double-close (Bug#14936).
218
999c74e3
EZ
2192013-07-24 Eli Zaretskii <eliz@gnu.org>
220
221 * xdisp.c (redisplay_window): Instead of moving point out of
222 scroll margin, reject the force_start method, and try scrolling
223 instead. (Bug#14780)
224
198fa217
KB
2252013-07-24 Ken Brown <kbrown@cornell.edu>
226
227 * alloc.c (make_save_ptr): Define if HAVE_NTGUI is defined
228 (Bug#14944).
229
53840e55
PE
2302013-07-24 Paul Eggert <eggert@cs.ucla.edu>
231
232 * eval.c (Fprogn): Do not check that BODY is a proper list.
233 This undoes the previous change. The check slows down the
234 interpreter, and is not needed to prevent a crash. See
235 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00693.html>.
236
60967f56
GM
2372013-07-23 Glenn Morris <rgm@gnu.org>
238
239 * Makefile.in ($(etc)/DOC, temacs$(EXEEXT)): Ensure etc/ exists.
240
9ca960e2
PE
2412013-07-23 Paul Eggert <eggert@cs.ucla.edu>
242
a29c3e6d
PE
243 Port to GNU/Linux systems with tinfo but not ncurses.
244 * dispnew.c (init_display): Depend on USE_NCURSES, not GNU_LINUX,
245 to decide whether ncurses is being used. Without this change,
246 GCC complains about tgetent not being declared, on a system
247 that has tinfo installed but ncurses not installed.
248
f274311c
PE
249 * eval.c (Fprogn): Check that BODY is a proper list.
250
16b0520a
PE
251 Tune UNEVALLED functions by using XCAR instead of Fcar, etc.
252 * data.c (Fsetq_default):
253 * eval.c (Fif, Fcond, Fprog1, Fsetq, Fquote, Ffunction, Fdefvar)
254 (Fdefconst, FletX, Flet, Fwhile, Fcatch, Funwind_protect)
255 (Fcondition_case):
256 Tune by taking advantage of the fact that ARGS is always a list
257 when a function is declared to have UNEVALLED args.
258
9ca960e2
PE
259 * emacsgtkfixed.c: Port to GCC 4.6.
260 GCC 4.6 complains about -Wunused-local-typedefs, introduced in 4.7.
261
afacaa1b
JB
2622013-07-23 Juanma Barranquero <lekktu@gmail.com>
263
264 * callproc.c (child_setup)[!WINDOWSNT]: Move exec_errno and pid
265 here to silence compiler warnings.
266
368a85a4
PE
2672013-07-22 Paul Eggert <eggert@cs.ucla.edu>
268
269 * sysdep.c (frame) [__FreeBSD__]: #define to freebsd_frame
270 when including <sys/user.h>, to prevent Sparc/ARM machine/frame.h
271 from messing up Emacs's 'struct frame' (Bug#14923).
272
f4e891b5
PE
2732013-07-21 Paul Eggert <eggert@cs.ucla.edu>
274
275 * alloc.c (make_save_ptr_ptr): Define this function.
276 It was inadvertently omitted. It's needed only if
277 HAVE_MENUS && ! (USE_X_TOOLKIT || USE_GTK).
278
96c8b65e
JD
2792013-07-21 Jan Djärv <jan.h.d@swipnet.se>
280
281 * nsterm.m (sendEvent:): Skip mouse moved if no dialog and no Emacs
282 frame have focus (Bug#14895).
283
ee010797
PE
2842013-07-21 Paul Eggert <eggert@cs.ucla.edu>
285
286 Avoid vfork-related deadlock more cleanly.
287 * callproc.c (child_setup): When the child's exec fails, output
288 the program name, as that's more useful. Use O_NONBLOCK to avoid
289 deadlock.
290 * process.c (create_process_1): Remove; no longer needed.
291 (create_process): Remove timer hack; no longer needed, now that
292 the child avoids deadlock.
293
f0398ec1 2942013-07-20 Glenn Morris <rgm@gnu.org>
8bfcc21a
GM
295
296 * image.c (Fimage_flush): Fix doc typo.
297
b2a069c2
PE
2982013-07-20 Paul Eggert <eggert@cs.ucla.edu>
299
6496aec9
PE
300 Fix array bounds violation when pty allocation fails.
301 * process.c (PTY_NAME_SIZE): New constant.
302 (pty_name): Remove static variable; it's now auto.
303 (allocate_pty): Define even if !HAVE_PTYS; that's simpler.
304 Take pty_name as an arg rather than using a static variable.
305 All callers changed.
306 (create_process): Recover pty_flag from process, not from volatile local.
307 (create_pty): Stay inside array even when pty allocation fails.
308 (Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
309
b2a069c2
PE
310 * lread.c (Fload): Avoid initialization only when lint checking.
311 Mention that it's needed only for older GCCs.
312
99107004
KH
3132013-07-20 Kenichi Handa <handa@gnu.org>
314
315 * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
316 (decode_coding_iso_2022): Check the single-shift area. (Bug#8522)
317
6b1b199d
AS
3182013-07-20 Andreas Schwab <schwab@linux-m68k.org>
319
320 * lread.c (Fload): Avoid uninitialized warning.
321
4195afc3
PE
3222013-07-19 Paul Eggert <eggert@cs.ucla.edu>
323
3f5bef16
PE
324 Fix some minor file descriptor leaks and related glitches.
325 * filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
326 (create_lock_file): Use write, not emacs_write.
327 * image.c (slurp_file, png_load_body):
328 * process.c (Fnetwork_interface_list, Fnetwork_interface_info)
329 (server_accept_connection):
330 Don't leak an fd on memory allocation failure.
331 * image.c (slurp_file): Add a cheap heuristic for growing files.
332 * xfaces.c (Fx_load_color_file): Block input around the fopen too,
333 as that's what the other routines do. Maybe input need not be
334 blocked at all, but it's better to be consistent.
335 Avoid undefined behavior when strlen is zero.
336
4195afc3
PE
337 * alloc.c (staticpro): Avoid buffer overrun on repeated calls.
338 (NSTATICS): Now a constant; doesn't need to be a macro.
339
a1aeeffe
RS
3402013-07-19 Richard Stallman <rms@gnu.org>
341
342 * coding.c (decode_coding_utf_8): Add simple loop for fast
343 processing of ASCII characters.
344
63b34baa
PE
3452013-07-19 Paul Eggert <eggert@cs.ucla.edu>
346
347 * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization.
348
621dd9ac
EZ
3492013-07-19 Eli Zaretskii <eliz@gnu.org>
350
351 * keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
352 unportable 'struct x_display_info'.
353 (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
354 is a portable type.
355
1396ac86
PE
3562013-07-19 Paul Eggert <eggert@cs.ucla.edu>
357
ab9980cd
PE
358 * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
359 (procfs_ttyname): Don't use uninitialized storage if emacs_fopen
360 or fscanf fails.
361 (system_process_attributes): Prefer plain char to unsigned char
362 when either will do. Clean up properly if interrupted or if
363 memory allocations fail. Don't assume sscanf succeeds. Remove
364 no-longer-needed workaround to stop GCC from whining. Read
365 command-line once, instead of multiple times. Check read status a
366 bit more carefully.
367
1396ac86
PE
368 Fix obscure porting bug with varargs functions.
369 The code assumed that int is treated like ptrdiff_t in a vararg
370 function, which is not a portable assumption. There was a similar
371 -- though these days less likely -- porting problem with various
372 assumptions that pointers of different types all smell the same as
373 far as vararg functions is conserved. To make this problem less
374 likely in the future, redo the API to use varargs functions.
375 * alloc.c (make_save_value): Remove this vararg function.
376 All uses changed to ...
377 (make_save_int_int_int, make_save_obj_obj_obj_obj)
378 (make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
379 New functions.
380 (make_save_ptr): Rename from make_save_pointer, for consistency with
381 the above. Define only on platforms that need it. All uses changed.
382
4d19d194
PE
3832013-07-18 Paul Eggert <eggert@cs.ucla.edu>
384
385 * keyboard.c: Try to fix typos in previous change.
386 (DISPLAY_LIST_INFO): New macro.
387 (kbd_buffer_get_event): Do not access members that are not present
c7064f05 388 in X11. Revert inadvertent change of "!=" to "=".
4d19d194 389
945c5bb1
JB
3902013-07-18 Juanma Barranquero <lekktu@gmail.com>
391
392 * keyboard.c (kbd_buffer_get_event):
393 * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
394 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
395
f4b1eb36
PE
3962013-07-18 Paul Eggert <eggert@cs.ucla.edu>
397
5e679a2c
PE
398 * filelock.c: Fix unlikely file descriptor leaks.
399 (get_boot_time_1): Rework to avoid using emacs_open.
400 This doesn't actually fix a leak, but is better anyway.
401 (read_lock_data): Use read, not emacs_read.
402
a8cd4836
PE
403 * doc.c: Fix minor memory and file descriptor leaks.
404 * doc.c (get_doc_string): Fix memory leak when doc file absent.
405 (get_doc_string, Fsnarf_documentation):
406 Fix file descriptor leak on error.
407
ef30e638
PE
408 * term.c: Fix minor fdopen-related file descriptor leaks.
409 * term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
410 (init_tty) [!DOS_NT]: Likewise. Also close fd if isatty (fd) fails.
411
f4b1eb36
PE
412 * charset.c: Fix file descriptor leaks and errno issues.
413 Include <errno.h>.
414 (load_charset_map_from_file): Don't leak file descriptor on error.
415 Use plain record_xmalloc since the allocation is larger than
416 MAX_ALLOCA; that's simpler here. Simplify test for exhaustion
417 of entries.
418 * eval.c (record_unwind_protect_nothing):
419 * fileio.c (fclose_unwind):
420 New functions.
421 * lread.c (load_unwind): Remove. All uses replaced by fclose_unwind.
422 The replacement doesn't block input, but that no longer seems
423 necessary.
424
b648c163
PE
4252013-07-17 Paul Eggert <eggert@cs.ucla.edu>
426
a0931322
PE
427 * lread.c: Fix file descriptor leaks and errno issues.
428 (Fload): Close some races that leaked fds or streams when 'load'
429 was interrupted.
430 (Fload, openp): Report error number of last nontrivial failure to open.
431 ENOENT counts as trivial.
432 * eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
433 New functions.
434 * fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
435 now that the function is always called with a nonnegative arg.
436 * lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
437 All uses replaced with ...
438 (clear_unwind_protect, set_unwind_protect_ptr): New decls.
439
b648c163
PE
440 A few more minor file errno-reporting bugs.
441 * callproc.c (Fcall_process):
442 * doc.c (Fsnarf_documentation):
443 * fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
444 * process.c (set_socket_option):
445 Don't let a constructor trash errno.
446 * doc.c: Include <errno.h>.
447
b1dc4084
JB
4482013-07-16 Juanma Barranquero <lekktu@gmail.com>
449
450 * w32fns.c (unwind_create_tip_frame): Fix declaration.
451
c43843aa
PE
4522013-07-16 Paul Eggert <eggert@cs.ucla.edu>
453
50a30cce
PE
454 Fix w32 bug with call-process-region (Bug#14885).
455 * callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
456 to Fcall_process when the input is empty. This simplifies the
457 code a bit. It makes no difference on POSIXish platforms but
458 apparently it fixes a bug on w32.
459
44e18199 460 Fix bug where insert-file-contents closes a file twice (Bug#14839).
41d48a42
PE
461 * fileio.c (close_file_unwind): Don't close if FD is negative;
462 this can happen when unwinding a zapped file descriptor.
463 (Finsert_file_contents): Unwind-protect the fd before the point marker,
464 in case Emacs runs out of memory between the two unwind-protects.
465 Don't trash errno when closing FD.
466 Zap the FD in the specpdl when closing it, instead of deferring
467 the removal of the unwind-protect; this fixes a bug where a child
468 function unwinds the stack past us.
469
27e498e6
PE
470 New unwind-protect flavors to better type-check C callbacks.
471 This also lessens the need to write wrappers for callbacks,
472 and the need for make_save_pointer.
473 * alloca.c (free_save_value):
474 * atimer.c (run_all_atimers):
475 Now extern.
476 * alloc.c (safe_alloca_unwind):
477 * atimer.c (unwind_stop_other_atimers):
478 * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
479 * menu.c (cleanup_popup_menu) [HAVE_NS]:
480 * minibuf.c (choose_minibuf_frame_1):
481 * process.c (make_serial_process_unwind):
482 * xdisp.h (pop_message_unwind):
483 * xselect.c (queue_selection_requests_unwind):
484 Remove no-longer-needed wrapper. All uses replaced by the wrappee.
485 * alloca.c (record_xmalloc):
486 Prefer record_unwind_protect_ptr to record_unwind_protect with
487 make_save_pointer.
488 * alloca.c (Fgarbage_collect):
489 Prefer record_unwind_protect_void to passing a dummy.
490 * buffer.c (restore_buffer):
491 * window.c (restore_window_configuration):
492 * xfns.c, w32fns.c (do_unwind_create_frame)
493 New wrapper. All record-unwind uses of wrappee changed.
494 * buffer.c (set_buffer_if_live):
495 * callproc.c (call_process_cleanup, delete_temp_file):
496 * coding.c (code_conversion_restore):
497 * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
498 * editfns.c (save_excursion_restore)
499 (subst_char_in_region_unwind, subst_char_in_region_unwind_1)
500 (save_restriction_restore):
501 * eval.c (restore_stack_limits, un_autoload):
502 * fns.c (require_unwind):
503 * keyboard.c (recursive_edit_unwind, tracking_off):
504 * lread.c (record_load_unwind, load_warn_old_style_backquotes):
505 * macros.c (pop_kbd_macro, restore_menu_items):
506 * nsfns.m (unwind_create_frame):
507 * print.c (print_unwind):
508 * process.c (start_process_unwind):
509 * search.c (unwind_set_match_data):
510 * window.c (select_window_norecord, select_frame_norecord):
511 * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
512 (fast_set_selected_frame):
513 * xfns.c, w32fns.c (unwind_create_tip_frame):
514 Return void, not a dummy Lisp_Object. All uses changed.
515 * buffer.h (set_buffer_if_live): Move decl here from lisp.h.
516 * callproc.c (call_process_kill):
517 * fileio.c (restore_point_unwind, decide_coding_unwind)
518 (build_annotations_unwind):
519 * insdel.c (Fcombine_after_change_execute_1):
520 * keyboard.c (read_char_help_form_unwind):
521 * menu.c (unuse_menu_items):
522 * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
523 * sound.c (sound_cleanup):
524 * xdisp.c (unwind_redisplay):
525 * xfns.c (clean_up_dialog):
526 * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
527 Accept no args and return void, instead of accepting and returning
528 a dummy Lisp_Object. All uses changed.
529 * cygw32.c (fchdir_unwind):
530 * fileio.c (close_file_unwind):
531 * keyboard.c (restore_kboard_configuration):
532 * lread.c (readevalllop_1):
533 * process.c (wait_reading_process_output_unwind):
534 Accept int and return void, rather than accepting an Emacs integer
535 and returning a dummy object. In some cases this fixes an
536 unlikely bug when the corresponding int is outside Emacs integer
537 range. All uses changed.
538 * dired.c (directory_files_internal_unwind):
539 * fileio.c (do_auto_save_unwind):
540 * gtkutil.c (pop_down_dialog):
541 * insdel.c (reset_var_on_error):
542 * lread.c (load_unwind):
543 * xfns.c (clean_up_file_dialog):
544 * xmenu.c, nsmenu.m (pop_down_menu):
545 * xmenu.c (cleanup_widget_value_tree):
546 * xselect.c (wait_for_property_change_unwind):
547 Accept pointer and return void, rather than accepting an Emacs
548 save value encapsulating the pointer and returning a dummy object.
549 All uses changed.
550 * editfns.c (Fformat): Update the saved pointer directly via
551 set_unwind_protect_ptr rather than indirectly via make_save_pointer.
552 * eval.c (specpdl_func): Remove. All uses replaced by definiens.
553 (unwind_body): New function.
554 (record_unwind_protect): First arg is now a function returning void,
555 not a dummy Lisp_Object.
556 (record_unwind_protect_ptr, record_unwind_protect_int)
557 (record_unwind_protect_void): New functions.
558 (unbind_to): Support SPECPDL_UNWIND_PTR etc.
559 * fileio.c (struct auto_save_unwind): New type.
560 (do_auto_save_unwind): Use it.
561 (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
562 * insdel.c (struct rvoe_arg): New type.
563 (reset_var_on_error): Use it.
564 * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
565 New constants.
566 (specbinding_func): Remove; there are now several such functions.
567 (union specbinding): New members unwind_ptr, unwind_int, unwind_void.
568 (set_unwind_protect_ptr): New function.
569 * xselect.c: Remove unnecessary forward decls, to simplify maintenance.
570
4e604a5d
PE
571 Be simpler and more consistent about reporting I/O errors.
572 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
573 Say "Read error" and "Write error", rather than "I/O error", or
574 "IO error reading", or "IO error writing", when a read or write
575 error occurs.
576 * process.c (Fmake_network_process, wait_reading_process_output)
577 (send_process, Fprocess_send_eof, wait_reading_process_output):
578 Capitalize diagnostics consistently. Put "failed foo" at the
579 start of the diagnostic, so that we don't capitalize the
580 function name "foo". Consistently say "failed" for such
581 diagnostics.
582 * sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
583 All callers changed. This is so it can use report_file_error.
584 * sysdep.c (serial_open, serial_configure): Capitalize I/O
585 diagnostics consistently as above.
586
a9757f6a
PE
587 * fileio.c (report_file_errno): Fix errno reporting bug.
588 If the file name is neither null nor a pair, package it up as a
589 singleton list. All callers changed, both to this function and to
590 report_file_error. This fixes a bug where the memory allocator
591 invoked by list1 set errno so that the immediately following
592 report_file_error reported the wrong errno value.
593
c43843aa
PE
594 Fix minor problems found by --enable-gcc-warnings.
595 * frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
596 * keyboard.c (kbd_buffer_get_event): Remove unused local.
597
18c26d81
JD
5982013-07-16 Jan Djärv <jan.h.d@swipnet.se>
599
600 * xterm.c (x_focus_changed): Always generate FOCUS_IN_EVENT.
601 Set event->arg to Qt if switch-event shall be generated.
602 Generate FOCUS_OUT_EVENT for FocusOut if this is the focused frame.
603
604 * termhooks.h (enum event_kind): Add FOCUS_OUT_EVENT.
605
606 * nsterm.m (windowDidResignKey): If this is the focused frame, generate
607 FOCUS_OUT_EVENT.
608
609 * keyboard.c (Qfocus_in, Qfocus_out): New static objects.
610 (make_lispy_focus_in, make_lispy_focus_out): Declare and define.
611 (kbd_buffer_get_event): For FOCUS_IN, make a focus_in event if no
612 switch frame event is made. Check ! NILP (event->arg) if X11 (moved
44e18199 613 from xterm.c). Make focus_out event for FOCUS_OUT_EVENT if NS or X11
18c26d81
JD
614 and there is a focused frame.
615 (head_table): Add focus-in and focus-out.
616 (keys_of_keyboard): Add focus-in and focus-out to Vspecial_event_map,
617 bind to handle-focus-in/out.
618
619 * frame.c (Fhandle_focus_in, Fhandle_focus_out): New functions.
620 (Fhandle_switch_frame): Call Fhandle_focus_in.
621 (syms_of_frame): defsubr handle-focus-in/out.
622
6c6f1994
PE
6232013-07-16 Paul Eggert <eggert@cs.ucla.edu>
624
c7ddc792
PE
625 Fix porting bug to older POSIXish platforms (Bug#14862).
626 * sysdep.c (emacs_pipe): New function, that implements
627 pipe2 (fd, O_CLOEXEC) even on hosts that lack O_CLOEXEC.
628 This should port better to CentOS 5 and to Mac OS X 10.6.
629 All calls to pipe2 changed.
630
6c6f1994
PE
631 Prefer list1 (X) to Fcons (X, Qnil) when building lists.
632 This makes the code easier to read and the executable a bit smaller.
633 Do not replace all calls to Fcons that happen to create lists,
634 just calls that are intended to create lists. For example, when
635 creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
636 rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
637 Similarly for list2 through list5.
638 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
639 * bytecode.c (exec_byte_code):
640 * callint.c (quotify_arg, Fcall_interactively):
641 * callproc.c (Fcall_process, create_temp_file):
642 * charset.c (load_charset_map_from_file)
643 (Fdefine_charset_internal, init_charset):
644 * coding.c (get_translation_table, detect_coding_system)
645 (Fcheck_coding_systems_region)
646 (Fset_terminal_coding_system_internal)
647 (Fdefine_coding_system_internal, Fdefine_coding_system_alias):
648 * composite.c (update_compositions, Ffind_composition_internal):
649 * dired.c (directory_files_internal, file_name_completion)
650 (Fsystem_users):
651 * dispnew.c (Fopen_termscript, bitch_at_user, init_display):
652 * doc.c (Fsnarf_documentation):
653 * editfns.c (Fmessage_box):
654 * emacs.c (main):
655 * eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
656 (Feval, eval_sub, Ffuncall, apply_lambda):
657 * fileio.c (make_temp_name, Fcopy_file, Faccess_file)
658 (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
659 (Fset_file_times, Finsert_file_contents)
660 (Fchoose_write_coding_system, Fwrite_region):
661 * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
662 * font.c (font_registry_charsets, font_parse_fcname)
663 (font_prepare_cache, font_update_drivers, Flist_fonts):
664 * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
665 * frame.c (make_frame, Fmake_terminal_frame)
666 (x_set_frame_parameters, x_report_frame_params)
667 (x_default_parameter, Fx_parse_geometry):
668 * ftfont.c (syms_of_ftfont):
669 * image.c (gif_load):
670 * keyboard.c (command_loop_1):
671 * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
672 (Fcopy_keymap, append_key, Fcurrent_active_maps)
673 (Fminor_mode_key_binding, accessible_keymaps_1)
674 (Faccessible_keymaps, Fwhere_is_internal):
675 * lread.c (read_emacs_mule_char):
676 * menu.c (find_and_return_menu_selection):
677 * minibuf.c (get_minibuffer):
678 * nsfns.m (Fns_perform_service):
679 * nsfont.m (ns_script_to_charset):
680 * nsmenu.m (ns_popup_dialog):
681 * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
682 (Fx_own_selection_internal):
683 * nsterm.m (append2):
684 * print.c (Fredirect_debugging_output)
685 (print_prune_string_charset):
686 * process.c (Fdelete_process, Fprocess_contact)
687 (Fformat_network_address, set_socket_option)
688 (read_and_dispose_of_process_output, write_queue_push)
689 (send_process, exec_sentinel):
690 * sound.c (Fplay_sound_internal):
691 * textprop.c (validate_plist, add_properties)
692 (Fput_text_property, Fadd_face_text_property)
693 (copy_text_properties, text_property_list, syms_of_textprop):
694 * unexaix.c (report_error):
695 * unexcoff.c (report_error):
696 * unexsol.c (unexec):
697 * xdisp.c (redisplay_tool_bar, store_mode_line_string)
698 (Fformat_mode_line, syms_of_xdisp):
699 * xfaces.c (set_font_frame_param)
700 (Finternal_lisp_face_attribute_values)
701 (Finternal_merge_in_global_face, syms_of_xfaces):
702 * xfns.c (x_default_scroll_bar_color_parameter)
703 (x_default_font_parameter, x_create_tip_frame):
704 * xfont.c (xfont_supported_scripts):
705 * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
706 (menu_help_callback, xmenu_show):
707 * xml.c (make_dom):
708 * xterm.c (set_wm_state):
709 Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
710 and similarly for list2 through list5.
711
bafe80ce
PE
7122013-07-15 Paul Eggert <eggert@cs.ucla.edu>
713
714 * callproc.c (Fcall_process_region): Fix minor race and tune.
715 (create_temp_file): New function, with the temp-file-creation part
716 of the old Fcall_process_region. Use Fcopy_sequence to create the
717 temp file name, rather than alloca + build_string, for simplicity.
718 Don't bother to block input around the temp file creation;
719 shouldn't be needed. Simplify use of mktemp. Use
720 record_unwind_protect immediately after creating the temp file;
721 this closes an unlikely race where the temp file was not removed.
722 Use memcpy rather than an open-coded loop.
723 (Fcall_process_region): Use the new function. If the input is
724 empty, redirect from /dev/null rather than from a newly created
725 empty temp file; this avoids unnecessary file system traffic.
726
4700b5a5
PE
7272013-07-14 Paul Eggert <eggert@cs.ucla.edu>
728
5c97beae
PE
729 * filelock.c (create_lock_file) [!HAVE_MKOSTEMP && !HAVE_MKSTEMP]:
730 Simplify by making this case like the other two. This is a bit
731 slower on obsolete hosts, but the extra complexity isn't worth it.
732
4700b5a5
PE
733 * callproc.c (child_setup, relocate_fd) [!DOS_NT]:
734 * process.c (create_process) [!DOS_NT]:
735 Remove now-unnecessary calls to emacs_close.
736
f9a74c4c
EZ
7372013-07-13 Eli Zaretskii <eliz@gnu.org>
738
922ae7ee
EZ
739 * w32term.c (x_draw_hollow_cursor): Delete the brush object when
740 returning early. (Bug#14850)
741
f9a74c4c
EZ
742 * coding.c (syms_of_coding): Set up inhibit-null-byte-detection
743 and inhibit-iso-escape-detection attributes of 'undecided'.
744 (Bug#14822)
745
5e301d76
PE
7462013-07-13 Paul Eggert <eggert@cs.ucla.edu>
747
69e0e5ee
PE
748 * deps.mk (sysdep.o): Remove dependency on ../lib/ignore-value.h.
749 Reported by Herbert J. Skuhra in
750 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00455.html>.
751
5e301d76
PE
752 Don't lose top specpdl entry when memory is exhausted.
753 * eval.c (grow_specpdl): Increment specpdl top by 1 and check for
754 specpdl overflow here, to simplify callers; all callers changed.
755 Always reserve an unused entry at the stack top; this avoids
756 losing the top entry's information when memory is exhausted.
757
7e649856
PE
7582013-07-12 Paul Eggert <eggert@cs.ucla.edu>
759
a773ed9a
PE
760 Clean up errno reporting and fix some errno-reporting bugs.
761 * callproc.c (Fcall_process):
762 * fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
763 * process.c (create_process, Fmake_network_process):
764 * unexaix.c (report_error):
765 * unexcoff.c (report_error):
766 Be more careful about reporting the errno of failed operations.
767 The code previously reported the wrong errno sometimes.
768 Also, prefer report_file_errno to setting errno + report_file_error.
769 (Fcall_process): Look at openp return value rather than at path,
770 as that's a bit faster and clearer when there's a numeric predicate.
771 * fileio.c (report_file_errno): New function, with most of the
772 old contents of report_file_error.
773 (report_file_error): Use it.
774 (Ffile_exists_p, Ffile_accessible_directory_p):
775 Set errno to 0 when it is junk.
776 * fileio.c (Faccess_file):
777 * image.c (x_create_bitmap_from_file):
778 Use faccessat rather than opening the file, to avoid the hassle of
779 having a file descriptor open.
780 * lisp.h (report_file_errno): New decl.
781 * lread.c (Flocate_file_internal): File descriptor 0 is valid, too.
782
7e649856
PE
783 Minor EBADF fixes.
784 * process.c (create_process, wait_reading_process_output) [AIX]:
785 Remove obsolete SIGHUP-related code, as Emacs no longer disables
786 SIGHUP, so EBADF is no longer acceptable here (it wouldn't work in
787 a multithreaded environment anyway).
788 * sysdep.c (emacs_close): It's not dangerous to invoke emacs_close (-1).
789
f6774c1a
AS
7902013-07-12 Andreas Schwab <schwab@linux-m68k.org>
791
792 * image.c (x_find_image_file): Don't close a remote file handle.
793
bacba3c2
PE
7942013-07-12 Paul Eggert <eggert@cs.ucla.edu>
795
796 Fix races with threads and file descriptors.
797 * callproc.c (Fcall_process_region):
798 * dired.c (open_directory):
799 * emacs.c (main, Fdaemon_initialized):
800 * image.c (x_find_image_file):
801 * inotify.c (Finotify_rm_watch):
802 * lread.c (Flocate_file_internal):
803 * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
804 * term.c (term_mouse_moveto, init_tty):
805 * termcap.c (tgetent):
806 * unexaix.c, unexcoff.c (report_error, report_error_1, adjust_lnnoptrs)
807 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c (unexec):
808 * unexhp9k800.c, unexmacosx.c (unexec):
809 * callproc.c (Fcall_process_region):
810 Use emacs_close, not close.
811 * sysdep.c (POSIX_CLOSE_RESTART, posix_close) [!POSIX_CLOSE_RESTART]:
812 New macro and function, which emulates the POSIX_CLOSE_RESTART macro
813 and posix_close function on current platforms (which all lack them).
814 (emacs_close): Use it. This should fix the races on GNU/Linux and
815 on AIX and on future platforms that support POSIX_CLOSE_RESTART,
816 and it should avoid closing random victim file descriptors on
817 other platforms.
818
653d4f43
PE
8192013-07-11 Paul Eggert <eggert@cs.ucla.edu>
820
c8536ec4
PE
821 * inotify.c (uninitialized): Remove. All uses replaced by -1.
822 (Finotify_add_watch): Simplify, since -1 means uninitialized now.
823 Touch up doc a bit.
824
9c203066
PE
825 * eval.c (backtrace_function, backtrace_args): Now EXTERNALLY_VISIBLE.
826 This is for .gdbinit xbacktrace.
827
653d4f43
PE
828 * sysdep.c, term.c, termcap.c, terminal.c: Integer-related minor fixes.
829 * sysdep.c (emacs_get_tty): Return void, since nobody uses the value.
830 (emacs_set_tty): Now static.
831 * sysdep.c (emacs_set_tty, tabs_safe_p, emacs_close):
832 * term.c (tty_capable_p, tty_default_color_capabilities)
833 (get_tty_terminal, term_mouse_movement)
834 (handle_one_term_event, init_tty, maybe_fatal):
835 * termcap.c (tgetst1, struct termcap_buffer, valid_filename_p)
836 (tgetent, scan_file, name_match, compare_contin):
837 * terminal.c (get_terminal):
838 Use bool for boolean.
839 * sysdep.c (init_system_name): Don't overflow stack on huge hostname.
840 Prefer char to unsigned char if either will do.
841 * term.c (OUTPUT, turn_on_face): Omit unnecessary casts to int.
842 (tty_write_glyphs): Prefer int to unsigned.
843 (produce_glyphless_glyph): Remove 2nd (unused) int arg.
844 All callers changed.
845 * termcap.c (tprint, main) [TEST]: Remove non-working test.
846
45b683a1
PE
8472013-07-10 Paul Eggert <eggert@cs.ucla.edu>
848
29abe551
PE
849 Port to C89.
850 * bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
851 (B__dummy__): New dummy symbol, to pacify C89.
852 * dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
853 they can't grok varargs macros.
854 * dispnew.c (add_window_display_history)
855 (add_frame_display_history):
856 * print.c (print_object):
857 * xdisp.c (debug_method_add):
858 Use %p printf format only for void pointers.
859 * emacs.c (usage_message): New constant, replacing ...
860 (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
861 (main): Adjust to usage reorg.
862 * fns.c (syms_of_fns):
863 * profiler.c (syms_of_profiler):
864 Don't use non-constant struct initializers.
865 * gnutls.h (gnutls_initstage_t):
866 * lisp.h (enum Lisp_Fwd_Type):
867 * lread.c (lisp_file_lexically_bound_p):
868 * xsettings.c (anonymous enum):
869 Remove trailing comma.
870 * xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
871 * lisp.h (ENUM_BF): Use unsigned if pedantic.
872 (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
873 (DEFUN): Use it.
874 * regex.c (const_re_char): New type, to pacify strict C89.
875 All uses of 'const re_char' replaced to use it.
876 * regex.h (_Restrict_): Rename from __restrict, to avoid clash
877 with glibc when strict C89. This change is imported from gnulib.
878 All uses changed.
879 (_Restrict_arr_): Rename from __restrict_arr, similarly.
880 * sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
881 Omit GNU_LINUX implementation, since it requires long long.
882 * xterm.c (x_draw_underwave):
883 Do not assume the traditional order of struct's members.
884 (x_term_init): Rewrite to avoid the need for non-constant structure
885 initializers.
886
45b683a1 887 Syntax cleanup, mostly replacing macros with functions.
763a086d 888 This removes the need for the syntax_temp hack.
45b683a1
PE
889 * search.c: Include syntax.h after buffer.h, since syntax.h uses BVAR.
890 * syntax.c (SYNTAX_INLINE): New macro.
891 (SYNTAX_FLAGS_COMSTART_FIRST, SYNTAX_FLAGS_COMSTART_SECOND)
892 (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND)
893 (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLEB)
894 (SYNTAX_FLAGS_COMMENT_STYLEC, SYNTAX_FLAGS_COMMENT_STYLEC2)
895 (SYNTAX_FLAGS_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_STYLE)
896 (SYNTAX_COMEND_FIRST): Now functions, not macros.
897 (ST_COMMENT_STYLE, ST_STRING_STYLE, INTERVALS_AT_ONCE):
898 Now constants, not macros.
899 (syntax_temp) [!__GNUC__]: Remove.
900 (SYNTAX_PREFIX): Remove; all uses replaced by syntax_prefix_flag_p.
901 (syntax_prefix_flag_p): Move implementation of SYNTAX_PREFIX here.
902 (SET_RAW_SYNTAX_ENTRY, SET_RAW_SYNTAX_ENTRY_RANGE, SYNTAX_MATCH)
903 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
904 Move here from syntax.h; now functions, not macros. Except for the
905 last function, these are static since only syntax.c uses them.
906 (syntax_multibyte): Rename from SYNTAX_WITH_MULTIBYTE_CHECK.
907 All uses changed. Now a function, not a macro; use this fact
908 to simplify the code.
909 (scan_lists, scan_sexps_forward): Remove workarounds for ancient
910 compiler bugs; no longer relevant.
911 * syntax.h: Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
912 (SYNTAX_INLINE): New macro.
913 (struct gl_state_s, gl_state): Move earlier, so that it's in scope
914 for the new functions. Use bool for boolean member.
915 (SYNTAX_ENTRY, SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH)
916 (SYNTAX_TABLE_BYTE_TO_CHAR, UPDATE_SYNTAX_TABLE_FORWARD)
917 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
918 (SETUP_BUFFER_SYNTAX_TABLE):
919 Now extern inline functions, not macros.
920 (CURRENT_SYNTAX_TABLE, SYNTAX_ENTRY_INT):
921 Remove; all uses replaced by implementation.
922 (syntax_temp) [!__GNUC__]: Remove decl.
923 (SETUP_SYNTAX_TABLE_FOR_OBJECT): New decl.
924
29be4a50
JD
9252013-07-10 Jan Djärv <jan.h.d@swipnet.se>
926
927 * emacs.c (main): Fix syntax error.
928
954b166e
PE
9292013-07-10 Paul Eggert <eggert@cs.ucla.edu>
930
931 Timestamp fixes for undo (Bug#14824).
932 * atimer.c (schedule_atimer):
933 * fileio.c (Ffile_newer_than_file_p):
934 Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
935 * buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
936 * fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
937 (syms_of_fileio): Remove Sclear_visited_file_name.
938 (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
939 file doesn't exist; this avoids an ambiguity with negative timestamps.
940 (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
941 * systime.h (make_emacs_time, invalid_emacs_time):
942 Don't assume struct timespec layout; POSIX doesn't guarantee it.
943 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE): Remove.
944 * undo.c (record_first_change): Push (visited-file-modtime) onto
945 undo list rather than reimplementing it by hand, incorrectly.
946
d74647c3
KB
9472013-07-09 Ken Brown <kbrown@cornell.edu>
948
949 * sheap.c (STATIC_HEAP_SIZE) [__x86_64__]: Increase to 18MB.
950
3c51b96b
JB
9512013-07-09 Juanma Barranquero <lekktu@gmail.com>
952
953 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/sysdep.$(O)): Update.
954
4ebbdd67
PE
9552013-07-09 Paul Eggert <eggert@cs.ucla.edu>
956
957 Handle errno and exit status a bit more carefully.
958 * callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
959 number into an exit status. Instead, use EXIT_CANCELED.
960 (child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
961 * callproc.c (relocate_fd):
962 * emacs.c (close_output_streams, main):
963 * process.c (create_process):
964 * sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
965 Use emacs_perror for simplicity.
966 * callproc.c (relocate_fd, main):
967 * sysdep.c (sys_subshell):
968 Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
969 (shut_down_emacs): Use emacs_write, not write.
970 * emacs.c, sysdep.c: Don't include <ignore-value.h>.
971 * fileio.c (Fcopy_file, e_write):
972 * nsterm.m (ns_select):
973 * process.c (send_process):
974 * sound.c (vox_write):
975 Use emacs_write_sig, not emacs_write.
976 * lisp.h (emacs_write_sig, emacs_perror): New decls.
977 * process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
978 New constants.
979 * sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
980 of write.
981 (emacs_full_write): New function.
982 (emacs_write): Rewrite to use it.
983 (emacswrite_sig, emacs_perror): New functions.
984 * xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
985
44e18199 9862013-07-08 Magnus Henoch <magnus.henoch@gmail.com> (tiny change)
e4b1e5af
JD
987
988 * image.c (imagemagick_load_image): Do not use MagickExportImagePixels
989 on NS even if it is present. Pixmap on NS is a void*.
990
9caab067
PE
9912013-07-07 Paul Eggert <eggert@cs.ucla.edu>
992
993 Port to Ubuntu 10 (Bug#14803).
994 Problem reported by T.V. Raman.
995 * process.c (close_on_exec, accept4, process_socket):
996 Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
997
1d442672
EZ
9982013-07-07 Eli Zaretskii <eliz@gnu.org>
999
1000 * w32.c (sys_dup): Declare prototype.
1001
1002 * filelock.c:
1003 * emacs.c:
1004 * callproc.c [WINDOWSNT]: Include sys/socket.h.
1005
067428c1
PE
10062013-07-07 Paul Eggert <eggert@cs.ucla.edu>
1007
1008 Make file descriptors close-on-exec when possible (Bug#14803).
1009 This simplifies Emacs a bit, since it no longer needs to worry
1010 about closing file descriptors by hand in some cases.
1011 It also fixes some unlikely races. Not all such races, as
1012 libraries often open files internally without setting
1013 close-on-exec, but it's an improvement.
1014 * alloc.c (valid_pointer_p) [!WINDOWSNT]:
1015 * callproc.c (Fcall_process) [!MSDOS]:
1016 * emacs.c (main) [!DOS_NT]:
1017 * nsterm.m (ns_term_init):
1018 * process.c (create_process):
1019 Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
1020 * emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
1021 * filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
1022 Prefer mkostemp with O_CLOEXEC to mkstemp.
1023 * callproc.c (relocate_fd) [!WINDOWSNT]:
1024 * emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
1025 No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
1026 now using pipe2.
1027 * filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
1028 Make the resulting file descriptor close-on-exec.
1029 * lisp.h, lread.c, process.c (close_load_descs, close_process_descs):
1030 * lread.c (load_descriptor_list, load_descriptor_unwind):
1031 Remove; no longer needed. All uses removed.
1032 * process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
1033 (close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
1034 New functions.
1035 (socket) [!SOCK_CLOEXEC]: Supply a substitute.
1036 (Fmake_network_process, Fnetwork_interface_list):
1037 (Fnetwork_interface_info, server_accept_connection):
1038 Make newly-created socket close-on-exec.
1039 * sysdep.c (emacs_open, emacs_fopen):
1040 Make new-created descriptor close-on-exec.
1041 * w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
1042 * w32.c, w32.h (pipe2): Rename from 'pipe', with new flags arg.
1043
0da857dd
JD
10442013-07-07 Jan Djärv <jan.h.d@swipnet.se>
1045
1046 * nsterm.m (sendEvent:): Propagate keyboard events to modal windows
1047 for NS_IMPL_GNUSTEP.
1048
5f86adcd
PE
10492013-07-07 Paul Eggert <eggert@cs.ucla.edu>
1050
1051 Fix openp errno handling.
1052 * callproc.c (Fcall_process): Preserve openp errno around close.
1053 * lread.c (openp): Set errno when returning -1, as some callers
1054 expect this.
1055
1afb1d07
JD
10562013-07-06 Jan Djärv <jan.h.d@swipnet.se>
1057
1058 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
1059
1060 * nsterm.h (NSSavePanel): Update comment.
1061 (NSAPP_DATA2_RUNFILEDIALOG): Define.
1062 (ns_run_file_dialog): Declare.
1063
1064 * nsfns.m: Remove panelOK.
1065 (ns_fd_data): New.
1066 (ns_run_file_dialog): New function.
1067 (Fns_read_file_name): Fill in ns_fd_data, post an event and start the
1068 event loop, so file dialog is popped up by ns_run_file_dialog, called
1069 by sendEvent (Bug#14578).
1070 (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
1071
3323c263
EZ
10722013-07-06 Eli Zaretskii <eliz@gnu.org>
1073
fdda0220
EZ
1074 * xdisp.c (default_line_pixel_height): New function.
1075 (pos_visible_p, move_it_vertically_backward, try_scrolling)
1076 (try_cursor_movement, redisplay_window, try_window)
1077 (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
1078
1079 * window.c (window_scroll_pixel_based): use
1080 default_line_pixel_height.
1081
1082 * dispextern.h (default_line_pixel_height): Add prototype.
1083
1084 * frame.c (x_set_line_spacing): Accept a float value for
1085 line-spacing parameter, per the documentation.
1086
3323c263
EZ
1087 * data.c (Fmultibyte_string_p): Doc fix.
1088
47ba6d43
PE
10892013-07-05 Paul Eggert <eggert@cs.ucla.edu>
1090
406af475
PE
1091 Use emacs_open more consistently when opening files.
1092 This handles EINTR more consistently now, and makes it easier
1093 to introduce other uniform changes to file descriptor handling.
1094 * src/systdio.h: New file.
1095 * src/buffer.c (mmap_init):
1096 * cygw32.c (chdir_to_default_directory):
1097 * dispnew.c (Fopen_termscript):
1098 * emacs.c (Fdaemon_initialized):
1099 * fileio.c (Fdo_auto_save):
1100 * image.c (slurp_file, png_load_body, jpeg_load_body):
1101 * keyboard.c (Fopen_dribble_file):
1102 * lread.c (Fload):
1103 * print.c (Fredirect_debugging_output):
1104 * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
1105 * termcap.c (tgetent):
1106 * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
1107 * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
1108 * w32term.c (w32_initialize) [CYGWIN]:
1109 * xfaces.c (Fx_load_color_file):
1110 Use emacs_open instead of plain open, and emacs_fopen instead of
1111 plain fopen.
1112 * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
1113 * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
1114 * callproc.c (default_output_mode): New constant.
1115 (Fcall_process): Use it to call emacs_open instead of plain creat.
1116 * dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
1117 * sysdep.c (emacs_open): Add commentary and don't call file name "path".
1118 (emacs_fopen): New function.
1119 * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
1120 Include <lisp.h>, for emacs_open.
1121 * unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
1122
47ba6d43
PE
1123 Remove duplicate #include directives.
1124 * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
1125 * xfaces.c:
1126 Don't include stdio.h twice.
1127 * buffer.c [USE_MMAP_FOR_BUFFERS]:
1128 Don't include sys/types.h or stdio.h twice.
1129 * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
1130 * lread.c: Don't include coding.h twice.
1131 * nsfont.m: Don't include frame.h twice.
1132 * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
1133 * ralloc.c: Don't include <unistd.h> twice.
1134 * xdisp.c: Don't include font.h twice.
1135 * xterm.c: Don't include fontset.h twice.
1136 * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
1137
b9ed53d5
PE
11382013-07-04 Paul Eggert <eggert@cs.ucla.edu>
1139
1140 Scale ImageMagick images more carefully.
1141 * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
1142 (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
1143 Be more careful about avoiding undefined behavior after
1144 integer overflow and division by zero.
1145
cf13177e
YM
11462013-07-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1147
1148 * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
1149 (syms_of_w32fns): DEFSYM them.
1150 (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
1151 (CCHDEVICENAME): Define macros if not defined.
1152 (struct MONITOR_INFO_EX): New struct.
1153 (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
1154 (enum_display_monitors_fn): New variable.
1155 (globals_of_w32fns): Initialize it.
1156 (Fx_display_pixel_width, Fx_display_pixel_height)
1157 (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
1158 multi-monitor setups in docstrings.
1159 (Fx_display_mm_height, Fx_display_mm_width): Approximate whole
1160 screen size by primary monitor's millimeter per pixel.
1161 (w32_monitor_enum, w32_display_monitor_attributes_list)
1162 (w32_display_monitor_attributes_list_fallback)
1163 (Fw32_display_monitor_attributes_list): New functions.
1164 (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
1165
1166 * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
1167 if not defined.
1168 (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
1169
86dfb7a8
MA
11702013-07-04 Michael Albinus <michael.albinus@gmx.de>
1171
1172 * fileio.c (Qfile_notify_error): New error symbol.
1173
1174 * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
1175 * inotify.c (inotify_callback, symbol_to_inotifymask)
1176 (Finotify_add_watch, Finotify_rm_watch): Use it.
1177 (inotifyevent_to_event): Exchange order of cookie and file name.
1178 (Finotify_add_watch): Adapt docstring.
1179
1180 * lisp.h (Qfile_notify_error): Declare.
1181
2c1c974b
PE
11822013-07-04 Paul Eggert <eggert@cs.ucla.edu>
1183
1184 Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
1185 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
1186 Do not clear _malloc_thread_enabled_p, undoing the previous change,
1187 which did not work (see <http://bugs.gnu.org/14569#307>).
1188 (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
1189 && (!noninteractive || initialized)). This attempts to thread
1190 the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
1191
7a35b20f
JB
11922013-07-04 Juanma Barranquero <lekktu@gmail.com>
1193
1194 * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
1195 (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
1196
1ce5cd04
PE
11972013-07-04 Paul Eggert <eggert@cs.ucla.edu>
1198
1199 Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
1200 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
1201 Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in
1202 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.
1203
57f8c490
PE
12042013-07-02 Paul Eggert <eggert@cs.ucla.edu>
1205
1206 * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
1207 Define to __sys_siglist.
1208
bcffb5ca
EZ
12092013-07-02 Eli Zaretskii <eliz@gnu.org>
1210
1211 * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
1212 word-wrap, so that overflow-newline-into-fringe would work in
1213 visual-line-mode. (Bug#2749)
1214 (move_it_in_display_line_to): When the last scanned display
1215 element fits exactly on the display line, and
1216 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
1217 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
1218 wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
1219 finding buffer position that corresponds to pixel coordinates,
1220 e.g. in buffer_posn_from_coords.
1221
2c41e781
JD
12222013-07-02 Jan Djärv <jan.h.d@swipnet.se>
1223
1224 * process.c (handle_child_signal): Call catch_child_signal if
1225 NS_IMPL_GNUSTEP.
1226
c2418359
PE
12272013-07-02 Paul Eggert <eggert@cs.ucla.edu>
1228
52a9bcae
PE
1229 Don't convert function pointers to void * and back.
1230 It isn't portable C, and it's easy enough to avoid.
1231 * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
1232 (make_save_value): Add support for SAVE_FUNCPOINTER.
1233 * keymap.c (map_keymap_char_table_item, map_keymap_internal):
1234 * print.c (print_object):
1235 Distinguish function from object pointers.
1236 * lisp.h (SAVE_FUNCPOINTER): New constant.
1237 (SAVE_SLOT_BITS): Adjust to it.
1238 (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
1239 SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
1240 (voidfuncptr): New typedef.
1241 (struct Lisp_Save_Value): New member data[0].funcpointer.
1242 (XSAVE_FUNCPOINTER): New function.
1243
c2418359
PE
1244 Simplify buildobj processing.
1245 * Makefile.in (buildobj.h): Make it a sequence of strings each
1246 followed by comma, rather than a single string. Put it into a
1247 .tmp file in case there's an error while generating it.
1248 (gl-stamp): Use .tmp for temp files.
1249 (mostlyclean): Clean .tmp files.
1250 * doc.c (buildobj): Move to just the routine that needs it.
1251 It's now an array of strings, so processing is simpler.
1252
8f43ce49
PE
12532013-07-01 Paul Eggert <eggert@cs.ucla.edu>
1254
1255 Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
1256 * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
1257 (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
1258 Invoke malloc_enable_thread even when not interactive.
1259 Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
1260 * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
1261 in this case, since the underlying bug has now been fixed.
1262
24827db9
JB
12632013-07-01 Juanma Barranquero <lekktu@gmail.com>
1264
1265 * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
1266 unlinking it (bug#14691).
1267
ef099a94
MN
12682013-06-30 Michal Nazarewicz <mina86@mina86.com>
1269
1270 * buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
1271 before checking whether buffer is modified. This lets
1272 `kill-buffer-query-functions' cancel killing of the buffer or save
1273 its content before `kill-buffer' asks user the "Buffer %s
1274 modified; kill anyway?" question.
1275
9d3f2fc2
JD
12762013-06-30 Jan Djärv <jan.h.d@swipnet.se>
1277
1278 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
1279 Let the super performKeyEquivalent deal with them (Bug#14747).
1280
e6c6c8c7
PE
12812013-06-30 Paul Eggert <eggert@cs.ucla.edu>
1282
1d71c1d9
PE
1283 * widget.c (resize_cb): Remove unused local.
1284
8f5f35cc
PE
1285 Do not use GTK 3 if it exists but cannot be compiled.
1286 * xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
1287 * xterm.c (x_error_handler) [!USE_GTK]:
1288 Do not use GTK 3.
1289
e6c6c8c7
PE
1290 * intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
1291
0ba54312
EZ
12922013-06-30 Eli Zaretskii <eliz@gnu.org>
1293
5d1c3286
EZ
1294 * intervals.c (get_local_map): Instead of aborting, clip POSITION
1295 to the valid range of values. (Bug#14753)
1296
0ba54312
EZ
1297 * xdisp.c (Fmove_point_visually): Invalidate the cursor position
1298 when moving point by using the current glyph matrix. This avoids
1299 the need to force redisplay when this function is called in a
1300 loop.
1301
9c90cc06
PE
13022013-06-29 Paul Eggert <eggert@cs.ucla.edu>
1303
1304 Fix minor problems found by static checking.
1305 * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
1306 Redo the latter's body to sidestep GCC parenthesization warnings.
1307 (setup_coding_system, detect_coding, detect_coding_system): Use them.
1308 * coding.c (detect_coding, detect_coding_system):
1309 * coding.h (struct undecided_spec):
1310 Use bool for boolean.
1311 * image.c (QCmax_width, QCmax_height): Now static.
1312 * xdisp.c (Fmove_point_visually): Remove unused local.
1313
4c672a0f
EZ
13142013-06-29 Eli Zaretskii <eliz@gnu.org>
1315
1316 * xdisp.c (Fmove_point_visually): New function.
1317
c1ea3abf
JB
13182013-06-28 Kenichi Handa <handa@gnu.org>
1319
1320 * coding.h (define_coding_undecided_arg_index): New enum.
1321 (coding_attr_index): New members
1322 coding_attr_undecided_inhibit_null_byte_detection,
1323 coding_attr_undecided_inhibit_iso_escape_detection,
1324 coding_attr_undecided_prefer_utf_8.
1325 (undecided_spec): New struct.
1326 (struct coding_system): New member `undecided' of the member
1327 `spec'.
1328
1329 * coding.c (setup_coding_system): Handle CODING->spec.undecided.
1330 (detect_coding): Likewise.
1331 (detect_coding_system): Likewise.
1332 (Fdefine_coding_system_internal): New coding system properties
1333 :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
1334 :prefer-utf-8.
1335 (syms_of_coding): Adjust for coding_arg_undecided_max.
1336
ba3de9e6
PE
13372013-06-28 Paul Eggert <eggert@cs.ucla.edu>
1338
1339 * image.c (x_from_xcolors): Remove unused local.
1340
547c9269
YM
13412013-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1342
1343 Defer image data transfer between X client and server until actual
1344 display happens.
1345
1346 * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
1347 and `mask_img'.
1348
1349 * image.c (Destroy_Image): Remove.
1350 (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
1351 `mask_p', and `colors_p'. All uses changed.
1352 (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
ef099a94
MN
1353 (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
1354 New macros for `flags' arg to x_clear_image_1.
547c9269
YM
1355 (postprocess_image, xpm_load_image, x_build_heuristic_mask)
1356 (png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
04b66ce7 1357 (ZPixmap, XGetImage) [HAVE_NS]: Remove.
547c9269
YM
1358 (image_get_x_image_or_dc, image_unget_x_image_or_dc)
1359 (image_get_x_image, image_unget_x_image): New functions or macros.
1360 (image_background, image_background_transparent, x_to_xcolors)
1361 (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
1362 XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc
1363 instead of Destroy_Image.
1364 (image_create_x_image_and_pixmap, image_put_x_image): New functions.
1365 (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
1366 (png_load_body, jpeg_load_body, tiff_load, gif_load)
1367 (imagemagick_load_image, svg_load_image): Use them instead of
1368 x_create_x_image_and_pixmap, and x_put_x_image followed by
1369 x_destroy_x_image, respectively.
1370 (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
1371 XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
1372 XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and
1373 background_transparent fields.
1374 (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
1375 (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
1376
dae2f5ef
PE
13772013-06-27 Paul Eggert <eggert@cs.ucla.edu>
1378
1379 Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
1380 This mostly consists of undoing recent changes.
1381 * callproc.c (Fcall_process):
1382 * process.c (create_process):
1383 Do not worry about catching SIGCHLD here, undoing previous change.
1384 * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
1385 * process.c, process.h (catch_child_signal):
1386 No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
1387 * process.c (catch_child_handler): Don't worry about being called
1388 lazily and do not assume caller has blocked SIGCHLD, undoing
1389 previous change. Move first-time stuff back to
1390 init_process_emacs, undoing 06-22 change. If CYGWIN, do not
1391 tickle glib, as that causes Cygwin bootstrap to fail. Do not
1392 set lib_child_handler if it's already initialized, which may
1393 help avoid problems on GNUStep.
1394
fa55d2aa
PE
13952013-06-23 Paul Eggert <eggert@cs.ucla.edu>
1396
1397 A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
1398 * callproc.c (Fcall_process):
1399 * process.c (create_process):
1400 Make sure SIGCHLD is caught before we fork,
1401 since Emacs startup no arranges to catch SIGCHLD.
1402 * process.c (lib_child_handler): Initialize to null, not to
1403 dummy_handler.
1404 (catch_child_signal): Allow self to be called lazily.
1405 Do nothing if it's already been called.
1406 Assume caller has blocked SIGCHLD (all callers do now).
1407 * emacs.c (main): Do not catch SIGCHLD here; defer it until
1408 just before it's really needed.
1409 * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
1410 since it hasn't been caught yet.
1411
f3f9606c
LMI
14122013-06-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
1413
1414 * image.c (compute_image_size): New function to implement
1415 :max-width and :max-height.
1416 (imagemagick_load_image): Use it.
1417
c7041908
PE
14182013-06-23 Paul Eggert <eggert@cs.ucla.edu>
1419
1420 Try to avoid malloc SEGVs on Cygwin (Bug#14569).
1421 * callproc.c, process.h (block_child_signal, unblock_child_signal):
1422 Now extern.
1423 * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
1424 * process.c (catch_child_signal): Block SIGCHLD while futzing with
1425 the SIGCHLD handler, since the code is not atomic and (due to glib)
1426 signals may be arriving now.
1427 * sysdep.c (init_signals): Do not catch child signals here;
1428 'main' now does that later, at a safer time.
1429
f86852b4
PE
14302013-06-22 Paul Eggert <eggert@cs.ucla.edu>
1431
0dfeed58
PE
1432 Clean up SIGCHLD handling a bit (Bug#14569).
1433 * process.c, process.h (catch_child_signal):
1434 Now always extern, even if !NS_IMPL_GNUSTEP.
1435 * process.c (catch_child_signal): Move glib tickler here from
1436 init_process_emacs, so that it's done earlier in Emacs
1437 initialization. Also move the noninteractive && !initialized
1438 check here from init_process_emacs. This is all a bit cleaner for
1439 GNUish platforms, and I hope it works around the Cygwin bug.
1440 * sysdep.c (init_signals): Invoke catch_child_signal here, so
1441 that glib signal handling is tickled before glib creates threads.
1442
f86852b4
PE
1443 * process.c (wait_reading_process_output): Avoid int overflow
1444 when reading more than 2 GiB total from a process.
1445
cbd6509c
PE
14462013-06-21 Paul Eggert <eggert@cs.ucla.edu>
1447
1448 * process.c (create_process): Handle a couple more cases,
1449 i.e., work even if new_argv and wait_child_setup[i] are cached.
1450 Use Fcall_process's style for volatile vars.
1451
9de1114a
AS
14522013-06-21 Andreas Schwab <schwab@linux-m68k.org>
1453
1454 * process.c (create_process): Mark PROCESS volatile.
1455
fbe9e0b9
PE
14562013-06-21 Paul Eggert <eggert@cs.ucla.edu>
1457
1458 Use C99-style flexible array members if available.
1459 This avoids some subtle aliasing issues, which typically
1460 aren't a problem with GCC but may be a problem elsewhere.
1461 * alloc.c (sdata): New typedef, replacing the old struct sdata.
1462 It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
1463 In either case, it uses a flexible array member rather than
1464 the old struct hack. All uses changed.
1465 (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
1466 Adjust to sdata reorganization.
1467 * alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
1468 Use offsetof (struct, flex_array_member), not sizeof (struct), as
1469 that ports better to pre-C99 non-GCC.
1470 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
1471 Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
1472 as the latter has changed.
1473 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
1474 and port better to pre-C99 GCC.
1475 * image.c (struct xpm_cached_color):
1476 * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
1477 (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
1478 Use FLEXIBLE_ARRAY_MEMBER.
1479 * lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
1480 Move decl to top level so it gets checked against implementation.
1481 (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
1482 * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
1483
1fc71008
PE
14842013-06-20 Paul Eggert <eggert@cs.ucla.edu>
1485
1486 * syntax.c: Integer cleanups.
1487 (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
1488 All uses that need 0-or-2 changed to:
1489 (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
1490 as the old SYNTAX_FLAGS_COMMENT_STYLEC.
1491 (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
1492 (char_quoted, prev_char_comend_first, back_comment)
1493 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
1494 (in_classes, forw_comment, scan_lists, scan_sexps_forward):
1495 Use bool for boolean.
1496 (update_syntax_table, skip_chars, skip_syntaxes):
1497 Prefer int to unsigned when either will do.
1498 (back_comment): Return boolean success flag, like forw_comment,
1499 instead of positive-or-minus-1 (which might have overflowed int anyway).
1500 Don't stuff ptrdiff_t into int.
1501 (syntax_spec_code, syntax_code_spec): Now const.
1502 (Fmatching_paren, scan_lists, scan_sexps_forward):
1503 Use enum syntaxcode for syntax code.
1504 (Fmatching_paren): Check that arg is a character, not just an integer.
1505 (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
1506 (Finternal_describe_syntax_value): Omit no-longer-needed
1507 comparison to 0.
1508 (skip_chars): Use char, not unsigned char, when the distinction
1509 doesn't matter.
1510 (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
1511 * bytecode.c (exec_byte_code):
1512 * syntax.c (syntax_spec_code, Fchar_syntax)
1513 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
1514 (init_syntax_once):
1515 * syntax.h (SYNTAX_WITH_FLAGS):
1516 Omit unnecessary casts.
1517
b932cad7
EZ
15182013-06-20 Eli Zaretskii <eliz@gnu.org>
1519
1520 * w32fns.c (w32_wnd_proc): Don't compute the header line and mode
1521 line dimensions here, to avoid race conditions with the main
1522 thread. (Bug#14062, bug#14630, bug#14669)
1523
1524 * w32term.c (w32_draw_window_cursor): Compute the header line and
1525 mode line dimensions here.
1526 <w32_system_caret_window, w32_system_caret_hdr_height>:
1527 <w32_system_caret_mode_height>: New variables.
1528
1529 * w32term.h: Declare them.
1530
89561f72
PE
15312013-06-20 Paul Eggert <eggert@cs.ucla.edu>
1532
5013fc08
PE
1533 * alloc.c (die): Move "assertion failed" string here ...
1534 * lisp.h (eassert): ... from here. Also, suppress evaluation of
1535 COND when SUPPRESS_CHECKING. This shrinks the executable text
1536 size by 0.8% to 2.2% when configured with --enable-checking,
1537 depending on optimization flags (GCC 4.8.1 x86-64).
1538
89561f72
PE
1539 * floatfns.c (Flog10): Move to Lisp (marked obsolete there).
1540
763a086d 15412013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
89561f72
PE
1542
1543 * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
1544 base is 2; this is more accurate.
1545
983aeb9a
JB
15462013-06-19 Juanma Barranquero <lekktu@gmail.com>
1547
1548 * sound.c (string_default): Move to !WINDOWSNT section.
1549 (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
1550
178ba3e6
PE
15512013-06-19 Paul Eggert <eggert@cs.ucla.edu>
1552
bbc51b15
PE
1553 * sound.c: Integer cleanups.
1554 Remove unnecessary forward decls.
1555 (struct sound_device): The 'file' member is now a Lisp_Object, not
1556 a char *, so that we needn't invoke alloca on a huge size.
1557 (Fplay_sound_internal): Adjust to this.
1558 (string_default): New function.
1559 (vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
1560 Use it to adjust to the struct sound_device change.
1561 (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
1562 (be2hs) [0]: Remove.
1563
178ba3e6
PE
1564 * syntax.c (skip_chars): Don't use uninitialized storage
1565 when searching a multibyte buffer for characters that are not in a
1566 unibyte string that contains non-ASCII characters.
1567
69f60cdc
JD
15682013-06-18 Jan Djärv <jan.h.d@swipnet.se>
1569
1570 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
1571 if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
1572
0d6224d4
PE
15732013-06-18 Paul Eggert <eggert@cs.ucla.edu>
1574
1575 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
1576
3c542890
KH
15772013-06-18 Kenichi Handa <handa@gnu.org>
1578
f7e3f7cd
KH
1579 * font.c (Ffont_spec): Signal an error for an invalid font name
1580 (Bug#14648).
3c542890 1581
9349e5f7
PE
15822013-06-18 Paul Eggert <eggert@cs.ucla.edu>
1583
1584 Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
1585 In particular this ports to 32-bit sparc Sun cc.
1586 * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
1587 array with a dummy element at specpdl[-1], so that its address can
1588 be taken portably.
1589 (unbind_to): Do not copy the binding; not needed, now that we
1590 copy old_value in the one place where the copy is needed.
1591 * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
1592 * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
1593 (union specbinding): Rename from struct specbinding. Redo layout
1594 to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
1595 which is not portable. With Sun C 5.12 32-bit sparc, the
1596 declaration causes nargs to be an unsigned bitfield, a behavior
1597 that the C standard allows; but Emacs wants nargs to be signed.
1598 The overall type is now a union of structures rather than a
1599 structure of union of structures, and the 'kind' member is now a
1600 bitfield, so that the overall type doesn't grow. All uses changed.
1601 * process.c (Fmake_serial_process): Remove unnecessary initialization.
1602
0a4df6a5
PE
16032013-06-17 Paul Eggert <eggert@cs.ucla.edu>
1604
ec6ecaad
PE
1605 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
1606 Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
1607
0a4df6a5
PE
1608 * nsfont.m (ns_registry_to_script): Parenthesize while expression.
1609
7bfe8dbc
EZ
16102013-06-17 Eli Zaretskii <eliz@gnu.org>
1611
1612 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
1613 unless we know that the window w's frame is a frame object.
1614 Another attempt at solving bug#14062 and bug#14630.
1615
708e05f6
LMI
16162013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
1617
1618 * textprop.c (property_set_type): New enum.
1619 (add_properties): Allow appending/prepending text properties.
1620 (add_text_properties_1): Factored out of Fadd_text_properties.
ef099a94 1621 (Fadd_text_properties): Move all the code into
708e05f6
LMI
1622 add_text_properties_1.
1623 (Fadd_face_text_property): New function that calls
1624 add_text_properties_1.
1625
84575e67
PE
16262013-06-17 Paul Eggert <eggert@cs.ucla.edu>
1627
1628 Move functions from lisp.h to individual modules when possible.
1629 From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
1630 * alloc.c (XFLOAT_INIT, set_symbol_name):
1631 * buffer.c (CHECK_OVERLAY):
1632 * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
1633 (set_char_table_parent):
1634 * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
1635 * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
1636 (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
1637 (blv_value, set_blv_value, set_blv_where, set_blv_defcell)
1638 (set_blv_valcell):
1639 * emacs.c (setlocale) [!HAVE_SETLOCALE]:
1640 * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
1641 (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
1642 (backtrace_args, backtrace_debug_on_exit):
1643 * floatfns.c (CHECK_FLOAT):
1644 * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
1645 (set_hash_key_and_value, set_hash_next, set_hash_next_slot)
1646 (set_hash_hash, set_hash_hash_slot, set_hash_index)
1647 (set_hash_index_slot):
1648 * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
1649 * marker.c (CHECK_MARKER):
1650 * textprop.c (CHECK_STRING_OR_BUFFER):
1651 * window.c (CHECK_WINDOW_CONFIGURATION):
1652 Move here from lisp.h, and make these functions static rather than
1653 extern inline.
1654 * buffer.c (Qoverlayp):
1655 * data.c (Qsubrp):
1656 * fns.c (Qhash_table_p):
1657 * window.c (Qwindow_configuration_p):
1658 Now static.
1659 * lisp.h: Remove the abovementioned defns and decls.
1660
44e18199 1661 Use functions, not macros, for XINT etc (Bug#11935).
84575e67
PE
1662 In lisp.h, prefer functions to function-like macros, and
1663 constants to object-like macros, when either will do. This:
1664 . simplifies use, as there's no more need to worry about
1665 arguments' side effects being evaluated multiple times.
1666 . makes the code easier to debug on some platforms.
1667 However, when using gcc -O0, keep using function-like macros
1668 for a few critical operations, for performance reasons.
1669 This sort of thing isn't needed with gcc -Og, but -Og
1670 is a GCC 4.8 feature and isn't widely-enough available yet.
1671 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
1672 Remove enum lsb_bits; no longer needed.
1673 (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
1674 * buffer.c (Qoverlap):
1675 * data.c (Qsubrp):
1676 * fns.c (Qhash_table_p):
1677 Now extern, so lisp.h can use these symbols.
1678 * dispextern.h: Include character.h, for MAX_CHAR etc.
1679 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
1680 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
1681 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
1682 (GLYPH_CODE_P): Move here from lisp.h.
1683 (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
1684 (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
1685 (GLYPH_MODE_LINE_FACE): Now enums, not macros.
1686 * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
1687 XUNTAG now returns void *.
1688 * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
1689 (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
1690 (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
1691 (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
1692 (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
1693 (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
1694 (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
1695 (lisp_h_XPNTR, lisp_h_XSYMBOL):
1696 New macros, renamed from their sans-lisp_h_ counterparts.
1697 (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
1698 (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
1699 (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
1700 (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
1701 If compiling via GCC without optimization, define these as macros
1702 in addition to inline functions.
1703 To disable this, compile with -DINLINING=0.
1704 (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
1705 (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
1706 (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
1707 hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
1708 (INTMASK, VALMASK): Now macros, since static values cannot be
1709 accessed from extern inline functions.
1710 (VALMASK): Also a constant, for benefit of old GDB.
1711 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
1712 is INTEGERP, which can fold it in.
5165d44a 1713 (XLI, XIL, XHASH, XTYPE, XINT, XFASTINT, XUINT)
84575e67
PE
1714 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
1715 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
1716 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
1717 (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
1718 (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
1719 (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
1720 (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
1721 (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
1722 (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
1723 (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
1724 (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
1725 (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
1726 (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
1727 (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
1728 (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
1729 (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
1730 (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
1731 (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
1732 (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
1733 (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
1734 (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
1735 (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
1736 (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
1737 (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
1738 (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
1739 (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
1740 (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
1741 (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
1742 (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
1743 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
1744 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
1745 (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
1746 Now functions.
1747 (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
1748 (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
1749 (VALMASK): Define in one place rather than in two, merging the
1750 USE_LSB_TAG parts; this is simpler.
1751 (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
1752 (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
1753 Move up, to avoid use before definition.
1754 Also include "globals.h" earlier, for the same reason.
1755 (make_natnum): New function.
1756 (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
1757 (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
1758 (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
1759 (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
1760 (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
1761 (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
1762 (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
1763 (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
1764 (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
1765 (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
1766 (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
1767 (Qwindow_configuration_p, Qimage): New forward declarations.
1768 (XSETFASTINT): Simplify by rewriting in terms of make_natnum.
1769 (STRING_COPYIN): Remove; unused.
1770 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
1771 (xcar_addr, xcdr_addr): New functions. All uses changed.
1772 (IEEE_FLOATING_POINT): Now a constant, not a macro.
1773 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
1774 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
1775 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
1776 (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
1777 (TYPE_RANGED_INTEGERP): Simplify.
1778 (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
1779 (setlocale, fixup_locale, synchronize_system_messages_locale)
1780 (synchronize_system_time_locale) [!HAVE_SETLOCALE]:
1781 Now empty functions, not macros.
1782 (functionp): Return bool, not int.
1783 * window.c (Qwindow_configuration_p): Now extern,
1784 so window.h can use it.
1785 * window.h (Qwindowp): Move decl back to lisp.h.
1786
9583ec36
EZ
17872013-06-15 Eli Zaretskii <eliz@gnu.org>
1788
1789 * xdisp.c (Fline_pixel_height): New function, required for solving
1790 bug #14567.
1791
210272ce
PE
17922013-06-15 Paul Eggert <eggert@cs.ucla.edu>
1793
1794 * fns.c (Fcopy_sequence): Simplify XTYPE calculation.
1795
de0503df
SM
17962013-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
1797
1798 * lread.c (syms_of_lread):
1799 * fns.c (Fprovide): Adjust to new format of after-load-alist.
1800
afbfe143
KD
18012013-06-13 Kelly Dean <kellydeanch@yahoo.com> (tiny change)
1802
1803 * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479)
1804
d177e213
XF
18052013-06-12 Xue Fuqiao <xfq.free@gmail.com>
1806
1807 * fileio.c (expand_file_name): Doc fix.
1808
05e3e412
PE
18092013-06-11 Paul Eggert <eggert@cs.ucla.edu>
1810
f7394b12
PE
1811 Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
1812 * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
1813 Wait for self, not for 0. This can't hurt on GNU or similar
1814 system, and may help with Cygwin.
1815
05e3e412
PE
1816 * keyboard.c: Don't use PROP (...) as an lvalue.
1817 (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
1818 Use set_prop (A, B), not PROP (A) = B.
1819
17dd3097
EZ
18202013-06-10 Eli Zaretskii <eliz@gnu.org>
1821
1822 * xdisp.c (get_it_property): Use it->window instead of generating
1823 a Lisp object from it->w.
1824
52fab9c9
EZ
18252013-06-09 Eli Zaretskii <eliz@gnu.org>
1826
1827 * xdisp.c (get_it_property): If it->object is a buffer, pass to
1828 get-char-property the window that is being rendered, instead of
1829 the buffer, to support window-specific overlays. (Bug#14575)
ad257d4f
EZ
1830 (compute_display_string_pos): When W is NULL, use the current
1831 buffer as the object to pass to get-char-property.
1832 (Fcurrent_bidi_paragraph_direction): Assign NULL to the window
1833 pointer member of the bidi iterator, since no window is pertinent
1834 to this function.
52fab9c9 1835
5bf97bfc
EZ
18362013-06-08 Eli Zaretskii <eliz@gnu.org>
1837
1838 * bidi.c (bidi_fetch_char): Accept additional argument, the window
1839 being displayed, and pass it to compute_display_string_pos.
1840 (bidi_level_of_next_char, bidi_resolve_explicit_1)
1841 (bidi_paragraph_init): All callers changed.
1842
1843 * xdisp.c (init_from_display_pos, init_iterator)
1844 (handle_single_display_spec, next_overlay_string)
1845 (get_overlay_strings_1, reseat_1, reseat_to_string)
e7b41c4c
JB
1846 (push_prefix_prop, Fcurrent_bidi_paragraph_direction):
1847 Set bidi_it.w member from it->w.
5bf97bfc
EZ
1848 (compute_display_string_pos): Accept additional argument, the
1849 window being displayed, and pass it to Fget_char_property.
1850 (Bug#14575)
1851
1852 * dispextern.h (struct bidi_it): New member w, the window being
1853 displayed.
1854 (compute_display_string_pos): Adjust prototype.
1855
5de0e011
JD
18562013-06-08 Jan Djärv <jan.h.d@swipnet.se>
1857
e7b41c4c 1858 * xgselect.c: Remove unneeded include xterm.h.
b33f93ee
JD
1859
1860 * process.c (wait_reading_process_output): Check for NS before GLIB.
1861 GLIB may be linked in due to rsvg, but ns_select must be called.
1862
5de0e011
JD
1863 * xgselect.c (xg_select): Remove call to window_system_available
1864 and g_main_context_pending at the top, so Gdk events (i.e. file
1865 notify) are processed when Emacs is started with -nw.
1866
a822acff
EZ
18672013-06-07 Eli Zaretskii <eliz@gnu.org>
1868
1869 * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
1870 (ctagsfiles3): New variable, includes only *.m files.
1871 (TAGS): Use an explicit language name in the regular expressions,
1872 to avoid transformation of '/SOMETHING' by MSYS to
1873 'c:\MSYS\SOMETHING'.
1874
6c0a9ed1
RC
18752013-06-07 Richard Copley <rcopley@gmail.com> (tiny change)
1876
1877 * epaths.in: Fix commentary to PATH_SITELOADSEARCH.
1878
9ef6111b
EZ
18792013-06-06 Eli Zaretskii <eliz@gnu.org>
1880
1881 * xdisp.c (note_mouse_highlight): When mouse-highlight is off,
1882 still need to set the mouse pointer shape and activate help-echo.
1883 (Bug#14558)
1884
7d300d64
PE
18852013-06-06 Paul Eggert <eggert@cs.ucla.edu>
1886
1887 A few porting etc. fixes for the new file monitor code.
1888 See the thread containing
1889 <http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
1890 * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
1891 (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
1892 (dir_monitor_callback, Fgfile_rm_watch):
1893 Use assq_no_quit instead of Fassoc, for speed.
1894 (dir_monitor_callback, Fgfile_rm_watch):
1895 eassert that the monitor is a fixnum.
1896 (dir_monitor_callback): No need for CDR_SAFE.
1897 Simplify building of lisp with alternative tails.
1898 (Fgfile_add_watch, Fgfile_rm_watch):
1899 Do not assume glib functions set errno reliably on failure.
1900 (Fgfile_add_watch): Check that the monitor survives the XIL trick,
1901 and signal an error otherwise.
1902 (Fgfile_rm_watch): Prefer CONSP to !NILP.
1903 Use Fdelq instead of Fdelete, for speed.
1904
817ebfcf
EZ
19052013-06-05 Eli Zaretskii <eliz@gnu.org>
1906
1907 * xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
1908 don't insist on being invoked on a highlighted tool-bar button.
1909 Avoids losing tool-bar functionality when mouse-highlight is nil.
1910 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
1911 Don't highlight when mouse-highlight is nil.
1912 (note_mouse_highlight): When mouse-highlight is nil, don't return
1913 right away; instead, run tool-bar and mode-line highlight
1914 subroutine, clear any existing highlight, and revert the mouse
1915 pointer to its default shape. (Bug#14558)
1916
55577e7c
SM
19172013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
1918
1919 * lisp.mk (lisp): Add prog-mode.el.
1920
f019a684
PE
19212013-06-05 Paul Eggert <eggert@cs.ucla.edu>
1922
1923 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
1924 * process.c (dummy_handler): New function.
1925 (lib_child_handler): New static var.
1926 (handle_child_signal): Invoke it.
1927 (catch_child_signal): If a library has set up a signal handler,
1928 save it into lib_child_handler.
1929 (init_process_emacs): If using glib and not on Windows, tickle glib's
1930 child-handling code so that it initializes its private SIGCHLD handler.
1931 * syssignal.h (SA_SIGINFO): Default to 0.
1932 * xterm.c (x_term_init): Remove D-bus hack that I installed on May
1933 31; it should no longer be needed now.
1934
90db8702
MA
19352013-06-05 Michael Albinus <michael.albinus@gmx.de>
1936
1937 * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
1938
1939 * gfilenotify.c (globals_of_gfilenotify): New function.
1940 (syms_of_gfilenotify): Move global initialization there.
1941
1942 * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
1943
bfa3acd6
SM
19442013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
1945
1946 * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
1947 * keyboard.c (menu_bar_items, tool_bar_items):
1948 * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
1949 not override local keymaps any more.
1950
ba59bd80
EZ
19512013-06-04 Eli Zaretskii <eliz@gnu.org>
1952
1953 * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540)
1954
7f203aa1
EZ
19552013-06-03 Eli Zaretskii <eliz@gnu.org>
1956
9337e206
EZ
1957 * w32console.c (initialize_w32_display): Return the dimensions of
1958 the console window via 2 additional arguments, not via the current
1959 frame. This avoids crashes due to overrunning the bounds of
1960 frame's decode_mode_spec_buffer, which is not resized following
1961 the change of the frame dimensions from the initial 10x10.
1962
1963 * w32term.h (w32_initialize_display_info): Adjust prototype.
1964
1965 * term.c (init_tty): Take dimensions of the frame from the values
1966 returned by initialize_w32_display.
1967
7f203aa1
EZ
1968 * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
1969 (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
1970 (LIBES): Add $(GFILENOTIFY_LIBS).
1971
1972 * w32inevt.c (handle_file_notifications): Add dummy implementation
1973 for !HAVE_W32NOTIFY.
1974
1975 * w32term.c: Wrap code with HAVE_W32NOTIFY.
1976
55a87246
JD
19772013-06-03 Jan Djärv <jan.h.d@swipnet.se>
1978
1979 * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
1980
1981 * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
1982
1983 * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
1984
3d5ee10a
PE
19852013-06-03 Paul Eggert <eggert@cs.ucla.edu>
1986
1987 Fix minor problems found by static checking.
1988 * data.c (pure_write_error):
1989 Use xsignal2, not Fsignal, as Fsignal might return.
1990 * eval.c (set_backtrace_debug_on_exit): Now static.
1991 (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
1992 No longer inline. EXTERN_INLINE is needed only for functions
1993 defined in .h files. Reindent function header as per GNU style.
1994 (backtrace_p, backtrace_top, backtrace_next):
1995 Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
1996 compiler or linker. Add extern decls to pacify gcc -Wall.
1997 * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
1998 Now static.
1999 * frame.c (free_monitors): Define only on platforms that need it.
2000 * nsterm.m (ns_term_init):
2001 * process.c (catch_child_signal):
2002 Don't worry about whether SIGCHLD is defined, as SIGCHLD is
2003 defined on all porting targets these days.
2004 * process.c, process.h (catch_child_signal):
2005 Make it extern only if NS_IMPL_GNUSTEP is defined.
2006
e2d8a6f0
EZ
20072013-06-03 Eli Zaretskii <eliz@gnu.org>
2008
2009 * w32.c (gettimeofday): Make the signature identical to prototype
2010 in nt/inc/sys/time.h.
2011
a8a7c5f6
SM
20122013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
2013
2014 * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
2015 .gdbinit.
2016
2017 * keyboard.c (safe_run_hooks_error): Improve error message.
2018
2019 * data.c (pure_write_error): Add `object' argument.
2020 * puresize.h (CHECK_IMPURE): Use it.
2021
c9628c79
MA
20222013-06-03 Michael Albinus <michael.albinus@gmx.de>
2023
2024 * Makefile.in (NOTIFY_OBJ): New variable.
2025 (base_obj): Replace inotify.o by $(NOTIFY_OBJ).
2026
2027 * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
2028 Call syms_of_gfilenotify.
2029
2030 * gfilenotify.c: New file.
2031
2032 * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
2033 and Qfile_w32notify.
2034 (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
2035 HAVE_W32NOTIFY and USE_FILE_NOTIFY.
2036
2037 * lisp.h: Declare syms_of_gfilenotify.
2038
2039 * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
2040
2f592f95
SM
20412013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
2042
2043 Merge the specpdl and backtrace stacks. Make the structure of the
2044 specpdl entries more obvious via a tagged union of structs.
2045 * lisp.h (BITS_PER_PTRDIFF_T): New constant.
2046 (enum specbind_tag): New enum.
2047 (struct specbinding): Make it a tagged union of structs.
2048 Add a case for backtrace records.
2049 (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
2050 (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
2051 (backtrace_debug_on_exit): New accessors.
2052 (struct backtrace): Remove.
2053 (struct catchtag): Remove backlist field.
2054 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
2055 Move to eval.c.
2056 (Flocal_variable_p): Speed up the common case where the binding is
2057 already loaded.
2058 * eval.c (backtrace_list): Remove.
2059 (set_specpdl_symbol, set_specpdl_old_value): Remove.
2060 (set_backtrace_args, set_backtrace_nargs)
2061 (set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
2062 (backtrace_next): New functions.
2063 (Fdefvaralias, Fdefvar): Adjust to new specpdl format.
2064 (unwind_to_catch, internal_lisp_condition_case)
2065 (internal_condition_case, internal_condition_case_1)
2066 (internal_condition_case_2, internal_condition_case_n): Don't bother
2067 with backtrace_list any more.
2068 (Fsignal): Adjust to new backtrace format.
2069 (grow_specpdl): Move up.
2070 (record_in_backtrace): New function.
2071 (eval_sub, Ffuncall): Use it.
2072 (apply_lambda): Adjust to new backtrace format.
2073 (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
2074 data.c.
2075 (specbind): Adjust to new specpdl format. Simplify.
2076 (record_unwind_protect, unbind_to): Adjust to new specpdl format.
2077 (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
2078 backtrace format.
2079 (mark_backtrace): Remove.
2080 (mark_specpdl, get_backtrace, backtrace_top_function): New functions.
2081 * xdisp.c (redisplay_internal): Use record_in_backtrace.
2082 * alloc.c (Fgarbage_collect): Use record_in_backtrace.
2083 Use mark_specpdl.
2084 * profiler.c (record_backtrace): Use get_backtrace.
2085 (handle_profiler_signal): Use backtrace_top_function.
2086 * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
2087 accessor functions.
2088
c0342369
JD
20892013-06-02 Jan Djärv <jan.h.d@swipnet.se>
2090
2091 * process.h (catch_child_signal): Declare.
2092
2093 * process.c (catch_child_signal): New function.
2094 (init_process_emacs): Call it.
2095
2096 * nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
2097 (ns_menu_bar_is_hidden, menu_will_open_state): Define only if
2098 NS_IMPL_COCOA.
2099 (x_set_cursor_type): Remove declaration.
2100 (ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
2101 (ns_update_end, ns_focus, ns_unfocus): Remove GNUStep specific code.
2102 (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
2103 (ns_get_color): Use F suffix on float.
2104 (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
2105 (ns_get_rgb_color): Remove.
2106 (x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
2107 (note_mouse_movement): x and y are CGFloat.
2108 (ns_draw_fringe_bitmap): Remove unused rowY.
2109 Change #if to COCOA && >= 10_6.
2110 (ns_draw_window_cursor): Remove unused overspill.
2111 (ns_draw_underwave): width and x are EamcsCGFloat.
2112 (ns_draw_box): thickness is CGFloat.
2113 (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
2114 (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
2115 if not in main thread.
2116 (ns_get_pending_menu_title, ns_check_menu_open)
2117 (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
2118 (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
2119 (sendFromMainThread:): New method.
2120 (changeFont:): size is CGFloat.
2121 (keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
2122 Disable warning about permanent text.
2123 (characterIndexForPoint:): Adjust return type depending on GNUStep
2124 version.
2125 (mouseDown:): delta is CGFloat.
2126 (updateFrameSize): Remove unised variable f.
2127 (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
2128 Cast float to EmacsCGFloat.
2129 (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
2130 also to -1 when restoring.
2131 (windowDidExitFullScreen:): Put call to updateCollectionBehaviour
2132 inside NS_IMPL_COCOA.
2133 (toggleFullScreen:): Put call to toggleFullScreen inside
2134 NS_IMPL_COCOA. Cast float to EmacsCGFloat.
2135 (setPosition:portion:whole:): por is CGFloat.
2136 (getMouseMotionPart:window:x:y:): Add F suffix to float.
2137 (mouseDown:): Use CGFloat.
2138 (mouseDragged:): Remove unised variable edge.
2139 (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
2140
2141 * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUStep when the size
2142 of CGFloat differs.
2143 (EmacsApp): New variable nextappdefined. Declare sendFromMainThread
2144 when NS_IMPL_GNUSTEP.
2145 (EmacsDocument): Declare when NS_IMPL_GNUSTEP.
2146 (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
2147 (EmacsToolbar): Add clearAll. Add tag argument to
2148 addDisplayItemWithImage.
2149 (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
2150
2151 * nsselect.m (ns_get_local_selection): Remove unused variable type.
2152
2153 * nsmenu.m (ns_update_menubar): Make static.
2154 (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
2155 (fillWithWidgetValue:): Add cast to SEL for setAction.
2156 (addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
2157 (update_frame_tool_bar): Update code for GNUStep.
2158 (clearAll): New method.
2159 (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
4f405069 2160 argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
e7b41c4c 2161 Move identifierToItem setObject and activeIdentifiers addObject before
c0342369
JD
2162 call to insertItemWithItemIdentifier.
2163 (validateVisibleItems): Fix indentation.
2164 (toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
2165 (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
2166 UtilityWindow to aStyle, remove call to setStyleMask.
2167
2168 * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
2169
2170 * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
2171 (ns_charset_covers, ns_get_covering_families, nsfont_open):
2172 Use F suffix on floats.
2173 (ns_char_width): Returns CGFloat.
2174 (ns_ascii_average_width): w is CGFloat instead of float.
e7b41c4c 2175 (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to
c0342369
JD
2176 DPSxshow.
2177 (ns_glyph_metrics): CGFloat instead of float.
2178
a0eb10b3
JB
2179 * nsfns.m (x_set_foreground_color, x_set_background_color):
2180 Use EmacsCGFloat.
2181 (ns_implicitly_set_icon_type, Fx_create_frame): Make static,
2182 remove unused variables.
2183 (Fns_read_file_name): Keep track if panel is for save.
2184 Use ns_filename_from_panel/ns_directory_from_panel.
c0342369 2185 (Fns_list_services): delegate only used for COCOA.
a0eb10b3
JB
2186 (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUStep.
2187 Just return the input if GNUStep.
c0342369
JD
2188 (x_screen_planes): Remove.
2189 (Fxw_color_values): Use EmacsCGFloat
2190 (Fns_display_monitor_attributes_list): Only get screen number for
2191 Cocoa.
ef099a94 2192 (getDirectory, getFilename): Remove from EmacsOpenPanel and
c0342369
JD
2193 EmacsSavePanel.
2194 (EmacsOpenPanel:ok:): Use ns_filename_from_panel and
2195 ns_directory_from_panel.
2196
da9aff11
PE
21972013-06-01 Paul Eggert <eggert@cs.ucla.edu>
2198
2199 * process.c (handle_child_signal): Also use WCONTINUED.
2200 This is so that list-processes doesn't mistakenly list the process
2201 as stopped, when the process has actually been continued and is
2202 now running.
2203
0e64479a
PE
22042013-05-31 Paul Eggert <eggert@cs.ucla.edu>
2205
fc186a96
PE
2206 Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
2207 * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
2208 not already configured.
2209
0e64479a
PE
2210 * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
2211
38b787fa
EZ
22122013-05-29 Eli Zaretskii <eliz@gnu.org>
2213
2214 * Makefile.in (mostlyclean): Remove *.res files.
2215
22513e52
SM
22162013-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
2217
2218 * fileio.c (Finsert_file_contents): Preserve undo info when reverting
2219 a buffer (bug#8447).
2220
6ef3db10
EZ
22212013-05-27 Eli Zaretskii <eliz@gnu.org>
2222
2223 * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
2224 display vector, and we backtrack, handle the case that the
2225 previous character position is also displayed from a display
2226 vector or covered by a display string or image. (Bug#14476)
2227
6799bb26
JD
22282013-05-25 Jan Djärv <jan.h.d@swipnet.se>
2229
2230 * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
2231 (struct MonitorInfo, free_monitors): Remove.
2232 (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
2233 (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
2234 (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
2235 Qframes, Qsource.
2236
2237 * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
2238 (struct MonitorInfo, free_monitors): Remove.
2239 (ns_screen_name): Make static.
2240 (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
2241 (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
2242 Qframes, Qsource.
2243
2244 * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
2245 (struct MonitorInfo): New struct.
2246 (free_monitors, make_monitor_attribute_list): Declare.
2247
22513e52
SM
2248 * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
2249 New Lisp_Object:s.
6799bb26
JD
2250 (free_monitors, make_monitor_attribute_list): New functions.
2251 (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
2252 Qsource.
2253
38cd43eb
XF
22542013-05-25 Xue Fuqiao <xfq.free@gmail.com>
2255
2256 * callproc.c (call_process): Refine the doc string. (Bug#14045)
2257
2af0948d
SM
22582013-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
2259
a7eb9b0f
SM
2260 * keyboard.c: Apply keyboard decoding only to events that come directly
2261 from the tty, not from unread-command-events (bug#14368).
2262 (read_event_from_main_queue): New function, extracted from read_char).
2263 (read_decoded_char): Remove.
2264 (read_decoded_event_from_main_queue): New function to replace it.
2265 (read_char): Use it.
2266 (read_key_sequence): Use read_char rather than read_decoded_char.
2267
2af0948d
SM
2268 * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
2269
1413e9a5
BR
22702013-05-22 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
2271
2272 * casetab.c (init_casetab_once): Fix last change (bug#14424).
2273
e6d2f155
KH
22742013-05-22 Kenichi Handa <handa@gnu.org>
2275
2276 The following changes are to fix the setting of
2277 buffer-file-coding-system on, for instance, C-x RET c unix RET
2278 _FILE_OF_DOS_EOL_TYPE_ RET.
2279
2280 * coding.h (struct coding_system): New member detected_utf8_chars.
2281
2282 * coding.c (detect_coding_utf_8): Count characters and check EOL
2283 format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
2284 BOM is there.
2285 (setup_coding_system): Do not initialize coding->head_ascii.
2286 (check_ascii): Do not set coding->eol_seen but update it. Do not
2287 call adjust_coding_eol_type here.
1413e9a5
BR
2288 (detect_coding): Fix detection of BOM for utf-8 and utf-16.
2289 If the eol-type of CODING is already specified, adjust the eol type
e6d2f155
KH
2290 of the found coding-system.
2291 (decode_coding_gap): Cancel previous change. Utilize the
2292 character numbers counted by detect_coding_utf_8. Fix detection
2293 of BOM for utf-8.
2294
ab56a6f4 22952013-05-21 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
fc30d803
SM
2296
2297 * search.c (looking_at_1): Only set last_thing_searched if the match
2298 changed the match-data (bug#14281).
2299
ecc3c6ed
DA
23002013-05-21 Dmitry Antipov <dmantipov@yandex.ru>
2301
2302 * xdisp.c (reseat_at_previous_visible_line_start):
a0eb10b3 2303 Already declared in dispextern.h, so remove it here.
ecc3c6ed
DA
2304 (move_it_vertically_backward): Likewise.
2305
5ba8bf35
YM
23062013-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2307
2308 * xfns.c (check_x_display_info): Don't use XINT for terminal object.
d6635ba2 2309 (Fx_display_pixel_width, Fx_display_pixel_height)
fc30d803
SM
2310 (Fx_display_mm_width, Fx_display_mm_height):
2311 Mention `display-monitor-attributes-list' in docstrings.
5ba8bf35 2312
91e8418b 2313 * nsfns.m (ns_get_screen): Remove function. All uses removed.
a0eb10b3 2314 (check_ns_display_info): Sync with check_x_display_info in xfns.c.
91e8418b
YM
2315 (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
2316 (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
2317 (Fx_display_backing_store, Fx_display_visual_class)
2318 (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
2319 (Fx_display_grayscale_p, Fx_display_pixel_width)
2320 (Fx_display_pixel_height, Fx_display_planes)
2321 (Fx_display_color_cells): Sync args and docstrings with xfns.c.
2322 (Fx_display_screens): Don't confuse X11 screens with NS screens.
2323 (Fx_display_mm_width, Fx_display_mm_height)
2324 (Fx_display_pixel_width, Fx_display_pixel_width): Return width or
2325 height for all physical monitors as in X11.
2326
fc30d803
SM
2327 * nsterm.m (x_display_pixel_width, x_display_pixel_height):
2328 Return pixel width or height for all physical monitors as in X11.
91e8418b 2329
31ff141c
PE
23302013-05-18 Paul Eggert <eggert@cs.ucla.edu>
2331
2332 Port --enable-gcc-warnings to clang.
2333 * bytecode.c (exec_byte_code):
2334 * regex.c:
2335 Redo diagnostic pragmas to pacify clang, too.
2336 * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
2337 * editfns.c (Fencode_time):
2338 * fileio.c (file_accessible_directory_p):
2339 * font.c (font_unparse_xlfd):
2340 Use '&"string"[index]' instead of '"string" + (index)'.
2341 * undo.c (user_error): Remove; unused.
2342
df065a0b
EZ
23432013-05-16 Eli Zaretskii <eliz@gnu.org>
2344
04d360e7
EZ
2345 * insdel.c (insert_1_both): Document the arguments, instead of
2346 referring to insert_1, which no longer exists.
2347
5bb98290
EZ
2348 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
2349 some window, increment windows_or_buffers_changed, so that
2350 *Messages* display in that window is updated. (Bug#14408)
2351
df065a0b
EZ
2352 * w32.c: Include epaths.h.
2353 (init_environment): Use cmdproxy.exe without leading directories.
2354 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
2355 case.
2356 (gettimeofday): Adjust signature and return value to Posix
2357 expectations.
2358
2359 * unexw32.c (open_output_file): Delete the existing emacs.exe
2360 before creating it, to break the hard link to the versioned
2361 executable.
2362
2363 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
2364 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
2365 (FIRSTFILE_OBJ): New variables.
2366 (W32_RES): Rename to EMACSRES. All users changed.
2367 (base_obj): Use $(CM_OBJ).
2368 (ALLOBJS): Use $(FIRSTFILE_OBJ).
2369 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
2370 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
2371 $(W32_RES_LINK) before $(LIBES).
2372 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
2373
1aa8d505
SM
23742013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2375
6e911150
SM
2376 * makefile.w32-in (DOC): Use just "DOC".
2377
2378 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
2379
1aa8d505
SM
2380 * process.c: Export default filters and sentinels to Elisp.
2381 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
2382 New constants.
2383 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
2384 (Fset_process_sentinel, Fformat_network_address):
2385 Default to them instead of nil.
2386 (server_accept_connection): Sentinels can't be nil any more.
2387 (read_and_dispose_of_process_output): New function, extracted from
2388 read_process_output.
2389 (read_process_output): Use it; filters can't be nil.
2390 (Finternal_default_process_filter): New function, extracted from
2391 read_process_output.
2392 (exec_sentinel_unwind): Remove function.
2393 (exec_sentinel): Don't zilch sentinel while running.
2394 (status_notify): Sentinels can't be nil.
2395 (Finternal_default_process_sentinel): New function extracted from
2396 status_notify.
2397 (setup_process_coding_systems): Default filter is not nil any more.
2398 (syms_of_process): Export new Elisp functions and initialize
2399 new constants.
2400 * lisp.h (make_lisp_proc): New function.
2401
5ac2eb34
SM
24022013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2403
2404 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
2405
eda9c7d7
EZ
24062013-05-14 Eli Zaretskii <eliz@gnu.org>
2407
2408 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
5ac2eb34
SM
2409 unless we know that the window w is a leaf window.
2410 Another attempt at solving bug#14062.
eda9c7d7 2411
8fdeaad5
JD
24122013-05-14 Jan Djärv <jan.h.d@swipnet.se>
2413
2414 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
2415 fdesc (Bug#14375).
2416
44aa9ee6
PE
24172013-05-12 Paul Eggert <eggert@cs.ucla.edu>
2418
2419 * image.c (gif_load): Check that subimages fit (Bug#14345).
2420
759fd763
SM
24212013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
2422
2423 * lread.c (skip_dyn_eof): New function.
2424 (read1): Use it to skip the end of a file in response to #@00.
2425
2426 * doc.c (get_doc_string): Slightly relax the sanity checking.
2427
4465bfb4
JD
24282013-05-09 Jan Djärv <jan.h.d@swipnet.se>
2429
2430 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
2431 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
2432 (MonitorInfo): New struct.
2433 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
2434 (Fns_display_monitor_attributes_list): New functions.
2435 (display-usable-bounds): Remove.
2436 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
2437 Qsource.
2438
7583e2a0
PE
24392013-05-09 Paul Eggert <eggert@cs.ucla.edu>
2440
2441 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
2442 (GTK_CHECK_VERSION): New macro, if not already defined.
2443 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
2444 replaced by GTK_CHECK_VERSION.
2445
ad75d77e
PE
24462013-05-08 Paul Eggert <eggert@cs.ucla.edu>
2447
2448 * xterm.h (GTK_PREREQ): New macro.
2449 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
2450 to use this macro instead, for consistency and clarity.
2451
07525f77
EZ
24522013-05-08 Eli Zaretskii <eliz@gnu.org>
2453
2454 * xdisp.c (row_for_charpos_p): New function, with code of
2455 cursor_row_p, but accepts an additional argument CHARPOS instead
2456 of using a hardcoded PT.
2457 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
2458 (row_containing_pos): Call row_for_charpos_p instead of partially
2459 doing the same. Fixes cursor positioning under longlines-mode
2460 when longlines-show-effect includes more than one newline, when
2461 moving the cursor vertically up.
2462
d901fc8d
JB
24632013-05-08 Juanma Barranquero <lekktu@gmail.com>
2464
2465 * makefile.w32-in (ACL_H): New macro.
2466 ($(BLD)/fileio.$(O)): Update dependencies.
2467
f269bc61
PE
24682013-05-07 Paul Eggert <eggert@cs.ucla.edu>
2469
e7b41c4c 2470 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
ffdc270a
PE
2471 * Makefile.in (LIB_ACL): New macro.
2472 (LIBACL_LIBS): Remove.
2473 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
2474 * fileio.c: Include <acl.h>.
2475 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
2476 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
2477 !acl_errno_valid.
2478 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
2479 it ourselves.
2480
f269bc61
PE
2481 * unexelf.c: Don't assume ElfW (Half) fits in int.
2482 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
2483 when dealing with ElfW (Half) values, since they can exceed 2**31
2484 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
2485 (entry_address): Omit unused NUM arg. All uses changed.
2486
a261c53e
JL
24872013-05-07 Juri Linkov <juri@jurta.org>
2488
2489 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
2490 to the string converted from number with `Fnumber_to_string'.
2491 (Bug#14254)
2492
2b66427d
PE
24932013-05-07 Paul Eggert <eggert@cs.ucla.edu>
2494
2495 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
2496 This fixes a problem introduced by my previous change.
2497
15acfe41
GM
24982013-05-07 Glenn Morris <rgm@gnu.org>
2499
2500 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
2501
5ea03bf5
JD
25022013-05-07 Jan Djärv <jan.h.d@swipnet.se>
2503
2504 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
2505
e0c9d565
PE
25062013-05-07 Paul Eggert <eggert@cs.ucla.edu>
2507
2508 Static checking by GCC 4.8.0.
2509 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
2510 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
2511 (x_get_monitor_attributes_fallback)
2512 (x_get_monitor_attributes_xinerama)
2513 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
2514 Define only if USE_GTK.
2515 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
2516 (x_get_monitor_attributes_fallback): Omit unused locals.
2517 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
2518 Use double, not float, to avoid mixed-mode floating point arithmetic.
2519
4e3f9230
YM
25202013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2521 Jan Djärv <jan.h.d@swipnet.se>
2522
2523 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
2524 (XINERAMA_CFLAGS): New macros.
2525 (ALL_CFLAGS, LIBES): Use them.
2526
2527 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
2528 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
2529 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
2530 (syms_of_xfns): DEFSYM them.
2531 (struct MonitorInfo): New struct.
2532 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
2533 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
2534 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
2535 (x_get_monitor_attributes_xinerama): New functions.
2536 (Fx_display_monitor_attributes_list): New primitive.
2537 (syms_of_xfns): Defsubr it.
2538
2539 * xterm.h (x_display_info): Add Xatom_net_workarea and
2540 Xatom_net_current_desktop.
2541
2542 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
2543 and dpyinfo->Xatom_net_current_desktop.
2544
05839b6a
EZ
25452013-05-06 Eli Zaretskii <eliz@gnu.org>
2546
2547 * xdisp.c (pos_visible_p): Use the special code for finding the
2548 beginning of a display property or overlay for any "replacing"
2549 display property, not just for display strings. This solves
2550 incorrect reporting of position by posn-at-point. (Bug#14241)
2551
dc4a2ee0
PE
25522013-05-06 Paul Eggert <eggert@cs.ucla.edu>
2553
5ee94506
PE
2554 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
2555 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
2556 Verify that ElfW (Half) fits in int.
2557 (fatal): Use same signature as lisp.h.
2558 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
2559 configure and build with -DUNEXELF_DEBUG without worrying about
2560 other modules that use DEBUG.
2561 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
2562 possibly-wide integers now uses it instead of plain fprintf.
2563 (entry_address): New function, which avoids problems with 32-bit
2564 overflow on 64-bit hosts.
2565 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
2566 (round_up): Don't assume the remainder fits in int.
2567 (find_section): Use bool for boolean. Simplify debug code.
2568 (unexec): Don't assume file sizes fit in int or size_t.
2569 Omit unnecessary trailing newline in 'fatal' format.
2570 Use strerror rather than outputting decimal error number.
2571 Remove unused code when emacs is not defined;
2572 this file relies on Emacs now.
2573 Don't assume e_phnum and e_shnum are positive.
2574
dc4a2ee0
PE
2575 * regex.c: Fix problems when DEBUG is defined.
2576 (extract_number, extract_number_and_incr): Define regardless of
2577 whether DEBUG is defined; that's simpler and makes the code less
2578 likely to go stale in the normal case when DEBUG is not defined.
2579 Return int rather than taking an int * arg. All callers changed.
2580 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
2581 Remove, replacing with ...
2582 (DEBUG_PRINT): New macro. All callers changed.
2583 (DEBUG_COMPILES_ARGUMENTS): New macro.
2584 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
2585 (print_compiled_pattern, print_double_string) [DEBUG]:
2586 Use prototype rather than old-style definition.
2587 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
2588 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
2589 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
2590 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
2591 Don't assume ptrdiff_t, size_t, and long are the same width as int.
2592 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
2593 This matters only when DEBUG is defined.
2594
14c7ed05
EZ
25952013-05-05 Eli Zaretskii <eliz@gnu.org>
2596
2597 * xdisp.c (set_iterator_to_next): Set the
2598 ignore_overlay_strings_at_pos_p flag only if we are _really_
2599 iterating over an overlay string, as indicated by the
2600 current.overlay_string_index member. (Bug#14306)
2601
e6076b1b
JD
26022013-05-05 Jan Djärv <jan.h.d@swipnet.se>
2603
2604 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
2605 to where it is used, to avoid autorelease issues (Bug#14050).
2606
cbee2131
PE
26072013-05-05 Paul Eggert <eggert@cs.ucla.edu>
2608
2609 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
2610 * fileio.c (syms_of_fileio): Implement this.
2611 * filelock.c (create_lock_file): If symbolic links don't work, so
2612 we use a regular file as a lock file, do not fsync the lock file;
2613 it's not needed.
2614
30c7e542
SM
26152013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
2616
2617 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
2618 (syms_of_minibuf): Adjust accodingly.
2619 * lread.c (Fread):
2620 * callint.c (Fcall_interactively): Adjust calls accordingly.
2621
5bebd186
EZ
26222013-05-04 Eli Zaretskii <eliz@gnu.org>
2623
2624 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
30c7e542
SM
2625 w->contents is a buffer before computing everything else.
2626 Use parentheses to disambiguate last part of the condition.
5bebd186
EZ
2627
2628 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
2629 assertion violations. (Bug#14062)
2630
0fb0a4f3
DR
26312013-05-01 David Reitter <david.reitter@gmail.com>
2632
2633 * nsfns.m (ns_tooltip): Initialize.
2634
9e63b4a5
EZ
26352013-04-28 Eli Zaretskii <eliz@gnu.org>
2636
2637 * coding.c (decode_coding_gap): Don't remove the character before
2638 a newline unless it's a CR character. (Bug#14287)
2639
ad60824e
DN
26402013-04-28 Dan Nicolaescu <dann@gnu.org>
2641
2642 * dispextern.h (struct face): Move enum face_underline_type
2643 earlier so that bitfields can be in the same word.
2644
edbdcec0
JD
26452013-04-28 Jan Djärv <jan.h.d@swipnet.se>
2646
2647 * nsfns.m (handlePanelKeys): New function.
2648 (EmacsOpenPanel:performKeyEquivalent:)
2649 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
2650 arrows/function/control and copy/paste keys (Bug#14296).
2651
0208ede7
JL
26522013-04-27 Juri Linkov <juri@jurta.org>
2653
2654 * callint.c (Fcall_interactively): Call `Qread_number' for
2655 interactive code letter `n' instead of using duplicate code.
2656 (Bug#14254)
2657
b8dd59f7
PE
26582013-04-27 Paul Eggert <eggert@cs.ucla.edu>
2659
2660 * systime.h (make_timeval): Declare as 'const'.
2661
8bd722db
KH
26622013-04-27 Kenichi Handa <handa@gnu.org>
2663
2664 * font.c (font_open_entity): Always open a font of manageable
2665 size.
2666
13d0e56f 26672013-04-26 Paul Eggert <eggert@cs.ucla.edu>
cbee2131 2668
f780d632
PE
2669 Port better to AIX (Bug#14258).
2670 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
2671 to pacify AIX xlc.
2672
ec509856
KH
26732013-04-24 Kenichi Handa <handa@gnu.org>
2674
2675 * coding.c (decode_coding_iso_2022): When an invalid escape
2676 sequence is encountered, reset the invocation and designation
2677 status to the safest one.
2678
84fc48e5
PE
26792013-04-22 Paul Eggert <eggert@cs.ucla.edu>
2680
2681 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
2682 Without this fix, "make distclean" leaves stamp-h1 behind.
2683
806bda47
EC
26842013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
2685
2686 * w32fns.c (w32_fullscreen_rect): New function to compute the
2687 window rectangle for the given fullscreen mode.
2688 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
2689 longer tunes the window size. This keeps the window's edges flush
2690 with the screen and allows the taskbar to hide itself in fullboth.
2691
2692 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
2693 window decorations and uses the entire screen.
2694
2695 * w32term.h (w32_fullscreen_rect) Add prototype.
2696 (struct w32_output): Replace normal_width, normal_height,
2697 normal_top, and normal_left members with a single normal_placement
2698 struct.
2699 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
2700 Remove macros.
2701 (FRAME_NORMAL_PLACEMENT): New macro.
2702
9cc2810b
JB
27032013-04-16 Juanma Barranquero <lekktu@gmail.com>
2704
2705 * minibuf.c (Ftest_completion): Silence compiler warning.
2706
fd16b54c
EZ
27072013-04-15 Eli Zaretskii <eliz@gnu.org>
2708
2709 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
5fbcd237 2710 bug#14062.
fd16b54c
EZ
2711
2712 * frame.h (WINDOW_FRAME): Protect macro and its argument with
2713 parentheses.
2714
2715 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
2716 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
2717 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
2718 parentheses where appropriate.
2719
9e3379a0
PE
27202013-04-14 Paul Eggert <eggert@cs.ucla.edu>
2721
2722 * keyboard.c (timer_start_idle): Remove no-longer-used local.
2723
ddd6b685
EZ
27242013-04-14 Eli Zaretskii <eliz@gnu.org>
2725
2726 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
2727 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
2728 Mention in the doc string that setting these variables takes
2729 effect only after a call to set-window-buffer. (Bug#14200)
2730
29b79ba1
EZ
27312013-04-13 Eli Zaretskii <eliz@gnu.org>
2732
2733 * indent.c (Fvertical_motion): Don't consider display strings on
2734 overlay strings as display strings on the buffer position we
2735 started from. This prevents vertical cursor motion from jumping
2736 more than one line when there's an overlay string with a display
2737 property at end of line.
2738 Reported by Karl Chen <Karl.Chen@quarl.org> in
2739 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
2740
562c6ee9
SM
27412013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
2742
2743 * window.c (select_window): `record_buffer' even if window is
2744 already selected (bug#14191).
2745
fcc1fe85
EZ
27462013-04-11 Eli Zaretskii <eliz@gnu.org>
2747
2748 * window.c (Fwindow_end): Test more flags, including the buffer's
2749 last_overlay_modified flag, to determine whether the window's
2750 display is really up-to-date. Prevents the function from
2751 returning a stale value. (Bug#14170)
2752 (Fwindow_line_height): Fix the test for up-to-date-ness of the
2753 current matrix.
2754
f009190a
EZ
27552013-04-10 Eli Zaretskii <eliz@gnu.org>
2756
2757 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
562c6ee9
SM
2758 garbaged only if it is not already the top frame on its TTY.
2759 This prevents flickering due to constant redrawing of TTY frames when
f009190a
EZ
2760 there are GUI frames open in the same session. (Bug#13864)
2761
78ce603d
SM
27622013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
2763
2764 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
2765 of marking the idle timers directly.
2766
a8036e40
SM
27672013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
2768
2769 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
2770 tables (bug#14054).
2771
7ffe7ef6
SM
27722013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
2773
2774 * window.c (select_window): Don't record_buffer while the invariant is
2775 temporarily broken (bug#14161).
2776
2777 * fns.c (Fdelq): Don't assume !NILP => CONSP.
2778
7d9f6883
EZ
27792013-04-07 Eli Zaretskii <eliz@gnu.org>
2780
2781 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
2782
5406cfd9
RF
27832013-04-07 Romain Francoise <romain@orebokech.com>
2784
2785 Ignore additional platform-specific ACL errors (Bug#13702).
2786 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
2787 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
2788
95c0e83b
JD
27892013-03-31 Jan Djärv <jan.h.d@swipnet.se>
2790
2791 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
2792 f->output_data.ns.
2793
876da980
PE
27942013-04-07 Paul Eggert <eggert@cs.ucla.edu>
2795
2796 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
2797 This bug was introduced by my 2013-02-25 change that simplified
2798 data_start configuration. Without this change, on GNU/Linux
2799 an Emacs configured with --enable-profiling fails immediately
2800 due to a profiler signal.
2801 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
2802 with these flags. On platforms where special flags are needed
2803 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
2804 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
2805 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
2806
7452b7bd
DA
28072013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
2808
2809 Get rid of some platform-specific functions examining window
2810 system and its capabilities. This is a partial rework of the
2811 2013-04-05 change.
2812 * lisp.h (have_menus_p): Remove prototype. This function is
2813 replaced with platform-independent window_system_available.
2814 (check_window_system): Move to...
2815 * frame.h (decode_window_system_frame, window_system_available):
2816 ...here, add new prototypes.
2817 * frame.c (window_system_available, decode_window_system_frame):
2818 New functions.
2819 (check_window_system): Platform-independent now.
2820 * xterm.h (x_in_use): Remove declaration.
2821 (check_x_frame):
2822 * w32term.h (check_x_frame):
2823 * nsterm.h (check_x_frame): Remove prototypes. This function
2824 is replaced with platform-independent decode_window_system_frame.
2825 * msdos.c (have_menus_p): Remove.
2826 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
2827 Remove platform-specific functions. Use check_window_system,
2828 decode_window_system_frame and check_ns_display_info where
2829 appropriate. Minor style and comment tweaks.
2830 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
2831 (check_x_frame): Likewise.
2832 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
2833 Likewise.
2834 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
2835 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
2836 * xmenu.c, xselect.c: All related users changed.
2837
251e9147
KH
28382013-04-03 Kenichi Handa <handa@gnu.org>
2839
2840 The following changes is to optimize the code for reading UTF-8
2841 files.
2842
562c6ee9 2843 * coding.c (check_ascii): Rename from detect_ascii. Return value
251e9147
KH
2844 changed. Check EOL format. Do not call adjust_coding_eol_type
2845 here.
2846 (check_utf_8): New function.
2847 (adjust_coding_eol_type): Do nothing if already adjusted.
2848 (detect_coding): Compare the return value of check_ascii with
2849 coding->src_bytes. Call adjust_coding_eol_type if necessary.
2850 (decode_coding_gap): Optimize for valid UTF-8.
2851
8bc369d4
KH
28522013-03-21 Kenichi Handa <handa@gnu.org>
2853
2854 * coding.c (syms_of_coding): Cancel previous change.
2855
2856 * insdel.c (insert_from_gap): Fix previous change.
2857
73931ad1
DA
28582013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
2859
2860 Consistently use platform-specific function to detect window system.
2861 * lisp.h (check_window_system): New prototype. This function is
2862 going to replace check_x, check_w32 and check_ns.
2863 (have_menus_p): Mention msdos.c in comment.
2864 * fontset.c (check_window_system_func): Remove. Adjust all users.
2865 * fontset.h (check_window_system_func): Remove prototype.
2866 * nsterm.h (check_ns):
2867 * xterm.h (check_x):
2868 * w32term.h (check_w32): Likewise.
2869 * menu.c (Fx_popup_menu): Use check_window_system.
2870 * msdos.c (check_window_system): Define for MS-DOS.
2871 * nsfns.m (check_window_system): Define for NS. Adjust all users.
2872 * w32fns.c (check_window_system): Likewise for MS-Windows.
2873 * xfns.c (check_window_system): Likewise for X.
2874 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
2875 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
2876
7216e43b
PE
28772013-04-02 Paul Eggert <eggert@cs.ucla.edu>
2878
2879 Prefer < to > in range checks such as 0 <= i && i < N.
2880 This makes it easier to visualize quantities on a number line.
2881 This patch doesn't apply to all such range checks,
2882 only to the range checks affected by the 2013-03-24 change.
2883 This patch reverts most of the 2013-03-24 change.
2884 * alloc.c (xpalloc, Fgarbage_collect):
2885 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
2886 * character.c (string_escape_byte8):
2887 * charset.c (read_hex):
2888 * data.c (cons_to_unsigned):
2889 * dispnew.c (update_frame_1):
2890 * doc.c (Fsubstitute_command_keys):
2891 * doprnt.c (doprnt):
2892 * editfns.c (hi_time, decode_time_components):
2893 * fileio.c (file_offset):
2894 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
2895 * font.c (font_intern_prop):
2896 * frame.c (x_set_alpha):
2897 * gtkutil.c (get_utf8_string):
2898 * indent.c (check_display_width):
2899 * keymap.c (Fkey_description):
2900 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
2901 * lread.c (read1):
2902 * minibuf.c (read_minibuf_noninteractive):
2903 * process.c (wait_reading_process_output):
2904 * search.c (Freplace_match):
2905 * window.c (get_phys_cursor_glyph):
2906 * xdisp.c (redisplay_internal):
2907 * xsmfns.c (smc_save_yourself_CB):
2908 Prefer < to > for range checks.
2909 * dispnew.c (sit_for): Don't mishandle NaNs.
2910 This fixes a bug introduced in the 2013-03-24 change.
2911 * editfns.c (decode_time_components): Don't hoist comparison.
2912 This fixes another bug introduced in the 2013-03-24 change.
2913
92759988
DA
29142013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
2915
2916 * frame.h (struct frame): Drop scroll_bottom_vpos
2917 member becaue all real users are dead long ago.
2918 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
2919 * xdisp.c (redisplay_internal): Adjust user.
2920
9a1971bb
GM
29212013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
2922
f38ab167
JD
2923 * nsmenu.m (showAtX:Y:for:): setLevel to
2924 NSPopUpMenuWindowLevel (Bug#13998).
2925
6d01f1fe
JD
29262013-03-30 Jan Djärv <jan.h.d@swipnet.se>
2927
2928 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
2929 (ns_check_pending_open_menu): Declare.
2930
2931 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
2932 (x_activate_menubar): Update the menu with title that matches
2933 ns_get_pending_menu_title, and call
2934 ns_check_pending_openmenu (Bug#12698).
2935 (menuWillOpen:): New method.
2936 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
2937
2938 * nsterm.m (menu_will_open_state, menu_mouse_point)
2939 (menu_pending_title): New varaibles.
2940 (ns_get_pending_menu_title, ns_check_menu_open)
2941 (ns_check_pending_open_menu): New functions.
2942
781f4782
DA
29432013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
2944
2945 * indent.c (current_column_bol_cache): Remove leftover which is not
2946 used in Fmove_to_column any more.
2947 (current_column, scan_for_column): Adjust users.
2948 * keyboard.c (last_point_position_buffer, last_point_position_window):
2949 Remove leftovers which are not used for recording undo any more.
2950 (command_loop_1, syms_of_keyboard): Adjust users.
2951 * xdisp.c (last_max_ascent): Remove leftover which is not used in
2952 redisplay_window any more.
2953 (move_it_to): Adjust user.
2954
1921c31b
JB
29552013-03-29 Juanma Barranquero <lekktu@gmail.com>
2956
2957 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
2958 Update dependencies.
2959
717b8bcd
SM
29602013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
2961
2962 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
2963 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
2964 forward references.
2965
e74aeda8
DA
29662013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
2967
2968 * window.h (struct window): Replace hchild, vchild and buffer slots
2969 with the only contents slot. This is possible because each valid
2970 window may have either the child window (in vertical or horizontal
2971 combination) or buffer to display (for the leaf window). Using that,
2972 a lof of operations to traverse and/or change window hierarchies may
2973 be simplified. New member horizontal is used to distinguish between
2974 horizontal and vertical combinations of internal windows.
2975 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
2976 (WINDOW_VERTICAL_COMBINATION_P): New macros.
2977 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
2978 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
2979 Use contents slot, not buffer, where appropriate.
2980 (wset_combination): New function.
2981 (wset_buffer): Add eassert.
2982 (Fframe_first_window): Simplify the loop reaching first window.
2983 (Fwindow_buffer): Use WINDOW_LEAF_P.
2984 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
2985 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
2986 (unshow_buffer): Convert initial debugging check to eassert.
2987 (replace_window, recombine_windows, Fdelete_other_windows_internal)
2988 (make_parent_window, window_resize_check, window_resize_apply)
2989 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
2990 (Fset_window_configuration, delete_all_child_windows, save_window_save):
2991 Adjust to match struct window changes.
2992 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
2993 (mark_window_cursors_off, count_windows, get_leaf_windows)
2994 (foreach_window_1): Simplify the loop.
2995 * alloc.c (mark_object): Do not check for the leaf window because
2996 internal windows has no glyph matrices anyway.
2997 * dispnew.c (clear_window_matrices, showing_window_margins_p)
2998 (allocate_matrices_for_window_redisplay, fake_current_matrices)
2999 (allocate_matrices_for_frame_redisplay, free_window_matrices)
3000 (build_frame_matrix_from_window_tree, mirror_make_current)
3001 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
3002 (update_window_tree, set_window_update_flags): Simplify the loop.
3003 (sync_window_with_frame_matrix_rows): Enforce live window.
3004 Use contents slot, not buffer, where appropriate.
3005 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
3006 and WINDOW_HORIZONTAL_COMBINATION_P.
3007 (make_frame_visible_1): Simplify the loop.
3008 Use contents slot, not buffer, where appropriate.
3009 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
3010 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
3011 (expose_window_tree): Likewise.
3012 Use contents slot, not buffer, where appropriate.
3013 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
3014 to avoid deleted windows. Use contents slot instead of buffer.
3015 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
3016 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
3017 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
3018 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
3019
121ab1cd
EZ
30202013-03-28 Eli Zaretskii <eliz@gnu.org>
3021
ef454cf7
EZ
3022 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
3023 identify the reasons for assertion violations in bug#14062 and
3024 similar ones.
21e930f8
EZ
3025 (Fx_show_tip): Fix compilation error under
3026 "--enable-check-lisp-object-type". (Bug#14073)
ef454cf7 3027
121ab1cd
EZ
3028 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
3029 Reported by <rzl24ozi@gmail.com>.
3030
5c89ca24
DA
30312013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
3032
3033 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
3034 start marker...
562c6ee9
SM
3035 (unwind_with_echo_area_buffer): ...to restore it here.
3036 This is needed to ensure that...
5c89ca24
DA
3037 (redisplay_window): ...both window markers are valid here,
3038 which is verified by eassert.
3039 * editfns.c (save_excursion_save): Do not assume that
3040 selected_window always displays the buffer.
c7f53895
DA
3041 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
3042 Fix comment.
5c89ca24 3043
f557c1b1
SM
30442013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
3045
3046 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
3047 the upcase table.
3048
40693bba 30492013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
3050
3051 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
3052
c86f791f
EZ
30532013-03-27 Eli Zaretskii <eliz@gnu.org>
3054
3055 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
3056 since MinGW's w32api headers do. This avoids compiler warnings.
3057
3058 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
3059 if already defined.
3060
c6e72e17
EZ
30612013-03-26 Eli Zaretskii <eliz@gnu.org>
3062
3063 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
3064
54e95010
JD
30652013-03-26 Jan Djärv <jan.h.d@swipnet.se>
3066
3067 * gtkutil.c (style_changed_cb): Check if frame is live and an
3068 X frame (Bug#14038).
3069
b88b62de
EZ
30702013-03-26 Eli Zaretskii <eliz@gnu.org>
3071
a18d7de6
EZ
3072 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
3073 Define only for _WIN32_WINNT less than 0x0500.
da9dcbb8
EZ
3074 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
3075 MinGW64.
8f5e14c8
EZ
3076 Move inclusion of time.h before sys/time.h, so that MinGW64 could
3077 see its own definitions of 'struct timeval' and 'struct timezone'.
a18d7de6 3078
b88b62de
EZ
3079 Fix incompatibilities between MinGW.org and MinGW64 headers.
3080 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
3081
3082 * w32.c (REPARSE_DATA_BUFFER): Guard with
3083 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
3084
c074e458
JD
30852013-03-25 Jan Djärv <jan.h.d@swipnet.se>
3086
3087 * xterm.c: Include X11/XKBlib.h
3088 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
3089
908589fd
AS
30902013-03-24 Andreas Schwab <schwab@linux-m68k.org>
3091
3092 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
3093 written backwards.
3094 * blockinput.h (input_blocked_p): Likewise.
3095 * bytecode.c (exec_byte_code): Likewise.
3096 * callproc.c (call_process_kill, call_process_cleanup)
3097 (Fcall_process): Likewise.
3098 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
3099 (Fccl_execute_on_string): Likewise.
3100 * character.c (string_escape_byte8): Likewise.
3101 * charset.c (read_hex): Likewise.
3102 * cm.c (calccost): Likewise.
3103 * data.c (cons_to_unsigned): Likewise.
3104 * dired.c (directory_files_internal, file_name_completion):
3105 Likewise.
3106 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
3107 (sit_for): Likewise.
3108 * doc.c (Fsubstitute_command_keys): Likewise.
3109 * doprnt.c (doprnt): Likewise.
3110 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
3111 * emacsgtkfixed.c: Likewise.
3112 * fileio.c (file_offset, Fwrite_region): Likewise.
3113 * floatfns.c (Fexpt, fmod_float): Likewise.
3114 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
3115 Likewise.
3116 * font.c (font_intern_prop): Likewise.
3117 * frame.c (x_set_alpha): Likewise.
3118 * gtkutil.c (get_utf8_string): Likewise.
3119 * indent.c (check_display_width): Likewise.
3120 * intervals.c (create_root_interval, rotate_right, rotate_left)
3121 (split_interval_right, split_interval_left)
3122 (adjust_intervals_for_insertion, delete_node)
3123 (interval_deletion_adjustment, adjust_intervals_for_deletion)
3124 (merge_interval_right, merge_interval_left, copy_intervals)
3125 (set_intervals_multibyte_1): Likewise.
3126 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
3127 * keymap.c (Fkey_description): Likewise.
3128 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
3129 * lread.c (openp, read_integer, read1, string_to_number):
3130 Likewise.
3131 * menu.c (ensure_menu_items): Likewise.
3132 * minibuf.c (read_minibuf_noninteractive): Likewise.
3133 * print.c (printchar, strout): Likewise.
3134 * process.c (create_process, Faccept_process_output)
3135 (wait_reading_process_output, read_process_output, send_process)
3136 (wait_reading_process_output): Likewise.
3137 * profiler.c (make_log, handle_profiler_signal): Likewise.
3138 * regex.c (re_exec): Likewise.
3139 * regex.h: Likewise.
3140 * search.c (looking_at_1, Freplace_match): Likewise.
3141 * sysdep.c (get_child_status, procfs_ttyname)
3142 (procfs_get_total_memory): Likewise.
3143 * systime.h (EMACS_TIME_VALID_P): Likewise.
3144 * term.c (dissociate_if_controlling_tty): Likewise.
3145 * window.c (get_phys_cursor_glyph): Likewise.
3146 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
3147 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
3148 Likewise.
3149 * xfns.c (Fx_window_property): Likewise.
3150 * xmenu.c (set_frame_menubar): Likewise.
3151 * xselect.c (x_get_window_property, x_handle_dnd_message):
3152 Likewise.
3153 * xsmfns.c (smc_save_yourself_CB): Likewise.
3154 * xterm.c (x_scroll_bar_set_handle): Likewise.
3155
2bf7d27a
DA
31562013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
3157
3158 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
3159 to be optional or nil. Adjust comment and convert it to docstring.
3160 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
3161 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
3162
a9ebfa0b
PE
31632013-03-24 Paul Eggert <eggert@cs.ucla.edu>
3164
3165 Static checking by GCC 4.8-20130319.
3166 * image.c (gif_load): Assume pass < 3 to pacify GCC.
3167 * process.c (Fset_process_datagram_address)
3168 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
3169 * xdisp.c (get_char_face_and_encoding):
3170 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
3171 (get_glyph_face_and_encoding): Prepare face before possibly using it.
3172 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
3173
4f3576ee
KB
31742013-03-24 Ken Brown <kbrown@cornell.edu>
3175
789b5e9a
KB
3176 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
3177 fix compilation on 64-bit Cygwin, where underscores are not
3178 automatically prepended.
3179
4f3576ee
KB
3180 * w32term.c (w32_initialize): Silence compiler warning.
3181
b5b7745f
EZ
31822013-03-23 Eli Zaretskii <eliz@gnu.org>
3183
cdc0d0bd
EZ
3184 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
3185 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
562c6ee9
SM
3186 variables, to save and restore frame dimensions.
3187 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
3188 after returning from a 'fullscreen' configuration.
3189 use SendMessage instead of PostMessage to send the SC_RESTORE message,
cdc0d0bd
EZ
3190 to avoid races between the main thread and the input thread.
3191
3192 * w32term.h (struct w32_output): New members normal_width,
3193 normal_height, normal_top, normal_left, and prev_fsmode.
3194 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
3195 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
3196 members of a frame.
3197
b5b7745f
EZ
3198 * w32term.c (w32fullscreen_hook): Record last value of the frame's
3199 'fullscreen' parameter. Always record previous width and height
3200 of the frame, except when switching out of maximized modes, so
3201 that they could be restored correctly, instead of resetting to the
3202 default frame dimensions. Send SC_RESTORE command to the frame,
3203 unless we are going to send SC_MAXIMIZE, to restore the frame
3204 resize hints in the mouse pointer shown by the window manager.
3205 (Bug#14032)
3206
3207 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
3208
3209 * lisp.h (get_frame_param): Adjust conditions for prototype
3210 declaration.
3211
a3454eed
KB
32122013-03-22 Ken Brown <kbrown@cornell.edu>
3213
3214 * unexcw.c: Drop unneeded inclusion of w32common.h.
3215 (report_sheap_usage): Declare.
3216 (read_exe_header): Add magic numbers for x86_64.
3217 (fixup_executable): Fix printf format specifier for unsigned long
3218 argument.
3219
5a49b79c
DA
32202013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
3221
3222 * frame.h (struct frame): Put menu_bar_window under #ifdef
3223 because this member is not needed when X toolkit is in use.
3224 (fset_menu_bar_window):
3225 * dispnew.c (clear_current_matrices, clear_desired_matrices)
3226 (free_glyphs, update_frame):
3227 * xdisp.c (expose_frame): Likewise.
3228 (display_menu_bar): Likewise. Remove redundant eassert.
3229 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
3230 toolkit is in use.
3231
d6723bf7
PE
32322013-03-21 Paul Eggert <eggert@cs.ucla.edu>
3233
7b1123d8
PE
3234 Use functions and constants to manipulate Lisp_Save_Value objects.
3235 This replaces code that used macros and strings and token-pasting.
3236 The change makes the C source a bit easier to follow,
3237 and shrinks the Emacs executable a bit.
3238 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
3239 (make_save_value): Change 1st arg from string to enum. All callers
3240 changed.
3241 (INTX): Remove.
3242 (mark_object): Use if, not #if, for GC_MARK_STACK.
3243 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
3244 (XSAVE_OBJECT): Now functions, not macros.
3245 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
3246 the constant was never used.
3247 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
3248 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
3249 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
3250 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
3251 New constants.
3252 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
3253 type3 with a single member save_type. All uses changed.
3254 (save_type, set_save_pointer, set_save_integer): New functions.
3255 * print.c (PRINTX): Remove.
3256
d6723bf7
PE
3257 * alloc.c: Remove redundant static declarations.
3258
5f24fa51
DA
32592013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
3260
3261 * window.h (struct window): Convert left_col, top_line, total_lines
3262 and total_cols from Lisp_Objects to integers. Adjust comments.
3263 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
3264 Remove.
3265 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
3266 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
3267 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
3268 Adjust users where appropriate.
3269
42143acd
DA
32702013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
3271
3272 * frame.h (struct frame): Drop resx and resy because the same data is
3273 available from window system-specific output context. Adjust users.
562c6ee9
SM
3274 (default_pixels_per_inch_x, default_pixels_per_inch_y):
3275 New functions to provide defaults when no window system available.
42143acd 3276 (FRAME_RES_X, FRAME_RES_Y): New macros.
562c6ee9 3277 (NUMVAL): Move from xdisp.c.
42143acd
DA
3278 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
3279 (Ffont_face_attributes, Fopen_font):
3280 * image.c (gs_load):
3281 * w32font.c (fill_in_logfont):
3282 * xdisp.c (calc_pixel_width_or_height):
3283 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
3284 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
3285
c0a17406
KH
32862013-03-20 Kenichi Handa <handa@gnu.org>
3287
3288 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
3289 to 1 (temporary workaround until a bug related to ASCII
3290 optimization is fixed).
3291
095d384d
DA
32922013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
3293
3294 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
3295 Signal error if window is not internal. Adjust docstring.
3296 (delete_all_child_windows): Use combination_limit to save the buffer.
3297 (Fset_window_configuration): Adjust accordingly.
cf4bb06d
DA
3298 * print.c (syms_of_print): Initialize debugging output not here...
3299 (init_print_once): ...but in a new function here.
3300 * lisp.h (init_print_once): Add prototype.
3301 * emacs.c (main): Add call to init_print_once. Adjust comments.
095d384d 3302
748fa866
DA
33032013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
3304
3305 * window.c (window_resize_check, window_resize_apply)
3306 (window_from_coordinates, recombine_windows, set_window_buffer)
3307 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
3308 (Fsplit_window_internal, Fdelete_window_internal)
3309 (freeze_window_starts): Use bool for booleans.
3310 * window.h (window_frame_coordinates, resize_frame_windows)
3311 (freeze_window_starts, set_window_buffer): Adjust prototypes.
3312
81519fd2
SM
33132013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
3314
3315 * dispnew.c (bitch_at_user): Use `user-error'.
3316
6db423a9
KB
33172013-03-17 Ken Brown <kbrown@cornell.edu>
3318
3319 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
3320 as return type of image_background. (Bug#13981)
3321 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
3322
8f2906f5
JD
33232013-03-16 Jan Djärv <jan.h.d@swipnet.se>
3324
960ce480 3325 * nsterm.m (updateFrameSize:): Change resize increments if needed.
6615748a 3326 (ns_select): Don't return with result uninitialized.
960ce480 3327
8f2906f5
JD
3328 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
3329 and getDirectory.
3330
81519fd2
SM
3331 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
3332 New functions.
8f2906f5
JD
3333 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
3334 directories. If filename is nil, get directory name (Bug#13932).
3335 Use getFilename and getDirectory.
3336 (getFilename, getDirectory): New methods for EmacsSavePanel and
3337 EmacsOpenPanel.
3338 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
3339
cded56c1
PE
33402013-03-15 Paul Eggert <eggert@cs.ucla.edu>
3341
3342 * coding.c (decode_coding_gap): Fix typo caught by static checking.
3343
251e9147 33442013-03-15 Kenichi Handa <handa@gnu.org>
8a44e6d1
KH
3345
3346 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
3347 (adjust_after_replace): Make it back to static. Delete the third
3348 arg text_at_gap_tail. Cancel the code for handling it.
3349
3350 * coding.h (struct coding_system): New member eol_seen.
3351
3352 * coding.c (detect_ascii): New function.
3353 (detect_coding): Set coding->head_ascii and coding->eol_seen only
3354 when the source bytes are actually scanned. On detecting for
3355 coding_category_utf_8_auto, call detect_ascii instead of scanning
3356 source bytes directly.
3357 (produce_chars): Call insert_from_gap with the new arg 0.
3358 (encode_coding): Likewise.
3359 (decode_coding_gap): Control ASCII optimization by the variable
3360 disable_ascii_optimization instead of #ifndef .. #endif.
3361 Deccode EOL format according to coding->eol_seen.
3362 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
3363 variable.
3364
8a44e6d1
KH
3365 * lisp.h (adjust_after_replace): Cancel externing it.
3366 (insert_from_gap): Adjust prototype.
3367
5f795e34
EZ
33682013-03-15 Eli Zaretskii <eliz@gnu.org>
3369
3370 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
3371 FULLSCREEN_MAXIMIZED. (Bug#13935)
3372
f258b4be
DA
33732013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
3374
3375 * region-cache.c (find_cache_boundary, move_cache_gap)
3376 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
3377 Simplify debugging check and convert to eassert. Adjust comment.
3378 (pp_cache): Put under ENABLE_CHECKING.
3379
a5cc4dde
EZ
33802013-03-14 Eli Zaretskii <eliz@gnu.org>
3381
3382 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
3383 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
3384 and WM_ACTIVATEAPP.
3385 (w32fullscreen_hook): If the frame is visible, reset
3386 f->want_fullscreen flag after changing the frame size. If the
3387 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
3388 (Bug#13953)
3389
3fc5e44a
DC
33902013-03-13 Daniel Colascione <dancol@dancol.org>
3391
3392 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
3393 too so that these builds can use Cygwin's file conversion
3394 functions. (We've been building and linking cygw32.o all along
3395 and just not using it.)
3396
47d7532e
PE
33972013-03-13 Paul Eggert <eggert@cs.ucla.edu>
3398
3399 File synchronization fixes (Bug#13944).
3400 * Makefile.in (LIB_FDATASYNC): New macro.
3401 (LIBES): Use it.
3402 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
3403 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
3404 Don't worry about HAVE_FSYNC, since a substitute fsync is
3405 available if the system lacks one.
3406 (Fwrite_regin): Retry fsync if interrupted.
3407
c7ffccaf
EZ
34082013-03-13 Eli Zaretskii <eliz@gnu.org>
3409
4e2df81d 3410 * w32term.c (w32_read_socket): If the Emacs frame is being
c7ffccaf
EZ
3411 activated, call w32fullscreen_hook, to make sure the new frame
3412 dimensions are in effect. (Bug#13937)
3413
8a7debc1
DA
34142013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
3415
3416 * xdisp.c (init_iterator): Simplify because both character and byte
3417 positions are either specified or -1. Add eassert. Adjust comment.
ffcd945e
DA
3418 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
3419 character and byte positions can be obtained from marker.
8a7debc1 3420
7fd8c501
PE
34212013-03-13 Paul Eggert <eggert@cs.ucla.edu>
3422
d9df6f40
PE
3423 Static checking by Sun C 5.12.
3424 * alloc.c (buffer_memory_full) [REL_ALLOC]:
3425 * bytecode.c (exec_byte_code):
3426 * dispnew.c (init_display):
3427 * eval.c (error):
3428 * fileio.c (Fsubstitute_in_file_name):
3429 * keyboard.c (Fevent_convert_list):
3430 * keymap.c (Fsingle_key_description):
3431 * term.c (maybe_fatal, fatal):
3432 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
3433 * xsmfns.c (Fhandle_save_session):
3434 Omit unreachable code.
3435 * keymap.c (map_keymap_char_table_item): Cast void * to
3436 a function pointer type; the C Standard requires this.
3437
7fd8c501
PE
3438 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
3439 Include <sys/param.h> unconditionally, as that works elsewhere and
3440 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
3441 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
3442 and FreeBSD now.
3443
a020afb9 3444See ChangeLog.12 for earlier changes.
aac0c6e3
MR
3445
3446;; Local Variables:
3447;; coding: utf-8
aac0c6e3
MR
3448;; End:
3449
ab422c4d 3450 Copyright (C) 2011-2013 Free Software Foundation, Inc.
aac0c6e3
MR
3451
3452 This file is part of GNU Emacs.
3453
3454 GNU Emacs is free software: you can redistribute it and/or modify
3455 it under the terms of the GNU General Public License as published by
3456 the Free Software Foundation, either version 3 of the License, or
3457 (at your option) any later version.
3458
3459 GNU Emacs is distributed in the hope that it will be useful,
3460 but WITHOUT ANY WARRANTY; without even the implied warranty of
3461 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3462 GNU General Public License for more details.
3463
3464 You should have received a copy of the GNU General Public License
3465 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.