ChangeLog 728 KB
Newer Older
Jan Djärv's avatar
Jan Djärv committed
1 2
2012-10-07  Jan Djärv  <jan.h.d@swipnet.se>

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
	* nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
	MAC_OS_X_VERSION_10_6.
	(syms_of_nsterm): Remove comment about Panther and above for ns-antialias-text.

	* nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
	(EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
	(struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.

	* nsselect.m (ns_string_from_pasteboard): Remove check for >=
	MAC_OS_X_VERSION_10_4.

	* nsmenu.m (fillWithWidgetValue:): Remove code for < MAC_OS_X_VERSION_10_2.

	* nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.

	* nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
	(ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.

Jan Djärv's avatar
Jan Djärv committed
21 22 23 24 25 26 27 28 29 30
	* nsterm.m (ns_in_resize): Remove (Bug#12479).
	(ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
	(ns_clear_frame, sendEvent, windowDidResize, drawRect:): Remove ns_in_resize
	check.
	(ns_clear_frame_area): Remove resize handle code.

	* nsfns.m (ns_in_resize): Remove.
	(x_set_icon_name, ns_set_name, ns_set_name_as_filename):  Remove ns_in_resize
	check.

Paul Eggert's avatar
Paul Eggert committed
31 32 33 34 35 36 37 38 39 40
2012-10-07  Paul Eggert  <eggert@cs.ucla.edu>

	Improve sys_siglist detection.
	* sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
	defined as a macro, as is done in Solaris.
	(sys_siglist_entries): New macro.
	(save_strsignal): Use it.
	* syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
	GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.

41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
2012-10-06  Jan Djärv  <jan.h.d@swipnet.se>

	* nsfns.m (Fx_create_frame): Call x_default_parameter with
	fullscreen/Fullscreen.

	* nsterm.h (EmacsView): Rename tbar_height to tibar_height.
	tobar_height is new.

	* nsterm.m (x_make_frame_visible): Check for fullscreen.
	(ns_fullscreen_hook): Activate old style fullscreen with a timer.
	(ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
	(windowDidResize:): Check for correct window if old style fullscreen.
	Capitalize word in comment.  Remove incorrect comment.
	(initFrameFromEmacs:): tbar_height renamed tibar_height.
	(windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
	error in drawing background.
	(toggleFullScreen:): Remove comment. Rearrange calls.
	Set toolbar values to zero, save old height in tobar_height.
	Restore tool bar height when leaving fullscreen.
	(canBecomeMainWindow): New function.

62 63 64 65
2012-10-06  Paul Eggert  <eggert@cs.ucla.edu>

	* keyboard.c (read_char): Remove unnecessary 'volatile's and label.

66 67
2012-10-05  Eli Zaretskii  <eliz@gnu.org>

68 69
	* w32proc.c (stop_timer_thread): Fix declaration of 'err'.

70 71 72 73 74 75 76 77
	* w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
	that time stamps of directories could also be changed.  Don't
	request the too broad GENERIC_WRITE, only the more restrictive
	FILE_WRITE_ATTRIBUTES access rights.

	* fileio.c (Fset_file_times): Special-case ignoring errors for
	directories only on MSDOS, not on MS-Windows.

78
2012-10-05  Ikumi Keita  <ikumi@ikumi.que.jp>  (tiny change)
79 80 81

	* minibuf.c (Fcompleting_read): Doc fix.  (Bug#12555)

82 83 84 85 86
2012-10-04  Eli Zaretskii  <eliz@gnu.org>

	* w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
	see whether CreateFile failed.

87 88 89 90 91 92
2012-10-04  Paul Eggert  <eggert@cs.ucla.edu>

	* profiler.c (handle_profiler_signal): Inhibit pending signals too,
	to avoid similar races.
	* keyboard.c (pending_signals): Now bool, not int.

93 94 95 96 97 98 99 100 101 102 103
	Port timers to OpenBSD, plus check for timer failures.
	OpenBSD problem reported by Han Boetes.
	* profiler.c (setup_cpu_timer): Check for failure of timer_settime
	and/or setitimer.
	(Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
	* syssignal.h (HAVE_ITIMERSPEC): New macro.  This is for platforms
	like OpenBSD, which has timer_settime but does not declare it.
	OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
	whether to use itimerspec-related primitives.  All uses of
	HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.

104 105 106 107 108
2012-10-02  Paul Eggert  <eggert@cs.ucla.edu>

	* profiler.c (handle_profiler_signal): Fix a malloc race
	that caused Emacs to hang on Fedora 17 when profiling Lisp.

109 110 111 112
2012-10-02  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (windowDidEnterFullScreen): Remove fprintf.

113 114 115 116 117
2012-10-02  Eli Zaretskii  <eliz@gnu.org>

	* w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
	consistent with the change in return value of 'safe_strsignal'.

118 119
2012-10-02  Paul Eggert  <eggert@cs.ucla.edu>

120 121 122 123 124 125 126 127 128 129 130 131
	Prefer plain 'static' to 'static inline' (Bug#12541).
	* bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
	(bidi_set_sor_type, bidi_push_embedding_level)
	(bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
	(bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
	(bidi_cache_search, bidi_cache_ensure_space)
	(bidi_cache_iterator_state, bidi_cache_find)
	(bidi_peek_at_next_level, bidi_set_paragraph_end)
	(bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
	(bidi_explicit_dir_char, bidi_resolve_neutral_1):
	Now 'static', not 'static inline'.

132 133 134 135 136 137 138 139 140
	Count overruns when profiling; change units to ns.
	* profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
	Give extra weight to samples after overruns, to attempt to count
	the time more accurately.
	(setup_cpu_timer): Change sampling interval units from ms to ns, since
	the underlying primitives nominally do ns.
	(Fprofiler_cpu_start): Document the change.  Mention that
	the sampling intervals are only approximate.

141 142 143 144 145 146 147 148 149
2012-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	* frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.

	* coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
	case for the special 0 coding-system.

	* buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
	(Fmake_overlay): Remove redundant tests.
150
	(fix_start_end_in_overlays): Remove redundant recentering.
151

152 153 154 155 156
2012-10-02  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
	Update dependencies.

157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
2012-10-01  Paul Eggert  <eggert@cs.ucla.edu>

	Fix a malloc race condition involving strsignal.
	A signal can arrive in the middle of a malloc, and Emacs's signal
	handler can invoke strsignal, which can invoke malloc, which is
	not portable.  This race condition bug makes Emacs hang on GNU/Linux.
	Fix it by altering the signal handler so that it does not invoke
	strsignal.
	* emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
	* process.c (status_message): Use const pointer, in case strsignal
	is #defined to safe_strsignal.
	* sysdep.c (sys_siglist, init_signals): Always define and
	initialize a substitute sys_siglist if the system does not define
	one, even if HAVE_STRSIGNAL.
	(safe_strsignal): Rename from strsignal.  Always define,
	using sys_siglist.  Return a const pointer.
	* syssignal.h (safe_strsignal): New decl.
	(strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.

176 177 178 179 180
2012-10-01  Eli Zaretskii  <eliz@gnu.org>

	* w32proc.c (timer_loop): Fix code that waits for timer
	expiration, to avoid high CPU usage.

181 182 183 184 185
2012-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>

	* fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
	(sweep_weak_table): Remove redundant prototypes.

186 187 188 189 190 191
2012-10-01  Fabrice Popineau  <fabrice.popineau@gmail.com>

	* emacs.c: Move the inclusion of TERM_HEADER after including
	windows.h on WINDOWSNT.  This avoids compilation problems with
	MSVC.

192 193
2012-10-01  Eli Zaretskii  <eliz@gnu.org>

194 195 196 197 198 199 200 201 202
	* unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
	(RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
	(RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
	as the previous version used 'void *'.

	* ralloc.c (ROUNDUP): Fix last change.
	(MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
	'size_t'.

203 204 205 206 207 208 209
	* w32proc.c <disable_itimers>: New static flag.
	(init_timers): Initialize it to zero, after creating the critical
	sections used by the timer threads.
	(term_timers): Set to 1 before deleting the critical sections.
	(getitimer, setitimer): If disable_itimers is non-zero, return an
	error indication without doing anything.  Reported by Fabrice
	Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
210 211 212 213
	(alarm) [HAVE_SETITIMER]: Be more conformant to the expected
	return results.
	[!HAVE_SETITIMER]: Behave as the previous version that didn't
	support timers.
214 215 216 217 218

	* emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
	term_ntproc after all the other bookkeeping, to get timers working
	as long as possible.

219 220
2012-10-01  Paul Eggert  <eggert@cs.ucla.edu>

221 222 223 224
	* xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
	Suggested by Juri Linkov in
	<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.

225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
	Prefer plain 'static' to 'static inline' (Bug#12541).
	With static functions, modern compilers inline pretty well by
	themselves; advice from programmers often hurts as much as it helps.
	On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
	this change shrinks the text size of the Emacs executable by 1.1%
	without affecting CPU significantly in my benchmark.
	* alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
	(live_float_p, live_misc_p, live_vector_p, live_buffer_p)
	(mark_maybe_object, mark_maybe_pointer, bounded_number):
	* buffer.c (bset_abbrev_mode, bset_abbrev_table)
	(bset_auto_fill_function, bset_auto_save_file_format)
	(bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
	(bset_bidi_display_reordering, bset_buffer_file_coding_system)
	(bset_cache_long_line_scans, bset_case_fold_search)
	(bset_ctl_arrow, bset_cursor_in_non_selected_windows)
	(bset_cursor_type, bset_display_table, bset_extra_line_spacing)
	(bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
	(bset_fringe_indicator_alist, bset_fringes_outside_margins)
	(bset_header_line_format, bset_indicate_buffer_boundaries)
	(bset_indicate_empty_lines, bset_invisibility_spec)
	(bset_left_fringe_width, bset_major_mode, bset_mark)
	(bset_minor_modes, bset_mode_line_format, bset_mode_name)
	(bset_name, bset_overwrite_mode, bset_pt_marker)
	(bset_right_fringe_width, bset_save_length)
	(bset_scroll_bar_width, bset_scroll_down_aggressively)
	(bset_scroll_up_aggressively, bset_selective_display)
	(bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
	(bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
	(set_buffer_overlays_after):
	* category.c (bset_category_table):
	* charset.c (read_hex):
	* coding.c (produce_composition, produce_charset)
	(handle_composition_annotation, handle_charset_annotation)
	(char_encodable_p):
	* dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
	(assign_row, set_frame_matrix_frame, make_current)
	(add_row_entry):
	* eval.c (set_specpdl_symbol, set_specpdl_old_value):
	* fns.c (maybe_resize_hash_table):
	* frame.c (fset_buffer_predicate, fset_minibuffer_window):
	* gmalloc.c (register_heapinfo):
	* image.c (lookup_image_type):
	* intervals.c (set_interval_object, set_interval_left)
	(set_interval_right, copy_interval_parent, rotate_right)
	(rotate_left, balance_possible_root_interval):
	* keyboard.c (kset_echo_string, kset_kbd_queue)
	(kset_keyboard_translate_table, kset_last_prefix_arg)
	(kset_last_repeatable_command, kset_local_function_key_map)
	(kset_overriding_terminal_local_map, kset_real_last_command)
	(kset_system_key_syms, clear_event, set_prop):
	* lread.c (digit_to_number):
	* marker.c (attach_marker, live_buffer, set_marker_internal):
	* nsterm.m (ns_compute_glyph_string_overhangs):
	* process.c (pset_buffer, pset_command)
	(pset_decode_coding_system, pset_decoding_buf)
	(pset_encode_coding_system, pset_encoding_buf, pset_filter)
	(pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
	(pset_status, pset_tty_name, pset_type, pset_write_queue):
	* syntax.c (bset_syntax_table, dec_bytepos):
	* terminal.c (tset_param_alist):
	* textprop.c (interval_has_some_properties)
	(interval_has_some_properties_list):
	* window.c (wset_combination_limit, wset_dedicated)
	(wset_display_table, wset_hchild, wset_left_fringe_width)
	(wset_left_margin_cols, wset_new_normal, wset_new_total)
	(wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
	(wset_right_fringe_width, wset_right_margin_cols)
	(wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
	(wset_vertical_scroll_bar_type, wset_window_parameters):
	* xdisp.c (wset_base_line_number, wset_base_line_pos)
	(wset_column_number_displayed, wset_region_showing)
	(window_box_edges, run_window_scroll_functions)
	(append_glyph_string_lists, prepend_glyph_string_lists)
	(append_glyph_string, set_glyph_string_background_width)
	(append_glyph, append_composite_glyph)
	(take_vertical_position_into_account):
	* xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
	(face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
	(lface_hash, lface_same_font_attributes_p, lookup_face):
	* xml.c (libxml2_loaded_p):
	* xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
	(x_set_glyph_string_clipping, x_clear_glyph_string_rect):
	Now 'static', not 'static inline'.

Paul Eggert's avatar
Paul Eggert committed
309 310 311 312
	* bidi.c: Tune.
	(bidi_copy_it): Do the whole copy with a single memcpy.
	(bidi_char_at_pos): Merge the two STRING_CHAR calls into one.

313 314 315 316 317 318
	Revert the FOLLOW-SYMLINKS change for file-attributes.
	Doing it right would require several changes to Tramp, and there's
	not enough time to get that tested before the freeze today.
	* dired.c (directory_files_internal, Ffile_attributes):
	Undo last change.

319 320 321 322 323
	* frame.c (x_report_frame_params): Port better to wider ints.
	Do not assume that EMACS_UINT is the same width as uprintmax_t,
	or that pointers can be printed in 15 decimal digits.
	Avoid GCC warnings if EMACS_UINT is wider than a pointer.

324 325 326 327 328 329
2012-09-30  Fabrice Popineau  <fabrice.popineau@supelec.fr>

	Support x64 build on MS-Windows.
	* w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
	(SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
	compatibility with x64.
Fabrice Popineau's avatar
Fabrice Popineau committed
330
	(x_get_focus_frame): Add prototype.
331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396

	* w32term.c (w32_draw_underwave): Don't use GCC extensions for
	defining an XRectangle structure.

	* w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
	arithmetics for compatibility with x64.

	* w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
	compatibility with x64.

	* w32heap.h: Adjust prototypes and declarations.

	* w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
	(round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
	DWORD, long, and unsigned long, for compatibility with x64.
	(allocate_heap) [_WIN64]: Reserve 32GB of memory.
	(sbrk): Argument is now of type ptrdiff_t.

	* w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
	less than 0x0500.
	(w32_msg_pump): Use WPARAM type for 'result'.

	* w32.c (init_environment, get_emacs_configuration): Support AMD64
	architecture.
	(init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
	compatibility with x64.

	* vm-limit.c (lim_data): Now size_t.
	(check_memory_limits): Adjust prototypes of real_morecore and
	__morecore to receive argument of type ptrdiff_t.  Use size_t for
	five_percent and data_size.

	* unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
	variables, for compatibility with x64.
	(rva_to_section, offset_to_section, relocate_offset)
	(OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
	(PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
	(copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
	for compatibility with x64.

	* sysdep.c (STDERR_FILENO): Define if not already defined.

	* ralloc.c (real_morecore): Argument type is now ptrdiff_t.
	(__morecore): Argument type is now ptrdiff_t.
	(ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
	(relinquish): Use ptrdiff_t type for 'excess'.
	(r_alloc_sbrk): Argument type is now ptrdiff_t.

	* makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
	(bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
	instead of a literal number.

	* gmalloc.c [WINDOWSNT]: Include w32heap.h.
	(min): Define only if not already defined.

	* frame.c (x_report_frame_params): Use EMACS_UINT for the return
	value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
	hosts.

	* image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
	'bitmaps' is a pointer.

	* dispextern.h (x_bitmap_pixmap): Adjust prototype.

	* alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.

397 398 399 400 401 402
2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>

	file-attributes has a new optional arg FOLLOW-SYMLINKS.
	* dired.c (directory_files_internal, Ffile_attributes):
	New arg follow_symlinks.  All uses changed.

403 404 405 406
2012-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>

	* .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.

407 408 409 410 411 412
2012-09-30  Eli Zaretskii  <eliz@gnu.org>

	Support atimers and CPU profiler via profile.c on MS-Windows.
	* w32proc.c (sig_mask, crit_sig): New static variables.
	(sys_signal): Support SIGALRM and SIGPROF.
	(sigemptyset, sigaddset, sigfillset, sigprocmask)
413
	(pthread_sigmask, setpgrp): Move here from w32.c.  sigaddset,
414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
	sigfillset, and sigprocmask are no longer no-ops.
	(sigismember): New function.
	(struct itimer_data): New definition.
	(ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
	(crit_prof): New static variables.
	(MAX_SINGLE_SLEEP): New definition.
	(timer_loop, stop_timer_thread, term_timers, init_timers)
	(start_timer_thread, getitimer, setitimer): New functions.
	(alarm): No longer a no-op, calls setitimer.

	* w32.c (term_ntproc): Call term_timers.
	(init_ntproc): Make sure all signals are unblocked at startup, to
	erase any traces of dumping.  Call init_timers.

	* w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
	Windows-specific code to display the hourglass mouse pointer is no
	longer used.
	(w32_wnd_proc): Remove code that handled the WM_TIMER message due
	to hourglass timer expiration.
	(start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
	Remove, no longer used.
435 436
	(w32_note_current_window, show_hourglass, hide_hourglass):
	New functions, in support of hourglass cursor display similar to other
437 438 439 440 441 442 443 444 445
	window systems.
	(syms_of_w32fns): Don't initialize hourglass_timer.

	* xdisp.c (start_hourglass, cancel_hourglass): Now used on
	WINDOWSNT as well.
	(start_hourglass) [WINDOWSNT]: Call w32_note_current_window.

	* w32.h (init_timers, term_timers): Add prototypes.

446 447 448 449 450
2012-09-30  Kenichi Handa  <handa@gnu.org>

	* coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
	to the buffer relocation which may be caused by ccl_driver.

451 452
2012-09-30  Jan Djärv  <jan.h.d@swipnet.se>

Jan Djärv's avatar
Jan Djärv committed
453 454 455 456 457 458 459 460 461
	* xfns.c (Fx_file_dialog): Update comment.

	* w32fns.c (Fx_file_dialog): Update comment.

	* nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
	Initialize panel name field if OSX >= 10.6.

	* fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.

462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486
	* nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.

	* nsterm.m (NEW_STYLE_FS): New define.
	(ns_fullscreen_hook, windowWillEnterFullScreen)
	(windowDidEnterFullScreen, windowWillExitFullScreen)
	(windowDidExitFullScreen, toggleFullScreen, handleFS)
	(setFSValue): New functions.
	(EmacsFSWindow): New implementation.
	(canBecomeKeyWindow): New function for EmacsFSWindow.
	(ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
	(dealloc): Release nonfs_window if in fullscreen.
	(updateFrameSize:): Call windowDidMove to update top/left.
	(windowWillResize:toSize:): Check if frame is still maximized.
	(initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
	next_maximized, maximized_width, maximized_height and nonfs_window.
	Call setCollectionBehavior if NEW_STYLE_FS.  Initialize bwidth and
	tbar_height.
	(windowWillUseStandardFrame:defaultFrame:): Update frame parameter
	fullscreen. Set maximized_width/height.  Act on next_maximized.

	* nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
	(EmacsView): Add variables for fullscreen.
	(handleFS, setFSValue, toggleFullScreen): New in EmacsView.
	(EmacsFSWindow): New interface for fullscreen.

487 488 489 490
2012-09-30  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.

491 492 493 494
2012-09-30  Chong Yidong  <cyd@gnu.org>

	* fns.c (Frandom): Doc fix.

495 496 497 498 499
2012-09-30  Martin Rudalics  <rudalics@gmx.at>

	* window.c (Vwindow_combination_limit): New default value.
	(Qwindow_size): New symbol replacing Qtemp_buffer_resize.

500 501 502 503 504 505
2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>

	* syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
	Suggested by Eli Zaretskii in
	<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.

506 507 508 509 510
2012-09-30  Eli Zaretskii  <eliz@gnu.org>

	* profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
	HAVE_TIMER_SETTIME is defined.

511 512
2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>

513 514 515 516 517 518 519 520
	Profiler improvements: more-accurate timers, overflow checks.
	* profiler.c: Don't include stdio.h, limits.h, sys/time.h,
	signal.h, setjmp.h.  Include systime.h instead.
	(saturated_add): New function.
	(record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
	(record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
	(profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
	New static vars.
521
	(enum profiler_cpu_running): New enum.
522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546
	(profiler_cpu_running): Now of that enum type, not bool.
	All uses changed to store the new value.
	(handle_profiler_signal): Rename from sigprof_handler_1,
	for consistency with other handlers.  Do not check whether
	cpu_log is a hash-table if garbage collecting, since it
	doesn't matter in that case.
	(deliver_profiler_signal): Rename from sigprof_handler,
	for consistency with other handlers.
	(setup_cpu_timer): New function, with much of what used to be in
	Fprofiler_cpu_start.  Check for out-of-range argument.
	Prefer timer_settime if available, and prefer
	thread cputime clocks, then process cputime clocks, then
	monotonic clocks, to the old realtime clock.  Use make_timeval
	to round more-correctly when falling back to setitimer.
	(Fprofiler_cpu_start): Use it.
	(Fprofiler_cpu_stop): Prefer timer_settime if available.
	Don't assume that passing NULL as the 2nd argument of setitimer
	is the same as passing a pointer to all-zero storage.
	Ignore SIGPROF afterwards.
	(malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
	* sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
	non-fatal signal handlers.  Ignore SIGPROF on startup.
	* syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
	in profiler.c, since sysdep.c now uses it.

547 548 549 550
	* sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
	Suggested by Eli Zaretskii in
	<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.

551 552 553 554
2012-09-29  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.

555 556 557 558 559 560 561 562 563
2012-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp.h (struct backtrace): Remove indirection for `function' field.
	* xdisp.c (redisplay_internal):
	* profiler.c (record_backtrace, sigprof_handler_1):
	* alloc.c (Fgarbage_collect):
	* eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
	(Fbacktrace_frame): Adjust accordingly.

564
2012-09-28  Glenn Morris  <rgm@gnu.org>
Glenn Morris's avatar
Glenn Morris committed
565 566 567 568

	* eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
	(Frun_hook_with_args_until_failure): Doc fixes.

569 570 571 572 573
2012-09-28  Eli Zaretskii  <eliz@gnu.org>

	* xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
	Qautomatic_redisplay and change the symbol name.  All users changed.

574 575 576 577
2012-09-28  Tomohiro Matsuyama  <tomo@cx4a.org>

	* profiler.c (sigprof_handler): Fix race condition.

578 579 580 581
2012-09-28  Glenn Morris  <rgm@gnu.org>

	* lread.c (lisp_file_lexically_bound_p): Handle #! lines.  (Bug#12528)

582 583 584
2012-09-27  Paul Eggert  <eggert@cs.ucla.edu>

	Check more robustly for timer_settime.
585 586
	* Makefile.in (LIB_TIMER_TIME): New macro.
	(LIBES): Add it.
587 588 589 590
	* atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
	Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
	call timer_settime.

591 592 593 594
2012-09-26  Tomohiro Matsuyama  <tomo@cx4a.org>

	* profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.

595 596 597 598
2012-09-26  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.

599 600 601 602 603 604 605 606
2012-09-26  Paul Eggert  <eggert@cs.ucla.edu>

	* character.h (MAYBE_UNIFY_CHAR): Remove.
	* charset.c, charset.h (maybe_unify_char): Now static.
	* charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
	Since this stuff is now private to charset.c, there's no need for
	a public macro and no need to inline by hand.

Stefan Monnier's avatar
Stefan Monnier committed
607 608 609
2012-09-26  Tomohiro Matsuyama  <tomo@cx4a.org>
            Stefan Monnier  <monnier@iro.umontreal.ca>
            Juanma Barranquero  <lekktu@gmail.com>
610

Stefan Monnier's avatar
Stefan Monnier committed
611 612
	* profiler.c: New file.
	* Makefile.in (base_obj): Add profiler.o.
613 614
	* makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
	($(BLD)/profiler.$(O)): New target.
Stefan Monnier's avatar
Stefan Monnier committed
615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631
	* emacs.c (main): Call syms_of_profiler.
	* alloc.c (Qautomatic_gc): New constant.
	(MALLOC_PROBE): New macro.
	(xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
	(total_bytes_of_live_objects): New function.
	(Fgarbage_collect): Use it.  Record itself in backtrace_list.
	Call malloc_probe for the memory profiler.
	(syms_of_alloc): Define Qautomatic_gc.
	* eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
	race condition.
	(struct backtrace): Move definition...
	* lisp.h (struct backtrace): ..here.
	(Qautomatic_gc, profiler_memory_running): Declare vars.
	(malloc_probe, syms_of_profiler): Declare functions.
	* xdisp.c (Qautomatic_redisplay): New constant.
	(redisplay_internal): Record itself in backtrace_list.
	(syms_of_xdisp): Define Qautomatic_redisplay.
632

633
2012-09-25  Eli Zaretskii  <eliz@gnu.org>
634 635 636 637
2012-09-25  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.

638 639 640 641 642 643
2012-09-25  Paul Eggert  <eggert@cs.ucla.edu>

	Prefer POSIX timers if available.
	They avoid a race if the timer is too close to the current time.
	* atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
	(set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
644
	(init_atimer) [SIGEV_SIGNAL]: Initialize them.
645

646 647 648 649 650 651 652
2012-09-25  Eli Zaretskii  <eliz@gnu.org>

	* coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
	CHAR_STRING_ADVANCE.
	(STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
	STRING_CHAR_ADVANCE.

653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670
2012-09-25  Juanma Barranquero  <lekktu@gmail.com>

	Move Vlibrary_cache to emacs.c and reset before dumping.

	* lisp.h (reset_image_types): Declare.
	[WINDOWSNT] (Vlibrary_cache): Declare.

	* image.c (reset_image_types): New function.

	* emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
	(syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
	(Fdump_emacs): Reset Vlibrary_cache and image_types.

	* w32.c (Vlibrary_cache): Do not define; moved to emacs.c
	(globals_of_w32) <Vlibrary_cache>: Do not initialize.

	* w32.h (Vlibrary_cache): Do not declare.

671 672
2012-09-25  Eli Zaretskii  <eliz@gnu.org>

673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696
	* w32proc.c (sys_signal): Handle all signals defined by the
	MS-Windows runtime, not just SIGCHLD.  Actually install the signal
	handlers for signals supported by Windows.  Don't override
	term_ntproc as the handler for SIGABRT.
	(sigaction): Rewrite to call sys_signal instead of duplicating its
	code.
	(sys_kill): Improve commentary.

	* w32.c (term_ntproc): Accept (and ignore) one argument, for
	consistency with a signature of a signal handler.  All callers
	changed.
	(init_ntproc): Accept an argument DUMPING.  If dumping, don't
	install term_ntproc as a signal handler for SIGABRT, as that
	should be done by the dumped Emacs.

	* w32.h (init_ntproc, term_ntproc): Adjust prototypes.

	* w32select.c (term_w32select): Protect against repeated
	invocation by setting clipboard_owner to NULL after calling
	DestroyWindow.

	* emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
	and term_ntproc to their modified signatures.

697 698 699 700 701
	* character.c (char_string, string_char): Remove calls to
	MAYBE_UNIFY_CHAR.  See the discussion starting at
	http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
	for the details.

702 703 704 705
2012-09-25  Chong Yidong  <cyd@gnu.org>

	* xdisp.c (mode_line_inverse_video): Delete obsolete variable.

706 707 708 709 710
2012-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>

	* bytecode.c (exec_byte_code): Signal an error instead of aborting,
	when encountering an unknown bytecode.

711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748
2012-09-24  Paul Eggert  <eggert@cs.ucla.edu>

	image.c, indent.c: Use bool for booleans.
	* dispextern.h (struct image_type): Members valid_p, load, init
	now return bool, not int.  All uses changed.
	* image.c: Omit unnecessary static decls.
	(x_create_bitmap_mask, x_build_heuristic_mask):
	Return void, not int, since callers don't care about the return value.
	(x_create_bitmap_mask, define_image_type, valid_image_p)
	(struct image_keyword, parse_image_spec, image_spec_value)
	(check_image_size, image_background)
	(image_background_transparent, x_clear_image_1)
	(postprocess_image, lookup_image, x_check_image_size)
	(x_create_x_image_and_pixmap, xbm_image_p)
	(Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
	(xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
	(init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
	(xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
	(x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
	(png_image_p, init_png_functions, png_load_body, png_load)
	(jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
	(tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
	(init_gif_functions, gif_load, imagemagick_image_p)
	(imagemagick_load_image, imagemagick_load, svg_image_p)
	(init_svg_functions, svg_load, svg_load_image, gs_image_p)
	(gs_load):
	* nsimage.m (ns_load_image):
	* nsterm.m (ns_defined_color):
	* xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
	* xfns.c (x_defined_color):
	* xterm.c (x_alloc_lighter_color_for_widget)
	(x_alloc_nearest_color_1, x_alloc_nearest_color)
	(x_alloc_lighter_color):
	* indent.c (disptab_matches_widthtab, current_column)
	(scan_for_column, string_display_width, indented_beyond_p)
	(compute_motion, vmotion, Fvertical_motion):
	Use bool for booleans.

749 750 751 752
2012-09-24  Chong Yidong  <cyd@gnu.org>

	* chartab.c (Fset_char_table_default): Obsolete function removed.

753 754
2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>

755 756 757 758 759 760 761 762
	Move pid_t related decls out of lisp.h.
	* lisp.h, syswait.h (record_child_status_change, wait_for_termination)
	(interruptible_wait_for_termination):
	Move these decls from lisp.h to syswait.h, since they use pid_t.
	Needed on FreeBSD; see Herbert J. Skuhra in
	<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
	* callproc.c: Include syswait.h.

763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787
	gnutls.c, gtkutil.c: Use bool for boolean.
	* gnutls.c (gnutls_global_initialized, init_gnutls_functions)
	(emacs_gnutls_handle_error):
	* gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
	(xg_hide_tooltip, xg_create_frame_widgets)
	(create_dialog, xg_uses_old_file_dialog)
	(xg_get_file_with_chooser, xg_get_file_with_selection)
	(xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
	(xg_item_label_same_p, xg_update_menubar)
	(xg_modify_menubar_widgets, xg_event_is_for_menubar)
	(xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
	(xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
	(is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
	(update_frame_tool_bar, free_frame_tool_bar):
	* gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
	* nsmenu.m (ns_update_menubar):
	* nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
	* xfns.c (Fx_show_tip) [USE_GTK]:
	Use bool for boolean.
	* gtkutil.c (xg_update_frame_menubar):
	* xmenu.c (update_frame_menubar):
	Return void, not int, since caller ignores return value.
	* gtkutil.c (xg_change_toolbar_position):
	Return void, not 1.

788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806
2012-09-23  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in (BLOCKINPUT_H): Remove.
	(SYSSIGNAL_H): New macro.
	($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
	($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
	($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
	($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
	($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
	($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
	($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
	($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
	($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
	($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
	($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
	($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
	($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
	($(BLD)/w32xfns.$(O)): Update dependencies.

807 808 809 810 811 812 813 814 815
2012-09-23  Eli Zaretskii  <eliz@gnu.org>

	* .gdbinit: Set breakpoint on terminate_due_to_signal, not on
	fatal_error_backtrace.

	* w32proc.c (sys_kill): Undo last change: don't do anything when
	invoked to deliver SIGABRT to our own process.  This is now
	handled by emacs_raise.

816 817 818 819 820
2012-09-23  Juanma Barranquero  <lekktu@gmail.com>

	* w32term.c (w32_read_socket): Remove leftover reference to
	interrupt_input_pending.

Paul Eggert's avatar
Paul Eggert committed
821 822 823 824 825 826 827 828 829 830 831
2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>

	Do not use SA_NODEFER.
	Problem reported by Dani Moncayo in
	<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
	* alloc.c (die):
	* sysdep.c (emacs_abort): Do not reset signal handler.
	* emacs.c (terminate_due_to_signal): Reset signal handler here.
	* sysdep.c (init_signals): Do not use SA_NODEFER.  It wasn't
	wanted even on POSIXish hosts, and it doesn't work on Windows.

832 833 834 835 836
2012-09-23  Jan Djärv  <jan.h.d@swipnet.se>

	* xterm.c (x_term_init): Call fixup_locale before and after calling
	gtk_init (Bug#12392).

837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855
2012-09-23  Chong Yidong  <cyd@gnu.org>

	* w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
	Vdynamic_library_alist.

	* gnutls.c (init_gnutls_functions): Caller changed; remove arg.
	(Fgnutls_available_p): Caller changed.

	* xml.c (init_libxml2_functions, Flibxml_parse_html_region)
	(Flibxml_parse_xml_region): Likewise.

	* dispextern.h (struct image_type): Remove arg from init function.

	* image.c (Finit_image_library, lookup_image_type)
	(define_image_type): Remove now-unneeded second arg.
	(init_xpm_functions, init_png_functions, init_jpeg_functions)
	(init_tiff_functions, init_gif_functions, init_svg_functions):
	Arglist and w32_delayed_load calling convention changed.
	(gs_type): Remove init_gs_functions; there is no such function.
Chong Yidong's avatar
Chong Yidong committed
856
	(valid_image_p, make_image): Fix caller to lookup_image_type.
857

858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926
2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify and avoid signal-handling races (Bug#12471).
	* alloc.c (die):
	* sysdep.c (emacs_abort) [HAVE_NTGUI]:
	Avoid recursive loop if there's a fatal error in the function itself.
	* atimer.c (pending_atimers):
	* blockinput.h: Don't include "atimer.h"; no longer needed.
	(interrupt_input_pending): Remove.  All uses removed.
	pending_signals now counts both atimers and ordinary interrupts.
	This is less racy than having three separate pending-signal flags.
	(block_input, unblock_input, totally_unblock_input, unblock_input_to)
	(input_blocked_p):
	Rename from their upper-case counterparts BLOCK_INPUT,
	UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
	INPUT_BLOCKED_P, and turn into functions.  All uses changed.
	This makes it easier to access volatile variables more accurately.
	(BLOCK_INPUT_RESIGNAL): Remove.  All uses replaced by unblock_input ().
	(input_blocked_p): Prefer this to 'interrupt_input_blocked', as
	that's more reliable if the code is buggy and sets
	interrupt_input_blocked to a negative value.  All uses changed.
	* atimer.c (deliver_alarm_signal):
	Remove.  No need to deliver this to the parent; any thread can
	handle this signal now.  All uses replaced by underlying handler.
	* atimer.c (turn_on_atimers):
	* dispnew.c (handle_window_change_signal):
	* emacs.c (handle_danger_signal):
	* keyboard.c (kbd_buffer_get_event):
	Don't reestablish signal handler; not needed with sigaction.
	* blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
	(UNBLOCK_INPUT_TO):
	Rework to avoid unnecessary accesses to volatile variables.
	(UNBLOCK_INPUT_TO): Now a function.
	(totally_unblock_input, unblock_input): New decls.
	* data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
	(init_data): Remove.  Necessary stuff now done in init_signal.
	* emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
	* emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
	(fatal_error_code): Remove; no longer needed.
	(terminate_due_to_signal): Rename from fatal_error_backtrace, since
	it doesn't always backtrace.  All uses changed.  No need to reset
	signal to default, since sigaction and/or die does that for us now.
	Use emacs_raise (FOO), not kill (getpid (), FOO).
	(main): Check more-accurately whether we're dumping.
	Move fatal-error setup to sysdep.c
	* floatfns.c: Do not include "syssignal.h"; no longer needed.
	* gtkutil.c (xg_get_file_name, xg_get_font):
	Remove no-longer-needed signal-mask manipulation.
	* keyboard.c, process.c (POLL_FOR_INPUT):
	Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
	* keyboard.c (read_avail_input): Remove.
	All uses replaced by gobble_input.
	(Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
	(kbd_buffer_store_event_hold, gobble_input):
	(record_asynch_buffer_change) [USABLE_SIGIO]:
	(store_user_signal_events):
	No need to mess with signal mask.
	(gobble_input): If blocking input and there are terminals, simply
	set pending_signals to 1 and return.  All hooks changed to not
	worry about whether input is blocked.
	(process_pending_signals): Clear pending_signals before processing
	them, in case a signal comes in while we're processing.
	By convention callers now test pending_signals before calling us.
	(UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
	New functions, to support changes to blockinput.h.
	(handle_input_available_signal): Now extern.
	(reinvoke_input_signal): Remove.  All uses replaced by
	handle_async_input.
	(quit_count): Now volatile, since a signal handler uses it.
Stefan Monnier's avatar
Stefan Monnier committed
927 928
	(handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
	All callers changed.  Block SIGINT only if not already blocked.
929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991
	Clear sigmask reliably, even if Fsignal returns, which it can.
	Omit unnecessary accesses to volatile var.
	(quit_throw_to_read_char): No need to restore sigmask.
	* keyboard.c (gobble_input, handle_user_signal):
	* process.c (wait_reading_process_output):
	Call signal-handling code rather than killing ourselves.
	* lisp.h: Include <float.h>, for...
	(IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
	(pending_signals): Now volatile.
	(syms_of_data): Now const if IEEE floating point.
	(handle_input_available_signal) [USABLE_SIGIO]:
	(terminate_due_to_signal, record_child_status_change): New decls.
	* process.c (create_process): Avoid disaster if memory is exhausted
	while we're processing a vfork, by tightening the critical section
	around the vfork.
	(send_process_frame, process_sent_to, handle_pipe_signal)
	(deliver_pipe_signal): Remove.  No longer needed, as Emacs now
	ignores SIGPIPE.
	(send_process): No need for setjmp/longjmp any more, since the
	SIGPIPE stuff is now gone.  Instead, report an error if errno
	is EPIPE.
	(record_child_status_change): Now extern.  PID and W are now args.
	Return void, not bool.  All callers changed.
	* sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
	Remove.  All uses removed.  This bug should be fixed now in a
	different way.
	(wait_for_termination_1): Use waitpid rather than sigsuspend,
	and record the child status change directly.  This avoids the
	need to futz with the signal mask.
	(process_fatal_action): Move here from emacs.c.
	(emacs_sigaction_flags): New function, containing
	much of what used to be in emacs_sigaction_init.
	(emacs_sigaction_init): Use it.  Block nonfatal system signals that are
	caught by emacs, to make races less likely.
	(deliver_process_signal): Rename from handle_on_main_thread.
	All uses changed.
	(BACKTRACE_LIMIT_MAX): Now at top level.
	(thread_backtrace_buffer, threadback_backtrace_pointers):
	New static vars.
	(deliver_thread_signal, deliver_fatal_thread_signal):
	New functions, for more-accurate delivery of thread-specific signals.
	(handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
	(deliver_arith_signal): Handle in this thread, not
	in the main thread, since it's triggered by this thread.
	(maybe_fatal_sig): New function.
	(init_signals): New arg DUMPING so that we can be more accurate
	about whether we're dumping.  Caller changed.
	Treat thread-specific signals differently from process-general signals.
	Block all signals while handling fatal error; that's safer.
	xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
	on IEEE hosts.
	When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
	Ignore SIGPIPE unless batch.
	(emacs_backtrace): Output backtrace for the appropriate thread,
	which is not necessarily the main thread.
	* syssignal.h: Include <stdbool.h>.
	(emacs_raise): New macro.
	* xterm.c (x_connection_signal): Remove; no longer needed
	now that we use sigaction.
	(x_connection_closed): No need to mess with sigmask now.
	(x_initialize): No need to reset SIGPIPE handler here, since
	init_signals does this for us now.

992 993 994
2012-09-23  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
Glenn Morris's avatar
Glenn Morris committed
995
	background rect may be larger (Bug#12245).
996

997 998 999 1000
2012-09-23  Chong Yidong  <cyd@gnu.org>

	* keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.

1001 1002 1003 1004 1005 1006 1007
2012-09-22  Paul Eggert  <eggert@cs.ucla.edu>

	* .gdbinit: Just stop at fatal_error_backtrace.
	See Stefan Monnier's request in
	<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
	Remove no-longer-used query of system type.

Chong Yidong's avatar
Chong Yidong committed
1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018
2012-09-22  Chong Yidong  <cyd@gnu.org>

	* search.c (Freplace_match): Doc fix (Bug#12325).

	* minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).

	* editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
	(Fline_end_position): Doc fix.

	* cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).

Chong Yidong's avatar
Chong Yidong committed
1019 1020 1021 1022 1023 1024 1025 1026 1027
2012-09-22  Chong Yidong  <cyd@gnu.org>

	* dispextern.h (struct image_type): Add new slot, storing a type
	initialization function.

	* image.c (define_image_type): Call the image initializer function
	if it is defined.  Arguments and return value changed.
	(valid_image_p, make_image): Callers changed.
	(xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
Stefan Monnier's avatar
Stefan Monnier committed
1028 1029
	(gif_type, imagemagick_type, svg_type, gs_type):
	Add initialization functions.
Chong Yidong's avatar
Chong Yidong committed
1030 1031 1032 1033 1034 1035 1036
	(Finit_image_library): Call lookup_image_type.
	(CHECK_LIB_AVAILABLE): Macro deleted.
	(lookup_image_type): Call define_image_type here, rather than via
	Finit_image_library, and without using CHECK_LIB_AVAILABLE.
	(syms_of_image): Move define_image_type calls for xbm_type and
	pbm_type to lookup_image_type.

1037 1038 1039 1040 1041 1042 1043 1044 1045
2012-09-22  Eli Zaretskii  <eliz@gnu.org>

	* keyboard.c (timer_check_2): Move calculation of 'timers' and
	'idle_timers' from here ...
	(timer_check): ... to here.  Use Fcopy_sequence to copy the timer
	lists, to avoid infloops when the timer does something stupid,
	like reinvoke itself with the same or smaller time-out.
	(Bug#12447)

1046 1047 1048 1049 1050
2012-09-22  Martin Rudalics  <rudalics@gmx.at>

	* window.c (Fsplit_window_internal): Handle only Qt value of
	Vwindow_combination_limit separately.
	(Qtemp_buffer_resize): New symbol.
Stefan Monnier's avatar
Stefan Monnier committed
1051 1052
	(Vwindow_combination_limit): New default value.
	Rewrite doc-string.
1053

1054 1055 1056 1057 1058
2012-09-22  Eli Zaretskii  <eliz@gnu.org>

	* xdisp.c (next_overlay_string): Initialize it->end_charpos for
	the new overlay string.  (Bug#10159)

1059 1060 1061 1062 1063 1064
2012-09-22  Paul Eggert  <eggert@cs.ucla.edu>

	* emacs.c (shut_down_emacs): Don't assume stderr is buffered,
	or that fprintf is async-signal-safe.  POSIX doesn't require
	either assumption.

1065 1066 1067 1068 1069
2012-09-22  Chong Yidong  <cyd@gnu.org>

	* buffer.c (Fset_buffer_modified_p): Handle indirect buffers
	(Bug#8207).

1070 1071 1072 1073 1074
2012-09-22  Kenichi Handa  <handa@gnu.org>

	* composite.c (composition_reseat_it): Handle the case that a
	grapheme cluster is not covered by a single font (Bug#12352).

1075 1076 1077 1078 1079
2012-09-21  Chong Yidong  <cyd@gnu.org>

	* image.c (define_image_type): Avoid adding duplicate types to
	image_types (Bug#12463).  Suggested by Jörg Walter.

1080
2012-09-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
1081 1082 1083 1084 1085

	* unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
	(print_load_command_name): Add case LC_DATA_IN_CODE.
	(dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.

1086
2012-09-21  Glenn Morris  <rgm@gnu.org>
1087 1088 1089 1090

	* eval.c (Frun_hook_with_args_until_success)
	(Frun_hook_with_args_until_failure): Doc fixes.  (Bug#12393)

1091
2012-09-21  Andreas Schwab  <schwab@linux-m68k.org>
Andreas Schwab's avatar
Andreas Schwab committed
1092 1093 1094 1095 1096

	* fileio.c (Ffile_selinux_context): Only call freecon when
	lgetfilecon succeeded.
	(Fset_file_selinux_context): Likewise.  (Bug#12444)

1097
2012-09-21  Eli Zaretskii  <eliz@gnu.org>
1098 1099 1100 1101 1102 1103

	* xdisp.c (try_window_reusing_current_matrix): Under bidi
	reordering, locate the cursor by calling set_cursor_from_row; if
	that fails, clear the desired glyph matrix before returning a
	failure indication to the caller.  Fixes leaving garbled display
	when fast scrolling with a down-key.  (Bug#12403)
1104 1105
	(compute_stop_pos_backwards): Fix a typo that caused crashes while
	scrolling through multibyte text.
1106

1107 1108 1109 1110 1111 1112 1113 1114 1115
2012-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>

	* alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
	calling mark_vectorlike since that's the one that marks the window.
	(mark_discard_killed_buffers): Mark the final cdr.
	* window.h (struct window): Move prev/next_buffers to the
	non-standard fields.
	* window.c (make_window): Initialize prev/next_buffers manually.

1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128
2012-09-20  Paul Eggert  <eggert@cs.ucla.edu>

	Omit unused arg EXPECTED from socket hooks.
	* keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
	* nsterm.m (ns_term_init):
	* termhooks.h (struct terminal.read_socket_hook):
	* w32inevt.c (w32_console_read_socket):
	* w32term.c (w32_read_socket):
	* xterm.c (XTread_socket):
	Omit unused arg EXPECTED.  All callers changed.
	(store_user_signal_events): Return void, not int, since callers no
	longer care about the return value.  All uses changed.

1129 1130 1131 1132
2012-09-20  Juanma Barranquero  <lekktu@gmail.com>

	* w32gui.h (XParseGeometry): Do not declare.

1133 1134
2012-09-19  Paul Eggert  <eggert@cs.ucla.edu>

1135 1136 1137 1138
	* w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
	Ignore 'expected'. See Eli Zaretskii in
	<http://bugs.gnu.org/12471#8> (last line).

1139 1140 1141 1142
	* frame.c (read_integer): Remove.  All uses replaced by strtol/strtoul.
	(XParseGeometry): Now static.  Substitute extremal values for
	values that are out of range.

1143 1144 1145 1146 1147 1148 1149 1150
2012-09-19  Jan Djärv  <jan.h.d@swipnet.se>

	* w32xfns.c (read_integer, XParseGeometry): Move to frame.c.

	* nsfns.m (XParseGeometry): Remove.
	(Fx_create_frame): Call x_set_offset to correctly interpret
	top_pos in geometry.

Stefan Monnier's avatar
Stefan Monnier committed
1151
	* frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
1152 1153 1154
	(Fx_parse_geometry): If there is a space in string, call
	Qns_parse_geometry, otherwise do as on other terms (Bug#12368).

1155 1156
2012-09-17  Eli Zaretskii  <eliz@gnu.org>

1157 1158 1159 1160
	* search.c (scan_buffer): Use character positions in calls to
	region_cache_forward and region_cache_backward, not byte
	positions.  (Bug#12196)

1161 1162 1163
	* w32term.c (w32_read_socket): Set pending_signals to 1, like
	xterm.c does.  Reported by Daniel Colascione <dancol@dancol.org>.

1164 1165 1166 1167
	* ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
	__malloc_extra_blocks to 32 instead of 64, like alloc.c did in
	emacs_blocked_malloc, now deleted.

1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179
2012-09-17  Paul Eggert  <eggert@cs.ucla.edu>

	Remove no-longer-needed Solaris 2.4 vfork bug workaround.
	The workaround was for improving performance on Solaris 2.4, but
	is getting in the way now.  Emacs will still work if someone is
	still running Solaris 2.4 in a museum somewhere; Sun dropped
	support for Solaris 2.4 in 2003.
	* callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
	* process.c (create_process) [HAVE_WORKING_VFORK]:
	Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
	since Emacs no longer uses vfork on that platform.

1180 1181 1182 1183
2012-09-17  Glenn Morris  <rgm@gnu.org>

	* emacs.c: Use COPYRIGHT.

1184 1185
2012-09-16  Paul Eggert  <eggert@cs.ucla.edu>

1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227
	Remove configure's --without-sync-input option (Bug#12450).
	When auditing signal-handling in preparation for cleaning it up,
	I found that SYNC_INPUT has race conditions and would be a real
	pain to fix.  Since it's an undocumented and deprecated
	configure-time option, now seems like a good time to remove it.
	Also see <http://bugs.gnu.org/11080#16>.
	* alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
	(_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
	(alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
	(malloc_hysteresis):
	(check_depth) [XMALLOC_OVERRUN_CHECK]:
	(MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
	(__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
	(dont_register_blocks, bytes_used_when_reconsidered)
	(bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
	(emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
	[!SYSTEM_MALLOC && !SYNC_INPUT]:
	Remove. All uses removed.
	(MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
	implementation, one that depends on whether the new macro
	XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
	is defined.
	* atimer.c (run_timers, handle_alarm_signal):
	* keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
	(handle_async_input, process_pending_signals)
	(handle_input_available_signal, init_keyboard):
	* nsterm.m (ns_read_socket):
	* process.c (wait_reading_process_output):
	* regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
	* sysdep.c (emacs_sigaction_init) [SA_RESTART]:
	(emacs_write):
	* xterm.c (XTread_socket):
	Assume SYNC_INPUT.
	* conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
	* eval.c (handling_signal): Remove.  All uses removed.
	* lisp.h (ELSE_PENDING_SIGNALS): Remove.
	All uses replaced with the SYNC_INPUT version.
	(reset_malloc_hooks, uninterrupt_malloc, handling_signal):
	Remove decls.
	* sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
	Now static.

1228 1229
	* font.c (Ffont_shape_gstring): Remove unused local.

1230 1231
2012-09-16  Glenn Morris  <rgm@gnu.org>

1232 1233
	* Makefile.in (clean): No longer run nextstep's clean.

1234 1235 1236 1237 1238 1239
	* Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
	(ns_frag): Remove.
	(ns-app): Move here from ns.mk, and simplify.
	(clean): Simplify nextstep entry.
	* ns.mk: Remove file.

1240 1241 1242 1243 1244
2012-09-17  Kenichi Handa  <handa@gnu.org>

	* font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
	not covert the last few charactes.

Kenichi Handa's avatar
Kenichi Handa committed
1245
2012-09-16  Kenichi Handa  <handa@gnu.org>
1246 1247 1248 1249

	* font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
	here, but just check the validity of glyphs in the glyph-string.

1250 1251
2012-09-16  Martin Rudalics  <rudalics@gmx.at>

Stefan Monnier's avatar
Stefan Monnier committed
1252 1253
	* window.c (Fwindow_parameter, Fset_window_parameter):
	Accept any window as argument (Bug#12452).
1254

1255 1256 1257 1258 1259 1260 1261 1262 1263 1264
2012-09-16  Jan Djärv  <jan.h.d@swipnet.se>

	* nsfns.m (Fx_open_connection): Move initialization of ns_*_types
	to ns_term_init to avoid memory leak.

	* nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
	explicit retain/release.
	(ns_term_init): Only allow one display.  Initialize outerpool and
	ns_*_types.

1265 1266 1267 1268 1269 1270 1271
2012-09-15  Paul Eggert  <eggert@cs.ucla.edu>

	Port _setjmp fix to POSIXish hosts as well as Microsoft.
	* image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
	it's needed on POSIXish hosts that lack _setjmp.  Attempt to solve
	the Microsoft problem in a different way, by altering ../nt/config.nt.

1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297
2012-09-15  Eli Zaretskii  <eliz@gnu.org>

	* w32xfns.c:
	* w32uniscribe.c:
	* w32term.c:
	* w32select.c:
	* w32reg.c:
	* w32proc.c:
	* w32menu.c:
	* w32inevt.c:
	* w32heap.c:
	* w32font.c:
	* w32fns.c:
	* w32console.c:
	* w32.c:
	* w16select.c: Remove inclusion of setjmp.h, as it is now included
	by lisp.h.  This completes removal of setjmp.h inclusion
	erroneously announced in the previous commit.  (Bug#12446)

	* lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
	more accurate.

	* image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
	not defined as a macro.  The latter happens on MS-Windows.
	(Bug#12446)

1298 1299 1300 1301
2012-09-15  Paul Eggert  <eggert@cs.ucla.edu>

	Port better to POSIX hosts lacking _setjmp (Bug#12446).
	* lisp.h: Include <setjmp.h> here, since we use its symbols here.
1302
	Some instances of '#include <setjmp.h>' removed, if the
1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319
	only reason for the instance was because "lisp.h" was included.
	(sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
	Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
	and _longjmp with the new symbols.  Emacs already uses _setjmp if
	available, so this change affects only POSIXish hosts that have
	sigsetjmp but not _setjmp, such as some versions of Solaris and
	Unixware.  (Also, POSIX-2008 marks _setjmp as obsolescent.)
	* image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
	(png_load_body) [HAVE_PNG]:
	(PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
	(PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
	Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
	since PNG requires jmp_buf.  This is the only exception to the
	general rule that we now use sys_setjmp and sys_longjmp.
	This exception is OK since this code does not change the signal
	mask or longjmp out of a signal handler.

1320 1321 1322 1323 1324
2012-09-14  Paul Eggert  <eggert@cs.ucla.edu>

	* alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
	Include "syssignal.h", for 'main_thread'.

1325 1326 1327
2012-09-14  Dmitry Antipov  <dmantipov@yandex.ru>

	Avoid out-of-range marker position (Bug#12426).
Stefan Monnier's avatar
Stefan Monnier committed
1328 1329
	* insdel.c (replace_range, replace_range_2):
	Adjust markers before overlays, as suggested by comments.
1330 1331 1332
	(insert_1_both, insert_from_buffer_1, adjust_after_replace):
	Remove redundant check before calling offset_intervals.

1333 1334 1335 1336 1337
2012-09-14  Martin Rudalics  <rudalics@gmx.at>

	* xdisp.c (Fformat_mode_line): Unconditionally save/restore
	current buffer (Bug#12387).

1338 1339 1340 1341
2012-09-14  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.

1342 1343 1344 1345 1346 1347 1348
2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>

	Use a more backwards-compatible timer format (Bug#12430).
	* keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
	vector element, not from the 4th, since PSECS is now at the end.
	(Fcurrent_idle_time): Doc fix.

1349 1350 1351 1352 1353 1354 1355 1356 1357
2012-09-13  Dmitry Antipov  <dmantipov@yandex.ru>

	Function to mark objects and remove killed buffers at once.
	* alloc.c (discard_killed_buffers): Rename to ...
	(mark_discard_killed buffers) ... new name.  Add marking
	of remaining objects.  Fix comment.  Adjust users.
	(mark_object): Do not touch frame buffer lists here.
	* frame.c (delete_frame): Reset frame buffer lists here.

1358 1359
2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>

1360 1361 1362 1363 1364
	Better workaround for GNOME bug when --enable-gcc-warnings.
	* emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
	Instead, disable -Wunused-local-typedefs.  See Dmitry Antipov in
	<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.

Paul Eggert's avatar
Paul Eggert committed
1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400
	Simplify SIGIO usage (Bug#12408).
	The code that dealt with SIGIO was crufty and confusing, e.g., it
	played tricks like "#undef SIGIO" but these tricks were not used
	consistently.  Simplify mostly by not #undeffing standard symbols,
	e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
	or not as we please) rather than "defined SIGIO" (standard symbol
	that we probably shouldn't #undef).
	* conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
	Modules that need it can include it.
	[USG5_4 && emacs]: Likewise, do not include the streams stuff here.
	* dispextern.h (ignore_sigio): New decl.
	* emacs.c (shut_down_emacs): Invoke unrequest_sigio
	unconditionally, since it's now a no-op if !USABLE_SIGIO.
	* emacs.c (shut_down_emacs):
	* keyboard.c (kbd_buffer_store_event_hold):
	Use ignore_sigio rather than invoking 'signal' directly.
	* keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
	for FIONREAD.
	(FIONREAD, SIGIO): Do not #undef.
	(tty_read_avail_input): Use #error rather than a syntax error.
	* process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
	for I_PIPE, used by SETUP_SLAVE_PTY.
	(DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
	* sysdep.c (croak): Remove; no longer needed.  This bit of
	temporary code, with Fred N. Fish's comment that it's temporary,
	has been in Emacs since at least 1992!
	(init_sigio, reset_sigio, request_sigio, unrequest_sigio):
	Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
	* syssignal.h (croak): Remove decl.
	(SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
	* systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
	now that we're termios-only.
	(FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
	* term.c (dissociate_if_controlling_tty): Use #error rather than
	a run-time error.

1401 1402 1403 1404 1405 1406 1407
	Work around GCC and GNOME bugs when --enable-gcc-warnings.
	* emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
	to work around GNOME bug 683906.
	* image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
	(struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
	This works around GCC bug 54561.

1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423
2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>

	More fixes for 'volatile' and setjmp/longjmp.
	* eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
	* image.c (struct png_load_context) [HAVE_PNG]: New type.
	(png_load_body) [HAVE_PNG]:
	(jpeg_load_body) [HAVE_JPEG]:
	New function, with most of the old parent function's body.
	(png_load) [HAVE_PNG]:
	(jpeg_load) [HAVE_JPEG]:
	Invoke the new function, to avoid longjmp munging our locals.
	(struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
	(my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
	longjmp is passed 2, as the C standard doesn't guarantee this.
	Instead, store the failure code into mgr->failure_code.

Stefan Monnier's avatar
Stefan Monnier committed
1424 1425 1426 1427 1428 1429
2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
	(Fdiscard_input, quit_throw_to_read_char, init_keyboard)
	(syms_of_keyboard): Remove support for unread-command-char.

1430 1431 1432 1433 1434 1435
2012-09-12  Eli Zaretskii  <eliz@gnu.org>

	* w32proc.c (sys_kill): If PID is our process ID and the signal is
	SIGABRT, call emacs_abort.  Avoids silently exiting upon assertion
	violation.  (Bug#12426)

1436 1437 1438 1439
2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>

	* image.c (jpeg_memory_src): Don't assume string len fits in unsigned.

1440 1441 1442 1443 1444 1445 1446 1447 1448 1449
2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* eval.c: Add `inhibit-debugger'.
	(Qinhibit_debugger): New symbol.
	(call_debugger): Bind it instead of Qdebug_on_error.
	(maybe_call_debugger): Test Vinhibit_debugger.
	(syms_of_eval): Define inhibit-debugger.
	* xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
	(syms_of_xdisp): Remove inhibit-debug-on-message.

1450 1451
2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>

1452 1453 1454 1455 1456 1457 1458 1459 1460 1461
	Avoid _setjmp/_longjmp problems with local nonvolatile variables.
	If a nonvolatile local variable is written before a _longjmp to
	the frame containing the variable, and is read after the _longjmp,
	the value read is indeterminate.  Some local variables of type
	'struct handler' and 'struct catchtag' are used in this way, so
	mark each of their slots as volatile if the slot can be set before
	_longjmp and read afterwards.
	* lisp.h (struct handler): var and chosen_clause are now volatile.
	(struct catchtag): val, next, and pdlcount are now volatile.

1462 1463 1464 1465 1466 1467 1468 1469 1470
	* bidi.c (bidi_push_it, bidi_pop_it):
	* fns.c (copy_hash_table):
	* image.c (define_image_type):
	* keyboard.c (kbd_buffer_store_event_hold):
	* process.c (Fprocess_send_eof):
	* xfaces.c (x_create_gc) [HAVE_NS]:
	* xgselect.c (xg_select):
	Prefer assignment to memcpy when either will do.

1471 1472 1473 1474 1475
	* alloc.c (discard_killed_buffers): Tune and simplify a bit.
	Use pointer-to-a-pointer to simplify and avoid a NILP check each
	time an item is removed.  No need to mark this function 'inline';
	the compiler knows better than we do.

1476 1477 1478 1479 1480 1481 1482 1483 1484
2012-09-11  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
	(updateFrameSize:): Add delay parameter to updateFrameSize, send it
	to change_frame_size (Bug#12388).
	(windowDidResize:): Pass YES to updateFrameSize.

	* nsterm.h: Add delay parameter to updateFrameSize.

1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498
2012-09-11  Dmitry Antipov  <dmantipov@yandex.ru>

	Discard killed buffers from deleted window and frame objects.
	This reduces an amount of references to killed buffers and
	helps GC to reclaim them faster.
	* alloc.c (discard_killed_buffers): New function.
	(mark_object): Use it for deleted windows and frames.
	(mark_object): If symbol's value is set up for a killed buffer
	or deleted frame, restore it's global binding.
	* data.c (swap_in_global_binding): Add GC notice.
	(swap_in_symval_forwarding): Use convenient set_blv_where.
	* window.c (wset_next_buffers, wset_prev_buffers): Move ...
	* window.h: ... to here.

1499 1500 1501 1502 1503 1504 1505
2012-09-11  Dmitry Antipov  <dmantipov@yandex.ru>

	Convenient macro to check whether the buffer is live.
	* buffer.h (BUFFER_LIVE_P): New macro.
	* alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
	* minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.

1506 1507 1508 1509 1510 1511 1512 1513 1514 1515
2012-09-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>

	* xdisp.c (right_overwritten, right_overwriting): Also handle gstring
	composition cases (Bug#12364).

	* xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
	overhang of succeeding glyphs overlapping box cursor.

	* w32term.c (x_draw_glyph_string): Likewise.

1516 1517
2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>

1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538
	Simplify, document, and port floating-point (Bug#12381).
	The porting part of this patch fixes bugs on non-IEEE platforms
	with frexp, ldexp, logb.
	* data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
	Now static.
	* floatfns.c: Simplify discussion of functions that Emacs doesn't
	support, by removing commented-out code and briefly listing the
	C89 functions excluded.  The commented-out stuff was confusing
	maintenance, e.g., we thought we needed cbrt but it was commented out.
	(logb): Remove decl; no longer needed.
	(isfinite): New macro, if not already supplied.
	(isnan): Don't replace any existing macro.
	(Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
	are present on all C89 platforms.
	(Ffrexp): Do not special-case zero, as frexp does the right thing
	for that case.
	(Flogb): Do not use logb, as it doesn't have the desired meaning
	on hosts that use non-base-2 floating point.  Instead, stick with
	frexp, which is C89 anyway.  Do not pass an infinity or a NaN to
	frexp, to avoid getting an unspecified result.

1539 1540
	* xdisp.c (Qinhibit_debug_on_message): Now static.

1541 1542 1543 1544 1545
2012-09-10  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (ns_update_begin): Set clip path to whole view by using
	NSBezierPath (Bug#12131).

1546 1547 1548 1549
2012-09-10  Chong Yidong  <cyd@gnu.org>

	* fns.c (Fdelq, Fdelete): Doc fix.

Paul Eggert's avatar
Paul Eggert committed
1550 1551 1552 1553 1554
2012-09-10  Paul Eggert  <eggert@cs.ucla.edu>

	* lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
	(XSETFLOAT, XSETMISC): Parenthesize macro bodies.

1555 1556 1557 1558 1559 1560
2012-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lisp.h (make_lisp_ptr): New macro to replace XSET.
	(XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
	Use it.

1561 1562
2012-09-09  Eli Zaretskii  <eliz@gnu.org>

1563 1564 1565 1566
	* fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
	left fringe if the window has a left margin.  This avoids leaving
	traces of the cursor because its leftmost pixel is not drawn over.

1567 1568 1569 1570
	* dispnew.c (update_window_line): When the left margin area of a
	screen line is updated, set the redraw_fringe_bitmaps_p flag of
	that screen line.  (Bug#12277)

1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602
2012-09-09  Paul Eggert  <eggert@cs.ucla.edu>

	Assume C89 or later for math functions (Bug#12381).
	This simplifies the code, and makes it a bit smaller and faster,
	and (most important) makes it easier to clean up signal handling
	since we can stop worring about floating-point exceptions in
	library code.  That was a problem before C89, but the problem
	went away many years ago on all practical Emacs targets.
	* data.c, image.c, lread.c, print.c:
	Don't include <math.h>; no longer needed.
	* data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
	might be autoconfigured, as that never happens.
	* data.c (fmod):
	* doprnt.c (DBL_MAX_10_EXP):
	* print.c (DBL_DIG):
	Remove.  C89 or later always defines these.
	* floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
	(in_float, float_error_arg, float_error_arg2, float_error_fn_name)
	(arith_error, domain_error, domain_error2):
	Remove all this pre-C89 cruft.  Do not include <errno.h> as that's
	no longer needed -- we simply return what C returns.  All uses removed.
	(IN_FLOAT, IN_FLOAT2): Remove.  All uses replaced with
	the wrapped code.
	(FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
	Remove.  All uses expanded, as these macros are no longer used
	more than once and are now more trouble than they're worth.
	(Ftan): Use tan, not sin / cos.
	(Flogb): Assume C89 frexp.
	(fmod_float): Assume C89 fmod.
	(matherr) [HAVE_MATHERR]: Remove; no longer needed.
	(init_floatfns): Remove.  All uses removed.

1603 1604 1605 1606 1607
2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
	compositeToPoint for OSX < 10.6 (Bug#12390).

1608 1609 1610 1611 1612
2012-09-08  Paul Eggert  <eggert@cs.ucla.edu>

	* floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
	This produces more-accurate results.

1613 1614 1615 1616 1617
2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (updateFrameSize): Call setFrame: on the view when size
	changes (Bug#12088).

1618 1619 1620 1621
2012-09-08  Chong Yidong  <cyd@gnu.org>

	* syntax.c (Fstring_to_syntax): Doc fix.

1622 1623 1624 1625 1626 1627
2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
	in the internal border.
	(x_set_window_size): Remove static variables and their usage.
	(ns_redraw_scroll_bars): Fix NSTRACE arg.
Stefan Monnier's avatar
Stefan Monnier committed
1628 1629
	(ns_after_update_window_line, ns_draw_fringe_bitmap):
	Remove fringe/internal border adjustment (Bug#11052).
1630 1631 1632 1633 1634 1635 1636 1637
	(ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
	(ns_draw_window_cursor): Remove fringe/internal border adjustment.
	(ns_fix_rect_ibw): Remove.
	(ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
	(ns_dumpglyphs_box_or_relief): Ditto.
	(ns_maybe_dumpglyphs_background): Remove fringe/internal border
	adjustment.
	(ns_dumpglyphs_image): Ditto.
Juanma Barranquero's avatar
Juanma Barranquero committed
1638
	(ns_dumpglyphs_stretch): Fix coding style.  Remove fringe/internal
1639 1640 1641 1642 1643 1644 1645 1646 1647 1648
	border adjustment.
	(ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
	their usage.  Add fringe_extended_p and its use as in other terms.
	(ns_judge_scroll_bars): Code style fix.  Call updateFrameSize if
	scroll bar was removed.
	(updateFrameSize): New function.
	(windowDidResize): Move code to updateFrameSize and call it.

	* nsterm.h (EmacsView): Add updateFrameSize.

1649 1650
2012-09-07  Chong Yidong  <cyd@gnu.org>

1651 1652
	* textprop.c (Fget_text_property): Minor doc fix (Bug#12323).

1653 1654
	* data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).

Paul Eggert's avatar
Paul Eggert committed
1655 1656 1657
2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>

	More signal-handler cleanup (Bug#12327).
1658 1659 1660
	* emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
	Problem introduced when merging patches.  Noted by Eli Zaretskii in
	<http://bugs.gnu.org/12327#67>.
Paul Eggert's avatar
Paul Eggert committed
1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674
	* floatfns.c: Comment fix.
	* lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
	SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
	and anyway the declaration is harmless even if SIGDANGER is not defined.
	* syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
	defined BROKEN_FIONREAD).  systty.h formerly did this, but other
	source files not surprisingly expected syssignal.h to define, or
	not define, SIGIO, and it's cleaner to do it that way, for consistency.
	Include <sys/ioctl.h>, for FIONREAD.
	* systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
	This eliminates a problem whereby other files mysteriously had
	to include "syssignal.h" before including "systty.h" if they
	wanted to use "#ifdef SIGIO".

1675 1676
2012-09-07  Eli Zaretskii  <eliz@gnu.org>

1677 1678 1679 1680 1681
	* w32proc.c (sigaction): New function, emulates Posix 'sigaction'.

	* w32.c (sigemptyset): Empty the set.
	(sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.

1682 1683
	* alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.

1684 1685 1686 1687 1688
2012-09-07  Dmitry Antipov  <dmantipov@yandex.ru>

	* alloc.c (mark_buffer): Revert unsafe marking optimization.
	(mark_object): Likewise for frame objects.

1689 1690 1691 1692 1693 1694
2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>

	* syssignal.h (handle_on_main_thread): Always declare,
	even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
	This ports to platforms without HAVE_PTHREAD.

Paul Eggert's avatar
Paul Eggert committed
1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718
2012-09-06  Paul Eggert  <eggert@cs.ucla.edu>

	Signal-handler cleanup (Bug#12327).
	Emacs's signal handlers were written in the old 4.2BSD style with
	sigblock and sigmask and so forth, and this led to some
	inefficiencies and confusion.  Rewrite these to use
	pthread_sigmask etc. without copying signal sets around.  Also,
	get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
	'signal', and instead use functions that do not attempt to take
	over the system name space.  This patch causes Emacs's text
	segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
	* alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
	Do not include <signal.h> or "syssignal.h", as these
	modules do not use signals.
	* atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
	* gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
	Do not include <signal.h>, as "syssignal.h" does that for us now.
	* atimer.c (sigmask_atimers): New function.
	(block_atimers, unblock_atimers): New functions,
	replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
	All uses replaced.
	* conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
	no longer needed here.
	* emacs.c (main): Inspect existing signal handler with sigaction,
Juanma Barranquero's avatar
Juanma Barranquero committed
1719
	so that there's no need to block and unblock SIGHUP.