Fix openp errno handling.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
5f86adcd
PE
12013-07-07 Paul Eggert <eggert@cs.ucla.edu>
2
3 Fix openp errno handling.
4 * callproc.c (Fcall_process): Preserve openp errno around close.
5 * lread.c (openp): Set errno when returning -1, as some callers
6 expect this.
7
1afb1d07
JD
82013-07-06 Jan Djärv <jan.h.d@swipnet.se>
9
10 * nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
11
12 * nsterm.h (NSSavePanel): Update comment.
13 (NSAPP_DATA2_RUNFILEDIALOG): Define.
14 (ns_run_file_dialog): Declare.
15
16 * nsfns.m: Remove panelOK.
17 (ns_fd_data): New.
18 (ns_run_file_dialog): New function.
19 (Fns_read_file_name): Fill in ns_fd_data, post an event and start the
20 event loop, so file dialog is popped up by ns_run_file_dialog, called
21 by sendEvent (Bug#14578).
22 (EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
23
3323c263
EZ
242013-07-06 Eli Zaretskii <eliz@gnu.org>
25
fdda0220
EZ
26 * xdisp.c (default_line_pixel_height): New function.
27 (pos_visible_p, move_it_vertically_backward, try_scrolling)
28 (try_cursor_movement, redisplay_window, try_window)
29 (try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
30
31 * window.c (window_scroll_pixel_based): use
32 default_line_pixel_height.
33
34 * dispextern.h (default_line_pixel_height): Add prototype.
35
36 * frame.c (x_set_line_spacing): Accept a float value for
37 line-spacing parameter, per the documentation.
38
3323c263
EZ
39 * data.c (Fmultibyte_string_p): Doc fix.
40
47ba6d43
PE
412013-07-05 Paul Eggert <eggert@cs.ucla.edu>
42
406af475
PE
43 Use emacs_open more consistently when opening files.
44 This handles EINTR more consistently now, and makes it easier
45 to introduce other uniform changes to file descriptor handling.
46 * src/systdio.h: New file.
47 * src/buffer.c (mmap_init):
48 * cygw32.c (chdir_to_default_directory):
49 * dispnew.c (Fopen_termscript):
50 * emacs.c (Fdaemon_initialized):
51 * fileio.c (Fdo_auto_save):
52 * image.c (slurp_file, png_load_body, jpeg_load_body):
53 * keyboard.c (Fopen_dribble_file):
54 * lread.c (Fload):
55 * print.c (Fredirect_debugging_output):
56 * sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
57 * termcap.c (tgetent):
58 * unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
59 * unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
60 * w32term.c (w32_initialize) [CYGWIN]:
61 * xfaces.c (Fx_load_color_file):
62 Use emacs_open instead of plain open, and emacs_fopen instead of
63 plain fopen.
64 * dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
65 * xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
66 * callproc.c (default_output_mode): New constant.
67 (Fcall_process): Use it to call emacs_open instead of plain creat.
68 * dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
69 * sysdep.c (emacs_open): Add commentary and don't call file name "path".
70 (emacs_fopen): New function.
71 * unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
72 Include <lisp.h>, for emacs_open.
73 * unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
74
47ba6d43
PE
75 Remove duplicate #include directives.
76 * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
77 * xfaces.c:
78 Don't include stdio.h twice.
79 * buffer.c [USE_MMAP_FOR_BUFFERS]:
80 Don't include sys/types.h or stdio.h twice.
81 * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
82 * lread.c: Don't include coding.h twice.
83 * nsfont.m: Don't include frame.h twice.
84 * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
85 * ralloc.c: Don't include <unistd.h> twice.
86 * xdisp.c: Don't include font.h twice.
87 * xterm.c: Don't include fontset.h twice.
88 * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
89
b9ed53d5
PE
902013-07-04 Paul Eggert <eggert@cs.ucla.edu>
91
92 Scale ImageMagick images more carefully.
93 * image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
94 (compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
95 Be more careful about avoiding undefined behavior after
96 integer overflow and division by zero.
97
cf13177e
YM
982013-07-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
99
100 * w32fns.c (Qgeometry, Qworkarea, Qmm_size, Qframes): New variables.
101 (syms_of_w32fns): DEFSYM them.
102 (MONITORINFOF_PRIMARY, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN)
103 (CCHDEVICENAME): Define macros if not defined.
104 (struct MONITOR_INFO_EX): New struct.
105 (MonitorEnum_Proc, EnumDisplayMonitors_Proc): New prototypes.
106 (enum_display_monitors_fn): New variable.
107 (globals_of_w32fns): Initialize it.
108 (Fx_display_pixel_width, Fx_display_pixel_height)
109 (Fx_display_mm_height, Fx_display_mm_width): Mention behavior on
110 multi-monitor setups in docstrings.
111 (Fx_display_mm_height, Fx_display_mm_width): Approximate whole
112 screen size by primary monitor's millimeter per pixel.
113 (w32_monitor_enum, w32_display_monitor_attributes_list)
114 (w32_display_monitor_attributes_list_fallback)
115 (Fw32_display_monitor_attributes_list): New functions.
116 (syms_of_w32fns): Defsubr Sw32_display_monitor_attributes_list.
117
118 * w32term.c (SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN): Define macros
119 if not defined.
120 (x_display_pixel_height, x_display_pixel_width): Use GetSystemMetrics.
121
86dfb7a8
MA
1222013-07-04 Michael Albinus <michael.albinus@gmx.de>
123
124 * fileio.c (Qfile_notify_error): New error symbol.
125
126 * gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
127 * inotify.c (inotify_callback, symbol_to_inotifymask)
128 (Finotify_add_watch, Finotify_rm_watch): Use it.
129 (inotifyevent_to_event): Exchange order of cookie and file name.
130 (Finotify_add_watch): Adapt docstring.
131
132 * lisp.h (Qfile_notify_error): Declare.
133
2c1c974b
PE
1342013-07-04 Paul Eggert <eggert@cs.ucla.edu>
135
136 Try again to fix FreeBSD bug re multithreaded memory alloc (Bug#14569).
137 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
138 Do not clear _malloc_thread_enabled_p, undoing the previous change,
139 which did not work (see <http://bugs.gnu.org/14569#307>).
140 (main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
141 && (!noninteractive || initialized)). This attempts to thread
142 the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
143
7a35b20f
JB
1442013-07-04 Juanma Barranquero <lekktu@gmail.com>
145
146 * image.c (x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
147 (x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
148
1ce5cd04
PE
1492013-07-04 Paul Eggert <eggert@cs.ucla.edu>
150
151 Try to fix FreeBSD bug re multithreaded memory allocation (Bug#14569).
152 * emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
153 Clear _malloc_thread_enabled_p at startup. Reported by Ashish SHUKLA in
154 <http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.
155
57f8c490
PE
1562013-07-02 Paul Eggert <eggert@cs.ucla.edu>
157
158 * sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
159 Define to __sys_siglist.
160
bcffb5ca
EZ
1612013-07-02 Eli Zaretskii <eliz@gnu.org>
162
163 * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
164 word-wrap, so that overflow-newline-into-fringe would work in
165 visual-line-mode. (Bug#2749)
166 (move_it_in_display_line_to): When the last scanned display
167 element fits exactly on the display line, and
168 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
169 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
170 wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
171 finding buffer position that corresponds to pixel coordinates,
172 e.g. in buffer_posn_from_coords.
173
2c41e781
JD
1742013-07-02 Jan Djärv <jan.h.d@swipnet.se>
175
176 * process.c (handle_child_signal): Call catch_child_signal if
177 NS_IMPL_GNUSTEP.
178
c2418359
PE
1792013-07-02 Paul Eggert <eggert@cs.ucla.edu>
180
52a9bcae
PE
181 Don't convert function pointers to void * and back.
182 It isn't portable C, and it's easy enough to avoid.
183 * alloc.c: Verify SAVE_FUNCPOINTER bits, too.
184 (make_save_value): Add support for SAVE_FUNCPOINTER.
185 * keymap.c (map_keymap_char_table_item, map_keymap_internal):
186 * print.c (print_object):
187 Distinguish function from object pointers.
188 * lisp.h (SAVE_FUNCPOINTER): New constant.
189 (SAVE_SLOT_BITS): Adjust to it.
190 (SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
191 SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
192 (voidfuncptr): New typedef.
193 (struct Lisp_Save_Value): New member data[0].funcpointer.
194 (XSAVE_FUNCPOINTER): New function.
195
c2418359
PE
196 Simplify buildobj processing.
197 * Makefile.in (buildobj.h): Make it a sequence of strings each
198 followed by comma, rather than a single string. Put it into a
199 .tmp file in case there's an error while generating it.
200 (gl-stamp): Use .tmp for temp files.
201 (mostlyclean): Clean .tmp files.
202 * doc.c (buildobj): Move to just the routine that needs it.
203 It's now an array of strings, so processing is simpler.
204
8f43ce49
PE
2052013-07-01 Paul Eggert <eggert@cs.ucla.edu>
206
207 Fix bug re noninteractive multithreaded memory allocation (Bug#14569).
208 * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
209 (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
210 Invoke malloc_enable_thread even when not interactive.
211 Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
212 * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
213 in this case, since the underlying bug has now been fixed.
214
24827db9
JB
2152013-07-01 Juanma Barranquero <lekktu@gmail.com>
216
217 * emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before
218 unlinking it (bug#14691).
219
ef099a94
MN
2202013-06-30 Michal Nazarewicz <mina86@mina86.com>
221
222 * buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
223 before checking whether buffer is modified. This lets
224 `kill-buffer-query-functions' cancel killing of the buffer or save
225 its content before `kill-buffer' asks user the "Buffer %s
226 modified; kill anyway?" question.
227
9d3f2fc2
JD
2282013-06-30 Jan Djärv <jan.h.d@swipnet.se>
229
230 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
231 Let the super performKeyEquivalent deal with them (Bug#14747).
232
e6c6c8c7
PE
2332013-06-30 Paul Eggert <eggert@cs.ucla.edu>
234
1d71c1d9
PE
235 * widget.c (resize_cb): Remove unused local.
236
8f5f35cc
PE
237 Do not use GTK 3 if it exists but cannot be compiled.
238 * xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
239 * xterm.c (x_error_handler) [!USE_GTK]:
240 Do not use GTK 3.
241
e6c6c8c7
PE
242 * intervals.c (get_local_map): Actually clip POSITION (Bug#14753).
243
0ba54312
EZ
2442013-06-30 Eli Zaretskii <eliz@gnu.org>
245
5d1c3286
EZ
246 * intervals.c (get_local_map): Instead of aborting, clip POSITION
247 to the valid range of values. (Bug#14753)
248
0ba54312
EZ
249 * xdisp.c (Fmove_point_visually): Invalidate the cursor position
250 when moving point by using the current glyph matrix. This avoids
251 the need to force redisplay when this function is called in a
252 loop.
253
9c90cc06
PE
2542013-06-29 Paul Eggert <eggert@cs.ucla.edu>
255
256 Fix minor problems found by static checking.
257 * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
258 Redo the latter's body to sidestep GCC parenthesization warnings.
259 (setup_coding_system, detect_coding, detect_coding_system): Use them.
260 * coding.c (detect_coding, detect_coding_system):
261 * coding.h (struct undecided_spec):
262 Use bool for boolean.
263 * image.c (QCmax_width, QCmax_height): Now static.
264 * xdisp.c (Fmove_point_visually): Remove unused local.
265
4c672a0f
EZ
2662013-06-29 Eli Zaretskii <eliz@gnu.org>
267
268 * xdisp.c (Fmove_point_visually): New function.
269
c1ea3abf
JB
2702013-06-28 Kenichi Handa <handa@gnu.org>
271
272 * coding.h (define_coding_undecided_arg_index): New enum.
273 (coding_attr_index): New members
274 coding_attr_undecided_inhibit_null_byte_detection,
275 coding_attr_undecided_inhibit_iso_escape_detection,
276 coding_attr_undecided_prefer_utf_8.
277 (undecided_spec): New struct.
278 (struct coding_system): New member `undecided' of the member
279 `spec'.
280
281 * coding.c (setup_coding_system): Handle CODING->spec.undecided.
282 (detect_coding): Likewise.
283 (detect_coding_system): Likewise.
284 (Fdefine_coding_system_internal): New coding system properties
285 :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
286 :prefer-utf-8.
287 (syms_of_coding): Adjust for coding_arg_undecided_max.
288
ba3de9e6
PE
2892013-06-28 Paul Eggert <eggert@cs.ucla.edu>
290
291 * image.c (x_from_xcolors): Remove unused local.
292
547c9269
YM
2932013-06-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
294
295 Defer image data transfer between X client and server until actual
296 display happens.
297
298 * dispextern.h (struct image) [HAVE_X_WINDOWS]: New members `ximg'
299 and `mask_img'.
300
301 * image.c (Destroy_Image): Remove.
302 (x_clear_image_1): New arg `flags' instead of 3 bools `pixmap_p',
303 `mask_p', and `colors_p'. All uses changed.
304 (x_clear_image_1) [HAVE_X_WINDOWS]: Destroy `ximg' and `mask_img'.
ef099a94
MN
305 (CLEAR_IMAGE_PIXMAP, CLEAR_IMAGE_MASK, CLEAR_IMAGE_COLORS):
306 New macros for `flags' arg to x_clear_image_1.
547c9269
YM
307 (postprocess_image, xpm_load_image, x_build_heuristic_mask)
308 (png_load_body): Use x_clear_image_1 instead of Free_Pixmap.
04b66ce7 309 (ZPixmap, XGetImage) [HAVE_NS]: Remove.
547c9269
YM
310 (image_get_x_image_or_dc, image_unget_x_image_or_dc)
311 (image_get_x_image, image_unget_x_image): New functions or macros.
312 (image_background, image_background_transparent, x_to_xcolors)
313 (x_build_heuristic_mask): Use image_get_x_image_or_dc instead of
314 XGetImage or CreateCompatibleDC. Use image_unget_x_image_or_dc
315 instead of Destroy_Image.
316 (image_create_x_image_and_pixmap, image_put_x_image): New functions.
317 (xpm_load_image, x_from_xcolors, x_build_heuristic_mask, pbm_load)
318 (png_load_body, jpeg_load_body, tiff_load, gif_load)
319 (imagemagick_load_image, svg_load_image): Use them instead of
320 x_create_x_image_and_pixmap, and x_put_x_image followed by
321 x_destroy_x_image, respectively.
322 (xpm_load) [HAVE_XPM && !HAVE_NTGUI]: Use XpmReadFileToImage and
323 XpmCreateImageFromBuffer instead of XpmReadFileToPixmap and
324 XpmCreatePixmapFromBuffer. Create pixmaps. Fill background and
325 background_transparent fields.
326 (image_sync_to_pixmaps) [HAVE_X_WINDOWS]: New function.
327 (prepare_image_for_display, x_disable_image) [HAVE_X_WINDOWS]: Use it.
328
dae2f5ef
PE
3292013-06-27 Paul Eggert <eggert@cs.ucla.edu>
330
331 Do not tickle glib SIGCHLD handling if Cygwin (Bug#14569).
332 This mostly consists of undoing recent changes.
333 * callproc.c (Fcall_process):
334 * process.c (create_process):
335 Do not worry about catching SIGCHLD here, undoing previous change.
336 * nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
337 * process.c, process.h (catch_child_signal):
338 No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
339 * process.c (catch_child_handler): Don't worry about being called
340 lazily and do not assume caller has blocked SIGCHLD, undoing
341 previous change. Move first-time stuff back to
342 init_process_emacs, undoing 06-22 change. If CYGWIN, do not
343 tickle glib, as that causes Cygwin bootstrap to fail. Do not
344 set lib_child_handler if it's already initialized, which may
345 help avoid problems on GNUStep.
346
fa55d2aa
PE
3472013-06-23 Paul Eggert <eggert@cs.ucla.edu>
348
349 A more-conservative workaround for Cygwin SIGCHLD issues (Bug#14569).
350 * callproc.c (Fcall_process):
351 * process.c (create_process):
352 Make sure SIGCHLD is caught before we fork,
353 since Emacs startup no arranges to catch SIGCHLD.
354 * process.c (lib_child_handler): Initialize to null, not to
355 dummy_handler.
356 (catch_child_signal): Allow self to be called lazily.
357 Do nothing if it's already been called.
358 Assume caller has blocked SIGCHLD (all callers do now).
359 * emacs.c (main): Do not catch SIGCHLD here; defer it until
360 just before it's really needed.
361 * nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
362 since it hasn't been caught yet.
363
f3f9606c
LMI
3642013-06-23 Lars Magne Ingebrigtsen <larsi@gnus.org>
365
366 * image.c (compute_image_size): New function to implement
367 :max-width and :max-height.
368 (imagemagick_load_image): Use it.
369
c7041908
PE
3702013-06-23 Paul Eggert <eggert@cs.ucla.edu>
371
372 Try to avoid malloc SEGVs on Cygwin (Bug#14569).
373 * callproc.c, process.h (block_child_signal, unblock_child_signal):
374 Now extern.
375 * emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
376 * process.c (catch_child_signal): Block SIGCHLD while futzing with
377 the SIGCHLD handler, since the code is not atomic and (due to glib)
378 signals may be arriving now.
379 * sysdep.c (init_signals): Do not catch child signals here;
380 'main' now does that later, at a safer time.
381
f86852b4
PE
3822013-06-22 Paul Eggert <eggert@cs.ucla.edu>
383
0dfeed58
PE
384 Clean up SIGCHLD handling a bit (Bug#14569).
385 * process.c, process.h (catch_child_signal):
386 Now always extern, even if !NS_IMPL_GNUSTEP.
387 * process.c (catch_child_signal): Move glib tickler here from
388 init_process_emacs, so that it's done earlier in Emacs
389 initialization. Also move the noninteractive && !initialized
390 check here from init_process_emacs. This is all a bit cleaner for
391 GNUish platforms, and I hope it works around the Cygwin bug.
392 * sysdep.c (init_signals): Invoke catch_child_signal here, so
393 that glib signal handling is tickled before glib creates threads.
394
f86852b4
PE
395 * process.c (wait_reading_process_output): Avoid int overflow
396 when reading more than 2 GiB total from a process.
397
cbd6509c
PE
3982013-06-21 Paul Eggert <eggert@cs.ucla.edu>
399
400 * process.c (create_process): Handle a couple more cases,
401 i.e., work even if new_argv and wait_child_setup[i] are cached.
402 Use Fcall_process's style for volatile vars.
403
9de1114a
AS
4042013-06-21 Andreas Schwab <schwab@linux-m68k.org>
405
406 * process.c (create_process): Mark PROCESS volatile.
407
fbe9e0b9
PE
4082013-06-21 Paul Eggert <eggert@cs.ucla.edu>
409
410 Use C99-style flexible array members if available.
411 This avoids some subtle aliasing issues, which typically
412 aren't a problem with GCC but may be a problem elsewhere.
413 * alloc.c (sdata): New typedef, replacing the old struct sdata.
414 It is a struct if GC_CHECK_STRING_BYTES, a union otherwise.
415 In either case, it uses a flexible array member rather than
416 the old struct hack. All uses changed.
417 (SDATA_NBYTES, sweep_strings) [!GC_CHECK_STRING_BYTES]:
418 Adjust to sdata reorganization.
419 * alloc.c (VBLOCK_BYTES_MIN, allocate_vectorlike, Fgarbage_collect):
420 Use offsetof (struct, flex_array_member), not sizeof (struct), as
421 that ports better to pre-C99 non-GCC.
422 * chartab.c (Fmake_char_table, make_sub_char_table, copy_char_table):
423 Use CHAR_TABLE_STANDARD_SLOTS rather than its definition,
424 as the latter has changed.
425 * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Move here from w32.c,
426 and port better to pre-C99 GCC.
427 * image.c (struct xpm_cached_color):
428 * lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
429 (struct Lisp_Char_Table, struct Lisp_Sub_Char_Table):
430 Use FLEXIBLE_ARRAY_MEMBER.
431 * lisp.h (string_bytes) [GC_CHECK_STRING_BYTES]:
432 Move decl to top level so it gets checked against implementation.
433 (CHAR_TABLE_STANDARD_SLOTS): Adjust to struct Lisp_Char_Table change.
434 * w32.c (FLEXIBLE_ARRAY_MEMBER): Move to conf_post.h.
435
1fc71008
PE
4362013-06-20 Paul Eggert <eggert@cs.ucla.edu>
437
438 * syntax.c: Integer cleanups.
439 (SYNTAX_FLAGS_COMMENT_STYLEC): Return a boolean, not 0-or-2.
440 All uses that need 0-or-2 changed to:
441 (SYNTAX_FLAGS_COMMENT_STYLEC2): New macro, with the same semantics
442 as the old SYNTAX_FLAGS_COMMENT_STYLEC.
443 (struct lisp_parse_state, syntax_prefix_flag_p, update_syntax_table)
444 (char_quoted, prev_char_comend_first, back_comment)
445 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
446 (in_classes, forw_comment, scan_lists, scan_sexps_forward):
447 Use bool for boolean.
448 (update_syntax_table, skip_chars, skip_syntaxes):
449 Prefer int to unsigned when either will do.
450 (back_comment): Return boolean success flag, like forw_comment,
451 instead of positive-or-minus-1 (which might have overflowed int anyway).
452 Don't stuff ptrdiff_t into int.
453 (syntax_spec_code, syntax_code_spec): Now const.
454 (Fmatching_paren, scan_lists, scan_sexps_forward):
455 Use enum syntaxcode for syntax code.
456 (Fmatching_paren): Check that arg is a character, not just an integer.
457 (Fstring_to_syntax): Don't assume 0377 fits in enum syntaxcode.
458 (Finternal_describe_syntax_value): Omit no-longer-needed
459 comparison to 0.
460 (skip_chars): Use char, not unsigned char, when the distinction
461 doesn't matter.
462 (forw_comment, scan_lists): Prefer A |= B to A = A || B when B's cheap.
463 * bytecode.c (exec_byte_code):
464 * syntax.c (syntax_spec_code, Fchar_syntax)
465 (Finternal_describe_syntax_value, skip_chars, skip_syntaxes)
466 (init_syntax_once):
467 * syntax.h (SYNTAX_WITH_FLAGS):
468 Omit unnecessary casts.
469
b932cad7
EZ
4702013-06-20 Eli Zaretskii <eliz@gnu.org>
471
472 * w32fns.c (w32_wnd_proc): Don't compute the header line and mode
473 line dimensions here, to avoid race conditions with the main
474 thread. (Bug#14062, bug#14630, bug#14669)
475
476 * w32term.c (w32_draw_window_cursor): Compute the header line and
477 mode line dimensions here.
478 <w32_system_caret_window, w32_system_caret_hdr_height>:
479 <w32_system_caret_mode_height>: New variables.
480
481 * w32term.h: Declare them.
482
89561f72
PE
4832013-06-20 Paul Eggert <eggert@cs.ucla.edu>
484
5013fc08
PE
485 * alloc.c (die): Move "assertion failed" string here ...
486 * lisp.h (eassert): ... from here. Also, suppress evaluation of
487 COND when SUPPRESS_CHECKING. This shrinks the executable text
488 size by 0.8% to 2.2% when configured with --enable-checking,
489 depending on optimization flags (GCC 4.8.1 x86-64).
490
89561f72
PE
491 * floatfns.c (Flog10): Move to Lisp (marked obsolete there).
492
4932013-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
494
495 * floatfns.c (Flog) [HAVE_LOG2]: Use log2 if available and if the
496 base is 2; this is more accurate.
497
983aeb9a
JB
4982013-06-19 Juanma Barranquero <lekktu@gmail.com>
499
500 * sound.c (string_default): Move to !WINDOWSNT section.
501 (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning.
502
178ba3e6
PE
5032013-06-19 Paul Eggert <eggert@cs.ucla.edu>
504
bbc51b15
PE
505 * sound.c: Integer cleanups.
506 Remove unnecessary forward decls.
507 (struct sound_device): The 'file' member is now a Lisp_Object, not
508 a char *, so that we needn't invoke alloca on a huge size.
509 (Fplay_sound_internal): Adjust to this.
510 (string_default): New function.
511 (vox_open, vox_init, alsa_open, alsa_configure, alsa_init):
512 Use it to adjust to the struct sound_device change.
513 (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans.
514 (be2hs) [0]: Remove.
515
178ba3e6
PE
516 * syntax.c (skip_chars): Don't use uninitialized storage
517 when searching a multibyte buffer for characters that are not in a
518 unibyte string that contains non-ASCII characters.
519
69f60cdc
JD
5202013-06-18 Jan Djärv <jan.h.d@swipnet.se>
521
522 * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h
523 if HAVE_GLIB && ! WINDOWSNT (Bug#14654).
524
0d6224d4
PE
5252013-06-18 Paul Eggert <eggert@cs.ucla.edu>
526
527 * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc.
528
3c542890
KH
5292013-06-18 Kenichi Handa <handa@gnu.org>
530
f7e3f7cd
KH
531 * font.c (Ffont_spec): Signal an error for an invalid font name
532 (Bug#14648).
3c542890 533
9349e5f7
PE
5342013-06-18 Paul Eggert <eggert@cs.ucla.edu>
535
536 Porting fixes for merged specpdl and backtrace stacks (Bug#14643).
537 In particular this ports to 32-bit sparc Sun cc.
538 * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding
539 array with a dummy element at specpdl[-1], so that its address can
540 be taken portably.
541 (unbind_to): Do not copy the binding; not needed, now that we
542 copy old_value in the one place where the copy is needed.
543 * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count.
544 * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed.
545 (union specbinding): Rename from struct specbinding. Redo layout
546 to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;',
547 which is not portable. With Sun C 5.12 32-bit sparc, the
548 declaration causes nargs to be an unsigned bitfield, a behavior
549 that the C standard allows; but Emacs wants nargs to be signed.
550 The overall type is now a union of structures rather than a
551 structure of union of structures, and the 'kind' member is now a
552 bitfield, so that the overall type doesn't grow. All uses changed.
553 * process.c (Fmake_serial_process): Remove unnecessary initialization.
554
0a4df6a5
PE
5552013-06-17 Paul Eggert <eggert@cs.ucla.edu>
556
ec6ecaad
PE
557 * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t.
558 Needed if HAVE_NTGUI. Reported by Juanma Barranquero.
559
0a4df6a5
PE
560 * nsfont.m (ns_registry_to_script): Parenthesize while expression.
561
7bfe8dbc
EZ
5622013-06-17 Eli Zaretskii <eliz@gnu.org>
563
564 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
565 unless we know that the window w's frame is a frame object.
566 Another attempt at solving bug#14062 and bug#14630.
567
708e05f6
LMI
5682013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
569
570 * textprop.c (property_set_type): New enum.
571 (add_properties): Allow appending/prepending text properties.
572 (add_text_properties_1): Factored out of Fadd_text_properties.
ef099a94 573 (Fadd_text_properties): Move all the code into
708e05f6
LMI
574 add_text_properties_1.
575 (Fadd_face_text_property): New function that calls
576 add_text_properties_1.
577
84575e67
PE
5782013-06-17 Paul Eggert <eggert@cs.ucla.edu>
579
580 Move functions from lisp.h to individual modules when possible.
581 From a suggestion by Andreas Schwab in <http://bugs.gnu.org/11935#68>.
582 * alloc.c (XFLOAT_INIT, set_symbol_name):
583 * buffer.c (CHECK_OVERLAY):
584 * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii)
585 (set_char_table_parent):
586 * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR):
587 * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD)
588 (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found)
589 (blv_value, set_blv_value, set_blv_where, set_blv_defcell)
590 (set_blv_valcell):
591 * emacs.c (setlocale) [!HAVE_SETLOCALE]:
592 * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where)
593 (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs)
594 (backtrace_args, backtrace_debug_on_exit):
595 * floatfns.c (CHECK_FLOAT):
596 * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END)
597 (set_hash_key_and_value, set_hash_next, set_hash_next_slot)
598 (set_hash_hash, set_hash_hash_slot, set_hash_index)
599 (set_hash_index_slot):
600 * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE):
601 * marker.c (CHECK_MARKER):
602 * textprop.c (CHECK_STRING_OR_BUFFER):
603 * window.c (CHECK_WINDOW_CONFIGURATION):
604 Move here from lisp.h, and make these functions static rather than
605 extern inline.
606 * buffer.c (Qoverlayp):
607 * data.c (Qsubrp):
608 * fns.c (Qhash_table_p):
609 * window.c (Qwindow_configuration_p):
610 Now static.
611 * lisp.h: Remove the abovementioned defns and decls.
612
613 Use functions, not macros, for XINT etc. (Bug#11935).
614 In lisp.h, prefer functions to function-like macros, and
615 constants to object-like macros, when either will do. This:
616 . simplifies use, as there's no more need to worry about
617 arguments' side effects being evaluated multiple times.
618 . makes the code easier to debug on some platforms.
619 However, when using gcc -O0, keep using function-like macros
620 for a few critical operations, for performance reasons.
621 This sort of thing isn't needed with gcc -Og, but -Og
622 is a GCC 4.8 feature and isn't widely-enough available yet.
623 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]:
624 Remove enum lsb_bits; no longer needed.
625 (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue.
626 * buffer.c (Qoverlap):
627 * data.c (Qsubrp):
628 * fns.c (Qhash_table_p):
629 Now extern, so lisp.h can use these symbols.
630 * dispextern.h: Include character.h, for MAX_CHAR etc.
631 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
632 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
633 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
634 (GLYPH_CODE_P): Move here from lisp.h.
635 (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
636 (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros.
637 (GLYPH_MODE_LINE_FACE): Now enums, not macros.
638 * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since
639 XUNTAG now returns void *.
640 * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS)
641 (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE)
642 (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP)
643 (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP)
644 (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P)
645 (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP)
646 (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH)
647 (lisp_h_XPNTR, lisp_h_XSYMBOL):
648 New macros, renamed from their sans-lisp_h_ counterparts.
649 (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL)
650 (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP)
651 (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP)
652 (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL):
653 If compiling via GCC without optimization, define these as macros
654 in addition to inline functions.
655 To disable this, compile with -DINLINING=0.
656 (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros.
657 (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise.
658 (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but
659 hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that.
660 (INTMASK, VALMASK): Now macros, since static values cannot be
661 accessed from extern inline functions.
662 (VALMASK): Also a constant, for benefit of old GDB.
663 (LISP_INT_TAG_P): Remove; no longer needed as the only caller
664 is INTEGERP, which can fold it in.
665 (XLI, XIL, XHASH, XTYPE,XINT, XFASTINT, XUINT)
666 (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL)
667 (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE)
668 (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE)
669 (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR)
670 (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET)
671 (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF)
672 (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF)
673 (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS)
674 (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS)
675 (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P)
676 (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P)
677 (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE)
678 (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE)
679 (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE)
680 (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD)
681 (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP)
682 (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP)
683 (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP)
684 (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP)
685 (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP)
686 (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP)
687 (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P)
688 (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP)
689 (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING)
690 (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
691 (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY)
692 (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW)
693 (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR)
694 (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT)
695 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY)
696 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR)
697 (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH)
698 Now functions.
699 (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function.
700 (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed.
701 (VALMASK): Define in one place rather than in two, merging the
702 USE_LSB_TAG parts; this is simpler.
703 (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM)
704 (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P):
705 Move up, to avoid use before definition.
706 Also include "globals.h" earlier, for the same reason.
707 (make_natnum): New function.
708 (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts.
709 (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP)
710 (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP)
711 (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP)
712 (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP)
713 (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set)
714 (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p)
715 (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp)
716 (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp)
717 (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument)
718 (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp)
719 (Qwindow_configuration_p, Qimage): New forward declarations.
720 (XSETFASTINT): Simplify by rewriting in terms of make_natnum.
721 (STRING_COPYIN): Remove; unused.
722 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ...
723 (xcar_addr, xcdr_addr): New functions. All uses changed.
724 (IEEE_FLOATING_POINT): Now a constant, not a macro.
725 (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE)
726 (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE)
727 (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P)
728 (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use.
729 (TYPE_RANGED_INTEGERP): Simplify.
730 (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls.
731 (setlocale, fixup_locale, synchronize_system_messages_locale)
732 (synchronize_system_time_locale) [!HAVE_SETLOCALE]:
733 Now empty functions, not macros.
734 (functionp): Return bool, not int.
735 * window.c (Qwindow_configuration_p): Now extern,
736 so window.h can use it.
737 * window.h (Qwindowp): Move decl back to lisp.h.
738
9583ec36
EZ
7392013-06-15 Eli Zaretskii <eliz@gnu.org>
740
741 * xdisp.c (Fline_pixel_height): New function, required for solving
742 bug #14567.
743
210272ce
PE
7442013-06-15 Paul Eggert <eggert@cs.ucla.edu>
745
746 * fns.c (Fcopy_sequence): Simplify XTYPE calculation.
747
de0503df
SM
7482013-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
749
750 * lread.c (syms_of_lread):
751 * fns.c (Fprovide): Adjust to new format of after-load-alist.
752
afbfe143
KD
7532013-06-13 Kelly Dean <kellydeanch@yahoo.com> (tiny change)
754
755 * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479)
756
d177e213
XF
7572013-06-12 Xue Fuqiao <xfq.free@gmail.com>
758
759 * fileio.c (expand_file_name): Doc fix.
760
05e3e412
PE
7612013-06-11 Paul Eggert <eggert@cs.ucla.edu>
762
f7394b12
PE
763 Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569).
764 * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
765 Wait for self, not for 0. This can't hurt on GNU or similar
766 system, and may help with Cygwin.
767
05e3e412
PE
768 * keyboard.c: Don't use PROP (...) as an lvalue.
769 (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]:
770 Use set_prop (A, B), not PROP (A) = B.
771
17dd3097
EZ
7722013-06-10 Eli Zaretskii <eliz@gnu.org>
773
774 * xdisp.c (get_it_property): Use it->window instead of generating
775 a Lisp object from it->w.
776
52fab9c9
EZ
7772013-06-09 Eli Zaretskii <eliz@gnu.org>
778
779 * xdisp.c (get_it_property): If it->object is a buffer, pass to
780 get-char-property the window that is being rendered, instead of
781 the buffer, to support window-specific overlays. (Bug#14575)
ad257d4f
EZ
782 (compute_display_string_pos): When W is NULL, use the current
783 buffer as the object to pass to get-char-property.
784 (Fcurrent_bidi_paragraph_direction): Assign NULL to the window
785 pointer member of the bidi iterator, since no window is pertinent
786 to this function.
52fab9c9 787
5bf97bfc
EZ
7882013-06-08 Eli Zaretskii <eliz@gnu.org>
789
790 * bidi.c (bidi_fetch_char): Accept additional argument, the window
791 being displayed, and pass it to compute_display_string_pos.
792 (bidi_level_of_next_char, bidi_resolve_explicit_1)
793 (bidi_paragraph_init): All callers changed.
794
795 * xdisp.c (init_from_display_pos, init_iterator)
796 (handle_single_display_spec, next_overlay_string)
797 (get_overlay_strings_1, reseat_1, reseat_to_string)
e7b41c4c
JB
798 (push_prefix_prop, Fcurrent_bidi_paragraph_direction):
799 Set bidi_it.w member from it->w.
5bf97bfc
EZ
800 (compute_display_string_pos): Accept additional argument, the
801 window being displayed, and pass it to Fget_char_property.
802 (Bug#14575)
803
804 * dispextern.h (struct bidi_it): New member w, the window being
805 displayed.
806 (compute_display_string_pos): Adjust prototype.
807
5de0e011
JD
8082013-06-08 Jan Djärv <jan.h.d@swipnet.se>
809
e7b41c4c 810 * xgselect.c: Remove unneeded include xterm.h.
b33f93ee
JD
811
812 * process.c (wait_reading_process_output): Check for NS before GLIB.
813 GLIB may be linked in due to rsvg, but ns_select must be called.
814
5de0e011
JD
815 * xgselect.c (xg_select): Remove call to window_system_available
816 and g_main_context_pending at the top, so Gdk events (i.e. file
817 notify) are processed when Emacs is started with -nw.
818
a822acff
EZ
8192013-06-07 Eli Zaretskii <eliz@gnu.org>
820
821 * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
822 (ctagsfiles3): New variable, includes only *.m files.
823 (TAGS): Use an explicit language name in the regular expressions,
824 to avoid transformation of '/SOMETHING' by MSYS to
825 'c:\MSYS\SOMETHING'.
826
6c0a9ed1
RC
8272013-06-07 Richard Copley <rcopley@gmail.com> (tiny change)
828
829 * epaths.in: Fix commentary to PATH_SITELOADSEARCH.
830
9ef6111b
EZ
8312013-06-06 Eli Zaretskii <eliz@gnu.org>
832
833 * xdisp.c (note_mouse_highlight): When mouse-highlight is off,
834 still need to set the mouse pointer shape and activate help-echo.
835 (Bug#14558)
836
7d300d64
PE
8372013-06-06 Paul Eggert <eggert@cs.ucla.edu>
838
839 A few porting etc. fixes for the new file monitor code.
840 See the thread containing
841 <http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
842 * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
843 (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
844 (dir_monitor_callback, Fgfile_rm_watch):
845 Use assq_no_quit instead of Fassoc, for speed.
846 (dir_monitor_callback, Fgfile_rm_watch):
847 eassert that the monitor is a fixnum.
848 (dir_monitor_callback): No need for CDR_SAFE.
849 Simplify building of lisp with alternative tails.
850 (Fgfile_add_watch, Fgfile_rm_watch):
851 Do not assume glib functions set errno reliably on failure.
852 (Fgfile_add_watch): Check that the monitor survives the XIL trick,
853 and signal an error otherwise.
854 (Fgfile_rm_watch): Prefer CONSP to !NILP.
855 Use Fdelq instead of Fdelete, for speed.
856
817ebfcf
EZ
8572013-06-05 Eli Zaretskii <eliz@gnu.org>
858
859 * xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
860 don't insist on being invoked on a highlighted tool-bar button.
861 Avoids losing tool-bar functionality when mouse-highlight is nil.
862 (note_tool_bar_highlight, note_mode_line_or_margin_highlight):
863 Don't highlight when mouse-highlight is nil.
864 (note_mouse_highlight): When mouse-highlight is nil, don't return
865 right away; instead, run tool-bar and mode-line highlight
866 subroutine, clear any existing highlight, and revert the mouse
867 pointer to its default shape. (Bug#14558)
868
55577e7c
SM
8692013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
870
871 * lisp.mk (lisp): Add prog-mode.el.
872
f019a684
PE
8732013-06-05 Paul Eggert <eggert@cs.ucla.edu>
874
875 Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
876 * process.c (dummy_handler): New function.
877 (lib_child_handler): New static var.
878 (handle_child_signal): Invoke it.
879 (catch_child_signal): If a library has set up a signal handler,
880 save it into lib_child_handler.
881 (init_process_emacs): If using glib and not on Windows, tickle glib's
882 child-handling code so that it initializes its private SIGCHLD handler.
883 * syssignal.h (SA_SIGINFO): Default to 0.
884 * xterm.c (x_term_init): Remove D-bus hack that I installed on May
885 31; it should no longer be needed now.
886
90db8702
MA
8872013-06-05 Michael Albinus <michael.albinus@gmx.de>
888
889 * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify.
890
891 * gfilenotify.c (globals_of_gfilenotify): New function.
892 (syms_of_gfilenotify): Move global initialization there.
893
894 * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype.
895
bfa3acd6
SM
8962013-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
897
898 * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
899 * keyboard.c (menu_bar_items, tool_bar_items):
900 * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
901 not override local keymaps any more.
902
ba59bd80
EZ
9032013-06-04 Eli Zaretskii <eliz@gnu.org>
904
905 * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540)
906
7f203aa1
EZ
9072013-06-03 Eli Zaretskii <eliz@gnu.org>
908
9337e206
EZ
909 * w32console.c (initialize_w32_display): Return the dimensions of
910 the console window via 2 additional arguments, not via the current
911 frame. This avoids crashes due to overrunning the bounds of
912 frame's decode_mode_spec_buffer, which is not resized following
913 the change of the frame dimensions from the initial 10x10.
914
915 * w32term.h (w32_initialize_display_info): Adjust prototype.
916
917 * term.c (init_tty): Take dimensions of the frame from the values
918 returned by initialize_w32_display.
919
7f203aa1
EZ
920 * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
921 (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
922 (LIBES): Add $(GFILENOTIFY_LIBS).
923
924 * w32inevt.c (handle_file_notifications): Add dummy implementation
925 for !HAVE_W32NOTIFY.
926
927 * w32term.c: Wrap code with HAVE_W32NOTIFY.
928
55a87246
JD
9292013-06-03 Jan Djärv <jan.h.d@swipnet.se>
930
931 * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB.
932
933 * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB.
934
935 * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty.
936
3d5ee10a
PE
9372013-06-03 Paul Eggert <eggert@cs.ucla.edu>
938
939 Fix minor problems found by static checking.
940 * data.c (pure_write_error):
941 Use xsignal2, not Fsignal, as Fsignal might return.
942 * eval.c (set_backtrace_debug_on_exit): Now static.
943 (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
944 No longer inline. EXTERN_INLINE is needed only for functions
945 defined in .h files. Reindent function header as per GNU style.
946 (backtrace_p, backtrace_top, backtrace_next):
947 Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
948 compiler or linker. Add extern decls to pacify gcc -Wall.
949 * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
950 Now static.
951 * frame.c (free_monitors): Define only on platforms that need it.
952 * nsterm.m (ns_term_init):
953 * process.c (catch_child_signal):
954 Don't worry about whether SIGCHLD is defined, as SIGCHLD is
955 defined on all porting targets these days.
956 * process.c, process.h (catch_child_signal):
957 Make it extern only if NS_IMPL_GNUSTEP is defined.
958
e2d8a6f0
EZ
9592013-06-03 Eli Zaretskii <eliz@gnu.org>
960
961 * w32.c (gettimeofday): Make the signature identical to prototype
962 in nt/inc/sys/time.h.
963
a8a7c5f6
SM
9642013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
965
966 * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to
967 .gdbinit.
968
969 * keyboard.c (safe_run_hooks_error): Improve error message.
970
971 * data.c (pure_write_error): Add `object' argument.
972 * puresize.h (CHECK_IMPURE): Use it.
973
c9628c79
MA
9742013-06-03 Michael Albinus <michael.albinus@gmx.de>
975
976 * Makefile.in (NOTIFY_OBJ): New variable.
977 (base_obj): Replace inotify.o by $(NOTIFY_OBJ).
978
979 * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
980 Call syms_of_gfilenotify.
981
982 * gfilenotify.c: New file.
983
984 * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
985 and Qfile_w32notify.
986 (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
987 HAVE_W32NOTIFY and USE_FILE_NOTIFY.
988
989 * lisp.h: Declare syms_of_gfilenotify.
990
991 * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
992
2f592f95
SM
9932013-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
994
995 Merge the specpdl and backtrace stacks. Make the structure of the
996 specpdl entries more obvious via a tagged union of structs.
997 * lisp.h (BITS_PER_PTRDIFF_T): New constant.
998 (enum specbind_tag): New enum.
999 (struct specbinding): Make it a tagged union of structs.
1000 Add a case for backtrace records.
1001 (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
1002 (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
1003 (backtrace_debug_on_exit): New accessors.
1004 (struct backtrace): Remove.
1005 (struct catchtag): Remove backlist field.
1006 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
1007 Move to eval.c.
1008 (Flocal_variable_p): Speed up the common case where the binding is
1009 already loaded.
1010 * eval.c (backtrace_list): Remove.
1011 (set_specpdl_symbol, set_specpdl_old_value): Remove.
1012 (set_backtrace_args, set_backtrace_nargs)
1013 (set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
1014 (backtrace_next): New functions.
1015 (Fdefvaralias, Fdefvar): Adjust to new specpdl format.
1016 (unwind_to_catch, internal_lisp_condition_case)
1017 (internal_condition_case, internal_condition_case_1)
1018 (internal_condition_case_2, internal_condition_case_n): Don't bother
1019 with backtrace_list any more.
1020 (Fsignal): Adjust to new backtrace format.
1021 (grow_specpdl): Move up.
1022 (record_in_backtrace): New function.
1023 (eval_sub, Ffuncall): Use it.
1024 (apply_lambda): Adjust to new backtrace format.
1025 (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
1026 data.c.
1027 (specbind): Adjust to new specpdl format. Simplify.
1028 (record_unwind_protect, unbind_to): Adjust to new specpdl format.
1029 (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
1030 backtrace format.
1031 (mark_backtrace): Remove.
1032 (mark_specpdl, get_backtrace, backtrace_top_function): New functions.
1033 * xdisp.c (redisplay_internal): Use record_in_backtrace.
1034 * alloc.c (Fgarbage_collect): Use record_in_backtrace.
1035 Use mark_specpdl.
1036 * profiler.c (record_backtrace): Use get_backtrace.
1037 (handle_profiler_signal): Use backtrace_top_function.
1038 * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
1039 accessor functions.
1040
c0342369
JD
10412013-06-02 Jan Djärv <jan.h.d@swipnet.se>
1042
1043 * process.h (catch_child_signal): Declare.
1044
1045 * process.c (catch_child_signal): New function.
1046 (init_process_emacs): Call it.
1047
1048 * nsterm.m: Include process.h if NS_IMPL_GNUSTEP.
1049 (ns_menu_bar_is_hidden, menu_will_open_state): Define only if
1050 NS_IMPL_COCOA.
1051 (x_set_cursor_type): Remove declaration.
1052 (ns_update_begin): Only use r and bp if NS_IMPL_COCOA.
1053 (ns_update_end, ns_focus, ns_unfocus): Remove GNUStep specific code.
1054 (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP.
1055 (ns_get_color): Use F suffix on float.
1056 (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat.
1057 (ns_get_rgb_color): Remove.
1058 (x_set_frame_alpha): Move view inside NS_IMPL_COCOA.
1059 (note_mouse_movement): x and y are CGFloat.
1060 (ns_draw_fringe_bitmap): Remove unused rowY.
1061 Change #if to COCOA && >= 10_6.
1062 (ns_draw_window_cursor): Remove unused overspill.
1063 (ns_draw_underwave): width and x are EamcsCGFloat.
1064 (ns_draw_box): thickness is CGFloat.
1065 (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6.
1066 (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread
1067 if not in main thread.
1068 (ns_get_pending_menu_title, ns_check_menu_open)
1069 (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5.
1070 (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD.
1071 (sendFromMainThread:): New method.
1072 (changeFont:): size is CGFloat.
1073 (keyDown:): Check for Delete when NS_IMPL_GNUSTEP.
1074 Disable warning about permanent text.
1075 (characterIndexForPoint:): Adjust return type depending on GNUStep
1076 version.
1077 (mouseDown:): delta is CGFloat.
1078 (updateFrameSize): Remove unised variable f.
1079 (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
1080 Cast float to EmacsCGFloat.
1081 (windowWillUseStandardFrame:defaultFrame:): Set maximized_height
1082 also to -1 when restoring.
1083 (windowDidExitFullScreen:): Put call to updateCollectionBehaviour
1084 inside NS_IMPL_COCOA.
1085 (toggleFullScreen:): Put call to toggleFullScreen inside
1086 NS_IMPL_COCOA. Cast float to EmacsCGFloat.
1087 (setPosition:portion:whole:): por is CGFloat.
1088 (getMouseMotionPart:window:x:y:): Add F suffix to float.
1089 (mouseDown:): Use CGFloat.
1090 (mouseDragged:): Remove unised variable edge.
1091 (EmacsDocument): Implement for NS_IMPL_GNUSTEP.
1092
1093 * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUStep when the size
1094 of CGFloat differs.
1095 (EmacsApp): New variable nextappdefined. Declare sendFromMainThread
1096 when NS_IMPL_GNUSTEP.
1097 (EmacsDocument): Declare when NS_IMPL_GNUSTEP.
1098 (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove.
1099 (EmacsToolbar): Add clearAll. Add tag argument to
1100 addDisplayItemWithImage.
1101 (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory.
1102
1103 * nsselect.m (ns_get_local_selection): Remove unused variable type.
1104
1105 * nsmenu.m (ns_update_menubar): Make static.
1106 (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA
1107 (fillWithWidgetValue:): Add cast to SEL for setAction.
1108 (addSubmenuWithTitle:forFrame:): Add cast to SEL for action.
1109 (update_frame_tool_bar): Update code for GNUStep.
1110 (clearAll): New method.
1111 (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag
4f405069 1112 argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP.
e7b41c4c 1113 Move identifierToItem setObject and activeIdentifiers addObject before
c0342369
JD
1114 call to insertItemWithItemIdentifier.
1115 (validateVisibleItems): Fix indentation.
1116 (toolbarAllowedItemIdentifiers:): Return activeIdentifiers.
1117 (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and
1118 UtilityWindow to aStyle, remove call to setStyleMask.
1119
1120 * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat.
1121
1122 * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor)
1123 (ns_charset_covers, ns_get_covering_families, nsfont_open):
1124 Use F suffix on floats.
1125 (ns_char_width): Returns CGFloat.
1126 (ns_ascii_average_width): w is CGFloat instead of float.
e7b41c4c 1127 (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to
c0342369
JD
1128 DPSxshow.
1129 (ns_glyph_metrics): CGFloat instead of float.
1130
a0eb10b3
JB
1131 * nsfns.m (x_set_foreground_color, x_set_background_color):
1132 Use EmacsCGFloat.
1133 (ns_implicitly_set_icon_type, Fx_create_frame): Make static,
1134 remove unused variables.
1135 (Fns_read_file_name): Keep track if panel is for save.
1136 Use ns_filename_from_panel/ns_directory_from_panel.
c0342369 1137 (Fns_list_services): delegate only used for COCOA.
a0eb10b3
JB
1138 (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUStep.
1139 Just return the input if GNUStep.
c0342369
JD
1140 (x_screen_planes): Remove.
1141 (Fxw_color_values): Use EmacsCGFloat
1142 (Fns_display_monitor_attributes_list): Only get screen number for
1143 Cocoa.
ef099a94 1144 (getDirectory, getFilename): Remove from EmacsOpenPanel and
c0342369
JD
1145 EmacsSavePanel.
1146 (EmacsOpenPanel:ok:): Use ns_filename_from_panel and
1147 ns_directory_from_panel.
1148
da9aff11
PE
11492013-06-01 Paul Eggert <eggert@cs.ucla.edu>
1150
1151 * process.c (handle_child_signal): Also use WCONTINUED.
1152 This is so that list-processes doesn't mistakenly list the process
1153 as stopped, when the process has actually been continued and is
1154 now running.
1155
0e64479a
PE
11562013-05-31 Paul Eggert <eggert@cs.ucla.edu>
1157
fc186a96
PE
1158 Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474).
1159 * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is
1160 not already configured.
1161
0e64479a
PE
1162 * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447).
1163
38b787fa
EZ
11642013-05-29 Eli Zaretskii <eliz@gnu.org>
1165
1166 * Makefile.in (mostlyclean): Remove *.res files.
1167
22513e52
SM
11682013-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
1169
1170 * fileio.c (Finsert_file_contents): Preserve undo info when reverting
1171 a buffer (bug#8447).
1172
6ef3db10
EZ
11732013-05-27 Eli Zaretskii <eliz@gnu.org>
1174
1175 * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a
1176 display vector, and we backtrack, handle the case that the
1177 previous character position is also displayed from a display
1178 vector or covered by a display string or image. (Bug#14476)
1179
6799bb26
JD
11802013-05-25 Jan Djärv <jan.h.d@swipnet.se>
1181
1182 * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
1183 (struct MonitorInfo, free_monitors): Remove.
1184 (x_make_monitor_attribute_list): Call make_monitor_attribute_list.
1185 (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list.
1186 (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
1187 Qframes, Qsource.
1188
1189 * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove.
1190 (struct MonitorInfo, free_monitors): Remove.
1191 (ns_screen_name): Make static.
1192 (ns_make_monitor_attribute_list): Call make_monitor_attribute_list.
1193 (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size,
1194 Qframes, Qsource.
1195
1196 * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
1197 (struct MonitorInfo): New struct.
1198 (free_monitors, make_monitor_attribute_list): Declare.
1199
22513e52
SM
1200 * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
1201 New Lisp_Object:s.
6799bb26
JD
1202 (free_monitors, make_monitor_attribute_list): New functions.
1203 (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes,
1204 Qsource.
1205
38cd43eb
XF
12062013-05-25 Xue Fuqiao <xfq.free@gmail.com>
1207
1208 * callproc.c (call_process): Refine the doc string. (Bug#14045)
1209
2af0948d
SM
12102013-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
1211
a7eb9b0f
SM
1212 * keyboard.c: Apply keyboard decoding only to events that come directly
1213 from the tty, not from unread-command-events (bug#14368).
1214 (read_event_from_main_queue): New function, extracted from read_char).
1215 (read_decoded_char): Remove.
1216 (read_decoded_event_from_main_queue): New function to replace it.
1217 (read_char): Use it.
1218 (read_key_sequence): Use read_char rather than read_decoded_char.
1219
2af0948d
SM
1220 * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
1221
1413e9a5
BR
12222013-05-22 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
1223
1224 * casetab.c (init_casetab_once): Fix last change (bug#14424).
1225
e6d2f155
KH
12262013-05-22 Kenichi Handa <handa@gnu.org>
1227
1228 The following changes are to fix the setting of
1229 buffer-file-coding-system on, for instance, C-x RET c unix RET
1230 _FILE_OF_DOS_EOL_TYPE_ RET.
1231
1232 * coding.h (struct coding_system): New member detected_utf8_chars.
1233
1234 * coding.c (detect_coding_utf_8): Count characters and check EOL
1235 format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if
1236 BOM is there.
1237 (setup_coding_system): Do not initialize coding->head_ascii.
1238 (check_ascii): Do not set coding->eol_seen but update it. Do not
1239 call adjust_coding_eol_type here.
1413e9a5
BR
1240 (detect_coding): Fix detection of BOM for utf-8 and utf-16.
1241 If the eol-type of CODING is already specified, adjust the eol type
e6d2f155
KH
1242 of the found coding-system.
1243 (decode_coding_gap): Cancel previous change. Utilize the
1244 character numbers counted by detect_coding_utf_8. Fix detection
1245 of BOM for utf-8.
1246
ab56a6f4 12472013-05-21 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
fc30d803
SM
1248
1249 * search.c (looking_at_1): Only set last_thing_searched if the match
1250 changed the match-data (bug#14281).
1251
ecc3c6ed
DA
12522013-05-21 Dmitry Antipov <dmantipov@yandex.ru>
1253
1254 * xdisp.c (reseat_at_previous_visible_line_start):
a0eb10b3 1255 Already declared in dispextern.h, so remove it here.
ecc3c6ed
DA
1256 (move_it_vertically_backward): Likewise.
1257
5ba8bf35
YM
12582013-05-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1259
1260 * xfns.c (check_x_display_info): Don't use XINT for terminal object.
d6635ba2 1261 (Fx_display_pixel_width, Fx_display_pixel_height)
fc30d803
SM
1262 (Fx_display_mm_width, Fx_display_mm_height):
1263 Mention `display-monitor-attributes-list' in docstrings.
5ba8bf35 1264
91e8418b 1265 * nsfns.m (ns_get_screen): Remove function. All uses removed.
a0eb10b3 1266 (check_ns_display_info): Sync with check_x_display_info in xfns.c.
91e8418b
YM
1267 (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
1268 (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height)
1269 (Fx_display_backing_store, Fx_display_visual_class)
1270 (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p)
1271 (Fx_display_grayscale_p, Fx_display_pixel_width)
1272 (Fx_display_pixel_height, Fx_display_planes)
1273 (Fx_display_color_cells): Sync args and docstrings with xfns.c.
1274 (Fx_display_screens): Don't confuse X11 screens with NS screens.
1275 (Fx_display_mm_width, Fx_display_mm_height)
1276 (Fx_display_pixel_width, Fx_display_pixel_width): Return width or
1277 height for all physical monitors as in X11.
1278
fc30d803
SM
1279 * nsterm.m (x_display_pixel_width, x_display_pixel_height):
1280 Return pixel width or height for all physical monitors as in X11.
91e8418b 1281
31ff141c
PE
12822013-05-18 Paul Eggert <eggert@cs.ucla.edu>
1283
1284 Port --enable-gcc-warnings to clang.
1285 * bytecode.c (exec_byte_code):
1286 * regex.c:
1287 Redo diagnostic pragmas to pacify clang, too.
1288 * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable.
1289 * editfns.c (Fencode_time):
1290 * fileio.c (file_accessible_directory_p):
1291 * font.c (font_unparse_xlfd):
1292 Use '&"string"[index]' instead of '"string" + (index)'.
1293 * undo.c (user_error): Remove; unused.
1294
df065a0b
EZ
12952013-05-16 Eli Zaretskii <eliz@gnu.org>
1296
04d360e7
EZ
1297 * insdel.c (insert_1_both): Document the arguments, instead of
1298 referring to insert_1, which no longer exists.
1299
5bb98290
EZ
1300 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
1301 some window, increment windows_or_buffers_changed, so that
1302 *Messages* display in that window is updated. (Bug#14408)
1303
df065a0b
EZ
1304 * w32.c: Include epaths.h.
1305 (init_environment): Use cmdproxy.exe without leading directories.
1306 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
1307 case.
1308 (gettimeofday): Adjust signature and return value to Posix
1309 expectations.
1310
1311 * unexw32.c (open_output_file): Delete the existing emacs.exe
1312 before creating it, to break the hard link to the versioned
1313 executable.
1314
1315 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
1316 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
1317 (FIRSTFILE_OBJ): New variables.
1318 (W32_RES): Rename to EMACSRES. All users changed.
1319 (base_obj): Use $(CM_OBJ).
1320 (ALLOBJS): Use $(FIRSTFILE_OBJ).
1321 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
1322 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
1323 $(W32_RES_LINK) before $(LIBES).
1324 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
1325
1aa8d505
SM
13262013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
1327
6e911150
SM
1328 * makefile.w32-in (DOC): Use just "DOC".
1329
1330 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
1331
1aa8d505
SM
1332 * process.c: Export default filters and sentinels to Elisp.
1333 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
1334 New constants.
1335 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
1336 (Fset_process_sentinel, Fformat_network_address):
1337 Default to them instead of nil.
1338 (server_accept_connection): Sentinels can't be nil any more.
1339 (read_and_dispose_of_process_output): New function, extracted from
1340 read_process_output.
1341 (read_process_output): Use it; filters can't be nil.
1342 (Finternal_default_process_filter): New function, extracted from
1343 read_process_output.
1344 (exec_sentinel_unwind): Remove function.
1345 (exec_sentinel): Don't zilch sentinel while running.
1346 (status_notify): Sentinels can't be nil.
1347 (Finternal_default_process_sentinel): New function extracted from
1348 status_notify.
1349 (setup_process_coding_systems): Default filter is not nil any more.
1350 (syms_of_process): Export new Elisp functions and initialize
1351 new constants.
1352 * lisp.h (make_lisp_proc): New function.
1353
5ac2eb34
SM
13542013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
1355
1356 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
1357
eda9c7d7
EZ
13582013-05-14 Eli Zaretskii <eliz@gnu.org>
1359
1360 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
5ac2eb34
SM
1361 unless we know that the window w is a leaf window.
1362 Another attempt at solving bug#14062.
eda9c7d7 1363
8fdeaad5
JD
13642013-05-14 Jan Djärv <jan.h.d@swipnet.se>
1365
1366 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
1367 fdesc (Bug#14375).
1368
44aa9ee6
PE
13692013-05-12 Paul Eggert <eggert@cs.ucla.edu>
1370
1371 * image.c (gif_load): Check that subimages fit (Bug#14345).
1372
759fd763
SM
13732013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
1374
1375 * lread.c (skip_dyn_eof): New function.
1376 (read1): Use it to skip the end of a file in response to #@00.
1377
1378 * doc.c (get_doc_string): Slightly relax the sanity checking.
1379
4465bfb4
JD
13802013-05-09 Jan Djärv <jan.h.d@swipnet.se>
1381
1382 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
1383 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
1384 (MonitorInfo): New struct.
1385 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
1386 (Fns_display_monitor_attributes_list): New functions.
1387 (display-usable-bounds): Remove.
1388 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
1389 Qsource.
1390
7583e2a0
PE
13912013-05-09 Paul Eggert <eggert@cs.ucla.edu>
1392
1393 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
1394 (GTK_CHECK_VERSION): New macro, if not already defined.
1395 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
1396 replaced by GTK_CHECK_VERSION.
1397
ad75d77e
PE
13982013-05-08 Paul Eggert <eggert@cs.ucla.edu>
1399
1400 * xterm.h (GTK_PREREQ): New macro.
1401 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
1402 to use this macro instead, for consistency and clarity.
1403
07525f77
EZ
14042013-05-08 Eli Zaretskii <eliz@gnu.org>
1405
1406 * xdisp.c (row_for_charpos_p): New function, with code of
1407 cursor_row_p, but accepts an additional argument CHARPOS instead
1408 of using a hardcoded PT.
1409 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
1410 (row_containing_pos): Call row_for_charpos_p instead of partially
1411 doing the same. Fixes cursor positioning under longlines-mode
1412 when longlines-show-effect includes more than one newline, when
1413 moving the cursor vertically up.
1414
d901fc8d
JB
14152013-05-08 Juanma Barranquero <lekktu@gmail.com>
1416
1417 * makefile.w32-in (ACL_H): New macro.
1418 ($(BLD)/fileio.$(O)): Update dependencies.
1419
f269bc61
PE
14202013-05-07 Paul Eggert <eggert@cs.ucla.edu>
1421
e7b41c4c 1422 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
ffdc270a
PE
1423 * Makefile.in (LIB_ACL): New macro.
1424 (LIBACL_LIBS): Remove.
1425 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
1426 * fileio.c: Include <acl.h>.
1427 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
1428 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
1429 !acl_errno_valid.
1430 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
1431 it ourselves.
1432
f269bc61
PE
1433 * unexelf.c: Don't assume ElfW (Half) fits in int.
1434 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
1435 when dealing with ElfW (Half) values, since they can exceed 2**31
1436 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
1437 (entry_address): Omit unused NUM arg. All uses changed.
1438
a261c53e
JL
14392013-05-07 Juri Linkov <juri@jurta.org>
1440
1441 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
1442 to the string converted from number with `Fnumber_to_string'.
1443 (Bug#14254)
1444
2b66427d
PE
14452013-05-07 Paul Eggert <eggert@cs.ucla.edu>
1446
1447 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
1448 This fixes a problem introduced by my previous change.
1449
15acfe41
GM
14502013-05-07 Glenn Morris <rgm@gnu.org>
1451
1452 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
1453
5ea03bf5
JD
14542013-05-07 Jan Djärv <jan.h.d@swipnet.se>
1455
1456 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
1457
e0c9d565
PE
14582013-05-07 Paul Eggert <eggert@cs.ucla.edu>
1459
1460 Static checking by GCC 4.8.0.
1461 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
1462 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
1463 (x_get_monitor_attributes_fallback)
1464 (x_get_monitor_attributes_xinerama)
1465 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
1466 Define only if USE_GTK.
1467 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
1468 (x_get_monitor_attributes_fallback): Omit unused locals.
1469 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
1470 Use double, not float, to avoid mixed-mode floating point arithmetic.
1471
4e3f9230
YM
14722013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1473 Jan Djärv <jan.h.d@swipnet.se>
1474
1475 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
1476 (XINERAMA_CFLAGS): New macros.
1477 (ALL_CFLAGS, LIBES): Use them.
1478
1479 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
1480 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
1481 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
1482 (syms_of_xfns): DEFSYM them.
1483 (struct MonitorInfo): New struct.
1484 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
1485 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
1486 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
1487 (x_get_monitor_attributes_xinerama): New functions.
1488 (Fx_display_monitor_attributes_list): New primitive.
1489 (syms_of_xfns): Defsubr it.
1490
1491 * xterm.h (x_display_info): Add Xatom_net_workarea and
1492 Xatom_net_current_desktop.
1493
1494 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
1495 and dpyinfo->Xatom_net_current_desktop.
1496
05839b6a
EZ
14972013-05-06 Eli Zaretskii <eliz@gnu.org>
1498
1499 * xdisp.c (pos_visible_p): Use the special code for finding the
1500 beginning of a display property or overlay for any "replacing"
1501 display property, not just for display strings. This solves
1502 incorrect reporting of position by posn-at-point. (Bug#14241)
1503
dc4a2ee0
PE
15042013-05-06 Paul Eggert <eggert@cs.ucla.edu>
1505
5ee94506
PE
1506 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
1507 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
1508 Verify that ElfW (Half) fits in int.
1509 (fatal): Use same signature as lisp.h.
1510 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
1511 configure and build with -DUNEXELF_DEBUG without worrying about
1512 other modules that use DEBUG.
1513 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
1514 possibly-wide integers now uses it instead of plain fprintf.
1515 (entry_address): New function, which avoids problems with 32-bit
1516 overflow on 64-bit hosts.
1517 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
1518 (round_up): Don't assume the remainder fits in int.
1519 (find_section): Use bool for boolean. Simplify debug code.
1520 (unexec): Don't assume file sizes fit in int or size_t.
1521 Omit unnecessary trailing newline in 'fatal' format.
1522 Use strerror rather than outputting decimal error number.
1523 Remove unused code when emacs is not defined;
1524 this file relies on Emacs now.
1525 Don't assume e_phnum and e_shnum are positive.
1526
dc4a2ee0
PE
1527 * regex.c: Fix problems when DEBUG is defined.
1528 (extract_number, extract_number_and_incr): Define regardless of
1529 whether DEBUG is defined; that's simpler and makes the code less
1530 likely to go stale in the normal case when DEBUG is not defined.
1531 Return int rather than taking an int * arg. All callers changed.
1532 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
1533 Remove, replacing with ...
1534 (DEBUG_PRINT): New macro. All callers changed.
1535 (DEBUG_COMPILES_ARGUMENTS): New macro.
1536 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
1537 (print_compiled_pattern, print_double_string) [DEBUG]:
1538 Use prototype rather than old-style definition.
1539 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
1540 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
1541 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
1542 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
1543 Don't assume ptrdiff_t, size_t, and long are the same width as int.
1544 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
1545 This matters only when DEBUG is defined.
1546
14c7ed05
EZ
15472013-05-05 Eli Zaretskii <eliz@gnu.org>
1548
1549 * xdisp.c (set_iterator_to_next): Set the
1550 ignore_overlay_strings_at_pos_p flag only if we are _really_
1551 iterating over an overlay string, as indicated by the
1552 current.overlay_string_index member. (Bug#14306)
1553
e6076b1b
JD
15542013-05-05 Jan Djärv <jan.h.d@swipnet.se>
1555
1556 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
1557 to where it is used, to avoid autorelease issues (Bug#14050).
1558
cbee2131
PE
15592013-05-05 Paul Eggert <eggert@cs.ucla.edu>
1560
1561 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
1562 * fileio.c (syms_of_fileio): Implement this.
1563 * filelock.c (create_lock_file): If symbolic links don't work, so
1564 we use a regular file as a lock file, do not fsync the lock file;
1565 it's not needed.
1566
30c7e542
SM
15672013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
1568
1569 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
1570 (syms_of_minibuf): Adjust accodingly.
1571 * lread.c (Fread):
1572 * callint.c (Fcall_interactively): Adjust calls accordingly.
1573
5bebd186
EZ
15742013-05-04 Eli Zaretskii <eliz@gnu.org>
1575
1576 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
30c7e542
SM
1577 w->contents is a buffer before computing everything else.
1578 Use parentheses to disambiguate last part of the condition.
5bebd186
EZ
1579
1580 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
1581 assertion violations. (Bug#14062)
1582
0fb0a4f3
DR
15832013-05-01 David Reitter <david.reitter@gmail.com>
1584
1585 * nsfns.m (ns_tooltip): Initialize.
1586
9e63b4a5
EZ
15872013-04-28 Eli Zaretskii <eliz@gnu.org>
1588
1589 * coding.c (decode_coding_gap): Don't remove the character before
1590 a newline unless it's a CR character. (Bug#14287)
1591
ad60824e
DN
15922013-04-28 Dan Nicolaescu <dann@gnu.org>
1593
1594 * dispextern.h (struct face): Move enum face_underline_type
1595 earlier so that bitfields can be in the same word.
1596
edbdcec0
JD
15972013-04-28 Jan Djärv <jan.h.d@swipnet.se>
1598
1599 * nsfns.m (handlePanelKeys): New function.
1600 (EmacsOpenPanel:performKeyEquivalent:)
1601 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
1602 arrows/function/control and copy/paste keys (Bug#14296).
1603
0208ede7
JL
16042013-04-27 Juri Linkov <juri@jurta.org>
1605
1606 * callint.c (Fcall_interactively): Call `Qread_number' for
1607 interactive code letter `n' instead of using duplicate code.
1608 (Bug#14254)
1609
b8dd59f7
PE
16102013-04-27 Paul Eggert <eggert@cs.ucla.edu>
1611
1612 * systime.h (make_timeval): Declare as 'const'.
1613
8bd722db
KH
16142013-04-27 Kenichi Handa <handa@gnu.org>
1615
1616 * font.c (font_open_entity): Always open a font of manageable
1617 size.
1618
13d0e56f 16192013-04-26 Paul Eggert <eggert@cs.ucla.edu>
cbee2131 1620
f780d632
PE
1621 Port better to AIX (Bug#14258).
1622 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
1623 to pacify AIX xlc.
1624
ec509856
KH
16252013-04-24 Kenichi Handa <handa@gnu.org>
1626
1627 * coding.c (decode_coding_iso_2022): When an invalid escape
1628 sequence is encountered, reset the invocation and designation
1629 status to the safest one.
1630
84fc48e5
PE
16312013-04-22 Paul Eggert <eggert@cs.ucla.edu>
1632
1633 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
1634 Without this fix, "make distclean" leaves stamp-h1 behind.
1635
806bda47
EC
16362013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
1637
1638 * w32fns.c (w32_fullscreen_rect): New function to compute the
1639 window rectangle for the given fullscreen mode.
1640 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
1641 longer tunes the window size. This keeps the window's edges flush
1642 with the screen and allows the taskbar to hide itself in fullboth.
1643
1644 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
1645 window decorations and uses the entire screen.
1646
1647 * w32term.h (w32_fullscreen_rect) Add prototype.
1648 (struct w32_output): Replace normal_width, normal_height,
1649 normal_top, and normal_left members with a single normal_placement
1650 struct.
1651 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
1652 Remove macros.
1653 (FRAME_NORMAL_PLACEMENT): New macro.
1654
9cc2810b
JB
16552013-04-16 Juanma Barranquero <lekktu@gmail.com>
1656
1657 * minibuf.c (Ftest_completion): Silence compiler warning.
1658
fd16b54c
EZ
16592013-04-15 Eli Zaretskii <eliz@gnu.org>
1660
1661 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
5fbcd237 1662 bug#14062.
fd16b54c
EZ
1663
1664 * frame.h (WINDOW_FRAME): Protect macro and its argument with
1665 parentheses.
1666
1667 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
1668 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
1669 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
1670 parentheses where appropriate.
1671
9e3379a0
PE
16722013-04-14 Paul Eggert <eggert@cs.ucla.edu>
1673
1674 * keyboard.c (timer_start_idle): Remove no-longer-used local.
1675
ddd6b685
EZ
16762013-04-14 Eli Zaretskii <eliz@gnu.org>
1677
1678 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
1679 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
1680 Mention in the doc string that setting these variables takes
1681 effect only after a call to set-window-buffer. (Bug#14200)
1682
29b79ba1
EZ
16832013-04-13 Eli Zaretskii <eliz@gnu.org>
1684
1685 * indent.c (Fvertical_motion): Don't consider display strings on
1686 overlay strings as display strings on the buffer position we
1687 started from. This prevents vertical cursor motion from jumping
1688 more than one line when there's an overlay string with a display
1689 property at end of line.
1690 Reported by Karl Chen <Karl.Chen@quarl.org> in
1691 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
1692
562c6ee9
SM
16932013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
1694
1695 * window.c (select_window): `record_buffer' even if window is
1696 already selected (bug#14191).
1697
fcc1fe85
EZ
16982013-04-11 Eli Zaretskii <eliz@gnu.org>
1699
1700 * window.c (Fwindow_end): Test more flags, including the buffer's
1701 last_overlay_modified flag, to determine whether the window's
1702 display is really up-to-date. Prevents the function from
1703 returning a stale value. (Bug#14170)
1704 (Fwindow_line_height): Fix the test for up-to-date-ness of the
1705 current matrix.
1706
f009190a
EZ
17072013-04-10 Eli Zaretskii <eliz@gnu.org>
1708
1709 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
562c6ee9
SM
1710 garbaged only if it is not already the top frame on its TTY.
1711 This prevents flickering due to constant redrawing of TTY frames when
f009190a
EZ
1712 there are GUI frames open in the same session. (Bug#13864)
1713
78ce603d
SM
17142013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
1715
1716 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
1717 of marking the idle timers directly.
1718
a8036e40
SM
17192013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
1720
1721 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
1722 tables (bug#14054).
1723
7ffe7ef6
SM
17242013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
1725
1726 * window.c (select_window): Don't record_buffer while the invariant is
1727 temporarily broken (bug#14161).
1728
1729 * fns.c (Fdelq): Don't assume !NILP => CONSP.
1730
7d9f6883
EZ
17312013-04-07 Eli Zaretskii <eliz@gnu.org>
1732
1733 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
1734
5406cfd9
RF
17352013-04-07 Romain Francoise <romain@orebokech.com>
1736
1737 Ignore additional platform-specific ACL errors (Bug#13702).
1738 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
1739 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
1740
95c0e83b
JD
17412013-03-31 Jan Djärv <jan.h.d@swipnet.se>
1742
1743 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
1744 f->output_data.ns.
1745
876da980
PE
17462013-04-07 Paul Eggert <eggert@cs.ucla.edu>
1747
1748 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
1749 This bug was introduced by my 2013-02-25 change that simplified
1750 data_start configuration. Without this change, on GNU/Linux
1751 an Emacs configured with --enable-profiling fails immediately
1752 due to a profiler signal.
1753 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
1754 with these flags. On platforms where special flags are needed
1755 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
1756 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
1757 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
1758
7452b7bd
DA
17592013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
1760
1761 Get rid of some platform-specific functions examining window
1762 system and its capabilities. This is a partial rework of the
1763 2013-04-05 change.
1764 * lisp.h (have_menus_p): Remove prototype. This function is
1765 replaced with platform-independent window_system_available.
1766 (check_window_system): Move to...
1767 * frame.h (decode_window_system_frame, window_system_available):
1768 ...here, add new prototypes.
1769 * frame.c (window_system_available, decode_window_system_frame):
1770 New functions.
1771 (check_window_system): Platform-independent now.
1772 * xterm.h (x_in_use): Remove declaration.
1773 (check_x_frame):
1774 * w32term.h (check_x_frame):
1775 * nsterm.h (check_x_frame): Remove prototypes. This function
1776 is replaced with platform-independent decode_window_system_frame.
1777 * msdos.c (have_menus_p): Remove.
1778 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
1779 Remove platform-specific functions. Use check_window_system,
1780 decode_window_system_frame and check_ns_display_info where
1781 appropriate. Minor style and comment tweaks.
1782 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
1783 (check_x_frame): Likewise.
1784 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
1785 Likewise.
1786 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
1787 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
1788 * xmenu.c, xselect.c: All related users changed.
1789
251e9147
KH
17902013-04-03 Kenichi Handa <handa@gnu.org>
1791
1792 The following changes is to optimize the code for reading UTF-8
1793 files.
1794
562c6ee9 1795 * coding.c (check_ascii): Rename from detect_ascii. Return value
251e9147
KH
1796 changed. Check EOL format. Do not call adjust_coding_eol_type
1797 here.
1798 (check_utf_8): New function.
1799 (adjust_coding_eol_type): Do nothing if already adjusted.
1800 (detect_coding): Compare the return value of check_ascii with
1801 coding->src_bytes. Call adjust_coding_eol_type if necessary.
1802 (decode_coding_gap): Optimize for valid UTF-8.
1803
8bc369d4
KH
18042013-03-21 Kenichi Handa <handa@gnu.org>
1805
1806 * coding.c (syms_of_coding): Cancel previous change.
1807
1808 * insdel.c (insert_from_gap): Fix previous change.
1809
73931ad1
DA
18102013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
1811
1812 Consistently use platform-specific function to detect window system.
1813 * lisp.h (check_window_system): New prototype. This function is
1814 going to replace check_x, check_w32 and check_ns.
1815 (have_menus_p): Mention msdos.c in comment.
1816 * fontset.c (check_window_system_func): Remove. Adjust all users.
1817 * fontset.h (check_window_system_func): Remove prototype.
1818 * nsterm.h (check_ns):
1819 * xterm.h (check_x):
1820 * w32term.h (check_w32): Likewise.
1821 * menu.c (Fx_popup_menu): Use check_window_system.
1822 * msdos.c (check_window_system): Define for MS-DOS.
1823 * nsfns.m (check_window_system): Define for NS. Adjust all users.
1824 * w32fns.c (check_window_system): Likewise for MS-Windows.
1825 * xfns.c (check_window_system): Likewise for X.
1826 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
1827 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
1828
7216e43b
PE
18292013-04-02 Paul Eggert <eggert@cs.ucla.edu>
1830
1831 Prefer < to > in range checks such as 0 <= i && i < N.
1832 This makes it easier to visualize quantities on a number line.
1833 This patch doesn't apply to all such range checks,
1834 only to the range checks affected by the 2013-03-24 change.
1835 This patch reverts most of the 2013-03-24 change.
1836 * alloc.c (xpalloc, Fgarbage_collect):
1837 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
1838 * character.c (string_escape_byte8):
1839 * charset.c (read_hex):
1840 * data.c (cons_to_unsigned):
1841 * dispnew.c (update_frame_1):
1842 * doc.c (Fsubstitute_command_keys):
1843 * doprnt.c (doprnt):
1844 * editfns.c (hi_time, decode_time_components):
1845 * fileio.c (file_offset):
1846 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
1847 * font.c (font_intern_prop):
1848 * frame.c (x_set_alpha):
1849 * gtkutil.c (get_utf8_string):
1850 * indent.c (check_display_width):
1851 * keymap.c (Fkey_description):
1852 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
1853 * lread.c (read1):
1854 * minibuf.c (read_minibuf_noninteractive):
1855 * process.c (wait_reading_process_output):
1856 * search.c (Freplace_match):
1857 * window.c (get_phys_cursor_glyph):
1858 * xdisp.c (redisplay_internal):
1859 * xsmfns.c (smc_save_yourself_CB):
1860 Prefer < to > for range checks.
1861 * dispnew.c (sit_for): Don't mishandle NaNs.
1862 This fixes a bug introduced in the 2013-03-24 change.
1863 * editfns.c (decode_time_components): Don't hoist comparison.
1864 This fixes another bug introduced in the 2013-03-24 change.
1865
92759988
DA
18662013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
1867
1868 * frame.h (struct frame): Drop scroll_bottom_vpos
1869 member becaue all real users are dead long ago.
1870 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
1871 * xdisp.c (redisplay_internal): Adjust user.
1872
9a1971bb
GM
18732013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
1874
f38ab167
JD
1875 * nsmenu.m (showAtX:Y:for:): setLevel to
1876 NSPopUpMenuWindowLevel (Bug#13998).
1877
6d01f1fe
JD
18782013-03-30 Jan Djärv <jan.h.d@swipnet.se>
1879
1880 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
1881 (ns_check_pending_open_menu): Declare.
1882
1883 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
1884 (x_activate_menubar): Update the menu with title that matches
1885 ns_get_pending_menu_title, and call
1886 ns_check_pending_openmenu (Bug#12698).
1887 (menuWillOpen:): New method.
1888 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
1889
1890 * nsterm.m (menu_will_open_state, menu_mouse_point)
1891 (menu_pending_title): New varaibles.
1892 (ns_get_pending_menu_title, ns_check_menu_open)
1893 (ns_check_pending_open_menu): New functions.
1894
781f4782
DA
18952013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
1896
1897 * indent.c (current_column_bol_cache): Remove leftover which is not
1898 used in Fmove_to_column any more.
1899 (current_column, scan_for_column): Adjust users.
1900 * keyboard.c (last_point_position_buffer, last_point_position_window):
1901 Remove leftovers which are not used for recording undo any more.
1902 (command_loop_1, syms_of_keyboard): Adjust users.
1903 * xdisp.c (last_max_ascent): Remove leftover which is not used in
1904 redisplay_window any more.
1905 (move_it_to): Adjust user.
1906
1921c31b
JB
19072013-03-29 Juanma Barranquero <lekktu@gmail.com>
1908
1909 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
1910 Update dependencies.
1911
717b8bcd
SM
19122013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
1913
1914 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
1915 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
1916 forward references.
1917
e74aeda8
DA
19182013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
1919
1920 * window.h (struct window): Replace hchild, vchild and buffer slots
1921 with the only contents slot. This is possible because each valid
1922 window may have either the child window (in vertical or horizontal
1923 combination) or buffer to display (for the leaf window). Using that,
1924 a lof of operations to traverse and/or change window hierarchies may
1925 be simplified. New member horizontal is used to distinguish between
1926 horizontal and vertical combinations of internal windows.
1927 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
1928 (WINDOW_VERTICAL_COMBINATION_P): New macros.
1929 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
1930 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
1931 Use contents slot, not buffer, where appropriate.
1932 (wset_combination): New function.
1933 (wset_buffer): Add eassert.
1934 (Fframe_first_window): Simplify the loop reaching first window.
1935 (Fwindow_buffer): Use WINDOW_LEAF_P.
1936 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
1937 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
1938 (unshow_buffer): Convert initial debugging check to eassert.
1939 (replace_window, recombine_windows, Fdelete_other_windows_internal)
1940 (make_parent_window, window_resize_check, window_resize_apply)
1941 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
1942 (Fset_window_configuration, delete_all_child_windows, save_window_save):
1943 Adjust to match struct window changes.
1944 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
1945 (mark_window_cursors_off, count_windows, get_leaf_windows)
1946 (foreach_window_1): Simplify the loop.
1947 * alloc.c (mark_object): Do not check for the leaf window because
1948 internal windows has no glyph matrices anyway.
1949 * dispnew.c (clear_window_matrices, showing_window_margins_p)
1950 (allocate_matrices_for_window_redisplay, fake_current_matrices)
1951 (allocate_matrices_for_frame_redisplay, free_window_matrices)
1952 (build_frame_matrix_from_window_tree, mirror_make_current)
1953 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
1954 (update_window_tree, set_window_update_flags): Simplify the loop.
1955 (sync_window_with_frame_matrix_rows): Enforce live window.
1956 Use contents slot, not buffer, where appropriate.
1957 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
1958 and WINDOW_HORIZONTAL_COMBINATION_P.
1959 (make_frame_visible_1): Simplify the loop.
1960 Use contents slot, not buffer, where appropriate.
1961 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
1962 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
1963 (expose_window_tree): Likewise.
1964 Use contents slot, not buffer, where appropriate.
1965 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
1966 to avoid deleted windows. Use contents slot instead of buffer.
1967 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
1968 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
1969 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
1970 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
1971
121ab1cd
EZ
19722013-03-28 Eli Zaretskii <eliz@gnu.org>
1973
ef454cf7
EZ
1974 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
1975 identify the reasons for assertion violations in bug#14062 and
1976 similar ones.
21e930f8
EZ
1977 (Fx_show_tip): Fix compilation error under
1978 "--enable-check-lisp-object-type". (Bug#14073)
ef454cf7 1979
121ab1cd
EZ
1980 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
1981 Reported by <rzl24ozi@gmail.com>.
1982
5c89ca24
DA
19832013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
1984
1985 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
1986 start marker...
562c6ee9
SM
1987 (unwind_with_echo_area_buffer): ...to restore it here.
1988 This is needed to ensure that...
5c89ca24
DA
1989 (redisplay_window): ...both window markers are valid here,
1990 which is verified by eassert.
1991 * editfns.c (save_excursion_save): Do not assume that
1992 selected_window always displays the buffer.
c7f53895
DA
1993 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
1994 Fix comment.
5c89ca24 1995
f557c1b1
SM
19962013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
1997
1998 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
1999 the upcase table.
2000
40693bba 20012013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
2002
2003 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
2004
c86f791f
EZ
20052013-03-27 Eli Zaretskii <eliz@gnu.org>
2006
2007 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
2008 since MinGW's w32api headers do. This avoids compiler warnings.
2009
2010 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
2011 if already defined.
2012
c6e72e17
EZ
20132013-03-26 Eli Zaretskii <eliz@gnu.org>
2014
2015 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
2016
54e95010
JD
20172013-03-26 Jan Djärv <jan.h.d@swipnet.se>
2018
2019 * gtkutil.c (style_changed_cb): Check if frame is live and an
2020 X frame (Bug#14038).
2021
b88b62de
EZ
20222013-03-26 Eli Zaretskii <eliz@gnu.org>
2023
a18d7de6
EZ
2024 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
2025 Define only for _WIN32_WINNT less than 0x0500.
da9dcbb8
EZ
2026 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
2027 MinGW64.
8f5e14c8
EZ
2028 Move inclusion of time.h before sys/time.h, so that MinGW64 could
2029 see its own definitions of 'struct timeval' and 'struct timezone'.
a18d7de6 2030
b88b62de
EZ
2031 Fix incompatibilities between MinGW.org and MinGW64 headers.
2032 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
2033
2034 * w32.c (REPARSE_DATA_BUFFER): Guard with
2035 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
2036
c074e458
JD
20372013-03-25 Jan Djärv <jan.h.d@swipnet.se>
2038
2039 * xterm.c: Include X11/XKBlib.h
2040 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
2041
908589fd
AS
20422013-03-24 Andreas Schwab <schwab@linux-m68k.org>
2043
2044 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
2045 written backwards.
2046 * blockinput.h (input_blocked_p): Likewise.
2047 * bytecode.c (exec_byte_code): Likewise.
2048 * callproc.c (call_process_kill, call_process_cleanup)
2049 (Fcall_process): Likewise.
2050 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
2051 (Fccl_execute_on_string): Likewise.
2052 * character.c (string_escape_byte8): Likewise.
2053 * charset.c (read_hex): Likewise.
2054 * cm.c (calccost): Likewise.
2055 * data.c (cons_to_unsigned): Likewise.
2056 * dired.c (directory_files_internal, file_name_completion):
2057 Likewise.
2058 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
2059 (sit_for): Likewise.
2060 * doc.c (Fsubstitute_command_keys): Likewise.
2061 * doprnt.c (doprnt): Likewise.
2062 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
2063 * emacsgtkfixed.c: Likewise.
2064 * fileio.c (file_offset, Fwrite_region): Likewise.
2065 * floatfns.c (Fexpt, fmod_float): Likewise.
2066 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
2067 Likewise.
2068 * font.c (font_intern_prop): Likewise.
2069 * frame.c (x_set_alpha): Likewise.
2070 * gtkutil.c (get_utf8_string): Likewise.
2071 * indent.c (check_display_width): Likewise.
2072 * intervals.c (create_root_interval, rotate_right, rotate_left)
2073 (split_interval_right, split_interval_left)
2074 (adjust_intervals_for_insertion, delete_node)
2075 (interval_deletion_adjustment, adjust_intervals_for_deletion)
2076 (merge_interval_right, merge_interval_left, copy_intervals)
2077 (set_intervals_multibyte_1): Likewise.
2078 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
2079 * keymap.c (Fkey_description): Likewise.
2080 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
2081 * lread.c (openp, read_integer, read1, string_to_number):
2082 Likewise.
2083 * menu.c (ensure_menu_items): Likewise.
2084 * minibuf.c (read_minibuf_noninteractive): Likewise.
2085 * print.c (printchar, strout): Likewise.
2086 * process.c (create_process, Faccept_process_output)
2087 (wait_reading_process_output, read_process_output, send_process)
2088 (wait_reading_process_output): Likewise.
2089 * profiler.c (make_log, handle_profiler_signal): Likewise.
2090 * regex.c (re_exec): Likewise.
2091 * regex.h: Likewise.
2092 * search.c (looking_at_1, Freplace_match): Likewise.
2093 * sysdep.c (get_child_status, procfs_ttyname)
2094 (procfs_get_total_memory): Likewise.
2095 * systime.h (EMACS_TIME_VALID_P): Likewise.
2096 * term.c (dissociate_if_controlling_tty): Likewise.
2097 * window.c (get_phys_cursor_glyph): Likewise.
2098 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
2099 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
2100 Likewise.
2101 * xfns.c (Fx_window_property): Likewise.
2102 * xmenu.c (set_frame_menubar): Likewise.
2103 * xselect.c (x_get_window_property, x_handle_dnd_message):
2104 Likewise.
2105 * xsmfns.c (smc_save_yourself_CB): Likewise.
2106 * xterm.c (x_scroll_bar_set_handle): Likewise.
2107
2bf7d27a
DA
21082013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
2109
2110 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
2111 to be optional or nil. Adjust comment and convert it to docstring.
2112 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
2113 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
2114
a9ebfa0b
PE
21152013-03-24 Paul Eggert <eggert@cs.ucla.edu>
2116
2117 Static checking by GCC 4.8-20130319.
2118 * image.c (gif_load): Assume pass < 3 to pacify GCC.
2119 * process.c (Fset_process_datagram_address)
2120 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
2121 * xdisp.c (get_char_face_and_encoding):
2122 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
2123 (get_glyph_face_and_encoding): Prepare face before possibly using it.
2124 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
2125
4f3576ee
KB
21262013-03-24 Ken Brown <kbrown@cornell.edu>
2127
789b5e9a
KB
2128 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
2129 fix compilation on 64-bit Cygwin, where underscores are not
2130 automatically prepended.
2131
4f3576ee
KB
2132 * w32term.c (w32_initialize): Silence compiler warning.
2133
b5b7745f
EZ
21342013-03-23 Eli Zaretskii <eliz@gnu.org>
2135
cdc0d0bd
EZ
2136 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
2137 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
562c6ee9
SM
2138 variables, to save and restore frame dimensions.
2139 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
2140 after returning from a 'fullscreen' configuration.
2141 use SendMessage instead of PostMessage to send the SC_RESTORE message,
cdc0d0bd
EZ
2142 to avoid races between the main thread and the input thread.
2143
2144 * w32term.h (struct w32_output): New members normal_width,
2145 normal_height, normal_top, normal_left, and prev_fsmode.
2146 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
2147 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
2148 members of a frame.
2149
b5b7745f
EZ
2150 * w32term.c (w32fullscreen_hook): Record last value of the frame's
2151 'fullscreen' parameter. Always record previous width and height
2152 of the frame, except when switching out of maximized modes, so
2153 that they could be restored correctly, instead of resetting to the
2154 default frame dimensions. Send SC_RESTORE command to the frame,
2155 unless we are going to send SC_MAXIMIZE, to restore the frame
2156 resize hints in the mouse pointer shown by the window manager.
2157 (Bug#14032)
2158
2159 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
2160
2161 * lisp.h (get_frame_param): Adjust conditions for prototype
2162 declaration.
2163
a3454eed
KB
21642013-03-22 Ken Brown <kbrown@cornell.edu>
2165
2166 * unexcw.c: Drop unneeded inclusion of w32common.h.
2167 (report_sheap_usage): Declare.
2168 (read_exe_header): Add magic numbers for x86_64.
2169 (fixup_executable): Fix printf format specifier for unsigned long
2170 argument.
2171
5a49b79c
DA
21722013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
2173
2174 * frame.h (struct frame): Put menu_bar_window under #ifdef
2175 because this member is not needed when X toolkit is in use.
2176 (fset_menu_bar_window):
2177 * dispnew.c (clear_current_matrices, clear_desired_matrices)
2178 (free_glyphs, update_frame):
2179 * xdisp.c (expose_frame): Likewise.
2180 (display_menu_bar): Likewise. Remove redundant eassert.
2181 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
2182 toolkit is in use.
2183
d6723bf7
PE
21842013-03-21 Paul Eggert <eggert@cs.ucla.edu>
2185
7b1123d8
PE
2186 Use functions and constants to manipulate Lisp_Save_Value objects.
2187 This replaces code that used macros and strings and token-pasting.
2188 The change makes the C source a bit easier to follow,
2189 and shrinks the Emacs executable a bit.
2190 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
2191 (make_save_value): Change 1st arg from string to enum. All callers
2192 changed.
2193 (INTX): Remove.
2194 (mark_object): Use if, not #if, for GC_MARK_STACK.
2195 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
2196 (XSAVE_OBJECT): Now functions, not macros.
2197 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
2198 the constant was never used.
2199 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
2200 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
2201 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
2202 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
2203 New constants.
2204 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
2205 type3 with a single member save_type. All uses changed.
2206 (save_type, set_save_pointer, set_save_integer): New functions.
2207 * print.c (PRINTX): Remove.
2208
d6723bf7
PE
2209 * alloc.c: Remove redundant static declarations.
2210
5f24fa51
DA
22112013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
2212
2213 * window.h (struct window): Convert left_col, top_line, total_lines
2214 and total_cols from Lisp_Objects to integers. Adjust comments.
2215 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
2216 Remove.
2217 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
2218 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
2219 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
2220 Adjust users where appropriate.
2221
42143acd
DA
22222013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
2223
2224 * frame.h (struct frame): Drop resx and resy because the same data is
2225 available from window system-specific output context. Adjust users.
562c6ee9
SM
2226 (default_pixels_per_inch_x, default_pixels_per_inch_y):
2227 New functions to provide defaults when no window system available.
42143acd 2228 (FRAME_RES_X, FRAME_RES_Y): New macros.
562c6ee9 2229 (NUMVAL): Move from xdisp.c.
42143acd
DA
2230 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
2231 (Ffont_face_attributes, Fopen_font):
2232 * image.c (gs_load):
2233 * w32font.c (fill_in_logfont):
2234 * xdisp.c (calc_pixel_width_or_height):
2235 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
2236 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
2237
c0a17406
KH
22382013-03-20 Kenichi Handa <handa@gnu.org>
2239
2240 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
2241 to 1 (temporary workaround until a bug related to ASCII
2242 optimization is fixed).
2243
095d384d
DA
22442013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
2245
2246 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
2247 Signal error if window is not internal. Adjust docstring.
2248 (delete_all_child_windows): Use combination_limit to save the buffer.
2249 (Fset_window_configuration): Adjust accordingly.
cf4bb06d
DA
2250 * print.c (syms_of_print): Initialize debugging output not here...
2251 (init_print_once): ...but in a new function here.
2252 * lisp.h (init_print_once): Add prototype.
2253 * emacs.c (main): Add call to init_print_once. Adjust comments.
095d384d 2254
748fa866
DA
22552013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
2256
2257 * window.c (window_resize_check, window_resize_apply)
2258 (window_from_coordinates, recombine_windows, set_window_buffer)
2259 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
2260 (Fsplit_window_internal, Fdelete_window_internal)
2261 (freeze_window_starts): Use bool for booleans.
2262 * window.h (window_frame_coordinates, resize_frame_windows)
2263 (freeze_window_starts, set_window_buffer): Adjust prototypes.
2264
81519fd2
SM
22652013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
2266
2267 * dispnew.c (bitch_at_user): Use `user-error'.
2268
6db423a9
KB
22692013-03-17 Ken Brown <kbrown@cornell.edu>
2270
2271 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
2272 as return type of image_background. (Bug#13981)
2273 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
2274
8f2906f5
JD
22752013-03-16 Jan Djärv <jan.h.d@swipnet.se>
2276
960ce480 2277 * nsterm.m (updateFrameSize:): Change resize increments if needed.
6615748a 2278 (ns_select): Don't return with result uninitialized.
960ce480 2279
8f2906f5
JD
2280 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
2281 and getDirectory.
2282
81519fd2
SM
2283 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
2284 New functions.
8f2906f5
JD
2285 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
2286 directories. If filename is nil, get directory name (Bug#13932).
2287 Use getFilename and getDirectory.
2288 (getFilename, getDirectory): New methods for EmacsSavePanel and
2289 EmacsOpenPanel.
2290 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
2291
cded56c1
PE
22922013-03-15 Paul Eggert <eggert@cs.ucla.edu>
2293
2294 * coding.c (decode_coding_gap): Fix typo caught by static checking.
2295
251e9147 22962013-03-15 Kenichi Handa <handa@gnu.org>
8a44e6d1
KH
2297
2298 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
2299 (adjust_after_replace): Make it back to static. Delete the third
2300 arg text_at_gap_tail. Cancel the code for handling it.
2301
2302 * coding.h (struct coding_system): New member eol_seen.
2303
2304 * coding.c (detect_ascii): New function.
2305 (detect_coding): Set coding->head_ascii and coding->eol_seen only
2306 when the source bytes are actually scanned. On detecting for
2307 coding_category_utf_8_auto, call detect_ascii instead of scanning
2308 source bytes directly.
2309 (produce_chars): Call insert_from_gap with the new arg 0.
2310 (encode_coding): Likewise.
2311 (decode_coding_gap): Control ASCII optimization by the variable
2312 disable_ascii_optimization instead of #ifndef .. #endif.
2313 Deccode EOL format according to coding->eol_seen.
2314 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
2315 variable.
2316
8a44e6d1
KH
2317 * lisp.h (adjust_after_replace): Cancel externing it.
2318 (insert_from_gap): Adjust prototype.
2319
5f795e34
EZ
23202013-03-15 Eli Zaretskii <eliz@gnu.org>
2321
2322 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
2323 FULLSCREEN_MAXIMIZED. (Bug#13935)
2324
f258b4be
DA
23252013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
2326
2327 * region-cache.c (find_cache_boundary, move_cache_gap)
2328 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
2329 Simplify debugging check and convert to eassert. Adjust comment.
2330 (pp_cache): Put under ENABLE_CHECKING.
2331
a5cc4dde
EZ
23322013-03-14 Eli Zaretskii <eliz@gnu.org>
2333
2334 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
2335 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
2336 and WM_ACTIVATEAPP.
2337 (w32fullscreen_hook): If the frame is visible, reset
2338 f->want_fullscreen flag after changing the frame size. If the
2339 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
2340 (Bug#13953)
2341
3fc5e44a
DC
23422013-03-13 Daniel Colascione <dancol@dancol.org>
2343
2344 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
2345 too so that these builds can use Cygwin's file conversion
2346 functions. (We've been building and linking cygw32.o all along
2347 and just not using it.)
2348
47d7532e
PE
23492013-03-13 Paul Eggert <eggert@cs.ucla.edu>
2350
2351 File synchronization fixes (Bug#13944).
2352 * Makefile.in (LIB_FDATASYNC): New macro.
2353 (LIBES): Use it.
2354 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
2355 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
2356 Don't worry about HAVE_FSYNC, since a substitute fsync is
2357 available if the system lacks one.
2358 (Fwrite_regin): Retry fsync if interrupted.
2359
c7ffccaf
EZ
23602013-03-13 Eli Zaretskii <eliz@gnu.org>
2361
4e2df81d 2362 * w32term.c (w32_read_socket): If the Emacs frame is being
c7ffccaf
EZ
2363 activated, call w32fullscreen_hook, to make sure the new frame
2364 dimensions are in effect. (Bug#13937)
2365
8a7debc1
DA
23662013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
2367
2368 * xdisp.c (init_iterator): Simplify because both character and byte
2369 positions are either specified or -1. Add eassert. Adjust comment.
ffcd945e
DA
2370 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
2371 character and byte positions can be obtained from marker.
8a7debc1 2372
7fd8c501
PE
23732013-03-13 Paul Eggert <eggert@cs.ucla.edu>
2374
d9df6f40
PE
2375 Static checking by Sun C 5.12.
2376 * alloc.c (buffer_memory_full) [REL_ALLOC]:
2377 * bytecode.c (exec_byte_code):
2378 * dispnew.c (init_display):
2379 * eval.c (error):
2380 * fileio.c (Fsubstitute_in_file_name):
2381 * keyboard.c (Fevent_convert_list):
2382 * keymap.c (Fsingle_key_description):
2383 * term.c (maybe_fatal, fatal):
2384 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
2385 * xsmfns.c (Fhandle_save_session):
2386 Omit unreachable code.
2387 * keymap.c (map_keymap_char_table_item): Cast void * to
2388 a function pointer type; the C Standard requires this.
2389
7fd8c501
PE
2390 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
2391 Include <sys/param.h> unconditionally, as that works elsewhere and
2392 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
2393 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
2394 and FreeBSD now.
2395
a020afb9 2396See ChangeLog.12 for earlier changes.
aac0c6e3
MR
2397
2398;; Local Variables:
2399;; coding: utf-8
aac0c6e3
MR
2400;; End:
2401
ab422c4d 2402 Copyright (C) 2011-2013 Free Software Foundation, Inc.
aac0c6e3
MR
2403
2404 This file is part of GNU Emacs.
2405
2406 GNU Emacs is free software: you can redistribute it and/or modify
2407 it under the terms of the GNU General Public License as published by
2408 the Free Software Foundation, either version 3 of the License, or
2409 (at your option) any later version.
2410
2411 GNU Emacs is distributed in the hope that it will be useful,
2412 but WITHOUT ANY WARRANTY; without even the implied warranty of
2413 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2414 GNU General Public License for more details.
2415
2416 You should have received a copy of the GNU General Public License
2417 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.