ChangeLog 674 KB
Newer Older
1 2
2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>

Paul Eggert's avatar
Paul Eggert committed
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
	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.

39 40 41 42 43 44 45
	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.

46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
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
62 63 64 65 66 67
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.

68 69 70 71 72 73
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)

74 75 76 77
2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>

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

78 79 80 81 82 83 84 85 86 87
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.

88 89
2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>

90 91 92 93 94 95 96 97 98 99
	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.

100 101 102 103 104 105 106 107 108
	* 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.

109 110 111 112 113
	* 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.

114 115 116 117 118 119 120 121 122
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.

123 124 125 126 127 128 129 130 131 132 133 134 135 136
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.

137 138 139 140 141 142 143
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.

144 145 146 147 148 149 150 151 152 153
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.

154 155
2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>

156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
	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.

177 178
	* xdisp.c (Qinhibit_debug_on_message): Now static.

179 180 181 182 183
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).

184 185 186 187
2012-09-10  Chong Yidong  <cyd@gnu.org>

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

Paul Eggert's avatar
Paul Eggert committed
188 189 190 191 192
2012-09-10  Paul Eggert  <eggert@cs.ucla.edu>

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

193 194 195 196 197 198
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.

199 200
2012-09-09  Eli Zaretskii  <eliz@gnu.org>

201 202 203 204
	* 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.

205 206 207 208
	* 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)

209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
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.

241 242 243 244 245
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).

246 247 248 249 250
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.

251 252 253 254 255
2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>

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

256 257 258 259
2012-09-08  Chong Yidong  <cyd@gnu.org>

	* syntax.c (Fstring_to_syntax): Doc fix.

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
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.
	(ns_after_update_window_line, ns_draw_fringe_bitmap): Remove
	fringe/internal border adjustment (Bug#11052).
	(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.
	(ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
	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.

287 288
2012-09-07  Chong Yidong  <cyd@gnu.org>

289 290
	* textprop.c (Fget_text_property): Minor doc fix (Bug#12323).

291 292
	* data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).

Paul Eggert's avatar
Paul Eggert committed
293 294 295
2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>

	More signal-handler cleanup (Bug#12327).
296 297 298
	* 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
299 300 301 302 303 304 305 306 307 308 309 310 311 312
	* 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".

313 314
2012-09-07  Eli Zaretskii  <eliz@gnu.org>

315 316 317 318 319
	* w32proc.c (sigaction): New function, emulates Posix 'sigaction'.

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

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

322 323 324 325 326
2012-09-07  Dmitry Antipov  <dmantipov@yandex.ru>

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

327 328 329 330 331 332
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
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
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,
	so that there's	no need to block and unblock SIGHUP.
	* sysdep.c (struct save_signal): New member 'action', replacing
	old member 'handler'.
	(save_signal_handlers, restore_signal_handlers):
	Use sigaction instead of 'signal' to save and restore.
	(get_set_sighandler, set_sighandler) [!WINDOWSNT]:
	New function.  All users of 'signal' modified to use set_sighandler
	if they're writeonly, and to use sys_signal if they're read+write.
	(emacs_sigaction_init, forwarded_signal): New functions.
	(sys_signal): Remove.  All uses replaced by calls to sigaction
	and emacs_sigaction_init, or by direct calls to 'signal'.
	(sys_sigmask) [!__GNUC__]: Remove; no longer needed.
	(sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
	all uses replaced by pthread_sigmask etc. calls.
	* syssignal.h: Include <signal.h>.
	(emacs_sigaction_init, forwarded_signal): New decls.
	(SIGMASKTYPE): Remove.  All uses replaced by its definiens, sigset_t.
	(SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
	(sigmask, sys_sigmask): Remove; no longer needed.
	(sigpause): Remove.  All uses replaced by its definiens, sigsuspend.
	(sigblock, sigunblock, sigfree):
	(sigsetmask) [!defined sigsetmask]:
	Remove.  All uses replaced by pthread_sigmask.
	(signal): Remove.  Its remaining uses (with SIG_DFL and SIG_IGN)
	no longer need to be replaced, and its typical old uses
	are now done via emacs_sigaction_init and sigaction.
	(sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
	(sys_sigdel): Remove; unused.
	(NSIG): Remove a FIXME; the code's fine.  Remove an unnecessary ifdef.

387 388 389 390 391
2012-09-06  Eli Zaretskii  <eliz@gnu.org>

	* process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
	SIGCHLD handling on systems that don't have WNOHANG.  (Bug#12327)

392 393 394 395 396 397 398 399 400 401 402 403 404 405 406
2012-09-06  Dmitry Antipov  <dmantipov@yandex.ru>

	Explicitly mark buffer_defaults and buffer_local_symbols.
	* alloc.c (Fgarbage_collect): Mark buffer_defaults and
	mark_local_symbols here.
	(mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
	since special buffers aren't marked here any more.
	(allocate_buffer): Chain new buffer with all_buffers here...
	* buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
	not here.
	(Vbuffer_defaults, Vbuffer_local_symbols): Remove.
	(syms_of_buffer): Remove staticpro of the above.
	(init_buffer_once): Set names for buffer_defaults and
	buffer_local_symbols.

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
2012-09-06  Paul Eggert  <eggert@cs.ucla.edu>

	Use bool for booleans in font-related modules.
	* font.c (font_intern_prop, font_style_to_value)
	(font_style_symbolic, font_parse_xlfd, font_parse_fcname)
	(generate_otf_features, font_check_otf_features, font_check_otf)
	(font_match_p, font_list_entities, font_at):
	* fontset.c (fontset_id_valid_p, reorder_font_vector
	(fontset_find_font, Fset_fontset_font)
	(face_suitable_for_char_p) [0]:
	* ftfont.c (fc_initialized, ftfont_get_open_type_spec)
	(ftfont_open, ftfont_text_extents, ftfont_check_otf):
	(m17n_flt_initialized, ftfont_shape_by_flt):
	* ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
	* nsfont.m (nsfont_draw):
	* w32font.c (w32font_draw):
	* w32term.c (x_draw_glyphless_glyph_string_foreground):
	Use bool for booleans.
	* font.h: Adjust to above API changes.
	(struct font, struct font_driver, struct font_driver_list):
	Use bool for booleans.
	(struct font): Remove useless member encoding_type.
	All users removed.
	* fontset.c, xftfont.c: Omit unnecessary static decls.

432 433 434 435 436
2012-09-06  Dmitry Antipov  <dmantipov@yandex.ru>

	* alloc.c (mark_object): Revert window marking code
	since it's unsafe for the Fset_window_configuration.

437 438
2012-09-05  Paul Eggert  <eggert@cs.ucla.edu>

Paul Eggert's avatar
Paul Eggert committed
439
	Fix race conditions with signal handlers and errno (Bug#12327).
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
	Be more systematic about preserving errno whenever a signal
	handler returns, even if it's not in the main thread.  Do this by
	renaming signal handlers to distinguish between signal delivery
	and signal handling.  All uses changed.
	* atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
	* data.c (deliver_arith_signal): Rename from arith_error.
	* dispnew.c (deliver_window_change_signal): Rename from
	window_change_signal.
	* emacs.c (deliver_error_signal): Rename from fatal_error_signal.
	(deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
	* keyboard.c (deliver_input_available_signal): Rename from
	input_available_signal.
	(deliver_user_signal): Rename from handle_user_signal.
	(deliver_interrupt_signal): Rename from interrupt_signal.
	* process.c (deliver_pipe_signal): Rename from send_process_trap.
	(deliver_child_signal): Rename from sigchld_handler.
	* atimer.c (handle_alarm_signal):
	* data.c (handle_arith_signal):
	* dispnew.c (handle_window_change_signal):
	* emacs.c (handle_fatal_signal, handle_danger_signal):
	* keyboard.c (handle_input_available_signal):
	* keyboard.c (handle_user_signal, handle_interrupt_signal):
	* process.c (handle_pipe_signal, handle_child_signal):
	New functions, with the actual signal-handling code taken from the
	original respective signal handlers, sans the sporadic attempts to
	preserve errno, since that's now done by handle_on_main_thread.
	* atimer.c (alarm_signal_handler): Remove unnecessary decl.
	* emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
	* emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
	Move to sysdep.c.
	(main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
	Move initialization of main_thread to sysdep.c's init_signals.
	* process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
	our usage, and simplifies the mainline code.
	(record_child_status_change): New static function, as a helper
	for handle_child_signal, and with most of the old child handler's
	contents.
	(CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
	(handle_child_signal): Use the above.
	* sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
	Moved here from emacs.c.
	(init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
	code moved here from emacs.c's main function.
	* sysdep.c, syssignal.h (handle_on_main_thread): New function,
	replacing the old SIGNAL_THREAD_CHECK.  All uses changed.  This
	lets callers save and restore errno properly.

487 488 489 490 491 492 493 494 495 496
2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>

	Remove redundant or unused things here and there.
	* lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
	* conf_post.h (RE_TRANSLATE): Use char_table_translate.
	* editfns.c (Fcompare_buffer_substrings): Likewise.
	* frame.h (struct terminal, struct font_driver_list):
	Remove redundant declarations.
	* window.h (Qleft, Qright): Likewise.

497 498 499 500 501 502
2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>

	Do not mark objects from deleted buffers, windows and frames.
	* alloc.c (mark_buffer): Mark just the buffer if it is dead.
	(mark_object): Likewise for windows and frames.

503 504 505 506 507 508
2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>

	* alloc.c (valid_lisp_object_p): Treat killed buffers,
	buffer_defaults and buffer_local_symbols as valid objects.
	Return special value to denote them.

509 510
2012-09-05  Paul Eggert  <eggert@cs.ucla.edu>

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
	* fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
	* fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
	(Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
	(file_name_absolute_p, Fsubstitute_in_file_name):
	(check_executable, check_writable, Ffile_accessible_directory_p)
	(Fset_file_selinux_context, Fdefault_file_modes)
	(Finsert_file_contents, choose_write_coding_system)
	(Fwrite_region, build_annotations, a_write, e_write)
	(Fdo_auto_save):
	* filelock.c (boot_time_initialized, get_boot_time)
	(get_boot_time_1, lock_file_1, within_one_second):
	* floatfns.c (in_float):
	* fns.c (concat, internal_equal, Frequire, base64_encode_1)
	(base64_decode_1, cmpfn_eql, cmpfn_user_defined)
	(sweep_weak_table, sweep_weak_hash_tables, secure_hash):
	* lisp.h (struct Lisp_Hash_Table.cmpfn):
	* window.c (compare_window_configurations):
	Use bool for booleans.
	* fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
	(Fdefault_file_modes): Now mode_t, not int, for modes.
	(Fdo_auto_save): Set a boolean to 1 rather than using ++.
	(internal_delete_file): Now returns void, not a (boolean) int,
	since nobody was looking at the return value.
	* lisp.h, window.h: Adjust to above API changes.

536 537
	* xdisp.c (set_message): Simplify and reindent last change.

538 539 540 541
2012-09-05  Juanma Barranquero  <lekktu@gmail.com>

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

542 543 544 545 546 547 548 549
2012-09-04  Lars Ingebrigtsen  <larsi@gnus.org>

	* eval.c (call_debugger): Make the function non-static so that we
	can call it from set_message.

	* xdisp.c (set_message): Implement the new variable `debug-on-message'.
	(syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.

550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568
2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>

	Give more-useful info on a fatal error (Bug#12328).
	* alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
	(die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
	of doing the work ourselves.
	* emacs.c (fatal_error_signal): Let fatal_error_backtrace
	do most of the work.
	(fatal_error_backtrace): New function, taken from the guts
	of the old fatal_error_signal, but with a new option to output
	a backtrace.
	(shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
	info about the signal than just its number.
	* lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
	* sysdep.c: Include <execinfo.h>
	(emacs_backtrace): New function, taken partly from the previous
	code of the 'die' function.
	(emacs_abort): Call fatal_error_backtrace rather than abort.

569 570 571 572 573 574
2012-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>

	* lread.c (readevalloop): Call internal-macroexpand-for-load to perform
	eager (load-time) macro-expansion.
	* lisp.mk (lisp): Add macroexp.

575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594
2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>

	Simplify redefinition of 'abort' (Bug#12316).
	Do not try to redefine the 'abort' function.  Instead, redo
	the code so that it calls 'emacs_abort' rather than 'abort'.
	This removes the need for the NO_ABORT configure-time macro
	and makes it easier to change the abort code to do a backtrace.
	* .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
	* emacs.c (abort) [!DOS_NT && !NO_ABORT]:
	Remove; sysdep.c's emacs_abort now takes its place.
	* lisp.h (emacs_abort): New decl.  All calls from Emacs code to
	'abort' changed to use 'emacs_abort'.
	* msdos.c (dos_abort) [defined abort]: Remove; not used.
	(abort) [!defined abort]: Rename to ...
	(emacs_abort): ... new name.
	* sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
	the place of the old 'abort' in emacs.c.
	* w32.c, w32fns.c (abort): Do not #undef.
	* w32.c (emacs_abort): Rename from w32_abort.

595 596 597 598 599 600 601 602
2012-09-04  Eli Zaretskii  <eliz@gnu.org>

	* w32uniscribe.c (uniscribe_shape): Reverse the sign of
	offsets[j].dv, since the y axis of the screen coordinates points
	down, while the y axis of the font definition coordinates points
	up.  This fixes display of Arabic diacritics such as KASRA and
	KASRATAN.  (Bug#11860)

603 604 605 606 607 608 609 610 611 612 613 614 615 616
2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>

	Be more systematic about _setjmp vs setjmp.
	* alloc.c (test_setjmp, mark_stack):
	* image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
	(PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
	(png_load, my_error_exit, jpeg_load):
	* process.c (send_process_trap, send_process):
	Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
	The underscored versions are up to 30x faster on some hosts.
	Formerly, the code used setjmp+longjmp sometimes and
	_setjmp+_longjmp at other times, with no particular reason to
	prefer setjmp+longjmp.

617 618
2012-09-03  Paul Eggert  <eggert@cs.ucla.edu>

619
	Fix minor problem found by static checking.
620 621
	* buffer.c (Fdelete_all_overlays): Return nil.

622 623 624 625
2012-09-03  Martin Rudalics  <rudalics@gmx.at>

	* buffer.c (Fdelete_all_overlays): New function.

626 627 628 629
2012-09-03  Chong Yidong  <cyd@gnu.org>

	* gtkutil.c: Add extern decl for Qxft.

630 631
2012-09-02  Paul Eggert  <eggert@cs.ucla.edu>

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
	* emacs.c, eval.c: Use bool for boolean.
	* emacs.c (initialized, inhibit_window_system, running_asynch_code):
	(malloc_using_checking) [DOUG_LEA_MALLOC]:
	(display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
	(noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
	(main, decode_env_path, Fdaemon_initialized):
	* eval.c (call_debugger, Finteractive_p, interactive_p):
	(unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
	(maybe_call_debugger, Fbacktrace):
	* process.c (read_process_output, exec_sentinel):
	Use bool for booleans.
	* emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
	All callers changed.
	* eval.c (interactive_p): Omit always-true boolean argument
	EXCLUDE_SUBRS_P.  All callers changed.
	* dispextern.h, lisp.h: Reflect above API changes.
	* firstfile.c (dummy): Use the address of 'main', whose signature
	won't change, instead of the address of 'initialize', whose
	signature just changed from int to bool.
	* lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
	* msdos.c (fatal_error_in_progress): ... from here.
	* xdisp.c (redisplaying_p): Now a boolean.  Set it to 1 instead
	of incrementing it.
	(redisplay_internal, unwind_redisplay): Simply clear
	REDISPLAYING_P when unwinding, instead of saving its previous,
	always-false value and then restoring it.

Paul Eggert's avatar
Paul Eggert committed
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
	Clean up some extern decls.
	Mostly, this hoists extern decls out of .c files and into .h files.
	That way, we're more likely to catch errors if the interfaces change.
	* alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
	declare xg_mark_data.
	* dispextern.h (x_frame_parm_handlers):
	* font.h (Qxft):
	* lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
	(Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
	(Qultra_bold, Qoblique, Qitalic):
	Move extern decl here from .c file.
	* alloc.c (xg_mark_data) [USE_GTK]:
	* doc.c (Qclosure):
	* eval.c (Qlexical_binding):
	* fns.c (time) [!HAVE_UNISTD_H]:
	* gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
	(Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
	* image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
	* lread.c (Qinternal_interpreter_environment):
	* minibuf.c (Qbuffer):
	* process.c (QCfamily, QCfilter):
	* widget.c (free_frame_faces):
	* xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
	* xfont.c (x_clear_errors):
	* xterm.c (x_frame_parm_handlers):
	Remove now-redundant extern decls.
	* keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
	* xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
	Now static.
	* xfaces.c: Remove unnecessary static decls.
	* xterm.c (updating_frame): Remove decl of nonexistent object.

691 692 693 694
	* Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
	when building globals.h, as the objects that are not built on
	this host are not needed to compile C files on this host.

695 696 697 698 699 700
2012-09-02  Jan Djärv  <jan.h.d@swipnet.se>

	* gtkutil.h: Remove prototype for x_wm_set_size_hint.

	* frame.h: Add missing prototype for x_wm_set_size_hint.

701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729
2012-09-02  Paul Eggert  <eggert@cs.ucla.edu>

	* doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
	* doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
	(Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
	(Fsubstitute_command_keys):
	* editfns.c (region_limit, find_field, Fconstrain_to_field)
	(save_excursion_save, save_excursion_restore)
	(disassemble_lisp_time, decode_time_components, emacs_nmemftime)
	(format_time_string, general_insert_function)
	(make_buffer_string, make_buffer_string_both)
	(Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
	* insdel.c (check_markers, gap_left, adjust_markers_for_insert)
	(copy_text, insert_1, insert_1_both, insert_from_string)
	(insert_from_string_before_markers, insert_from_string_1)
	(insert_from_buffer, insert_from_buffer_1, replace_range)
	(replace_range_2, del_range_1, del_range_byte, del_range_both)
	(del_range_2, modify_region):
	* intervals.c (intervals_equal, balance_possible_root_interval)
	(adjust_intervals_for_insertion, merge_properties_sticky)
	(graft_intervals_into_buffer, lookup_char_property)
	(adjust_for_invis_intang, set_point_both)
	(get_property_and_range, compare_string_intervals)
	(set_intervals_multibyte_1, set_intervals_multibyte):
	* keyboard.c (decode_timer):
	Use bool for boolean.
	* intervals.h, lisp.h, systime.h: Reflect above API changes.
	* editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.

730 731 732 733 734
2012-09-02  Chong Yidong  <cyd@gnu.org>

	* keymap.c (push_key_description): Print M-TAB as C-M-i
	(Bug#11758).

735 736 737 738 739 740 741 742 743 744
2012-09-02  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in (CCL_H, W32FONT_H): New macros.
	(ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
	($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
	($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
	($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
	($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
	($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.

745 746
2012-09-01  Eli Zaretskii  <eliz@gnu.org>

747 748 749 750
	* w32uniscribe.c (uniscribe_shape): Handle correctly the case of
	more than one grapheme cluster passed to the shaper: compute the
	offset adjustment values separately for each cluster.  (Bug#11860)

751 752 753 754
	* image.c: Restore mistakenly removed inclusion of w32.h.  Without
	it, GCC doesn't see prototypes of w32_delayed_load, and complains
	about implicit conversions from integer to pointer.

755 756 757 758 759
2012-09-01  Daniel Colascione  <dancol@dancol.org>

	* w32fns.c (x_display_info_for_name): Prevent crash if w32 window
	system used too early.

760 761 762 763 764 765 766 767 768
2012-09-01  Paul Eggert  <eggert@cs.ucla.edu>

	Better seed support for (random).
	* emacs.c (main): Call init_random.
	* fns.c (Frandom): Set the seed from a string argument, if given.
	Remove long-obsolete Gentzel cruft.
	* lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
	(init_random): New function.

769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787
2012-09-01  Daniel Colascione  <dancol@dancol.org>

	* xterm.h: Add header guards.  Declare x_menubar_window_to_frame.
	Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
	x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
	x_wm_set_size_hint, x_query_colors, x_real_positions,
	x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
	x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
	all of which have been moved to common code.

	* xfaces.c: Include TERM_HEADER instead of listing all possible
	window-system headers.

	* w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
	to match header.

	* w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
	directly accessing frame internals.

788
	* w32font.h: Include font.h.  Define syms_of_w32font and
789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830
	globals_of_w32font.

	* process.c: Include TERM_HEADER instead of listing all possible
	window-system headers.

	* nsterm.h: Remove declarations now in frame.h.  Define
	FRAME_X_SCREEN, FRAME_X_VISUAL.

	* menu.c: Include TERM_HEADER instead of listing all possible
	window-system headers.

	* keyboard.h: Declare ignore_mouse_drag_p whenever we have a
	window system.

	* keyboard.c: Include TERM_HEADER instead of listing all possible
	window-system headers.

	* image.c: Include TERM_HEADER instead of listing all possible
	window-system headers.  Declare Vlibrary_cache when compiling for
	Windows.

	* gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
	window system declarations.

	* frame.h: Move common functions here: set_frame_menubar,
	x_set_window_size, x_sync, x_get_focus_frame,
	x_set_mouse_position, x_set_mouse_pixel_position,
	x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
	x_char_width, x_char_height, x_pixel_width, x_pixel_height,
	x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
	x_activate_menubar, x_real_positions, x_bitmap_icon,
	x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
	and x_query_colors.

	* frame.c: Include TERM_HEADER instead of listing all possible
	window-system headers.

	* font.c: Include TERM_HEADER instead of listing all possible
	window-system headers.

	* emacs.c: Include TERM_HEADER.

831 832
	* dispnew.c: Include TERM_HEADER instead of listing all possible
	window-system headers.
833

834
	* ccl.h: Include character.h.
835 836 837 838 839

	* Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
	the current window system; include in list of objects to link into
	Emacs.

840 841 842 843 844 845 846 847 848 849
2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>

	Remove mark_ttys function and fix tty_display_info initialization.
	* lisp.h (mark_ttys): Remove prototype.
	* alloc.c (Fgarbage_collect): Remove redundant (and the only) call
	to mark_ttys because all possible values of 'top_frame' slot are
	the frames which are reachable from Vframe_list.
	* term.c (mark_ttys): Remove.
	(init_tty): Safely initialize 'top_frame' slot with Qnil.

850 851 852 853 854 855 856 857 858
2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>

	Change struct frame bitfields from unsigned char to unsigned.
	* frame.h (struct frame): Change type of 'display_preempted',
	'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
	'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
	'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
	bitfields from unsigned char to unsigned.

859 860 861 862 863 864
2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>

	Remove unused member of struct x_output and struct w32_output.
	* xterm.h (struct x_output): Remove unused field 'needs_exposure'.
	* w32term.h (struct w32_output): Likewise.

865 866 867 868 869
2012-08-30  Jan Djärv  <jan.h.d@swipnet.se>

	* gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
	does not become zero (Bug#12234).

870 871 872 873 874
2012-08-30  Paul Eggert  <eggert@cs.ucla.edu>

	* dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
	for GCC 4.7.1 x86-64.

Glenn Morris's avatar
Glenn Morris committed
875 876 877 878 879 880
2012-08-30  Glenn Morris  <rgm@gnu.org>

	* lread.c (init_lread): For out-of-tree builds, only add the
	source directory's site-lisp dir to the load-path if it exists,
	consistent with in-tree builds.  (Bug#12302)

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
2012-08-28  Jan Djärv  <jan.h.d@swipnet.se>

	* nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
	button_values to NULL. Call setStykeMask so dialogs get a close button.
	(windowShouldClose:): Set window_closed.
	(dealloc): New member, free button_values.
	(process_dialog:): Make member function. Remove window argument,
	replace window with self. Count buttons and allocate and store values
	in button_values.
	(addButton:value:row:): value is int with the name tag.  Call setTag
	with tag. Remove return self, declare return value as void.
	(addString:row:): Remove return self, declare return value as void.
	(addSplit): Remove return self, declare return value as void.
	(clicked:): Remove return self, declare return value as void.
	Set dialog_return to button_values[seltag]. Code formatting change.
	(initFromContents:isQuestion:): Adjust call to process_dialog.
	Code formatting change.
	(timeout_handler:): Set timer_fired to YES.
	(runDialogAt:): Set timer_fired to NO.
	Handle click on close button as quit.

	* nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
	Add window_closed and button_values.  Add void as return value for
	add(Button|String|Split).  addButton takes int instead of Lisp_Object.
	Add process_dialog as new member.

907
2012-08-28  Eli Zaretskii  <eliz@gnu.org>
Chong Yidong's avatar
Chong Yidong committed
908

909 910 911 912 913 914 915
	* ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
	is not one of the heaps we manage.  (Bug#12242)

2012-08-28  Glenn Morris  <rgm@gnu.org>

	* eval.c (Fcalled_interactively_p): Doc fix.  (Bug#11747)

916 917 918
2012-08-28  Martin Rudalics  <rudalics@gmx.at>

	* window.c (Fset_window_configuration): Remove handling of
919 920
	auto-buffer-name window parameter.  Install revision of reverted
	fix.
921

922 923 924 925 926 927 928 929
2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>

	Do not allow to set major mode for a dead buffer.
	* buffer.c (Fset_buffer_major_mode): Signal an error
	if the buffer is dead.
	(Fother_buffer, other_buffer_safely): Remove redundant
	nested declaration.

930 931 932 933 934 935 936 937 938
2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>

	Always use set_buffer_if_live to restore original buffer at unwind.
	* buffer.h (record_unwind_current_buffer): New function.
	* bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
	* keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
	* undo.c, window.c: Adjust users.
	* buffer.c (set_buffer_if_live): Fix comment.

939 940 941 942 943 944 945 946 947 948 949 950 951
2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>

	Fix usage of set_buffer_internal.
	* buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
	* buffer.c (set_buffer_if_live): Use set_buffer_internal.
	* coding.c (decode_coding): Omit redundant test.
	* fileio.c (decide_coding_unwind): Likewise.
	* fns.c (secure_hash): Likewise.
	* insdel.c (modify_region): Likewise.
	* keyboard.c (command_loop_1): Likewise.
	* print.c (PRINTFINISH): Likewise.
	* xdisp.c (run_window_scroll_functions): Use set_buffer_internal.

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
2012-08-27  Paul Eggert  <eggert@cs.ucla.edu>

	* dispnew.c: Use bool for boolean.
	(frame_garbaged, display_completed, delayed_size_change)
	(fonts_changed_p, add_window_display_history)
	(add_frame_display_history, verify_row_hash)
	(adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
	(row_equal_p, realloc_glyph_pool)
	(allocate_matrices_for_frame_redisplay)
	(showing_window_margins_p)
	(adjust_frame_glyphs_for_frame_redisplay)
	(build_frame_matrix_from_leaf_window, make_current)
	(mirrored_line_dance, mirror_line_dance, update_frame)
	(update_window_tree, update_single_window)
	(check_current_matrix_flags, update_window, update_text_area)
	(update_window_line, set_window_update_flags, scrolling_window)
	(update_frame_1, scrolling, buffer_posn_from_coords)
	(do_pending_window_change, change_frame_size)
	(change_frame_size_1, sit_for):
	Use bool for boolean.
	(clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
	and remove last int (actually boolean) argument, which was always 0.
	All callers changed.
	* dispextern.h, frame.h, lisp.h: Reflect above API changes.
	* dispextern.h (struct composition_it): Use bool for boolean.
	(struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
	(struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
	* dired.c (file_name_completion):
	Use bool for boolean.  (This was missed in an earlier change.)

982 983 984 985 986
2012-08-27  Martin Rudalics  <rudalics@gmx.at>

	* window.c (Fset_window_configuration): Revert first part of
	last change.

987 988 989 990 991 992 993 994 995 996 997 998 999
2012-08-27  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.h (NSPanel): New class variable dialog_return.

	* nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
	dialog_return.
	(windowShouldClose:): Use stop instead of stopModalWithCode.
	(clicked:): Ditto, and also set dialog_return (Bug#12258).
	(timeout_handler:): Use stop instead of abortModal.  Send a dummy
	event.
	(runDialogAt:): Make ret Lisp_Object.  Set it from dialog_return when
	modal loop returns.

1000 1001
2012-08-27  Paul Eggert  <eggert@cs.ucla.edu>

1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018
	* composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
	* composite.c (find_composition, composition_gstring_p)
	(composition_reseat_it, find_automatic_composition):
	* data.c (let_shadows_buffer_binding_p)
	(let_shadows_global_binding_p, set_internal, make_blv)
	(Fmake_variable_buffer_local, Fmake_local_variable)
	(Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
	(cons_to_signed, arith_driver):
	* dbusbind.c (xd_in_read_queued_messages):
	* dired.c (directory_files_internal, file_name_completion):
	Use bool for booleans.
	* dired.c (file_name_completion):
	* process.h (fd_callback):
	Omit int (actually boolean) argument.  It wasn't being used.
	All uses changed.
	* composite.h, lisp.h: Reflect above API changes.

1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056
	* cmds.c, coding.c: Use bool for booleans.
	* cmds.c (move_point, Fself_insert_command):
	* coding.h (struct composition status, struct coding_system):
	* coding.c (detect_coding_utf_8, encode_coding_utf_8)
	(detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
	(emacs_mule_char, decode_coding_emacs_mule)
	(encode_coding_emacs_mule, detect_coding_iso_2022)
	(decode_coding_iso_2022, encode_invocation_designation)
	(encode_designation_at_bol, encode_coding_iso_2022)
	(detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
	(decode_coding_big5, encode_coding_sjis, encode_coding_big5)
	(detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
	(encode_coding_raw_text, detect_coding_charset)
	(decode_coding_charset, encode_coding_charset, detect_eol)
	(detect_coding, get_translation_table, produce_chars)
	(consume_chars, reused_workbuf_in_use)
	(make_conversion_work_buffer, code_conversion_save)
	(decode_coding_object, encode_coding_object)
	(detect_coding_system, char_encodable_p)
	(Funencodable_char_position, code_convert_region)
	(code_convert_string, code_convert_string_norecord)
	(Fset_coding_system_priority):
	* fileio.c (Finsert_file_contents):
	Use bool for booleans.
	* coding.h, lisp.h: Reflect above API changes.
	* coding.c: Remove unnecessary static function decls.
	(detect_coding): Use unsigned, not signed, to copy an unsigned field.
	(decode_coding, encode_coding, decode_coding_gap): Return 'void',
	not a boolean 'int', since callers never look at the return value.
	(ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
	* coding.h (decoding_buffer_size, encoding_buffer_size)
	(emacs_mule_string_char): Remove unused extern decls.
	(struct iso_2022_spec, struct coding_system):
	Use 'unsigned int : 1' for boolean fields, since there's more than one.
	(struct emacs_mule_spec): Remove unused field 'full_support'.
	All initializations removed.
	* cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.

Dmitry Antipov's avatar
Dmitry Antipov committed
1057 1058
2012-08-27  Dmitry Antipov  <dmantipov@yandex.ru>

1059
	Fix spare memory change (Bug#12286).
Dmitry Antipov's avatar
Dmitry Antipov committed
1060 1061 1062
	* alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
	(valid_lisp_object_p): Likewise.

1063 1064 1065 1066 1067 1068 1069
2012-08-27  Martin Rudalics  <rudalics@gmx.at>

	* window.c (Fset_window_configuration): Record any window's old
	buffer if it's replaced (see Bug#8789).  If the new current
	buffer doesn't appear in the selected window, go to its old
	point (Bug#12208).

1070 1071 1072 1073 1074 1075 1076 1077
2012-08-27  Dmitry Antipov  <dmantipov@yandex.ru>

	Special MEM_TYPE_SPARE to denote reserved memory.
	* alloc.c (enum mem_type): New memory type.
	(refill_memory_reserve): Use new type for spare memory.
	This prevents live_cons_p and live_string_p from incorrect
	detection of uninitialized objects from spare memory as live.

1078 1079
2012-08-26  Paul Eggert  <eggert@cs.ucla.edu>

Paul Eggert's avatar
Paul Eggert committed
1080 1081 1082
	Spelling fixes.
	* Makefile.in (.PHONY): versioclean -> versionclean.

Paul Eggert's avatar
Paul Eggert committed
1083 1084 1085 1086 1087 1088 1089 1090 1091 1092
	Remove unused external symbols.
	* data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
	* window.c (Qwindow_valid_p, decode_valid_window):
	Now static, not extern.
	* data.c (Qinterval): Remove; unused.
	(syms_of_data): Do not define 'interval'.
	* lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
	* window.h (decode_valid_window):
	Remove decls.

1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113
	* character.c, charset.c, chartab.c: Use bool for booleans.
	* character.c (lisp_string_width, string_count_byte8)
	(string_escape_byte8):
	* charset.c (charset_map_loaded, load_charset_map, read_hex):
	(load_charset_map_from_file, map_charset_chars)
	(Fdefine_charset_internal, define_charset_internal)
	(Fdeclare_equiv_charset, find_charsets_in_text)
	(Ffind_charset_region, char_charset, Fiso_charset):
	* chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
	(sub_char_table_set, sub_char_table_set_range)
	(char_table_set_range, optimize_sub_char_table)
	(map_sub_char_table):
	Use bool for boolean.
	* character.c (str_to_unibyte): Omit last boolean argument; it was
	always 0.  All callers changed.
	* character.h, charset.h: Adjust to match previous changes.
	* character.h (char_printable_p): Remove decl of nonexistent function.
	* charset.h (struct charset): Members code_linear_p, iso_chars_96,
	ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
	are all boolean, so make them single-bit bitfields.

1114 1115 1116 1117 1118 1119
	* lisp.h (ASET): Remove attempt to detect side effects.
	It was meant to be temporary and it often doesn't work,
	because when IDX has side effects the behavior of IDX==IDX
	is undefined.  See Stefan Monnier in
	<http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.

1120 1121 1122 1123 1124 1125
2012-08-26  Barry OReilly  <gundaetiapo@gmail.com>  (tiny change)

	* lisp.h (functionp): New function (extracted from Ffunctionp).
	(FUNCTIONP): Use it.
	* eval.c (Ffunctionp): Use it.

1126 1127
2012-08-25  Paul Eggert  <eggert@cs.ucla.edu>

1128 1129 1130 1131 1132 1133 1134 1135
	* xgselect.c (xg_select): Use auto storage for the GPollFD buffer
	as that's faster and simpler than static storage.  Don't bother
	with the g_main_context_query overhead if g_main_context_pending
	says no events are pending.
	(gfds, gfds_size): Remove these static vars.
	(xgselect_initialize): Remove; no longer needed.
	All uses and decls removed.

1136 1137 1138
	* emacs.c (fatal_error_signal_hook): Remove.
	All uses removed.  This leftover from old code was always 0.

1139 1140 1141 1142 1143 1144 1145
	* casefiddle.c, casetab.c, category.c: Use bool for boolean.
	* casefiddle.c (casify_object, casify_region):
	* casetab.c (set_case_table):
	* category.c, category.h (word_boundary_p):
	* category.h (CHAR_HAS_CATEGORY):
	Use bool for booleans, instead of int.

1146 1147 1148 1149
2012-08-25  Eli Zaretskii  <eliz@gnu.org>

	* makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.

1150 1151
2012-08-25  Paul Eggert  <eggert@cs.ucla.edu>

1152 1153 1154 1155 1156 1157
	On assertion failure, print backtrace if available.
	* alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
	(die) [ENABLE_CHECKING]: Print a backtrace if available.
	* Makefile.in (LIB_EXECINFO): New macro.
	(LIBES): Use it.

1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168
	* bytecode.c, callint.c, callproc.c: Use bool for boolean.
	* bytecode.c (exec_byte_code):
	* callint.c (check_mark, Fcall_interactively):
	* callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
	(getenv_internal, sync_process_alive, call_process_exited):
	* lisp.h (USE_SAFE_ALLOCA):
	Use bool for booleans, instead of int.
	* lisp.h, process.h: Adjust prototypes to match above changes.
	* callint.c (Fcall_interactively): Don't assume the mark's
	offset fits in 'int'.

1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186
2012-08-24  Paul Eggert  <eggert@cs.ucla.edu>

	* buffer.c, buffer.h: Use bool for boolean.
	* buffer.c (reset_buffer_local_variables)
	(buffer_lisp_local_variables, Fset_buffer_modified_p)
	(Frestore_buffer_modified_p, Fset_buffer_multibyte):
	(overlays_at, overlays_in, mouse_face_overlay_overlaps)
	(overlay_touches_p, overlay_strings, Foverlay_put)
	(report_overlay_modification, call_overlay_mod_hooks):
	(mmap_enlarge, mmap_set_vars):
	* buffer.h (buffer_has_overlays, uppercasep, lowercasep):
	Use bool for booleans, instead of int.
	* buffer.c (compact_buffer, mmap_free_1): Return void, not int,
	since the 1-or-0 return value is always ignored anyway.
	(mmap_initialized_p):
	* buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
	* buffer.h, lisp.h: Adjust prototypes to match above changes.

Paul Eggert's avatar
Paul Eggert committed
1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203
2012-08-23  Paul Eggert  <eggert@cs.ucla.edu>

	* bidi.c: Use bool for boolean.
	This is a bit more readable, and makes the text segment of bidi.o
	0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
	Presumably it's faster too.
	(bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
	Now bool.
	(bidi_cache_find_level_change, bidi_cache_iterator_state)
	(bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
	(bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
	(bidi_explicit_dir_char, bidi_level_of_next_char)
	(bidi_find_other_level_edge, bidi_move_to_visually_next):
	Use bool for booleans, instead of int.
	* dispextern.h (bidi_init_it, bidi_paragraph_init)
	(bidi_unshelve_cache): Adjust decls to match code.

1204 1205 1206 1207 1208
2012-08-23  Martin Rudalics  <rudalics@gmx.at>

	* keyboard.c (Fposn_at_x_y): Do not allow internal window as
	argument.

1209 1210 1211 1212 1213
2012-08-23  Paul Eggert  <eggert@cs.ucla.edu>

	* atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
	* atimer.h: Include <stdbool.h>.

1214 1215 1216 1217 1218 1219 1220 1221
2012-08-22  Dan Nicolaescu  <dann@gnu.org>

	* frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
	compile time tests instead of run time tests on systems that do
	not use them.
	(FRAME_MAC_P): Remove leftover from deleted code.
	* frame.c (syms_of_frame): Remove leftover from deleted code.

1222 1223 1224 1225
2012-08-22  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (insertText:): Don't clear modifiers if code is space.

1226 1227 1228 1229 1230 1231 1232
2012-08-22  Paul Eggert  <eggert@cs.ucla.edu>

	* fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
	Otherwise, the compiler complains about (A?B:C) where B is void
	and C is Lisp_Object.  This fixes an incompatibility with Sun C	5.12.
	(fontset_add): Return void, for FONTSET_ADD.

1233 1234
2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>

1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261
	* alloc.c: Use bool for booleans.
	(gc_in_progress, abort_on_gc)
	(setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
	(dont_register_blocks) [GC_MALLOC_CHECK]:
	(suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
	(check_string_bytes, make_specified_string, memory_full)
	(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_stack, valid_pointer_p, make_pure_string)
	(Fgarbage_collect, survives_gc_p, gc_sweep):
	Use bool for booleans, instead of int.
	(test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
	Remove unused local.
	* alloc.c (PURE_POINTER_P):
	* lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
	* editfns.c (Fformat):
	* fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
	(Fdo_auto_save):
	* fns.c (sweep_weak_table):
	* lisp.h (suppress_checking, push_message, survives_gc_p)
	(make_pure_string, gc_in_progress, abort_on_gc):
	* lread.c (readchar, read1):
	* print.c (Fprin1_to_string):
	* xdisp.c (push_message):
	Use bool for booleans affected directly or indirectly by
	alloc.c's changes.

1262 1263 1264 1265 1266 1267 1268 1269
	Make recently-introduced setters macros.
	* fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
	(set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
	(set_fontset_default, set_fontset_fallback): Rename from their
	upper-case counterparts, and make them functions rather than macros.
	This is more consistent with the other recently-introduced setters.
	These don't need to be inline, since they're local.

1270 1271 1272 1273 1274
2012-08-21  Jan Djärv  <jan.h.d@swipnet.se>

	* nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
	the loop (Bug#12247).

1275 1276 1277 1278 1279 1280 1281 1282
2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>

	* lisp.h (vcopy): Use memcpy rather than our own loop.
	This fixes a performance regression introduced by the recent
	addition of vcopy.  This means 'vcopy' will need to be modified
	for a copying collector, but that's OK.  Also, tighten the
	checking in the assertion.

1283 1284 1285 1286 1287
2012-08-21  Eli Zaretskii  <eliz@gnu.org>

	* w32uniscribe.c (uniscribe_shape): Fix producing gstring
	components for RTL text (Bug#11860).  Adjust X-OFFSET of each
	non-base glyph for the width of the base character, according to
1288 1289
	what x_draw_composite_glyph_string_foreground expects.
	Generate WADJUST value according to composition_gstring_width's
1290 1291 1292
	expectations, to produce correct width of the composed character.
	Reverse the sign of the DU offset produced by ScriptPlace.

1293 1294 1295 1296
2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>

	* dbusbind.c (xd_remove_watch): Do not assume C99 comments.

1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310
2012-08-21  Dmitry Antipov  <dmantipov@yandex.ru>

	Avoid direct writes to contents member of struct Lisp_Vector.
	* lisp.h (vcopy): New function to copy data into vector.
	* dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
	* fns.c (Ffillarray): Use ASET.
	* keyboard.c (timer_check_2): Use AREF and ASET.
	(append_tool_bar_item, Frecent_keys): Use vcopy.
	* lread.c (read_vector): Use ASET.
	* msdos.c (Frecent_doskeys): Use vcopy.
	* xface.c (Finternal_copy_lisp_face): Use vcopy.
	(Finternal_merge_in_global_face): Use ASET and vcopy.
	* xfont.c (xfont_list_pattern): Likewise.

1311 1312 1313 1314 1315 1316 1317
2012-08-21  Martin Rudalics  <rudalics@gmx.at>

	* window.c (Fwindow_point): For the selected window always return
	the position of its buffer's point.
	(Fset_window_point): For the selected window always go in its
	buffer to the specified position.

Dmitry Antipov's avatar
Dmitry Antipov committed
1318 1319 1320 1321 1322 1323 1324 1325
2012-08-21  Dmitry Antipov  <dmantipov@yandex.ru>

	Setter macros for fontsets.
	* fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
	(SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
	(SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
	Adjust users.

1326 1327 1328 1329 1330
2012-08-20  Glenn Morris  <rgm@gnu.org>

	* Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
	Don't assume that `ln -f' works.

1331 1332 1333 1334 1335 1336 1337
2012-08-20  Eli Zaretskii  <eliz@gnu.org>

	* .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
	and later about non-assignments with no effect.  See discussion at
	http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
	details.

1338 1339 1340 1341 1342 1343
2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>

	Inline setter functions for Lisp_Objects slots of struct specbinding.
	* eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
	Adjust users.

1344 1345 1346 1347 1348
2012-08-20  Martin Rudalics  <rudalics@gmx.at>

	* window.c (select_window): Always make selected window's buffer
	current.

1349 1350 1351 1352 1353 1354 1355
2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>

	Use AREF and ASET for docstrings of category tables.
	* category.h (CATEGORY_DOCSTRING): Use AREF.
	(SET_CATEGORY_DOCSTRING): Use ASET.
	* category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.

1356 1357 1358 1359 1360 1361 1362 1363 1364
2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>

	Inline setter functions for hash table members.
	* lisp.h (set_hash_key, set_hash_value, set_hash_next)
	(set_hash_hash, set_hash_index): Rename with _slot suffix.
	(set_hash_key_and_value, set_hash_index, set_hash_next)
	(set_hash_hash): New functions.
	* charset.c, fns.c: Adjust users.

1365 1366 1367 1368 1369 1370 1371 1372
2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>

	Inline getter and setter functions for per-buffer values.
	* buffer.h (per_buffer_default, set_per_buffer_default)
	(per_buffer_value, set_per_buffer_value): New functions.
	(PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
	* buffer.c, data.c: Adjust users.

1373 1374 1375 1376
2012-08-20  Juanma Barranquero  <lekktu@gmail.com>

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

1377 1378
2012-08-19  Paul Eggert  <eggert@cs.ucla.edu>

Paul Eggert's avatar
Paul Eggert committed
1379
	Rely on <config.h> + <unistd.h> to declare 'environ',
1380 1381
	as gnulib does this if the system doesn't.
	* callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
1382 1383
	Remove declaration.  MS-Windows declares it on stdlib.h which is
	included by conf_post.h.
1384 1385 1386 1387
	* emacs.c (environ) [DOUG_LEA_MALLOC]:
	* vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
	* vm-limit.c: Include <unistd.h>, for 'environ'.

1388 1389 1390
	* unexaix.c, unexcoff.c: Include "mem-limits.h".
	(start_of_data): Remove decl; mem-limits.h provides it.

1391 1392 1393
	* xdisp.c (handle_invisible_prop): Make it a bit faster
	and avoid a gcc -Wmaybe-uninitialized diagnostic.

1394 1395 1396 1397 1398
2012-08-19  Chong Yidong  <cyd@gnu.org>

	* xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
	ends (Bug#3874).

1399 1400
2012-08-19  Andreas Schwab  <schwab@linux-m68k.org>

1401 1402 1403
	* .gdbinit: Use call instead of set when calling a function in the
	inferior.

1404 1405 1406
	* data.c (set_internal): Don't use set_blv_found.
	(Fkill_local_variable): Likewise.

1407 1408 1409 1410 1411 1412
2012-08-18  Alp Aker  <alp.tekin.aker@gmail.com>

	* nsfont.m (ns_ascii_average_width): Ensure the string
	ascii_printable is initialized with a null-terminated character
	array.  Otherwise, it can contain undesired extra characters.

1413 1414 1415 1416 1417 1418 1419 1420 1421
2012-08-18  Paul Eggert  <eggert@cs.ucla.edu>

	port new setting code to Sun C 5.8 2005/10/13
	* chartab.c, lisp.h (char_table_set, char_table_set_range):
	Return void, not Lisp_Object.  Otherwise, the compiler
	complains about (A?B:C) where B is void and C is Lisp_Object
	when compiling CHAR_TABLE_SET, due to the recent change to
	the API of sub_char_table_set_contents.

1422 1423 1424 1425 1426
2012-08-18  Chong Yidong  <cyd@gnu.org>

	* xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
	for the string case (Bug#3874).

Paul Eggert's avatar
Paul Eggert committed
1427 1428
2012-08-18  Paul Eggert  <eggert@cs.ucla.edu>

Paul Eggert's avatar
Paul Eggert committed
1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461
	* buffer.h (BSET): Remove (Bug#12215).
	Replace all uses with calls to new setter functions.
	(bset_bidi_paragraph_direction, bset_case_canon_table)
	(bset_case_eqv_table, bset_directory, bset_display_count)
	(bset_display_time, bset_downcase_table)
	(bset_enable_multibyte_characters, bset_filename, bset_keymap)
	(bset_last_selected_window, bset_local_var_alist)
	(bset_mark_active, bset_point_before_scroll, bset_read_only)
	(bset_truncate_lines, bset_undo_list, bset_upcase_table)
	(bset_width_table):
	* 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):
	* category.c (bset_category_table):
	* syntax.c (bset_syntax_table):
	New setter functions.

Paul Eggert's avatar
Paul Eggert committed
1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476
	* process.h (PSET): Remove (Bug#12215).
	Replace all uses with calls to new setter functions.
	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
	(PROCESS_INLINE): New macro.
	(pset_childp): New setter function.
	(pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
	* process.c (PROCESS_INLINE):
	Define to EXTERN_INLINE, so that the corresponding functions
	are compiled into code.
	(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): New setter functions.

Paul Eggert's avatar
Paul Eggert committed
1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500
	* window.h (WSET): Remove (Bug#12215).
	Replace all uses with calls to new setter functions.
	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
	(WINDOW_INLINE): New macro.
	(wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
	(wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
	(wset_total_lines, wset_vertical_scroll_bar)
	(wset_window_end_pos, wset_window_end_valid)
	(wset_window_end_vpos): New setter functions.
	* window.c (WINDOW_INLINE):
	Define to EXTERN_INLINE, so that the corresponding functions
	are compiled into code.
	(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_next_buffers)
	(wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
	(wset_prev_buffers, 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):
	New setter functions.

Paul Eggert's avatar
Paul Eggert committed
1501 1502 1503 1504 1505 1506 1507 1508 1509 1510
	* termhooks.h (TSET): Remove (Bug#12215).
	Replace all uses with calls to new setter functions.
	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
	(TERMHOOKS_INLINE): New macro.
	(tset_charset_list, tset_selection_alist): New setter functions.
	* terminal.c (TERMHOOKS_INLINE):
	Define to EXTERN_INLINE, so that the corresponding functions
	are compiled into code.
	(tset_param_alist): New setter function.

Paul Eggert's avatar
Paul Eggert committed
1511 1512
2012-08-17  Paul Eggert  <eggert@cs.ucla.edu>

Paul Eggert's avatar
Paul Eggert committed
1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529
	* keyboard.h (KSET): Remove (Bug#12215).
	Replace all uses with calls to new setter functions.
	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
	(KEYBOARD_INLINE): New macro.
	(kset_default_minibuffer_frame, kset_defining_kbd_macro)
	(kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
	(kset_prefix_arg, kset_system_key_alist, kset_window_system):
	New setter functions.
	* keyboard.c (KEYBOARD_INLINE):
	Define to EXTERN_INLINE, so that the corresponding functions
	are compiled into code.
	(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): New setter functions.

1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545
	* frame.h (FSET): Remove (Bug#12215).
	Replace all uses with calls to new setter functions.
	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
	(FRAME_INLINE): New macro.
	(fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
	(fset_current_tool_bar_string, fset_desired_tool_bar_string)
	(fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
	(fset_menu_bar_vector, fset_menu_bar_window, fset_name)
	(fset_param_alist, fset_root_window, fset_scroll_bars)
	(fset_selected_window, fset_title, fset_tool_bar_items)
	(fset_tool_bar_position, fset_tool_bar_window): New functions.
	* frame.c (FRAME_INLINE):
	Define to EXTERN_INLINE, so that the corresponding functions
	are compiled into code.
	(fset_buffer_predicate, fset_minibuffer_window): New setter functions.

1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567
	A few more naming-convention fixes for getters and setters.
	* buffer.c (set_buffer_overlays_before): Move here from buffer.h,
	and rename from buffer_overlays_set_before.
	(set_buffer_overlays_after): Move here from buffer.h, and rename
	from buffer_overlays_set_after.
	* buffer.h (buffer_intervals): Rename from buffer_get_intervals.
	All uses changed.
	(set_buffer_intervals): Rename from buffer_set_intervals.
	* intervals.c (set_interval_object): Move here from intervals.h,
	and rename from interval_set_object.
	(set_interval_left): Move here from intervals.h, and rename from
	interval_set_left.
	(set_interval_right): Move here from intervals.h, and rename from
	interval_set_right.
	(copy_interval_parent): Move here from intervals.h, and rename from
	interval_copy_parent.
	* intervals.h (set_interval_parent): Rename from interval_set_parent.
	(set_interval_plist): Rename from interval_set_plist.
	Return void, not Lisp_Object, since no caller uses the result.
	* lisp.h (string_intervals): Rename from string_get_intervals.
	(set_string_intervals): Rename from string_set_intervals.

1568 1569
	* lisp.h (set_char_table_extras): Rename from char_table_set_extras.
	(set_char_table_contents): Rename from char_table_set_contents.
Paul Eggert's avatar
Paul Eggert committed
1570
	(set_sub_char_table_contents): Rename from sub_char_table_set_contents.
1571 1572 1573
	All uses changed.  See the end of
	<http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.

Paul Eggert's avatar
Paul Eggert committed
1574 1575 1576 1577 1578
	* lisp.h (CSET): Remove (Bug#12215).
	(set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
	(set_char_table_purpose): New functions,
	replacing CSET.  All uses changed.  For example, replace
	"CSET (XCHAR_TABLE (char_table), parent, parent);" with
Paul Eggert's avatar
Paul Eggert committed
1579
	"set_char_table_parent (char_table, parent);".
Paul Eggert's avatar
Paul Eggert committed
1580 1581 1582
	The old version was confusing because it used the same name
	'parent' for two different things.

1583 1584 1585 1586 1587 1588 1589 1590
2012-08-17  Dmitry Antipov  <dmantipov@yandex.ru>

	Functions to get and set Lisp_Object fields of buffer-local variables.
	* lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
	(set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
	(BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
	* data.c, eval.c, frame.c: Adjust users.

1591 1592 1593 1594 1595 1596 1597
2012-08-17  Chong Yidong  <cyd@gnu.org>

	* xfaces.c (merge_face_vectors): If the target font specfies a
	font spec, make the font's attributes take precedence over
	directly-specified attributes.
	(merge_face_ref): Recognize :font.

1598 1599 1600 1601 1602 1603 1604
2012-08-17  Dmitry Antipov  <dmantipov@yandex.ru>

	Do not use memcpy for copying intervals.
	* intervals.c (reproduce_interval): New function.
	(reproduce_tree, reproduce_tree_obj): Use it.
	(reproduce_tree_obj): Remove prototype.

1605 1606 1607 1608
2012-08-17  Paul Eggert  <eggert@cs.ucla.edu>

	* lisp.h (duration_to_sec_usec): Remove unused decl.

1609 1610 1611 1612 1613
2012-08-17  Alp Aker  <alp.tekin.aker@gmail.com>

	* nsfont.m (ns_ascii_average_width): Send initWithFormat selector
	to an allocated instance of NSString, not to the class itself.

1614 1615 1616 1617 1618 1619 1620
2012-08-17  Juanma Barranquero  <lekktu@gmail.com>

	* makefile.w32-in (C_CTYPE_H): New macro.
	(LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
	($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
	($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.

1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648
2012-08-16  Paul Eggert  <eggert@cs.ucla.edu>

	Use ASCII tests for character types.
	* category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
	* xfns.c, xterm.c:
	Don't include <ctype.h>; was not needed.
	* charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
	* sysdep.c, xfaces.c:
	Include <c-ctype.h> instead of <ctype.h>.
	* nsterm.m: Include <c-ctype.h>.
	* charset.c (read_hex):
	* doc.c (Fsnarf_documentation):
	* fileio.c (IS_DRIVE) [WINDOWSNT]:
	(DRIVE_LETTER) [DOS_NT]:
	(Ffile_name_directory, Fexpand_file_name)
	(Fsubstitute_in_file_name):
	* font.c (font_parse_xlfd, font_parse_fcname):
	* frame.c (x_set_font_backend):
	* gtkutil.c (xg_get_font):
	* image.c (xbm_scan, xpm_scan, pbm_scan_number):
	* nsimage.m (hexchar):
	* nsterm.m (ns_xlfd_to_fontname):
	* sysdep.c (system_process_attributes):
	* xfaces.c (hash_string_case_insensitive):
	Use C-locale tests instead of locale-specific tests for character
	types, since we want the ASCII interpretation here, not the
	interpretation suitable for whatever happens to be the current locale.

1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686
2012-08-16  Martin Rudalics  <rudalics@gmx.at>

	Consistently check windows for validity/liveness
	(Bug#11984, Bug#12025, Bug#12026).
	* lisp.h (CHECK_VALID_WINDOW): New macro.
	* window.c (decode_window): Rename to decode_live_window.
	(decode_valid_window, Fwindow_valid_p): New functions.
	(Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
	(Fframe_first_window, Fframe_selected_window, Fwindow_parent)
	(Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
	(Fwindow_prev_sibling, Fwindow_combination_limit)
	(Fset_window_combination_limit, Fwindow_use_time)
	(Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
	(Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
	(Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
	(Fwindow_hscroll, Fset_window_hscroll)
	(Fwindow_redisplay_end_trigger)
	(Fset_window_redisplay_end_trigger, Fwindow_edges)
	(Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
	(Fwindow_inside_edges, Fwindow_inside_pixel_edges)
	(Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
	(Fwindow_end, Fset_window_point, Fset_window_start)
	(Fpos_visible_in_window_p, Fwindow_line_height)
	(Fwindow_dedicated_p, Fset_window_dedicated_p)
	(Fwindow_prev_buffers, Fset_window_prev_buffers)
	(Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
	(Fset_window_parameter, Fwindow_display_table)
	(Fset_window_display_table, Fdelete_other_windows_internal)
	(Fset_window_buffer, Fset_window_new_total)
	(Fset_window_new_normal, Fdelete_window_internal)
	(Fwindow_text_height, Fset_window_margins, Fwindow_margins)
	(Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
	(Fwindow_scroll_bars): Check whether argument window is a valid or
	live window.  Update doc-strings.
	(syms_of_window): New symbol Qwindow_valid_p.
	* keyboard.c (Fposn_at_x_y): Check whether argument
	frame_or_window denotes a valid window.

1687 1688 1689 1690 1691 1692
2012-08-16  Dmitry Antipov  <dmantipov@yandex.ru>

	Fix previous char table change.
	* lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
	* chartab.c (optimize_sub_char_table): Likewise.

1693 1694
2012-08-16  Chong Yidong  <cyd@gnu.org>

1695 1696
	* gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).

1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707
	* xfont.c (xfont_open):
	* xftfont.c (xftfont_open): Set the font's max_width field.

	* nsfont.m (nsfont_open): Similar to the Xft backend, set
	min_width to space_width and average_width to the average over
	printable ASCII characters.
	(ns_char_width): Code cleanup.
	(ns_ascii_average_width): New utility function.

	* font.h (struct font): Update comments.

1708 1709
2012-08-16  Dmitry Antipov  <dmantipov@yandex.ru>

1710
	Simple interface to set Lisp_Object fields of character tables.
1711 1712 1713 1714 1715 1716
	* lisp.h (CSET): New macro.
	(char_table_set_extras, char_table_set_contents)
	(sub_char_table_set_contents): New function.
	* casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
	* syntax.c: Adjust users.

1717 1718 1719 1720 1721
2012-08-16  Stefan Monnier  <monnier@iro.umontreal.ca>

	* eval.c (eval_sub): Bind lexical-binding.
	* lread.c (Qlexical_binding): Make non-static.

1722 1723
2012-08-15  Jan Djärv  <jan.h.d@swipnet.se>

1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755
	* nsmenu.m (popupSession): Remove.
	(pop_down_menu): Remove endModalSession.
	(timeout_handler:): New method.
	(runDialogAt:): Get next timeout.  Start a NSTimer with that timeout.
	Call runModalForWindow.  Check timer_fired when it returns.
	If not set, cancel timer and break out of loop.
	Otherwise loop again, with a new timeout.

	* nsterm.m: Include fcntl.h if present.
	(fd_entry, t_readfds, inNsSelect): Remove.
	(select_writefds, select_valid, select_timeout, selfds)
	(select_mutex, apploopnr): Add.
	(EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
	Otherwise call kbd_buffer_store_event.
	(ns_send_appdefined): Remove release of fd_entry.
	(ns_read_socket): Always send appdefined.  Remove inNsSelect check.
	Increment and decrement apploopnr.
	(ns_select): If no file descriptors, just do a NSTimer.
	Otherwise copy read/write masks and start select thread (fd_handler).
	Start main loop and wait for application defined event.
	Inform select thread to stop selecting after main loop is exited.
	(ns_term_init): Create selfds pipe and set non-blocking.
	Initialize select_mutex. Start the select thread (fd_handler).
	(fd_handler:): Loop forever, wait for info from the main thread
	to either start or stop selecting.  When select returns, send
	and appdefined event.
	(sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
	If not call kbd_buffer_store_event.

	* nsterm.h (EmacsApp): fd_handler takes id argument.
	(EmacsDialogPanel): Add timer_fired and timeout_handler.

1756 1757
	* gtkutil.c (xg_mark_data): Use FRAME_X_P.

1758 1759 1760 1761 1762 1763
2012-08-15  Eli Zaretskii  <eliz@gnu.org>

	* region-cache.c (move_cache_gap): Update gap_len using the actual
	growth of the boundaries array.  Do not change cache_len.
	(Bug#12196)

1764 1765 1766 1767
2012-08-15  Dmitry Antipov  <dmantipov@yandex.ru>

	Generalize and cleanup font subsystem checks.
	* font.h (FONT_DEBUG, font_assert): Remove.
1768 1769
	* font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
	Change font_assert to eassert.  Use eassert where appropriate.
1770

1771 1772 1773 1774
2012-08-15  Dmitry Antipov  <dmantipov@yandex.ru>

	* gtkutil.c (xg_get_font): Use pango_units_to_double.

1775 1776
2012-08-15  Chong Yidong  <cyd@gnu.org>

1777 1778 1779 1780
	* gtkutil.c (xg_get_font): Rename from xg_get_font_name.
	When using the new font chooser, use gtk_font_chooser_get_font_desc to
	extract the font descriptor instead of just the font name.
	In that case, return a font spec instead of a string.
1781 1782 1783 1784 1785 1786 1787
	(x_last_font_name): Move to this file from xfns.c.

	* xfns.c (Fx_select_font): The return value can also be a font
	spec.  Move x_last_font_name management to gtkutil.c.

	* xfaces.c: Make font weight and style symbols non-static.

1788 1789 1790 1791 1792
2012-08-15  Stefan Monnier  <monnier@iro.umontreal.ca>

	* minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
	(bug#12117).

1793 1794 1795 1796
2012-08-14  Stefan Monnier  <monnier@iro.umontreal.ca>

	* alloc.c (Fgarbage_collect): Use plural form consistently.

1797 1798 1799 1800 1801 1802
2012-08-14  Eli Zaretskii  <eliz@gnu.org>

	* keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
	iteration through the command loop.  Fixes a problem whereby mouse
	movements are ignored until the first mouse click.

1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813
2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>

	Use bool, not int, for Lisp booleans.
	This is more natural, and on my platform (GCC 4.7.1 x86-64) it
	makes Emacs a bit smaller and presumably a bit faster.
	* lisp.h: Include <stdbool.h>.
	(struct Lisp_Boolfwd, defvar_bool):
	* lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
	* regex.c [!emacs]: Include <stdbool.h>.
	(false, true): Remove; <stdbool.h> does this for us now.

Chong Yidong's avatar
Chong Yidong committed
1814 1815
2012-08-14  Chong Yidong  <cyd@gnu.org>

Chong Yidong's avatar
Chong Yidong committed
1816 1817 1818 1819
	* character.c (Fcharacterp): Doc fix (Bug#12076).

	* data.c (Findirect_variable): Doc fix (Bug#11040).

Chong Yidong's avatar
Chong Yidong committed
1820 1821 1822
	* chartab.c (Fmap_char_table): Doc fix (Bug#12061).

	* editfns.c (Fformat): Doc fix (Bug#12059).
Chong Yidong's avatar
Chong Yidong committed
1823
	(Fsave_current_buffer): Doc fix (Bug#11542).
Chong Yidong's avatar
Chong Yidong committed
1824

1825 1826 1827 1828 1829
2012-08-14  Barry OReilly  <gundaetiapo@gmail.com>  (tiny change)

	* keyboard.c (access_keymap_keyremap): Accept anonymous functions
	(bug#12022).

1830 1831 1832 1833 1834 1835 1836 1837 1838
2012-08-14  Martin Rudalics  <rudalics@gmx.at>

	* frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
	(delete_frame, Fmake_frame_invisible, Ficonify_frame):
	* minibuf.c (choose_minibuf_frame, read_minibuf):
	* w32fns.c (x_create_tip_frame):
	* xfns.c (x_create_tip_frame): Call set_window_buffer instead of
	Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).

1839 1840 1841 1842
2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>

	* intervals.c (offset_intervals): Remove obsolete comment.

1843 1844 1845 1846
2012-08-14  Andreas Schwab  <schwab@linux-m68k.org>

	* gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.

1847 1848 1849 1850 1851
2012-08-14  Gergely Risko  <gergely@risko.hu>

	* coding.c (decode_coding): Record buffer modification before
	disabling undo_list (Bug#11773).

1852 1853 1854 1855 1856 1857 1858 1859 1860
2012-08-14  Dmitry Antipov  <dmantipov@yandex.ru>

	Revert and cleanup some recent overlay changes.
	* buffer.h (enum overlay_type): Remove.
	(buffer_get_overlays, buffer_set_overlays): Likewise.
	(buffer_set_overlays_before, buffer_set_overlays_after):
	New function.  Adjust users.
	(unchain_both): Add eassert.

1861 1862 1863 1864
2012-08-14  Dmitry Antipov  <dmantipov@yandex.ru>

	* gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.

1865 1866 1867 1868
2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>

	* gtkutil.c (xg_mark_data): Don't assume C99.

1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880
2012-08-13  Jan Djärv  <jan.h.d@swipnet.se>

	* gtkutil.c (xg_frame_tb_info): New struct.
	(TB_INFO_KEY): New define.
	(xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
	(xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
	(xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
	if not present.
	(update_frame_tool_bar): Return early if data in xg_frame_tb_info
	is up to date. Otherwise store new data.
	(free_frame_tool_bar): Free xg_frame_tb_info if present.

1881 1882 1883 1884 1885 1886 1887 1888
2012-08-13  Dmitry Antipov  <dmantipov@yandex.ru>

	Use KSET for write access to Lisp_Object members of struct kboard.
	* keyboard.h (KSET): New macro.
	* callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
	* msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
	* xterm.c: Adjust users.

1889 1890 1891 1892 1893 1894 1895 1896 1897
2012-08-13  Dmitry Antipov  <dmantipov@yandex.ru>

	Use BSET for write access to Lisp_Object members of struct buffer.
	* buffer.h (BSET): New macro.
	* buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
	* fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
	* minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
	* window.c, xdisp.c, xfns.c: Adjust users.

1898 1899 1900 1901
2012-08-11  BT Templeton  <bpt@hcoop.net>  (tiny change)

	* lread.c (syms_of_lread): Initialize Vlexical_binding.

1902 1903
2012-08-11  Jan Djärv  <jan.h.d@swipnet.se>

1904 1905 1906 1907 1908
	* nsterm.m (not_in_argv): New function.
	(application:openFile,	application:openTempFile:):
	(application:openFileWithoutUI:, application:openFiles:): Open file
	if not_in_argv returns non-zero (bug#12171).

1909
	* gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
1910 1911
	(gtk_font_chooser_set_font, gtk_font_chooser_get_font):
	Define for Gtk+ versions less than 3.2.
1912 1913 1914
	(xg_get_font_name): Use those functions/macros here.
	Reported by Frans Oilinki <moilinki@gmail.com>.

Glenn Morris's avatar
Glenn Morris committed
1915
2012-08-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
1916 1917 1918 1919

	* unexmacosx.c (copy_data_segment): Copy initialized data in
	statically linked libraries from input file rather than memory.

1920 1921 1922 1923
	* unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
	LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
	(dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.

1924 1925 1926 1927 1928
2012-08-10  Glenn Morris  <rgm@gnu.org>

	* conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
	* lisp.h (IF_LINT, lint_assume): Move to conf_post.h.

1929 1930 1931 1932 1933 1934
2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>

	Fix last change to allow compilation with low optimization levels.
	* intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
	Reported by Jan Djärv <jan.h.d@swipnet.se>.

1935 1936 1937 1938 1939 1940
2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>

	Use common inline syntax in intervals.h.
	* intervals.h (INTERVALS_INLINE): New macro.
	Change all users from LISP_INLINE.

1941 1942 1943 1944 1945 1946 1947 1948 1949
2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>

	Define Qnone once for all platforms.
	* frame.c (Qnone): Define here.
	(syms_of_frame): DEFSYM it.
	* lisp.h (Qnone): New declaration.
	* nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
	* xfns.c: Remove duplication.  Adjust users.

1950 1951 1952 1953 1954 1955
2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>

	Remove unused macros from intervals.h.
	* intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
	* intervals.c: Adjust comment.