ChangeLog 512 KB
Newer Older
1 2 3 4 5 6
2014-08-12  Martin Rudalics  <rudalics@gmx.at>

	* frame.c (set_menu_bar_lines_1): Remove.
	(set_menu_bar_lines): Call change_frame_size instead of
	set_menu_bar_lines_1.

7 8 9 10 11
2014-08-11  Jan Djärv  <jan.h.d@swipnet.se>

	* nsfns.m (Fx_create_frame): Call adjust_frame_size,
	set f->official.

12 13 14 15 16 17 18 19 20
2014-08-11  Glenn Morris  <rgm@gnu.org>

	* fileio.c: Revert 2013-01-31 change, which chose coding system for
	writing before backing up, since it causes a more serious problem
	than the one it solves.  (Closes Bug#18141, reopens Bug#13522.)
	(choose_write_coding_system): No longer callable from Lisp.
	Move last piece back here from Fwrite_region.
	(Fwrite_region, syms_of_fileio): Update for above changes.

21
2014-08-11  Martin Rudalics  <rudalics@gmx.at>
22 23 24 25 26 27

	* window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
	(Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
	(Fwindow_new_pixel, Fset_window_new_pixel)
	(Fset_window_new_total, Fset_window_new_normal)
	(Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
28 29
	See also:
	http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
30

31
2014-08-11  Eli Zaretskii  <eliz@gnu.org>
32 33 34 35

	* fontset.c (Finternal_char_font): Recompute basic faces if the
	frame's face cache was cleared.  (Bug#18162)

36
2014-08-11  Dmitry Antipov  <dmantipov@yandex.ru>
37 38 39 40 41

	Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
	* buffer.c (Fmake_indirect_buffer): Initialize undo list with the
	base buffer's undo list.

42 43 44 45 46 47
2014-08-10  Reuben Thomas  <rrt@sc3d.org>

	Fix a couple of recent inadvertent breaks of the MSDOS port.
	* msdos.c: include required menu.h
	* term.c: set correct menu_show_hook on MSDOS.

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
2014-08-10  Martin Rudalics  <rudalics@gmx.at>

	Fix handling of menu bar line on TTY frames (Bug#18136)
	(Bug#18196).
	* dispnew.c (handle_window_change_signal):
	* keyboard.c (Fsuspend_emacs): Call change_frame_size with
	frame's menu bar lines subtracted from height.
	* frame.c (frame_inhibit_resize): Inhibit resizing of TTY
	frames.
	(adjust_frame_size): Count in menu bar when setting FrameRows.
	(make_terminal_frame): When setting up the frame's lines and
	text height don't count in the menu bar.
	(Fmake_terminal_frame): Call adjust_frame_size with menu bar
	lines subtracted from height.
	(do_switch_frame): Set tty's FrameRows to number of total lines
	of frame.
	(Fframe_pixel_height, Fframe_pixel_width): If no window system
	is used, return total number of lines and columns.
	* menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead
	of FRAME_LINES.
	* term.c (OUTPUT, tty_set_terminal_modes)
	(tty_set_terminal_window, tty_set_scroll_region)
	(tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face)
	(tty_ins_del_lines, tty_menu_display, tty_menu_activate): Use
	FRAME_TOTAL_LINES instead of FRAME_LINES.
	(Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES.
	Call change_frame_size with frame's menu bar lines subtracted
	from height.
	* w32console.c (w32con_clear_to_end, w32con_clear_frame)
	(w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of
	FRAME_LINES.

80 81
2014-08-09  Reuben Thomas  <rrt@sc3d.org>

82
	* alloc.c (Fmemory_info): Remove a stray brace.
83
	* process.c: Fix a comment typo.
84 85 86
	* msdos.c:
	* dosfns.c (init_dosfns): Remove support for DJGPP < 2.02.

87 88 89 90 91 92 93 94
2014-08-09  Jan Djärv  <jan.h.d@swipnet.se>

	* widgetprv.h (EmacsFramePart): Remove font.

	* widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs)
	(resources, setup_frame_cursor_bits): Remove unused variables and
	functions, esp. wrt. font (Bug#18227).

95 96 97 98
2014-08-07  Paul Eggert  <eggert@cs.ucla.edu>

	* xterm.c (x_delete_terminal): Plug file descriptor leak (Bug#17691).

99 100 101 102 103 104 105 106
2014-08-07  Reuben Thomas  <rrt@sc3d.org>

	Refer to MS-DOS using the same name everywhere.

	* editfns.c: Fix a couple of ``MS-DOG''s missed in the previous
	commit.
	* xfaces.c: ditto.

107 108 109 110 111 112
2014-08-05  Martin Rudalics  <rudalics@gmx.at>

	* w32term.c (w32_redeem_scroll_bar):
	* xterm.c (XTredeem_scroll_bar): Revert part of last change by
	not redeeming scroll bars that have been turned off.

113 114 115 116 117 118 119
2014-08-05 Dmitry Antipov  <dmantipov@yandex.ru>

	* keyboard.c (safe_run_hooks): Follow the convenient style to bind
	inhibit-quit to t and pass 2 args to safe_run_hook_funcall.  See
	<http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00077.html>.
	(safe_run_hook_funcall): Adjust accordingly.

120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
2014-08-04  Martin Rudalics  <rudalics@gmx.at>

	* frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): Condition
	correctly according to toolkit used.
	* frame.c (make_initial_frame, make_terminal_frame)
	(x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
	(Vdefault_frame_horizontal_scroll_bars): Correctly condition
	assignments according to presence of toolkit scrollbars.
	* window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Condition
	correctly according to toolkit used.
	* window.c (set_window_scroll_bars): Set horizontal scroll bar
	only if toolkit supports it.
	* w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
	present.
	* xterm.c (x_scroll_bar_create): Initialize horizontal slot for
	non-toolkit builds.
	(XTredeem_scroll_bar): Always redeem scroll bar if present.

138 139 140 141 142 143 144
2014-08-04 Dmitry Antipov  <dmantipov@yandex.ru>

	* keyboard.c (safe_run_hook_funcall): Avoid consing around
	Vinhibit_quit and prefer internal_condition_case_n to pass args.
	(safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly.
	(safe_run_hooks): Remove comment which is not relevant any more.

145 146
2014-08-03  Paul Eggert  <eggert@cs.ucla.edu>

147 148 149 150
	Don't let big frames overrun the stack.
	* dispnew.c (mirrored_line_dance, mirror_line_dance, scrolling):
	Use SAFE_NALLOCA, not alloca.

151 152 153 154 155
	Fix bug with clang + directory_files_internal + GC (Bug#16986).
	* dired.c (directory_files_internal): Use a volatile variable
	to prevent the compiler from optimizing away all copies of a local.
	I wonder how many other GC-related bugs like this lurk elsewhere?

156 157 158 159 160 161
	Avoid 100% CPU utilization on ssh session exit (Bug#17691).
	* xterm.h (struct x_display_info): New member 'connection'.
	* xterm.c (x_term_init, x_delete_terminal): Set and use it,
	so that x_delete_terminal has a file descriptor to pass to
	delete_keyboard_wait_descriptor.

Paul Eggert's avatar
Paul Eggert committed
162 163 164 165 166 167 168 169 170
	Don't mishandle year-9999 dates (Bug#18176).
	* editfns.c (decode_time_components): Store an invalid timespec
	on overflow, instead of returning false, so that the caller can
	distinguish overflow from other errors.
	(lisp_time_argument, lisp_seconds_argument): If the time is out
	of range, signal a time overflow instead of an invalid time spec.
	* keyboard.c (decode_timer): Treat time overflow like other
	timespec errors.

171 172 173 174 175 176 177 178
	Avoid undefined behavior with signed left shift.
	Caught by 'gcc -fsanitize=undefined'.
	* dispextern.h, scroll.c (scrolling_max_lines_saved, scrolling_1):
	* dispnew.c (line_hash_code, scrolling):
	* scroll.c (calculate_scrolling, calculate_direct_scrolling):
	Use 'unsigned', not 'int', for line hashes.
	(scrolling_max_lines_saved): Avoid mystery constants for hash sizes.

179 180 181 182 183
2014-08-02  Paul Eggert  <eggert@cs.ucla.edu>

	Make compare-strings more compatible with old behavior (Bug#17903).
	* fns.c (Fcompare_strings): Silently bring too-large ends into range.

184 185 186 187 188
2014-08-02  Jan Djärv  <jan.h.d@swipnet.se>

	* gtkutil.c (create_dialog): Force min spacing 10 between buttons.
	Don't add label between left and right buttons (Bug#18129).

189 190 191 192 193 194 195 196 197
2014-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	Make functions static that no longer need to be extern.
	* frame.c, frame.h (set_menu_bar_lines):
	* keyboard.c (Qleftmost, Qrightmost):
	* xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines)
	(x_set_internal_border_width):
	Now static.

198 199 200 201 202 203 204 205 206 207 208 209 210
2014-08-01  Eli Zaretskii  <eliz@gnu.org>

	Fix display of R2L lines when the last character fits only partially.
	See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html
	for the details.
	* xdisp.c (extend_face_to_end_of_line): If the last glyph of an
	R2L row is visible only partially, give the row a negative x
	offset.
	(display_line): Fix the calculation of the glyph whose pixel width
	is used to decide whether the last produced glyph fits on the
	line.  When the last glyph fits only partially, give the row a
	negative x offset.

211 212 213 214 215 216
	Fix hscroll of R2L lines that begin with a TAB or another wide glyph.
	* xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the
	pixel width of the first glyph that is hscrolled from display.
	(display_line): In R2L glyph rows, don't give a negative offset to
	row->x when the first glyph begins before first_visible_x.

217 218 219 220 221 222 223 224 225
	* xdisp.c (display_line): If called with iterator set up to write
	to a marginal area, delay the call to handle_line_prefix until we
	switch back to the text area.  (Bug#18035)

	* .gdbinit (xwindow): The members total_cols, total_lines,
	left_col, and top_line are C integers (and has been so for the
	last 1.5 years).

2014-08-01  Andreas Schwab  <schwab@suse.de>
Andreas Schwab's avatar
Andreas Schwab committed
226 227 228 229

	* macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and
	kbd_macro_end together with kbd_macro_buffer.  (Bug#18140)

230 231 232 233 234 235
2014-08-01  Dmitry Antipov  <dmantipov@yandex.ru>

	* atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h.
	(timerfd_callback): Ignore weird events with no data.  Add tight
	assertions and comments.
	(init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally
Dmitry Antipov's avatar
Dmitry Antipov committed
236
	disable timerfd-based timer.  Use TFD_NONBLOCK for timer descriptor.
237

238 239 240 241 242
2014-08-01  Paul Eggert  <eggert@cs.ucla.edu>

	* frame.c (x_set_frame_parameters): Fix typo in previous patch.
	I had confused && with ||.

243 244
2014-07-31  Paul Eggert  <eggert@cs.ucla.edu>

245 246 247 248 249 250 251 252 253 254
	Simplify timerfd configuration and fix some minor glitches.
	* atimer.c (TIMERFD_CREATE_FLAGS): Remove; we now assume TFD_CLOEXEC.
	(alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
	Fall back on timer_create if timerfd_create fails at runtime.
	(resolution) [HAVE_CLOCK_GETRES]: Remove; we now rely on the
	kernel primitives to do resolution.  All uses removed.
	(timerfd) [!HAVE_TIMERFD]: Define to be -1, for convenience.
	(turn_on_atimers): Clear timer_create-based timers too,
	for consistency.

255 256 257 258 259
	* frame.c (x_set_frame_parameters): Don't use uninitialized locals.
	Without this change, the code can access the local variable 'width'
	even when it has not been initialized, and likewise for 'height';
	in either case this leads to undefined behavior.

260 261 262 263 264
2014-07-30  Dmitry Antipov  <dmantipov@yandex.ru>

	* xrdb.c (x_load_resources) [USE_MOTIF]: Although not strictly
	necessary, put horizontal scroll bar resources as well.  See
	<http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00430.html>.
265
	* xterm.c (x_sync_with_move): Really wait 0.5s, not 0.0005s.
266

267 268 269 270 271
2014-07-29  Dmitry Antipov  <dmantipov@yandex.ru>

	* xrdb.c (x_load_resources) [!USE_MOTIF]: Put horizontal scroll bar
	background value to match the resource of its vertical counterpart.

272 273 274 275 276
2014-07-29  Martin Rudalics  <rudalics@gmx.at>

	* frame.c (adjust_frame_size): Use FRAME_WINDOW_P instead of
	FRAME_X_WINDOW when calling x_set_window_size (Bug#18138).

277 278 279 280 281 282 283
2014-07-28  Martin Rudalics  <rudalics@gmx.at>

	* frame.c (x_set_frame_parameters): Revert part of 2014-07-24
	change that added the top margin height to the requested height
	and revert (undocumented) part of 2014-07-28 change that changed
	the logic of whether a size change occurred.

284 285
2014-07-28  Eli Zaretskii  <eliz@gnu.org>

Eli Zaretskii's avatar
Eli Zaretskii committed
286 287 288 289
	* .gdbinit (xwindow): The members total_cols, total_lines,
	left_col, and top_line are C integers (and has been so for the
	last 1.5 years).

290 291 292
	* .gdbinit (xsubchartable): The members 'depth' and 'min_char' are
	now C integers.

293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
2014-07-28  Dmitry Antipov  <dmantipov@yandex.ru>

	On GNU/Linux, use timerfd for asynchronous timers.
	* atimer.c (toplevel) [HAVE_TIMERFD]: Include sys/timerfd.h.
	(toplevel): Rename alarm_timer_ok to special_timer_available.
	[HAVE_TIMERFD]: Declare timerfd.
	[HAVE_CLOCK_GETRES]: Declare resolution.
	(start_atimer) [HAVE_CLOCK_GETRES]: Round up timestamp to
	system timer resolution.
	(set_alarm) [HAVE_TIMERFD]: Use timerfd_settime.
	(timerfd_callback) [HAVE_TIMERFD]: New function.
	(atimer_result, debug_timer_callback, Fdebug_timer_check)
	[ENABLE_CHECKING]: New function for the sake of automated tests.
	(init_atimer) [HAVE_TIMERFD]: Setup timerfd.
	[HAVE_CLOCK_GETRES]: Likewise for system timer resolution.
	[ENABLE_CHECKING]: Defsubr test function.
	* atimer.h (timerfd_callback) [HAVE_TIMERFD]: Add prototype.
	* lisp.h (add_timer_wait_descriptor) [HAVE_TIMERFD]: Likewise.
	* process.c (add_timer_wait_descriptor) [HAVE_TIMERFD]: New function.

313 314 315 316 317 318 319 320
	Fix --without-x build and pacify --enable-gcc-warnings.
	Problems reported in Bug#18122 and Bug#18124.
	* frame.c (get_frame_param): Define even if !HAVE_WINDOW_SYSTEM.
	(frame_windows_min_size): Now static.
	* frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS) [!HAVE_WINDOW_SYSTEM]:
	Define as no-op.
	(adjust_frame_size): Always declare prototype.

321 322 323 324 325 326 327 328
	Fix Gnus-related issues reported by David Kastrup <dak@gnu.org> in
	<http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00370.html>.
	* atimer.c (timerfd_callback): Always read expiration data.
	Add comment.
	(turn_on_atimers) [HAVE_TIMERFD]: Disarm timerfd timer.
	* process.c (add_timer_wait_descriptor): Add timer descriptor
	to input_wait_mask and non_process_wait_mask as well.

329 330 331 332
2014-07-28  Paul Eggert  <eggert@cs.ucla.edu>

	* frame.c (x_set_frame_parameters): Don't use uninitialized locals.

Jan Djärv's avatar
Jan Djärv committed
333 334 335 336 337
2014-07-27  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (applicationDidFinishLaunching antialiasThresholdDidChange):
	Reinstate code removed by the prevoius commit to this file.

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 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 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 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 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 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700
2014-07-27  Martin Rudalics  <rudalics@gmx.at>

	* buffer.h (struct buffer): New fields scroll_bar_height and
	horizontal_scroll_bar_type.
	* buffer.c (bset_scroll_bar_height)
	(bset_horizontal_scroll_bar_type): New functions.
	(Fbuffer_swap_text): Handle old_pointm field.
	(init_buffer_once): Set defaults for scroll_bar_height and
	horizontal_scroll_bar_type.
	(syms_of_buffer): New variables scroll_bar_height and
	horizontal_scroll_bar_type.
	* dispextern.h (window_part): Rename ON_SCROLL_BAR to
	ON_VERTICAL_SCROLL_BAR.  Add ON_HORIZONTAL_SCROLL_BAR.
	(set_vertical_scroll_bar): Remove prototype.
	(x_change_tool_bar_height): Add prototype.
	* dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
	(window_to_frame_vpos, update_frame_1, scrolling, init_display):
	Use FRAME_TOTAL_COLS and FRAME_TOTAL_LINES instead of FRAME_COLS
	and FRAME_LINES.
	(adjust_frame_glyphs_for_window_redisplay): Rearrange lines.
	(update_window): Start mode_line_row->y after horizontal scroll
	bar.
	(change_frame_size_1): Call adjust_frame_size.
	(init_display): When changing the size of a tty frame do not
	pass height of menu bar.
	(Qframe_windows_min_size): New symbol.
	* frame.h (struct frame): List tool bar fields after menu bar
	fields.  Add official, total_lines, horizontal_scroll_bars,
	config_scroll_bar_height and config_scroll_bar_lines fields.
	(FRAME_HAS_HORIZONTAL_SCROLL_BARS)
	(FRAME_CONFIG_SCROLL_BAR_HEIGHT, FRAME_CONFIG_SCROLL_BAR_LINES)
	(FRAME_SCROLL_BAR_AREA_HEIGHT, FRAME_SCROLL_BAR_COLS)
	(FRAME_SCROLL_BAR_LINES, FRAME_TOTAL_LINES, SET_FRAME_LINES)
	(FRAME_WINDOWS_HEIGHT): New macros.
	(SET_FRAME_HEIGHT, FRAME_TEXT_LINES_TO_PIXEL_HEIGHT)
	(FRAME_PIXEL_Y_TO_LINE, FRAME_PIXEL_HEIGHT_TO_TEXT_LINES)
	(FRAME_TEXT_TO_PIXEL_HEIGHT): Separately count top margin and
	horizontal scroll bar.
	(frame_inhibit_resize, adjust_frame_size)
	(frame_windows_min_size): Add declarations.
	(Qscroll_bar_height, Qhorizontal_scroll_bars)
	(x_set_scroll_bar_default_height, x_set_left_fringe)
	(x_set_right_fringe, x_set_vertical_scroll_bars)
	(x_set_horizontal_scroll_bars, x_set_scroll_bar_width)
	(x_set_scroll_bar_height): Add external declarations.
	* frame.c: (frame_inhibit_resize, frame_windows_min_size)
	(adjust_frame_size): New functions.
	(make_frame): Initial horizontal_scroll_bars field.  Use
	SET_FRAME_LINES.  Don't allow horizontal scroll bar in
	minibuffer window.
	(make_initial_frame, make_terminal_frame): No horizontal scroll
	bar in initial and terminal frames.  Use adjust_frame_size.
	(Fframe_total_cols): Fix doc-string.
	(Fframe_total_lines, Fscroll_bar_height): New Lisp functions.
	(Fset_frame_height, Fset_frame_width, Fset_frame_size): Rewrite
	using adjust_frame_size.
	(Qscroll_bar_height, Qhorizontal_scroll_bars)
	(Qframe_windows_min_size): New symbols.
	(x_set_frame_parameters): Remove call of check_frame_size.
	(x_report_frame_params): Return scroll_bar_height value.
	(x_set_left_fringe, x_set_right_fringe): New functions.
	(adjust_frame_height, x_set_internal_border_width)
	(x_set_fringe_width): Remove.
	(x_set_internal_border_width, x_set_vertical_scroll_bars)
	(x_set_scroll_bar_width, x_set_right_divider_width)
	(x_set_bottom_divider_width): Rewrite using adjust_frame_size.
	(x_set_horizontal_scroll_bars, x_set_scroll_bar_height): New
	functions.
	(x_figure_window_size): Rewrite to make frame display the
	expected number of lines.
	(Vdefault_frame_scroll_bars): Rewrite doc-string.
	(Vdefault_frame_horizontal_scroll_bars)
	(Vframe_initial_frame_tool_bar_height)
	(frame_inhibit_implied_resize): New variables.
	* fringe.c (compute_fringe_widths): Remove.
	* gtkutil.h (YG_SB_MIN, YG_SB_MAX, YG_SB_RANGE): Define.
	(xg_create_horizontal_scroll_bar)
	(xg_update_horizontal_scrollbar_pos)
	(xg_set_toolkit_horizontal_scroll_bar_thumb)
	(xg_get_default_scrollbar_height)
	(xg_clear_under_internal_border): Extern.
	* gtkutil.c (xg_frame_resized): Don't call
	do_pending_window_change.
	(xg_frame_set_char_size): Use adjust_frame_size.
	(style_changed_cb): Call update_theme_scrollbar_height and
	x_set_scroll_bar_default_height.
	(x_wm_set_size_hint): Don't call check_frame_size.
	(update_theme_scrollbar_height)
	(xg_get_default_scrollbar_height)
	(xg_create_horizontal_scroll_bar)
	(xg_update_horizontal_scrollbar_pos)
	(xg_set_toolkit_horizontal_scroll_bar_thumb): New functions.
	(xg_create_scroll_bar): Set horizontal slot of bar.
	(xg_initialize): Call update_theme_scrollbar_height.
	(xg_clear_under_internal_border): No more static.
	* insdel.c (adjust_suspend_auto_hscroll): New function.
	(adjust_markers_for_delete, adjust_markers_for_insert)
	(adjust_markers_for_replace): Call adjust_suspend_auto_hscroll.
	* keyboard.c (readable_events, discard_mouse_events)
	(make_lispy_event): Handle horizontal scroll bar click events.
	(Fsuspend_emacs): When changing the size of a tty frame do not
	pass height of menu bar.
	(Qbefore_handle, Qhorizontal_handle, Qafter_handle, Qleft)
	(Qright, Qleftmost, Qrightmost): New symbols.
	* menu.c (Fx_popup_dialog): Use FRAME_TOTAL_LINES instead of
	FRAME_LINES.
	* minibuf.c (read_minibuf): Initialize suspend_auto_hscroll.
	* nsfns.m (x_set_internal_border_width): New function.
	* nsterm.m (ns_draw_fringe_bitmap, ns_set_vertical_scroll_bar):
	Remove extended fringe code.
	(x_set_window_size, x_new_font): Don't call
	compute_fringe_widths.
	* term.c (Fresume_tty): When changing the size of a tty frame do
	not pass height of menu bar.
	(clear_tty_hooks, set_tty_hooks): Clear
	horizontal_scroll_bar_hook.
	(init_tty): Frame has no horizontal scroll bars.
	* termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio,
	scroll_bar_before_handle, scroll_bar_horizontal_handle,
	scroll_bar_after_handle, scroll_bar_left_arrow,
	scroll_bar_right_arrow, scroll_bar_to_leftmost and
	scroll_bar_to_rightmost entries.
	(enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT
	(struct terminal): Add set_horizontal_scroll_bar_hook.
	* w32console.c (initialize_w32_display): Clear
	horizontal_scroll_bar_hook.
	* w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of
	FRAME_X_DISPLAY.
	(x_clear_under_internal_border, x_set_internal_border_width):
	New functions.
	(x_set_menu_bar_lines): Rewrite using frame_inhibit_resize.  Set
	windows_or_buffers_changed when adding the menu bar.
	(x_set_tool_bar_lines): Rewrite using adjust_frame_size.
	(x_change_tool_bar_height, x_set_scroll_bar_default_height)
	(w32_createhscrollbar): New functions.
	(w32_createscrollbar): Rename to w32_createvscrollbar.
	(w32_createwindow): Init WND_HSCROLLBAR_INDEX.
	(w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by
	WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR.  Add
	WM_EMACS_SHOWCURSOR.
	(w32_wnd_proc): Handle WM_HSCROLL case.  In WM_WINDOWPOSCHANGING
	case do not artificially impose WM size hints.  Handle
	WM_EMACS_SHOWCURSOR case.  Replace WM_EMACS_CREATESCROLLBAR case
	by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR
	cases.
	(my_create_tip_window): Replace WND_SCROLLBAR_INDEX by
	WND_VSCROLLBAR_INDEX and WND_HSCROLLBAR_INDEX.
	(unwind_create_frame_1): Remove.
	(Fx_create_frame): Make both scrollbars the system standard
	width and height.  Use official field of frame structure to
	inhibit running window-configuration-change-hook.
	(x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
	pixelwise.  Handle frame's official field.
	(w32_frame_parm_handlers): Remove x_set_fringe_width
	entries. Add x_set_scroll_bar_height,
	x_set_horizontal_scroll_bars, x_set_left_fringe and
	x_set_right_fringe.
	* w32inevt.c (resize_event, maybe_generate_resize_event): Do not
	pass height of menu bar to change_frame_size.
	* w32menu.c (set_frame_menubar): Rewrite using
	frame_inhibit_resize.
	* w32term.h (struct w32_display_info): Add
	horizontal_scroll_bar_cursor and cursor_display_counter.
	(struct scroll_bar): Add horizontal.
	(HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
	(HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
	(HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH)
	(HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
	(HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
	(HORIZONTAL_SCROLL_BAR_TOP_BORDER)
	(HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
	(HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros.
	(WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR): Define
	instead of WM_EMACS_CREATESCROLLBAR.
	(WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of
	WND_SCROLLBAR_INDEX.
	* w32term.c (horizontal_scroll_bar_min_handle)
	(horizontal_scroll_bar_left_border)
	(horizontal_scroll_bar_right_border): New integers.
	(x_set_frame_alpha): Replace x_highlight_frame by
	w32_focus_frame.
	(x_window_to_scroll_bar): New argument "type".  Update callers
	accordingly.
	(w32_set_horizontal_scroll_bar_thumb)
	(x_horizontal_scroll_bar_report_motion)
	(w32_set_horizontal_scroll_bar)
	(w32_horizontal_scroll_bar_handle_click)
	(x_horizontal_scroll_bar_report_motion): New functions.
	(w32_mouse_position): Discriminate horizontal and vertical
	scrollbar cases.
	(my_create_scrollbar): Replace with two new functions
	my_create_vscrollbar and my_create_hscrollbar.
	(x_scroll_bar_create): New argument "horizontal".  Update
	callers accordingly.
	(x_scroll_bar_remove, w32_condemn_scroll_bars)
	(w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal
	scroll bar case.
	(w32_read_socket): Handle WM_HSCROLL cae.
	(x_new_font): Don't recompute fringe widths.  Use
	frame_inhibit_resize.  Calculate new menu bar height iff we
	build without toolkit.  Always clear under internal border.
	(x_set_window_size): Don't check frame size or recompute
	fringes.  Reset fullscreen status before applying sizes.  Always
	resize as requested by pixelwise argument.  Don't call
	do_pending_window_change.
	(x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT.
	(w32_initialize_display_info): Initialize dpyinfo's
	horizontal_scroll_bar_cursor entry.
	(w32_create_terminal): Add set_horizontal_scroll_bar_hook.
	(w32_initialize): Init horizontal_scroll_bar_min_handle and
	horizontal_scroll_bar_left_border.
	(w32fullscreen_hook): Intermittently resize window to normal
	when switching from fullscreen to maximized state.
	(run_window_configuration_change_hook): Don't run it if frame is
	not official yet.
	(unwind_change_frame): Remove.
	(Fset_window_configuration): Rewrite using frame's official field.
	* widget.c (set_frame_size): Don't call compute_fringe_widths.
	(EmacsFrameSetCharSize): Obey frame_inhibit_resize.
	* window.h (struct window): New fields old_pointm,
	horizontal_scroll_bar, horizontal_scroll_bar_type, hscroll_whole,
	scroll_bar_height and suspend_auto_hscroll.
	(wset_horizontal_scroll_bar, wset_horizontal_scroll_bar_type):
	New functions.
	(sanitize_window_sizes): Extern.
	(MINI_NON_ONLY_WINDOW_P, MINI_ONLY_WINDOW_P, WINDOW_PSEUDO_P)
	(WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR)
	(WINDOW_CONFIG_SCROLL_BAR_HEIGHT)
	(WINDOW_CONFIG_SCROLL_BAR_LINES)
	(WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT): New
	macros.
	(WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
	(WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros.
	(WINDOW_VERTICAL_SCROLL_BAR_TYPE)
	(WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
	(WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
	(WINDOW_HAS_VERTICAL_SCROLL_BAR): Minor rewrite.
	(WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT)
	(WINDOW_SCROLL_BAR_AREA_Y): Count in scroll bar height.
	* window.c (wset_old_pointm, Fwindow_scroll_bar_height)
	(Fwindow_old_point, sanitize_window_sizes): New functions.
	(Qwindow_sanitize_window_sizes): New symbol.
	(window_body_height): Count in horizontal scroll bar.
	(set_window_hscroll, Fscroll_left, Fscroll_right): Set
	suspend_auto_hscroll slot.
	(Fwindow_inside_edges): Count fringes pixelwise.
	(coordinates_in_window, Fcoordinates_in_window_p): Consider
	horizontal scroll bar.
	(check_frame_size, adjust_window_margins): Remove functions and
	corresponding calls.
	(set_window_buffer): Initialize old_pointm and horizontal scroll
	bars.
	(temp_output_buffer_show): Reset hscroll related fields.
	Initialize old_pointm.
	(make_parent_window): Initialize old_pointm.
	(make_window): Initialize old_pointm, horizontal scroll bar type,
	and scroll bar height.
	(resize_frame_windows): Don't count top margin in new sizes.
	Don't use safe sizes when shrinking a frame; let the window
	manager do the clipping.
	(Fsplit_window_internal): Inherit horizontal scroll bar type and
	height.
	(Fdelete_window_internal): Unchain old_pointm marker.
	(window_scroll_pixel_based, Fscroll_other_window): Adjust
	old_pointm.
	(Fwindow_text_width, Fwindow_text_height): New argument
	"pixelwise".
	(struct saved_window): New fields, old_pointm, hscroll_whole,
	suspend_auto_hscroll, scroll_bar_height and
	horizontal_scroll_bar_type.
	(Fset_window_configuration, save_window_save): Set new fields of
	saved_window.
	(apply_window_adjustment): Don't call adjust_window_margins.
	(set_window_margins): Don't change margins if new sizes don't
	fit into window.
	(set_window_scroll_bars): New argument "horizontal_type".
	Handle horizontal scroll bars.  Don't change scroll bars if they
	don't fit into window.
	(Fset_window_scroll_bars): New argument "horizontal_type".
	(Fwindow_scroll_bars): Return values for horizontal scroll bars.
	(compare_window_configurations): Compare horizontal scroll bar
	settings.
	* xdisp.c (window_text_bottom_y, window_box_height): Count in
	horizontal scroll bar height.
	(pixel_to_glyph_coords, init_xdisp): Use FRAME_TOTAL_LINES
	instead of FRAME_LINES.
	(remember_mouse_glyph): Case ON_SCROLL_BAR changed to
	ON_VERTICAL_SCROLL_BAR.
	(with_echo_area_buffer): Initialize old_pointm.
	(with_echo_area_buffer_unwind_data): Store old_pointm values in
	vector.
	(unwind_with_echo_area_buffer): Handle old_pointm.
	(update_tool_bar): Set do_update when the tool bar window has at
	least one line (since this is what the user sets).
	(MAX_FRAME_TOOL_BAR_HEIGHT): Remove macro.
	(redisplay_tool_bar): Return early when toolbar has zero lines.
	Call x_change_tool_bar_height.  Don't use max_tool_bar_height.
	(hscroll_window_tree): Handle suspension of auto_hscroll and
	old_pointm.
	(set_horizontal_scroll_bar): New function.
	(redisplay_window): Set ignore_mouse_drag_p when tool bar has
	more than one line.  Handle horizontal scroll bars.
	(note_mouse_highlight): Handle horizontal scrol bars.
	(expose_frame): Set dimensions of XRectangle from frame's text
	sizes.
	(Vvoid_text_area_pointer): Update doc-string.
	* xfns.c (x_set_menu_bar_lines): Use adjust_frame_size.
	(x_change_tool_bar_height, x_set_scroll_bar_default_height)
	(x_set_internal_border_width): New functions.
	(x_set_tool_bar_lines): Call x_change_tool_bar_height.
	(unwind_create_frame_1): Remove.
	(Fx_create_frame): Handle horizontal scroll bars.  Use official
	field of frame structure to inhibit running
	window-configuration-change-hook.
	(x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
	pixelwise.  Handle frame's official field.
	(x_frame_parm_handlers): Add x_set_scroll_bar_height,
	x_set_horizontal_scroll_bars, x_set_left_fringe,
	x_set_right_fringe.
	* xmenu.c (update_frame_menubar, free_frame_menubar): Use
	adjust_frame_size.
	* xterm.h (struct x_display_info): Add
	horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar
	slots.
	(struct scroll_bar): Add horizontal slot.
	(HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
	(HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
	(HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH): New macros.
	(HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
	(HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
	(HORIZONTAL_SCROLL_BAR_TOP_BORDER)
	(HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
	(HORIZONTAL_SCROLL_BAR_MIN_HANDLE): Define.
	(x_clear_under_internal_border): Remove.
	* xterm.c (XTmouse_position): Handle horizontal scroll bars.
	(x_window_to_scroll_bar): New argument TYPE.  Update callers.
	(x_send_scroll_bar_event, x_scroll_bar_create): New arguments
	HORIZONTAL.  Update callers.
	(horizontal_action_hook_id): New action hook id.
	(x_horizontal_scroll_bar_to_input_event)
	(x_create_horizontal_toolkit_scroll_bar)
	(xt_horizontal_action_hook)
	(x_set_toolkit_horizontal_scroll_bar_thumb)
	(XTset_horizontal_scroll_bar, x_net_wm_state)
	(x_horizontal_scroll_bar_report_motion): New functions.
	(xg_scroll_callback, x_scroll_bar_handle_click): Handle
	horizontal scroll bars.
	(SCROLL_BAR_HORIZONTAL_NAME): Define.
	(XTset_vertical_scroll_bar): Attempt to clear areas not covered
	by scroll bar.
	(XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite.  Handle
	horizontal scroll bars.
	(handle_one_xevent): Handle horizontal scroll bar events.  Call
	x_net_wm_state.
	(x_set_window_size_1, x_wm_set_size_hint): Don't call
	check_frame_size.
	(x_set_window_size): Don't call check_frame_size and
	do_pending_window_change.
	(x_term_init): Init horizontal_scroll_bar_cursor display info.
	(x_create_terminal): Add set_horizontal_scroll_bar_hook.
	(x_scroll_bar_set_handle): Add some checks when calling
	x_clear_area.

Paul Eggert's avatar
Paul Eggert committed
701 702 703 704 705 706 707 708 709
2014-07-26  Paul Eggert  <eggert@cs.ucla.edu>

	Revert previous change.
	There is certainly nothing wrong with writing code like 'lo <= i
	&& i <= hi', even if LO happens to a constant.  There isn't even
	anything wrong in general with writing 'a <= b' if A happens to
	be a constant.  At any rate stylistic changes shouldn't
	be done like this without discussion.

710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728
2014-07-26  Andreas Schwab  <schwab@linux-m68k.org>

	* alloc.c (xnmalloc, xnrealloc, xpalloc, make_save_value)
	(Fgarbage_collect): Reorder conditions that are written backwards.
	* data.c (cons_to_unsigned): Likewise.
	* dispnew.c (update_frame_1, sit_for): Likewise.
	* fileio.c (file_offset): Likewise.
	* filelock.c (read_lock_data, lock_file): Likewise.
	* fns.c (larger_vector, make_hash_table, Fmake_hash_table):
	Likewise.
	* font.c (font_intern_prop, font_style_symbolic): Likewise.
	* lisp.h (FIXNUM_OVERFLOW_P): Likewise.
	* lread.c (read1): Likewise.
	* minibuf.c (read_minibuf_noninteractive): Likewise.
	* nsterm.m (x_set_frame_alpha): Likewise.
	* process.c (wait_reading_process_output): Likewise.
	* region-cache.c (delete_cache_boundaries): Likewise.
	* xterm.c (x_set_frame_alpha): Likewise.

729 730 731 732 733
2014-07-25  Paul Eggert  <eggert@cs.ucla.edu>

	* dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):
	Now static.

734 735 736 737 738
2014-07-26  Dmitry Antipov  <dmantipov@yandex.ru>

	* atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIME
	because atimer expiration is absolute rather than relative.

Eli Zaretskii's avatar
Eli Zaretskii committed
739 740 741 742 743
2014-07-25  Eli Zaretskii  <eliz@gnu.org>

	* w32term.h (current_popup_menu, menubar_in_use): Move
	declarations from w32term.c.

744 745 746 747 748
2014-07-25  Martin Rudalics  <rudalics@gmx.at>

	* w32fns.c (menubar_in_use): No more static.
	* w32term.c (current_popup_menu, menubar_in_use): Declare.

749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
2014-07-25  Dmitry Antipov  <dmantipov@yandex.ru>

	Move hourglass machinery to RIF.
	* dispextern.h (struct redisplay_interface): New members
	show_hourglass and hide_hourglass.  Indent comments.
	(show_hourglass, hide_hourglass): Remove prototypes.
	* nsterm.m (show_hourgass, hide_hourglass): Refactor to ...
	(ns_show_hourglass, ns_hide_hourglass): ... new no-ops.
	(ns_redisplay_interface): Add them.
	* w32fns.c (show_hourglass, hide_hourglass): Refactor to ...
	* w32term.c (w32_show_hourglass, w32_hide_hourglass): ... these.
	(w32_arrow_cursor): New function to hack around non-GUI frames.
	(w32_redisplay_interface): Add new functions.
	* w32term.h (w32_arror_cursor): Add prototype.
	* xdisp.c (show_hourglass): New function, refactored out from
Dmitry Antipov's avatar
Dmitry Antipov committed
764
	platform-dependent code.
765 766 767 768 769
	(cancel_hourglass): Now call to RIF function.
	* xfns.c (show_hourglass, hide_hourglass): Refactor to ...
	* xterm.c (x_show_hourglass, x_hide_hourglass): ... these.
	(x_redisplay_interface): Add new functions.

770 771 772 773 774 775 776 777 778
2014-07-24  Dmitry Antipov  <dmantipov@yandex.ru>

	Fix error reported by Angelo Graziosi <angelo.graziosi@alice.it> in
	<http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00274.html>
	and complete previous change.
	* frame.c (adjust_frame_height): New function.
	(Fset_frame_height, Fset_frame_size): Use it.
	(x_set_frame_parameters): Take frame top margin into account.

779 780 781 782 783 784
2014-07-23  Dmitry Antipov  <dmantipov@yandex.ru>

	* frame.c (Fset_frame_height): Take frame top margin into account.
	Incorrect behavior was reported by Martin Rudalics <rudalics@gmx.at> in
	<http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00258.html>

785 786 787 788
2014-07-22  Dmitry Antipov  <dmantipov@yandex.ru>

	* xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define
	menubar_height as such.  Tweak comment.
789 790 791
	[USE_LUCID && USE_TOOLKIT_SCROLL_BARS]: Likewise for
	scroll_bar_top_shadow_pixel and scroll_bar_bottom_shadow_pixel.
	All related users changed.
792 793 794 795 796 797 798
	(FRAME_MENUBAR_HEIGHT) [!USE_X_TOOLKIT && !USE_GTK]: No-op.
	* xterm.c (handle_one_xevent):
	* gtkutil.c (xg_event_is_for_menubar):
	* xfns.c (x_window) [USE_X_TOOLKIT]:
	* xmenu.c (set_frame_menubar, free_frame_menubar): Prefer
	to use FRAME_MENUBAR_HEIGHT.

799 800 801 802 803
2014-07-21  Dmitry Antipov  <dmantipov@yandex.ru>

	* frame.c (Fframe_parameters): Always report frame height without
	menu and tool bar lines.

804
2014-07-21  Jan Djärv  <jan.h.d@swipnet.se>
805 806 807 808 809 810 811 812 813 814 815

	* nsterm.m (applicationDidFinishLaunching:): Call
	antialiasThresholdDidChange, register for antialias changes (Bug#17534).
	(antialiasThresholdDidChange:): New method for EmacsApp.

	* nsterm.h (EmacsApp): Add antialiasThresholdDidChange.

	* macfont.m (macfont_update_antialias_threshold): Remove static.

	* macfont.h (macfont_update_antialias_threshold): Declare.

816
2014-07-21  Eli Zaretskii  <eliz@gnu.org>
817

818 819 820 821 822 823 824 825
	* w32select.c (setup_windows_coding_system): Apply
	CODING_ANNOTATION_MASK to the common_flags member of struct
	coding_system.  Reported by martin rudalics <rudalics@gmx.at>.

	* w16select.c (Fw16_get_clipboard_data): Apply
	CODING_ANNOTATION_MASK to the common_flags member of struct
	coding_system.

826 827 828 829
	* xdisp.c (init_iterator): Initialize it->stop_charpos to the
	buffer position where we are to start the iteration.
	(handle_invisible_prop): Record in it->stop_charpos the position
	where the invisible text ends.  (Bug#18035)
830 831 832
	(hscroll_window_tree): Don't try hscrolling windows whose cursor
	row has zero buffer position as their start position.  Reported by
	martin rudalics <rudalics@gmx.at>.
833

834 835 836 837
	* xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent
	infinite looping in redisplay when display lines don't have enough
	space to display even a single character.  (Bug#18036)

838 839 840 841 842 843 844 845 846
2014-07-20  Dmitry Antipov  <dmantipov@yandex.ru>

	* frame.h (struct frame) [USE_X_TOOLKIT]: New member shell_position.
	* xfns.c (x_window): Use it to allow xfree later.
	(x_encode_text): Drop 3rd arg; unused.  Tweak comment and adjust users
	where appropriate.  Use bool for booleans and remove redundant checks.
	(Fx_backspace_delete_keys_p): Use XkbFreeKeyboard; explain why.
	* xterm.c (x_free_frame_resources): Free shell_position.

847 848 849 850 851 852 853 854 855 856
2014-07-19  K. Handa  <handa@gnu.org>

	* xfaces.c (realize_x_face): Call font_load_for_lface with no
	mandatory font spec (Bug#17973).

2014-07-19  Stefan Monnier  <monnier@iro.umontreal.ca>

	* font.c (font_score): Return the worst score if the size of
	ENTITY is wrong by more than a factor 2 (Bug#17973).

857 858 859 860 861 862 863 864 865 866 867 868 869 870
2014-07-18  Dmitry Antipov  <dmantipov@yandex.ru>

	* frame.c (frame_unspecified_color): New function
	refactored out from ...
	(Fframe_parameters, Fframe_parameter): ... adjusted users.
	(x_fullscreen_adjust, set_frame_param): Move Windows-specific
	function to ...
	* w32term.c (x_fullscreen_adjust, set_frame_param): ... static here.
	* frame.h (x_fullscreen_adjust) [HAVE_NTGUI]:
	* lisp.h (set_frame_param): Remove prototype.
	* xterm.c (x_display_pixel_width, x_display_pixel_height): Now ...
	* xterm.h (x_display_pixel_width, x_display_pixel_height): ...
	inlined from here.

871 872 873 874 875 876 877 878 879 880 881 882 883 884 885
	Prefer 'x_display_info *' to 'Display *' in X selection code.
	This helps to avoid unneeded calls to x_display_info_for_display.
	* xterm.h (struct selection_input_event): Record 'x_display_info *'
	instead of 'Display *'.
	(SELECTION_EVENT_DPYINFO): New macro.
	(SELECTION_EVENT_DISPLAY): Now inline function to prohibit using
	it as an lvalue.  Mention this in comment.
	* xterm.c (handle_one_xevent): Use SELECTION_EVENT_DPYINFO.
	* xselect.c (x_get_window_property_as_lisp_data, x_atom_to_symbol)
	(selection_data_to_lisp_data, receive_incremental_selection):
	Convert to use 'x_display_info *'.  Adjust users where appropriate.
	(lisp_data_to_selection_data): Likewise.  Also pass 'struct
	selection data *' as last arg to not return values in args.
	(unexpect_property_change): Use common removal technique.

886 887 888 889 890
2014-07-17  Dmitry Antipov  <dmantipov@yandex.ru>

	* print.c (print_preprocess): Adjust to match changed
	sub char-table structure and avoid crash (Bug#18038).

891 892 893 894 895 896 897 898 899 900 901 902
	* data.c (wrong_choice): Not static any more.
	* lisp.h (wrong_choice): Add prototype.
	* frame.h (struct frame) [USE_X_TOOLKIT || HAVE_NTGUI]:
	Declare namebuf as such.  Tweak comment.
	[USE_GTK]: Likewise for tool_bar_position.
	(fset_tool_bar_position) [USE_GTK]: Ditto.
	(FRAME_TOOL_BAR_POSITION): New macro.
	* frame.c (x_report_frame_params):
	* gtkutil.c (update_frame_tool_bar):
	* xfns.c (Fx_create_frame): Use it.
	(x_set_tool_bar_position): Add meaningful diagnostic messages.

903
2014-07-16  Eli Zaretskii  <eliz@gnu.org>
904 905 906 907

	* xdisp.c (decode_mode_spec): Call file-remote-p on the current
	buffer's default-directory only if it is a string.  (Bug#17986)

908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927
2014-07-16  Dmitry Antipov  <dmantipov@yandex.ru>

	More precise control over values of some buffer-local variables.
	* keyboard.c (Qvertical_scroll_bar):
	* frame.c (Qleft, Qright): Move to ...
	* buffer.c (Qleft, Qright, Qvertical_scroll_bar): ... here.
	* buffer.c (Qchoice, Qrange, Qoverwrite_mode, Qfraction): New symbols.
	(syms_of_buffer): DEFSYM all of the above, attach special properties.
	Use special symbols to DEFVAR_PER_BUFFER overwrite-mode,
	vertical-scroll-bar, scroll-up-aggressively
	and scroll-down-aggressively.
	* buffer.h (Qchoice, Qrange, Qleft, Qright, Qvertical_scroll_bar):
	Add declarations.
	* nsfns.m, frame.h (Qleft, Qright):
	* nsterm.m (Qleft): Remove declarations.
	* gtkutil.c (toplevel): Include buffer.h.
	* data.c (wrong_choice, wrong_range): New functions.
	(store_symval_forwarding): Handle special properties of buffer-local
	variables and use functions from the above to signal error, if any.

928 929 930 931 932 933 934 935 936 937 938 939 940 941 942
	* frame.h (enum fullscreen_type) [HAVE_WINDOW_SYSTEM]: Use more natural
	values.  Add comment.
	(struct frame): Re-arrange layout to avoid extra padding and use bit
	fields for output_method, want_fullscreen and vertical_scroll_bar_type.
	(FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS)
	(FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT)
	(FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT) [!HAVE_WINDOW_SYSTEM]:
	Define as no-ops because there are no scroll bars anyway.
	* frame.c (make_frame, make_terminal_frame, make_initial_frame):
	Adjust users.

	* font.c (fset_font_data) [HAVE_XFT || HAVE_FREETYPE]:
	Add convenient setter.
	(font_put_frame_data, font_get_frame_data): Use it.

943
2014-07-15  Daiki Ueno  <ueno@gnu.org>
944

945 946 947
	* nsgui.h (XCHAR2B_BYTE1): Add missing parentheses around
	pointer argument, before dereferencing.
	(XCHAR2B_BYTE2): Likewise.
948

949 950 951 952 953 954 955 956
2014-07-15  Dmitry Antipov  <dmantipov@yandex.ru>

	* xmenu.c (toplevel): Use LWLIB_ID for next_menubar_widget_id.
	(pop_down_menu) [USE_X_TOOLKIT]: Accept integer arg.
	(create_and_show_popup_menu, create_and_show_dialog) [USE_X_TOOLKIT]:
	Use record_unwind_protect_int and avoid consing.
	(syms_of_xmenu) [USE_X_TOOLKIT]: Declare WIDGET_ID_TICK_START.

957 958
	* regex.c (re_search_2): Use ssize_t to avoid integer overflow.

959 960
2014-07-14  Paul Eggert  <eggert@cs.ucla.edu>

961 962 963 964 965 966 967 968 969 970 971 972 973
	Use binary-io module, O_BINARY, and "b" flag (Bug#18006).
	* callproc.c (create_temp_file): Use mkostemp's O_BINARY flag.
	* emacs.c [MSDOS]:
	* emacs.c (main) [DOS_NT]: Don't mess with _fmode.
	(main) [MSDOS]: Use SET_BINARY instead of setmode.
	* minibuf.c: Include binary-io.h instead of fcntl.h.
	(read_minibuf_noninteractive):
	Use set_binary_mode instead of handcrafted code.
	Don't call emacs_set_tty if emacs_get_tty failed.
	* sysdep.c, systty.h (emacs_get_tty): Return int, not void.
	* sysdep.c (emacs_open, emacs_pipe): Use O_BINARY.
	* w32.c (pipe2): Adjust eassert to include O_BINARY.

974
	* macros.c (Fstart_kbd_macro): Avoid need for overflow check.
975 976 977
	This works around a GCC compiler bug when Emacs is configured with
	--enable-gcc-warnings.

978 979 980 981 982 983 984 985 986
2014-07-14  Dmitry Antipov  <dmantipov@yandex.ru>

	* lisp.h (CHECK_VECTOR_OR_STRING): Return number of elements
	or characters in string, respectively.  Add comment.
	* fringe.c (Fdefine_fringe_bitmap):
	* fns.c (Fsubstring, substring_both): Use it.
	* keymap.c (Fdefine_key, Flookup_key):
	* macros.c (Fstart_kbd_macro): Likewise.  Avoid call to Flength.

987 988
	* term.c (tty_menu_add_pane, tty_menu_add_selection):
	Use menu_item_width.
989
	(tty_menu_show): Simplify because tty_menu_create never return NULL.
990

991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007
2014-07-13  Paul Eggert  <eggert@cs.ucla.edu>

	Improve behavior of 'bzr up; cd src; make -k'.
	* Makefile.in (top_srcdir): New var.
	(ntsource, lispsource, ALL_CFLAGS, gl-stamp, emacs.res):
	Use '$(top_srcdir)' instead of '$(srcdir)/..';
	its expansion is a bit shorter.
	(../config.status): Actually build config.status instead of
	just complaining.
	(ACLOCAL_INPUTS, AUTOCONF_INPUTS):
	New macros, copied and relocated from ../Makefile.in.
	($(top_srcdir)/aclocal.m4, $(top_srcdir)/configure, config.in)
	(../config.status, Makefile): New dependencies and rules,
	copied with relocation from ../Makefile.in.  This should be more
	likely to rebuild the build machinery properly if you do a 'make'
	in the src directory.

1008 1009
2014-07-12  Eli Zaretskii  <eliz@gnu.org>

1010 1011 1012
	* xdisp.c (display_line): Don't call FETCH_BYTE with argument less
	than 1.  (Bug#17962)

1013 1014 1015 1016 1017 1018 1019
	* w32fns.c (Fx_file_dialog): Mention in the doc string the
	behavior on Windows 7 and later when the function is repeatedly
	invoked with the same value of DIR.  (Bug#17950)

	* xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
	string to match the one in w32fns.c.

1020 1021 1022
	* minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Switch
	stdin to binary mode only if it is connected to a terminal.

Paul Eggert's avatar
Paul Eggert committed
1023 1024 1025 1026 1027 1028 1029 1030
2014-07-11  Paul Eggert  <eggert@cs.ucla.edu>

	Coalesce extern decls.
	* minibuf.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty):
	* sysdep.c (emacs_get_tty, emacs_set_tty):
	Move duplicate extern decls from here ...
	* systty.h: ... to here, so that there's just one copy.

1031 1032 1033 1034 1035 1036
2014-07-11  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (changeFont:): Add ifdef NS_IMPL_COCOA.

	* nsfns.m (Fns_popup_font_panel): Ditto.

1037 1038 1039 1040
2014-07-11  Eli Zaretskii  <eliz@gnu.org>

	* minibuf.c (read_minibuf_noninteractive): Finish reading on '\r',
	not only on '\n'.
1041
	[WINDOWSNT]: Switch stdin to binary mode when not echoing input.
1042 1043 1044 1045 1046 1047 1048

	* sysdep.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty)
	[DOS_NT]: Implement for WINDOWSNT.

	* systty.h (struct emacs_tty) [DOS_NT]: The struct member is now
	unsigned.

1049 1050 1051 1052 1053
2014-07-11  Michael Albinus  <michael.albinus@gmx.de>

	* sysdep.c (suppress_echo_on_tty): New function.
	* minibuf.c (read_minibuf_noninteractive): Use it.

1054 1055 1056 1057 1058
2014-07-11  Dmitry Antipov  <dmantipov@yandex.ru>

	* alloc.c (Fmemory_info) [HAVE_LINUX_SYSINFO]: Return nil if
	sysinfo failed.  Adjust docstring.

1059 1060
2014-07-11  Eli Zaretskii  <eliz@gnu.org>

1061 1062 1063 1064 1065 1066 1067
	Implement memory-info for MS-DOS.
	* dosfns.c (dos_memory_info): New function.
	* dosfns.h (dos_memory_info): Add prototype.
	* alloc.c (Fmemory_info) [MSDOS]: Call dos_memory_info.
	* vm-limit.c (get_lim_data) [MSDOS]: Call dos_memory_info, instead
	of doing some of its job.

1068 1069 1070
	* minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Don't
	reference termios structure members.

Michael Albinus's avatar
Michael Albinus committed
1071 1072 1073 1074 1075 1076 1077 1078 1079 1080
2014-07-11  Michael Albinus  <michael.albinus@gmx.de>

	* sysdep.c (emacs_get_tty, emacs_set_tty): Make them externally visible.

	* minibuf.c (top): Include systty.h.  Declare external
	emacs_get_tty and emacs_set_tty.
	(Vread_hide_char): New lisp variable.
	(read_minibuf_noninteractive): Hide characters with
	Vread_hide_char if it is a character.  (Bug#17839)

1081 1082 1083 1084 1085 1086 1087
2014-07-10  Eli Zaretskii  <eliz@gnu.org>

	Implement memory-info for MS-Windows.
	* w32.c (w32_memory_info): New function.
	* w32.h (w32_memory_info): Prototype it.
	* alloc.c (Fmemory_info) [WINDOWSNT]: Call it.

1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098
2014-07-10  Dmitry Antipov  <dmantipov@yandex.ru>

	* coding.h (struct coding_system): Remove 'error_positions' (unused)
	and 'errors' (set but unused) fields.  Use bitfields for 'eol_seen',
	'mode', 'common_flags' and 'result' fields, adjust layout to avoid
	extra padding and shrink struct coding_system by 56 bytes (x86_64).
	* coding.c (decode_coding_utf_8, decode_coding_utf_16)
	(decode_coding_emacs_mule, decode_coding_iso_2022, decode_coding_sjis)
	(decode_coding_big5, decode_coding_charset, decode_coding)
	(encode_coding): Adjust users.

1099 1100
	* alloc.c (Fmemory_info): New function.

1101 1102
2014-07-09  Paul Eggert  <eggert@cs.ucla.edu>

1103 1104
	* syntax.c (back_comment): Use more-natural location for label.

1105 1106 1107
	* font.c, font.h (font_unparse_fcname): Now static.
	Define only if HAVE_XFT || HAVE_FREETYPE || HAVE_NS.

1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124
2014-07-09  Dmitry Antipov  <dmantipov@yandex.ru>

	Next minor cleanup of font subsystem.
	* font.h (enum font_property_index): Remove FONT_ENTITY_INDEX (no
	users) and FONT_FORMAT_INDEX (set by a few font drivers but never
	really used).
	(FONT_ENTITY_NOT_LOADABLE, FONT_ENTITY_SET_NOT_LOADABLE): Remove;
	unused.
	* ftfont.h (ftfont_font_format): Remove prototype.
	* ftfont.c (ftfont_font_format): Remove; now unused.
	(ftfont_open):
	* nsfont.m (nsfont_open):
	* w32font.c (w32font_open_internal):
	* w32uniscribe.c (uniscribe_open):
	* xfont.c (xfont_open):
	* xftfont.c (xftfont_open): All users changed.

1125 1126 1127
	* coding.c (ALLOC_CONVERSION_WORK_AREA): Prefer ptrdiff_t to int and
	so avoid integer overflow if decoded gap size exceeds INT_MAX bytes.

1128
2014-07-09  Eli Zaretskii  <eliz@gnu.org>
1129 1130 1131 1132 1133

	* xdisp.c (move_it_to): Adjust calculation of line_start_x to what
	x_produce_glyphs does when it generates a stretch glyph that
	represents a TAB.  (Bug#17969)

Eli Zaretskii's avatar
Eli Zaretskii committed
1134 1135 1136
	* xdisp.c (pos_visible_p): If CHARPOS is at beginning of window,
	and there is a display property at that position, don't call
	move_it_to to move to a position before window start.  (Bug#17942)
1137 1138
	Fix condition for finding CHARPOS by the first call to move_it_to.
	(Bug#17944)
1139

1140
2014-07-09  Stefan Monnier  <monnier@iro.umontreal.ca>
1141 1142 1143 1144 1145 1146

	* syntax.c (find_defun_start): Try the cache even
	if !open_paren_in_column_0_is_defun_start.
	(back_comment): If find_defun_start was pessimistic, use the
	scan_sexps_forward result to improve the cache (bug#16526).

1147
2014-07-09  Eli Zaretskii  <eliz@gnu.org>
1148

1149 1150 1151 1152 1153 1154 1155 1156 1157 1158
	* xdisp.c (redisplay_window): If redisplay of a window ends up
	with point in a partially visible line at end of the window, make
	sure the amended position of point actually has smaller Y
	coordinate; if not, give up and scroll the display.  (Bug#17905)

	* window.c (window_scroll_pixel_based): When point ends up at the
	last fully visible line, don't let move_it_to stop at the left
	edge of the line and dupe us into thinking point is inside the
	scroll margin.

1159 1160 1161
	* w32.c (network_interface_info): Make sure the argument is a
	Lisp string.

1162 1163 1164 1165 1166
2014-07-08  Paul Eggert  <eggert@cs.ucla.edu>

	* process.c (read_and_dispose_of_process_output): Fix typo
	in previous patch: we want nonnegative fds, not nonzero fds.

1167 1168 1169 1170 1171 1172 1173
2014-07-08  Dmitry Antipov  <dmantipov@yandex.ru>

	* chartab.c (char_table_translate): Move to...
	* character.h (char_table_translate): ... inline function here.
	Avoid Faref and assume that args are always valid.  This helps to
	speedup search, which is especially important for a huge buffers.
	* lisp.h (char_table_translate): Remove prototype.
1174

1175
	* nsfont.m (nsfont_close): Free glyphs and metrics arrays as well.
1176 1177 1178 1179 1180 1181 1182 1183
	* font.c (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
	New function, with an intention to avoid code duplication between
	a few font drivers.
	* font.h (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
	Add prototype.
	* ftfont.c (ftfont_open):
	* macfont.m (macfont_open):
	* xftfont.c (xftfont_open): Use it.
1184

1185 1186 1187 1188 1189 1190 1191 1192 1193
2014-07-08  Paul Eggert  <eggert@cs.ucla.edu>

	* process.c: Add sanity checks for file descriptors (Bug#17844).
	(wait_reading_process_output, Fprocess_filter_multibyte_p):
	Check that infd is nonnegative before using it as an fd.
	(read_and_dispose_of_process_output, Fprocess_send_eof):
	Likewise, for outfd.
	(wait_reading_process_output): Omit unnecessary check of infd.

Paul Eggert's avatar
Paul Eggert committed
1194 1195
2014-07-07  Paul Eggert  <eggert@cs.ucla.edu>

1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210
	Minor fixups related to usage of the 'long' type.
	* gnutls.c (emacs_gnutls_handshake):
	* xfaces.c (dump_realized_face):
	Work even if 'long' is narrower than 'void *'.
	* termcap.c (scan_file):
	* xselect.c (x_decline_selection_request)
	(x_reply_selection_request, x_get_window_property):
	* xterm.c (x_set_frame_alpha):
	Remove unnecessary 'L' suffixes of integer constants.
	* xfns.c (hack_wm_protocols):
	* xselect.c (x_fill_property_data):
	* xterm.c (x_set_offset, x_set_window_size_1, x_make_frame_invisible):
	Remove unnecessary casts to 'long'.
	(set_machine_and_pid_properties): Don't assume pid_t fits in 32 bits.

Paul Eggert's avatar
Paul Eggert committed
1211 1212 1213 1214 1215 1216 1217
	Minor ImageMagick safety fixes.
	* image.c (imagemagick_compute_animated_image):
	Remove useless assignment to local.  Avoid problems if dest_width is 0.
	(imagemagick_load_image): Use int for pixel counts that can't
	exceed INT_MAX.  Avoid problem if PixelGetNextIteratorRow returns
	a row width greater than the image width (or greater than LONG_MAX!).

Kenichi Handa's avatar
Kenichi Handa committed
1218
2014-07-04  K. Handa  <handa@gnu.org>
1219 1220 1221 1222 1223

	* coding.c (MIN_CHARBUF_SIZE): Delete it.
	(MAX_CHARBUF_EXTRA_SIZE): New macro.
	(ALLOC_CONVERSION_WORK_AREA): Use MAX_CHARBUF_EXTRA_SIZE.

1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236
2014-07-04  Dmitry Antipov  <dmantipov@yandex.ru>

	* font.h (struct font_driver): Remove get_outline and free_outline;
	not used by any font driver.
	* ftfont.c (ftfont_driver):
	* macfont.m (macfont_driver):
	* nsfont.m (nsfont_driver):
	* w32font.c (w32font_driver):
	* w32uniscribe.c (uniscribe_font_driver):
	* xfont.c (xfont_driver): Related users changed.
	* xselect.c (x_get_window_property): Use convenient xmalloc.
	Call to xfree only if some data was really allocated.

1237 1238 1239 1240 1241 1242 1243 1244 1245 1246
2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>

	On MS-Windows, display busy cursor on all GUI frames.
	This is similar to what we have on X.  Quickly tested by Dani Moncayo.
	* w32fns.c (toplevel): Remove hourglass_hwnd; no longer used.
	(w32_show_hourglass, w32_hide_hourglass, w32_note_current_window):
	Likewise.
	(hide_hourglass, show_hourglass): Redesign to match X counterparts.
	* xdisp.c (start_hourglass): Remove Windows-specific bits.

1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263
2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>

	Use convenient alists to manage per-frame font driver-specific data.
	* frame.h (struct frame): Rename font_data_list to...
	[HAVE_XFT || HAVE_FREETYPE]: ... font_data, which is a Lisp_Object now.
	* font.h (struct font_data_list): Remove; no longer need a special
	data type.
	(font_put_frame_data, font_get_frame_data) [HAVE_XFT || HAVE_FREETYPE]:
	Adjust prototypes.
	* font.c (font_put_frame_data, font_get_frame_data)
	[HAVE_XFT || HAVE_FREETYPE]: Prefer alist functions to ad-hoc list
	management.
	* xftfont.c (xftfont_get_xft_draw, xftfont_end_for_frame):
	Related users changed.
	* ftxfont.c (ftxfont_get_gcs, ftxfont_end_for_frame): Likewise.
	Prefer convenient xmalloc and xfree.

1264
2014-07-03  Eli Zaretskii  <eliz@gnu.org>
1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276

	* dispnew.c (prepare_desired_row): Accept 2 additional arguments:
	the window whose glyph row is being prepared and a flag whether it
	is for mode/header line.  Make sure the glyph row's marginal areas
	are in sync with what the window wants.
	(Bug#17892)

	* xdisp.c (display_line, display_mode_line): Call
	prepare_desired_row with additional arguments, as appropriate.

	* dispextern.h (prepare_desired_row): Adjust prototype.

1277
2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
1278

Dmitry Antipov's avatar
Dmitry Antipov committed
1279
	* xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
1280 1281
	* menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
	caused by xw_popup_dialog in daemon mode (Bug#17891).
1282

1283
2014-07-03  Eli Zaretskii  <eliz@gnu.org>
1284 1285 1286 1287 1288

	* frame.c (do_switch_frame): When switching to another TTY frame,
	make sure FrameCols and FrameRows are in sync with the new frame's
	data.  (Bug#17875)

1289 1290 1291 1292 1293 1294 1295 1296
2014-07-02  Dmitry Antipov  <dmantipov@yandex.ru>

	Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects.
	* lisp.h (struct Lisp_Sub_Char_Table): Use C integers for depth and
	min_char slots.  Adjust comment.
	(enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS.
	Add SUB_CHAR_TABLE_OFFSET member.
	(make_uninit_sub_char_table): New function.
1297 1298
	(toplevel): Add compile-time assert to verify suitable member layout
	in Lisp_Sub_Char_Table.
1299 1300 1301 1302 1303 1304 1305 1306 1307
	* alloc.c (mark_char_table): Add extra argument to denote char table
	subtype.  Adjust to match new layout of sub char-table.
	(mark_object): Always mark sub char-tables with mark_char_table.
	* chartab.c (make_sub_char_table, copy_sub_char_table)
	(sub_char_table_ref, sub_char_table_ref_and_range, sub_char_table_set)
	(sub_char_table_set_range, optimize_sub_char_table, map_sub_char_table)
	(map_sub_char_table_for_charset, uniprop_table_uncompress):
	All related users changed.
	* lread.c (read1): Adjust to match new layout of sub char-table.
1308
	* print.c (print_object): Likewise (Bug#17898).
1309

1310 1311 1312 1313 1314 1315
2014-07-02  Stefan Monnier  <monnier@iro.umontreal.ca>

	* keymap.c (get_keyelt): Simplify.
	(copy_keymap_item): Remove left-over code for when we had
	key-shortcut caches.

Jan Djärv's avatar
Jan Djärv committed
1316 1317 1318 1319 1320 1321 1322
2014-06-30  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (judge): EmacsScroller: Move dealloc code here.
	(dealloc): Remove for EmacsScroller.

	* nsterm.h (EmacsScroller): Remove dealloc.

1323 1324 1325 1326
2014-06-30  Eli Zaretskii  <eliz@gnu.org>

	* coding.c (MIN_CHARBUF_SIZE): Enlarge to 32.  (Bug#17881)

1327 1328 1329 1330 1331 1332 1333 1334 1335 1336
2014-06-30  Jan Djärv  <jan.h.d@swipnet.se>

	* nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO
	when setNeedsDisplay is called so we don't trigger redisplay for every
	tool bar update.

	* nsterm.m (any_help_event_p): New variable.
	(mouseMoved:): Set any_help_event_p to YES if help event is
	generated.  Remove else with empty help event that triggered redisplay
	for every mouse move.
1337
	(windowDidResignKey:): If any_help_event_p, generate empty help event.
1338

1339 1340 1341 1342 1343 1344 1345
2014-06-29  Dmitry Antipov  <dmantipov@yandex.ru>

	* xfns.c (Qsuppress_icon): Remove; no real users.
	(syms_of_xfns): Don't DEFSYM it.  Remove ancient comments.
	* w32fns.c (Qsuppress_icon): Remove, for the same reason.
	(syms_of_w32fns): Don't DEFSYM it.

1346 1347 1348 1349
2014-06-29  Glenn Morris  <rgm@gnu.org>

	* Makefile.in (ns-app): Mark as PHONY.

1350 1351
2014-06-28  Glenn Morris  <rgm@gnu.org>

1352 1353
	* Makefile.in (mostlyclean): There are no libXMenu11.a,
	liblw.a in this directory.
1354

Andreas Schwab's avatar
Andreas Schwab committed
1355 1356 1357 1358 1359
2014-06-28  Andreas Schwab  <schwab@linux-m68k.org>

	* coding.c (encode_coding_utf_8): Correctly count produced_chars
	also in unibyte case.  (Bug#17865)

1360 1361 1362 1363 1364 1365
2014-06-28  K. Handa  <handa@gnu.org>

	* coding.c (MAX_CHARBUF_SIZE): Renamed from CHARBUF_SIZE.
	(MIN_CHARBUF_SIZE): New macro.
	(ALLOC_CONVERSION_WORK_AREA): New arg SIZE.  Callers changed.

1366 1367 1368 1369 1370 1371 1372 1373 1374 1375
2014-06-27  Glenn Morris  <rgm@gnu.org>

	* Makefile.in: Replace BOOTSTRAPEMACS sleight-of-hand
	with an order-only dependence on bootstrap-emacs.  (Bug#2151)
	(.el.elc): Replace suffix rule with pattern rule.
	(%.elc): New pattern rule, with order-only prerequisite.
	($(lisp)): No more need to depend on BOOTSTRAPEMACS.
	($(lispsource)/loaddefs.el): Use an order-only prerequisite
	in place of BOOTSTRAPEMACS.

1376 1377 1378 1379
2014-06-26  Dmitry Antipov  <dmantipov@yandex.ru>

	* fns.c (Fcompare_strings): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.

1380 1381 1382 1383
2014-06-25  Dmitry Antipov  <dmantipov@yandex.ru>

	Consistently use validate_subarray to verify substring.
	* fns.c (validate_substring): Not static any more.  Adjust to
Dmitry Antipov's avatar
Dmitry Antipov committed
1384
	use ptrdiff_t, not EMACS_INT, because string and vector limits
1385
	can't exceed ptrdiff_t even if EMACS_INT is wider.
Dmitry Antipov's avatar
Dmitry Antipov committed
1386 1387
	(Fcompare_strings, Fsubstring, Fsubstring_no_properties)
	(secure_hash): Adjust user.
1388 1389 1390 1391 1392
	* lisp.h (validate_subarray): Add prototype.
	* coding.c (Fundecodable_char_position):
	* composite.c (Fcomposition_get_gstring, Fcompose_string_internal):
	Use validate_subarray.  Adjust comment to mention substring.

1393 1394 1395 1396 1397 1398 1399 1400
2014-06-25  Dmitry Antipov  <dmantipov@yandex.ru>

	Do not allow out-of-range character position in Fcompare_strings.
	* fns.c (validate_subarray): Add prototype.
	(Fcompare_substring): Use validate_subarray to check ranges.
	Adjust comment to mention that the semantics was changed.  Also see
	http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00447.html.

1401 1402 1403 1404 1405 1406 1407 1408 1409
2014-06-24  Paul Eggert  <eggert@cs.ucla.edu>

	Be more consistent about the 'Qfoo' naming convention.
	* image.c (Fimagemagick_types):
	* lisp.h (lisp_h_CHECK_TYPE, CHECK_TYPE, CHECK_ARRAY):
	* process.c (Fmake_network_process):
	Rename C local identifier 'Qfoo to avoid giving the false
	impression that it stands for the symbol 'foo'.

1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423
2014-06-23  Dmitry Antipov  <dmantipov@yandex.ru>

	Simplify and cleanup character conversion stuff.
	* lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe):
	Remove prototypes.
	* character.c (multibyte_char_to_unibyte)
	(multibyte_char_to_unibyte_safe): Remove; no longer used.
	* character.h (make_char): Remove; unused.
	(CHAR_TO_BYTE8, CHAR_TO_BYTE_SAFE): Simplify.
	(ASCII_BYTE_P): Remove; ASCII_CHAR_P does the same thing.
	* buffer.c, charset.c, charset.h, cmds.c, coding.c, editfns.c:
	* fileio.c, indent.c, insdel.c, keyboard.c, lread.c, print.c:
	* search.c, term.c, xdisp.c, xterm.c: Related users changed.

1424 1425 1426 1427
2014-06-22  Mario Lang  <mlang@delysid.org>

	* w32fns.c (Fw32_shell_execute): The the -> the.

1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439
2014-06-22  Dmitry Antipov  <dmantipov@yandex.ru>

	* xmenu.c (mouse_position_for_popup):
	* xselect.c (mouse_position_for_drop): Do not duplicate ...
	* xfns.c (x_relative_mouse_position): ... and prefer this function.
	* menu.c (Fx_popup_menu):
	* xselect.c (x_handle_dnd_message): Adjust users.
	* menu.h (mouse_position_for_popup): Remove prototype.
	* xterm.h (x_relative_mouse_position): Add prototype.
	* xterm.c (x_find_topmost_parent): Break from the loop and do not
	call XFree if XQueryTree returns zero.

1440 1441 1442
2014-06-21  Eli Zaretskii  <eliz@gnu.org>

	* indent.c (Fvertical_motion): Doc fix.
1443 1444 1445 1446
	Move to the goal column, if any, with a single call to
	move_it_in_display_line, not in two calls.  Doing this with two
	calls causes move_it_in_display_line apply the line-prefix
	handling twice instead of just once.  (Bug#17823)
1447

Paul Eggert's avatar
Paul Eggert committed
1448 1449 1450 1451 1452 1453
2014-06-21  Paul Eggert  <eggert@cs.ucla.edu>

	Port to OS X ACLs (Bug#17810).
	* fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
	ACL_TYPE_ACCESS) doesn't work.

1454
2014-06-21  Stefan Monnier  <monnier@iro.umontreal.ca>
1455 1456 1457 1458

	* keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
	before checking key-translation-map (bug#17659).

1459
2014-06-21  Dmitry Antipov  <dmantipov@yandex.ru>
1460 1461 1462 1463

	* font.c (font_make_object): Avoid dangling pointer which may
	crash GC (Bug#17771).

1464
2014-06-21  Eli Zaretskii  <eliz@gnu.org>
1465 1466 1467 1468 1469 1470 1471 1472 1473

	* image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
	prototype of DGifCloseFile as appropriate for older and newer
	versions of giflib.
	(gif_close): New function, encapsulates the differences in the
	calling sequence of DGifCloseFile before v5.1.0 and after it.
	(gif_load): Call gif_close instead of DGifCloseFile.  Divulge the
	error string where appropriate.  (Bug#17790)

1474 1475 1476 1477 1478
	* xdisp.c (Fmove_point_visually): Instead of testing for keyboard
	macro execution, make sure point didn't move since last complete
	redisplay, as the condition for using the glyph matrix
	information.  (Bug#17777)

Dmitry Antipov's avatar
Dmitry Antipov committed
1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491
2014-06-19  Dmitry Antipov  <dmantipov@yandex.ru>

	Minor cleanup of fonset code.
	* fontset.c (FONTSET_ID, set_fontset_id, FONTSET_NAME)
	(set_fontset_name, FONTSET_ASCII, set_fontset_ascii)
	(FONTSET_BASE, set_fontset_base, FONTSET_FRAME)
	(set_fontset_frame, FONTSET_NOFONT_FACE, set_fontset_nofont_face)
	(FONTSET_DEFAULT, set_fontset_default, FONTSET_FALLBACK)
	(set_fontset_fallback): Reorder extra slots and avoid unused slots.
	(free_realized_fontset): Remove because a no-op since 2008.
	(free_face_fontset): Adjust user.
	(syms_of_fontset): Shrink fontset by one extra slot.

Paul Eggert's avatar
Paul Eggert committed
1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526
2014-06-17  Paul Eggert  <eggert@cs.ucla.edu>

	Omit redundant extern decls.
	Most of this patch is from Dmitry Antipov, in:
	http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html
	* commands.h (update_mode_lines):
	* frame.h (Qbackground_color, Qforeground_color)
	(x_set_menu_bar_lines):
	* ftfont.c (ftfont_font_format):
	* intervals.h (Qkeymap, Qfont):
	* keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function):
	* lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump)
	(Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp)
	(Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p)
	(Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object)
	(Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite)
	(Fidentity, extract_float, init_display, syms_of_display, Qdisplay):
	(Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref)
	(char_table_set, char_table_translate, Qautoload, Qbottom, Qtop)
	(Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio)
	(Qtool_bar, Qheader_line):
	* macros.c (Fexecute_kbd_macro):
	* xdisp.c (Ftool_bar_height, Ftool_bar_height):
	* xterm.c (x_delete_terminal, XSetIMValues):
	* xterm.h (x_set_window_size, x_query_color, x_get_focus_frame)
	(x_implicitly_set_name, popup_activated)
	(widget_store_internal_border):
	Remove redundant decls.
	* frame.c [USE_X_TOOLKIT]: Include widget.h.
	* keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit):
	Remove _Noreturn, as make-docfile now does that for us.
	* lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile.
	(Qregion_extract_function): New decl.
	* window.c, xfns.c: Include menu.h.

1527 1528 1529 1530
2014-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>

	* callint.c (Fcall_interactively): Fix up last change (bug#17701).

1531 1532 1533 1534 1535
2014-06-17  Dmitry Antipov  <dmantipov@yandex.ru>

	* fileio.c (Fread_file_name): Do not pass redundant args and ...
	* callint.c (read_file_name): ... convert to static here.
	* lisp.h (Fread_file_name): Do not EXFUN it.
1536
	(STRING_COPYIN): Remove; unused.
1537 1538
	* composite.c (CHAR_COMPOSABLE_P): Replace unsafe macro with ...
	(char_composable_p): ... static function.  All users changed.
1539 1540
	* eval.c (toplevel): Remove redundant #include directives.
	* xterm.c (x_initialize): Add static to match prototype.
1541 1542
	* ccl.c (Fccl_execute_on_string):
	* font.c (fon_intern_prop): Use make_specified_string.
1543

1544 1545 1546 1547 1548 1549
2014-06-16  Paul Eggert  <eggert@cs.ucla.edu>

	* Makefile.in (ns-app): Fix typo that broke build on OS X.
	Reported by David Caldwell in:
	http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00251.html

1550 1551 1552 1553 1554 1555
2014-06-16  Dmitry Antipov  <dmantipov@yandex.ru>

	Do not ask for XRender extension each time XFT font is opened.
	* xftfont.c (xftfont_open): Move call to XRenderQueryExtension ...
	* xterm.c (x_term_init) [HAVE_XFT]: ... to here.  Adjust comment.

1556 1557 1558 1559
2014-06-15  Glenn Morris  <rgm@gnu.org>

	* Makefile.in: Use `make -C' rather than `cd && make' throughout.

1560
2014-06-15  Eli Zaretskii  <eliz@gnu.org>
1561 1562 1563 1564 1565 1566

	* xdisp.c (Fmove_point_visually): Don't use the glyph matrix
	information if we are in the middle of executing a keyboard macro,
	since redisplay doesn't update the screen until the macro is
	finished.  (Bug#17777)

1567 1568 1569
	* alloc.c (cleanup_vector): Don't dereference a font driver
	pointer if it is NULL.  (Bug#17771)

1570 1571 1572 1573 1574 1575 1576 1577 1578
2014-06-13  Glenn Morris  <rgm@gnu.org>

	* Makefile.in ($(leimdir)/leim-list.el, $(srcdir)/macuvs.h)
	($(lispsource)/international/charprop.el)
	($(libsrc)/make-docfile$(EXEEXT), $(lwlibdir)/liblw.a)
	($(oldXMenudir)/libXMenu11.a, ns-app, .el.elc)
	($(lispsource)/loaddefs.el, bootstrap-emacs$(EXEEXT)):
	GNU make automatically passes command-line arguments to sub-makes.

1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590
2014-06-13  Paul Eggert  <eggert@cs.ucla.edu>

	Avoid hangs in accept-process-output (Bug#17647).
	* lisp.h, process.c (wait_reading_process_input):
	Return int, not bool.  All uses changed.
	* process.c (SELECT_CANT_DO_WRITE_MASK):
	Remove macro, replacing with ...
	(SELECT_CAN_DO_WRITE_MASK): ... new constant, with inverted sense.
	All uses changed.
	(status_notify): New arg WAIT_PROC.  Return int, not void.
	All uses changed.

1591 1592 1593 1594 1595 1596 1597
2014-06-13  Eli Zaretskii  <eliz@gnu.org>

	* menu.c (Fx_popup_menu): Don't call the frame's menu_show_hook if
	the frame is the initial frame, because the hook is not set up
	then, and Emacs crashes.
	Reported by Fabrice Popineau <fabrice.popineau@gmail.com>.

1598 1599 1600 1601 1602
2014-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>

	* keymap.c (silly_event_symbol_error): Don't recommend the use
	of strings.

1603 1604 1605 1606 1607 1608
2014-06-11  Eli Zaretskii  <eliz@gnu.org>

	* xdisp.c (set_cursor_from_row): Fix an off-by-one error when
	matching overlay strings with 'cursor' property against buffer
	positions traversed in the glyph row.  (Bug#17744)

Jan Djärv's avatar
Jan Djärv committed
1609 1610 1611 1612 1613 1614 1615 1616
2014-06-11  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst
	on Cocoa.

	* nsterm.m (run): Always compile for Cocoa.  Use runtime check to
	determine 10.9 (Bug#17751).

1617
	* macfont.m (macfont_draw): Positions were not freed.
Jan Djärv's avatar
Jan Djärv committed
1618

1619 1620 1621 1622 1623 1624 1625
2014-06-10  Dmitry Antipov  <dmantipov@yandex.ru>

	* dispextern.h (PREPARE_FACE_FOR_DISPLAY): Remove as a duplicate of ...
	* xfaces.c (prepare_face_for_display) [HAVE_WINDOW_SYSTEM]: ... this
	function.  Also adjust comment.
	* fringe.c, w32term.c, xdisp.c, xterm.c: All users changed.

1626 1627 1628 1629 1630 1631 1632 1633 1634
	* dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member.
	* font.c (font_done_for_face):
	* xface.c (realize_non_ascii_face): Adjust user.
	* font.h (struct font_driver): Convert 'prepare_face' to return
	void because its return value is never used anyway.
	* xfont.c (xfont_prepare_face): Return void.
	* xftfont.c (xftfont_prepare_face): Likewise.  Use xmalloc.
	(xftfont_done_face): Use xfree.

1635 1636 1637 1638 1639 1640 1641 1642
	* dispextern.h (last_tool_bar_item): Remove declaration.
	* frame.h (struct frame): New member last_tool_bar_item.
	* frame.c (make_frame): Initialize it.
	* xdisp.c (toplevel): Remove last_tool_bar_item.
	(handle_tool_bar_click, note_tool_bar_highlight):
	* w32term.c (w32_read_socket, w32_initialize):
	* xterm.c (handle_one_xevent, x_initialize): Adjust users.

1643 1644 1645
	* frame.h (window_system_available) [!HAVE_WINDOW_SYSTEM]: Always false.
	* frame.c (window_system_available) [HAVE_WINDOW_SYSTEM]: Now here.

1646 1647 1648 1649 1650 1651 1652
2014-06-09  Paul Eggert  <eggert@cs.ucla.edu>

	Say (accept-process-output P)'s result pertains to P if P is non-nil.
	* process.c (Faccept_process_output)
	(wait_reading_process_output): Mention that if PROCESS is non-nil,
	the return value is about PROCESS, not about other processes.

1653 1654 1655 1656 1657 1658 1659 1660
2014-06-09  Dmitry Antipov  <dmantipov@yandex.ru>

	Further adjustments to mark_object and friends.
	Now the mark_object's stack is just 32 bytes on a 64-bit
	system, which means extra 20% off the stack usage.
	* alloc.c (mark_save_value): As before, refactored out from ...
	(mark_object): ... adjusted user.  Also add comment.

1661 1662 1663 1664 1665 1666
2014-06-09  Paul Eggert  <eggert@cs.ucla.edu>

	Fix core dump after a dropped X connection (Bug#17704).
	* sysdep.c (stuff_char): Don't abort merely because the selected frame
	is dead, as we may be shutting down.

Glenn Morris's avatar
Glenn Morris committed
1667 1668
2014-06-08  Glenn Morris  <rgm@gnu.org>

1669 1670
	* fileio.c (write-region-inhibit-fsync): Doc tweak.

Glenn Morris's avatar
Glenn Morris committed
1671 1672
	* data.c (Flss, Fgtr, Fleq, Fgeq): Doc tweaks.

1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697
2014-06-08  Paul Eggert  <eggert@cs.ucla.edu>

	If a C name must be extern on some platforms, make it extern on all.
	* dispextern.h (set_vertical_scroll_bar, erase_phys_cursor)
	(load_color):
	* font.h (ftxfont_driver) [HAVE_XFT]:
	* keyboard.h (menu_items_inuse, ignore_mouse_drag_p, make_ctrl_char):
	* lisp.h (get_frame_param):
	* menu.h (tty_menu_show):
	* process.h (conv_sockaddr_to_lisp, catch_child_signal):
	* termhooks.h (encode_terminal_code):
	* xterm.h (x_menu_wait_for_event):
	Always declare.
	* frame.c (get_frame_param):
	* fringe.c (max_used_fringe_bitmap):
	* ftxfont.c (ftxfont_driver):
	* keyboard.c (ignore_mouse_drag_p, make_ctrl_char):
	* menu.c (menu_items_inuse):
	* process.c (conv_sockaddr_to_lisp, catch_child_signal):
	* term.c (encode_terminal_code, tty_menu_show):
	* xdisp.c (set_vertical_scroll_bar, erase_phys_cursor):
	* xfaces.c (load_color):
	* xmenu.c (x_menu_wait_for_event):
	Now always extern.

1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712
2014-06-08  Dmitry Antipov  <dmantipov@yandex.ru>

	Change object marking routines to minimize stack usage.
	This change moves a few cold paths from mark_object to NO_INLINE
	functions and adjusts symbol marking loop.  According to GCC 4.8.2
	-Wstack-usage, this reduces mark_object's stack usage from 80 to
	48 bytes on a 64-bit system.  For a long byte-force-recompile runs,
	stack usage at the mark phase is reduced up to 28%.  Surprisingly,
	it also gains up to 3% in speed (with default '-O2 -g3' flags).
	* alloc.c (mark_compiled, mark_localized_symbol): New functions,
	refactored out from ...
	(mark_object): ... adjusted user.  Also mark symbols in a tight
	inner loop.
	(mark_face_cache): Add NO_INLINE.

1713
2014-06-08  Eli Zaretskii  <eliz@gnu.org>
1714

1715 1716 1717 1718
	* sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
	contains garbage on WINDOWSNT (which could potentially infloop at
	exit).

1719
	Minimize cursor motion during TTY menu updates.
1720 1721
	* term.c (tty_menu_display): Don't position cursor here.
	Instead, pass the cursor coordinates to update_frame_with_menu.
1722 1723 1724 1725 1726 1727 1728 1729 1730 1731
	(tty_menu_activate): Send the hide cursor command only once in an
	iteration through the outer 'while' loop.

	* dispnew.c (update_frame_1): Accept an additional argument
	SET_CURSOR_P, and position the cursor at the end of the frame
	update only if that argument is non-zero.  All callers changed to
	provide the additional argument as non-zero, except for
	update_frame_with_menu.
	(update_frame_with_menu): Accept 2 additional arguments ROW and
	COL; if they are non-negative, instruct update_frame_1 not to
1732
	position the cursor, and instead position it according to ROW and COL.
1733 1734 1735

	* dispextern.h (update_frame_with_menu): Update prototype.

1736
2014-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>
1737 1738 1739 1740

	* callproc.c (call_process): Don't check read-only if we don't insert
	anything (bug#17666).

1741
2014-06-08  Eli Zaretskii  <eliz@gnu.org>
1742 1743 1744

	* dispnew.c (update_frame_with_menu): Set display_completed.

Eli Zaretskii's avatar
Eli Zaretskii committed
1745 1746 1747 1748 1749 1750
2014-06-07  Eli Zaretskii  <eliz@gnu.org>

	* term.c (tty_menu_show) [WINDOWSNT]: Make tty_menu_show extern
	only for WINDOWSNT.
	* menu.h (tty_menu_show) [WINDOWSNT]: Declare extern only for WINDOWSNT.

1751 1752 1753 1754 1755
2014-06-06  Paul Eggert  <eggert@cs.ucla.edu>

	* term.c (tty_menu_show) [!HAVE_NTGUI]: Now static.
	* menu.h (tty_menu_show) [!HAVE_NTGUI]: Omit extern decl.

1756 1757
2014-06-06  Stefan Monnier  <monnier@iro.umontreal.ca>

1758 1759 1760
	* window.c (Frecenter): Signal an error if window-buffer is not
	current-buffer.

1761 1762 1763
	* keyboard.c (make_lispy_position): Don't include a buffer position in
	mode/header-line mouse events.

1764 1765 1766
	* keyboard.c (read_char): Handle (t . <event>) in the second use of
	Vunread_command_events (bug#17650).

1767 1768
2014-06-06  Dmitry Antipov  <dmantipov@yandex.ru>

1769 1770
	* xterm.c (x_setup_pointer_blanking):
	Conditionally probe Xfixes until this stuff is stabilized (Bug#17609).
1771

1772 1773 1774 1775 1776
2014-06-05  Dmitry Antipov  <dmantipov@yandex.ru>

	* keyboard.c, process.c: Do not define POLL_FOR_INPUT here
	because it will be defined in generated config.h if needed.

1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787
2014-06-04  Dmitry Antipov  <dmantipov@yandex.ru>

	Use terminal-specific hooks to display popup dialogs.
	* termhooks.h (struct terminal): New field popup_dialog_hook.
	* menu.c (emulate_dialog_with_menu): New function, refactored from ...
	(Fx_popup_dialog): ... adjusted user.  Also remove old #if 0
	code and use popup_dialog_hook.
	* nsmenu.m (ns_popup_dialog): Make hook-compatible.
	* nsterm.h (ns_popup_dialog): Adjust prototype.
	* nsterm.m (ns_create_terminal):
	* w32term.c (w32_create_terminal):
1788 1789
	* xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]:
	Setup popup_dialog_hook.
1790

1791 1792
2014-06-04  Eli Zaretskii  <eliz@gnu.org>

1793
	* w32heap.c (report_temacs_memory_usage): Improve the report by
1794
	reporting the large blocks that are actually occupied at dump time.