aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorEli Zaretskii2013-03-28 20:13:59 +0200
committerEli Zaretskii2013-03-28 20:13:59 +0200
commitd76bf86f438d4f5f9fe493ab76f02ffc78f3ae2e (patch)
tree04fa8bc7bd2058a316a7ee30f8741d25bfd0b060 /src/ChangeLog
parent2ef26ceb192c7683754cf0b4aa3087f501254332 (diff)
parente74aeda863cd6896e06e92586f87b45d63d67d15 (diff)
downloademacs-d76bf86f438d4f5f9fe493ab76f02ffc78f3ae2e.tar.gz
emacs-d76bf86f438d4f5f9fe493ab76f02ffc78f3ae2e.zip
Merge from trunk and resolve conflicts.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog3179
1 files changed, 3169 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 32a14ef9e62..77338e6c46f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,3162 @@
12013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
2
3 * window.h (struct window): Replace hchild, vchild and buffer slots
4 with the only contents slot. This is possible because each valid
5 window may have either the child window (in vertical or horizontal
6 combination) or buffer to display (for the leaf window). Using that,
7 a lof of operations to traverse and/or change window hierarchies may
8 be simplified. New member horizontal is used to distinguish between
9 horizontal and vertical combinations of internal windows.
10 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
11 (WINDOW_VERTICAL_COMBINATION_P): New macros.
12 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
13 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
14 Use contents slot, not buffer, where appropriate.
15 (wset_combination): New function.
16 (wset_buffer): Add eassert.
17 (Fframe_first_window): Simplify the loop reaching first window.
18 (Fwindow_buffer): Use WINDOW_LEAF_P.
19 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
20 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
21 (unshow_buffer): Convert initial debugging check to eassert.
22 (replace_window, recombine_windows, Fdelete_other_windows_internal)
23 (make_parent_window, window_resize_check, window_resize_apply)
24 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
25 (Fset_window_configuration, delete_all_child_windows, save_window_save):
26 Adjust to match struct window changes.
27 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
28 (mark_window_cursors_off, count_windows, get_leaf_windows)
29 (foreach_window_1): Simplify the loop.
30 * alloc.c (mark_object): Do not check for the leaf window because
31 internal windows has no glyph matrices anyway.
32 * dispnew.c (clear_window_matrices, showing_window_margins_p)
33 (allocate_matrices_for_window_redisplay, fake_current_matrices)
34 (allocate_matrices_for_frame_redisplay, free_window_matrices)
35 (build_frame_matrix_from_window_tree, mirror_make_current)
36 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
37 (update_window_tree, set_window_update_flags): Simplify the loop.
38 (sync_window_with_frame_matrix_rows): Enforce live window.
39 Use contents slot, not buffer, where appropriate.
40 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
41 and WINDOW_HORIZONTAL_COMBINATION_P.
42 (make_frame_visible_1): Simplify the loop.
43 Use contents slot, not buffer, where appropriate.
44 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
45 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
46 (expose_window_tree): Likewise.
47 Use contents slot, not buffer, where appropriate.
48 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
49 to avoid deleted windows. Use contents slot instead of buffer.
50 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
51 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
52 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
53 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
54
552013-03-28 Eli Zaretskii <eliz@gnu.org>
56
57 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
58 identify the reasons for assertion violations in bug#14062 and
59 similar ones.
60 (Fx_show_tip): Fix compilation error under
61 "--enable-check-lisp-object-type". (Bug#14073)
62
63 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
64 Reported by <rzl24ozi@gmail.com>.
65
662013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
67
68 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
69 start marker...
70 (unwind_with_echo_area_buffer): ...to restore it here. This
71 is needed to ensure that...
72 (redisplay_window): ...both window markers are valid here,
73 which is verified by eassert.
74 * editfns.c (save_excursion_save): Do not assume that
75 selected_window always displays the buffer.
76 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
77 Fix comment.
78
792013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
80
81 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
82 the upcase table.
83
842013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
85
86 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
87
882013-03-27 Eli Zaretskii <eliz@gnu.org>
89
90 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
91 since MinGW's w32api headers do. This avoids compiler warnings.
92
93 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
94 if already defined.
95
962013-03-26 Eli Zaretskii <eliz@gnu.org>
97
98 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
99
1002013-03-26 Jan Djärv <jan.h.d@swipnet.se>
101
102 * gtkutil.c (style_changed_cb): Check if frame is live and an
103 X frame (Bug#14038).
104
1052013-03-26 Eli Zaretskii <eliz@gnu.org>
106
107 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
108 Define only for _WIN32_WINNT less than 0x0500.
109 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
110 MinGW64.
111 Move inclusion of time.h before sys/time.h, so that MinGW64 could
112 see its own definitions of 'struct timeval' and 'struct timezone'.
113
114 Fix incompatibilities between MinGW.org and MinGW64 headers.
115 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
116
117 * w32.c (REPARSE_DATA_BUFFER): Guard with
118 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
119
1202013-03-25 Jan Djärv <jan.h.d@swipnet.se>
121
122 * xterm.c: Include X11/XKBlib.h
123 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
124
1252013-03-24 Andreas Schwab <schwab@linux-m68k.org>
126
127 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
128 written backwards.
129 * blockinput.h (input_blocked_p): Likewise.
130 * bytecode.c (exec_byte_code): Likewise.
131 * callproc.c (call_process_kill, call_process_cleanup)
132 (Fcall_process): Likewise.
133 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
134 (Fccl_execute_on_string): Likewise.
135 * character.c (string_escape_byte8): Likewise.
136 * charset.c (read_hex): Likewise.
137 * cm.c (calccost): Likewise.
138 * data.c (cons_to_unsigned): Likewise.
139 * dired.c (directory_files_internal, file_name_completion):
140 Likewise.
141 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
142 (sit_for): Likewise.
143 * doc.c (Fsubstitute_command_keys): Likewise.
144 * doprnt.c (doprnt): Likewise.
145 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
146 * emacsgtkfixed.c: Likewise.
147 * fileio.c (file_offset, Fwrite_region): Likewise.
148 * floatfns.c (Fexpt, fmod_float): Likewise.
149 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
150 Likewise.
151 * font.c (font_intern_prop): Likewise.
152 * frame.c (x_set_alpha): Likewise.
153 * gtkutil.c (get_utf8_string): Likewise.
154 * indent.c (check_display_width): Likewise.
155 * intervals.c (create_root_interval, rotate_right, rotate_left)
156 (split_interval_right, split_interval_left)
157 (adjust_intervals_for_insertion, delete_node)
158 (interval_deletion_adjustment, adjust_intervals_for_deletion)
159 (merge_interval_right, merge_interval_left, copy_intervals)
160 (set_intervals_multibyte_1): Likewise.
161 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
162 * keymap.c (Fkey_description): Likewise.
163 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
164 * lread.c (openp, read_integer, read1, string_to_number):
165 Likewise.
166 * menu.c (ensure_menu_items): Likewise.
167 * minibuf.c (read_minibuf_noninteractive): Likewise.
168 * print.c (printchar, strout): Likewise.
169 * process.c (create_process, Faccept_process_output)
170 (wait_reading_process_output, read_process_output, send_process)
171 (wait_reading_process_output): Likewise.
172 * profiler.c (make_log, handle_profiler_signal): Likewise.
173 * regex.c (re_exec): Likewise.
174 * regex.h: Likewise.
175 * search.c (looking_at_1, Freplace_match): Likewise.
176 * sysdep.c (get_child_status, procfs_ttyname)
177 (procfs_get_total_memory): Likewise.
178 * systime.h (EMACS_TIME_VALID_P): Likewise.
179 * term.c (dissociate_if_controlling_tty): Likewise.
180 * window.c (get_phys_cursor_glyph): Likewise.
181 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
182 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
183 Likewise.
184 * xfns.c (Fx_window_property): Likewise.
185 * xmenu.c (set_frame_menubar): Likewise.
186 * xselect.c (x_get_window_property, x_handle_dnd_message):
187 Likewise.
188 * xsmfns.c (smc_save_yourself_CB): Likewise.
189 * xterm.c (x_scroll_bar_set_handle): Likewise.
190
1912013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
192
193 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
194 to be optional or nil. Adjust comment and convert it to docstring.
195 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
196 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
197
1982013-03-24 Paul Eggert <eggert@cs.ucla.edu>
199
200 Static checking by GCC 4.8-20130319.
201 * image.c (gif_load): Assume pass < 3 to pacify GCC.
202 * process.c (Fset_process_datagram_address)
203 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
204 * xdisp.c (get_char_face_and_encoding):
205 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
206 (get_glyph_face_and_encoding): Prepare face before possibly using it.
207 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
208
2092013-03-24 Ken Brown <kbrown@cornell.edu>
210
211 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
212 fix compilation on 64-bit Cygwin, where underscores are not
213 automatically prepended.
214
215 * w32term.c (w32_initialize): Silence compiler warning.
216
2172013-03-23 Eli Zaretskii <eliz@gnu.org>
218
219 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
220 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
221 variables, to save and restore frame dimensions. Use
222 FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
223 after returning from a 'fullscreen' configuration. use
224 SendMessage instead of PostMessage to send the SC_RESTORE message,
225 to avoid races between the main thread and the input thread.
226
227 * w32term.h (struct w32_output): New members normal_width,
228 normal_height, normal_top, normal_left, and prev_fsmode.
229 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
230 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
231 members of a frame.
232
233 * w32term.c (w32fullscreen_hook): Record last value of the frame's
234 'fullscreen' parameter. Always record previous width and height
235 of the frame, except when switching out of maximized modes, so
236 that they could be restored correctly, instead of resetting to the
237 default frame dimensions. Send SC_RESTORE command to the frame,
238 unless we are going to send SC_MAXIMIZE, to restore the frame
239 resize hints in the mouse pointer shown by the window manager.
240 (Bug#14032)
241
242 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
243
244 * lisp.h (get_frame_param): Adjust conditions for prototype
245 declaration.
246
2472013-03-22 Ken Brown <kbrown@cornell.edu>
248
249 * unexcw.c: Drop unneeded inclusion of w32common.h.
250 (report_sheap_usage): Declare.
251 (read_exe_header): Add magic numbers for x86_64.
252 (fixup_executable): Fix printf format specifier for unsigned long
253 argument.
254
2552013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
256
257 * frame.h (struct frame): Put menu_bar_window under #ifdef
258 because this member is not needed when X toolkit is in use.
259 (fset_menu_bar_window):
260 * dispnew.c (clear_current_matrices, clear_desired_matrices)
261 (free_glyphs, update_frame):
262 * xdisp.c (expose_frame): Likewise.
263 (display_menu_bar): Likewise. Remove redundant eassert.
264 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
265 toolkit is in use.
266
2672013-03-21 Paul Eggert <eggert@cs.ucla.edu>
268
269 Use functions and constants to manipulate Lisp_Save_Value objects.
270 This replaces code that used macros and strings and token-pasting.
271 The change makes the C source a bit easier to follow,
272 and shrinks the Emacs executable a bit.
273 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
274 (make_save_value): Change 1st arg from string to enum. All callers
275 changed.
276 (INTX): Remove.
277 (mark_object): Use if, not #if, for GC_MARK_STACK.
278 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
279 (XSAVE_OBJECT): Now functions, not macros.
280 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
281 the constant was never used.
282 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
283 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
284 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
285 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
286 New constants.
287 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
288 type3 with a single member save_type. All uses changed.
289 (save_type, set_save_pointer, set_save_integer): New functions.
290 * print.c (PRINTX): Remove.
291
292 * alloc.c: Remove redundant static declarations.
293
2942013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
295
296 * window.h (struct window): Convert left_col, top_line, total_lines
297 and total_cols from Lisp_Objects to integers. Adjust comments.
298 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
299 Remove.
300 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
301 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
302 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
303 Adjust users where appropriate.
304
3052013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
306
307 * frame.h (struct frame): Drop resx and resy because the same data is
308 available from window system-specific output context. Adjust users.
309 (default_pixels_per_inch_x, default_pixels_per_inch_y): New
310 functions to provide defaults when no window system available.
311 (FRAME_RES_X, FRAME_RES_Y): New macros.
312 (NUMVAL): Moved from xdisp.c.
313 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
314 (Ffont_face_attributes, Fopen_font):
315 * image.c (gs_load):
316 * w32font.c (fill_in_logfont):
317 * xdisp.c (calc_pixel_width_or_height):
318 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
319 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
320
3212013-03-20 Kenichi Handa <handa@gnu.org>
322
323 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
324 to 1 (temporary workaround until a bug related to ASCII
325 optimization is fixed).
326
3272013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
328
329 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
330 Signal error if window is not internal. Adjust docstring.
331 (delete_all_child_windows): Use combination_limit to save the buffer.
332 (Fset_window_configuration): Adjust accordingly.
333 * print.c (syms_of_print): Initialize debugging output not here...
334 (init_print_once): ...but in a new function here.
335 * lisp.h (init_print_once): Add prototype.
336 * emacs.c (main): Add call to init_print_once. Adjust comments.
337
3382013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
339
340 * window.c (window_resize_check, window_resize_apply)
341 (window_from_coordinates, recombine_windows, set_window_buffer)
342 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
343 (Fsplit_window_internal, Fdelete_window_internal)
344 (freeze_window_starts): Use bool for booleans.
345 * window.h (window_frame_coordinates, resize_frame_windows)
346 (freeze_window_starts, set_window_buffer): Adjust prototypes.
347
3482013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
349
350 * dispnew.c (bitch_at_user): Use `user-error'.
351
3522013-03-17 Ken Brown <kbrown@cornell.edu>
353
354 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
355 as return type of image_background. (Bug#13981)
356 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
357
3582013-03-16 Jan Djärv <jan.h.d@swipnet.se>
359
360 * nsterm.m (updateFrameSize:): Change resize increments if needed.
361 (ns_select): Don't return with result uninitialized.
362
363 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
364 and getDirectory.
365
366 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
367 New functions.
368 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
369 directories. If filename is nil, get directory name (Bug#13932).
370 Use getFilename and getDirectory.
371 (getFilename, getDirectory): New methods for EmacsSavePanel and
372 EmacsOpenPanel.
373 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
374
3752013-03-15 Paul Eggert <eggert@cs.ucla.edu>
376
377 * coding.c (decode_coding_gap): Fix typo caught by static checking.
378
3792013-03-15 handa <handa@gnu.org>
380
381 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
382 (adjust_after_replace): Make it back to static. Delete the third
383 arg text_at_gap_tail. Cancel the code for handling it.
384
385 * coding.h (struct coding_system): New member eol_seen.
386
387 * coding.c (detect_ascii): New function.
388 (detect_coding): Set coding->head_ascii and coding->eol_seen only
389 when the source bytes are actually scanned. On detecting for
390 coding_category_utf_8_auto, call detect_ascii instead of scanning
391 source bytes directly.
392 (produce_chars): Call insert_from_gap with the new arg 0.
393 (encode_coding): Likewise.
394 (decode_coding_gap): Control ASCII optimization by the variable
395 disable_ascii_optimization instead of #ifndef .. #endif.
396 Deccode EOL format according to coding->eol_seen.
397 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
398 variable.
399
400 * lisp.h (adjust_after_replace): Cancel externing it.
401 (insert_from_gap): Adjust prototype.
402
4032013-03-15 Eli Zaretskii <eliz@gnu.org>
404
405 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
406 FULLSCREEN_MAXIMIZED. (Bug#13935)
407
4082013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
409
410 * region-cache.c (find_cache_boundary, move_cache_gap)
411 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
412 Simplify debugging check and convert to eassert. Adjust comment.
413 (pp_cache): Put under ENABLE_CHECKING.
414
4152013-03-14 Eli Zaretskii <eliz@gnu.org>
416
417 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
418 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
419 and WM_ACTIVATEAPP.
420 (w32fullscreen_hook): If the frame is visible, reset
421 f->want_fullscreen flag after changing the frame size. If the
422 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
423 (Bug#13953)
424
4252013-03-13 Daniel Colascione <dancol@dancol.org>
426
427 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
428 too so that these builds can use Cygwin's file conversion
429 functions. (We've been building and linking cygw32.o all along
430 and just not using it.)
431
4322013-03-13 Paul Eggert <eggert@cs.ucla.edu>
433
434 File synchronization fixes (Bug#13944).
435 * Makefile.in (LIB_FDATASYNC): New macro.
436 (LIBES): Use it.
437 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
438 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
439 Don't worry about HAVE_FSYNC, since a substitute fsync is
440 available if the system lacks one.
441 (Fwrite_regin): Retry fsync if interrupted.
442
4432013-03-13 Eli Zaretskii <eliz@gnu.org>
444
445 * w32term.c (w32_read_socket): If the Emacs frame is being
446 activated, call w32fullscreen_hook, to make sure the new frame
447 dimensions are in effect. (Bug#13937)
448
4492013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
450
451 * xdisp.c (init_iterator): Simplify because both character and byte
452 positions are either specified or -1. Add eassert. Adjust comment.
453 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
454 character and byte positions can be obtained from marker.
455
4562013-03-13 Paul Eggert <eggert@cs.ucla.edu>
457
458 Static checking by Sun C 5.12.
459 * alloc.c (buffer_memory_full) [REL_ALLOC]:
460 * bytecode.c (exec_byte_code):
461 * dispnew.c (init_display):
462 * eval.c (error):
463 * fileio.c (Fsubstitute_in_file_name):
464 * keyboard.c (Fevent_convert_list):
465 * keymap.c (Fsingle_key_description):
466 * term.c (maybe_fatal, fatal):
467 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
468 * xsmfns.c (Fhandle_save_session):
469 Omit unreachable code.
470 * keymap.c (map_keymap_char_table_item): Cast void * to
471 a function pointer type; the C Standard requires this.
472
473 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
474 Include <sys/param.h> unconditionally, as that works elsewhere and
475 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
476 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
477 and FreeBSD now.
478
4792013-03-11 Paul Eggert <eggert@cs.ucla.edu>
480
481 * insdel.c (adjust_after_replace): Use bool for boolean.
482
4832013-03-11 Stefan Monnier <monnier@iro.umontreal.ca>
484
485 * keyboard.c: Move keyboard decoding to read_key_sequence.
486 (decode_keyboard_code): Remove.
487 (tty_read_avail_input): Don't try to decode input.
488 (read_decoded_char): New function.
489 (read_key_sequence): Use it.
490
4912013-03-10 Daniel Colascione <dancol@dancol.org>
492
493 * w32term.h (GUISTR, GUI_ENCODE_FILE, GUI_ENCODE_SYSTEM, GUI_FN)
494 (GUI_SDATA, guichar_t): Macros to abstract out differences between
495 NTGUI_UNICODE and !NTGUI_UNICODE builds, some moved out of
496 w32fns.c.
497
498 * w32term.c (construct_drag_n_drop): Use the above macros to make
499 drag-and-drop work for non-ASCII filenames in cygw32 builds.
500
501 * w32fns.c (x_set_name, x_set_title): Use the above macros to
502 properly display non-ASCII frame titles in cygw32 builds.
503
504 * w32fns.c (Fw32_shell_execute): Use the above macros to properly
505 call ShellExecute in cygw32 builds.
506
507 * w32fn.c (Fx_file_dialog): Use the above macros to simplify the
508 common file dialog code.
509
510 * w32fns.c (Ffile_system_info): Remove from cygw32 builds, which
511 can just use du like other systems.
512
513 * coding.c (from_unicode_buffer): Declare.
514 * coding.c (from_unicode_buffer): Implement.
515
5162013-03-10 Stefan Monnier <monnier@iro.umontreal.ca>
517
518 * lread.c: Minor cleanup.
519 (FROM_FILE_P): New macro.
520 (skip_dyn_bytes, unreadchar, read1): Use it.
521 (read_list): Consolidate duplicated code.
522
523 * bytecode.c (struct byte_stack): Remove `constants' when unused.
524
5252013-03-10 Eli Zaretskii <eliz@gnu.org>
526
527 * xdisp.c (display_tool_bar_line, redisplay_tool_bar)
528 (redisplay_internal, set_cursor_from_row, try_window)
529 (try_window_id, dump_glyph_row, extend_face_to_end_of_line)
530 (display_line, notice_overwritten_cursor)
531 (mouse_face_from_buffer_pos, note_mouse_highlight):
532 Use MATRIX_ROW_DISPLAYS_TEXT_P.
533 (note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
534 (mouse_face_from_string_pos, fast_find_string_pos):
535 Use MATRIX_ROW_VPOS.
536
537 * xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
538
539 * w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
540
541 * xdisp.c (try_cursor_movement): Use MATRIX_ROW and
542 MATRIX_MODE_LINE_ROW.
543
544 * dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
545
5462013-03-10 handa <handa@gnu.org>
547
548 * lisp.h (adjust_after_replace): Extern it.
549
550 * coding.c (detect_coding): Cound the heading ASCII bytes in the
551 case of detection for coding_category_utf_8_auto.
552 (decode_coding_gap) [not CODING_DISABLE_ASCII_OPTIMIZATION]:
553 Skip decoding if all bytes are ASCII.
554
555 * insdel.c (adjust_after_replace): Make it public. New arg
556 text_at_gap_tail.
557 (adjust_after_insert): Call adjust_after_replace with the new arg
558 value 0.
559
5602013-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
561
562 * keyboard.h (EVENT_START, EVENT_END, POSN_WINDOW, POSN_POSN)
563 (POSN_WINDOW_POSN, POSN_TIMESTAMP): Be careful since events may come
564 from Elisp via unread-command-events.
565
566 * keyboard.c (access_keymap_keyremap): Accept nil return value from
567 functions to mean "no change".
568
5692013-03-08 Paul Eggert <eggert@cs.ucla.edu>
570
571 region-cache.c, scroll.c, search.c: Use bool for booleans.
572 * lisp.h (compile_pattern):
573 * scroll.c (do_scrolling, do_direct_scrolling):
574 * search.c (struct regexp_cache, compile_pattern_1)
575 (compile_pattern, string_match_1, search_command)
576 (trivial_regexp_p, search_buffer, Freplace_match, match_limit)
577 (search_regs_saved, Fregexp_quote):
578 Use bool for boolean.
579 * region-cache.c (region_cache_forward, region_cache_backward):
580 Fix comments to match code: these functions return int, not boolean.
581
5822013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
583
584 * search.c (find_newline): Accept start and end byte positions
585 as arguments and allow -1 if not known.
586 (find_newline_no_quit): Likewise for start position.
587 * lisp.h (find_newline, find_newline_no_quit): Adjust prototype.
588 * bidi.c (bidi_find_paragraph_start): Pass byte position to
589 find_newline_no_quit, thus eliminating CHAR_TO_BYTE.
590 * editfns.c (Fconstrain_to_field): Break long line.
591 Adjust call to find_newline.
592 * indent.c (vmotion): Adjust calls to find_newline_no_quit.
593 Use DEC_BOTH to start next search from the previous buffer
594 position, where appropriate.
595 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
596 (get_visually_first_element, move_it_vertically_backward): Likewise.
597 Obtain byte position from the display iterator, where appropriate.
598
5992013-03-08 Paul Eggert <eggert@cs.ucla.edu>
600
601 print.c, process.c: Use bool for booleans.
602 * lisp.h (wait_reading_process_output):
603 * print.c (print_output_debug_flag, PRINTDECLARE, printchar)
604 (strout, debug_output_compilation_hack, float_to_string, print)
605 (print_object):
606 * process.c (kbd_is_on_hold, inhibit_sentinels, process_output_skip)
607 (decode_status, status_message, create_process, create_pty)
608 (Fmake_network_process, Fnetwork_interface_info)
609 (wait_reading_process_output, read_process_output)
610 (write_queue_push, write_queue_pop, process_send_signal)
611 (handle_child_signal, keyboard_bit_set, kbd_on_hold_p):
612 * process.h (struct Lisp_Process, inhibit_sentinels, kbd_on_hold_p):
613 Use bool for booleans.
614 * process.c (Fnetwork_interface_list): Remove unused local.
615 (connect_counter): Now EMACS_INT, not int.
616
6172013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
618
619 * bidi.c (bidi_fetch_char): Swap first and second arguments
620 to match other functions accepting character and byte positions.
621 Adjust comment.
622 (bidi_resolve_explicit_1, bidi_level_of_next_char): Adjust users.
623 (bidi_paragraph_init): Likewise. Use DEC_BOTH which is faster
624 when you need just to move to the previous buffer position.
625 * xdisp.c (Fcurrent_bidi_paragraph_direction): Use DEC_BOTH.
626
6272013-03-07 Eli Zaretskii <eliz@gnu.org>
628
629 * .gdbinit (prowlims): Display the enabled_p flag of the row.
630
6312013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
632
633 Avoid character to byte conversions in motion subroutines.
634 * indent.h (compute_motion, vmotion): Add byte position argument.
635 * indent.c (compute_motion): Use it and avoid CHAR_TO_BYTE.
636 Add eassert.
637 (Fcompute_motion): Break long line. Adjust call to compute_motion.
638 Use list5 for return value.
639 (vmotion): Use byte position argument and avoid call to CHAR_TO_BYTE.
640 Adjust comments, style and calls to compute_motion.
641 (Fvertical_motion): Adjust call to vmotion.
642 * window.c (Fdelete_other_windows_internal): Record window start
643 byte position and adjust call to vmotion.
644 (window_scroll_line_based): Likewise with call to compute_motion.
645 Use SET_PT_BOTH.
646 (Frecenter): Adjust calls to vmotion.
647
6482013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
649
650 * lisp.h (list2i, list3i): New functions.
651 (list4i): Move from window.c and make LISP_INLINE.
652 * editfns.c (make_lisp_time):
653 * fns.c (Flocale_info):
654 * keyboard.c (parse_modifiers):
655 * xterm.c (x_ewmh_activate_frame): Use list2i.
656 * instel.c (signal_after_change):
657 * nsfns.m (Fx_server_version, Fxw_color_values):
658 * w32fns.c (Fxw_color_values, Fx_server_version):
659 * xfns.c (Fxw_color_values, Fx_server_version): Use list3i.
660 * fileio.c (Fvisited_file_modtime):
661 * nsfns.m (Fns_display_usable_bounds):
662 * w32.c (ltime): Use list4i.
663
6642013-03-06 Eli Zaretskii <eliz@gnu.org>
665
666 * search.c (find_newline_no_quit): Rename from find_next_newline.
667 Add commentary.
668
669 * lisp.h (find_newline_no_quit): Rename prototype.
670
671 * xdisp.c (back_to_previous_line_start)
672 (forward_to_next_line_start, get_visually_first_element)
673 (move_it_vertically_backward): Callers of find_newline_no_quit changed.
674 * indent.c (vmotion): Callers of find_newline_no_quit changed.
675 * bidi.c (bidi_find_paragraph_start): Callers of
676 find_newline_no_quit changed.
677
678 * msdos.c: Change encoding to cp850. (Bug#13879)
679 (fr_keyboard, it_keyboard, dk_keyboard): Update keyboard layouts.
680
6812013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
682
683 Coding system support cleanup and minor refactoring.
684 * coding.h (enum coding_result_code): Remove
685 CODING_RESULT_INCONSISTENT_EOL and CODING_RESULT_INSUFFICIENT_MEM.
686 (toplevel): Remove unused CODING_MODE_INHIBIT_INCONSISTENT_EOL.
687 (CODING_MODE_LAST_BLOCK, CODING_MODE_SELECTIVE_DISPLAY)
688 (CODING_MODE_DIRECTION, CODING_MODE_FIXED_DESTINATION)
689 (CODING_MODE_SAFE_ENCODING): Rearrange bit values.
690 (decode_coding_region, encode_coding_region, decode_coding_string):
691 Remove unused compatibility macros.
692 * coding.c (Qinconsistent_eol, Qinsufficient_memory): Remove.
693 (record_conversion_result): Adjust user.
694 (syms_of_coding): Likewise.
695 (ALLOC_CONVERSION_WORK_AREA): Use SAFE_ALLOCA.
696 (decode_coding, encode_coding): Add USE_SAFE_ALLOCA and SAFE_FREE.
697 (decode_coding_object): Simplify since xrealloc never returns NULL.
698 Add eassert.
699
7002013-03-06 Paul Eggert <eggert@cs.ucla.edu>
701
702 Fix a build failure on OpenBSD 4.x and MirBSD (Bug#13881).
703 * sysdep.c (list_system_processes)
704 [BSD_SYSTEM && !DARWIN_OS && !__FreeBSD__]:
705 Make it a stub in this case; otherwise the build might fail,
706 and this code hasn't been tested on such hosts anyway.
707 Problem reported by Nelson H. F. Beebe in
708 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00021.html>
709 and analyzed by Jérémie Courrèges-Anglas in
710 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00062.html>.
711
7122013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
713
714 * lisp.h (find_next_newline_no_quit): Rename to find_next_newline.
715 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
716 (get_visually_first_element, move_it_vertically_backward): Ajust users.
717 * bidi.c (bidi_find_paragraph_start): Likewise.
718 * indent.c (vmotion): Likewise.
719
7202013-03-05 Paul Eggert <eggert@cs.ucla.edu>
721
722 FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
723 * filelock.c: Include <c-ctype.h>.
724 (MAX_LFINFO): New top-level constant.
725 (lock_info_type): Remove members pid, boot_time. Add members at,
726 dot, colon. Change user member to be the entire buffer, not a
727 pointer. This allows us to handle the case where a foreign
728 pid or boot time exceeds the local range. All uses changed.
729 (LINKS_MIGHT_NOT_WORK): New constant.
730 (FREE_LOCK_INFO): Remove, as the pieces no longer need freeing.
731 (defined_WINDOWSNT): Remove.
732 (MAKE_LOCK_NAME, file_in_lock_file_name):
733 Always use .#FILE (not .#-FILE) for the file lock,
734 even if it is a regular file.
735 (rename_lock_file): New function.
736 (create_lock_file): Use it.
737 (create_lock_file, read_lock_data):
738 Prefer a symbolic link for the lock file, falling back on a
739 regular file if symlinks don't work. Do not try to create
740 symlinks on MS-Windows, due to security hassles. Stick with
741 POSIXish functions (open, read, write, close, fchmod, readlink, symlink,
742 link, rename, unlink, mkstemp) when creating locks, as a GNUish
743 host may be using a Windowsish file system, and cannot use
744 MS-Windows-only system calls. Fall back on mktemp if mkstemp
745 doesn't work. Don't fail merely because of a symlink-contents
746 length limit in the current file system; fall back on regular
747 files. Increase the symlink contents length limit to 8 KiB, this
748 should be big enough for any real use and doesn't crunch the
749 stack.
750 (create_lock_file, lock_file_1, read_lock_data):
751 Simplify allocation of lock file buffers now that they fit in 8 KiB.
752 (lock_file_1): Return error number, not bool. All callers changed.
753 (ELOOP): New macro, if not already defined.
754 (read_lock_data): Return size of lock file contents, not Lisp object.
755 All callers changed. Handle a race condition if some other process
756 replaces a regular-file lock with a symlink lock or vice versa,
757 while we're trying to read the lock.
758 (current_lock_owner): Parse contents more carefully, to help avoid
759 confusing a regular-file lock with some other application's use
760 of the file. Check for lock file contents being too long, or
761 not parsing correctly.
762 (current_lock_owner, lock_file):
763 Allow foreign pid and boot times that exceed the local range.
764 (current_lock_owner, lock_if_free, lock_file):
765 Simplify allocation of lock file contents.
766 * w32.c (sys_rename_replace): New function, containing most of
767 the contents of the old sys_rename.
768 (sys_rename): Use it.
769 (fchmod): New dummy function.
770 * w32.h (sys_rename_replace, fchmod): New decls.
771
7722013-03-05 Eli Zaretskii <eliz@gnu.org>
773
774 * bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
775 bidi_count_bytes, as the callers now arrange for bidi_it->charpos
776 to be in sync with bidi_it->bytepos. Suggested by Dmitry Antipov
777 <dmantipov@yandex.ru>.
778
7792013-03-05 Dmitry Antipov <dmantipov@yandex.ru>
780
781 * composite.c (get_composition_id, fill_gstring_header):
782 Use make_uninit_vector where appropriate.
783 * font.c (Ffont_get_glyphs, build_style_table): Likewise.
784 * xselect.c (clean_local_selection_data): Likewise.
785
7862013-03-04 Paul Eggert <eggert@cs.ucla.edu>
787
788 Fix misuse of ImageMagick that caused core dump (Bug#13846).
789 * image.c (imagemagick_load_image): Calculate height and width
790 after flattening the image, not before.
791
7922013-03-04 Dmitry Antipov <dmantipov@yandex.ru>
793
794 * font.c (Ffont_get_glyphs): Use convenient LGLYPH_NEW.
795 * ftfont.c (ftfont_shape_by_flt): Likewise.
796 * w32uniscribe.c (uniscribe_shape): Likewise.
797
7982013-03-02 Paul Eggert <eggert@cs.ucla.edu>
799
800 The lock for FILE is now .#FILE or .#-FILE (Bug#13807).
801 The old approach, which fell back on DIR/.#FILE.0 through
802 DIR/.#FILE.9, had race conditions that could not be easily fixed.
803 If DIR/.#FILE is a non-symlink file, Emacs now does not create a
804 lock file for DIR/FILE; that is, DIR/FILE is no longer partly
805 protected by a lock if DIR/.#FILE is a non-symlink file ("partly"
806 because the locking mechanism was never reliable in that case).
807 This patch fixes this and other bugs discovered by a code
808 inspection that was prompted by
809 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00531.html>.
810 Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows,
811 to avoid interoperability problems between the MS-Windows and
812 non-MS-Windows implementations. MS-Windows and non-MS-Windows
813 instances of Emacs now ignore each others' locks.
814 * filelock.c (defined_WINDOWSNT): New constant.
815 (MAKE_LOCK_NAME, fill_in_lock_file_name):
816 Don't create DIR/.#FILE.0 through DIR/.#FILE.9. Instead, create
817 DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE
818 regular files on MS-Windows hosts.
819 (MAKE_LOCK_NAME, unlock_file, Ffile_locked_p):
820 Use SAFE_ALLOCA to avoid problems with long file names.
821 (MAX_LFINFO): Now a local constant, not a global macro.
822 (IS_LOCK_FILE): Remove.
823 (lock_file_1): Don't inspect errno if symlink call succeeds;
824 that's not portable.
825 (lock_file): Document that this function can return if lock
826 creation fails.
827 (lock_file): Don't access freed storage.
828
8292013-03-02 Andreas Schwab <schwab@linux-m68k.org>
830
831 * lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren. (Bug#13734)
832
8332013-03-02 Paul Eggert <eggert@cs.ucla.edu>
834
835 * textprop.c: Use bool for booleans.
836 (validate_interval_range, Fadd_text_properties)
837 (Fremove_text_properties): Prefer bool to int when either works.
838
8392013-03-02 Eli Zaretskii <eliz@gnu.org>
840
841 * textprop.c (Fadd_text_properties, Fremove_text_properties):
842 If the interval tree changes as a side effect of calling
843 modify_region, re-do processing starting from the call to
844 validate_interval_range. (Bug#13743)
845
8462013-02-28 Eli Zaretskii <eliz@gnu.org>
847
848 * w32.c (sys_open): Don't reset the flags for FD in fd_info[].
849 (Bug#13546).
850
8512013-02-27 Eli Zaretskii <eliz@gnu.org>
852
853 * filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with
854 _SH_DENYRW flag, instead of emacs_open, to deny any other process
855 access to the lock file until it is written and closed.
856 (Bug#13807)
857
8582013-02-27 Paul Eggert <eggert@cs.ucla.edu>
859
860 * callint.c (Qcall_interactively):
861 * macros.c (Qexecute_kbd_macro):
862 Now static.
863
8642013-02-26 Bastien Guerry <bzg@gnu.org>
865
866 * window.c (Frecenter): Tiny docstring enhancement.
867
8682013-02-26 Paul Eggert <eggert@cs.ucla.edu>
869
870 Minor textprop integer cleanup.
871 * intervals.h, textprop.c (add_text_properties_from_list):
872 Return void, not int, since nobody uses the return value.
873 * textprop.c (validate_plist, add_properties, remove_properties)
874 (Fadd_text_properties):
875 Don't assume list length fits in int.
876 (interval_has_all_properties, interval_has_some_properties)
877 (interval_has_some_properties_list, add_properties, remove_properties)
878 (Fadd_text_properties, Fremove_text_properties)
879 (Fremove_list_of_text_properties, text_property_stickiness):
880 Use bool for booleans.
881 (Fadd_text_properties, Fremove_text_properties):
882 (Fremove_list_of_text_properties):
883 Reindent do-while as per GNU style.
884
8852013-02-25 Eli Zaretskii <eliz@gnu.org>
886
887 Implement CLASH_DETECTION for MS-Windows.
888
889 * filelock.c [WINDOWSNT]: Include w32.h.
890 (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime
891 function of that name. Up-case the macro arguments.
892 (IS_LOCK_FILE): New macro.
893 (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK.
894 (create_lock_file): New function, with body extracted from
895 lock_file_1.
896 [WINDOWSNT]: Implement lock files by writing a regular file with
897 the lock information as its contents.
898 (read_lock_data): New function, on Posix platforms just calls
899 emacs_readlinkat.
900 [WINDOWSNT]: Read the lock info from the file.
901 (current_lock_owner): Call read_lock_data instead of calling
902 emacs_readlinkat directly.
903 (lock_file) [WINDOWSNT]: Run the file name through
904 dostounix_filename.
905
906 * w32proc.c (sys_kill): Support the case of SIG = 0, in which case
907 just check if the process by that PID exists.
908
909 * w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is
910 also present, as doing so will fail to error out if the file
911 already exists.
912
913 * makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h.
914
915 * textprop.c (Fadd_text_properties, Fremove_text_properties)
916 (Fremove_list_of_text_properties): Skip all of the intervals in
917 the region between START and END that already have resp. don't
918 have the requested properties, not just the first one.
919 Add assertions that the loop afterwards always modifies the
920 properties. (Bug#13743)
921
9222013-02-25 Stefan Monnier <monnier@iro.umontreal.ca>
923
924 * callint.c (Fcall_interactively): Use the right lexical environment
925 for `interactive' specs (bug#13811).
926 * eval.c (Feval): Accept a lexical environment.
927
9282013-02-25 Paul Eggert <eggert@cs.ucla.edu>
929
930 Simplify data_start configuration (Bug#13783).
931 This is a followon simplification to the fix for Bug#13650.
932 * Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD)
933 (START_FILES): Remove. All uses removed.
934 (otherobj): Remove $(VMLIMIT_OBJ), as it's now first.
935 (ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first.
936 (buildobj.h): Use it.
937 ($(ALLOBJS)): Depend on globals.h.
938 (temacs$(EXEEXT)): Use $(ALLOBJS).
939 * autodeps.mk (ALLOBJS): Move to Makefile.in.
940 * deps.mk (vm-limit.o):
941 * makefile.w32-in ($(BLD)/vm-limit.$(O)):
942 Do not depend on mem-limits.h.
943 * emacs.c (__do_global_ctors, __do_global_ctors_aux)
944 (__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__)
945 [__GNUC__ && !ORDINARY_LINK]: Remove.
946 * mem-limits.h, pre-crt0.c: Remove.
947 * unexaix.c, unexcoff.c: Don't include mem-limits.h.
948 * unexcoff.c (etext): New decl.
949 (make_hdr): Use DATA_START instead of start_of_data.
950 * vm-limit.c: Move most of mem-limits.h's contents here.
951 (data_start): New decl. It's OK if this is approximate,
952 so simplify-away some unnecessary exactness.
953 (POINTER): Remove; all uses removed.
954 (data_space_start): Now char *, to avoid casts.
955 (exceeds_lisp_ptr): New function, replacing the old
956 EXCEEDS_LISP_PTR macro. All uses changed.
957 (check_memory_limits): Simplify and remove casts.
958 (start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove.
959 (memory_warnings): Use data_start instead of start_of_data.
960
9612013-02-24 Andreas Schwab <schwab@linux-m68k.org>
962
963 * xdisp.c (set_message): Only check for debug-on-message if STRING
964 is a string. (Bug#13797)
965
9662013-02-24 Paul Eggert <eggert@cs.ucla.edu>
967
968 Fix regression introduced by July 10 filelock.c patch.
969 * filelock.c (fill_in_lock_file_name): Fix crash caused by the
970 2012-07-10 patch to this file. Reported by Eli Zaretskii in
971 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00533.html>
972 and diagnosed by Andreas Schwab in
973 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00534.html>.
974
9752013-02-22 Paul Eggert <eggert@cs.ucla.edu>
976
977 Assume C89 or better.
978 * ralloc.c (SIZE, POINTER, NIL):
979 * vm-limit.c (POINTER):
980 Remove, replacing all uses with C89 equivalents. These old
981 symbols were present only for porting to pre-C89 platforms.
982
9832013-02-22 Claudio Bley <claudio.bley@gmail.com>
984
985 * w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop.
986 This avoids warning messages reported as part of Bug#13546.
987
9882013-02-21 Ken Brown <kbrown@cornell.edu>
989
990 * sheap.c (report_sheap_usage): Fix arguments of message1_no_log.
991
9922013-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
993
994 * sheap.c (report_sheap_usage): Prefer message1_nolog.
995
996 * keyboard.c (Qcommand_execute): New var.
997 (command_loop_1, read_char): Use it.
998 (Fcommand_execute): Remove, replace by an Elisp implementation.
999 (syms_of_keyboard): Adjust accordingly.
1000
10012013-02-19 Daniel Colascione <dancol@dancol.org>
1002
1003 * sheap.c (report_sheap_usage): Use message, not message1, so
1004 that we don't try to create a buffer while we're in the middle
1005 of dumping Emacs. Explain why.
1006
10072013-02-20 Dmitry Antipov <dmantipov@yandex.ru>
1008
1009 * search.c (find_newline): Return byte position in bytepos.
1010 Adjust comment.
1011 (find_next_newline_no_quit, find_before_next_newline):
1012 Add bytepos argument.
1013 * lisp.h (find_newline, find_next_newline_no_quit)
1014 (find_before_next_newline): Adjust prototypes.
1015 * bidi.c (bidi_find_paragraph_start):
1016 * editfns.c (Fconstrain_to_field, Fline_end_position):
1017 * indent.c (compute_motion, vmotion):
1018 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start):
1019 (get_visually_first_element, move_it_vertically_backward):
1020 Adjust users and avoid calls to CHAR_TO_BYTE where appropriate.
1021
10222013-02-19 Eli Zaretskii <eliz@gnu.org>
1023
1024 * w32proc.c (new_child): Avoid leaking handles if the subprocess
1025 resources were not orderly released.
1026
10272013-02-17 Eli Zaretskii <eliz@gnu.org>
1028
1029 * xdisp.c (x_draw_vertical_border): For a window that is neither
1030 the leftmost nor the rightmost, redraw both the left and the right
1031 vertical borders. (Bug#13723)
1032
10332013-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
1034
1035 * xml.c (init_libxml2_functions):
1036 * sound.c (sound_warning):
1037 * sheap.c (report_sheap_usage):
1038 * process.c (wait_reading_process_output):
1039 * msdos.c (XMenuActivate):
1040 * macros.c (Fstart_kbd_macro, Fend_kbd_macro):
1041 * keyboard.c (top_level_1):
1042 * editfns.c (Fmessage, Fmessage_box):
1043 * callint.c (Fcall_interactively):
1044 * fns.c (Fyes_or_no_p): Prefer `message1' over `message'.
1045
10462013-02-17 Jan Djärv <jan.h.d@swipnet.se>
1047
1048 * xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ...
1049 * frame.c (syms_of_frame): ... to here.
1050
10512013-02-16 Eli Zaretskii <eliz@gnu.org>
1052
1053 * w32.c (sys_chown): Remove unused function.
1054
1055 * w32term.c <input_signal_count>: Declare 'volatile'
1056 unconditionally. (Bug#9066)
1057
1058 * w32.c (set_errno): Reset h_errno and don't set it to any other
1059 value. Set errno instead.
1060 (check_errno): Reset h_errno.
1061 (sys_socket, socket_to_fd, sys_bind, sys_connect)
1062 (sys_gethostname, sys_getservbyname, sys_getpeername)
1063 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1064 (sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set
1065 h_errno.
1066 (sys_gethostbyname): Set h_errno only errors detected.
1067
10682013-02-15 Paul Eggert <eggert@cs.ucla.edu>
1069
1070 * process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl.
1071
10722013-02-15 Eli Zaretskii <eliz@gnu.org>
1073
1074 * keyboard.c (read_char): Fix calculation of auto-save time out
1075 when auto-save-timeout is less than 4. (Bug#13720)
1076
1077 * w32proc.c (new_child): Free up to 2 slots of dead processes at a
1078 time. Improve diagnostics in DebPrint. (Bug#13546)
1079
1080 * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname)
1081 (sys_gethostbyname, sys_getservbyname, sys_getpeername)
1082 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1083 (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure,
1084 make sure errno is set to an appropriate value. (Bug#13546)
1085 (socket_to_fd): Add assertion against indexing fd_info[] with a
1086 value that is out of bounds.
1087 (sys_accept): If fd is negative, do not set up the child_process
1088 structure for reading.
1089
10902013-02-15 Dmitry Antipov <dmantipov@yandex.ru>
1091
1092 * composite.c (fill_gstring_header): Remove useless prototype.
1093 Break long line.
1094 * lisp.h (message_dolog, compile_pattern): Adjust prototype.
1095 * print.c (PRINTDECLARE, print_object):
1096 * search.c (compile_pattern, fast_looking_at, search_buffer):
1097 (simple_search, boyer_moore, Freplace_match):
1098 * xdisp.c (c_string_pos, number_of_chars, message_dolog):
1099 (get_overlay_arrow_glyph_row, display_mode_element):
1100 (decode_mode_spec_coding, message3):
1101 * xfaces.c (face_at_string_position): Use bool for booleans.
1102 Adjust comments.
1103
11042013-02-15 Paul Eggert <eggert@cs.ucla.edu>
1105
1106 Fix AIX port (Bug#13650).
1107 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
1108 Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set,
1109 was #undeffed earlier, so it cannot be used as a macro here.
1110 Use the constant and not the macro.
1111
11122013-02-15 Eli Zaretskii <eliz@gnu.org>
1113
1114 * w32proc.c (new_child): If no vacant slots are found in
1115 child_procs[], make another pass looking for slots whose process
1116 has exited or died. (Bug#13546)
1117
1118 * w32.c (sys_pipe): When failing due to file descriptors above
1119 MAXDESC, set errno to EMFILE.
1120 (_sys_read_ahead): Update cp->status when failing to read serial
1121 communications input, so that the status doesn't stay at
1122 STATUS_READ_IN_PROGRESS. (Bug#13546)
1123
11242013-02-14 Jan Djärv <jan.h.d@swipnet.se>
1125
1126 * gtkutil.c (tb_size_cb): New function.
1127 (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512).
1128
11292013-02-14 Stefan Monnier <monnier@iro.umontreal.ca>
1130
1131 * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not
1132 an event.
1133
11342013-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
1135
1136 * keyboard.c (syms_of_keyboard): Further tweaks of docstring.
1137
11382013-02-13 Dmitry Antipov <dmantipov@yandex.ru>
1139
1140 * font.c (font_range): Add pos_byte argument. Adjust comment
1141 and break long line.
1142 * font.h (font_range): Adjust prototype.
1143 * composite.c (autocmp_chars): Pass byte position to font_range.
1144 Break long line. Remove useless prototype and format comment.
1145
11462013-02-13 Glenn Morris <rgm@gnu.org>
1147
1148 * keyboard.c (input-decode-map, key-translation-map): Doc fixes.
1149
11502013-02-13 Paul Eggert <eggert@cs.ucla.edu>
1151
1152 Improve AIX port some more (Bug#13650).
1153 With this, it should be as good as it was in 23.3, though it's
1154 still pretty bad: the dumped emacs does not run. See Mark Fleishman in
1155 http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html
1156 * unexaix.c (start_of_text): Remove.
1157 (_data, _text): Declare as char[], not int, as AIX manual suggests.
1158 (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
1159 (orig_load_scnptr, orig_data_scnptr):
1160 Now off_t, not long, since they are file offsets.
1161 (make_hdr): Use _data, not start_of_data ().
1162 This is the key part of the fix.
1163 (make_hdr, unrelocate_symbols): Use off_t for file offsets.
1164 (unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
1165
1166 * pre-crt0.c (data_start): Initialize to 1.
1167 This ports to compilers that optimize the external declaration
1168 'int x = 0;' as if it were 'int x;' to shrink the executable.
1169
1170 Improve AIX port (Bug#13650).
1171 This doesn't fix the bug, but it makes progress: Emacs builds now.
1172 * unexaix.c: Include inttypes.h, stdarg.h.
1173 (report_error, report_error_1): Mark as _Noreturn.
1174 (report_error): Don't report the wrong errno.
1175 (report_error_1): Now varargs. All callers changed.
1176 (make_hdr): Use uintptr_t, not unsigned, when converting pointers
1177 to unsigned. Don't use ADDR_CORRECT, as it no longer exists.
1178 (write_ptr): Use %p to print address rather than %lx and a cast
1179 to unsigned long. Grow buffer a bit, to be safer.
1180
11812013-02-13 Eli Zaretskii <eliz@gnu.org>
1182
1183 * bidi.c (bidi_resolve_neutral): After finding the next
1184 non-neutral character, accept NEUTRAL_ON type as well, because
1185 directional control characters, such as LRE and RLE, have their
1186 type converted to that by bidi_resolve_weak. This avoids aborts
1187 when LRE/RLE follows a run of neutrals.
1188 (bidi_move_to_visually_next): Assert that return value of
1189 bidi_peek_at_next_level is non-negative. Negative values will
1190 cause an infloop.
1191
11922013-02-13 Paul Eggert <eggert@cs.ucla.edu>
1193
1194 Minor getenv-related fixes.
1195 * callproc.c (Fcall_process_region) [!DOS_NT]:
1196 Avoid unnecessary duplicate call to getenv.
1197 * callproc.c (init_callproc):
1198 * dispnew.c (init_display):
1199 * sysdep.c (sys_subshell):
1200 Omit unnecessary cast of getenv or egetenv.
1201
12022013-02-13 Juanma Barranquero <lekktu@gmail.com>
1203
1204 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)):
1205 Update dependencies.
1206
12072013-02-12 Eli Zaretskii <eliz@gnu.org>
1208
1209 * xdisp.c (redisplay_internal): Don't set w->region_showing to the
1210 marker's position.
1211 (display_line): Set w->region_showing to the value of
1212 it->region_beg_charpos, not to -1. This fixes redisplay
1213 optimization when cursor is moved up after M->. (Bug#13623)
1214 (Bug#13626)
1215 (try_scrolling): Scroll text up more if point is too close to ZV
1216 and inside the scroll margin. This makes sure point is moved
1217 outside the scroll margin in these cases.
1218
1219 * window.h (struct window): region_showing can no longer be
1220 negative.
1221
12222013-02-11 Paul Eggert <eggert@cs.ucla.edu>
1223
1224 Tune by using memchr and memrchr.
1225 * doc.c (Fsnarf_documentation):
1226 * fileio.c (Fsubstitute_in_file_name):
1227 * search.c (find_newline, scan_newline):
1228 * xdisp.c (pos_visible_p, display_count_lines):
1229 Use memchr and memrchr rather than scanning byte-by-byte.
1230 * search.c (find_newline): Rename from scan_buffer.
1231 Omit first arg TARGET, as it's always '\n'. All callers changed.
1232
1233 Clean up read_key_sequence a tiny bit more.
1234 * keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]:
1235 (read_key_sequence): Remove unused locals.
1236
12372013-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
1238
1239 Clean up read_key_sequence a bit; reread active keymaps after first event.
1240 * keyboard.c (read_char, read_char_x_menu_prompt)
1241 (read_char_minibuf_menu_prompt):
1242 Replace nmaps+maps with a single `map' arg.
1243 (follow_key): Operate on a single map.
1244 (active_maps): New function.
1245 (test_undefined): Also return true for nil bindings.
1246 (read_key_sequence): Use active_maps to replace the arrays of keymaps with
1247 a single (composed) keymap. Remember `first_event' to choose the right
1248 set of active keymaps. Recompute the set of keymaps after receiving
1249 the first event. Remove GOBBLE_FIRST_EVENT.
1250 (syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
1251 * keyboard.h (read_char): Update declaration.
1252 * lread.c (read_filtered_event): Adjust call to read_char.
1253
12542013-02-11 Eli Zaretskii <eliz@gnu.org>
1255
1256 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1257 Don't use the limitation on backwards movement when lines are truncated
1258 in the window. (Bug#13675)
1259
12602013-02-11 Dmitry Antipov <dmantipov@yandex.ru>
1261
1262 * marker.c (set_marker_internal): If desired position is passed
1263 as a marker, avoid call to buf_charpos_to_bytepos.
1264 * window.c (Fset_window_point): Omit redundant type checking.
1265 (Fset_window_start): Likewise. Format comment.
1266 (window_scroll_pixel_based): Use set_marker_restricted_both
1267 with character and byte positions obtained from an iterator.
1268 (Fset_window_configuration): Use set_marker_restricted_both.
1269 * xdisp.c (message_dolog): Likewise.
1270
12712013-02-10 Eli Zaretskii <eliz@gnu.org>
1272
1273 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1274 When text lines are longer than window's screen lines, don't move back
1275 too far. This speeds up some redisplay operations. (Bug#13675)
1276
12772013-02-10 Dmitry Antipov <dmantipov@yandex.ru>
1278
1279 * syntax.c (scan_sexps_forward): Fix byte position calculation
1280 Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change.
1281
12822013-02-10 Paul Eggert <eggert@cs.ucla.edu>
1283
1284 * fileio.c (Fexpand_file_name): Omit confusing pointer comparison
1285 that was not needed.
1286
12872013-02-09 Paul Eggert <eggert@cs.ucla.edu>
1288
1289 Minor hashing refactoring.
1290 * fns.c (SXHASH_REDUCE): Move to lisp.h.
1291 (sxhash_float): Return EMACS_UINT, for consistency with the other
1292 hash functions.
1293 * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a
1294 non-static inline function and therefore can't use static vars.
1295 (SXHASH_REDUCE): Move here from fns.c, and make it inline.
1296 * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent
1297 with the other hash functions.
1298
12992013-02-09 Eli Zaretskii <eliz@gnu.org>
1300
1301 * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the
1302 XXXXXX part of the temporary file pattern is not downcased even
1303 when w32-downcase-file-names is non-nil. (Bug#13661)
1304
1305 * xdisp.c (decode_mode_spec): Remove handling of %t.
1306
1307 * msdos.c (careadlinkatcwd): Remove.
1308
13092013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
1310
1311 * lread.c (skip_dyn_bytes): New function (bug#12598).
1312 (read1): Use it. Use getc instead of READCHAR to read bytes.
1313 (load_each_byte): Remove. Update users.
1314
13152013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1316
1317 * search.c (scan_buffer): Calculate end byte position just once.
1318 (scan_newline): Do not recalculate start_byte.
1319 (search_command): Use eassert.
1320 * syntax.c (struct lisp_parse_state): New member location_byte.
1321 (scan_sexps_forward): Record from_byte and avoid redundant
1322 character to byte position calculation ...
1323 (Fparse_partial_sexp): ... here. Break too long line.
1324
13252013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1326
1327 * lisp.h (make_uninit_vector): New function.
1328 * alloc.c (Fvector, Fmake_byte_code):
1329 * ccl.c (Fregister_ccl_program):
1330 * charset.c (Fdefine_charset_internal, define_charset_internal):
1331 * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
1332 * composite.c (syms_of_composite):
1333 * font.c (Fquery_font, Ffont_info, syms_of_font):
1334 * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
1335 * ftfont.c (ftfont_shape_by_flt):
1336 * indent.c (recompute_width_table):
1337 * nsselect.m (clean_local_selection_data):
1338 * syntax.c (init_syntax_once):
1339 * w32unsubscribe.c (uniscribe_shape):
1340 * window.c (Fcurrent_window_configuration):
1341 * xfaces.c (Fx_family_fonts):
1342 * xselect.c (selection_data_to_lisp_data): Use it.
1343
13442013-02-07 Dmitry Antipov <dmantipov@yandex.ru>
1345
1346 * coding.c (Fdefine_coding_system_internal): Use AREF where
1347 argument is known to be a vector.
1348 * fns.c (Flocale_info): Likewise for ASET.
1349 * xselect.c (selection_data_to_lisp_data): Likewise for ASET.
1350 * w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
1351
13522013-02-05 Jan Djärv <jan.h.d@swipnet.se>
1353
1354 * nsmenu.m (update_frame_tool_bar): Check for negative tool bar
1355 height.
1356
1357 * nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
1358 (EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
1359 updateCollectionBehaviour.
1360
1361 * nsterm.m (NEW_STYLE_FS): Remove.
1362 (ns_last_use_native_fullscreen): New variable.
1363 (x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
1364 (x_set_window_size): Do not take title bar and tool bar into account
1365 if isFullscreen returns YES.
1366 (ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
1367 (check_native_fs): New function.
1368 (ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
1369 (ns_term_init): Remove NEW_STYLE_FS.
1370 (updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
1371 and tool bar if isFullscreen returns NO.
1372 (windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
1373 (initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
1374 with HAVE_NATIVE_FS.
1375 (window:willUseFullScreenPresentationOptions:): New method.
1376 (windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
1377 Hide toolbar if not enabled (Bug#13444).
1378 (windowDidExitFullScreen:): Call updateCollectionBehaviour.
1379 Restore tool bar if enabled, hide it otherwise (Bug#13444).
1380 (fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
1381 (toggleFullScreen:): If fs_is_native, call toggleFullScreen on
1382 window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
1383 Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
1384 FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
1385 (syms_of_nsterm): Add ns-use-native-fullscreen.
1386
13872013-02-04 Paul Eggert <eggert@cs.ucla.edu>
1388
1389 * fileio.c (Qchoose_write_coding_system): Now static.
1390
13912013-02-04 Eli Zaretskii <eliz@gnu.org>
1392
1393 * xdisp.c (window_buffer_changed): region_showing can be negative,
1394 which still means region is being displayed.
1395 (redisplay_internal): Resurrect code that forced redisplay of the
1396 whole window when showing region and the mark has changed.
1397 Record the new mark position to allow redisplay optimizations.
1398 (display_line): If it->region_beg_charpos is non-zero, set the
1399 window's region_showing member to -1. (Bug#13623) (Bug#13626)
1400
1401 * window.h (struct window) <region_showing>: Declare ptrdiff_t,
1402 not bitfield of 1 bit.
1403
14042013-02-03 Daniel Colascione <dancol@dancol.org>
1405
1406 * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that
1407 daemon mode works on cygw32 when Emacs is installed and not just
1408 during development.
1409
14102013-02-02 Paul Eggert <eggert@cs.ucla.edu>
1411
1412 Avoid file time stamp bug on MS-Windows (Bug#13149).
1413 * fileio.c (Fwrite_region): Don't use the heuristic on empty files,
1414 as FAT32 doesn't update time stamps when truncating them.
1415 Also, check that a file time stamp is not a multiple of 100 ns;
1416 this should catch all instances of the problem on MS-Windows,
1417 as its native file system resolution is 100 ns or worse, and
1418 checking for a non-multiple of 100 ns should impose only a small
1419 overhead on systems with ns resolution.
1420
14212013-02-02 Eli Zaretskii <eliz@gnu.org>
1422
1423 Avoid encoding file names on MS-Windows when they need to be run
1424 through dostounix_filename.
1425 * w32.c (normalize_filename): Accept an additional argument
1426 MULTIBYTE; if non-zero, traverse the file name by bytes and don't
1427 downcase it even if w32-downcase-file-names is non-nil.
1428 (dostounix_filename): Accept an additional argument MULTIBYTE and
1429 pass it to normalize_filename.
1430 (emacs_root_dir): Adjust.
1431
1432 * msdos.h (dostounix_filename): Adjust prototype.
1433
1434 * w32.h (dostounix_filename): Adjust prototype.
1435
1436 * msdos.c (dostounix_filename): Accept an additional argument and
1437 ignore it.
1438 (init_environment): Adjust callers of dostounix_filename.
1439
1440 * fileio.c (Ffile_name_directory, file_name_as_directory)
1441 (directory_file_name, Fexpand_file_name)
1442 (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
1443 dostounix_filename.
1444 [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
1445 non-nil.
1446 (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
1447 variables, as egetenv is case-insensitive for DOS_NT.
1448
1449 * dired.c (file_name_completion): Don't call Fdirectory_file_name
1450 with an encoded file name.
1451
1452 * w32proc.c (Fw32_short_file_name, Fw32_long_file_name):
1453 Adjust calls to dostounix_filename.
1454
1455 * w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
1456
1457 * unexw32.c (unexec): Adjust call to dostounix_filename.
1458
1459 * termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
1460
1461 * emacs.c (decode_env_path) [DOS_NT]: Adjust call to
1462 dostounix_filename.
1463
1464 * callproc.c (Fcall_process) [MSDOS]: Adjust call to
1465 dostounix_filename.
1466
1467 * callproc.c (Fcall_process): Make sure program name in PATH and
1468 new_argv[0] is encoded, if needed. Otherwise, un-encoded string
1469 is passed to exec/spawnve, which fails unless the file-name
1470 encoding is UTF-8.
1471
1472 * w32proc.c (sys_spawnve): Make sure escape_char is initialized,
1473 even if w32-quote-process-args is nil.
1474
14752013-02-01 Paul Eggert <eggert@cs.ucla.edu>
1476
1477 Fix timestamp bug when write-region appends nothing (Bug#13149).
1478 * fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used,
1479 the file's time stamp doesn't change if Emacs happens to write nothing
1480 to the file, and on a buggy file system this could cause Emacs to
1481 incorrectly infer that the file system doesn't have the bug.
1482 Avoid this problem by inhibiting the inference in this case.
1483
14842013-02-01 Dmitry Antipov <dmantipov@yandex.ru>
1485
1486 * window.h (struct window): Convert base_line_number, base_line_pos
1487 and column_number_displayed members from Lisp_Object to ptrdiff_t.
1488 Convert region_showing member from Lisp_Object to bitfield.
1489 Remove sequence_number member. Adjust comments.
1490 * window.c (sequence_number): Remove.
1491 (make_window): Initialize column_number_displayed.
1492 * print.c (print_object): Follow the printed representation of
1493 frames and print window pointer to distinguish between windows.
1494 (adjust_window_count): Invalidate base_line_pos. Adjust comment.
1495 * xdisp.c (wset_base_line_number, wset_base_line_pos)
1496 (wset_column_number_displayed, wset_region_showing): Remove.
1497 (window_buffer_changed, mode_line_update_needed, redisplay_internal)
1498 (try_scrolling, try_cursor_movement, redisplay_window)
1499 (try_window_reusing_current_matrix, try_window_id, display_line)
1500 (display_mode_lines, decode_mode_spec): Adjust users.
1501 * .gdbinit (pwinx): Do not print sequence_number.
1502
15032013-02-01 Paul Eggert <eggert@cs.ucla.edu>
1504
1505 Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539).
1506 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
1507 * dired.c: Include <fcntl.h>.
1508 (open_directory): New function, which uses open and fdopendir
1509 rather than opendir. DOS_NT platforms still use opendir, though.
1510 (directory_files_internal, file_name_completion): Use it.
1511 (file_attributes): New function, with most of the old Ffile_attributes.
1512 (directory_files_internal, Ffile_attributes): Use it.
1513 (file_attributes, file_name_completion_stat): First arg is now fd,
1514 not dir name. All uses changed. Use fstatat rather than lstat +
1515 stat.
1516 (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
1517 * fileio.c: Include <allocator.h>, <careadlinkat.h>.
1518 (emacs_readlinkat): New function, with much of the old
1519 Ffile_symlink_p, but with an fd argument for speed.
1520 It uses readlinkat rather than careadlinkatcwd, so that it
1521 need not assume the working directory.
1522 (Ffile_symlink_p): Use it.
1523 * filelock.c (current_lock_owner): Use emacs_readlinkat
1524 rather than emacs_readlink.
1525 * lisp.h (emacs_readlinkat): New decl.
1526 (READLINK_BUFSIZE, emacs_readlink): Remove.
1527 * sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
1528 (emacs_norealloc_allocator, emacs_readlink): Remove.
1529 This stuff is moved to fileio.c.
1530 * w32.c (fstatat, readlinkat): New functions.
1531 (careadlinkat): Don't check that fd == AT_FDCWD.
1532 (careadlinkatcwd): Remove; no longer needed.
1533
15342013-01-31 Glenn Morris <rgm@gnu.org>
1535
1536 * fileio.c (choose_write_coding_system): Make it callable from Lisp.
1537 (Fwrite_region): Update for new choose_write_coding_system args.
1538 Move the last piece of choose_write_coding_system here. (Bug#13522)
1539 (syms_of_fileio): Add choose-write-coding-system.
1540
15412013-01-30 Eli Zaretskii <eliz@gnu.org>
1542
1543 * w32.c (sys_open): Zero out the flags for the new file descriptor.
1544 (sys_close): Zero out the flags for the file descriptor before
1545 closing it. (Bug#13546)
1546
1547 * w32.c (parse_root, get_volume_info, readdir, read_unc_volume)
1548 (logon_network_drive, stat_worker, symlink, chase_symlinks):
1549 Use CharNextExA and CharPrevExA to iterate over file names encoded in
1550 DBCS. (Bug#13553)
1551
1552 * w32.c (w32_get_long_filename, init_environment, readlink):
1553 Support file names encoded in DBCS codepages.
1554 (readlink): Use the current file-name-coding-system, not the ANSI
1555 codepage, to decode and handle targets of symlinks.
1556
15572013-01-28 Eli Zaretskii <eliz@gnu.org>
1558
1559 * w32.c (opendir): Now accepts a 'const char *'.
1560
15612013-01-28 Dmitry Antipov <dmantipov@yandex.ru>
1562
1563 Remove obsolete redisplay code. See the discussion at
1564 http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00576.html.
1565 * dispnew.c (preemption_period, preemption_next_check): Remove.
1566 (Vredisplay_preemption_period): Likewise.
1567 (update_frame, update_single_window, update_window, update_frame_1):
1568 Adjust users. Always assume that PERIODIC_PREEMPTION_CHECKING is not
1569 used, following the 2012-06-22 change.
1570
15712013-01-25 Eli Zaretskii <eliz@gnu.org>
1572
1573 * w32notify.c (Fw32notify_add_watch): Doc fix. (Bug#13540)
1574
15752013-01-25 Dmitry Antipov <dmantipov@yandex.ru>
1576
1577 * font.c (num_fonts): Remove the leftover from old
1578 debugging code. Adjust comment style here and there.
1579 * insdel.c (insert_1): Remove.
1580 * lisp.h (insert_1): Remove prototype.
1581 * xdisp.c (message_dolog): Adjust users to call insert_1_both.
1582
15832013-01-25 Eli Zaretskii <eliz@gnu.org>
1584
1585 * w32.c (max_filename_mbslen): New function.
1586 (normalize_filename, readdir): Use it to detect locales where ANSI
1587 encoding of file names uses a double-byte character set (DBCS).
1588 If a DBCS encoding is used, advance by characters using
1589 CharNextExA, instead of incrementing a 'char *' pointer.
1590 Use _mbslwr instead of _strlwr. (Bug#13515)
1591
1592 * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial
1593 request of memory reservation to 1.7GB. (Bug#13065)
1594
15952013-01-25 Andreas Schwab <schwab@linux-m68k.org>
1596
1597 * coding.c (detect_coding_iso_2022): Move back mis-reordered code
1598 at check_extra_latin label. (Bug#13505)
1599
16002013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
1601
1602 * nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script):
1603 Avoid redundant calls to strlen.
1604
16052013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
1606
1607 Drop async_visible and async_iconified fields of struct frame.
1608 This is possible because async input is gone; for details, see
1609 http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
1610 * frame.h (struct frame): Remove async_visible and async_iconified
1611 members, convert garbaged to unsigned bitfield. Adjust comments.
1612 (FRAME_SAMPLE_VISIBILITY): Remove. Adjust all users.
1613 (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
1614 * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
1615 Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
1616 FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
1617 * w32term.c: Ditto.
1618 (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
1619 properly. Likewise for obscured.
1620 * xterm.c: Ditto.
1621 (handle_one_xevent): Save visible state to generate ICONIFY_EVENT
1622 properly.
1623 * nsterm.m: Ditto.
1624 (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
1625
16262013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
1627
1628 * insdel.c (prepare_to_modify_buffer): Revert last change as suggested
1629 in http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00555.html.
1630
16312013-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
1632
1633 * xdisp.c (message2, message2_nolog): Remove functions.
1634 (message3, message3_nolog): Extract nbytes and multibyteness directly
1635 from the string. Change all callers.
1636 (message3_nolog): Don't set message_enable_multibyte since set_message
1637 will reset it anyway.
1638 (message1, message1_nolog): Use message3.
1639 (vmessage): Use a stack allocated buffer rather than f->message_buf.
1640 (with_echo_area_buffer): Remove last two arguments. Update all callers.
1641 (set_message): Drop all but the second arg, which has to be a string.
1642 (set_message_1): Simplify now that we know that a1 is NULL and the
1643 second arg is a string.
1644 * frame.h (struct frame): Remove `message_buf' field.
1645 Use glyphs_initialized_p instead.
1646 (FRAME_MESSAGE_BUF): Remove macro.
1647 * w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2.
1648 * lisp.h (message2, message2_nolog): Remove declarations.
1649 (message3, message3_nolog): Update declarations.
1650 * keyboard.c (read_char_minibuf_menu_text)
1651 (read_char_minibuf_menu_width): Remove vars.
1652 (read_char_minibuf_menu_prompt): Rewrite the menu's construction so as
1653 to correctly handle multibyte strings.
1654 * frame.c (delete_frame): Don't free message_buf any more.
1655 * editfns.c (message_text, message_length): Remove vars.
1656 (Fmessage_box): Don't copy the Lisp string's bytes any longer.
1657 * fileio.c (auto_save_error): Use message3 instead of message2.
1658 * dispnew.c (adjust_frame_message_buffer): Remove function.
1659
16602013-01-23 Eli Zaretskii <eliz@gnu.org>
1661
1662 * w32term.c (w32fullscreen_hook): Account correctly for the screen
1663 real estate used for the tool bar and the menu bar.
1664
16652013-01-23 Dmitry Antipov <dmantipov@yandex.ru>
1666
1667 * insdel.c (prepare_to_modify_buffer): Force redisplay if
1668 hidden buffer is prepared to modification (Bug#13164).
1669
16702013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
1671
1672 * window.h (struct window): Change window_end_valid member from
1673 Lisp_Object to a bitfield. Adjust comments.
1674 (wset_window_end_valid): Remove.
1675 * window.c (adjust_window_count): Clear window_end_valid.
1676 (Fwindow_end): Adjust user. Remove ancient #if 0 code.
1677 (Fwindow_line_height, set_window_buffer, Frecenter)
1678 (Fsplit_window_internal, Fdelete_other_windows_internal)
1679 (Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
1680 * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
1681 * xdisp.c (check_window_end, reconsider_clip_changes)
1682 (redisplay_internal, mark_window_display_accurate_1, redisplay_window)
1683 (try_window, try_window_reusing_current_matrix, note_mouse_highlight)
1684 (find_first_unchanged_at_end_row, try_window_id): Likewise.
1685
16862013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
1687
1688 * xdisp.c (mark_window_display_accurate): Simplify the loop
1689 assuming that the only one of vchild, hchild or buffer window
1690 slots is non-nil. Call mark_window_display_accurate_1 for
1691 the leaf windows only.
1692 (mark_window_display_accurate_1): Always assume leaf window.
1693 Adjust comment.
1694
16952013-01-22 Paul Eggert <eggert@cs.ucla.edu>
1696
1697 * emacs.c (Qkill_emacs_hook): Now static.
1698
1699 * fileio.c (Finsert_file_contents): Simplify.
1700 Remove unnecessary assignments and tests.
1701
17022013-01-21 Eli Zaretskii <eliz@gnu.org>
1703
1704 * w32.c (acl_set_file): Don't test for errors unless
1705 set_file_security returns FALSE. Avoids spurious errors when
1706 saving files.
1707
17082013-01-21 Dmitry Antipov <dmantipov@yandex.ru>
1709
1710 * fileio.c (Finsert_file_contents): Revert code introduced at
1711 2013-01-18 in favor of the simpler and generally better fix.
1712 Save stack space by removing 'buffer' and reusing 'read_buf'
1713 where appropriate.
1714
17152013-01-19 Paul Eggert <eggert@cs.ucla.edu>
1716
1717 * lisp.h (eabs): Define unconditionally (Bug#13419).
1718 The old "#if !defined (eabs)" was an unnecessary revenant of back
1719 when this macro was called "abs". Document 'eabs' better.
1720
17212013-01-19 Glenn Morris <rgm@gnu.org>
1722
1723 * fns.c (Frandom): Doc fix.
1724
17252013-01-19 Eli Zaretskii <eliz@gnu.org>
1726
1727 * editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid
1728 segfault when there are lots of overlays.
1729
1730 * buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault
1731 when there are lots of overlays.
1732 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00421.html
1733 for the details and a way to reproduce.
1734
17352013-01-19 Paul Eggert <eggert@cs.ucla.edu>
1736
1737 * fileio.c: Use O_APPEND to append.
1738 This corresponds better to the natural interpretation of "append",
1739 and avoids the need to open the output file twice, or to invoke
1740 lseek when APPEND is neither nil nor a number.
1741 This relies on POSIX 1003.1-1988 or later, which is OK nowadays.
1742 (Fwrite_region): Simplify. Use O_APPEND instead of opening the
1743 file possibly twice, and lseeking to its end; this avoids the
1744 need to lseek on non-regular files. Do not use O_EXCL and O_TRUNC
1745 at the same time: the combination is never needed and apparently
1746 it doesn't work with DOS_NT.
1747
1748 Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149).
1749 * fileio.c (Fwrite_region): Use O_BINARY in checking code, too.
1750
1751 Allow floating-point file offsets.
1752 Problem reported by Vitalie Spinu in
1753 <http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00411.html>.
1754 * fileio.c (emacs_lseek): Remove.
1755 (file_offset): New function.
1756 (Finsert_file_contents, Fwrite_region): Use it.
1757
17582013-01-19 Chong Yidong <cyd@gnu.org>
1759
1760 * emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid
1761 aborting on Fsignal (Bug#13289).
1762
17632013-01-19 Eli Zaretskii <eliz@gnu.org>
1764
1765 * w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from
1766 set_file_security as failure due to insufficient privileges.
1767 Reported by Fabrice Popineau <fabrice.popineau@supelec.fr>.
1768 (fstat): Return owner and group like 'stat' and 'lstat' do.
1769
17702013-01-19 Paul Eggert <eggert@cs.ucla.edu>
1771
1772 Work around bug in CIFS and vboxsf file systems (Bug#13149).
1773 The bug was observed on Ubuntu operating inside a virtual machine,
1774 editing files mounted via CIFS or vboxsf from the MS Windows 7 host.
1775 The workaround introduces a race condition on non-buggy hosts,
1776 but it's an unlikely race and anyway there's a nearly identical
1777 nearby race that can't be fixed.
1778 * fileio.c (valid_timestamp_file_system, timestamp_file_system):
1779 New static vars.
1780 (Fwrite_region): Test for file system time stamp bug.
1781 (init_fileio): New function.
1782 * lisp.h (init_fileio): Declare it.
1783 * emacs.c (main): Call it.
1784
1785 * fileio.c (Finsert_file_contents): Simplify new diagnostic
1786 and make it more consistent with other stat-failure diagnostics.
1787
17882013-01-18 Dmitry Antipov <dmantipov@yandex.ru>
1789
1790 Fix crash when inserting data from non-regular files.
1791 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00406.html
1792 for the error description produced by valgrind.
1793 * fileio.c (read_non_regular): Rename to read_contents.
1794 Free Lisp_Save_Value object used to pass parameters.
1795 (read_non_regular_quit): Rename to read_contents_quit.
1796 (Finsert_file_contents): Redesign internal file reading loop to adjust
1797 gap and end positions after each read and so help make_gap to work
1798 properly. Do not signal an I/O error too early and so do not leave
1799 not yet decoded characters in a buffer, which was the reason of
1800 redisplay crash. Use list2 to build return value. Adjust comments.
1801
18022013-01-17 Paul Eggert <eggert@cs.ucla.edu>
1803
1804 Close a race when statting and reading files (Bug#13149).
1805 * fileio.c (Finsert_file_contents): Use open+fstat, not stat+open.
1806 This avoids a race if the file is renamed between stat and open.
1807 This race is not the problem originally noted in Bug#13149;
1808 see <http://bugs.gnu.org/13149#73> and later messages in the thread.
1809
18102013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
1811
1812 * lisp.h (toplevel): Add comment about using Lisp_Save_Value
1813 objects, related functions and macros.
1814 (make_save_value): Adjust prototype.
1815 (make_save_pointer): New prototype.
1816 (SAFE_NALLOCA): Fix indentation. Use make_save_pointer.
1817 (SAFE_ALLOCA_LISP): Adjust make_save_value usage.
1818 * alloc.c (format_save_value): Rename to make_save_value.
1819 (make_save_pointer): New function.
1820 (record_xmalloc): Use make_save_pointer.
1821 * dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c:
1822 * nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c:
1823 Change users of make_save_value to make_save_pointer.
1824 Likewise for format_save_value and make_save_value.
1825
18262013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
1827
1828 * buffer.h (NARROWED, BUF_NARROWED): Drop unused macros.
1829 (DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation.
1830 * buffer.c (toplevel, syms_of_buffer): Drop old commented-out
1831 debugging stubs.
1832
18332013-01-15 Paul Eggert <eggert@cs.ucla.edu>
1834
1835 * alloc.c (free_save_value): Now static.
1836
18372013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
1838
1839 * keymap.c (map_keymap_internal): Use format_save_value.
1840 (map_keymap_char_table_item): Adjust accordingly.
1841 * fileio.c (non_regular_fd, non_regular_inserted)
1842 (non_regular_nbytes): Remove.
1843 (Finsert_file_contents): Convert trytry to ptrdiff_t.
1844 Use format_save_value to pass parameters to read_non_regular.
1845 (read_non_regular): Use XSAVE_ macros to extract parameters.
1846 Adjust comment.
1847 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
1848 format_save_value.
1849 (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
1850
18512013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
1852
1853 * lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
1854 extraction from any Lisp_Save_Value slot. Add type checking.
1855 * alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c:
1856 * keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c:
1857 * xselect.c: All users changed.
1858
18592013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
1860
1861 Some convenient bits to deal with Lisp_Save_Values.
1862 * lisp.h (XSAVE_OBJECT): New macro to extract saved objects.
1863 (allocate_misc): Remove prototype.
1864 (format_save_value): New prototype.
1865 * alloc.c (allocate_misc): Revert back to static.
1866 (format_save_value): New function to build Lisp_Save_Value
1867 object with the specified internal structure.
1868 (make_save_value): Reimplement using format_save_value.
1869 * editfns.c (save_excursion_save): Use format_save_value.
1870 (save_excursion_restore): Use XSAVE_OBJECT.
1871
18722013-01-14 Paul Eggert <eggert@cs.ucla.edu>
1873
1874 Avoid needless casts with XSAVE_POINTER.
1875 * alloc.c (mark_object) [GC_MARK_STACK]:
1876 * dired.c (directory_files_internal_unwind):
1877 * fileio.c (do_auto_save_unwind):
1878 * gtkutil.c (pop_down_dialog):
1879 * keymap.c (map_keymap_char_table_item):
1880 * lread.c (load_unwind):
1881 * nsmenu.m (pop_down_menu):
1882 * print.c (print_object) [GC_MARK_STACK]:
1883 * xfns.c (clean_up_file_dialog):
1884 * xmenu.c (cleanup_widget_value_tree):
1885 Omit casts between XSAVE_POINTER and a pointer type.
1886
18872013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
1888
1889 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
1890 * eval.c (eval_sub): Protect `form' from being GCed before its
1891 car and cdr becomes protected with the backtrace entry.
1892
18932013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
1894
1895 Make Lisp_Save_Value more versatile storage for up to four objects.
1896 * lisp.h (toplevel): Enumeration to describe types of saved objects.
1897 (struct Lisp_Save_Value): New layout. Adjust comments.
1898 (XSAVE_POINTER): New macro.
1899 (XSAVE_INTEGER): Likewise.
1900 (allocate_misc): Add prototype.
1901 (free_misc): Likewise.
1902 * alloc.c (allocate_misc): Now global.
1903 (free_misc): Likewise. Adjust comment.
1904 (make_save_value): Use new Lisp_Save_Value layout. Adjust comment.
1905 (free_save_value): Likewise.
1906 (mark_object): Likewise.
1907 * editfns.c (save_excursion_save): Pack everything within
1908 Lisp_Save_Value and so avoid xmalloc.
1909 (save_excursion_restore): Adjust to match new layout. Use free_misc
1910 because we do not allocate extra memory any more. Add eassert.
1911 * print.c (print_object): New code to print Lisp_Save_Value. Do not
1912 rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments.
1913 * dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
1914 * lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
1915 Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
1916
19172013-01-13 Jan Djärv <jan.h.d@swipnet.se>
1918
1919 * nsfont.m (LCD_SMOOTHING_MARGIN): New define.
1920 (nsfont_draw): Remove disabling of LCD smoothing.
1921 (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix
1922 Bug#11484 with LCD smoothing on.
1923
19242013-01-13 Paul Eggert <eggert@cs.ucla.edu>
1925
1926 Fix SIGDANGER handlers, for AIX (Bug#13408).
1927 * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]:
1928 Move handlers here from emacs.c; they were out of place.
1929
19302013-01-11 Jan Djärv <jan.h.d@swipnet.se>
1931
1932 * xterm.c (syms_of_xterm): Adjust documentation for
1933 scroll-bar-adjust-thumb-portion.
1934
19352012-12-31 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
1936
1937 * xterm.c (scroll-bar-adjust-thumb-portion): New variable to
1938 determine whether scroll bar thumb size should be adjusted or
1939 not. Use variable for MOTIF.
1940
1941 * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for
1942 GTK.
1943
19442013-01-13 Jan Djärv <jan.h.d@swipnet.se>
1945
1946 * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key
1947 event is generated.
1948 (doCommandBySelector:): Set processingCompose to NO.
1949
1950 * nsfont.m (ns_findfonts): Add block/unblock_input calls.
1951 Remove check for fkeys count > zero, block/unblock fixes the real bug.
1952 (nsfont_list_family): Add block/unblock_input calls.
1953 (nsfont_open): Move block_input earlier. Add unblock_input before early
1954 return.
1955 (nsfont_draw): Add block/unblock_input calls.
1956
19572013-01-12 Dmitry Antipov <dmantipov@yandex.ru>
1958
1959 * indent.c (Fvertical_motion): Remove now-incorrect GCPROs
1960 for old_charpos and old_bytepos.
1961
19622013-01-12 Paul Eggert <eggert@cs.ucla.edu>
1963
1964 Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415).
1965 * editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
1966 Clear tzvalbuf_in_environ if this workaround is in effect.
1967 Problem and fix reported by Kazuhiro Ito.
1968
19692013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com>
1970
1971 * insdel.c (Fcombine_after_change_execute, syms_of_insdel):
1972 Fix ambiguous doc string cross-reference(s).
1973
1974 * keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
1975 doc string cross-reference(s).
1976
1977 * window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
1978 string cross-reference(s).
1979
19802013-01-11 Dmitry Antipov <dmantipov@yandex.ru>
1981
1982 Avoid unnecessary byte position calculation for the gap movement.
1983 Since all users of move_gap do CHAR_TO_BYTE for other purposes
1984 anyway, all of them should use move_gap_both instead.
1985 * lisp.h (move_gap): Remove prototype.
1986 * insdel.c (move_gap): Remove.
1987 (move_gap_both): Add eassert.
1988 * editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
1989 * xml.c (parse_region): Likewise.
1990
19912013-01-11 Paul Eggert <eggert@cs.ucla.edu>
1992
1993 emacsclient -t should not suspend Emacs server (Bug#13387)
1994 * lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
1995 New functions.
1996 * term.c (init_tty): Use them instead of rolling our own code.
1997 * sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this
1998 switches from 'signal' to 'pthread_sigmask', which is safer in
1999 multithreaded applications.
2000 * term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
2001 which has already arranged for that.
2002 (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
2003 This is the main part of the bug fix.
2004
20052013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change)
2006
2007 * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around
2008 x_last_font_name (Bug#13403).
2009
20102013-01-10 Dmitry Antipov <dmantipov@yandex.ru>
2011
2012 Omit buffer_slot_type_mismatch and use generic predicates to enforce
2013 the type of per-buffer values where appropriate.
2014 * lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
2015 predicate, which is how it's really used now. Adjust comment.
2016 * buffer.h (buffer_slot_type_mismatch): Remove prototype.
2017 * buffer.c (buffer_slot_type_mismatch): Remove.
2018 (DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
2019 predicate. Adjust comment.
2020 (syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for
2021 fill-column, left-margin, tab-width, buffer-saved-size,
2022 left-margin-width, right-margin-width, left-fringe-width,
2023 right-fringe-width, scroll-bar-width and buffer-display-count.
2024 Use Qstringp for default-directory, buffer-file-name,
2025 buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for
2026 scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for
2027 line-spacing.
2028 * data.c (store_symval_forwarding): Adjust to call the predicate.
2029
20302013-01-09 Juanma Barranquero <lekktu@gmail.com>
2031
2032 * w32.c (get_name_and_id, acl_set_file):
2033 * w32term.c (w32fullscreen_hook): Remove unused local variables.
2034
20352013-01-09 Dmitry Antipov <dmantipov@yandex.ru>
2036
2037 * lisp.h (make_gap_1): New prototype.
2038 * buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
2039 gap size values.
2040 * editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
2041 naming convention.
2042 (syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code.
2043 * insdel.c (make_gap_larger): Use GAP_BYTES_DFL. Adjust comment.
2044 (make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment.
2045 (make_gap_1): New function to adjust the gap of any buffer.
2046 * coding.c (coding_alloc_by_making_gap): Use it.
2047 * buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE,
2048 GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment.
2049
20502013-01-08 Juri Linkov <juri@jurta.org>
2051
2052 * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
2053 of (supports :underline (:style wave)). (Bug#13000)
2054
20552013-01-08 Aaron S. Hawley <aaron.s.hawley@gmail.com>
2056
2057 * undo.c (Fprimitive_undo): Move to simple.el.
2058 (syms_of_undo): Remove declarations for Sprimitive_undo.
2059
20602013-01-08 Stefan Monnier <monnier@iro.umontreal.ca>
2061
2062 * keyboard.c (echo_add_key): Rename from echo_add_char.
2063
20642013-01-06 Chong Yidong <cyd@gnu.org>
2065
2066 * keyboard.c (echo_add_char): New function, factored out from
2067 echo_char. Don't add a space if the previous echo string was
2068 empty (Bug#13255).
2069 (echo_char): Use it.
2070 (read_key_sequence): When echoing mock input, ensure that the
2071 trailing dash is properly added.
2072
20732013-01-05 Eli Zaretskii <eliz@gnu.org>
2074
2075 * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead
2076 of a non-portable "t" to print ptrdiff_t values. Allow up to 9
2077 digits for buffer positions, before misalignment starts.
2078 Display "0" for integer "object" field.
2079 (dump_glyph_row): Adapt the header line to changes in dump_glyph.
2080 Display the newline glyph more unambiguously.
2081
20822013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2083
2084 * nsterm.m (ns_draw_underwave):
2085 * w32term.c (w32_draw_underwave):
2086 * xterm.c (x_draw_underwave): Make underwave look more triangular
2087 and also degrade gracefully for small fonts. (Bug#13000)
2088
2089 * nsterm.m (ns_draw_text_decoration):
2090 * w32term.c (x_draw_glyph_string):
2091 * xterm.c (x_draw_glyph_string): Don't use previous underline
2092 thickness and position if previous underline type is underwave.
2093
20942013-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
2095
2096 * fileio.c (Ffile_acl): Undocument return format.
2097
20982013-01-02 Glenn Morris <rgm@gnu.org>
2099
2100 * keymap.c (Fkey_description): Doc fix. (Bug#13323)
2101
21022013-01-02 Paul Eggert <eggert@cs.ucla.edu>
2103
2104 Simplify via eabs.
2105 * dired.c (file_name_completion):
2106 * doc.c (get_doc_string):
2107 * floatfns.c (round2):
2108 * font.c (font_score, font_delete_unmatched):
2109 * fringe.c (compute_fringe_widths):
2110 * lread.c (read_list):
2111 * minibuf.c (Ftry_completion):
2112 * term.c (tty_ins_del_lines):
2113 * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
2114 Use eabs (x) rather than open-coding it as (x < 0 ? -x : x).
2115
21162012-12-31 Eli Zaretskii <eliz@gnu.org>
2117
2118 * w32.c (unsetenv): Set up the string passed to _putenv
2119 correctly.
2120 See http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00863.html
2121 for the bug this caused.
2122
21232012-12-30 Paul Eggert <eggert@cs.ucla.edu>
2124
2125 * coding.c (Qmac): Now static.
2126
21272012-12-30 Jan Djärv <jan.h.d@swipnet.se>
2128
2129 * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
2130 (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
2131 handlebox_widget. Set toolbar_in_hbox to false/true, set
2132 toolbar_is_packed to true.
2133 (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
2134 (update_frame_tool_bar): Check toolbar_is_packed for packing.
2135 Show all on TOOLBAR_TOP_WIDGET.
2136 (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned
2137 by TOOLBAR_TOP_WIDGET.
2138 (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
2139 Check toolbar_is_packed.
2140 (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
2141 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2142 (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
2143 false.
2144 (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2145 (xg_update_menubar): Update title only if
2146 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2147 (xg_update_submenu): Skip tearoff only if
2148 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2149 (xg_initialize): Initialize xg_detached_menus only if
2150 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2151
2152 * xterm.h (struct x_output): Surround handlebox_widget with
2153 #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new,
2154 toolbar_in_hbox is bool.
2155
21562012-12-30 Andreas Schwab <schwab@linux-m68k.org>
2157
2158 * src/Makefile.in (TEMACS_LDFLAGS2): Remove.
2159 (LIBS_GNUSTEP): Define.
2160 (LIBES): Add $(LIBS_GNUSTEP).
2161 (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
2162
21632012-12-30 Eli Zaretskii <eliz@gnu.org>
2164
2165 * xdisp.c (set_cursor_from_row): Don't confuse a truncation or
2166 continuation glyph on a TTY with an indication of an empty line.
2167 (Bug#13277)
2168
21692012-12-29 Eli Zaretskii <eliz@gnu.org>
2170
2171 * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
2172 file's SELinux context or ACLs successfully set, nil otherwise.
2173 (Bug#13298)
2174 (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
2175
2176 * w32proc.c (reader_thread): Avoid passing NULL handles to
2177 SetEvent and WaitForSingleObject.
2178
21792012-12-28 Paul Eggert <eggert@cs.ucla.edu>
2180
2181 Port EXTERNALLY_VISIBLE to Clang 3.2.
2182 * conf_post.h (__has_attribute): New macro.
2183 (EXTERNALLY_VISIBLE): Use it. This ports to Clang 3.2.
2184
21852012-12-27 Glenn Morris <rgm@gnu.org>
2186
2187 * cygw32.c (Fcygwin_convert_file_name_to_windows)
2188 (Fcygwin_convert_file_name_from_windows): Doc fixes.
2189
21902012-12-27 Eli Zaretskii <eliz@gnu.org>
2191
2192 * fileio.c (file_name_as_directory, directory_file_name):
2193 Accept an additional argument MULTIBYTE to indicate whether the input C
2194 came from a multibyte or a unibyte Lisp string; all callers
2195 adjusted. Don't assume the input string is always multibyte.
2196 (Bug#13262)
2197 (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly:
2198 don't ENCODE_FILE them, and return a unibyte string if the input
2199 was unibyte.
2200 (Fexpand_file_name): Don't mix unibyte with multibyte strings, and
2201 don't assume the input strings will always be multibyte. If the
2202 input strings are multibyte, decode strings obtained from C
2203 library functions.
2204
22052012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2206
2207 * lisp.h (toplevel): Add two notices to the comment about
2208 defining a new Lisp data type.
2209 * print.c (print_object): If Lisp_Save_Value object's pointer
2210 is the address of a memory area containing Lisp_Objects, try
2211 to print them.
2212 * alloc.c (valid_lisp_object_p): Adjust comment.
2213
22142012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2215
2216 * keyboard.c (record_asynch_buffer_change): Initialize an event
2217 only if it's really needed.
2218 * frame.h (enum output_method): Remove output_mac member since
2219 it's a leftover from the deleted code.
2220 * frame.c (Fframep): Adjust user here ...
2221 * terminal.c (Fterminal_live_p): ... and here.
2222 * coding.c (Qmac): Now here because it's only used to denote
2223 end-of-line encoding type.
2224 (syms_of_coding): DEFSYM it.
2225 * frame.h (Qmac): Remove duplicated declaration.
2226
22272012-12-26 Paul Eggert <eggert@cs.ucla.edu>
2228
2229 * window.c (select_window_1): Now static, since it's used only here.
2230
22312012-12-25 Eli Zaretskii <eliz@gnu.org>
2232
2233 * window.c (window_body_cols): Subtract display margins from the
2234 window body width on TTYs as well. See
2235 http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
2236 for the original report.
2237
22382012-12-25 Dmitry Antipov <dmantipov@yandex.ru>
2239
2240 * xdisp.c (redisplay_window): Remove inner local variable
2241 because the outer shadowed one has the same meaning.
2242 * xterm.h (struct x_output): Remove toolbar_detached member since it's
2243 set but never used.
2244 * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
2245 (xg_create_tool_bar): Adjust users.
2246
22472012-12-24 Dmitry Antipov <dmantipov@yandex.ru>
2248
2249 * buffer.h (BUF_COMPACT): New macro to follow the common style.
2250 * buffer.c (Fget_buffer_create): Use it to set compact field of
2251 struct buffer_text to avoid accessing an uninitialized value
2252 when compact_buffer is called for the first time.
2253 (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
2254 (Fset_buffer_modified_p): Use buffer_window_count to check
2255 whether the buffer is displayed in some window.
2256 * xdisp.c (message_dolog): Likewise.
2257
22582012-12-23 Eli Zaretskii <eliz@gnu.org>
2259
2260 * w32.c (acl_set_file): If setting the file security descriptor
2261 fails, and the new DACL is identical to the existing one, silently
2262 return success. This fixes problems for users backing up their
2263 own files without having the necessary privileges for setting
2264 security descriptors.
2265
2266 * w32proc.c (reader_thread): Do not index fd_info[] with negative
2267 values.
2268 (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
2269 after WaitForSingleObject returns normally. This expedites reader
2270 thread shutdown when delete_child triggers it.
2271 (reap_subprocess): More accurate commentary for why we call
2272 delete_child only when cp->fd is negative.
2273
2274 * w32.c (sys_close): Do not call delete_child on a subprocess
2275 whose handle is not yet closed. Instead, set its file descriptor
2276 to a negative value, so that reap_subprocess will call
2277 delete_child on that subprocess when its SIGCHLD arrives.
2278 This avoids closing handles used for communications between sys_select
2279 and reader_thread, which doesn't give sys_select a chance to
2280 notice that the process exited and invoke the SIGCHLD handler for
2281 it.
2282
22832012-12-23 Jan Djärv <jan.h.d@swipnet.se>
2284
2285 * nsfns.m (Fns_do_applescript): Run event loop until script has
2286 been executed (Bug#12969).
2287 (ns_run_ascript): Chech as_script for nil, set to nil after
2288 executing script.
2289
22902012-12-22 Martin Rudalics <rudalics@gmx.at>
2291
2292 * window.c (Fselect_window): Reword doc-string (Bug#13248).
2293
22942012-12-22 Eli Zaretskii <eliz@gnu.org>
2295
2296 * w32term.c (w32fullscreen_hook): New function.
2297 (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
2298
22992012-12-21 Eli Zaretskii <eliz@gnu.org>
2300
2301 * fileio.c (Finsert_file_contents): Doc fix.
2302
2303 * w32proc.c (new_child, delete_child, find_child_pid): For a
2304 subprocess, consider its slot being in use as long as its process
2305 handle (procinfo.hProcess) is not NULL. This avoids reusing the
2306 slot when a new process is started immediately after killing
2307 another one, without waiting enough time for the first process to
2308 be reaped and resources allocated for it be orderly freed.
2309 (Bug#13086)
2310 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2311
23122012-12-21 Chong Yidong <cyd@gnu.org>
2313
2314 * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
2315
2316 * fns.c (Fcompare_strings): Doc fix (Bug#13081).
2317
23182012-12-21 Eli Zaretskii <eliz@gnu.org>
2319
2320 * w32.c (get_name_and_id): Always pass NULL as the first argument
2321 of lookup_account_sid. Avoids crashes with UNC file names that
2322 refer to DFS domains, not to specific machine names. (Bug#12621)
2323 Remove now unused argument FNAME; all callers changed.
2324 (get_file_owner_and_group): Remove now unused argument FNAME; all
2325 callers changed.
2326
23272012-12-21 Chong Yidong <cyd@gnu.org>
2328
2329 * editfns.c (Finsert_char): Since read-char-by-name now signals an
2330 error for invalid chars, don't check for a nil return value.
2331
23322012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2333
2334 Avoid calls to CHAR_TO_BYTE if byte position is known.
2335 * editfns.c (make_buffer_string_both): Use move_gap_both.
2336 (Fbuffer_string): Use make_buffer_string_both.
2337 * marker.c (buf_charpos_to_bytepos): Convert to eassert.
2338 Adjust comment.
2339 (buf_bytepos_to_charpos): Likewise.
2340 (charpos_to_bytepos): Remove.
2341 * fileio.c (Finsert_file_contents): Use move_gap_both.
2342 * search.c (Freplace_match): Likewise.
2343 * process.c (process_send_region): Likewise. Use convenient
2344 names for byte positions.
2345 * lisp.h (charpos_to_bytepos): Remove prototype.
2346 * indent.c (scan_for_column): Use CHAR_TO_BYTE.
2347 * insdel.c (move_gap): Likewise.
2348
23492012-12-20 Paul Eggert <eggert@cs.ucla.edu>
2350
2351 * xdisp.c (redisplay_internal): Remove now-unused local.
2352
23532012-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
2354
2355 * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
2356 (redisplay_internal): Don't bother selecting the frame to get the
2357 proper value of frame-local variables (bug#13225).
2358
23592012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2360
2361 * textprop.c (set_text_properties_1): Do not allow NULL interval.
2362 Rename 4th argument since it may be buffer or string. Adjust comment.
2363 * intervals.c (graft_intervals_info_buffer): Find an interval here.
2364
23652012-12-19 Dmitry Antipov <dmantipov@yandex.ru>
2366
2367 * coding.c (Fdetect_coding_region): Do not check start and end with
2368 CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
2369 (code_convert_region): Likewise.
2370
23712012-12-18 Eli Zaretskii <eliz@gnu.org>
2372
2373 * w32.c (acl_get_file, acl_set_file): Run the file name through
2374 map_w32_filename, and resolve any symlinks in the file name, like
2375 Posix platforms do.
2376 (acl_set_file): Call revert_to_self, if any privileges were
2377 enabled.
2378
23792012-12-17 Juanma Barranquero <lekktu@gmail.com>
2380
2381 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
2382 ($(BLD)/w32.$(O)): Update dependencies.
2383
23842012-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
2385
2386 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
2387 propagate redisplay's scrolling (if any) to the right window.
2388 (redisplay_internal): Use ensure_selected_frame.
2389 (display_mode_lines): Complete last fix.
2390 * window.c (select_window_1): New func, extracted from select_window.
2391 (select_window): Use it.
2392 * window.h (select_window_1): Declare.
2393
23942012-12-17 Eli Zaretskii <eliz@gnu.org>
2395
2396 Emulate Posix ACL APIs on MS-Windows.
2397 * w32.c: Include sddl.h and sys/acl.h.
2398 (SDDL_REVISION_1): Define if not already defined.
2399 (g_b_init_get_security_descriptor_dacl)
2400 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
2401 (g_b_init_is_valid_security_descriptor)
2402 (g_b_init_set_file_security): New static flags.
2403 (globals_of_w32): Initialize them to zero.
2404 (SetFileSecurity_Name): New string constant.
2405 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
2406 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
2407 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
2408 (IsValidSecurityDescriptor_Proc): New typedefs.
2409 (get_file_security, get_security_descriptor_owner)
2410 (get_security_descriptor_group): Set errno to ENOTSUP.
2411 (set_file_security, get_security_descriptor_dacl)
2412 (is_valid_security_descriptor, convert_sd_to_sddl)
2413 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
2414 (acl_free, acl_get_file, acl_set_file): New functions.
2415
2416 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
2417
24182012-12-17 Paul Eggert <eggert@cs.ucla.edu>
2419
2420 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
2421 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
2422 for some of that bug's symptoms can now cause Emacs to abort.
2423 Remove the workaround.
2424 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
2425 The bug that caused SIGCHLD to get lost has been fixed, and the
2426 workaround for it can now cause Emacs to abort.
2427
24282012-12-16 Paul Eggert <eggert@cs.ucla.edu>
2429
2430 * sysdep.c (emacs_abort): Bump backtrace size to 40.
2431 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
2432 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
2433
24342012-12-16 Romain Francoise <romain@orebokech.com>
2435
2436 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
2437 (Fcopy_file): Change last arg to `preserve_extended_attributes'
2438 and copy ACL entries of file in addition to SELinux context if set.
2439 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
2440
2441 * Makefile.in (LIBACL_LIBS): New macro.
2442 (LIBES): Use it.
2443
24442012-12-15 Paul Eggert <eggert@cs.ucla.edu>
2445
2446 * fileio.c (internal_delete_file): Use bool for boolean.
2447
24482012-12-15 Eli Zaretskii <eliz@gnu.org>
2449
2450 Fix bug #13079 on MS-Windows with temp files not being deleted.
2451 * w32.h (_child_process): New members input_file and
2452 pending_deletion.
2453 (register_child): First argument is now pid_t.
2454 (record_infile, record_pending_deletion): New prototypes.
2455
2456 * w32proc.c (new_child): Initialize input_file and
2457 pending_deletion members of the child.
2458 (delete_child): Delete the child's temporary input file, if any,
2459 that is pending deletion.
2460 (register_child): First argument is now pid_t.
2461 (record_infile, record_pending_deletion): New functions.
2462 (reap_subprocess): Fix a typo in DebPrint string.
2463 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
2464
2465 * fileio.c (internal_delete_file): Return an int again: non-zero
2466 if delete-file succeeds, zero otherwise.
2467
2468 * lisp.h (internal_delete_file): Adjust prototype.
2469
2470 * callproc.c (Fcall_process): Don't overwrite infile with result
2471 of DECODE_FILE.
2472 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
2473 asynchronous subprocess, record the name of the input file name,
2474 if any.
2475 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
2476 delete the file, record it as pending deletion when the subprocess
2477 exits.
2478
24792012-12-14 Eli Zaretskii <eliz@gnu.org>
2480
2481 * editfns.c [HAVE_PWD_H]: Include grp.h.
2482
2483 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
2484
24852012-12-14 Paul Eggert <eggert@cs.ucla.edu>
2486
2487 Fix permissions bugs with setgid directories etc. (Bug#13125)
2488 * dired.c (Ffile_attributes): Return t as the 9th attribute,
2489 to mark it as a placeholder. The old value was often wrong.
2490 The only user of this attribute has been changed to use
2491 file-ownership-preserved-p instead, with its new group arg.
2492 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
2493
24942012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
2495
2496 * xdisp.c (select_frame_for_redisplay, display_mode_lines):
2497 Keep selected_window and selected_frame in sync.
2498
24992012-12-14 Eli Zaretskii <eliz@gnu.org>
2500
2501 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
2502 try to get accurate owner and group information from NT file
2503 security APIs. This is to make most callers of 'stat' and
2504 'lstat', which don't need that information, much faster.
2505
2506 * dired.c (Ffile_attributes) [WINDOWSNT]:
2507 Set w32_stat_get_owner_group to a non-zero value, to request accurate
2508 owner and group information from 'lstat'.
2509
25102012-12-13 Paul Eggert <eggert@cs.ucla.edu>
2511
2512 * fileio.c (Finsert_file_contents): Don't put tail into head area,
2513 as that confuses set-auto-coding, so insist on the head-read
2514 returning the full 1024 bytes. Let lseek compute the tail offset;
2515 less work for us. Do not ignore I/O errors when reading the tail.
2516
2517 * xdisp.c: Minor style fixes.
2518 (init_iterator): Hoist assignment out of if-expression.
2519 (markpos_of_region): Callers now test for sign, not for -1.
2520
25212012-12-13 Dmitry Antipov <dmantipov@yandex.ru>
2522
2523 Minor redisplay optimization when the region length is zero.
2524 * xdisp.c (markpos_of_region): New function.
2525 (init_iterator): Do not highlight the region of zero length.
2526 (redisplay_window): Check whether the region is of non-zero length.
2527 (try_cursor_movement): Allow if the region length is zero.
2528 (try_window_reusing_current_matrix, try_window_id): Likewise.
2529
25302012-12-13 Eli Zaretskii <eliz@gnu.org>
2531
2532 * search.c (search_buffer): Check the inverse translations of each
2533 character in pattern when the buffer being searched is unibyte.
2534 (Bug#13084)
2535
25362012-12-13 Paul Eggert <eggert@cs.ucla.edu>
2537
2538 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
2539 files, fixing a regression from 24.2.
2540 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
2541
25422012-12-13 Paul Eggert <eggert@cs.ucla.edu>
2543
2544 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
2545 fstat shouldn't fail, and if it does fail copy-file should not proceed.
2546 Remove unnecessary S_ISLNK test, as (contra the comments) this
2547 function can't copy symlinks. Improve quality of error message
2548 when attempting to copy files that are neither regular files nor
2549 directories.
2550
25512012-12-12 Dmitry Antipov <dmantipov@yandex.ru>
2552
2553 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
2554 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
2555 * window.c (Frecenter):
2556 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
2557 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
2558
25592012-12-12 Daniel Colascione <dancol@dancol.org>
2560
2561 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
2562 the dumped Emacs is not a sparse file, greatly improving Cygwin
2563 "make bootstrap" performance.
2564
25652012-12-11 Michael Albinus <michael.albinus@gmx.de>
2566
2567 * inotify.c (inotify_callback): Generate an Emacs event for every
2568 incoming inotify event.
2569
25702012-12-11 Eli Zaretskii <eliz@gnu.org>
2571
2572 * xdisp.c (handle_face_prop): Fix logic of computing
2573 it->start_of_box_run_p.
2574 (append_space_for_newline): If the glyph row is R2L, reset the
2575 iterator's end_of_box_run_p flag before prepending the space glyph.
2576 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
2577 iterator's start_of_box_run_p flag before prepending the stretch.
2578 (append_glyph, produce_image_glyph, append_composite_glyph)
2579 (append_stretch_glyph, append_glyphless_glyph): Reverse the
2580 left_box_line_p and right_box_line_p flags of the glyph for R2L
2581 glyph rows. (Bug#13011)
2582
25832012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
2584
2585 * buffer.c (Fset_buffer_multibyte): Do not force redisplay
2586 if changed buffer is not shown in a window.
2587 * insdel.c (prepare_to_modify_buffer): Likewise.
2588 * window.c (replace_buffer_in_windows_safely): Do nothing
2589 if buffer is not shown in a window.
2590 (Fforce_window_update): Likewise if string or buffer argument
2591 is passed.
2592
25932012-12-11 Eli Zaretskii <eliz@gnu.org>
2594
2595 * inotify.c (Finotify_add_watch): Rename decoded_file_name to
2596 encoded_file_name, which is what it is.
2597
25982012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
2599
2600 Consistently use marker_position and marker_byte_position.
2601 * fringe.c (Ffringe_bitmaps_at_pos):
2602 * indent.c (Fvertical_motion):
2603 * insdel.c (prepare_to_modify_buffer):
2604 * keyboard.c (make_lispy_position):
2605 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
2606 (window_scroll_pixel_based, displayed_window_lines)
2607 (Fset_window_configuration):
2608 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
2609 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
2610 Replace direct access to marker fields with calls
2611 to marker_position and/or marker_byte_position.
2612
26132012-12-11 Juanma Barranquero <lekktu@gmail.com>
2614
2615 * makefile.w32-in (SIG2STR_H): New macro.
2616 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
2617 ($(BLD)/w32notify.$(O)): Update dependencies.
2618
26192012-12-10 Daniel Colascione <dancol@dancol.org>
2620
2621 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
2622 Windows file notification functionality unless WINDOWSNT.
2623
2624 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
2625 declarations.
2626
2627 * w32fns.c (cache_system_info): Initialize the global hinst
2628 variable here so various initialization calls DTRT.
2629
2630 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
2631 (hinst): Remove unneeded extern declaration.
2632 (_start): Remove initialization of above variables; remove
2633 initialization of hinst, as cache_system_info now does that.
2634
2635 * emacs.c (main): Call cache_system_info early in startup; we
2636 previously weren't calling it in Cygwin builds.
2637
2638 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
2639 Teach the autoconf build system how to compile a Windows resource file
2640 and link it to Emacs.
2641
26422012-12-10 Dmitry Antipov <dmantipov@yandex.ru>
2643
2644 Per-buffer window counters.
2645 * buffer.h (struct buffer): New member window_count.
2646 (buffer_window_count): New function.
2647 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
2648 Initialize window_count.
2649 (Fkill_buffer): Verify window_count for the buffer being killed.
2650 (modify_overlay): Do not force redisplay if buffer is not shown
2651 in any window.
2652 (init_buffer_once): Initialize window_count for buffer_defaults
2653 and buffer_local_symbols.
2654 * window.h (buffer_shared): Remove declaration.
2655 (wset_buffer): Convert from inline ...
2656 * window.c (wset_buffer): ... to an ordinary function.
2657 (adjust_window_count): New function.
2658 (make_parent_window): Use it.
2659 * xdisp.c (buffer_shared): Remove.
2660 (redisplay_internal, redisplay_window): Adjust users.
2661 (buffer_shared_and_changed): Use per-buffer window counter.
2662
26632012-12-10 Eli Zaretskii <eliz@gnu.org>
2664
2665 Support for filesystem notifications on MS-Windows.
2666 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
2667 and this is a TTY frame, signal the caller that keyboard input is
2668 available.
2669
2670 * w32xfns.c (drain_message_queue): Now returns an int: an
2671 indication whether any WM_EMACS_FILENOTIFY messages were found in
2672 the queue.
2673
2674 * w32inevt.c (handle_file_notifications): New function.
2675 (w32_console_read_socket): Call it to process file notifications.
2676
2677 * w32console.c (initialize_w32_display): Record the main thread ID
2678 in dwMainThreadId.
2679
2680 * deps.mk (inotify.o): New dependency list.
2681
2682 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
2683
2684 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
2685 (WM_EMACS_END): Bump value by 1.
2686 (notification_buffer_in_use, file_notifications)
2687 (notifications_size, notifications_desc): Declare.
2688 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
2689 Add prototypes.
2690
2691 * w32term.c (lispy_file_action, queue_notifications): New functions.
2692 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
2693 <Qrenamed_to>: New symbols.
2694 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
2695
2696 * w32notify.c: New file, implements file event notifications for
2697 MS-Windows.
2698
2699 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
2700 by posting it to the w32_read_socket queue.
2701
2702 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
2703
2704 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
2705 (GLOBAL_SOURCES): Add w32notify.c
2706 ($(BLD)/w32notify.$(O)): New set of dependencies.
2707
2708 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
2709
2710 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
2711 Handle FILE_NOTIFY_EVENT.
2712 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
2713 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
2714 w32notify-handle-event by default.
2715
2716 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
2717 syms_of_w32notify.
2718
27192012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
2720
2721 Support for filesystem notifications on GNU/Linux via inotify.
2722 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
2723
2724 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
2725
2726 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
2727 (syms_of_keyboard): DEFSYM it.
2728 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
2729 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
2730 Qfile_inotify events.
2731 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
2732 special-event-map to inotify-handle-event.
2733
2734 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
2735
2736 * Makefile.in (base_obj): Add inotify.o.
2737
2738 * inotify.c: New file.
2739
27402012-12-10 Jan Djärv <jan.h.d@swipnet.se>
2741
2742 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
2743
27442012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com>
2745
2746 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
2747 DWORD_PTR, for compatibility with 64-bit builds.
2748
2749 * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
2750 (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
2751 (system_process_attributes): Use SIZE_T rather than DWORD, for
2752 compatibility with 64-bit builds.
2753
27542012-12-10 Christopher Schmidt <christopher@ch.ristopher.com>
2755
2756 * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
2757
27582012-12-10 Eli Zaretskii <eliz@gnu.org>
2759
2760 * indent.c (Fvertical_motion): If a display string will be
2761 displayed on the left or the right margin, don't consider it as a
2762 factor in cursor positioning. (Bug#13108)
2763
27642012-12-10 Martin Rudalics <rudalics@gmx.at>
2765
2766 * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
2767
27682012-12-10 Paul Eggert <eggert@cs.ucla.edu>
2769
2770 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
2771 for string length.
2772
27732012-12-08 Eli Zaretskii <eliz@gnu.org>
2774
2775 * w32.c (unsetenv): Return 0 if the input string is too long.
2776
27772012-12-08 Paul Eggert <eggert@cs.ucla.edu>
2778
2779 Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
2780 * alloc.c (xputenv): New function.
2781 * dbusbind.c (Fdbus_init_bus):
2782 * emacs.c (main):
2783 * xterm.c (x_term_init):
2784 Use xputenv instead of setenv or putenv, to detect memory exhaustion.
2785 * editfns.c (initial_tz): Move static var decl up.
2786 (tzvalbuf_in_environ): New static var.
2787 (init_editfns): Initialize these two static vars.
2788 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
2789 Save old TZ value on stack, if it's small.
2790 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
2791 instead, use xputenv+unsetenv to set and restore TZ.
2792 (environbuf): Remove static var. All uses removed.
2793 (Fset_time_zone_rule): Do not save TZ and environ;
2794 no longer needed here.
2795 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
2796 Move to inside set_time_zone_rule; they don't need file scope any more.
2797 (set_time_zone_rule): Maintain the TZ=value string separately.
2798 (syms_of_editfns): Don't initialize initial_tz;
2799 init_editfns now does it.
2800 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
2801 * lisp.h (xputenv): New decl.
2802
28032012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
2804
2805 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
2806
28072012-12-08 Eli Zaretskii <eliz@gnu.org>
2808
2809 * w32.c (unsetenv, sys_putenv): New functions.
2810
28112012-12-08 Chong Yidong <cyd@gnu.org>
2812
2813 * editfns.c (Finsert_char): Make the error message more
2814 informative (Bug#12992).
2815
28162012-12-08 Paul Eggert <eggert@cs.ucla.edu>
2817
2818 Simplify get_lim_data.
2819 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
2820 Remove USG and vlimit methods; no longer used these days.
2821 Add #error catchall just in case.
2822
2823 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
2824 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
2825 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
2826 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
2827 (deleted_pid_list, Fdelete_process, create_process)
2828 (record_child_status_change, handle_child_signal, deliver_child_signal)
2829 (init_process_emacs, syms_of_process):
2830 Assume SIGCHLD is defined.
2831 (parse_signal): Remove. All uses removed.
2832 (abbr_to_signal): New static function.
2833 (Fsignal_process): Use it to convert signal names to ints.
2834 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
2835 kill (getpgrp (), ...).
2836 (emacs_sigaction_init): Assume SIGCHLD is defined.
2837 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
2838 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
2839 * syssignal.h (EMACS_KILLPG): Remove.
2840 All uses replaced by 'kill' with a negative pid.
2841 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
2842 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
2843
28442012-12-07 Paul Eggert <eggert@cs.ucla.edu>
2845
2846 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
2847 This will cause a production Emacs to dump core instead of
2848 infinite-looping.
2849
28502012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
2851
2852 * frame.c (make_frame): Do not set window's buffer to t.
2853 * window.c (Fsplit_window_internal): Likewise. Previously it was
2854 used to indicate that the window is being set up. Now we use
2855 set_window_buffer for all new windows, so the condition in ...
2856 (Fset_window_buffer): ... is always true and can be removed.
2857
28582012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
2859
2860 Convenient macro to check whether the buffer is hidden.
2861 * buffer.h (BUFFER_HIDDEN_P): New macro.
2862 * frame.c (make_frame): Use it. Adjust comment.
2863 * buffer.c (candidate_buffer): New function.
2864 (Fother_buffer, other_buffer_safely): Use it.
2865
28662012-12-06 Eli Zaretskii <eliz@gnu.org>
2867
2868 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
2869 if the child process is still running. Instead, exit the wait
2870 loop and return zero. (Bug#13086)
2871
28722012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
2873
2874 * frame.h (x_char_width, x_char_height): Remove prototypes.
2875 * w32term.h (x_char_width, x_char_height): Likewise.
2876 * xfns.c (x_char_width, x_char_height): Remove.
2877 * w32fns.c (x_char_width, x_char_height): Likewise.
2878 * nsfns.c (x_char_width, x_char_height): Likewise.
2879 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
2880 all window frames.
2881 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
2882 * keyboard.c (command_loop_1): Remove prototype.
2883 (command_loop_2, top_level_1): Add static to match prototype.
2884
28852012-12-06 Paul Eggert <eggert@cs.ucla.edu>
2886
2887 Fix a recently-introduced delete-process race condition.
2888 * callproc.c, process.h (record_kill_process):
2889 New function, containing part of the old call_process_kill.
2890 (call_process_kill): Use it.
2891 This does not change call_process_kill's behavior.
2892 * process.c (Fdelete_process): Use record_kill_process to fix a
2893 race condition that could cause Emacs to lose track of a child.
2894
28952012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
2896
2897 Avoid code duplication between prev_frame and next_frame.
2898 * frame.c (candidate_frame): New function. Add comment.
2899 (prev_frame, next_frame): Use it. Adjust comment.
2900
29012012-12-06 Eli Zaretskii <eliz@gnu.org>
2902
2903 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
2904 fails, signal an error instead of continuing with an empty
2905 string. (Bug#13079)
2906 Encode expanded temp file pattern before passing it to mkstemp or
2907 mktemp.
2908
2909 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
2910 Encode the file name before passing it to dostounix_filename, in
2911 case it will downcase it (under w32-downcase-file-names).
2912 (Bug#12933)
2913
29142012-12-05 Paul Eggert <eggert@cs.ucla.edu>
2915
2916 Minor call-process cleanups.
2917 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
2918 at the same time as other platforms, to simplify analysis.
2919 No need for fd0_volatile since we have synch_process_fd.
2920 Avoid needless emacs_close; arg is always negative.
2921
29222012-12-04 Andreas Schwab <schwab@linux-m68k.org>
2923
2924 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
2925 processes.
2926
29272012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
2928
2929 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
2930 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
2931 and mouse_face_hidden members to a bitfields.
2932 * frame.h (struct frame): Remove set-but-not-used space_width member.
2933 (FRAME_SPACE_WIDTH): Remove.
2934 * nsterm.m, w32term.c, xterm.c: Adjust users.
2935 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
2936 member. Adjust users. Convert term_initted, delete_in_insert_mode,
2937 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
2938 members to a bitfields.
2939
29402012-12-03 Paul Eggert <eggert@cs.ucla.edu>
2941
2942 Don't let call-process be a zombie factory (Bug#12980).
2943 Fixing this bug required some cleanup of the signal-handling code.
2944 As a side effect, this change also fixes a longstanding rare race
2945 condition whereby Emacs could mistakenly kill unrelated processes,
2946 and it fixes a bug where a second C-g does not kill a recalcitrant
2947 synchronous process in GNU/Linux and similar platforms.
2948 The patch should also fix the last vestiges of Bug#9488,
2949 a bug which has mostly been fixed on the trunk by other changes.
2950 * callproc.c, process.h (synch_process_alive, synch_process_death)
2951 (synch_process_termsig, sync_process_retcode):
2952 Remove. All uses removed, to simplify analysis and so that
2953 less consing is done inside critical sections.
2954 * callproc.c (call_process_exited): Remove. All uses replaced
2955 with !synch_process_pid.
2956 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
2957 These take the role of what used to be in unwind-protect arg.
2958 All uses changed.
2959 (block_child_signal, unblock_child_signal):
2960 New functions, to avoid races that could kill innocent-victim processes.
2961 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
2962 (call_process_kill): Record killed processes as deleted, so that
2963 zombies do not clutter up the system. Do this inside a critical
2964 section, to avoid a race that would allow the clutter.
2965 (call_process_cleanup): Fix code so that the second C-g works again
2966 on common platforms such as GNU/Linux.
2967 (Fcall_process): Create the child process in a critical section,
2968 to fix a race condition. If creating an asynchronous process,
2969 record it as deleted so that zombies do not clutter up the system.
2970 Do unwind-protect for WINDOWSNT too, as that's simpler in the
2971 light of these changes. Omit unnecessary call to emacs_close
2972 before failure, as the unwind-protect code does that.
2973 * callproc.c (call_process_cleanup):
2974 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
2975 * process.c (record_deleted_pid): New function, containing
2976 code refactored out of Fdelete_process.
2977 (Fdelete_process): Use it.
2978 (process_status_retrieved): Remove. All callers changed to use
2979 child_status_change.
2980 (record_child_status_change): Remove, folding its contents into ...
2981 (handle_child_signal): ... this signal handler. Now, this
2982 function is purely a handler for SIGCHLD, and is not called after
2983 a synchronous waitpid returns; the synchronous code is moved to
2984 wait_for_termination. There is no need to worry about reaping
2985 more than one child now.
2986 * sysdep.c (get_child_status, child_status_changed): New functions.
2987 (wait_for_termination): Now takes int * status and bool
2988 interruptible arguments, too. Do not record child status change;
2989 that's now the caller's responsibility. All callers changed.
2990 Reimplement in terms of get_child_status.
2991 (wait_for_termination_1, interruptible_wait_for_termination):
2992 Remove. All callers changed to use wait_for_termination.
2993 * syswait.h: Include <stdbool.h>, for bool.
2994 (record_child_status_change, interruptible_wait_for_termination):
2995 Remove decls.
2996 (record_deleted_pid, child_status_changed): New decls.
2997 (wait_for_termination): Adjust to API changes noted above.
2998
2999 * bytecode.c, lisp.h (Qbytecode): Remove.
3000 No longer needed after 2012-11-20 interactive-p changes.
3001
30022012-12-03 Eli Zaretskii <eliz@gnu.org>
3003
3004 * xdisp.c (redisplay_window): If the cursor is visible, but inside
3005 the scroll margin, move point outside the margin. (Bug#13055)
3006
30072012-12-03 Jan Djärv <jan.h.d@swipnet.se>
3008
3009 * gtkutil.c (my_log_handler): New function.
3010 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
3011
30122012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3013
3014 * lisp.h (modify_region): Rename to...
3015 (modify_region_1): ...new prototype.
3016 * textprop.c (modify_region): Now static. Adjust users.
3017 * insdel.c (modify_region): Rename to...
3018 (modify_region_1): ...new function to work with current buffer.
3019 Adjust comment and users. Use true and false for booleans.
3020
30212012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3022
3023 * alloc.c (free_save_value): New function.
3024 (safe_alloca_unwind): Use it.
3025 * lisp.h (free_save_value): New prototype.
3026 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
3027 Add comment.
3028 (save_excursion_restore): Adjust to match saved data structure.
3029 Use free_save_value to offload some work from GC. Drop obsolete
3030 #if 0 code.
3031
30322012-12-03 Chong Yidong <cyd@gnu.org>
3033
3034 * fileio.c (Vauto_save_list_file_name): Doc fix.
3035
30362012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com>
3037
3038 * w32fns.c: Remove prototype of atof.
3039 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
3040 builds.
3041 (file_dialog_callback): Make it UINT_PTR.
3042
3043 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
3044 with 64-bit builds.
3045
3046 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3047 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
3048 defined.
3049
30502012-12-03 Glenn Morris <rgm@gnu.org>
3051
3052 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
3053
30542012-12-02 Paul Eggert <eggert@cs.ucla.edu>
3055
3056 Fix xpalloc confusion after memory is exhausted.
3057 * alloc.c (xpalloc): Comment fix.
3058 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
3059 and signals an error, do not clear charset_table_size, as
3060 charset_table is still valid.
3061 * doprnt.c (evxprintf): Clear *BUF after freeing it.
3062
3063 Use execve to avoid need to munge environ (Bug#13054).
3064 * callproc.c (Fcall_process):
3065 * process.c (create_process):
3066 Don't save and restore environ; no longer needed.
3067 * callproc.c (child_setup):
3068 Use execve, not execvp, to preserve environ.
3069
30702012-12-01 Paul Eggert <eggert@cs.ucla.edu>
3071
3072 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
3073
30742012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3075
3076 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
3077 display for sliced images (Bug#10500).
3078
3079 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
3080
30812012-11-30 Juanma Barranquero <lekktu@gmail.com>
3082
3083 * doc.c (Fdocumentation): Re-add handling of function-documentation,
3084 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
3085
30862012-11-29 Dmitry Antipov <dmantipov@yandex.ru>
3087
3088 * xdisp.c (window_outdated): Remove eassert since it hits
3089 some suspicious corner cases (see Bug#13007 and Bug#13012).
3090 (mode_line_update_needed): New function.
3091 (redisplay_internal, redisplay_window): Use it.
3092 (ensure_selected_frame): New function.
3093 (redisplay_internal, unwind_redisplay): Use it.
3094 (redisplay_internal): Move comment about buffer_shared...
3095 (buffer_shared_and_changed): ...near to its real use.
3096
30972012-11-29 Paul Eggert <eggert@cs.ucla.edu>
3098
3099 * callproc.c (Fcall_process): Don't misreport vfork failure.
3100
31012012-11-28 Paul Eggert <eggert@cs.ucla.edu>
3102
3103 * callproc.c (Fcall_process): Fix vfork portability problems.
3104 Do not assume that fd[0], count, filefd, and save_environ survive
3105 vfork. Fix bug whereby wrong errno value could be reported for
3106 pipe failure. Some minor cleanups, too, as follows. Move buf and
3107 bufsize to the context where they're needed. Change new_argv to
3108 be of type char **, as this is more convenient and avoids casts.
3109 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
3110 Now local constants, not macros.
3111
31122012-11-18 Kenichi Handa <handa@gnu.org>
3113
3114 * font.c (font_unparse_xlfd): Fix previous change. Keep "const"
3115 for the variable "f".
3116
31172012-11-13 Kenichi Handa <handa@gnu.org>
3118
3119 * font.c (font_unparse_xlfd): Exclude special characters from the
3120 generating XLFD name.
3121
31222012-11-27 Paul Eggert <eggert@cs.ucla.edu>
3123
3124 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
3125 * dired.c (stat_uname, stat_gname):
3126 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
3127
3128 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
3129 * dired.c (directory_files_internal, file_name_completion):
3130 Assume EAGAIN and EINTR are defined.
3131
3132 * fileio.c (Fcopy_file): Assume EISDIR is defined.
3133 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
3134 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
3135 * lread.c (readbyte_from_file): Assume EINTR is defined.
3136 * process.c (wait_reading_process_output, send_process) [subprocesses]:
3137 Assume EIO and EAGAIN are defined.
3138 * unexcoff.c (write_segment): Assume EFAULT is defined.
3139
31402012-11-27 Eli Zaretskii <eliz@gnu.org>
3141
3142 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
3143 (Bug#11964)
3144
3145 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
3146 highlighting on the frame was cleared. Prevents assertion
3147 violations when repeatedly clicking on the "Top" link of the
3148 "bread-crumbs" in Info buffers.
3149
31502012-11-25 Paul Eggert <eggert@cs.ucla.edu>
3151
3152 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
3153
31542012-11-24 Ken Brown <kbrown@cornell.edu>
3155
3156 * keyboard.c (HAVE_MOUSE):
3157 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
3158 were always defined.
3159
12012-11-24 Eli Zaretskii <eliz@gnu.org> 31602012-11-24 Eli Zaretskii <eliz@gnu.org>
2 3161
3 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not 3162 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
@@ -22,8 +3181,8 @@
22 (set_frame_menubar): Adjust user. 3181 (set_frame_menubar): Adjust user.
23 * w32term.h (struct x_output): Drop outdated #if 0 code. 3182 * w32term.h (struct x_output): Drop outdated #if 0 code.
24 (struct w32_output): Use bitfields for explicit_parent, 3183 (struct w32_output): Use bitfields for explicit_parent,
25 asked_for_visible and menubar_active members. Drop 3184 asked_for_visible and menubar_active members.
26 unused pending_menu_activation member. 3185 Drop unused pending_menu_activation member.
27 * xterm.h (struct x_output): Drop outdated #if 0 code. 3186 * xterm.h (struct x_output): Drop outdated #if 0 code.
28 Use bitfields for explicit_parent, asked_for_visible, 3187 Use bitfields for explicit_parent, asked_for_visible,
29 has_been_visible and net_wm_state_hidden_seen members. 3188 has_been_visible and net_wm_state_hidden_seen members.
@@ -116,8 +3275,8 @@
116 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory) 3275 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
117 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to 3276 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
118 dostounix_filename. Prevents crashes down the road, because 3277 dostounix_filename. Prevents crashes down the road, because
119 dostounix_filename assumes it gets a unibyte string. Reported by 3278 dostounix_filename assumes it gets a unibyte string.
120 Michel de Ruiter <michel@sentient.nl>, see 3279 Reported by Michel de Ruiter <michel@sentient.nl>, see
121 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html 3280 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
122 3281
1232012-11-20 Stefan Monnier <monnier@iro.umontreal.ca> 32822012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
@@ -555,7 +3714,7 @@
555 * image.c (xpm_make_color_table_h): Fix compiler error because 3714 * image.c (xpm_make_color_table_h): Fix compiler error because
556 make_hash_table changed. 3715 make_hash_table changed.
557 3716
5582012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change) 37172012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change)
559 3718
560 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541). 3719 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
561 3720
@@ -1112,7 +4271,7 @@
1112 4271
11132012-10-19 Stefan Monnier <monnier@iro.umontreal.ca> 42722012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
1114 4273
1115 * fns.c (Fnreverse): Include the problem element when signalling an 4274 * fns.c (Fnreverse): Include the problem element when signaling an
1116 error (bug#12677). 4275 error (bug#12677).
1117 4276
11182012-10-18 Jan Djärv <jan.h.d@swipnet.se> 42772012-10-18 Jan Djärv <jan.h.d@swipnet.se>
@@ -2304,8 +5463,8 @@
2304 a public macro and no need to inline by hand. 5463 a public macro and no need to inline by hand.
2305 5464
23062012-09-26 Tomohiro Matsuyama <tomo@cx4a.org> 54652012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
2307 Stefan Monnier <monnier@iro.umontreal.ca> 5466 Stefan Monnier <monnier@iro.umontreal.ca>
2308 Juanma Barranquero <lekktu@gmail.com> 5467 Juanma Barranquero <lekktu@gmail.com>
2309 5468
2310 * profiler.c: New file. 5469 * profiler.c: New file.
2311 * Makefile.in (base_obj): Add profiler.o. 5470 * Makefile.in (base_obj): Add profiler.o.
@@ -10003,7 +13162,7 @@
100032012-05-09 Michael Albinus <michael.albinus@gmx.de> 131622012-05-09 Michael Albinus <michael.albinus@gmx.de>
10004 13163
10005 * dbusbind.c (xd_registered_buses): New internal Lisp object. 13164 * dbusbind.c (xd_registered_buses): New internal Lisp object.
10006 Rename all occurences of Vdbus_registered_buses to xd_registered_buses. 13165 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
10007 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses. 13166 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
10008 Initialize xd_registered_buses. 13167 Initialize xd_registered_buses.
10009 13168
@@ -20247,7 +23406,7 @@ See ChangeLog.11 for earlier changes.
20247;; coding: utf-8 23406;; coding: utf-8
20248;; End: 23407;; End:
20249 23408
20250 Copyright (C) 2011-2012 Free Software Foundation, Inc. 23409 Copyright (C) 2011-2013 Free Software Foundation, Inc.
20251 23410
20252 This file is part of GNU Emacs. 23411 This file is part of GNU Emacs.
20253 23412