* src/process.c: Export default filters and sentinels to Elisp.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
1aa8d505
SM
12013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * process.c: Export default filters and sentinels to Elisp.
4 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
5 New constants.
6 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
7 (Fset_process_sentinel, Fformat_network_address):
8 Default to them instead of nil.
9 (server_accept_connection): Sentinels can't be nil any more.
10 (read_and_dispose_of_process_output): New function, extracted from
11 read_process_output.
12 (read_process_output): Use it; filters can't be nil.
13 (Finternal_default_process_filter): New function, extracted from
14 read_process_output.
15 (exec_sentinel_unwind): Remove function.
16 (exec_sentinel): Don't zilch sentinel while running.
17 (status_notify): Sentinels can't be nil.
18 (Finternal_default_process_sentinel): New function extracted from
19 status_notify.
20 (setup_process_coding_systems): Default filter is not nil any more.
21 (syms_of_process): Export new Elisp functions and initialize
22 new constants.
23 * lisp.h (make_lisp_proc): New function.
24
5ac2eb34
SM
252013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
26
27 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
28
eda9c7d7
EZ
292013-05-14 Eli Zaretskii <eliz@gnu.org>
30
31 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
5ac2eb34
SM
32 unless we know that the window w is a leaf window.
33 Another attempt at solving bug#14062.
eda9c7d7 34
8fdeaad5
JD
352013-05-14 Jan Djärv <jan.h.d@swipnet.se>
36
37 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
38 fdesc (Bug#14375).
39
44aa9ee6
PE
402013-05-12 Paul Eggert <eggert@cs.ucla.edu>
41
42 * image.c (gif_load): Check that subimages fit (Bug#14345).
43
759fd763
SM
442013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
45
46 * lread.c (skip_dyn_eof): New function.
47 (read1): Use it to skip the end of a file in response to #@00.
48
49 * doc.c (get_doc_string): Slightly relax the sanity checking.
50
4465bfb4
JD
512013-05-09 Jan Djärv <jan.h.d@swipnet.se>
52
53 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
54 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
55 (MonitorInfo): New struct.
56 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
57 (Fns_display_monitor_attributes_list): New functions.
58 (display-usable-bounds): Remove.
59 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
60 Qsource.
61
7583e2a0
PE
622013-05-09 Paul Eggert <eggert@cs.ucla.edu>
63
64 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
65 (GTK_CHECK_VERSION): New macro, if not already defined.
66 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
67 replaced by GTK_CHECK_VERSION.
68
ad75d77e
PE
692013-05-08 Paul Eggert <eggert@cs.ucla.edu>
70
71 * xterm.h (GTK_PREREQ): New macro.
72 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
73 to use this macro instead, for consistency and clarity.
74
07525f77
EZ
752013-05-08 Eli Zaretskii <eliz@gnu.org>
76
77 * xdisp.c (row_for_charpos_p): New function, with code of
78 cursor_row_p, but accepts an additional argument CHARPOS instead
79 of using a hardcoded PT.
80 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
81 (row_containing_pos): Call row_for_charpos_p instead of partially
82 doing the same. Fixes cursor positioning under longlines-mode
83 when longlines-show-effect includes more than one newline, when
84 moving the cursor vertically up.
85
d901fc8d
JB
862013-05-08 Juanma Barranquero <lekktu@gmail.com>
87
88 * makefile.w32-in (ACL_H): New macro.
89 ($(BLD)/fileio.$(O)): Update dependencies.
90
f269bc61
PE
912013-05-07 Paul Eggert <eggert@cs.ucla.edu>
92
ffdc270a
PE
93 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
94 * Makefile.in (LIB_ACL): New macro.
95 (LIBACL_LIBS): Remove.
96 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
97 * fileio.c: Include <acl.h>.
98 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
99 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
100 !acl_errno_valid.
101 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
102 it ourselves.
103
f269bc61
PE
104 * unexelf.c: Don't assume ElfW (Half) fits in int.
105 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
106 when dealing with ElfW (Half) values, since they can exceed 2**31
107 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
108 (entry_address): Omit unused NUM arg. All uses changed.
109
a261c53e
JL
1102013-05-07 Juri Linkov <juri@jurta.org>
111
112 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
113 to the string converted from number with `Fnumber_to_string'.
114 (Bug#14254)
115
2b66427d
PE
1162013-05-07 Paul Eggert <eggert@cs.ucla.edu>
117
118 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
119 This fixes a problem introduced by my previous change.
120
15acfe41
GM
1212013-05-07 Glenn Morris <rgm@gnu.org>
122
123 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
124
5ea03bf5
JD
1252013-05-07 Jan Djärv <jan.h.d@swipnet.se>
126
127 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
128
e0c9d565
PE
1292013-05-07 Paul Eggert <eggert@cs.ucla.edu>
130
131 Static checking by GCC 4.8.0.
132 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
133 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
134 (x_get_monitor_attributes_fallback)
135 (x_get_monitor_attributes_xinerama)
136 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
137 Define only if USE_GTK.
138 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
139 (x_get_monitor_attributes_fallback): Omit unused locals.
140 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
141 Use double, not float, to avoid mixed-mode floating point arithmetic.
142
4e3f9230
YM
1432013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
144 Jan Djärv <jan.h.d@swipnet.se>
145
146 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
147 (XINERAMA_CFLAGS): New macros.
148 (ALL_CFLAGS, LIBES): Use them.
149
150 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
151 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
152 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
153 (syms_of_xfns): DEFSYM them.
154 (struct MonitorInfo): New struct.
155 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
156 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
157 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
158 (x_get_monitor_attributes_xinerama): New functions.
159 (Fx_display_monitor_attributes_list): New primitive.
160 (syms_of_xfns): Defsubr it.
161
162 * xterm.h (x_display_info): Add Xatom_net_workarea and
163 Xatom_net_current_desktop.
164
165 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
166 and dpyinfo->Xatom_net_current_desktop.
167
05839b6a
EZ
1682013-05-06 Eli Zaretskii <eliz@gnu.org>
169
170 * xdisp.c (pos_visible_p): Use the special code for finding the
171 beginning of a display property or overlay for any "replacing"
172 display property, not just for display strings. This solves
173 incorrect reporting of position by posn-at-point. (Bug#14241)
174
dc4a2ee0
PE
1752013-05-06 Paul Eggert <eggert@cs.ucla.edu>
176
5ee94506
PE
177 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
178 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
179 Verify that ElfW (Half) fits in int.
180 (fatal): Use same signature as lisp.h.
181 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
182 configure and build with -DUNEXELF_DEBUG without worrying about
183 other modules that use DEBUG.
184 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
185 possibly-wide integers now uses it instead of plain fprintf.
186 (entry_address): New function, which avoids problems with 32-bit
187 overflow on 64-bit hosts.
188 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
189 (round_up): Don't assume the remainder fits in int.
190 (find_section): Use bool for boolean. Simplify debug code.
191 (unexec): Don't assume file sizes fit in int or size_t.
192 Omit unnecessary trailing newline in 'fatal' format.
193 Use strerror rather than outputting decimal error number.
194 Remove unused code when emacs is not defined;
195 this file relies on Emacs now.
196 Don't assume e_phnum and e_shnum are positive.
197
dc4a2ee0
PE
198 * regex.c: Fix problems when DEBUG is defined.
199 (extract_number, extract_number_and_incr): Define regardless of
200 whether DEBUG is defined; that's simpler and makes the code less
201 likely to go stale in the normal case when DEBUG is not defined.
202 Return int rather than taking an int * arg. All callers changed.
203 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
204 Remove, replacing with ...
205 (DEBUG_PRINT): New macro. All callers changed.
206 (DEBUG_COMPILES_ARGUMENTS): New macro.
207 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
208 (print_compiled_pattern, print_double_string) [DEBUG]:
209 Use prototype rather than old-style definition.
210 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
211 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
212 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
213 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
214 Don't assume ptrdiff_t, size_t, and long are the same width as int.
215 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
216 This matters only when DEBUG is defined.
217
14c7ed05
EZ
2182013-05-05 Eli Zaretskii <eliz@gnu.org>
219
220 * xdisp.c (set_iterator_to_next): Set the
221 ignore_overlay_strings_at_pos_p flag only if we are _really_
222 iterating over an overlay string, as indicated by the
223 current.overlay_string_index member. (Bug#14306)
224
e6076b1b
JD
2252013-05-05 Jan Djärv <jan.h.d@swipnet.se>
226
227 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
228 to where it is used, to avoid autorelease issues (Bug#14050).
229
cbee2131
PE
2302013-05-05 Paul Eggert <eggert@cs.ucla.edu>
231
232 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
233 * fileio.c (syms_of_fileio): Implement this.
234 * filelock.c (create_lock_file): If symbolic links don't work, so
235 we use a regular file as a lock file, do not fsync the lock file;
236 it's not needed.
237
30c7e542
SM
2382013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
239
240 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
241 (syms_of_minibuf): Adjust accodingly.
242 * lread.c (Fread):
243 * callint.c (Fcall_interactively): Adjust calls accordingly.
244
5bebd186
EZ
2452013-05-04 Eli Zaretskii <eliz@gnu.org>
246
247 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
30c7e542
SM
248 w->contents is a buffer before computing everything else.
249 Use parentheses to disambiguate last part of the condition.
5bebd186
EZ
250
251 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
252 assertion violations. (Bug#14062)
253
0fb0a4f3
DR
2542013-05-01 David Reitter <david.reitter@gmail.com>
255
256 * nsfns.m (ns_tooltip): Initialize.
257
9e63b4a5
EZ
2582013-04-28 Eli Zaretskii <eliz@gnu.org>
259
260 * coding.c (decode_coding_gap): Don't remove the character before
261 a newline unless it's a CR character. (Bug#14287)
262
ad60824e
DN
2632013-04-28 Dan Nicolaescu <dann@gnu.org>
264
265 * dispextern.h (struct face): Move enum face_underline_type
266 earlier so that bitfields can be in the same word.
267
edbdcec0
JD
2682013-04-28 Jan Djärv <jan.h.d@swipnet.se>
269
270 * nsfns.m (handlePanelKeys): New function.
271 (EmacsOpenPanel:performKeyEquivalent:)
272 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
273 arrows/function/control and copy/paste keys (Bug#14296).
274
0208ede7
JL
2752013-04-27 Juri Linkov <juri@jurta.org>
276
277 * callint.c (Fcall_interactively): Call `Qread_number' for
278 interactive code letter `n' instead of using duplicate code.
279 (Bug#14254)
280
b8dd59f7
PE
2812013-04-27 Paul Eggert <eggert@cs.ucla.edu>
282
283 * systime.h (make_timeval): Declare as 'const'.
284
8bd722db
KH
2852013-04-27 Kenichi Handa <handa@gnu.org>
286
287 * font.c (font_open_entity): Always open a font of manageable
288 size.
289
13d0e56f 2902013-04-26 Paul Eggert <eggert@cs.ucla.edu>
cbee2131 291
f780d632
PE
292 Port better to AIX (Bug#14258).
293 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
294 to pacify AIX xlc.
295
ec509856
KH
2962013-04-24 Kenichi Handa <handa@gnu.org>
297
298 * coding.c (decode_coding_iso_2022): When an invalid escape
299 sequence is encountered, reset the invocation and designation
300 status to the safest one.
301
84fc48e5
PE
3022013-04-22 Paul Eggert <eggert@cs.ucla.edu>
303
304 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
305 Without this fix, "make distclean" leaves stamp-h1 behind.
306
806bda47
EC
3072013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
308
309 * w32fns.c (w32_fullscreen_rect): New function to compute the
310 window rectangle for the given fullscreen mode.
311 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
312 longer tunes the window size. This keeps the window's edges flush
313 with the screen and allows the taskbar to hide itself in fullboth.
314
315 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
316 window decorations and uses the entire screen.
317
318 * w32term.h (w32_fullscreen_rect) Add prototype.
319 (struct w32_output): Replace normal_width, normal_height,
320 normal_top, and normal_left members with a single normal_placement
321 struct.
322 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
323 Remove macros.
324 (FRAME_NORMAL_PLACEMENT): New macro.
325
9cc2810b
JB
3262013-04-16 Juanma Barranquero <lekktu@gmail.com>
327
328 * minibuf.c (Ftest_completion): Silence compiler warning.
329
fd16b54c
EZ
3302013-04-15 Eli Zaretskii <eliz@gnu.org>
331
332 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
5fbcd237 333 bug#14062.
fd16b54c
EZ
334
335 * frame.h (WINDOW_FRAME): Protect macro and its argument with
336 parentheses.
337
338 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
339 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
340 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
341 parentheses where appropriate.
342
9e3379a0
PE
3432013-04-14 Paul Eggert <eggert@cs.ucla.edu>
344
345 * keyboard.c (timer_start_idle): Remove no-longer-used local.
346
ddd6b685
EZ
3472013-04-14 Eli Zaretskii <eliz@gnu.org>
348
349 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
350 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
351 Mention in the doc string that setting these variables takes
352 effect only after a call to set-window-buffer. (Bug#14200)
353
29b79ba1
EZ
3542013-04-13 Eli Zaretskii <eliz@gnu.org>
355
356 * indent.c (Fvertical_motion): Don't consider display strings on
357 overlay strings as display strings on the buffer position we
358 started from. This prevents vertical cursor motion from jumping
359 more than one line when there's an overlay string with a display
360 property at end of line.
361 Reported by Karl Chen <Karl.Chen@quarl.org> in
362 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
363
562c6ee9
SM
3642013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
365
366 * window.c (select_window): `record_buffer' even if window is
367 already selected (bug#14191).
368
fcc1fe85
EZ
3692013-04-11 Eli Zaretskii <eliz@gnu.org>
370
371 * window.c (Fwindow_end): Test more flags, including the buffer's
372 last_overlay_modified flag, to determine whether the window's
373 display is really up-to-date. Prevents the function from
374 returning a stale value. (Bug#14170)
375 (Fwindow_line_height): Fix the test for up-to-date-ness of the
376 current matrix.
377
f009190a
EZ
3782013-04-10 Eli Zaretskii <eliz@gnu.org>
379
380 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
562c6ee9
SM
381 garbaged only if it is not already the top frame on its TTY.
382 This prevents flickering due to constant redrawing of TTY frames when
f009190a
EZ
383 there are GUI frames open in the same session. (Bug#13864)
384
78ce603d
SM
3852013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
386
387 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
388 of marking the idle timers directly.
389
a8036e40
SM
3902013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
391
392 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
393 tables (bug#14054).
394
7ffe7ef6
SM
3952013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
396
397 * window.c (select_window): Don't record_buffer while the invariant is
398 temporarily broken (bug#14161).
399
400 * fns.c (Fdelq): Don't assume !NILP => CONSP.
401
7d9f6883
EZ
4022013-04-07 Eli Zaretskii <eliz@gnu.org>
403
404 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
405
5406cfd9
RF
4062013-04-07 Romain Francoise <romain@orebokech.com>
407
408 Ignore additional platform-specific ACL errors (Bug#13702).
409 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
410 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
411
95c0e83b
JD
4122013-03-31 Jan Djärv <jan.h.d@swipnet.se>
413
414 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
415 f->output_data.ns.
416
876da980
PE
4172013-04-07 Paul Eggert <eggert@cs.ucla.edu>
418
419 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
420 This bug was introduced by my 2013-02-25 change that simplified
421 data_start configuration. Without this change, on GNU/Linux
422 an Emacs configured with --enable-profiling fails immediately
423 due to a profiler signal.
424 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
425 with these flags. On platforms where special flags are needed
426 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
427 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
428 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
429
7452b7bd
DA
4302013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
431
432 Get rid of some platform-specific functions examining window
433 system and its capabilities. This is a partial rework of the
434 2013-04-05 change.
435 * lisp.h (have_menus_p): Remove prototype. This function is
436 replaced with platform-independent window_system_available.
437 (check_window_system): Move to...
438 * frame.h (decode_window_system_frame, window_system_available):
439 ...here, add new prototypes.
440 * frame.c (window_system_available, decode_window_system_frame):
441 New functions.
442 (check_window_system): Platform-independent now.
443 * xterm.h (x_in_use): Remove declaration.
444 (check_x_frame):
445 * w32term.h (check_x_frame):
446 * nsterm.h (check_x_frame): Remove prototypes. This function
447 is replaced with platform-independent decode_window_system_frame.
448 * msdos.c (have_menus_p): Remove.
449 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
450 Remove platform-specific functions. Use check_window_system,
451 decode_window_system_frame and check_ns_display_info where
452 appropriate. Minor style and comment tweaks.
453 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
454 (check_x_frame): Likewise.
455 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
456 Likewise.
457 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
458 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
459 * xmenu.c, xselect.c: All related users changed.
460
251e9147
KH
4612013-04-03 Kenichi Handa <handa@gnu.org>
462
463 The following changes is to optimize the code for reading UTF-8
464 files.
465
562c6ee9 466 * coding.c (check_ascii): Rename from detect_ascii. Return value
251e9147
KH
467 changed. Check EOL format. Do not call adjust_coding_eol_type
468 here.
469 (check_utf_8): New function.
470 (adjust_coding_eol_type): Do nothing if already adjusted.
471 (detect_coding): Compare the return value of check_ascii with
472 coding->src_bytes. Call adjust_coding_eol_type if necessary.
473 (decode_coding_gap): Optimize for valid UTF-8.
474
8bc369d4
KH
4752013-03-21 Kenichi Handa <handa@gnu.org>
476
477 * coding.c (syms_of_coding): Cancel previous change.
478
479 * insdel.c (insert_from_gap): Fix previous change.
480
73931ad1
DA
4812013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
482
483 Consistently use platform-specific function to detect window system.
484 * lisp.h (check_window_system): New prototype. This function is
485 going to replace check_x, check_w32 and check_ns.
486 (have_menus_p): Mention msdos.c in comment.
487 * fontset.c (check_window_system_func): Remove. Adjust all users.
488 * fontset.h (check_window_system_func): Remove prototype.
489 * nsterm.h (check_ns):
490 * xterm.h (check_x):
491 * w32term.h (check_w32): Likewise.
492 * menu.c (Fx_popup_menu): Use check_window_system.
493 * msdos.c (check_window_system): Define for MS-DOS.
494 * nsfns.m (check_window_system): Define for NS. Adjust all users.
495 * w32fns.c (check_window_system): Likewise for MS-Windows.
496 * xfns.c (check_window_system): Likewise for X.
497 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
498 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
499
7216e43b
PE
5002013-04-02 Paul Eggert <eggert@cs.ucla.edu>
501
502 Prefer < to > in range checks such as 0 <= i && i < N.
503 This makes it easier to visualize quantities on a number line.
504 This patch doesn't apply to all such range checks,
505 only to the range checks affected by the 2013-03-24 change.
506 This patch reverts most of the 2013-03-24 change.
507 * alloc.c (xpalloc, Fgarbage_collect):
508 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
509 * character.c (string_escape_byte8):
510 * charset.c (read_hex):
511 * data.c (cons_to_unsigned):
512 * dispnew.c (update_frame_1):
513 * doc.c (Fsubstitute_command_keys):
514 * doprnt.c (doprnt):
515 * editfns.c (hi_time, decode_time_components):
516 * fileio.c (file_offset):
517 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
518 * font.c (font_intern_prop):
519 * frame.c (x_set_alpha):
520 * gtkutil.c (get_utf8_string):
521 * indent.c (check_display_width):
522 * keymap.c (Fkey_description):
523 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
524 * lread.c (read1):
525 * minibuf.c (read_minibuf_noninteractive):
526 * process.c (wait_reading_process_output):
527 * search.c (Freplace_match):
528 * window.c (get_phys_cursor_glyph):
529 * xdisp.c (redisplay_internal):
530 * xsmfns.c (smc_save_yourself_CB):
531 Prefer < to > for range checks.
532 * dispnew.c (sit_for): Don't mishandle NaNs.
533 This fixes a bug introduced in the 2013-03-24 change.
534 * editfns.c (decode_time_components): Don't hoist comparison.
535 This fixes another bug introduced in the 2013-03-24 change.
536
92759988
DA
5372013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
538
539 * frame.h (struct frame): Drop scroll_bottom_vpos
540 member becaue all real users are dead long ago.
541 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
542 * xdisp.c (redisplay_internal): Adjust user.
543
9a1971bb
GM
5442013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
545
f38ab167
JD
546 * nsmenu.m (showAtX:Y:for:): setLevel to
547 NSPopUpMenuWindowLevel (Bug#13998).
548
6d01f1fe
JD
5492013-03-30 Jan Djärv <jan.h.d@swipnet.se>
550
551 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
552 (ns_check_pending_open_menu): Declare.
553
554 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
555 (x_activate_menubar): Update the menu with title that matches
556 ns_get_pending_menu_title, and call
557 ns_check_pending_openmenu (Bug#12698).
558 (menuWillOpen:): New method.
559 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
560
561 * nsterm.m (menu_will_open_state, menu_mouse_point)
562 (menu_pending_title): New varaibles.
563 (ns_get_pending_menu_title, ns_check_menu_open)
564 (ns_check_pending_open_menu): New functions.
565
781f4782
DA
5662013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
567
568 * indent.c (current_column_bol_cache): Remove leftover which is not
569 used in Fmove_to_column any more.
570 (current_column, scan_for_column): Adjust users.
571 * keyboard.c (last_point_position_buffer, last_point_position_window):
572 Remove leftovers which are not used for recording undo any more.
573 (command_loop_1, syms_of_keyboard): Adjust users.
574 * xdisp.c (last_max_ascent): Remove leftover which is not used in
575 redisplay_window any more.
576 (move_it_to): Adjust user.
577
1921c31b
JB
5782013-03-29 Juanma Barranquero <lekktu@gmail.com>
579
580 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
581 Update dependencies.
582
717b8bcd
SM
5832013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
584
585 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
586 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
587 forward references.
588
e74aeda8
DA
5892013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
590
591 * window.h (struct window): Replace hchild, vchild and buffer slots
592 with the only contents slot. This is possible because each valid
593 window may have either the child window (in vertical or horizontal
594 combination) or buffer to display (for the leaf window). Using that,
595 a lof of operations to traverse and/or change window hierarchies may
596 be simplified. New member horizontal is used to distinguish between
597 horizontal and vertical combinations of internal windows.
598 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
599 (WINDOW_VERTICAL_COMBINATION_P): New macros.
600 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
601 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
602 Use contents slot, not buffer, where appropriate.
603 (wset_combination): New function.
604 (wset_buffer): Add eassert.
605 (Fframe_first_window): Simplify the loop reaching first window.
606 (Fwindow_buffer): Use WINDOW_LEAF_P.
607 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
608 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
609 (unshow_buffer): Convert initial debugging check to eassert.
610 (replace_window, recombine_windows, Fdelete_other_windows_internal)
611 (make_parent_window, window_resize_check, window_resize_apply)
612 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
613 (Fset_window_configuration, delete_all_child_windows, save_window_save):
614 Adjust to match struct window changes.
615 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
616 (mark_window_cursors_off, count_windows, get_leaf_windows)
617 (foreach_window_1): Simplify the loop.
618 * alloc.c (mark_object): Do not check for the leaf window because
619 internal windows has no glyph matrices anyway.
620 * dispnew.c (clear_window_matrices, showing_window_margins_p)
621 (allocate_matrices_for_window_redisplay, fake_current_matrices)
622 (allocate_matrices_for_frame_redisplay, free_window_matrices)
623 (build_frame_matrix_from_window_tree, mirror_make_current)
624 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
625 (update_window_tree, set_window_update_flags): Simplify the loop.
626 (sync_window_with_frame_matrix_rows): Enforce live window.
627 Use contents slot, not buffer, where appropriate.
628 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
629 and WINDOW_HORIZONTAL_COMBINATION_P.
630 (make_frame_visible_1): Simplify the loop.
631 Use contents slot, not buffer, where appropriate.
632 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
633 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
634 (expose_window_tree): Likewise.
635 Use contents slot, not buffer, where appropriate.
636 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
637 to avoid deleted windows. Use contents slot instead of buffer.
638 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
639 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
640 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
641 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
642
121ab1cd
EZ
6432013-03-28 Eli Zaretskii <eliz@gnu.org>
644
ef454cf7
EZ
645 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
646 identify the reasons for assertion violations in bug#14062 and
647 similar ones.
21e930f8
EZ
648 (Fx_show_tip): Fix compilation error under
649 "--enable-check-lisp-object-type". (Bug#14073)
ef454cf7 650
121ab1cd
EZ
651 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
652 Reported by <rzl24ozi@gmail.com>.
653
5c89ca24
DA
6542013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
655
656 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
657 start marker...
562c6ee9
SM
658 (unwind_with_echo_area_buffer): ...to restore it here.
659 This is needed to ensure that...
5c89ca24
DA
660 (redisplay_window): ...both window markers are valid here,
661 which is verified by eassert.
662 * editfns.c (save_excursion_save): Do not assume that
663 selected_window always displays the buffer.
c7f53895
DA
664 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
665 Fix comment.
5c89ca24 666
f557c1b1
SM
6672013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
668
669 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
670 the upcase table.
671
40693bba 6722013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
673
674 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
675
c86f791f
EZ
6762013-03-27 Eli Zaretskii <eliz@gnu.org>
677
678 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
679 since MinGW's w32api headers do. This avoids compiler warnings.
680
681 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
682 if already defined.
683
c6e72e17
EZ
6842013-03-26 Eli Zaretskii <eliz@gnu.org>
685
686 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
687
54e95010
JD
6882013-03-26 Jan Djärv <jan.h.d@swipnet.se>
689
690 * gtkutil.c (style_changed_cb): Check if frame is live and an
691 X frame (Bug#14038).
692
b88b62de
EZ
6932013-03-26 Eli Zaretskii <eliz@gnu.org>
694
a18d7de6
EZ
695 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
696 Define only for _WIN32_WINNT less than 0x0500.
da9dcbb8
EZ
697 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
698 MinGW64.
8f5e14c8
EZ
699 Move inclusion of time.h before sys/time.h, so that MinGW64 could
700 see its own definitions of 'struct timeval' and 'struct timezone'.
a18d7de6 701
b88b62de
EZ
702 Fix incompatibilities between MinGW.org and MinGW64 headers.
703 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
704
705 * w32.c (REPARSE_DATA_BUFFER): Guard with
706 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
707
c074e458
JD
7082013-03-25 Jan Djärv <jan.h.d@swipnet.se>
709
710 * xterm.c: Include X11/XKBlib.h
711 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
712
908589fd
AS
7132013-03-24 Andreas Schwab <schwab@linux-m68k.org>
714
715 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
716 written backwards.
717 * blockinput.h (input_blocked_p): Likewise.
718 * bytecode.c (exec_byte_code): Likewise.
719 * callproc.c (call_process_kill, call_process_cleanup)
720 (Fcall_process): Likewise.
721 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
722 (Fccl_execute_on_string): Likewise.
723 * character.c (string_escape_byte8): Likewise.
724 * charset.c (read_hex): Likewise.
725 * cm.c (calccost): Likewise.
726 * data.c (cons_to_unsigned): Likewise.
727 * dired.c (directory_files_internal, file_name_completion):
728 Likewise.
729 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
730 (sit_for): Likewise.
731 * doc.c (Fsubstitute_command_keys): Likewise.
732 * doprnt.c (doprnt): Likewise.
733 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
734 * emacsgtkfixed.c: Likewise.
735 * fileio.c (file_offset, Fwrite_region): Likewise.
736 * floatfns.c (Fexpt, fmod_float): Likewise.
737 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
738 Likewise.
739 * font.c (font_intern_prop): Likewise.
740 * frame.c (x_set_alpha): Likewise.
741 * gtkutil.c (get_utf8_string): Likewise.
742 * indent.c (check_display_width): Likewise.
743 * intervals.c (create_root_interval, rotate_right, rotate_left)
744 (split_interval_right, split_interval_left)
745 (adjust_intervals_for_insertion, delete_node)
746 (interval_deletion_adjustment, adjust_intervals_for_deletion)
747 (merge_interval_right, merge_interval_left, copy_intervals)
748 (set_intervals_multibyte_1): Likewise.
749 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
750 * keymap.c (Fkey_description): Likewise.
751 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
752 * lread.c (openp, read_integer, read1, string_to_number):
753 Likewise.
754 * menu.c (ensure_menu_items): Likewise.
755 * minibuf.c (read_minibuf_noninteractive): Likewise.
756 * print.c (printchar, strout): Likewise.
757 * process.c (create_process, Faccept_process_output)
758 (wait_reading_process_output, read_process_output, send_process)
759 (wait_reading_process_output): Likewise.
760 * profiler.c (make_log, handle_profiler_signal): Likewise.
761 * regex.c (re_exec): Likewise.
762 * regex.h: Likewise.
763 * search.c (looking_at_1, Freplace_match): Likewise.
764 * sysdep.c (get_child_status, procfs_ttyname)
765 (procfs_get_total_memory): Likewise.
766 * systime.h (EMACS_TIME_VALID_P): Likewise.
767 * term.c (dissociate_if_controlling_tty): Likewise.
768 * window.c (get_phys_cursor_glyph): Likewise.
769 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
770 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
771 Likewise.
772 * xfns.c (Fx_window_property): Likewise.
773 * xmenu.c (set_frame_menubar): Likewise.
774 * xselect.c (x_get_window_property, x_handle_dnd_message):
775 Likewise.
776 * xsmfns.c (smc_save_yourself_CB): Likewise.
777 * xterm.c (x_scroll_bar_set_handle): Likewise.
778
2bf7d27a
DA
7792013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
780
781 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
782 to be optional or nil. Adjust comment and convert it to docstring.
783 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
784 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
785
a9ebfa0b
PE
7862013-03-24 Paul Eggert <eggert@cs.ucla.edu>
787
788 Static checking by GCC 4.8-20130319.
789 * image.c (gif_load): Assume pass < 3 to pacify GCC.
790 * process.c (Fset_process_datagram_address)
791 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
792 * xdisp.c (get_char_face_and_encoding):
793 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
794 (get_glyph_face_and_encoding): Prepare face before possibly using it.
795 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
796
4f3576ee
KB
7972013-03-24 Ken Brown <kbrown@cornell.edu>
798
789b5e9a
KB
799 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
800 fix compilation on 64-bit Cygwin, where underscores are not
801 automatically prepended.
802
4f3576ee
KB
803 * w32term.c (w32_initialize): Silence compiler warning.
804
b5b7745f
EZ
8052013-03-23 Eli Zaretskii <eliz@gnu.org>
806
cdc0d0bd
EZ
807 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
808 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
562c6ee9
SM
809 variables, to save and restore frame dimensions.
810 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
811 after returning from a 'fullscreen' configuration.
812 use SendMessage instead of PostMessage to send the SC_RESTORE message,
cdc0d0bd
EZ
813 to avoid races between the main thread and the input thread.
814
815 * w32term.h (struct w32_output): New members normal_width,
816 normal_height, normal_top, normal_left, and prev_fsmode.
817 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
818 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
819 members of a frame.
820
b5b7745f
EZ
821 * w32term.c (w32fullscreen_hook): Record last value of the frame's
822 'fullscreen' parameter. Always record previous width and height
823 of the frame, except when switching out of maximized modes, so
824 that they could be restored correctly, instead of resetting to the
825 default frame dimensions. Send SC_RESTORE command to the frame,
826 unless we are going to send SC_MAXIMIZE, to restore the frame
827 resize hints in the mouse pointer shown by the window manager.
828 (Bug#14032)
829
830 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
831
832 * lisp.h (get_frame_param): Adjust conditions for prototype
833 declaration.
834
a3454eed
KB
8352013-03-22 Ken Brown <kbrown@cornell.edu>
836
837 * unexcw.c: Drop unneeded inclusion of w32common.h.
838 (report_sheap_usage): Declare.
839 (read_exe_header): Add magic numbers for x86_64.
840 (fixup_executable): Fix printf format specifier for unsigned long
841 argument.
842
5a49b79c
DA
8432013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
844
845 * frame.h (struct frame): Put menu_bar_window under #ifdef
846 because this member is not needed when X toolkit is in use.
847 (fset_menu_bar_window):
848 * dispnew.c (clear_current_matrices, clear_desired_matrices)
849 (free_glyphs, update_frame):
850 * xdisp.c (expose_frame): Likewise.
851 (display_menu_bar): Likewise. Remove redundant eassert.
852 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
853 toolkit is in use.
854
d6723bf7
PE
8552013-03-21 Paul Eggert <eggert@cs.ucla.edu>
856
7b1123d8
PE
857 Use functions and constants to manipulate Lisp_Save_Value objects.
858 This replaces code that used macros and strings and token-pasting.
859 The change makes the C source a bit easier to follow,
860 and shrinks the Emacs executable a bit.
861 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
862 (make_save_value): Change 1st arg from string to enum. All callers
863 changed.
864 (INTX): Remove.
865 (mark_object): Use if, not #if, for GC_MARK_STACK.
866 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
867 (XSAVE_OBJECT): Now functions, not macros.
868 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
869 the constant was never used.
870 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
871 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
872 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
873 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
874 New constants.
875 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
876 type3 with a single member save_type. All uses changed.
877 (save_type, set_save_pointer, set_save_integer): New functions.
878 * print.c (PRINTX): Remove.
879
d6723bf7
PE
880 * alloc.c: Remove redundant static declarations.
881
5f24fa51
DA
8822013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
883
884 * window.h (struct window): Convert left_col, top_line, total_lines
885 and total_cols from Lisp_Objects to integers. Adjust comments.
886 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
887 Remove.
888 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
889 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
890 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
891 Adjust users where appropriate.
892
42143acd
DA
8932013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
894
895 * frame.h (struct frame): Drop resx and resy because the same data is
896 available from window system-specific output context. Adjust users.
562c6ee9
SM
897 (default_pixels_per_inch_x, default_pixels_per_inch_y):
898 New functions to provide defaults when no window system available.
42143acd 899 (FRAME_RES_X, FRAME_RES_Y): New macros.
562c6ee9 900 (NUMVAL): Move from xdisp.c.
42143acd
DA
901 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
902 (Ffont_face_attributes, Fopen_font):
903 * image.c (gs_load):
904 * w32font.c (fill_in_logfont):
905 * xdisp.c (calc_pixel_width_or_height):
906 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
907 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
908
c0a17406
KH
9092013-03-20 Kenichi Handa <handa@gnu.org>
910
911 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
912 to 1 (temporary workaround until a bug related to ASCII
913 optimization is fixed).
914
095d384d
DA
9152013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
916
917 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
918 Signal error if window is not internal. Adjust docstring.
919 (delete_all_child_windows): Use combination_limit to save the buffer.
920 (Fset_window_configuration): Adjust accordingly.
cf4bb06d
DA
921 * print.c (syms_of_print): Initialize debugging output not here...
922 (init_print_once): ...but in a new function here.
923 * lisp.h (init_print_once): Add prototype.
924 * emacs.c (main): Add call to init_print_once. Adjust comments.
095d384d 925
748fa866
DA
9262013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
927
928 * window.c (window_resize_check, window_resize_apply)
929 (window_from_coordinates, recombine_windows, set_window_buffer)
930 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
931 (Fsplit_window_internal, Fdelete_window_internal)
932 (freeze_window_starts): Use bool for booleans.
933 * window.h (window_frame_coordinates, resize_frame_windows)
934 (freeze_window_starts, set_window_buffer): Adjust prototypes.
935
81519fd2
SM
9362013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
937
938 * dispnew.c (bitch_at_user): Use `user-error'.
939
6db423a9
KB
9402013-03-17 Ken Brown <kbrown@cornell.edu>
941
942 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
943 as return type of image_background. (Bug#13981)
944 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
945
8f2906f5
JD
9462013-03-16 Jan Djärv <jan.h.d@swipnet.se>
947
960ce480 948 * nsterm.m (updateFrameSize:): Change resize increments if needed.
6615748a 949 (ns_select): Don't return with result uninitialized.
960ce480 950
8f2906f5
JD
951 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
952 and getDirectory.
953
81519fd2
SM
954 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
955 New functions.
8f2906f5
JD
956 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
957 directories. If filename is nil, get directory name (Bug#13932).
958 Use getFilename and getDirectory.
959 (getFilename, getDirectory): New methods for EmacsSavePanel and
960 EmacsOpenPanel.
961 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
962
cded56c1
PE
9632013-03-15 Paul Eggert <eggert@cs.ucla.edu>
964
965 * coding.c (decode_coding_gap): Fix typo caught by static checking.
966
251e9147 9672013-03-15 Kenichi Handa <handa@gnu.org>
8a44e6d1
KH
968
969 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
970 (adjust_after_replace): Make it back to static. Delete the third
971 arg text_at_gap_tail. Cancel the code for handling it.
972
973 * coding.h (struct coding_system): New member eol_seen.
974
975 * coding.c (detect_ascii): New function.
976 (detect_coding): Set coding->head_ascii and coding->eol_seen only
977 when the source bytes are actually scanned. On detecting for
978 coding_category_utf_8_auto, call detect_ascii instead of scanning
979 source bytes directly.
980 (produce_chars): Call insert_from_gap with the new arg 0.
981 (encode_coding): Likewise.
982 (decode_coding_gap): Control ASCII optimization by the variable
983 disable_ascii_optimization instead of #ifndef .. #endif.
984 Deccode EOL format according to coding->eol_seen.
985 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
986 variable.
987
8a44e6d1
KH
988 * lisp.h (adjust_after_replace): Cancel externing it.
989 (insert_from_gap): Adjust prototype.
990
5f795e34
EZ
9912013-03-15 Eli Zaretskii <eliz@gnu.org>
992
993 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
994 FULLSCREEN_MAXIMIZED. (Bug#13935)
995
f258b4be
DA
9962013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
997
998 * region-cache.c (find_cache_boundary, move_cache_gap)
999 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
1000 Simplify debugging check and convert to eassert. Adjust comment.
1001 (pp_cache): Put under ENABLE_CHECKING.
1002
a5cc4dde
EZ
10032013-03-14 Eli Zaretskii <eliz@gnu.org>
1004
1005 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
1006 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
1007 and WM_ACTIVATEAPP.
1008 (w32fullscreen_hook): If the frame is visible, reset
1009 f->want_fullscreen flag after changing the frame size. If the
1010 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
1011 (Bug#13953)
1012
3fc5e44a
DC
10132013-03-13 Daniel Colascione <dancol@dancol.org>
1014
1015 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
1016 too so that these builds can use Cygwin's file conversion
1017 functions. (We've been building and linking cygw32.o all along
1018 and just not using it.)
1019
47d7532e
PE
10202013-03-13 Paul Eggert <eggert@cs.ucla.edu>
1021
1022 File synchronization fixes (Bug#13944).
1023 * Makefile.in (LIB_FDATASYNC): New macro.
1024 (LIBES): Use it.
1025 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
1026 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
1027 Don't worry about HAVE_FSYNC, since a substitute fsync is
1028 available if the system lacks one.
1029 (Fwrite_regin): Retry fsync if interrupted.
1030
c7ffccaf
EZ
10312013-03-13 Eli Zaretskii <eliz@gnu.org>
1032
4e2df81d 1033 * w32term.c (w32_read_socket): If the Emacs frame is being
c7ffccaf
EZ
1034 activated, call w32fullscreen_hook, to make sure the new frame
1035 dimensions are in effect. (Bug#13937)
1036
8a7debc1
DA
10372013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
1038
1039 * xdisp.c (init_iterator): Simplify because both character and byte
1040 positions are either specified or -1. Add eassert. Adjust comment.
ffcd945e
DA
1041 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
1042 character and byte positions can be obtained from marker.
8a7debc1 1043
7fd8c501
PE
10442013-03-13 Paul Eggert <eggert@cs.ucla.edu>
1045
d9df6f40
PE
1046 Static checking by Sun C 5.12.
1047 * alloc.c (buffer_memory_full) [REL_ALLOC]:
1048 * bytecode.c (exec_byte_code):
1049 * dispnew.c (init_display):
1050 * eval.c (error):
1051 * fileio.c (Fsubstitute_in_file_name):
1052 * keyboard.c (Fevent_convert_list):
1053 * keymap.c (Fsingle_key_description):
1054 * term.c (maybe_fatal, fatal):
1055 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
1056 * xsmfns.c (Fhandle_save_session):
1057 Omit unreachable code.
1058 * keymap.c (map_keymap_char_table_item): Cast void * to
1059 a function pointer type; the C Standard requires this.
1060
7fd8c501
PE
1061 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
1062 Include <sys/param.h> unconditionally, as that works elsewhere and
1063 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
1064 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
1065 and FreeBSD now.
1066
cb0290df
PE
10672013-03-11 Paul Eggert <eggert@cs.ucla.edu>
1068
1069 * insdel.c (adjust_after_replace): Use bool for boolean.
1070
cbae07d5
SM
10712013-03-11 Stefan Monnier <monnier@iro.umontreal.ca>
1072
1073 * keyboard.c: Move keyboard decoding to read_key_sequence.
1074 (decode_keyboard_code): Remove.
1075 (tty_read_avail_input): Don't try to decode input.
1076 (read_decoded_char): New function.
1077 (read_key_sequence): Use it.
1078
819e2da9
DC
10792013-03-10 Daniel Colascione <dancol@dancol.org>
1080
1081 * w32term.h (GUISTR, GUI_ENCODE_FILE, GUI_ENCODE_SYSTEM, GUI_FN)
1082 (GUI_SDATA, guichar_t): Macros to abstract out differences between
1083 NTGUI_UNICODE and !NTGUI_UNICODE builds, some moved out of
1084 w32fns.c.
1085
1086 * w32term.c (construct_drag_n_drop): Use the above macros to make
1087 drag-and-drop work for non-ASCII filenames in cygw32 builds.
1088
1089 * w32fns.c (x_set_name, x_set_title): Use the above macros to
1090 properly display non-ASCII frame titles in cygw32 builds.
1091
1092 * w32fns.c (Fw32_shell_execute): Use the above macros to properly
1093 call ShellExecute in cygw32 builds.
1094
1095 * w32fn.c (Fx_file_dialog): Use the above macros to simplify the
1096 common file dialog code.
1097
1098 * w32fns.c (Ffile_system_info): Remove from cygw32 builds, which
1099 can just use du like other systems.
1100
1101 * coding.c (from_unicode_buffer): Declare.
1102 * coding.c (from_unicode_buffer): Implement.
1103
99ec1647
SM
11042013-03-10 Stefan Monnier <monnier@iro.umontreal.ca>
1105
d2e24f92
SM
1106 * lread.c: Minor cleanup.
1107 (FROM_FILE_P): New macro.
1108 (skip_dyn_bytes, unreadchar, read1): Use it.
1109 (read_list): Consolidate duplicated code.
1110
99ec1647
SM
1111 * bytecode.c (struct byte_stack): Remove `constants' when unused.
1112
138c0ae8
EZ
11132013-03-10 Eli Zaretskii <eliz@gnu.org>
1114
1115 * xdisp.c (display_tool_bar_line, redisplay_tool_bar)
1116 (redisplay_internal, set_cursor_from_row, try_window)
1117 (try_window_id, dump_glyph_row, extend_face_to_end_of_line)
1118 (display_line, notice_overwritten_cursor)
99ec1647
SM
1119 (mouse_face_from_buffer_pos, note_mouse_highlight):
1120 Use MATRIX_ROW_DISPLAYS_TEXT_P.
138c0ae8 1121 (note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
99ec1647
SM
1122 (mouse_face_from_string_pos, fast_find_string_pos):
1123 Use MATRIX_ROW_VPOS.
138c0ae8
EZ
1124
1125 * xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
1126
1127 * w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
1128
1129 * xdisp.c (try_cursor_movement): Use MATRIX_ROW and
1130 MATRIX_MODE_LINE_ROW.
1131
1132 * dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
1133
c230dd7d
KH
11342013-03-10 handa <handa@gnu.org>
1135
1136 * lisp.h (adjust_after_replace): Extern it.
1137
1138 * coding.c (detect_coding): Cound the heading ASCII bytes in the
1139 case of detection for coding_category_utf_8_auto.
99ec1647
SM
1140 (decode_coding_gap) [not CODING_DISABLE_ASCII_OPTIMIZATION]:
1141 Skip decoding if all bytes are ASCII.
c230dd7d
KH
1142
1143 * insdel.c (adjust_after_replace): Make it public. New arg
1144 text_at_gap_tail.
1145 (adjust_after_insert): Call adjust_after_replace with the new arg
1146 value 0.
1147
27a98a62
SM
11482013-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
1149
1150 * keyboard.h (EVENT_START, EVENT_END, POSN_WINDOW, POSN_POSN)
1151 (POSN_WINDOW_POSN, POSN_TIMESTAMP): Be careful since events may come
1152 from Elisp via unread-command-events.
1153
1154 * keyboard.c (access_keymap_keyremap): Accept nil return value from
1155 functions to mean "no change".
1156
457882c2
PE
11572013-03-08 Paul Eggert <eggert@cs.ucla.edu>
1158
1159 region-cache.c, scroll.c, search.c: Use bool for booleans.
1160 * lisp.h (compile_pattern):
1161 * scroll.c (do_scrolling, do_direct_scrolling):
1162 * search.c (struct regexp_cache, compile_pattern_1)
1163 (compile_pattern, string_match_1, search_command)
1164 (trivial_regexp_p, search_buffer, Freplace_match, match_limit)
1165 (search_regs_saved, Fregexp_quote):
1166 Use bool for boolean.
1167 * region-cache.c (region_cache_forward, region_cache_backward):
1168 Fix comments to match code: these functions return int, not boolean.
1169
b5426561
DA
11702013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
1171
1172 * search.c (find_newline): Accept start and end byte positions
1173 as arguments and allow -1 if not known.
1174 (find_newline_no_quit): Likewise for start position.
1175 * lisp.h (find_newline, find_newline_no_quit): Adjust prototype.
1176 * bidi.c (bidi_find_paragraph_start): Pass byte position to
1177 find_newline_no_quit, thus eliminating CHAR_TO_BYTE.
27a98a62
SM
1178 * editfns.c (Fconstrain_to_field): Break long line.
1179 Adjust call to find_newline.
b5426561
DA
1180 * indent.c (vmotion): Adjust calls to find_newline_no_quit.
1181 Use DEC_BOTH to start next search from the previous buffer
1182 position, where appropriate.
1183 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
1184 (get_visually_first_element, move_it_vertically_backward): Likewise.
1185 Obtain byte position from the display iterator, where appropriate.
1186
0bce5d9e
PE
11872013-03-08 Paul Eggert <eggert@cs.ucla.edu>
1188
1189 print.c, process.c: Use bool for booleans.
1190 * lisp.h (wait_reading_process_output):
1191 * print.c (print_output_debug_flag, PRINTDECLARE, printchar)
1192 (strout, debug_output_compilation_hack, float_to_string, print)
1193 (print_object):
1194 * process.c (kbd_is_on_hold, inhibit_sentinels, process_output_skip)
1195 (decode_status, status_message, create_process, create_pty)
1196 (Fmake_network_process, Fnetwork_interface_info)
1197 (wait_reading_process_output, read_process_output)
1198 (write_queue_push, write_queue_pop, process_send_signal)
1199 (handle_child_signal, keyboard_bit_set, kbd_on_hold_p):
1200 * process.h (struct Lisp_Process, inhibit_sentinels, kbd_on_hold_p):
1201 Use bool for booleans.
1202 * process.c (Fnetwork_interface_list): Remove unused local.
1203 (connect_counter): Now EMACS_INT, not int.
1204
36075a19
DA
12052013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
1206
1207 * bidi.c (bidi_fetch_char): Swap first and second arguments
1208 to match other functions accepting character and byte positions.
1209 Adjust comment.
1210 (bidi_resolve_explicit_1, bidi_level_of_next_char): Adjust users.
1211 (bidi_paragraph_init): Likewise. Use DEC_BOTH which is faster
1212 when you need just to move to the previous buffer position.
1213 * xdisp.c (Fcurrent_bidi_paragraph_direction): Use DEC_BOTH.
1214
4aae1914
EZ
12152013-03-07 Eli Zaretskii <eliz@gnu.org>
1216
1217 * .gdbinit (prowlims): Display the enabled_p flag of the row.
1218
c54aa166
DA
12192013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
1220
1221 Avoid character to byte conversions in motion subroutines.
1222 * indent.h (compute_motion, vmotion): Add byte position argument.
1223 * indent.c (compute_motion): Use it and avoid CHAR_TO_BYTE.
1224 Add eassert.
1225 (Fcompute_motion): Break long line. Adjust call to compute_motion.
1226 Use list5 for return value.
1227 (vmotion): Use byte position argument and avoid call to CHAR_TO_BYTE.
1228 Adjust comments, style and calls to compute_motion.
1229 (Fvertical_motion): Adjust call to vmotion.
1230 * window.c (Fdelete_other_windows_internal): Record window start
1231 byte position and adjust call to vmotion.
1232 (window_scroll_line_based): Likewise with call to compute_motion.
1233 Use SET_PT_BOTH.
1234 (Frecenter): Adjust calls to vmotion.
1235
3de717bd
DA
12362013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
1237
1238 * lisp.h (list2i, list3i): New functions.
1239 (list4i): Move from window.c and make LISP_INLINE.
1240 * editfns.c (make_lisp_time):
1241 * fns.c (Flocale_info):
1242 * keyboard.c (parse_modifiers):
1243 * xterm.c (x_ewmh_activate_frame): Use list2i.
1244 * instel.c (signal_after_change):
1245 * nsfns.m (Fx_server_version, Fxw_color_values):
1246 * w32fns.c (Fxw_color_values, Fx_server_version):
1247 * xfns.c (Fxw_color_values, Fx_server_version): Use list3i.
1248 * fileio.c (Fvisited_file_modtime):
1249 * nsfns.m (Fns_display_usable_bounds):
1250 * w32.c (ltime): Use list4i.
1251
d26e478e
EZ
12522013-03-06 Eli Zaretskii <eliz@gnu.org>
1253
a611149e
EZ
1254 * search.c (find_newline_no_quit): Rename from find_next_newline.
1255 Add commentary.
1256
1257 * lisp.h (find_newline_no_quit): Rename prototype.
1258
1259 * xdisp.c (back_to_previous_line_start)
1260 (forward_to_next_line_start, get_visually_first_element)
1261 (move_it_vertically_backward): Callers of find_newline_no_quit changed.
1262 * indent.c (vmotion): Callers of find_newline_no_quit changed.
1263 * bidi.c (bidi_find_paragraph_start): Callers of
1264 find_newline_no_quit changed.
1265
d26e478e
EZ
1266 * msdos.c: Change encoding to cp850. (Bug#13879)
1267 (fr_keyboard, it_keyboard, dk_keyboard): Update keyboard layouts.
1268
1af1a51a
DA
12692013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
1270
1271 Coding system support cleanup and minor refactoring.
1272 * coding.h (enum coding_result_code): Remove
1273 CODING_RESULT_INCONSISTENT_EOL and CODING_RESULT_INSUFFICIENT_MEM.
1274 (toplevel): Remove unused CODING_MODE_INHIBIT_INCONSISTENT_EOL.
1275 (CODING_MODE_LAST_BLOCK, CODING_MODE_SELECTIVE_DISPLAY)
1276 (CODING_MODE_DIRECTION, CODING_MODE_FIXED_DESTINATION)
1277 (CODING_MODE_SAFE_ENCODING): Rearrange bit values.
1278 (decode_coding_region, encode_coding_region, decode_coding_string):
1279 Remove unused compatibility macros.
1280 * coding.c (Qinconsistent_eol, Qinsufficient_memory): Remove.
1281 (record_conversion_result): Adjust user.
1282 (syms_of_coding): Likewise.
1283 (ALLOC_CONVERSION_WORK_AREA): Use SAFE_ALLOCA.
1284 (decode_coding, encode_coding): Add USE_SAFE_ALLOCA and SAFE_FREE.
1285 (decode_coding_object): Simplify since xrealloc never returns NULL.
1286 Add eassert.
1287
0bafabe7 12882013-03-06 Paul Eggert <eggert@cs.ucla.edu>
725eb027 1289
9b1c3271 1290 Fix a build failure on OpenBSD 4.x and MirBSD (Bug#13881).
0845a75c
PE
1291 * sysdep.c (list_system_processes)
1292 [BSD_SYSTEM && !DARWIN_OS && !__FreeBSD__]:
9b1c3271 1293 Make it a stub in this case; otherwise the build might fail,
0845a75c 1294 and this code hasn't been tested on such hosts anyway.
725eb027 1295 Problem reported by Nelson H. F. Beebe in
9b1c3271
PE
1296 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00021.html>
1297 and analyzed by Jérémie Courrèges-Anglas in
1298 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00062.html>.
725eb027 1299
ffc65bee
DA
13002013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
1301
1302 * lisp.h (find_next_newline_no_quit): Rename to find_next_newline.
1303 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
1304 (get_visually_first_element, move_it_vertically_backward): Ajust users.
1305 * bidi.c (bidi_find_paragraph_start): Likewise.
1306 * indent.c (vmotion): Likewise.
1307
70743157
PE
13082013-03-05 Paul Eggert <eggert@cs.ucla.edu>
1309
1310 FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
1311 * filelock.c: Include <c-ctype.h>.
1312 (MAX_LFINFO): New top-level constant.
1313 (lock_info_type): Remove members pid, boot_time. Add members at,
1314 dot, colon. Change user member to be the entire buffer, not a
1315 pointer. This allows us to handle the case where a foreign
1316 pid or boot time exceeds the local range. All uses changed.
1317 (LINKS_MIGHT_NOT_WORK): New constant.
1318 (FREE_LOCK_INFO): Remove, as the pieces no longer need freeing.
1319 (defined_WINDOWSNT): Remove.
1320 (MAKE_LOCK_NAME, file_in_lock_file_name):
1321 Always use .#FILE (not .#-FILE) for the file lock,
1322 even if it is a regular file.
1323 (rename_lock_file): New function.
1324 (create_lock_file): Use it.
1325 (create_lock_file, read_lock_data):
1326 Prefer a symbolic link for the lock file, falling back on a
1327 regular file if symlinks don't work. Do not try to create
1328 symlinks on MS-Windows, due to security hassles. Stick with
1329 POSIXish functions (open, read, write, close, fchmod, readlink, symlink,
1330 link, rename, unlink, mkstemp) when creating locks, as a GNUish
1331 host may be using a Windowsish file system, and cannot use
1332 MS-Windows-only system calls. Fall back on mktemp if mkstemp
1333 doesn't work. Don't fail merely because of a symlink-contents
1334 length limit in the current file system; fall back on regular
1335 files. Increase the symlink contents length limit to 8 KiB, this
1336 should be big enough for any real use and doesn't crunch the
1337 stack.
1338 (create_lock_file, lock_file_1, read_lock_data):
1339 Simplify allocation of lock file buffers now that they fit in 8 KiB.
1340 (lock_file_1): Return error number, not bool. All callers changed.
1341 (ELOOP): New macro, if not already defined.
1342 (read_lock_data): Return size of lock file contents, not Lisp object.
1343 All callers changed. Handle a race condition if some other process
1344 replaces a regular-file lock with a symlink lock or vice versa,
1345 while we're trying to read the lock.
1346 (current_lock_owner): Parse contents more carefully, to help avoid
1347 confusing a regular-file lock with some other application's use
1348 of the file. Check for lock file contents being too long, or
1349 not parsing correctly.
1350 (current_lock_owner, lock_file):
1351 Allow foreign pid and boot times that exceed the local range.
1352 (current_lock_owner, lock_if_free, lock_file):
1353 Simplify allocation of lock file contents.
1354 * w32.c (sys_rename_replace): New function, containing most of
1355 the contents of the old sys_rename.
1356 (sys_rename): Use it.
1357 (fchmod): New dummy function.
1358 * w32.h (sys_rename_replace, fchmod): New decls.
1359
05e193f1
EZ
13602013-03-05 Eli Zaretskii <eliz@gnu.org>
1361
1362 * bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
1363 bidi_count_bytes, as the callers now arrange for bidi_it->charpos
1364 to be in sync with bidi_it->bytepos. Suggested by Dmitry Antipov
1365 <dmantipov@yandex.ru>.
1366
3bfc46eb
DA
13672013-03-05 Dmitry Antipov <dmantipov@yandex.ru>
1368
1369 * composite.c (get_composition_id, fill_gstring_header):
1370 Use make_uninit_vector where appropriate.
1371 * font.c (Ffont_get_glyphs, build_style_table): Likewise.
1372 * xselect.c (clean_local_selection_data): Likewise.
1373
84ac6f9d
PE
13742013-03-04 Paul Eggert <eggert@cs.ucla.edu>
1375
1376 Fix misuse of ImageMagick that caused core dump (Bug#13846).
1377 * image.c (imagemagick_load_image): Calculate height and width
1378 after flattening the image, not before.
1379
42926ec8
DA
13802013-03-04 Dmitry Antipov <dmantipov@yandex.ru>
1381
1382 * font.c (Ffont_get_glyphs): Use convenient LGLYPH_NEW.
1383 * ftfont.c (ftfont_shape_by_flt): Likewise.
1384 * w32uniscribe.c (uniscribe_shape): Likewise.
1385
b5029e23
PE
13862013-03-02 Paul Eggert <eggert@cs.ucla.edu>
1387
1388 The lock for FILE is now .#FILE or .#-FILE (Bug#13807).
1389 The old approach, which fell back on DIR/.#FILE.0 through
1390 DIR/.#FILE.9, had race conditions that could not be easily fixed.
1391 If DIR/.#FILE is a non-symlink file, Emacs now does not create a
1392 lock file for DIR/FILE; that is, DIR/FILE is no longer partly
1393 protected by a lock if DIR/.#FILE is a non-symlink file ("partly"
1394 because the locking mechanism was never reliable in that case).
1395 This patch fixes this and other bugs discovered by a code
1396 inspection that was prompted by
1397 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00531.html>.
1398 Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows,
1399 to avoid interoperability problems between the MS-Windows and
1400 non-MS-Windows implementations. MS-Windows and non-MS-Windows
1401 instances of Emacs now ignore each others' locks.
1402 * filelock.c (defined_WINDOWSNT): New constant.
1403 (MAKE_LOCK_NAME, fill_in_lock_file_name):
1404 Don't create DIR/.#FILE.0 through DIR/.#FILE.9. Instead, create
1405 DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE
1406 regular files on MS-Windows hosts.
1407 (MAKE_LOCK_NAME, unlock_file, Ffile_locked_p):
1408 Use SAFE_ALLOCA to avoid problems with long file names.
1409 (MAX_LFINFO): Now a local constant, not a global macro.
1410 (IS_LOCK_FILE): Remove.
1411 (lock_file_1): Don't inspect errno if symlink call succeeds;
1412 that's not portable.
1413 (lock_file): Document that this function can return if lock
1414 creation fails.
2db41375 1415 (lock_file): Don't access freed storage.
b5029e23 1416
b270d116
AS
14172013-03-02 Andreas Schwab <schwab@linux-m68k.org>
1418
1419 * lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren. (Bug#13734)
1420
81c23309
PE
14212013-03-02 Paul Eggert <eggert@cs.ucla.edu>
1422
1423 * textprop.c: Use bool for booleans.
1424 (validate_interval_range, Fadd_text_properties)
1425 (Fremove_text_properties): Prefer bool to int when either works.
1426
18f2ac09
EZ
14272013-03-02 Eli Zaretskii <eliz@gnu.org>
1428
27a98a62
SM
1429 * textprop.c (Fadd_text_properties, Fremove_text_properties):
1430 If the interval tree changes as a side effect of calling
18f2ac09
EZ
1431 modify_region, re-do processing starting from the call to
1432 validate_interval_range. (Bug#13743)
1433
929aeac6 14342013-02-28 Eli Zaretskii <eliz@gnu.org>
c49e2256
EZ
1435
1436 * w32.c (sys_open): Don't reset the flags for FD in fd_info[].
1437 (Bug#13546).
1438
531e70ec
EZ
14392013-02-27 Eli Zaretskii <eliz@gnu.org>
1440
1441 * filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with
1442 _SH_DENYRW flag, instead of emacs_open, to deny any other process
1443 access to the lock file until it is written and closed.
1444 (Bug#13807)
1445
6e65b9cc
PE
14462013-02-27 Paul Eggert <eggert@cs.ucla.edu>
1447
1448 * callint.c (Qcall_interactively):
1449 * macros.c (Qexecute_kbd_macro):
1450 Now static.
1451
3b166f09
BG
14522013-02-26 Bastien Guerry <bzg@gnu.org>
1453
1454 * window.c (Frecenter): Tiny docstring enhancement.
1455
ecc0fdd4
PE
14562013-02-26 Paul Eggert <eggert@cs.ucla.edu>
1457
1458 Minor textprop integer cleanup.
1459 * intervals.h, textprop.c (add_text_properties_from_list):
1460 Return void, not int, since nobody uses the return value.
1461 * textprop.c (validate_plist, add_properties, remove_properties)
1462 (Fadd_text_properties):
1463 Don't assume list length fits in int.
1464 (interval_has_all_properties, interval_has_some_properties)
1465 (interval_has_some_properties_list, add_properties, remove_properties)
1466 (Fadd_text_properties, Fremove_text_properties)
1467 (Fremove_list_of_text_properties, text_property_stickiness):
1468 Use bool for booleans.
1469 (Fadd_text_properties, Fremove_text_properties):
1470 (Fremove_list_of_text_properties):
1471 Reindent do-while as per GNU style.
1472
0248b0d7
EZ
14732013-02-25 Eli Zaretskii <eliz@gnu.org>
1474
343a2aef
EZ
1475 Implement CLASH_DETECTION for MS-Windows.
1476
1477 * filelock.c [WINDOWSNT]: Include w32.h.
1478 (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime
1479 function of that name. Up-case the macro arguments.
1480 (IS_LOCK_FILE): New macro.
1481 (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK.
1482 (create_lock_file): New function, with body extracted from
1483 lock_file_1.
1484 [WINDOWSNT]: Implement lock files by writing a regular file with
1485 the lock information as its contents.
1486 (read_lock_data): New function, on Posix platforms just calls
1487 emacs_readlinkat.
1488 [WINDOWSNT]: Read the lock info from the file.
1489 (current_lock_owner): Call read_lock_data instead of calling
1490 emacs_readlinkat directly.
1491 (lock_file) [WINDOWSNT]: Run the file name through
1492 dostounix_filename.
1493
1494 * w32proc.c (sys_kill): Support the case of SIG = 0, in which case
1495 just check if the process by that PID exists.
1496
1497 * w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is
1498 also present, as doing so will fail to error out if the file
1499 already exists.
1500
1501 * makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h.
1502
0248b0d7
EZ
1503 * textprop.c (Fadd_text_properties, Fremove_text_properties)
1504 (Fremove_list_of_text_properties): Skip all of the intervals in
1505 the region between START and END that already have resp. don't
27a98a62
SM
1506 have the requested properties, not just the first one.
1507 Add assertions that the loop afterwards always modifies the
0248b0d7
EZ
1508 properties. (Bug#13743)
1509
b5071fc7
SM
15102013-02-25 Stefan Monnier <monnier@iro.umontreal.ca>
1511
1512 * callint.c (Fcall_interactively): Use the right lexical environment
1513 for `interactive' specs (bug#13811).
1514 * eval.c (Feval): Accept a lexical environment.
1515
1ddc2bd6
PE
15162013-02-25 Paul Eggert <eggert@cs.ucla.edu>
1517
1518 Simplify data_start configuration (Bug#13783).
1519 This is a followon simplification to the fix for Bug#13650.
1520 * Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD)
1521 (START_FILES): Remove. All uses removed.
1522 (otherobj): Remove $(VMLIMIT_OBJ), as it's now first.
1523 (ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first.
1524 (buildobj.h): Use it.
1525 ($(ALLOBJS)): Depend on globals.h.
1526 (temacs$(EXEEXT)): Use $(ALLOBJS).
1527 * autodeps.mk (ALLOBJS): Move to Makefile.in.
1528 * deps.mk (vm-limit.o):
1529 * makefile.w32-in ($(BLD)/vm-limit.$(O)):
1530 Do not depend on mem-limits.h.
1531 * emacs.c (__do_global_ctors, __do_global_ctors_aux)
1532 (__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__)
1533 [__GNUC__ && !ORDINARY_LINK]: Remove.
1534 * mem-limits.h, pre-crt0.c: Remove.
1535 * unexaix.c, unexcoff.c: Don't include mem-limits.h.
1536 * unexcoff.c (etext): New decl.
1537 (make_hdr): Use DATA_START instead of start_of_data.
1538 * vm-limit.c: Move most of mem-limits.h's contents here.
1539 (data_start): New decl. It's OK if this is approximate,
1540 so simplify-away some unnecessary exactness.
1541 (POINTER): Remove; all uses removed.
1542 (data_space_start): Now char *, to avoid casts.
1543 (exceeds_lisp_ptr): New function, replacing the old
1544 EXCEEDS_LISP_PTR macro. All uses changed.
1545 (check_memory_limits): Simplify and remove casts.
1546 (start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove.
1547 (memory_warnings): Use data_start instead of start_of_data.
1548
51aa2a8b
AS
15492013-02-24 Andreas Schwab <schwab@linux-m68k.org>
1550
1551 * xdisp.c (set_message): Only check for debug-on-message if STRING
1552 is a string. (Bug#13797)
1553
1938d88c
PE
15542013-02-24 Paul Eggert <eggert@cs.ucla.edu>
1555
1556 Fix regression introduced by July 10 filelock.c patch.
1557 * filelock.c (fill_in_lock_file_name): Fix crash caused by the
1558 2012-07-10 patch to this file. Reported by Eli Zaretskii in
1559 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00533.html>
1560 and diagnosed by Andreas Schwab in
1561 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00534.html>.
1562
fcee5028
PE
15632013-02-22 Paul Eggert <eggert@cs.ucla.edu>
1564
1565 Assume C89 or better.
1566 * ralloc.c (SIZE, POINTER, NIL):
1567 * vm-limit.c (POINTER):
1568 Remove, replacing all uses with C89 equivalents. These old
1569 symbols were present only for porting to pre-C89 platforms.
1570
d78cf5ed
CB
15712013-02-22 Claudio Bley <claudio.bley@gmail.com>
1572
1573 * w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop.
1574 This avoids warning messages reported as part of Bug#13546.
1575
6bcd97a4
KB
15762013-02-21 Ken Brown <kbrown@cornell.edu>
1577
1578 * sheap.c (report_sheap_usage): Fix arguments of message1_no_log.
1579
b6c2bfff
SM
15802013-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
1581
e11dacb5
SM
1582 * sheap.c (report_sheap_usage): Prefer message1_nolog.
1583
b6c2bfff
SM
1584 * keyboard.c (Qcommand_execute): New var.
1585 (command_loop_1, read_char): Use it.
1586 (Fcommand_execute): Remove, replace by an Elisp implementation.
1587 (syms_of_keyboard): Adjust accordingly.
1588
f4ad7ea1 15892013-02-19 Daniel Colascione <dancol@dancol.org>
b6c2bfff 1590
d69f1120
DC
1591 * sheap.c (report_sheap_usage): Use message, not message1, so
1592 that we don't try to create a buffer while we're in the middle
1593 of dumping Emacs. Explain why.
b6c2bfff 1594
2a14a4f1 15952013-02-20 Dmitry Antipov <dmantipov@yandex.ru>
42926ec8 1596
2a14a4f1
DA
1597 * search.c (find_newline): Return byte position in bytepos.
1598 Adjust comment.
b6c2bfff
SM
1599 (find_next_newline_no_quit, find_before_next_newline):
1600 Add bytepos argument.
2a14a4f1
DA
1601 * lisp.h (find_newline, find_next_newline_no_quit)
1602 (find_before_next_newline): Adjust prototypes.
1603 * bidi.c (bidi_find_paragraph_start):
1604 * editfns.c (Fconstrain_to_field, Fline_end_position):
1605 * indent.c (compute_motion, vmotion):
1606 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start):
1607 (get_visually_first_element, move_it_vertically_backward):
1608 Adjust users and avoid calls to CHAR_TO_BYTE where appropriate.
1609
872faefb 16102013-02-19 Eli Zaretskii <eliz@gnu.org>
17ddfd15
EZ
1611
1612 * w32proc.c (new_child): Avoid leaking handles if the subprocess
1613 resources were not orderly released.
1614
fd80c659
EZ
16152013-02-17 Eli Zaretskii <eliz@gnu.org>
1616
1617 * xdisp.c (x_draw_vertical_border): For a window that is neither
1618 the leftmost nor the rightmost, redraw both the left and the right
1619 vertical borders. (Bug#13723)
1620
2f73da9c
SM
16212013-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
1622
1623 * xml.c (init_libxml2_functions):
1624 * sound.c (sound_warning):
1625 * sheap.c (report_sheap_usage):
1626 * process.c (wait_reading_process_output):
1627 * msdos.c (XMenuActivate):
1628 * macros.c (Fstart_kbd_macro, Fend_kbd_macro):
1629 * keyboard.c (top_level_1):
1630 * editfns.c (Fmessage, Fmessage_box):
1631 * callint.c (Fcall_interactively):
1632 * fns.c (Fyes_or_no_p): Prefer `message1' over `message'.
1633
fd9547e8
JD
16342013-02-17 Jan Djärv <jan.h.d@swipnet.se>
1635
1636 * xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ...
fd9547e8
JD
1637 * frame.c (syms_of_frame): ... to here.
1638
f277993b
EZ
16392013-02-16 Eli Zaretskii <eliz@gnu.org>
1640
c7939585
EZ
1641 * w32.c (sys_chown): Remove unused function.
1642
cd91fb4b
EZ
1643 * w32term.c <input_signal_count>: Declare 'volatile'
1644 unconditionally. (Bug#9066)
1645
f277993b
EZ
1646 * w32.c (set_errno): Reset h_errno and don't set it to any other
1647 value. Set errno instead.
1648 (check_errno): Reset h_errno.
1649 (sys_socket, socket_to_fd, sys_bind, sys_connect)
1650 (sys_gethostname, sys_getservbyname, sys_getpeername)
1651 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1652 (sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set
1653 h_errno.
1654 (sys_gethostbyname): Set h_errno only errors detected.
1655
e454145b
PE
16562013-02-15 Paul Eggert <eggert@cs.ucla.edu>
1657
1658 * process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl.
1659
bcf7fe2a
EZ
16602013-02-15 Eli Zaretskii <eliz@gnu.org>
1661
ef9c57e2
EZ
1662 * keyboard.c (read_char): Fix calculation of auto-save time out
1663 when auto-save-timeout is less than 4. (Bug#13720)
1664
ef862e20 1665 * w32proc.c (new_child): Free up to 2 slots of dead processes at a
b2af991a 1666 time. Improve diagnostics in DebPrint. (Bug#13546)
ef862e20 1667
bcf7fe2a
EZ
1668 * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname)
1669 (sys_gethostbyname, sys_getservbyname, sys_getpeername)
1670 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1671 (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure,
1672 make sure errno is set to an appropriate value. (Bug#13546)
1673 (socket_to_fd): Add assertion against indexing fd_info[] with a
1674 value that is out of bounds.
1675 (sys_accept): If fd is negative, do not set up the child_process
1676 structure for reading.
1677
0063fdb1
DA
16782013-02-15 Dmitry Antipov <dmantipov@yandex.ru>
1679
1680 * composite.c (fill_gstring_header): Remove useless prototype.
1681 Break long line.
1682 * lisp.h (message_dolog, compile_pattern): Adjust prototype.
1683 * print.c (PRINTDECLARE, print_object):
1684 * search.c (compile_pattern, fast_looking_at, search_buffer):
1685 (simple_search, boyer_moore, Freplace_match):
1686 * xdisp.c (c_string_pos, number_of_chars, message_dolog):
1687 (get_overlay_arrow_glyph_row, display_mode_element):
1688 (decode_mode_spec_coding, message3):
1689 * xfaces.c (face_at_string_position): Use bool for booleans.
1690 Adjust comments.
1691
648e5523 16922013-02-15 Paul Eggert <eggert@cs.ucla.edu>
974c7646 1693
35b3a27e
PE
1694 Fix AIX port (Bug#13650).
1695 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
1696 Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set,
1697 was #undeffed earlier, so it cannot be used as a macro here.
1698 Use the constant and not the macro.
35b3a27e 1699
648e5523 17002013-02-15 Eli Zaretskii <eliz@gnu.org>
6e432f0c 1701
0e4e7b74
EZ
1702 * w32proc.c (new_child): If no vacant slots are found in
1703 child_procs[], make another pass looking for slots whose process
1704 has exited or died. (Bug#13546)
1705
6e432f0c
EZ
1706 * w32.c (sys_pipe): When failing due to file descriptors above
1707 MAXDESC, set errno to EMFILE.
1708 (_sys_read_ahead): Update cp->status when failing to read serial
1709 communications input, so that the status doesn't stay at
1710 STATUS_READ_IN_PROGRESS. (Bug#13546)
1711
51b3a99c
JD
17122013-02-14 Jan Djärv <jan.h.d@swipnet.se>
1713
1714 * gtkutil.c (tb_size_cb): New function.
1715 (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512).
1716
e31560a7
SM
17172013-02-14 Stefan Monnier <monnier@iro.umontreal.ca>
1718
1719 * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not
1720 an event.
1721
fe336261
SM
17222013-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
1723
1724 * keyboard.c (syms_of_keyboard): Further tweaks of docstring.
1725
5a655b9f
DA
17262013-02-13 Dmitry Antipov <dmantipov@yandex.ru>
1727
1728 * font.c (font_range): Add pos_byte argument. Adjust comment
1729 and break long line.
1730 * font.h (font_range): Adjust prototype.
1731 * composite.c (autocmp_chars): Pass byte position to font_range.
1732 Break long line. Remove useless prototype and format comment.
1733
1a359750
GM
17342013-02-13 Glenn Morris <rgm@gnu.org>
1735
1736 * keyboard.c (input-decode-map, key-translation-map): Doc fixes.
1737
01fcc3a5 17382013-02-13 Paul Eggert <eggert@cs.ucla.edu>
4458c255 1739
f53f992a
PE
1740 Improve AIX port some more (Bug#13650).
1741 With this, it should be as good as it was in 23.3, though it's
1742 still pretty bad: the dumped emacs does not run. See Mark Fleishman in
1743 http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html
1744 * unexaix.c (start_of_text): Remove.
1745 (_data, _text): Declare as char[], not int, as AIX manual suggests.
1746 (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
1747 (orig_load_scnptr, orig_data_scnptr):
1748 Now off_t, not long, since they are file offsets.
1749 (make_hdr): Use _data, not start_of_data ().
1750 This is the key part of the fix.
1751 (make_hdr, unrelocate_symbols): Use off_t for file offsets.
1752 (unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
1753
4458c255
PE
1754 * pre-crt0.c (data_start): Initialize to 1.
1755 This ports to compilers that optimize the external declaration
1756 'int x = 0;' as if it were 'int x;' to shrink the executable.
1757
227be86d
PE
1758 Improve AIX port (Bug#13650).
1759 This doesn't fix the bug, but it makes progress: Emacs builds now.
1760 * unexaix.c: Include inttypes.h, stdarg.h.
1761 (report_error, report_error_1): Mark as _Noreturn.
1762 (report_error): Don't report the wrong errno.
1763 (report_error_1): Now varargs. All callers changed.
1764 (make_hdr): Use uintptr_t, not unsigned, when converting pointers
1765 to unsigned. Don't use ADDR_CORRECT, as it no longer exists.
1766 (write_ptr): Use %p to print address rather than %lx and a cast
1767 to unsigned long. Grow buffer a bit, to be safer.
1768
01fcc3a5 17692013-02-13 Eli Zaretskii <eliz@gnu.org>
713bfeaa
EZ
1770
1771 * bidi.c (bidi_resolve_neutral): After finding the next
1772 non-neutral character, accept NEUTRAL_ON type as well, because
1773 directional control characters, such as LRE and RLE, have their
1774 type converted to that by bidi_resolve_weak. This avoids aborts
1775 when LRE/RLE follows a run of neutrals.
1776 (bidi_move_to_visually_next): Assert that return value of
1777 bidi_peek_at_next_level is non-negative. Negative values will
1778 cause an infloop.
1779
83be8524
PE
17802013-02-13 Paul Eggert <eggert@cs.ucla.edu>
1781
1782 Minor getenv-related fixes.
1783 * callproc.c (Fcall_process_region) [!DOS_NT]:
1784 Avoid unnecessary duplicate call to getenv.
1785 * callproc.c (init_callproc):
1786 * dispnew.c (init_display):
1787 * sysdep.c (sys_subshell):
1788 Omit unnecessary cast of getenv or egetenv.
1789
45b2b768
JB
17902013-02-13 Juanma Barranquero <lekktu@gmail.com>
1791
1792 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)):
1793 Update dependencies.
1794
33b49d71
EZ
17952013-02-12 Eli Zaretskii <eliz@gnu.org>
1796
1797 * xdisp.c (redisplay_internal): Don't set w->region_showing to the
1798 marker's position.
1799 (display_line): Set w->region_showing to the value of
1800 it->region_beg_charpos, not to -1. This fixes redisplay
1801 optimization when cursor is moved up after M->. (Bug#13623)
1802 (Bug#13626)
c4131562
EZ
1803 (try_scrolling): Scroll text up more if point is too close to ZV
1804 and inside the scroll margin. This makes sure point is moved
1805 outside the scroll margin in these cases.
33b49d71
EZ
1806
1807 * window.h (struct window): region_showing can no longer be
1808 negative.
1809
b09a4810
PE
18102013-02-11 Paul Eggert <eggert@cs.ucla.edu>
1811
a84b7c53
PE
1812 Tune by using memchr and memrchr.
1813 * doc.c (Fsnarf_documentation):
1814 * fileio.c (Fsubstitute_in_file_name):
1815 * search.c (find_newline, scan_newline):
1816 * xdisp.c (pos_visible_p, display_count_lines):
1817 Use memchr and memrchr rather than scanning byte-by-byte.
1818 * search.c (find_newline): Rename from scan_buffer.
1819 Omit first arg TARGET, as it's always '\n'. All callers changed.
1820
b09a4810
PE
1821 Clean up read_key_sequence a tiny bit more.
1822 * keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]:
1823 (read_key_sequence): Remove unused locals.
1824
99d0d6dc
SM
18252013-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
1826
1827 Clean up read_key_sequence a bit; reread active keymaps after first event.
1828 * keyboard.c (read_char, read_char_x_menu_prompt)
1829 (read_char_minibuf_menu_prompt):
1830 Replace nmaps+maps with a single `map' arg.
1831 (follow_key): Operate on a single map.
1832 (active_maps): New function.
1833 (test_undefined): Also return true for nil bindings.
1834 (read_key_sequence): Use active_maps to replace the arrays of keymaps with
1835 a single (composed) keymap. Remember `first_event' to choose the right
1836 set of active keymaps. Recompute the set of keymaps after receiving
1837 the first event. Remove GOBBLE_FIRST_EVENT.
1838 (syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
1839 * keyboard.h (read_char): Update declaration.
1840 * lread.c (read_filtered_event): Adjust call to read_char.
1841
f5e1b680
EZ
18422013-02-11 Eli Zaretskii <eliz@gnu.org>
1843
99d0d6dc
SM
1844 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1845 Don't use the limitation on backwards movement when lines are truncated
f5e1b680
EZ
1846 in the window. (Bug#13675)
1847
f74de345
DA
18482013-02-11 Dmitry Antipov <dmantipov@yandex.ru>
1849
1850 * marker.c (set_marker_internal): If desired position is passed
1851 as a marker, avoid call to buf_charpos_to_bytepos.
1852 * window.c (Fset_window_point): Omit redundant type checking.
1853 (Fset_window_start): Likewise. Format comment.
1854 (window_scroll_pixel_based): Use set_marker_restricted_both
1855 with character and byte positions obtained from an iterator.
1856 (Fset_window_configuration): Use set_marker_restricted_both.
1857 * xdisp.c (message_dolog): Likewise.
1858
a4ba3963
EZ
18592013-02-10 Eli Zaretskii <eliz@gnu.org>
1860
99d0d6dc
SM
1861 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1862 When text lines are longer than window's screen lines, don't move back
a4ba3963
EZ
1863 too far. This speeds up some redisplay operations. (Bug#13675)
1864
68643cde
DA
18652013-02-10 Dmitry Antipov <dmantipov@yandex.ru>
1866
1867 * syntax.c (scan_sexps_forward): Fix byte position calculation
1868 Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change.
1869
7ba11bee
PE
18702013-02-10 Paul Eggert <eggert@cs.ucla.edu>
1871
1872 * fileio.c (Fexpand_file_name): Omit confusing pointer comparison
1873 that was not needed.
1874
eff1c190
PE
18752013-02-09 Paul Eggert <eggert@cs.ucla.edu>
1876
1877 Minor hashing refactoring.
1878 * fns.c (SXHASH_REDUCE): Move to lisp.h.
1879 (sxhash_float): Return EMACS_UINT, for consistency with the other
1880 hash functions.
1881 * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a
1882 non-static inline function and therefore can't use static vars.
1883 (SXHASH_REDUCE): Move here from fns.c, and make it inline.
1884 * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent
1885 with the other hash functions.
1886
6b48c831
EZ
18872013-02-09 Eli Zaretskii <eliz@gnu.org>
1888
4dde2087
EZ
1889 * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the
1890 XXXXXX part of the temporary file pattern is not downcased even
1891 when w32-downcase-file-names is non-nil. (Bug#13661)
74ba1583 1892
8549f9e8
EZ
1893 * xdisp.c (decode_mode_spec): Remove handling of %t.
1894
6b48c831
EZ
1895 * msdos.c (careadlinkatcwd): Remove.
1896
75a65c7e
SM
18972013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
1898
1899 * lread.c (skip_dyn_bytes): New function (bug#12598).
1900 (read1): Use it. Use getc instead of READCHAR to read bytes.
1901 (load_each_byte): Remove. Update users.
1902
8ca30920
DA
19032013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1904
1905 * search.c (scan_buffer): Calculate end byte position just once.
1906 (scan_newline): Do not recalculate start_byte.
1907 (search_command): Use eassert.
1908 * syntax.c (struct lisp_parse_state): New member location_byte.
1909 (scan_sexps_forward): Record from_byte and avoid redundant
1910 character to byte position calculation ...
1911 (Fparse_partial_sexp): ... here. Break too long line.
1912
25721f5b
DA
19132013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1914
1915 * lisp.h (make_uninit_vector): New function.
1916 * alloc.c (Fvector, Fmake_byte_code):
1917 * ccl.c (Fregister_ccl_program):
1918 * charset.c (Fdefine_charset_internal, define_charset_internal):
1919 * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
1920 * composite.c (syms_of_composite):
1921 * font.c (Fquery_font, Ffont_info, syms_of_font):
1922 * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
1923 * ftfont.c (ftfont_shape_by_flt):
1924 * indent.c (recompute_width_table):
1925 * nsselect.m (clean_local_selection_data):
1926 * syntax.c (init_syntax_once):
1927 * w32unsubscribe.c (uniscribe_shape):
1928 * window.c (Fcurrent_window_configuration):
1929 * xfaces.c (Fx_family_fonts):
1930 * xselect.c (selection_data_to_lisp_data): Use it.
1931
9a9d91d9
DA
19322013-02-07 Dmitry Antipov <dmantipov@yandex.ru>
1933
1934 * coding.c (Fdefine_coding_system_internal): Use AREF where
1935 argument is known to be a vector.
1936 * fns.c (Flocale_info): Likewise for ASET.
1937 * xselect.c (selection_data_to_lisp_data): Likewise for ASET.
1938 * w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
1939
6871e574
JD
19402013-02-05 Jan Djärv <jan.h.d@swipnet.se>
1941
1942 * nsmenu.m (update_frame_tool_bar): Check for negative tool bar
1943 height.
1944
1945 * nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
1946 (EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
1947 updateCollectionBehaviour.
1948
1949 * nsterm.m (NEW_STYLE_FS): Remove.
1950 (ns_last_use_native_fullscreen): New variable.
1951 (x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
1952 (x_set_window_size): Do not take title bar and tool bar into account
1953 if isFullscreen returns YES.
1954 (ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
1955 (check_native_fs): New function.
1956 (ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
1957 (ns_term_init): Remove NEW_STYLE_FS.
1958 (updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
1959 and tool bar if isFullscreen returns NO.
1960 (windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
1961 (initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
1962 with HAVE_NATIVE_FS.
1963 (window:willUseFullScreenPresentationOptions:): New method.
1964 (windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
1965 Hide toolbar if not enabled (Bug#13444).
1966 (windowDidExitFullScreen:): Call updateCollectionBehaviour.
1967 Restore tool bar if enabled, hide it otherwise (Bug#13444).
1968 (fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
1969 (toggleFullScreen:): If fs_is_native, call toggleFullScreen on
1970 window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
1971 Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
1972 FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
1973 (syms_of_nsterm): Add ns-use-native-fullscreen.
1974
3f011c7f
PE
19752013-02-04 Paul Eggert <eggert@cs.ucla.edu>
1976
1977 * fileio.c (Qchoose_write_coding_system): Now static.
1978
86f7c0fe
EZ
19792013-02-04 Eli Zaretskii <eliz@gnu.org>
1980
1981 * xdisp.c (window_buffer_changed): region_showing can be negative,
1982 which still means region is being displayed.
1983 (redisplay_internal): Resurrect code that forced redisplay of the
99d0d6dc
SM
1984 whole window when showing region and the mark has changed.
1985 Record the new mark position to allow redisplay optimizations.
86f7c0fe
EZ
1986 (display_line): If it->region_beg_charpos is non-zero, set the
1987 window's region_showing member to -1. (Bug#13623) (Bug#13626)
1988
1989 * window.h (struct window) <region_showing>: Declare ptrdiff_t,
1990 not bitfield of 1 bit.
1991
5257b701
DC
19922013-02-03 Daniel Colascione <dancol@dancol.org>
1993
1994 * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that
1995 daemon mode works on cygw32 when Emacs is installed and not just
1996 during development.
1997
8ea41ea9
PE
19982013-02-02 Paul Eggert <eggert@cs.ucla.edu>
1999
2000 Avoid file time stamp bug on MS-Windows (Bug#13149).
2001 * fileio.c (Fwrite_region): Don't use the heuristic on empty files,
2002 as FAT32 doesn't update time stamps when truncating them.
2003 Also, check that a file time stamp is not a multiple of 100 ns;
2004 this should catch all instances of the problem on MS-Windows,
2005 as its native file system resolution is 100 ns or worse, and
2006 checking for a non-multiple of 100 ns should impose only a small
2007 overhead on systems with ns resolution.
2008
94fbc901 20092013-02-02 Eli Zaretskii <eliz@gnu.org>
18a80473 2010
e7ac588e
EZ
2011 Avoid encoding file names on MS-Windows when they need to be run
2012 through dostounix_filename.
2013 * w32.c (normalize_filename): Accept an additional argument
2014 MULTIBYTE; if non-zero, traverse the file name by bytes and don't
2015 downcase it even if w32-downcase-file-names is non-nil.
2016 (dostounix_filename): Accept an additional argument MULTIBYTE and
2017 pass it to normalize_filename.
2018 (emacs_root_dir): Adjust.
2019
2020 * msdos.h (dostounix_filename): Adjust prototype.
2021
2022 * w32.h (dostounix_filename): Adjust prototype.
2023
2024 * msdos.c (dostounix_filename): Accept an additional argument and
2025 ignore it.
2026 (init_environment): Adjust callers of dostounix_filename.
2027
2028 * fileio.c (Ffile_name_directory, file_name_as_directory)
2029 (directory_file_name, Fexpand_file_name)
2030 (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
2031 dostounix_filename.
2032 [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
2033 non-nil.
2034 (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
2035 variables, as egetenv is case-insensitive for DOS_NT.
2036
2037 * dired.c (file_name_completion): Don't call Fdirectory_file_name
2038 with an encoded file name.
2039
99d0d6dc
SM
2040 * w32proc.c (Fw32_short_file_name, Fw32_long_file_name):
2041 Adjust calls to dostounix_filename.
e7ac588e
EZ
2042
2043 * w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
2044
2045 * unexw32.c (unexec): Adjust call to dostounix_filename.
2046
2047 * termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
2048
2049 * emacs.c (decode_env_path) [DOS_NT]: Adjust call to
2050 dostounix_filename.
2051
2052 * callproc.c (Fcall_process) [MSDOS]: Adjust call to
2053 dostounix_filename.
2054
e7c3fb06
EZ
2055 * callproc.c (Fcall_process): Make sure program name in PATH and
2056 new_argv[0] is encoded, if needed. Otherwise, un-encoded string
2057 is passed to exec/spawnve, which fails unless the file-name
2058 encoding is UTF-8.
2059
18a80473
EZ
2060 * w32proc.c (sys_spawnve): Make sure escape_char is initialized,
2061 even if w32-quote-process-args is nil.
2062
35e85499
PE
20632013-02-01 Paul Eggert <eggert@cs.ucla.edu>
2064
2065 Fix timestamp bug when write-region appends nothing (Bug#13149).
2066 * fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used,
2067 the file's time stamp doesn't change if Emacs happens to write nothing
2068 to the file, and on a buggy file system this could cause Emacs to
2069 incorrectly infer that the file system doesn't have the bug.
2070 Avoid this problem by inhibiting the inference in this case.
2071
422ff52b
DA
20722013-02-01 Dmitry Antipov <dmantipov@yandex.ru>
2073
2074 * window.h (struct window): Convert base_line_number, base_line_pos
2075 and column_number_displayed members from Lisp_Object to ptrdiff_t.
2076 Convert region_showing member from Lisp_Object to bitfield.
2077 Remove sequence_number member. Adjust comments.
2078 * window.c (sequence_number): Remove.
2079 (make_window): Initialize column_number_displayed.
2080 * print.c (print_object): Follow the printed representation of
2081 frames and print window pointer to distinguish between windows.
2082 (adjust_window_count): Invalidate base_line_pos. Adjust comment.
2083 * xdisp.c (wset_base_line_number, wset_base_line_pos)
2084 (wset_column_number_displayed, wset_region_showing): Remove.
2085 (window_buffer_changed, mode_line_update_needed, redisplay_internal)
2086 (try_scrolling, try_cursor_movement, redisplay_window)
2087 (try_window_reusing_current_matrix, try_window_id, display_line)
2088 (display_mode_lines, decode_mode_spec): Adjust users.
2089 * .gdbinit (pwinx): Do not print sequence_number.
2090
8654f9d7
PE
20912013-02-01 Paul Eggert <eggert@cs.ucla.edu>
2092
2093 Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539).
2094 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
2095 * dired.c: Include <fcntl.h>.
2096 (open_directory): New function, which uses open and fdopendir
2097 rather than opendir. DOS_NT platforms still use opendir, though.
2098 (directory_files_internal, file_name_completion): Use it.
2099 (file_attributes): New function, with most of the old Ffile_attributes.
2100 (directory_files_internal, Ffile_attributes): Use it.
2101 (file_attributes, file_name_completion_stat): First arg is now fd,
2102 not dir name. All uses changed. Use fstatat rather than lstat +
2103 stat.
2104 (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
2105 * fileio.c: Include <allocator.h>, <careadlinkat.h>.
2106 (emacs_readlinkat): New function, with much of the old
2107 Ffile_symlink_p, but with an fd argument for speed.
2108 It uses readlinkat rather than careadlinkatcwd, so that it
2109 need not assume the working directory.
2110 (Ffile_symlink_p): Use it.
2111 * filelock.c (current_lock_owner): Use emacs_readlinkat
2112 rather than emacs_readlink.
2113 * lisp.h (emacs_readlinkat): New decl.
2114 (READLINK_BUFSIZE, emacs_readlink): Remove.
2115 * sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
2116 (emacs_norealloc_allocator, emacs_readlink): Remove.
2117 This stuff is moved to fileio.c.
2118 * w32.c (fstatat, readlinkat): New functions.
2119 (careadlinkat): Don't check that fd == AT_FDCWD.
2120 (careadlinkatcwd): Remove; no longer needed.
2121
9dbda100
GM
21222013-01-31 Glenn Morris <rgm@gnu.org>
2123
2124 * fileio.c (choose_write_coding_system): Make it callable from Lisp.
20a8c477
GM
2125 (Fwrite_region): Update for new choose_write_coding_system args.
2126 Move the last piece of choose_write_coding_system here. (Bug#13522)
9dbda100
GM
2127 (syms_of_fileio): Add choose-write-coding-system.
2128
3f82a88a 21292013-01-30 Eli Zaretskii <eliz@gnu.org>
224f4ec1
EZ
2130
2131 * w32.c (sys_open): Zero out the flags for the new file descriptor.
2132 (sys_close): Zero out the flags for the file descriptor before
2133 closing it. (Bug#13546)
2134
806fed21 2135 * w32.c (parse_root, get_volume_info, readdir, read_unc_volume)
99d0d6dc
SM
2136 (logon_network_drive, stat_worker, symlink, chase_symlinks):
2137 Use CharNextExA and CharPrevExA to iterate over file names encoded in
806fed21
EZ
2138 DBCS. (Bug#13553)
2139
6ee4509a
EZ
2140 * w32.c (w32_get_long_filename, init_environment, readlink):
2141 Support file names encoded in DBCS codepages.
26854e9c
EZ
2142 (readlink): Use the current file-name-coding-system, not the ANSI
2143 codepage, to decode and handle targets of symlinks.
6ee4509a 2144
cf01a359
EZ
21452013-01-28 Eli Zaretskii <eliz@gnu.org>
2146
2147 * w32.c (opendir): Now accepts a 'const char *'.
2148
6fd326b7
DA
21492013-01-28 Dmitry Antipov <dmantipov@yandex.ru>
2150
2151 Remove obsolete redisplay code. See the discussion at
2152 http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00576.html.
2153 * dispnew.c (preemption_period, preemption_next_check): Remove.
2154 (Vredisplay_preemption_period): Likewise.
2155 (update_frame, update_single_window, update_window, update_frame_1):
2156 Adjust users. Always assume that PERIODIC_PREEMPTION_CHECKING is not
2157 used, following the 2012-06-22 change.
2158
d8cd7742
EZ
21592013-01-25 Eli Zaretskii <eliz@gnu.org>
2160
2161 * w32notify.c (Fw32notify_add_watch): Doc fix. (Bug#13540)
2162
266fee4f
DA
21632013-01-25 Dmitry Antipov <dmantipov@yandex.ru>
2164
2165 * font.c (num_fonts): Remove the leftover from old
2166 debugging code. Adjust comment style here and there.
59e624b3
DA
2167 * insdel.c (insert_1): Remove.
2168 * lisp.h (insert_1): Remove prototype.
2169 * xdisp.c (message_dolog): Adjust users to call insert_1_both.
266fee4f 2170
830e46e6 21712013-01-25 Eli Zaretskii <eliz@gnu.org>
6d2851de
EZ
2172
2173 * w32.c (max_filename_mbslen): New function.
2174 (normalize_filename, readdir): Use it to detect locales where ANSI
2175 encoding of file names uses a double-byte character set (DBCS).
2176 If a DBCS encoding is used, advance by characters using
99d0d6dc
SM
2177 CharNextExA, instead of incrementing a 'char *' pointer.
2178 Use _mbslwr instead of _strlwr. (Bug#13515)
6d2851de 2179
81abbb95
EZ
2180 * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial
2181 request of memory reservation to 1.7GB. (Bug#13065)
2182
830e46e6 21832013-01-25 Andreas Schwab <schwab@linux-m68k.org>
ba14c607
AS
2184
2185 * coding.c (detect_coding_iso_2022): Move back mis-reordered code
2186 at check_extra_latin label. (Bug#13505)
2187
fd3ceb09
DA
21882013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2189
2190 * nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script):
2191 Avoid redundant calls to strlen.
2192
edfa7fa0
DA
21932013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2194
2195 Drop async_visible and async_iconified fields of struct frame.
2196 This is possible because async input is gone; for details, see
2197 http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
2198 * frame.h (struct frame): Remove async_visible and async_iconified
2199 members, convert garbaged to unsigned bitfield. Adjust comments.
2200 (FRAME_SAMPLE_VISIBILITY): Remove. Adjust all users.
2201 (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
2202 * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
2203 Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
2204 FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
2205 * w32term.c: Ditto.
2206 (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
2207 properly. Likewise for obscured.
2208 * xterm.c: Ditto.
266fee4f 2209 (handle_one_xevent): Save visible state to generate ICONIFY_EVENT
edfa7fa0
DA
2210 properly.
2211 * nsterm.m: Ditto.
2212 (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
2213
5ad86e34
DA
22142013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2215
2216 * insdel.c (prepare_to_modify_buffer): Revert last change as suggested
2217 in http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00555.html.
2218
b09cca6a
SM
22192013-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
2220
2221 * xdisp.c (message2, message2_nolog): Remove functions.
2222 (message3, message3_nolog): Extract nbytes and multibyteness directly
2223 from the string. Change all callers.
2224 (message3_nolog): Don't set message_enable_multibyte since set_message
2225 will reset it anyway.
2226 (message1, message1_nolog): Use message3.
2227 (vmessage): Use a stack allocated buffer rather than f->message_buf.
2228 (with_echo_area_buffer): Remove last two arguments. Update all callers.
2229 (set_message): Drop all but the second arg, which has to be a string.
2230 (set_message_1): Simplify now that we know that a1 is NULL and the
2231 second arg is a string.
2232 * frame.h (struct frame): Remove `message_buf' field.
2233 Use glyphs_initialized_p instead.
2234 (FRAME_MESSAGE_BUF): Remove macro.
2235 * w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2.
2236 * lisp.h (message2, message2_nolog): Remove declarations.
2237 (message3, message3_nolog): Update declarations.
2238 * keyboard.c (read_char_minibuf_menu_text)
2239 (read_char_minibuf_menu_width): Remove vars.
2240 (read_char_minibuf_menu_prompt): Rewrite the menu's construction so as
2241 to correctly handle multibyte strings.
2242 * frame.c (delete_frame): Don't free message_buf any more.
2243 * editfns.c (message_text, message_length): Remove vars.
2244 (Fmessage_box): Don't copy the Lisp string's bytes any longer.
2245 * fileio.c (auto_save_error): Use message3 instead of message2.
2246 * dispnew.c (adjust_frame_message_buffer): Remove function.
2247
54ab1c5a
EZ
22482013-01-23 Eli Zaretskii <eliz@gnu.org>
2249
2250 * w32term.c (w32fullscreen_hook): Account correctly for the screen
2251 real estate used for the tool bar and the menu bar.
2252
6c27465b
DA
22532013-01-23 Dmitry Antipov <dmantipov@yandex.ru>
2254
2255 * insdel.c (prepare_to_modify_buffer): Force redisplay if
2256 hidden buffer is prepared to modification (Bug#13164).
2257
9d93ce29
DA
22582013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
2259
2260 * window.h (struct window): Change window_end_valid member from
2261 Lisp_Object to a bitfield. Adjust comments.
2262 (wset_window_end_valid): Remove.
2263 * window.c (adjust_window_count): Clear window_end_valid.
2264 (Fwindow_end): Adjust user. Remove ancient #if 0 code.
2265 (Fwindow_line_height, set_window_buffer, Frecenter)
2266 (Fsplit_window_internal, Fdelete_other_windows_internal)
2267 (Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
2268 * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
2269 * xdisp.c (check_window_end, reconsider_clip_changes)
2270 (redisplay_internal, mark_window_display_accurate_1, redisplay_window)
2271 (try_window, try_window_reusing_current_matrix, note_mouse_highlight)
2272 (find_first_unchanged_at_end_row, try_window_id): Likewise.
2273
1dcb8ea2
DA
22742013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
2275
2276 * xdisp.c (mark_window_display_accurate): Simplify the loop
2277 assuming that the only one of vchild, hchild or buffer window
2278 slots is non-nil. Call mark_window_display_accurate_1 for
2279 the leaf windows only.
2280 (mark_window_display_accurate_1): Always assume leaf window.
2281 Adjust comment.
2282
b41b8a7e
PE
22832013-01-22 Paul Eggert <eggert@cs.ucla.edu>
2284
593a5f2e
PE
2285 * emacs.c (Qkill_emacs_hook): Now static.
2286
b41b8a7e
PE
2287 * fileio.c (Finsert_file_contents): Simplify.
2288 Remove unnecessary assignments and tests.
2289
84e5ed96
EZ
22902013-01-21 Eli Zaretskii <eliz@gnu.org>
2291
2292 * w32.c (acl_set_file): Don't test for errors unless
2293 set_file_security returns FALSE. Avoids spurious errors when
2294 saving files.
2295
2ef88fd4
DA
22962013-01-21 Dmitry Antipov <dmantipov@yandex.ru>
2297
2298 * fileio.c (Finsert_file_contents): Revert code introduced at
2299 2013-01-18 in favor of the simpler and generally better fix.
2300 Save stack space by removing 'buffer' and reusing 'read_buf'
2301 where appropriate.
2302
d7a0a7c9
PE
23032013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2304
2305 * lisp.h (eabs): Define unconditionally (Bug#13419).
2306 The old "#if !defined (eabs)" was an unnecessary revenant of back
2307 when this macro was called "abs". Document 'eabs' better.
2308
795e7a5b 23092013-01-19 Glenn Morris <rgm@gnu.org>
085d34c4
GM
2310
2311 * fns.c (Frandom): Doc fix.
2312
59ac2d13
EZ
23132013-01-19 Eli Zaretskii <eliz@gnu.org>
2314
2315 * editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid
2316 segfault when there are lots of overlays.
2317
2318 * buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault
99d0d6dc
SM
2319 when there are lots of overlays.
2320 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00421.html
59ac2d13
EZ
2321 for the details and a way to reproduce.
2322
b3fbb395
PE
23232013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2324
3a955a1f
PE
2325 * fileio.c: Use O_APPEND to append.
2326 This corresponds better to the natural interpretation of "append",
2327 and avoids the need to open the output file twice, or to invoke
2328 lseek when APPEND is neither nil nor a number.
2329 This relies on POSIX 1003.1-1988 or later, which is OK nowadays.
2330 (Fwrite_region): Simplify. Use O_APPEND instead of opening the
2331 file possibly twice, and lseeking to its end; this avoids the
2332 need to lseek on non-regular files. Do not use O_EXCL and O_TRUNC
2333 at the same time: the combination is never needed and apparently
2334 it doesn't work with DOS_NT.
2335
21cd50b8
PE
2336 Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149).
2337 * fileio.c (Fwrite_region): Use O_BINARY in checking code, too.
2338
b3fbb395
PE
2339 Allow floating-point file offsets.
2340 Problem reported by Vitalie Spinu in
2341 <http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00411.html>.
2342 * fileio.c (emacs_lseek): Remove.
2343 (file_offset): New function.
2344 (Finsert_file_contents, Fwrite_region): Use it.
2345
73c14218
CY
23462013-01-19 Chong Yidong <cyd@gnu.org>
2347
2348 * emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid
2349 aborting on Fsignal (Bug#13289).
2350
6a9465f3
EZ
23512013-01-19 Eli Zaretskii <eliz@gnu.org>
2352
2353 * w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from
2354 set_file_security as failure due to insufficient privileges.
2355 Reported by Fabrice Popineau <fabrice.popineau@supelec.fr>.
76e9f7b9 2356 (fstat): Return owner and group like 'stat' and 'lstat' do.
6a9465f3 2357
fa705c99
PE
23582013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2359
9fe43ff6
PE
2360 Work around bug in CIFS and vboxsf file systems (Bug#13149).
2361 The bug was observed on Ubuntu operating inside a virtual machine,
2362 editing files mounted via CIFS or vboxsf from the MS Windows 7 host.
2363 The workaround introduces a race condition on non-buggy hosts,
2364 but it's an unlikely race and anyway there's a nearly identical
2365 nearby race that can't be fixed.
2366 * fileio.c (valid_timestamp_file_system, timestamp_file_system):
2367 New static vars.
2368 (Fwrite_region): Test for file system time stamp bug.
2369 (init_fileio): New function.
2370 * lisp.h (init_fileio): Declare it.
2371 * emacs.c (main): Call it.
2372
fa705c99
PE
2373 * fileio.c (Finsert_file_contents): Simplify new diagnostic
2374 and make it more consistent with other stat-failure diagnostics.
2375
e07469fa
DA
23762013-01-18 Dmitry Antipov <dmantipov@yandex.ru>
2377
99d0d6dc
SM
2378 Fix crash when inserting data from non-regular files.
2379 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00406.html
e07469fa
DA
2380 for the error description produced by valgrind.
2381 * fileio.c (read_non_regular): Rename to read_contents.
2382 Free Lisp_Save_Value object used to pass parameters.
2383 (read_non_regular_quit): Rename to read_contents_quit.
2384 (Finsert_file_contents): Redesign internal file reading loop to adjust
2385 gap and end positions after each read and so help make_gap to work
2386 properly. Do not signal an I/O error too early and so do not leave
2387 not yet decoded characters in a buffer, which was the reason of
2388 redisplay crash. Use list2 to build return value. Adjust comments.
2389
67722112
PE
23902013-01-17 Paul Eggert <eggert@cs.ucla.edu>
2391
2392 Close a race when statting and reading files (Bug#13149).
2393 * fileio.c (Finsert_file_contents): Use open+fstat, not stat+open.
2394 This avoids a race if the file is renamed between stat and open.
2395 This race is not the problem originally noted in Bug#13149;
2396 see <http://bugs.gnu.org/13149#73> and later messages in the thread.
2397
468afbac
DA
23982013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
2399
2400 * lisp.h (toplevel): Add comment about using Lisp_Save_Value
2401 objects, related functions and macros.
2402 (make_save_value): Adjust prototype.
2403 (make_save_pointer): New prototype.
2404 (SAFE_NALLOCA): Fix indentation. Use make_save_pointer.
2405 (SAFE_ALLOCA_LISP): Adjust make_save_value usage.
2406 * alloc.c (format_save_value): Rename to make_save_value.
2407 (make_save_pointer): New function.
2408 (record_xmalloc): Use make_save_pointer.
2409 * dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c:
2410 * nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c:
2411 Change users of make_save_value to make_save_pointer.
2412 Likewise for format_save_value and make_save_value.
2413
0e70695a
DA
24142013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
2415
2416 * buffer.h (NARROWED, BUF_NARROWED): Drop unused macros.
2417 (DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation.
2418 * buffer.c (toplevel, syms_of_buffer): Drop old commented-out
2419 debugging stubs.
2420
963ea40f
PE
24212013-01-15 Paul Eggert <eggert@cs.ucla.edu>
2422
2423 * alloc.c (free_save_value): Now static.
2424
3346c1d0
DA
24252013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2426
2427 * keymap.c (map_keymap_internal): Use format_save_value.
2428 (map_keymap_char_table_item): Adjust accordingly.
2429 * fileio.c (non_regular_fd, non_regular_inserted)
2430 (non_regular_nbytes): Remove.
99d0d6dc
SM
2431 (Finsert_file_contents): Convert trytry to ptrdiff_t.
2432 Use format_save_value to pass parameters to read_non_regular.
3346c1d0
DA
2433 (read_non_regular): Use XSAVE_ macros to extract parameters.
2434 Adjust comment.
2435 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
2436 format_save_value.
2437 (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
2438
2b30549c
DA
24392013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2440
2441 * lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
2442 extraction from any Lisp_Save_Value slot. Add type checking.
2443 * alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c:
2444 * keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c:
2445 * xselect.c: All users changed.
2446
1b971ac1
DA
24472013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2448
2449 Some convenient bits to deal with Lisp_Save_Values.
2450 * lisp.h (XSAVE_OBJECT): New macro to extract saved objects.
2451 (allocate_misc): Remove prototype.
2452 (format_save_value): New prototype.
2453 * alloc.c (allocate_misc): Revert back to static.
2454 (format_save_value): New function to build Lisp_Save_Value
2455 object with the specified internal structure.
2456 (make_save_value): Reimplement using format_save_value.
2457 * editfns.c (save_excursion_save): Use format_save_value.
2458 (save_excursion_restore): Use XSAVE_OBJECT.
2459
c50cf2ea
PE
24602013-01-14 Paul Eggert <eggert@cs.ucla.edu>
2461
2462 Avoid needless casts with XSAVE_POINTER.
2463 * alloc.c (mark_object) [GC_MARK_STACK]:
2464 * dired.c (directory_files_internal_unwind):
2465 * fileio.c (do_auto_save_unwind):
2466 * gtkutil.c (pop_down_dialog):
2467 * keymap.c (map_keymap_char_table_item):
2468 * lread.c (load_unwind):
2469 * nsmenu.m (pop_down_menu):
2470 * print.c (print_object) [GC_MARK_STACK]:
2471 * xfns.c (clean_up_file_dialog):
2472 * xmenu.c (cleanup_widget_value_tree):
2473 Omit casts between XSAVE_POINTER and a pointer type.
2474
9d5a1260
DA
24752013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
2476
2477 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
2478 * eval.c (eval_sub): Protect `form' from being GCed before its
2479 car and cdr becomes protected with the backtrace entry.
2480
73ebd38f
DA
24812013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
2482
2483 Make Lisp_Save_Value more versatile storage for up to four objects.
2484 * lisp.h (toplevel): Enumeration to describe types of saved objects.
2485 (struct Lisp_Save_Value): New layout. Adjust comments.
2486 (XSAVE_POINTER): New macro.
2487 (XSAVE_INTEGER): Likewise.
2488 (allocate_misc): Add prototype.
2489 (free_misc): Likewise.
2490 * alloc.c (allocate_misc): Now global.
2491 (free_misc): Likewise. Adjust comment.
2492 (make_save_value): Use new Lisp_Save_Value layout. Adjust comment.
2493 (free_save_value): Likewise.
2494 (mark_object): Likewise.
2495 * editfns.c (save_excursion_save): Pack everything within
2496 Lisp_Save_Value and so avoid xmalloc.
2497 (save_excursion_restore): Adjust to match new layout. Use free_misc
2498 because we do not allocate extra memory any more. Add eassert.
2499 * print.c (print_object): New code to print Lisp_Save_Value. Do not
2500 rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments.
2501 * dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
2502 * lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
2503 Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
2504
b826986f
JD
25052013-01-13 Jan Djärv <jan.h.d@swipnet.se>
2506
2507 * nsfont.m (LCD_SMOOTHING_MARGIN): New define.
2508 (nsfont_draw): Remove disabling of LCD smoothing.
2509 (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix
2e7a1892 2510 Bug#11484 with LCD smoothing on.
b826986f 2511
c0511b57 25122013-01-13 Paul Eggert <eggert@cs.ucla.edu>
45b7bfdd 2513
b6f960a0
PE
2514 Fix SIGDANGER handlers, for AIX (Bug#13408).
2515 * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]:
2516 Move handlers here from emacs.c; they were out of place.
2517
616763d5
JD
25182013-01-11 Jan Djärv <jan.h.d@swipnet.se>
2519
2520 * xterm.c (syms_of_xterm): Adjust documentation for
2521 scroll-bar-adjust-thumb-portion.
2522
0b59090b 25232012-12-31 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
ec782c5f
JD
2524
2525 * xterm.c (scroll-bar-adjust-thumb-portion): New variable to
2526 determine whether scroll bar thumb size should be adjusted or
2527 not. Use variable for MOTIF.
2528
2529 * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for
2530 GTK.
2531
7bc916b4
JD
25322013-01-13 Jan Djärv <jan.h.d@swipnet.se>
2533
eac4d08f
JD
2534 * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key
2535 event is generated.
2536 (doCommandBySelector:): Set processingCompose to NO.
2537
7bc916b4
JD
2538 * nsfont.m (ns_findfonts): Add block/unblock_input calls.
2539 Remove check for fkeys count > zero, block/unblock fixes the real bug.
2540 (nsfont_list_family): Add block/unblock_input calls.
2541 (nsfont_open): Move block_input earlier. Add unblock_input before early
2542 return.
2543 (nsfont_draw): Add block/unblock_input calls.
2544
bdc9b756
PE
25452013-01-12 Dmitry Antipov <dmantipov@yandex.ru>
2546
2547 * indent.c (Fvertical_motion): Remove now-incorrect GCPROs
2548 for old_charpos and old_bytepos.
2549
ee56a6dc
PE
25502013-01-12 Paul Eggert <eggert@cs.ucla.edu>
2551
2552 Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415).
2553 * editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
2554 Clear tzvalbuf_in_environ if this workaround is in effect.
2555 Problem and fix reported by Kazuhiro Ito.
2556
9fc9a531
AH
25572013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com>
2558
99d0d6dc
SM
2559 * insdel.c (Fcombine_after_change_execute, syms_of_insdel):
2560 Fix ambiguous doc string cross-reference(s).
9fc9a531
AH
2561
2562 * keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
2563 doc string cross-reference(s).
2564
2565 * window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
2566 string cross-reference(s).
2567
6020559a
DA
25682013-01-11 Dmitry Antipov <dmantipov@yandex.ru>
2569
2570 Avoid unnecessary byte position calculation for the gap movement.
2571 Since all users of move_gap do CHAR_TO_BYTE for other purposes
2572 anyway, all of them should use move_gap_both instead.
2573 * lisp.h (move_gap): Remove prototype.
2574 * insdel.c (move_gap): Remove.
2575 (move_gap_both): Add eassert.
2576 * editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
2577 * xml.c (parse_region): Likewise.
2578
b8956427
PE
25792013-01-11 Paul Eggert <eggert@cs.ucla.edu>
2580
2581 emacsclient -t should not suspend Emacs server (Bug#13387)
2582 * lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
2583 New functions.
2584 * term.c (init_tty): Use them instead of rolling our own code.
2585 * sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this
2586 switches from 'signal' to 'pthread_sigmask', which is safer in
2587 multithreaded applications.
2588 * term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
2589 which has already arranged for that.
2590 (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
2591 This is the main part of the bug fix.
2592
0b59090b 25932013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change)
48660ca5
JD
2594
2595 * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around
2596 x_last_font_name (Bug#13403).
2597
58cc0a01
DA
25982013-01-10 Dmitry Antipov <dmantipov@yandex.ru>
2599
2600 Omit buffer_slot_type_mismatch and use generic predicates to enforce
2601 the type of per-buffer values where appropriate.
2602 * lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
2603 predicate, which is how it's really used now. Adjust comment.
2604 * buffer.h (buffer_slot_type_mismatch): Remove prototype.
2605 * buffer.c (buffer_slot_type_mismatch): Remove.
2606 (DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
2607 predicate. Adjust comment.
2608 (syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for
2609 fill-column, left-margin, tab-width, buffer-saved-size,
2610 left-margin-width, right-margin-width, left-fringe-width,
2611 right-fringe-width, scroll-bar-width and buffer-display-count.
2612 Use Qstringp for default-directory, buffer-file-name,
2613 buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for
2614 scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for
2615 line-spacing.
2616 * data.c (store_symval_forwarding): Adjust to call the predicate.
2617
5104861e
JB
26182013-01-09 Juanma Barranquero <lekktu@gmail.com>
2619
2620 * w32.c (get_name_and_id, acl_set_file):
2621 * w32term.c (w32fullscreen_hook): Remove unused local variables.
2622
eefd7278
DA
26232013-01-09 Dmitry Antipov <dmantipov@yandex.ru>
2624
2625 * lisp.h (make_gap_1): New prototype.
2626 * buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
2627 gap size values.
2628 * editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
2629 naming convention.
2630 (syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code.
2eae9ccc 2631 * insdel.c (make_gap_larger): Use GAP_BYTES_DFL. Adjust comment.
eefd7278
DA
2632 (make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment.
2633 (make_gap_1): New function to adjust the gap of any buffer.
2634 * coding.c (coding_alloc_by_making_gap): Use it.
2635 * buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE,
2636 GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment.
2637
073ca75b
JL
26382013-01-08 Juri Linkov <juri@jurta.org>
2639
2640 * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
2641 of (supports :underline (:style wave)). (Bug#13000)
2642
3bace969
AH
26432013-01-08 Aaron S. Hawley <aaron.s.hawley@gmail.com>
2644
2645 * undo.c (Fprimitive_undo): Move to simple.el.
2646 (syms_of_undo): Remove declarations for Sprimitive_undo.
2647
63a63bd4
SM
26482013-01-08 Stefan Monnier <monnier@iro.umontreal.ca>
2649
2650 * keyboard.c (echo_add_key): Rename from echo_add_char.
2651
56ed110a
CY
26522013-01-06 Chong Yidong <cyd@gnu.org>
2653
2654 * keyboard.c (echo_add_char): New function, factored out from
2655 echo_char. Don't add a space if the previous echo string was
2656 empty (Bug#13255).
2657 (echo_char): Use it.
2658 (read_key_sequence): When echoing mock input, ensure that the
2659 trailing dash is properly added.
2660
b630991b
EZ
26612013-01-05 Eli Zaretskii <eliz@gnu.org>
2662
2663 * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead
2664 of a non-portable "t" to print ptrdiff_t values. Allow up to 9
63a63bd4
SM
2665 digits for buffer positions, before misalignment starts.
2666 Display "0" for integer "object" field.
b630991b
EZ
2667 (dump_glyph_row): Adapt the header line to changes in dump_glyph.
2668 Display the newline glyph more unambiguously.
2669
f032a318
YM
26702013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2671
2672 * nsterm.m (ns_draw_underwave):
2673 * w32term.c (w32_draw_underwave):
2674 * xterm.c (x_draw_underwave): Make underwave look more triangular
2675 and also degrade gracefully for small fonts. (Bug#13000)
2676
4240dd3c
YM
2677 * nsterm.m (ns_draw_text_decoration):
2678 * w32term.c (x_draw_glyph_string):
2679 * xterm.c (x_draw_glyph_string): Don't use previous underline
2680 thickness and position if previous underline type is underwave.
2681
553081a5
SM
26822013-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
2683
2684 * fileio.c (Ffile_acl): Undocument return format.
2685
9539d465 26862013-01-02 Glenn Morris <rgm@gnu.org>
08f59219
GM
2687
2688 * keymap.c (Fkey_description): Doc fix. (Bug#13323)
2689
71376d4b
PE
26902013-01-02 Paul Eggert <eggert@cs.ucla.edu>
2691
2692 Simplify via eabs.
2693 * dired.c (file_name_completion):
2694 * doc.c (get_doc_string):
2695 * floatfns.c (round2):
2696 * font.c (font_score, font_delete_unmatched):
2697 * fringe.c (compute_fringe_widths):
2698 * lread.c (read_list):
2699 * minibuf.c (Ftry_completion):
2700 * term.c (tty_ins_del_lines):
2701 * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
2702 Use eabs (x) rather than open-coding it as (x < 0 ? -x : x).
2703
a7f11948
EZ
27042012-12-31 Eli Zaretskii <eliz@gnu.org>
2705
2706 * w32.c (unsetenv): Set up the string passed to _putenv
63a63bd4
SM
2707 correctly.
2708 See http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00863.html
a7f11948
EZ
2709 for the bug this caused.
2710
84cc1ab6
PE
27112012-12-30 Paul Eggert <eggert@cs.ucla.edu>
2712
2713 * coding.c (Qmac): Now static.
2714
5a1d858b
JD
27152012-12-30 Jan Djärv <jan.h.d@swipnet.se>
2716
2717 * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
2718 (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
2719 handlebox_widget. Set toolbar_in_hbox to false/true, set
2720 toolbar_is_packed to true.
2721 (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
2722 (update_frame_tool_bar): Check toolbar_is_packed for packing.
2723 Show all on TOOLBAR_TOP_WIDGET.
2724 (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned
2725 by TOOLBAR_TOP_WIDGET.
2726 (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
2727 Check toolbar_is_packed.
8b745d92
JD
2728 (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
2729 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2730 (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
2731 false.
2732 (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2733 (xg_update_menubar): Update title only if
2734 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2735 (xg_update_submenu): Skip tearoff only if
2736 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2737 (xg_initialize): Initialize xg_detached_menus only if
2738 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
5a1d858b
JD
2739
2740 * xterm.h (struct x_output): Surround handlebox_widget with
2741 #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new,
2742 toolbar_in_hbox is bool.
2743
d5e5e7b4 27442012-12-30 Andreas Schwab <schwab@linux-m68k.org>
2550c6e4
AS
2745
2746 * src/Makefile.in (TEMACS_LDFLAGS2): Remove.
2747 (LIBS_GNUSTEP): Define.
2748 (LIBES): Add $(LIBS_GNUSTEP).
2749 (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
2750
d5e5e7b4 27512012-12-30 Eli Zaretskii <eliz@gnu.org>
7a3a7493
EZ
2752
2753 * xdisp.c (set_cursor_from_row): Don't confuse a truncation or
2754 continuation glyph on a TTY with an indication of an empty line.
2755 (Bug#13277)
2756
e7ae8039
EZ
27572012-12-29 Eli Zaretskii <eliz@gnu.org>
2758
ccad023b
EZ
2759 * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
2760 file's SELinux context or ACLs successfully set, nil otherwise.
2761 (Bug#13298)
8d23a331 2762 (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
ccad023b 2763
e7ae8039
EZ
2764 * w32proc.c (reader_thread): Avoid passing NULL handles to
2765 SetEvent and WaitForSingleObject.
2766
7456e13f
PE
27672012-12-28 Paul Eggert <eggert@cs.ucla.edu>
2768
2769 Port EXTERNALLY_VISIBLE to Clang 3.2.
2770 * conf_post.h (__has_attribute): New macro.
2771 (EXTERNALLY_VISIBLE): Use it. This ports to Clang 3.2.
2772
1ab0c851
GM
27732012-12-27 Glenn Morris <rgm@gnu.org>
2774
2775 * cygw32.c (Fcygwin_convert_file_name_to_windows)
2776 (Fcygwin_convert_file_name_from_windows): Doc fixes.
2777
82e2a1f0 27782012-12-27 Eli Zaretskii <eliz@gnu.org>
f5c81c80 2779
63a63bd4
SM
2780 * fileio.c (file_name_as_directory, directory_file_name):
2781 Accept an additional argument MULTIBYTE to indicate whether the input C
f5c81c80
EZ
2782 came from a multibyte or a unibyte Lisp string; all callers
2783 adjusted. Don't assume the input string is always multibyte.
2784 (Bug#13262)
2785 (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly:
2786 don't ENCODE_FILE them, and return a unibyte string if the input
2787 was unibyte.
2788 (Fexpand_file_name): Don't mix unibyte with multibyte strings, and
2789 don't assume the input strings will always be multibyte. If the
2790 input strings are multibyte, decode strings obtained from C
2791 library functions.
2792
8847a0de
DA
27932012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2794
2795 * lisp.h (toplevel): Add two notices to the comment about
2796 defining a new Lisp data type.
6cda572a
DA
2797 * print.c (print_object): If Lisp_Save_Value object's pointer
2798 is the address of a memory area containing Lisp_Objects, try
2799 to print them.
2800 * alloc.c (valid_lisp_object_p): Adjust comment.
8847a0de 2801
4b298d5a
DA
28022012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2803
2804 * keyboard.c (record_asynch_buffer_change): Initialize an event
2805 only if it's really needed.
2806 * frame.h (enum output_method): Remove output_mac member since
2807 it's a leftover from the deleted code.
2808 * frame.c (Fframep): Adjust user here ...
2809 * terminal.c (Fterminal_live_p): ... and here.
2810 * coding.c (Qmac): Now here because it's only used to denote
2811 end-of-line encoding type.
2812 (syms_of_coding): DEFSYM it.
2813 * frame.h (Qmac): Remove duplicated declaration.
2814
12384b01
PE
28152012-12-26 Paul Eggert <eggert@cs.ucla.edu>
2816
2817 * window.c (select_window_1): Now static, since it's used only here.
2818
f1665bdc
EZ
28192012-12-25 Eli Zaretskii <eliz@gnu.org>
2820
2821 * window.c (window_body_cols): Subtract display margins from the
2822 window body width on TTYs as well. See
2823 http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
2824 for the original report.
2825
9a0d4f34
DA
28262012-12-25 Dmitry Antipov <dmantipov@yandex.ru>
2827
2828 * xdisp.c (redisplay_window): Remove inner local variable
2829 because the outer shadowed one has the same meaning.
cd78d9b1
DA
2830 * xterm.h (struct x_output): Remove toolbar_detached member since it's
2831 set but never used.
2832 * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
2833 (xg_create_tool_bar): Adjust users.
9a0d4f34 2834
f9e7c67e
DA
28352012-12-24 Dmitry Antipov <dmantipov@yandex.ru>
2836
2837 * buffer.h (BUF_COMPACT): New macro to follow the common style.
2838 * buffer.c (Fget_buffer_create): Use it to set compact field of
2839 struct buffer_text to avoid accessing an uninitialized value
2840 when compact_buffer is called for the first time.
2841 (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
2944d406
DA
2842 (Fset_buffer_modified_p): Use buffer_window_count to check
2843 whether the buffer is displayed in some window.
2844 * xdisp.c (message_dolog): Likewise.
f9e7c67e 2845
299614f3
EZ
28462012-12-23 Eli Zaretskii <eliz@gnu.org>
2847
40ff07a5
EZ
2848 * w32.c (acl_set_file): If setting the file security descriptor
2849 fails, and the new DACL is identical to the existing one, silently
2850 return success. This fixes problems for users backing up their
2851 own files without having the necessary privileges for setting
2852 security descriptors.
2853
299614f3
EZ
2854 * w32proc.c (reader_thread): Do not index fd_info[] with negative
2855 values.
2856 (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
2857 after WaitForSingleObject returns normally. This expedites reader
2858 thread shutdown when delete_child triggers it.
2859 (reap_subprocess): More accurate commentary for why we call
2860 delete_child only when cp->fd is negative.
2861
2862 * w32.c (sys_close): Do not call delete_child on a subprocess
2863 whose handle is not yet closed. Instead, set its file descriptor
2864 to a negative value, so that reap_subprocess will call
63a63bd4
SM
2865 delete_child on that subprocess when its SIGCHLD arrives.
2866 This avoids closing handles used for communications between sys_select
299614f3
EZ
2867 and reader_thread, which doesn't give sys_select a chance to
2868 notice that the process exited and invoke the SIGCHLD handler for
2869 it.
2870
cf162aee
JD
28712012-12-23 Jan Djärv <jan.h.d@swipnet.se>
2872
2873 * nsfns.m (Fns_do_applescript): Run event loop until script has
2874 been executed (Bug#12969).
2875 (ns_run_ascript): Chech as_script for nil, set to nil after
2876 executing script.
2877
94900bfe
MR
28782012-12-22 Martin Rudalics <rudalics@gmx.at>
2879
2880 * window.c (Fselect_window): Reword doc-string (Bug#13248).
2881
b2faf49c
EZ
28822012-12-22 Eli Zaretskii <eliz@gnu.org>
2883
2884 * w32term.c (w32fullscreen_hook): New function.
2885 (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
2886
7efa3fb3
EZ
28872012-12-21 Eli Zaretskii <eliz@gnu.org>
2888
bb085aed
EZ
2889 * fileio.c (Finsert_file_contents): Doc fix.
2890
7efa3fb3
EZ
2891 * w32proc.c (new_child, delete_child, find_child_pid): For a
2892 subprocess, consider its slot being in use as long as its process
2893 handle (procinfo.hProcess) is not NULL. This avoids reusing the
2894 slot when a new process is started immediately after killing
2895 another one, without waiting enough time for the first process to
2896 be reaped and resources allocated for it be orderly freed.
2897 (Bug#13086)
2898 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2899
c1f02afa
CY
29002012-12-21 Chong Yidong <cyd@gnu.org>
2901
2902 * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
2903
5bec25eb
CY
2904 * fns.c (Fcompare_strings): Doc fix (Bug#13081).
2905
a4b0cca1 29062012-12-21 Eli Zaretskii <eliz@gnu.org>
92340ec7
EZ
2907
2908 * w32.c (get_name_and_id): Always pass NULL as the first argument
2909 of lookup_account_sid. Avoids crashes with UNC file names that
2910 refer to DFS domains, not to specific machine names. (Bug#12621)
2911 Remove now unused argument FNAME; all callers changed.
2912 (get_file_owner_and_group): Remove now unused argument FNAME; all
2913 callers changed.
2914
34b4b7eb
CY
29152012-12-21 Chong Yidong <cyd@gnu.org>
2916
2917 * editfns.c (Finsert_char): Since read-char-by-name now signals an
2918 error for invalid chars, don't check for a nil return value.
2919
13002885
DA
29202012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2921
2922 Avoid calls to CHAR_TO_BYTE if byte position is known.
2923 * editfns.c (make_buffer_string_both): Use move_gap_both.
2924 (Fbuffer_string): Use make_buffer_string_both.
2925 * marker.c (buf_charpos_to_bytepos): Convert to eassert.
2926 Adjust comment.
2927 (buf_bytepos_to_charpos): Likewise.
2928 (charpos_to_bytepos): Remove.
2929 * fileio.c (Finsert_file_contents): Use move_gap_both.
2930 * search.c (Freplace_match): Likewise.
9a0d4f34 2931 * process.c (process_send_region): Likewise. Use convenient
13002885
DA
2932 names for byte positions.
2933 * lisp.h (charpos_to_bytepos): Remove prototype.
2934 * indent.c (scan_for_column): Use CHAR_TO_BYTE.
2935 * insdel.c (move_gap): Likewise.
2936
99e9311c
PE
29372012-12-20 Paul Eggert <eggert@cs.ucla.edu>
2938
2939 * xdisp.c (redisplay_internal): Remove now-unused local.
2940
e02230bf
SM
29412012-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
2942
2943 * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
2944 (redisplay_internal): Don't bother selecting the frame to get the
4a74c818 2945 proper value of frame-local variables (bug#13225).
e02230bf 2946
1687fb14
DA
29472012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2948
2949 * textprop.c (set_text_properties_1): Do not allow NULL interval.
2950 Rename 4th argument since it may be buffer or string. Adjust comment.
2951 * intervals.c (graft_intervals_info_buffer): Find an interval here.
2952
a2f07cd2
DA
29532012-12-19 Dmitry Antipov <dmantipov@yandex.ru>
2954
2955 * coding.c (Fdetect_coding_region): Do not check start and end with
2956 CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
2957 (code_convert_region): Likewise.
2958
474d441e
EZ
29592012-12-18 Eli Zaretskii <eliz@gnu.org>
2960
2961 * w32.c (acl_get_file, acl_set_file): Run the file name through
2962 map_w32_filename, and resolve any symlinks in the file name, like
2963 Posix platforms do.
2964 (acl_set_file): Call revert_to_self, if any privileges were
2965 enabled.
2966
8725c076
JB
29672012-12-17 Juanma Barranquero <lekktu@gmail.com>
2968
2969 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
2970 ($(BLD)/w32.$(O)): Update dependencies.
2971
1e101a4b
SM
29722012-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
2973
2974 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
2975 propagate redisplay's scrolling (if any) to the right window.
2976 (redisplay_internal): Use ensure_selected_frame.
2977 (display_mode_lines): Complete last fix.
2978 * window.c (select_window_1): New func, extracted from select_window.
2979 (select_window): Use it.
2980 * window.h (select_window_1): Declare.
2981
66447e07
EZ
29822012-12-17 Eli Zaretskii <eliz@gnu.org>
2983
2984 Emulate Posix ACL APIs on MS-Windows.
2985 * w32.c: Include sddl.h and sys/acl.h.
2986 (SDDL_REVISION_1): Define if not already defined.
2987 (g_b_init_get_security_descriptor_dacl)
2988 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
2989 (g_b_init_is_valid_security_descriptor)
2990 (g_b_init_set_file_security): New static flags.
2991 (globals_of_w32): Initialize them to zero.
2992 (SetFileSecurity_Name): New string constant.
2993 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
2994 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
2995 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
2996 (IsValidSecurityDescriptor_Proc): New typedefs.
2997 (get_file_security, get_security_descriptor_owner)
2998 (get_security_descriptor_group): Set errno to ENOTSUP.
2999 (set_file_security, get_security_descriptor_dacl)
3000 (is_valid_security_descriptor, convert_sd_to_sddl)
3001 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
3002 (acl_free, acl_get_file, acl_set_file): New functions.
3003
3004 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
3005
207a7ef0
PE
30062012-12-17 Paul Eggert <eggert@cs.ucla.edu>
3007
3008 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
3009 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
3010 for some of that bug's symptoms can now cause Emacs to abort.
3011 Remove the workaround.
3012 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
3013 The bug that caused SIGCHLD to get lost has been fixed, and the
3014 workaround for it can now cause Emacs to abort.
3015
17fdfc15
PE
30162012-12-16 Paul Eggert <eggert@cs.ucla.edu>
3017
3018 * sysdep.c (emacs_abort): Bump backtrace size to 40.
3019 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
3020 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
3021
7c3d167f
RF
30222012-12-16 Romain Francoise <romain@orebokech.com>
3023
3024 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
3025 (Fcopy_file): Change last arg to `preserve_extended_attributes'
1e101a4b 3026 and copy ACL entries of file in addition to SELinux context if set.
7c3d167f
RF
3027 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
3028
3029 * Makefile.in (LIBACL_LIBS): New macro.
3030 (LIBES): Use it.
3031
7d80ea23
PE
30322012-12-15 Paul Eggert <eggert@cs.ucla.edu>
3033
3034 * fileio.c (internal_delete_file): Use bool for boolean.
3035
b0728617
EZ
30362012-12-15 Eli Zaretskii <eliz@gnu.org>
3037
3038 Fix bug #13079 on MS-Windows with temp files not being deleted.
3039 * w32.h (_child_process): New members input_file and
3040 pending_deletion.
3041 (register_child): First argument is now pid_t.
3042 (record_infile, record_pending_deletion): New prototypes.
3043
3044 * w32proc.c (new_child): Initialize input_file and
3045 pending_deletion members of the child.
3046 (delete_child): Delete the child's temporary input file, if any,
3047 that is pending deletion.
3048 (register_child): First argument is now pid_t.
3049 (record_infile, record_pending_deletion): New functions.
3050 (reap_subprocess): Fix a typo in DebPrint string.
3051 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
3052
3053 * fileio.c (internal_delete_file): Return an int again: non-zero
3054 if delete-file succeeds, zero otherwise.
3055
3056 * lisp.h (internal_delete_file): Adjust prototype.
3057
3058 * callproc.c (Fcall_process): Don't overwrite infile with result
3059 of DECODE_FILE.
3060 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
3061 asynchronous subprocess, record the name of the input file name,
3062 if any.
3063 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
3064 delete the file, record it as pending deletion when the subprocess
3065 exits.
3066
7e90af26
EZ
30672012-12-14 Eli Zaretskii <eliz@gnu.org>
3068
3069 * editfns.c [HAVE_PWD_H]: Include grp.h.
3070
3071 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
3072
97976f9f
PE
30732012-12-14 Paul Eggert <eggert@cs.ucla.edu>
3074
3075 Fix permissions bugs with setgid directories etc. (Bug#13125)
3076 * dired.c (Ffile_attributes): Return t as the 9th attribute,
3077 to mark it as a placeholder. The old value was often wrong.
3078 The only user of this attribute has been changed to use
3079 file-ownership-preserved-p instead, with its new group arg.
3080 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
3081
26ec1f49
SM
30822012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
3083
ad966fe7
SM
3084 * xdisp.c (select_frame_for_redisplay, display_mode_lines):
3085 Keep selected_window and selected_frame in sync.
26ec1f49 3086
5c207910
EZ
30872012-12-14 Eli Zaretskii <eliz@gnu.org>
3088
3089 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
3090 try to get accurate owner and group information from NT file
3091 security APIs. This is to make most callers of 'stat' and
3092 'lstat', which don't need that information, much faster.
3093
26ec1f49
SM
3094 * dired.c (Ffile_attributes) [WINDOWSNT]:
3095 Set w32_stat_get_owner_group to a non-zero value, to request accurate
5c207910
EZ
3096 owner and group information from 'lstat'.
3097
893f52d8
PE
30982012-12-13 Paul Eggert <eggert@cs.ucla.edu>
3099
4c95c9a5
PE
3100 * fileio.c (Finsert_file_contents): Don't put tail into head area,
3101 as that confuses set-auto-coding, so insist on the head-read
3102 returning the full 1024 bytes. Let lseek compute the tail offset;
3103 less work for us. Do not ignore I/O errors when reading the tail.
3104
893f52d8
PE
3105 * xdisp.c: Minor style fixes.
3106 (init_iterator): Hoist assignment out of if-expression.
3107 (markpos_of_region): Callers now test for sign, not for -1.
3108
40d1e434
DA
31092012-12-13 Dmitry Antipov <dmantipov@yandex.ru>
3110
3111 Minor redisplay optimization when the region length is zero.
3112 * xdisp.c (markpos_of_region): New function.
3113 (init_iterator): Do not highlight the region of zero length.
3114 (redisplay_window): Check whether the region is of non-zero length.
3115 (try_cursor_movement): Allow if the region length is zero.
3116 (try_window_reusing_current_matrix, try_window_id): Likewise.
3117
727f9739 31182012-12-13 Eli Zaretskii <eliz@gnu.org>
e8c6e965
EZ
3119
3120 * search.c (search_buffer): Check the inverse translations of each
3121 character in pattern when the buffer being searched is unibyte.
3122 (Bug#13084)
3123
727f9739 31242012-12-13 Paul Eggert <eggert@cs.ucla.edu>
184246df
PE
3125
3126 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
3127 files, fixing a regression from 24.2.
645c6a30 3128 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
184246df 3129
d20704ef
PE
31302012-12-13 Paul Eggert <eggert@cs.ucla.edu>
3131
3132 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
3133 fstat shouldn't fail, and if it does fail copy-file should not proceed.
3134 Remove unnecessary S_ISLNK test, as (contra the comments) this
3135 function can't copy symlinks. Improve quality of error message
3136 when attempting to copy files that are neither regular files nor
3137 directories.
3138
2dd61a9b
DA
31392012-12-12 Dmitry Antipov <dmantipov@yandex.ru>
3140
3141 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
3142 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
3143 * window.c (Frecenter):
3144 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
3145 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
3146
cc98b684
DC
31472012-12-12 Daniel Colascione <dancol@dancol.org>
3148
1e101a4b 3149 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
cc98b684
DC
3150 the dumped Emacs is not a sparse file, greatly improving Cygwin
3151 "make bootstrap" performance.
3152
38e791fd
MA
31532012-12-11 Michael Albinus <michael.albinus@gmx.de>
3154
3155 * inotify.c (inotify_callback): Generate an Emacs event for every
3156 incoming inotify event.
3157
f9d1448f
EZ
31582012-12-11 Eli Zaretskii <eliz@gnu.org>
3159
3160 * xdisp.c (handle_face_prop): Fix logic of computing
3161 it->start_of_box_run_p.
3162 (append_space_for_newline): If the glyph row is R2L, reset the
3163 iterator's end_of_box_run_p flag before prepending the space glyph.
3164 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
3165 iterator's start_of_box_run_p flag before prepending the stretch.
3166 (append_glyph, produce_image_glyph, append_composite_glyph)
3167 (append_stretch_glyph, append_glyphless_glyph): Reverse the
3168 left_box_line_p and right_box_line_p flags of the glyph for R2L
3169 glyph rows. (Bug#13011)
3170
c6afe371
DA
31712012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
3172
3173 * buffer.c (Fset_buffer_multibyte): Do not force redisplay
3174 if changed buffer is not shown in a window.
3175 * insdel.c (prepare_to_modify_buffer): Likewise.
3176 * window.c (replace_buffer_in_windows_safely): Do nothing
3177 if buffer is not shown in a window.
3178 (Fforce_window_update): Likewise if string or buffer argument
3179 is passed.
3180
1b47babd
EZ
31812012-12-11 Eli Zaretskii <eliz@gnu.org>
3182
3183 * inotify.c (Finotify_add_watch): Rename decoded_file_name to
3184 encoded_file_name, which is what it is.
3185
4c1acb95
DA
31862012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
3187
3188 Consistently use marker_position and marker_byte_position.
3189 * fringe.c (Ffringe_bitmaps_at_pos):
3190 * indent.c (Fvertical_motion):
3191 * insdel.c (prepare_to_modify_buffer):
3192 * keyboard.c (make_lispy_position):
3193 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
3194 (window_scroll_pixel_based, displayed_window_lines)
3195 (Fset_window_configuration):
3196 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
3197 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
3198 Replace direct access to marker fields with calls
3199 to marker_position and/or marker_byte_position.
3200
0eeb69fe
JB
32012012-12-11 Juanma Barranquero <lekktu@gmail.com>
3202
3203 * makefile.w32-in (SIG2STR_H): New macro.
3204 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
3205 ($(BLD)/w32notify.$(O)): Update dependencies.
3206
1cf1bbd5
DC
32072012-12-10 Daniel Colascione <dancol@dancol.org>
3208
8db4b52f
DC
3209 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
3210 Windows file notification functionality unless WINDOWSNT.
3211
1cf1bbd5
DC
3212 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
3213 declarations.
3214
3215 * w32fns.c (cache_system_info): Initialize the global hinst
3216 variable here so various initialization calls DTRT.
3217
1e101a4b 3218 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
1cf1bbd5
DC
3219 (hinst): Remove unneeded extern declaration.
3220 (_start): Remove initialization of above variables; remove
3221 initialization of hinst, as cache_system_info now does that.
3222
3223 * emacs.c (main): Call cache_system_info early in startup; we
3224 previously weren't calling it in Cygwin builds.
3225
26ec1f49
SM
3226 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
3227 Teach the autoconf build system how to compile a Windows resource file
1cf1bbd5
DC
3228 and link it to Emacs.
3229
98a07056
DA
32302012-12-10 Dmitry Antipov <dmantipov@yandex.ru>
3231
3232 Per-buffer window counters.
3233 * buffer.h (struct buffer): New member window_count.
3234 (buffer_window_count): New function.
3235 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
3236 Initialize window_count.
3237 (Fkill_buffer): Verify window_count for the buffer being killed.
3238 (modify_overlay): Do not force redisplay if buffer is not shown
3239 in any window.
3240 (init_buffer_once): Initialize window_count for buffer_defaults
3241 and buffer_local_symbols.
3242 * window.h (buffer_shared): Remove declaration.
3243 (wset_buffer): Convert from inline ...
3244 * window.c (wset_buffer): ... to an ordinary function.
3245 (adjust_window_count): New function.
3246 (make_parent_window): Use it.
3247 * xdisp.c (buffer_shared): Remove.
3248 (redisplay_internal, redisplay_window): Adjust users.
3249 (buffer_shared_and_changed): Use per-buffer window counter.
3250
2b8c9064
EZ
32512012-12-10 Eli Zaretskii <eliz@gnu.org>
3252
3253 Support for filesystem notifications on MS-Windows.
3254 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
3255 and this is a TTY frame, signal the caller that keyboard input is
3256 available.
3257
3258 * w32xfns.c (drain_message_queue): Now returns an int: an
3259 indication whether any WM_EMACS_FILENOTIFY messages were found in
3260 the queue.
3261
3262 * w32inevt.c (handle_file_notifications): New function.
3263 (w32_console_read_socket): Call it to process file notifications.
3264
3265 * w32console.c (initialize_w32_display): Record the main thread ID
3266 in dwMainThreadId.
3267
3268 * deps.mk (inotify.o): New dependency list.
3269
3270 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
3271
3272 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
3273 (WM_EMACS_END): Bump value by 1.
3274 (notification_buffer_in_use, file_notifications)
3275 (notifications_size, notifications_desc): Declare.
3276 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
3277 Add prototypes.
3278
3279 * w32term.c (lispy_file_action, queue_notifications): New functions.
3280 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
3281 <Qrenamed_to>: New symbols.
3282 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
3283
3284 * w32notify.c: New file, implements file event notifications for
3285 MS-Windows.
3286
3287 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
3288 by posting it to the w32_read_socket queue.
3289
1e101a4b 3290 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
2b8c9064
EZ
3291
3292 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
3293 (GLOBAL_SOURCES): Add w32notify.c
3294 ($(BLD)/w32notify.$(O)): New set of dependencies.
3295
3296 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
3297
1e101a4b
SM
3298 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
3299 Handle FILE_NOTIFY_EVENT.
2b8c9064
EZ
3300 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
3301 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
3302 w32notify-handle-event by default.
3303
3304 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
3305 syms_of_w32notify.
3306
81606b10
RS
33072012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
3308
2b8c9064 3309 Support for filesystem notifications on GNU/Linux via inotify.
1e101a4b 3310 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
81606b10
RS
3311
3312 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
3313
3314 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
3315 (syms_of_keyboard): DEFSYM it.
3316 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
3317 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
3318 Qfile_inotify events.
3319 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
3320 special-event-map to inotify-handle-event.
3321
3322 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
3323
3324 * Makefile.in (base_obj): Add inotify.o.
3325
3326 * inotify.c: New file.
3327
265c2fbf 33282012-12-10 Jan Djärv <jan.h.d@swipnet.se>
a06ae17d
JD
3329
3330 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
3331
265c2fbf 33322012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com>
cb576b5c
FP
3333
3334 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
3335 DWORD_PTR, for compatibility with 64-bit builds.
3336
a06ae17d 3337 * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
cb576b5c
FP
3338 (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
3339 (system_process_attributes): Use SIZE_T rather than DWORD, for
3340 compatibility with 64-bit builds.
3341
265c2fbf 33422012-12-10 Christopher Schmidt <christopher@ch.ristopher.com>
76b92fee
CS
3343
3344 * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
3345
265c2fbf 33462012-12-10 Eli Zaretskii <eliz@gnu.org>
81d8cc53
EZ
3347
3348 * indent.c (Fvertical_motion): If a display string will be
3349 displayed on the left or the right margin, don't consider it as a
3350 factor in cursor positioning. (Bug#13108)
3351
265c2fbf 33522012-12-10 Martin Rudalics <rudalics@gmx.at>
2cec368c
MR
3353
3354 * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
3355
5f460827
PE
33562012-12-10 Paul Eggert <eggert@cs.ucla.edu>
3357
3358 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
3359 for string length.
3360
a16e75cd
EZ
33612012-12-08 Eli Zaretskii <eliz@gnu.org>
3362
3363 * w32.c (unsetenv): Return 0 if the input string is too long.
3364
5745a7df
PE
33652012-12-08 Paul Eggert <eggert@cs.ucla.edu>
3366
3367 Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
3368 * alloc.c (xputenv): New function.
3369 * dbusbind.c (Fdbus_init_bus):
3370 * emacs.c (main):
3371 * xterm.c (x_term_init):
3372 Use xputenv instead of setenv or putenv, to detect memory exhaustion.
3373 * editfns.c (initial_tz): Move static var decl up.
3374 (tzvalbuf_in_environ): New static var.
3375 (init_editfns): Initialize these two static vars.
3376 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
3377 Save old TZ value on stack, if it's small.
3378 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
3379 instead, use xputenv+unsetenv to set and restore TZ.
3380 (environbuf): Remove static var. All uses removed.
3381 (Fset_time_zone_rule): Do not save TZ and environ;
3382 no longer needed here.
3383 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
3384 Move to inside set_time_zone_rule; they don't need file scope any more.
3385 (set_time_zone_rule): Maintain the TZ=value string separately.
3386 (syms_of_editfns): Don't initialize initial_tz;
3387 init_editfns now does it.
3388 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
3389 * lisp.h (xputenv): New decl.
3390
c56efa40
FP
33912012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
3392
3393 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
3394
75ceee05
EZ
33952012-12-08 Eli Zaretskii <eliz@gnu.org>
3396
3397 * w32.c (unsetenv, sys_putenv): New functions.
3398
1b6dbfeb
CY
33992012-12-08 Chong Yidong <cyd@gnu.org>
3400
3401 * editfns.c (Finsert_char): Make the error message more
3402 informative (Bug#12992).
3403
d983a10b
PE
34042012-12-08 Paul Eggert <eggert@cs.ucla.edu>
3405
7be78020
PE
3406 Simplify get_lim_data.
3407 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
3408 Remove USG and vlimit methods; no longer used these days.
3409 Add #error catchall just in case.
3410
d983a10b
PE
3411 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
3412 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
3413 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
3414 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
3415 (deleted_pid_list, Fdelete_process, create_process)
3416 (record_child_status_change, handle_child_signal, deliver_child_signal)
3417 (init_process_emacs, syms_of_process):
3418 Assume SIGCHLD is defined.
3419 (parse_signal): Remove. All uses removed.
3420 (abbr_to_signal): New static function.
3421 (Fsignal_process): Use it to convert signal names to ints.
3422 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
3423 kill (getpgrp (), ...).
3424 (emacs_sigaction_init): Assume SIGCHLD is defined.
3425 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
3426 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
3427 * syssignal.h (EMACS_KILLPG): Remove.
3428 All uses replaced by 'kill' with a negative pid.
3429 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
3430 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
3431
9cdde1e2
PE
34322012-12-07 Paul Eggert <eggert@cs.ucla.edu>
3433
3434 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
3435 This will cause a production Emacs to dump core instead of
3436 infinite-looping.
3437
822995f8
DA
34382012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
3439
3440 * frame.c (make_frame): Do not set window's buffer to t.
3441 * window.c (Fsplit_window_internal): Likewise. Previously it was
3442 used to indicate that the window is being set up. Now we use
3443 set_window_buffer for all new windows, so the condition in ...
3444 (Fset_window_buffer): ... is always true and can be removed.
3445
ed08365b
DA
34462012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
3447
3448 Convenient macro to check whether the buffer is hidden.
3449 * buffer.h (BUFFER_HIDDEN_P): New macro.
3450 * frame.c (make_frame): Use it. Adjust comment.
3451 * buffer.c (candidate_buffer): New function.
3452 (Fother_buffer, other_buffer_safely): Use it.
3453
e86f5134
EZ
34542012-12-06 Eli Zaretskii <eliz@gnu.org>
3455
3456 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
3457 if the child process is still running. Instead, exit the wait
3458 loop and return zero. (Bug#13086)
3459
1700db3c
DA
34602012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3461
3462 * frame.h (x_char_width, x_char_height): Remove prototypes.
3463 * w32term.h (x_char_width, x_char_height): Likewise.
3464 * xfns.c (x_char_width, x_char_height): Remove.
3465 * w32fns.c (x_char_width, x_char_height): Likewise.
3466 * nsfns.c (x_char_width, x_char_height): Likewise.
3467 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
3468 all window frames.
3469 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
3470 * keyboard.c (command_loop_1): Remove prototype.
3471 (command_loop_2, top_level_1): Add static to match prototype.
3472
35fb8050
PE
34732012-12-06 Paul Eggert <eggert@cs.ucla.edu>
3474
3475 Fix a recently-introduced delete-process race condition.
3476 * callproc.c, process.h (record_kill_process):
3477 New function, containing part of the old call_process_kill.
3478 (call_process_kill): Use it.
3479 This does not change call_process_kill's behavior.
3480 * process.c (Fdelete_process): Use record_kill_process to fix a
3481 race condition that could cause Emacs to lose track of a child.
3482
565212e5
DA
34832012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3484
3485 Avoid code duplication between prev_frame and next_frame.
3486 * frame.c (candidate_frame): New function. Add comment.
3487 (prev_frame, next_frame): Use it. Adjust comment.
3488
d8ad4d3f 34892012-12-06 Eli Zaretskii <eliz@gnu.org>
d3cefd13
EZ
3490
3491 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
3492 fails, signal an error instead of continuing with an empty
3493 string. (Bug#13079)
7c2fcf9b
EZ
3494 Encode expanded temp file pattern before passing it to mkstemp or
3495 mktemp.
d3cefd13 3496
2e7cddd3
EZ
3497 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
3498 Encode the file name before passing it to dostounix_filename, in
3499 case it will downcase it (under w32-downcase-file-names).
3500 (Bug#12933)
3501
644d3f0d
PE
35022012-12-05 Paul Eggert <eggert@cs.ucla.edu>
3503
3504 Minor call-process cleanups.
3505 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
3506 at the same time as other platforms, to simplify analysis.
3507 No need for fd0_volatile since we have synch_process_fd.
3508 Avoid needless emacs_close; arg is always negative.
3509
396376f1
AS
35102012-12-04 Andreas Schwab <schwab@linux-m68k.org>
3511
3512 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
3513 processes.
3514
350f51ad
DA
35152012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
3516
3517 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
3518 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
3519 and mouse_face_hidden members to a bitfields.
3520 * frame.h (struct frame): Remove set-but-not-used space_width member.
3521 (FRAME_SPACE_WIDTH): Remove.
3522 * nsterm.m, w32term.c, xterm.c: Adjust users.
3523 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
3524 member. Adjust users. Convert term_initted, delete_in_insert_mode,
3525 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
3526 members to a bitfields.
3527
bc9dbce6
PE
35282012-12-03 Paul Eggert <eggert@cs.ucla.edu>
3529
bb5f74ee
PE
3530 Don't let call-process be a zombie factory (Bug#12980).
3531 Fixing this bug required some cleanup of the signal-handling code.
3532 As a side effect, this change also fixes a longstanding rare race
3533 condition whereby Emacs could mistakenly kill unrelated processes,
3534 and it fixes a bug where a second C-g does not kill a recalcitrant
3535 synchronous process in GNU/Linux and similar platforms.
3536 The patch should also fix the last vestiges of Bug#9488,
3537 a bug which has mostly been fixed on the trunk by other changes.
3538 * callproc.c, process.h (synch_process_alive, synch_process_death)
3539 (synch_process_termsig, sync_process_retcode):
3540 Remove. All uses removed, to simplify analysis and so that
3541 less consing is done inside critical sections.
3542 * callproc.c (call_process_exited): Remove. All uses replaced
3543 with !synch_process_pid.
3544 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
3545 These take the role of what used to be in unwind-protect arg.
3546 All uses changed.
3547 (block_child_signal, unblock_child_signal):
3548 New functions, to avoid races that could kill innocent-victim processes.
3549 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
3550 (call_process_kill): Record killed processes as deleted, so that
3551 zombies do not clutter up the system. Do this inside a critical
3552 section, to avoid a race that would allow the clutter.
3553 (call_process_cleanup): Fix code so that the second C-g works again
3554 on common platforms such as GNU/Linux.
3555 (Fcall_process): Create the child process in a critical section,
3556 to fix a race condition. If creating an asynchronous process,
3557 record it as deleted so that zombies do not clutter up the system.
3558 Do unwind-protect for WINDOWSNT too, as that's simpler in the
3559 light of these changes. Omit unnecessary call to emacs_close
3560 before failure, as the unwind-protect code does that.
3561 * callproc.c (call_process_cleanup):
3562 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
3563 * process.c (record_deleted_pid): New function, containing
3564 code refactored out of Fdelete_process.
3565 (Fdelete_process): Use it.
3566 (process_status_retrieved): Remove. All callers changed to use
3567 child_status_change.
3568 (record_child_status_change): Remove, folding its contents into ...
3569 (handle_child_signal): ... this signal handler. Now, this
3570 function is purely a handler for SIGCHLD, and is not called after
3571 a synchronous waitpid returns; the synchronous code is moved to
3572 wait_for_termination. There is no need to worry about reaping
3573 more than one child now.
3574 * sysdep.c (get_child_status, child_status_changed): New functions.
3575 (wait_for_termination): Now takes int * status and bool
3576 interruptible arguments, too. Do not record child status change;
3577 that's now the caller's responsibility. All callers changed.
3578 Reimplement in terms of get_child_status.
3579 (wait_for_termination_1, interruptible_wait_for_termination):
3580 Remove. All callers changed to use wait_for_termination.
3581 * syswait.h: Include <stdbool.h>, for bool.
3582 (record_child_status_change, interruptible_wait_for_termination):
3583 Remove decls.
3584 (record_deleted_pid, child_status_changed): New decls.
3585 (wait_for_termination): Adjust to API changes noted above.
3586
bc9dbce6
PE
3587 * bytecode.c, lisp.h (Qbytecode): Remove.
3588 No longer needed after 2012-11-20 interactive-p changes.
3589
3cf3c607
EZ
35902012-12-03 Eli Zaretskii <eliz@gnu.org>
3591
3592 * xdisp.c (redisplay_window): If the cursor is visible, but inside
3593 the scroll margin, move point outside the margin. (Bug#13055)
3594
005c8d13
JD
35952012-12-03 Jan Djärv <jan.h.d@swipnet.se>
3596
3597 * gtkutil.c (my_log_handler): New function.
3598 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
3599
20edc1c9
DA
36002012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3601
3602 * lisp.h (modify_region): Rename to...
3603 (modify_region_1): ...new prototype.
3604 * textprop.c (modify_region): Now static. Adjust users.
3605 * insdel.c (modify_region): Rename to...
3606 (modify_region_1): ...new function to work with current buffer.
3607 Adjust comment and users. Use true and false for booleans.
3608
62c2e5ed
DA
36092012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3610
3611 * alloc.c (free_save_value): New function.
3612 (safe_alloca_unwind): Use it.
3613 * lisp.h (free_save_value): New prototype.
3614 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
3615 Add comment.
3616 (save_excursion_restore): Adjust to match saved data structure.
3617 Use free_save_value to offload some work from GC. Drop obsolete
3618 #if 0 code.
3619
c5bc2d1d 36202012-12-03 Chong Yidong <cyd@gnu.org>
a2458031
CY
3621
3622 * fileio.c (Vauto_save_list_file_name): Doc fix.
3623
c5bc2d1d 36242012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com>
c7b36b95
FP
3625
3626 * w32fns.c: Remove prototype of atof.
1e101a4b 3627 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
c7b36b95 3628 builds.
1e101a4b 3629 (file_dialog_callback): Make it UINT_PTR.
c7b36b95
FP
3630
3631 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
3632 with 64-bit builds.
3633
3634 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3635 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
3636 defined.
3637
c5bc2d1d 36382012-12-03 Glenn Morris <rgm@gnu.org>
14d27346 3639
a9de9f0c 3640 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
14d27346 3641
21e54a94
PE
36422012-12-02 Paul Eggert <eggert@cs.ucla.edu>
3643
2dd2e622
PE
3644 Fix xpalloc confusion after memory is exhausted.
3645 * alloc.c (xpalloc): Comment fix.
3646 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
3647 and signals an error, do not clear charset_table_size, as
3648 charset_table is still valid.
3649 * doprnt.c (evxprintf): Clear *BUF after freeing it.
3650
21e54a94
PE
3651 Use execve to avoid need to munge environ (Bug#13054).
3652 * callproc.c (Fcall_process):
3653 * process.c (create_process):
3654 Don't save and restore environ; no longer needed.
3655 * callproc.c (child_setup):
3656 Use execve, not execvp, to preserve environ.
3657
3e5490f7
PE
36582012-12-01 Paul Eggert <eggert@cs.ucla.edu>
3659
3660 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
3661
75b4f59c
YM
36622012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3663
3664 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
3665 display for sliced images (Bug#10500).
3666
3667 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
3668
f8aff4c6
JB
36692012-11-30 Juanma Barranquero <lekktu@gmail.com>
3670
3671 * doc.c (Fdocumentation): Re-add handling of function-documentation,
3672 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
3673
3940b924
DA
36742012-11-29 Dmitry Antipov <dmantipov@yandex.ru>
3675
3676 * xdisp.c (window_outdated): Remove eassert since it hits
3677 some suspicious corner cases (see Bug#13007 and Bug#13012).
3678 (mode_line_update_needed): New function.
3679 (redisplay_internal, redisplay_window): Use it.
3680 (ensure_selected_frame): New function.
3681 (redisplay_internal, unwind_redisplay): Use it.
3682 (redisplay_internal): Move comment about buffer_shared...
3683 (buffer_shared_and_changed): ...near to its real use.
3684
4a9204fe
PE
36852012-11-29 Paul Eggert <eggert@cs.ucla.edu>
3686
3687 * callproc.c (Fcall_process): Don't misreport vfork failure.
3688
60aeceb8
PE
36892012-11-28 Paul Eggert <eggert@cs.ucla.edu>
3690
3691 * callproc.c (Fcall_process): Fix vfork portability problems.
3692 Do not assume that fd[0], count, filefd, and save_environ survive
3693 vfork. Fix bug whereby wrong errno value could be reported for
3694 pipe failure. Some minor cleanups, too, as follows. Move buf and
3695 bufsize to the context where they're needed. Change new_argv to
3696 be of type char **, as this is more convenient and avoids casts.
3697 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
3698 Now local constants, not macros.
3699
00dc3ead
KH
37002012-11-18 Kenichi Handa <handa@gnu.org>
3701
3702 * font.c (font_unparse_xlfd): Fix previous change. Keep "const"
3703 for the variable "f".
3704
e1bf05c1
KH
37052012-11-13 Kenichi Handa <handa@gnu.org>
3706
3707 * font.c (font_unparse_xlfd): Exclude special characters from the
3708 generating XLFD name.
3709
22626a85
PE
37102012-11-27 Paul Eggert <eggert@cs.ucla.edu>
3711
350e0088
PE
3712 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
3713 * dired.c (stat_uname, stat_gname):
3714 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
3715
22626a85
PE
3716 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
3717 * dired.c (directory_files_internal, file_name_completion):
3718 Assume EAGAIN and EINTR are defined.
350e0088 3719
22626a85
PE
3720 * fileio.c (Fcopy_file): Assume EISDIR is defined.
3721 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
3722 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
3723 * lread.c (readbyte_from_file): Assume EINTR is defined.
3724 * process.c (wait_reading_process_output, send_process) [subprocesses]:
3725 Assume EIO and EAGAIN are defined.
3726 * unexcoff.c (write_segment): Assume EFAULT is defined.
3727
5c9cf0a3 37282012-11-27 Eli Zaretskii <eliz@gnu.org>
3fa1e84d
EZ
3729
3730 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
3731 (Bug#11964)
3732
22294a56
EZ
3733 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
3734 highlighting on the frame was cleared. Prevents assertion
3735 violations when repeatedly clicking on the "Top" link of the
3736 "bread-crumbs" in Info buffers.
3737
5fbab051
PE
37382012-11-25 Paul Eggert <eggert@cs.ucla.edu>
3739
3740 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
3741
bcd77a2b
KB
37422012-11-24 Ken Brown <kbrown@cornell.edu>
3743
3744 * keyboard.c (HAVE_MOUSE):
3745 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
3746 were always defined.
3747
d125ca15 37482012-11-24 Eli Zaretskii <eliz@gnu.org>
8654a41b 3749
24becea4
EZ
3750 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
3751 between bpos_covered and bpos_max. This fixes cursor display when
3752 several display strings follow each other.
3753
8654a41b
EZ
3754 * .gdbinit (pgx): If the glyph's object is a string, display the
3755 pointer to string data, rather than the value of the string object
3756 itself (which barfs under CHECK_LISP_OBJECT_TYPE).
3757
cb5867b1
EZ
3758 * indent.c (Fvertical_motion): If the starting position is covered
3759 by a display string, return to one position before that, to avoid
3760 overshooting it inside move_it_to. (Bug#12930)
3761
f418b22e
DA
37622012-11-23 Dmitry Antipov <dmantipov@yandex.ru>
3763
3764 * frame.h (struct frame): Remove display_preempted member
3765 since all users are dead long ago.
3766 * nsterm.h (struct x_output): Use the only dummy member.
3767 * w32menu.c (pending_menu_activation): Remove since not
3768 really used.
3769 (set_frame_menubar): Adjust user.
3770 * w32term.h (struct x_output): Drop outdated #if 0 code.
3771 (struct w32_output): Use bitfields for explicit_parent,
26ec1f49
SM
3772 asked_for_visible and menubar_active members.
3773 Drop unused pending_menu_activation member.
f418b22e
DA
3774 * xterm.h (struct x_output): Drop outdated #if 0 code.
3775 Use bitfields for explicit_parent, asked_for_visible,
3776 has_been_visible and net_wm_state_hidden_seen members.
3777
a879f0ea
EZ
37782012-11-23 Eli Zaretskii <eliz@gnu.org>
3779
3780 * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
3781 of a literal "/". (Bug#12955)
3782 (gl-stamp): Invoke fc.exe directly, not through cmd.
3783
95ef7787
PE
37842012-11-23 Paul Eggert <eggert@cs.ucla.edu>
3785
3786 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
3787 * dired.c: Assume HAVE_DIRENT_H.
3788 (NAMLEN): Remove, replacing with ...
3789 (dirent_namelen): New function. All uses changed. Use the GNU macro
3790 _D_EXACT_NAMELEN if available, as it's faster than strlen.
3791 (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
3792 (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero.
3793 * makefile.w32-in (DIR_H): Remove. All uses replaced with
3794 $(NT_INC)/dirent.h.
3795 ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
3796 * ndir.h: Rename to ../nt/inc/dirent.h.
3797 * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
3798 Do not include <dirent.h>; no longer needed.
3799 * w32.c: Include <dirent.h> rather than "ndir.h".
3800
12645ae6
CY
38012012-11-23 Chong Yidong <cyd@gnu.org>
3802
3803 * xftfont.c (xftfont_open): Remove duplicate assignment.
3804
5c747675
DA
38052012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
3806
3807 * alloc.c (Fgarbage_collect): Unblock input after clearing
3808 gc_in_progress to avoid note_mouse_highlight glitch with GC.
3809 * frame.h (FRAME_MOUSE_UPDATE): New macro.
3810 * msdos.c (IT_frame_up_to_date): Use it here...
3811 * w32term.c (w32_frame_up_to_date): ...here...
3812 * xterm.c (XTframe_up_to_date): ...and here...
3813 * nsterm.m (ns_frame_up_to_date): ...but not here.
3814 * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
3815 Adjust users.
3816 * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
3817 Do not check whether GC is in progress.
3818
6ceeb5f1
DA
38192012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
3820
3821 * xdisp.c (window_buffer_changed): New function.
3822 (update_menu_bar, update_tool_bar): Use it to
3823 simplify large 'if' statements.
3824 (redisplay_internal): Generalize commonly used
3825 'tail' and 'frame' local variables.
3826
ec84768f
EZ
38272012-11-22 Eli Zaretskii <eliz@gnu.org>
3828
3829 * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
3830 with Windows system header.
3831
9239d970
PE
38322012-11-21 Paul Eggert <eggert@cs.ucla.edu>
3833
3834 Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
3835 * alloc.c: Assume unistd.h exists.
3836 * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
3837 * sysdep.c (get_current_dir_name): Assume getcwd exists.
3838 (getwd) [USG]: Remove; no longer needed.
3839 (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
3840 * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
3841 * w32.h (getcwd): Remove decl.
3842
954bba56
SM
38432012-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
3844
3845 * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
3846 Make it set selected_window as well.
3847 (update_tool_bar): Use it.
3848
6ef2e5ef 38492012-11-21 Ken Brown <kbrown@cornell.edu>
4ffea447
KB
3850
3851 * emacs.c (main): Set the G_SLICE environment variable for all
3852 Cygwin builds, not just GTK builds. See
3853 https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
3854
6ef2e5ef 38552012-11-21 Eli Zaretskii <eliz@gnu.org>
88c4a13c
EZ
3856
3857 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3858 (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
3859 Define for the MSVC compiler.
3860
6ef2e5ef 3861 * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
273ac8d1
EZ
3862
3863 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
3864 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
3865 dostounix_filename. Prevents crashes down the road, because
26ec1f49
SM
3866 dostounix_filename assumes it gets a unibyte string.
3867 Reported by Michel de Ruiter <michel@sentient.nl>, see
273ac8d1
EZ
3868 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
3869
eadf1faa
SM
38702012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3871
3872 Conflate Qnil and Qunbound for `symbol-function'.
3873 * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
3874 * lread.c (init_obarray): Set `function' fields to Qnil.
3875 * eval.c (Fcommandp): Ignore Qunbound.
3876 (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
3877 * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
3878 Test NILP rather than Qunbound.
3879 (Ffmakunbound): Set to Qnil.
3880 (Fsymbol_function): Never signal an error.
3881 (Finteractive_form): Ignore Qunbound.
3882
b83fdfa9
PE
38832012-11-20 Paul Eggert <eggert@cs.ucla.edu>
3884
3885 * eval.c (interactive_p): Remove no-longer-used decl.
3886
952580c5
DA
38872012-11-20 Dmitry Antipov <dmantipov@yandex.ru>
3888
3889 * xdisp.c (buffer_shared): Adjust comment.
3890 (buffer_shared_and_changed): New function.
3891 (prepare_menu_bars, redisplay_internal): Use it to
3892 decide whether all windows or frames should be updated.
ea6de9b1
DA
3893 (window_outdated): New function.
3894 (text_outside_line_unchanged_p, redisplay_window): Use it.
3895 (redisplay_internal): Likewise. Fix indentation.
952580c5 3896
23ba2705
SM
38972012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3898
3899 * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
3900 (syms_of_eval): Remove corresponding defsubr.
3901 * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
3902
6e9f7997
DC
39032012-11-19 Daniel Colascione <dancol@dancol.org>
3904
3905 * w32fns.c (Fx_file_dialog):
3906 (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
3907 cygwin_convert_file_name*.
3908
3909 * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
3910 Rename cygwin_convert_path* to cygwin_convert_file_name*.
3911
552a1590
PE
39122012-11-18 Paul Eggert <eggert@cs.ucla.edu>
3913
3914 * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
3915
2ac9538d 39162012-11-18 Eli Zaretskii <eliz@gnu.org>
d8715cdf
EZ
3917
3918 * w32select.c: Include w32common.h before w32term.h, so that
3919 windows.h gets included before w32term.h uses some of its
3920 features, see below.
3921
23ba2705
SM
3922 * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
3923 New typedefs.
3924 (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
3925 New prototypes.
d8715cdf
EZ
3926 (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
3927
2ac9538d 39282012-11-18 Jan Djärv <jan.h.d@swipnet.se>
7436fc63
JD
3929
3930 * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
3931 (ns_select): Return at once if events are held (Bug#12834).
3932
2ac9538d 39332012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com>
86dcf21c 3934
3935 * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
3936 Needed following 2012-10-20 change. (Bug#12902)
3937
c1f7ba3a
JB
39382012-11-18 Juanma Barranquero <lekktu@gmail.com>
3939
3940 * w32proc.c (waitpid): Remove unused label get_result.
3941
a75ce9d3
JB
39422012-11-17 Juanma Barranquero <lekktu@gmail.com>
3943
3944 * makefile.w32-in (SYSWAIT_H): New macro.
3945 ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
3946 ($(BLD)/sysdep.$(O)): Update dependencies.
3947
49cdacda
PE
39482012-11-17 Paul Eggert <eggert@cs.ucla.edu>
3949
3950 Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
3951 * callproc.c (relocate_fd): Assume F_DUPFD.
3952 * emacs.c, term.c (O_RDWR): Remove.
3953 * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
3954 O_NDELAY, since O_NONBLOCK is the standard name for this flag.
3955 * nsterm.m: Assume <fcntl.h> exists.
3956 * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
3957 (create_pty, Fmake_network_process, server_accept_connection)
3958 (wait_reading_process_output, init_process_emacs):
3959 Assume O_NONBLOCK.
3960 (wait_reading_process_output): Put in a special case for WINDOWSNT
3961 to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
3962 It's not clear this is needed, but it's a more-conservative change.
3963 (create_process): Assume FD_CLOEXEC.
3964 (create_process, create_pty): Assume O_NOCTTY.
3965 * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
3966 (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
3967 Omit if not DOS_NT, since F_GETFL is not defined there.
3968 (serial_open): Assume O_NONBLOCK and O_NOCTTY.
3969 * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
3970 (O_NOCTTY): Remove.
3971 (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
3972 lack it, since gnulib guarantees this.
3973 * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
3974
22bae83f
EZ
39752012-11-17 Eli Zaretskii <eliz@gnu.org>
3976
6ad30855
EZ
3977 * w32.c (faccessat): Pretend that directories have the execute bit
3978 set. Emacs expects that, e.g., in files.el:cd-absolute.
3979
22bae83f
EZ
3980 * w32proc.c (create_child): Don't clip the PID of the child
3981 process to fit into an Emacs integer, as this is no longer a
3982 restriction.
3983 (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by
3984 reaping only the process specified by PID argument, if that is
3985 positive. Use PID instead of dead_child to know which process to
3986 reap. Wait for the child to die only if WNOHANG is not in
3987 OPTIONS.
3988 (sys_select): Don't set dead_child.
3989
3990 * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
3991 as it is no longer needed.
3992
3993 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
3994 no longer needed.
3995 (record_child_status_change): Remove the setting of
3996 record_at_most_one_child for the !WNOHANG case.
3997
a631d0e0
PE
39982012-11-17 Paul Eggert <eggert@cs.ucla.edu>
3999
4000 Fix problems in ns port found by static checking.
4001 * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
4002 (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
4003 not to process group.
4004 (ns_select): Use emacs_write, not write, as that's more robust
4005 in the presence of signals.
4006 (fd_handler:): Check for read errors.
4007
d56f2e49
GM
40082012-11-16 Glenn Morris <rgm@gnu.org>
4009
4010 * editfns.c (Fmessage): Mention message-log-max. (Bug#12849)
4011
96e05507 40122012-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
5c2a7148
SM
4013
4014 * eval.c (Finteractive_p): Revert lexbind-merge mishap.
4015
96e05507 40162012-11-16 Eli Zaretskii <eliz@gnu.org>
730b2d8f
EZ
4017
4018 * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
4019 use the same value of thread handle.
4020 (start_timer_thread): If the timer thread exited (due to error),
4021 clean up by closing the two handles it used. Duplicate the caller
4022 thread's handle here, so it gets duplicated only once, when
4023 launching the timer thread. Set priority of the timer thread, not
4024 the caller thread.
4025 (getitimer): Don't duplicate the caller thread's handle here.
4026 (Bug#12832)
4027
96e05507 40282012-11-16 Jan Djärv <jan.h.d@swipnet.se>
f99c65e5
JD
4029
4030 * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
4031 called (Bug#12834).
4032
3d082a26
PE
40332012-11-16 Paul Eggert <eggert@cs.ucla.edu>
4034
4035 Remove no-longer-used pty_max_bytes variable.
4036 * process.c (pty_max_bytes): Remove; unused.
4037 (send_process): Do not set it.
4038
b72c161c
JB
40392012-11-15 Juanma Barranquero <lekktu@gmail.com>
4040
4041 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
4042 Update dependencies.
4043
bf20ea80
PE
40442012-11-15 Paul Eggert <eggert@cs.ucla.edu>
4045
4046 * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
4047 This follows up on the 2012-09-29 patch that removed indirection
4048 for the 'function' field. Reported by Sergey Vinokurov in
4049 <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
4050
14f20728
EZ
40512012-11-14 Eli Zaretskii <eliz@gnu.org>
4052
4053 * w32.c (faccessat): Rename from sys_faccessat. (No need to use a
4054 different name, as the MS runtime does not have such a function,
4055 and probably never will.) All callers changed. Ignore DIRFD
4056 value if PATH is an absolute file name, to match Posix spec
4057 better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
4058 symlinks.
4059
77731919
DA
40602012-11-14 Dmitry Antipov <dmantipov@yandex.ru>
4061
4062 * xdisp.c (echo_area_display, redisplay_internal):
4063 Omit redundant check whether frame_garbaged is set.
4064
73dcdb9f
PE
40652012-11-14 Paul Eggert <eggert@cs.ucla.edu>
4066
4067 Use faccessat, not access, when checking file permissions (Bug#12632).
4068 This fixes a bug that has been present in Emacs since its creation.
4069 It was reported by Chris Torek in 1983 even before GNU Emacs existed,
4070 which must set some sort of record. (Torek's bug report was against
4071 a predecessor of GNU Emacs, but GNU Emacs happened to have the
4072 same common flaw.) See Torek's Usenet posting
4073 "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
4074 Posted: Fri Apr 8 14:18:56 1983.
4075 * Makefile.in (LIB_EACCESS): New macro.
4076 (LIBES): Use it.
4077 * callproc.c (init_callproc):
4078 * charset.c (init_charset):
4079 * fileio.c (check_existing, check_executable, check_writable)
4080 (Ffile_readable_p):
4081 * lread.c (openp, load_path_check):
4082 * process.c (allocate_pty):
4083 * xrdb.c (file_p):
4084 Use effective UID when checking permissions, not real UID.
4085 * callproc.c (init_callproc):
4086 * charset.c (init_charset):
4087 * lread.c (load_path_check, init_lread):
4088 Test whether directories are accessible, not merely whether they exist.
4089 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
4090 * fileio.c (check_existing, check_executable, check_writable)
4091 (Ffile_readable_p):
4092 Use symbolic names instead of integers for the flags, as they're
4093 portable now.
4094 (check_writable): New arg AMODE. All uses changed.
4095 Set errno on failure.
4096 (Ffile_readable_p): Use faccessat, not stat + open + close.
4097 (Ffile_writable_p): No need to call check_existing + check_writable.
4098 Just call check_writable and then look at errno. This saves a syscall.
4099 dir should never be nil; replace an unnecessary runtime check
4100 with an eassert. When checking the parent directory of a nonexistent
4101 file, check that the directory is searchable as well as writable, as
4102 we can't create files in unsearchable directories.
4103 (file_directory_p): New function, which uses 'stat' on most platforms
4104 but faccessat with D_OK (for efficiency) if WINDOWSNT.
4105 (Ffile_directory_p, Fset_file_times): Use it.
4106 (file_accessible_directory_p): New function, which uses a single
4107 syscall for efficiency.
4108 (Ffile_accessible_directory_p): Use it.
4109 * xrdb.c (file_p): Use file_directory_p.
4110 * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
4111 * lread.c (openp): When opening a file, use fstat rather than
4112 stat, as that avoids a permissions race. When not opening a file,
4113 use file_directory_p rather than stat.
4114 (dir_warning): First arg is now a usage string, not a format.
4115 Use errno. All uses changed.
4116 * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
4117 that merely introduced a race.
4118 * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
4119 changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
4120 and similarly for the other O_* flags.
4121 * w32.c (sys_faccessat): Rename from sys_access and switch to
4122 faccessat's API. All uses changed.
4123 * xrdb.c: Do not include <sys/stat.h>; no longer needed.
4124 (magic_db): Rename from magic_file_p.
4125 (magic_db, search_magic_path): Return an XrmDatabase rather than a
4126 char *, so that we don't have to test for file existence
4127 separately from opening the file for reading. This removes a race
4128 fixes a permission-checking problem, and simplifies the code.
4129 All uses changed.
4130 (file_p): Remove; no longer needed.
4131
2a14f83b
DA
41322012-11-13 Dmitry Antipov <dmantipov@yandex.ru>
4133
4134 Omit glyphs initialization at startup.
4135 * dispnew.c (glyphs_initialized_initially_p): Remove.
4136 (adjust_frame_glyphs_initially): Likewise. Adjust users.
4137 (Fredraw_frame): Move actual code from here...
c7085245 4138 (redraw_frame): ...to here. Add eassert. Adjust comment.
2a14f83b
DA
4139 (Fredraw_display): Use redraw_frame.
4140 * xdisp.c (clear_garbaged_frames): Likewise.
4141
f78ee6af 41422012-11-13 Eli Zaretskii <eliz@gnu.org>
32520273
EZ
4143
4144 * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
4145 passed to pint2str and pint2hrstr to be at most the size of the
4146 frame's decode_mode_spec_buffer. This avoids crashes with very
4147 large values of FIELD_WIDTH argument to decode_mode_spec.
4148 (Bug#12867)
4149
b95a9c0c
PE
41502012-11-13 Paul Eggert <eggert@cs.ucla.edu>
4151
4152 Fix a race with verify-visited-file-modtime (Bug#12863).
4153 Since at least 1991 Emacs has ignored an mtime difference of no
4154 more than one second, but my guess is that this was to work around
4155 file system bugs that were fixed long ago. Since the race is
4156 causing problems now, let's remove that code.
4157 * fileio.c (Fverify_visited_file_modtime): Do not accept a file
4158 whose time stamp is off by no more than a second. Insist that the
4159 file time stamps match exactly.
4160
be49ba74
DA
41612012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
4162
4163 * frame.h (struct frame): Convert external_tool_bar member to
4164 1-bit unsigned bitfield.
4165 * termhooks.h (struct terminal): Remove mouse_moved member since
4166 all users are long dead. Adjust comment on mouse_position_hook.
4167
5b04e9f9
DA
41682012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
4169
4170 Simplify by using FOR_EACH_FRAME here and there.
4171 * frame.c (next_frame, prev_frame, other_visible_frames)
4172 (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
4173 * w32term.c (x_window_to_scroll_bar): Likewise.
4174 * window.c (window_list): Likewise.
4175 * xdisp.c (x_consider_frame_title): Likewise.
4176 * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
4177 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4178 (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
4179 * xmenu.c (menubar_id_to_frame): Likewise.
4180 * xselect.c (frame_for_x_selection): Likewise.
4181 * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
4182 (x_window_to_menu_bar): Likewise.
4183 * w32fns.c (x_window_to_frame): Likewise. Adjust comment.
4184
76ae24d7
PE
41852012-11-12 Paul Eggert <eggert@cs.ucla.edu>
4186
12cc4337
PE
4187 * data.c (Qdefalias_fset_function): Now static.
4188
76ae24d7
PE
4189 Another tweak to vectorlike_header change.
4190 * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
4191 Remove, and replace all uses with ...
4192 (next_in_free_list, set_next_in_free_list):
4193 New functions, which respect C's aliasing rules better.
4194
1479c557
PE
41952012-11-11 Paul Eggert <eggert@cs.ucla.edu>
4196
4197 * window.c (list4i): Rename from 'quad'. All uses changed.
4198 Needed because <sys/types.h> defines 'quad' on Solaris 10.
4199
11235c03
JB
42002012-11-11 Juanma Barranquero <lekktu@gmail.com>
4201
4202 * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
4203 warning about mixing declarations and code in ISO C90.
4204
6baf66d5 42052012-11-10 Martin Rudalics <rudalics@gmx.at>
fdaf534a
MR
4206
4207 * window.c (Fsplit_window_internal): Set combination limit of
4208 new parent window to t iff Vwindow_combination_limit is t;
4209 fixing a regression introduced with the change from 2012-09-22.
6baf66d5 4210 (Fset_window_combination_limit): Fix doc-string.
fdaf534a 4211
6baf66d5 42122012-11-10 Eli Zaretskii <eliz@gnu.org>
acf93bcf
EZ
4213
4214 * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
4215 amount when the scroll margins are too large. When scrolling
4216 backwards in the buffer, give up if cannot reach point or the
23ba2705
SM
4217 scroll margin within a reasonable number of screen lines.
4218 Fixes point position in window under scroll-up/down-aggressively when
acf93bcf
EZ
4219 point is positioned many lines beyond the window top/bottom.
4220 (Bug#12811)
4221
508f51f5
EZ
4222 * ralloc.c (relinquish): If real_morecore fails to return memory
4223 to the system, don't crash; instead, leave the last heap
4224 unchanged and return. (Bug#12774)
4225
32e5c58c
SM
42262012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
4227
4228 * lisp.h (AUTOLOADP): New macro.
4229 * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
4230 * data.c (Ffset): Remove special ad-advice-info handling.
4231 (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
4232 (Fsubr_arity): CSE.
4233 (Finteractive_form): Simplify.
4234 (Fquo): Don't insist on having at least 2 arguments.
4235 (Qdefalias_fset_function): New var.
4236
719b0aa5
JD
42372012-11-09 Jan Djärv <jan.h.d@swipnet.se>
4238
4ab15c3e
JD
4239 * image.c (xpm_make_color_table_h): Change to hashtest_equal.
4240
719b0aa5
JD
4241 * nsfont.m (Qcondensed, Qexpanded): New variables.
4242 (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
4243 (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
4244
535cc8e9
DA
42452012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
4246
4247 Fix recently introduced crash on MS-Windows (Bug#12839).
4248 * w32term.h (struct scroll_bar): Use convenient header.
4249 (SCROLL_BAR_VEC_SIZE): Remove.
4250 * w32term.c (x_scroll_bar_create): Use VECSIZE.
4251
7d377c48
DA
42522012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
4253
4254 Tweak last vectorlike_header change.
4255 * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
4256 vectorlike object on the free list. This is introduced to avoid
4257 some (but not all) pointer casting and aliasing problems, see
4258 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
4259 * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
4260 objects.
4261 (xvectype, xvecsize): Use them to examine Lisp_Object values.
4262
7ad27466
JD
42632012-11-09 Jan Djärv <jan.h.d@swipnet.se>
4264
32e5c58c 4265 * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
7ad27466
JD
4266 been removed, so remove them here also.
4267
57618ecf
SM
42682012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
4269
4270 * doc.c (Fdocumentation): Handle new property
4271 dynamic-docstring-function to replace the old ad-advice-info.
4272
53371430
PE
42732012-11-09 Paul Eggert <eggert@cs.ucla.edu>
4274
4275 * fns.c (Qeql, hashtest_eq): Now static.
4276
61ddb1b9
SM
42772012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4278
4279 * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
4280 * fns.c (hashfn_eq, hashfn_eql, sxhash):
4281 * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
4282 * buffer.c (compare_overlays): Use XLI rather than XHASH.
4283
04a2d0d3
PE
42842012-11-08 Paul Eggert <eggert@cs.ucla.edu>
4285
4286 Use same hash function for hashfn_profiler as for hash_string etc.
4287 * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine.
4288 * lisp.h (sxhash_combine): New inline function, with the contents
4289 of the old SXHASH_COMBINE.
4290 * profiler.c (hashfn_profiler): Use it, instead of having a
4291 special hash function containing a comparison that always yields 1.
4292
de5ef41a
SM
42932012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4294
4295 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
4296 (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
4297 (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
4298 Remove unused vars.
4299
a23c4171
JD
43002012-11-08 Jan Djärv <jan.h.d@swipnet.se>
4301
4302 * image.c (xpm_make_color_table_h): Fix compiler error because
4303 make_hash_table changed.
4304
0b59090b 43052012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change)
074d7bb0
JD
4306
4307 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
4308
b7432bb2
SM
43092012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4310
4311 Use ad-hoc comparison function for the profiler's hash-tables.
4312 * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
4313 (make_log): Use them.
4314 (handle_profiler_signal): Don't inhibit quit any longer since we don't
4315 call Fequal any more.
4316 (Ffunction_equal): New function.
4317 (cmpfn_profiler, hashfn_profiler): New functions.
4318 (syms_of_profiler): Initialize them.
4319 * lisp.h (struct hash_table_test): New struct.
4320 (struct Lisp_Hash_Table): Use it.
4321 * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
4322 * fns.c (make_hash_table): Take a struct to describe the test.
4323 (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
4324 (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
4325 (hash_lookup, hash_remove_from_table): Move assertion checking of
4326 hashfn result here. Check hash-equality before calling cmpfn.
4327 (Fmake_hash_table): Adjust call to make_hash_table.
4328 (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
4329 (syms_of_fns): Initialize them.
4330 * emacs.c (main): Move syms_of_fns earlier.
4331 * xterm.c (syms_of_xterm):
4332 * category.c (hash_get_category_set): Adjust call to make_hash_table.
4333 * print.c (print_object): Adjust to new hash-table struct.
4334 * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
4335
88002743
EZ
43362012-11-08 Eli Zaretskii <eliz@gnu.org>
4337
4338 * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
4339 value of w32-scroll-lock-modifier is neither nil nor one of the
4340 known key modifiers. (Bug#12806)
4341
914adc42
DA
43422012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
4343
4344 Shrink struct vectorlike_header to the only size field.
4345 * lisp.h (enum pvec_type): Avoid explicit enum member values.
4346 Adjust comment.
4347 (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
4348 PVEC_TYPE_MASK to arrange new bitfield in the vector header.
4349 (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
4350 (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
4351 information from the vector header. Adjust comment.
4352 (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
4353 (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
4354 layout.
4355 (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
4356 (struct vectorlike_header): Remove next member. Adjust comment.
4357 (struct Lisp_Subr): Add convenient header. Adjust comment.
4358 (allocate_pseudovector): Adjust prototype.
4359 * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
4360 (sweep_string, lisp_malloc): Remove useless prototypes.
4361 (enum mem_type): Adjust comment.
4362 (NEXT_IN_FREE_LIST): New macro.
4363 (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
4364 (Fmake_bool_vector): Likewise.
4365 (struct large_vector): New type to represent allocation unit for
4366 the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
4367 (large_vectors): Change type to struct large_vector.
4368 (allocate_vector_from_block): Simplify.
4369 (PSEUDOVECTOR_NBYTES): Replace with...
4370 (vector_nbytes): ...new function. Adjust users.
4371 (sweep_vectors): Adjust processing of large vectors.
4372 (allocate_vectorlike): Likewise.
4373 (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
4374 Add easserts. Adjust XSETPVECTYPESIZE usage.
4375 (allocate_buffer): Use BUFFER_PVEC_INIT.
4376 (live_vector_p): Adjust to match large vector.
4377 * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
4378 * buffer.h (struct buffer): Add next member.
4379 (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
4380 New macros.
4381 (FOR_EACH_BUFFER): Adjust to match struct buffer change.
4382 * fns.c (internal_equal): Adjust to match enum pvec_type change.
4383 (copy_hash_table): Adjust to match vector header change.
4384 * lread.c (defsubr): Use XSETPVECTYPE.
4385 * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
4386 (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors.
4387 (xvecsize): New command.
4388
c66f21ea
DA
43892012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
4390
4391 * keyboard.c (event_to_kboard): Do not dereference
4392 frame_or_window field of SELECTION_REQUEST_EVENT
4393 and SELECTION_CLEAR_EVENT events (Bug#12814).
4394 * xterm.h (struct selection_input_event): Adjust comment.
4395
eb147960
EZ
43962012-11-07 Eli Zaretskii <eliz@gnu.org>
4397
dab72075
EZ
4398 * w32fns.c (modifier_set): Don't report modifiers from toggle key,
4399 such as Scroll Lock, if the respective keys are treated as
4400 function keys, not as modifiers. This avoids destroying non-ASCII
6b064c16 4401 keyboard input when Scroll Lock is toggled ON. (Bug#12806)
eb147960 4402
5890e400
DA
44032012-11-07 Dmitry Antipov <dmantipov@yandex.ru>
4404
4405 * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring.
4406
b6b3b294
PE
44072012-11-06 Paul Eggert <eggert@cs.ucla.edu>
4408
4409 Restore some duplicate definitions (Bug#12814).
4410 This undoes part of the 2012-11-03 changes. Some people build
4411 with plain -g rather than with -g3, and they need the duplicate
4412 definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
4413 * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
4414 Define as macros, as well as as enums or as constants.
4415
e770aad5
JD
44162012-11-06 Jan Djärv <jan.h.d@swipnet.se>
4417
4418 * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
4419 to keypad keys (Bug#12816).
4420
68f8f1c0
PE
44212012-11-06 Paul Eggert <eggert@cs.ucla.edu>
4422
4423 Minor adjustments of recently-changed frame functions.
4424 * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
4425 known to be a frame (we're in the FRAMEP branch).
4426 * lisp.h (Qframep): Remove decl. frame.h declares this.
4427 * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
4428 since they're meant for Lisp fixnum values.
4429
72f94d4b
DA
44302012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4431
4432 * window.c (Fwindow_combination_limit): Revert to the only
4433 required argument and adjust docstring as suggested in
4434 http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
4435 by Martin Rudalics <rudalics@gmx.at>.
4436
d9f07150
DA
44372012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4438
4439 Widely used frame validity and checking functions.
4440 * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
4441 * frame.c (decode_live_frame, decode_any_frame): New functions.
4442 (delete_frame, Fredirect_frame_focus, Fframe_parameters)
4443 (Fframe_parameter, Fframe_char_height, Fframe_char_width)
4444 (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
4445 (Fframe_pointer_visible_p): Use decode_any_frame.
4446 (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
4447 (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
4448 (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
4449 (Fframe_focus): Likewise. Allow zero number of arguments.
4450 Adjust docstring.
4451 (frame_buffer_list, frame_buffer_predicate): Remove.
4452 * lisp.h (frame_buffer_predicate): Remove prototype.
4453 * buffer.c (Fother_buffer): Use decode_any_frame.
4454 * xdisp.c (Ftool_bar_lines_needed): Likewise.
4455 * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
4456 * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
4457 (Fclose_font, Ffont_info): Use decode_live_frame.
4458 * fontset.c (check_fontset_name): Likewise.
4459 * terminal.c (Fframe_terminal): Likewise.
4460 * w32fns.c (check_x_frame): Likewise.
4461 * window.c (Fminibuffer_window, Fwindow_at)
4462 (Fcurrent_window_configuration): Likewise.
4463 (Frun_window_configuration_change_hook, Fwindow_resize_apply):
4464 Likewise. Allow zero number of arguments. Adjust docstring.
4465 * dispnew.c (Fredraw_frame): Likewise.
4466 * xfaces.c (frame_or_selected_frame): Remove.
4467 (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
4468 (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
4469 (Fframe_face_alist): Use decode_live_frame.
4470 * xfns.c (check_x_frame): Likewise.
4471
89bc0592
DA
44722012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4473
4474 * window.c (quad): New function.
4475 (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
4476 (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
4477 (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
4478 (Fwindow_line_height): Use it.
4479 (Fwindow_fringes): Use list3.
4480 (Fwindow_scroll_bars): Use list4.
4481 (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
4482 (Fwindow_combination_limit): Allow zero number of arguments.
4483
c8e3a9c3
EZ
44842012-11-05 Eli Zaretskii <eliz@gnu.org>
4485
4486 * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
4487
8e2417bf 4488 * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
c8e3a9c3 4489 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
ae600a8e 4490 file descriptor 2 for standard error. (Bug#12805)
c8e3a9c3 4491
209c6a58
CY
44922012-11-05 Chong Yidong <cyd@gnu.org>
4493
4494 * process.c (wait_reading_process_output): Revert previous change.
4495
8148369c
PE
44962012-11-05 Paul Eggert <eggert@cs.ucla.edu>
4497
dd0333b6
PE
4498 Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
4499 This removes code that has been obsolete since around 1990.
4500 * callproc.c (Fcall_process):
4501 * emacs.c (main):
4502 * process.c (create_process):
4503 * term.c (dissociate_if_controlling_tty):
4504 Assume setsid exists.
4505 * callproc.c (child_setup): Assume setpgid exists and behaves as
4506 per POSIX.1-1988 or later.
4507 * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
4508 * emacs.c (shut_down_emacs):
4509 * sysdep.c (sys_suspend, init_foreground_group):
4510 Assume getpgrp behaves as per POSIX.1-1998 or later.
4511 * msdos.c (setpgrp): Remove.
4512 (tcgetpgrp, setpgid, setsid): New functions.
4513 * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp.
4514 * term.c (no_controlling_tty): Remove; unused.
4515 * w32proc.c (setpgrp): Remove.
4516 (setsid, tcgetpgrp): New functions.
4517
8148369c
PE
4518 Simplify by assuming __fpending.
4519 * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
4520 (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
4521 Do not assume that __fpending's result fits in int.
4522
76abf5e5
PE
45232012-11-04 Paul Eggert <eggert@cs.ucla.edu>
4524
06b63c9b
PE
4525 Remove EMACS_OUTQSIZE+sleep hack.
4526 * dispnew.c (update_frame_1): Remove hack for terminals slower
de5ef41a
SM
4527 than 2400 bps, which throttled Emacs by having it sleep.
4528 This code hasn't worked since at least 2007, when the multi-tty stuff
06b63c9b
PE
4529 was added, and anyway those old terminals are long dead.
4530 * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even
4531 without the dispnew.c change, as dispnew.c doesn't include systty.h.
4532
76abf5e5
PE
4533 Fix data-loss with --version (Bug#9574).
4534 * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
4535 as we can't assume that emacs_strerror is initialized, and strerror
4536 is good enough here.
4537 (main): Invoke atexit earlier, to catch earlier instances of
4538 sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
4539
8f31e74b
MM
45402012-11-04 Michael Marchionna <tralfaz@pacbell.net>
4541
4542 * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
4543 (keyDown): Remap keypad keys to X11 virtual key codes.
4544
0d879dca
PE
45452012-11-03 Paul Eggert <eggert@cs.ucla.edu>
4546
7ccfb720
PE
4547 Fix data-loss with --batch (Bug#9574).
4548 * emacs.c: Include <close-stream.h>.
4549 (close_output_streams): New function.
4550 (main): Pass it to atexit, so that Emacs closes stdout and stderr
4551 and handles errors appropriately.
4552 (Fkill_emacs): Don't worry about flushing, as close_output_stream
4553 does that now.
4554
0b3d4a47
PE
4555 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
4556 The symptom is a diagnostic "GLib-WARNING **: In call to
4557 g_spawn_sync(), exit status of a child process was requested but
4558 SIGCHLD action was set to SIG_IGN and ECHILD was received by
4559 waitpid(), so exit status can't be returned." The diagnostic
4560 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
4561 The real bug is a race condition between Emacs and glib: Emacs
4562 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
4563 so that glib can't find it. Work around the bug by invoking
4564 waitpid only on subprocesses that Emacs itself creates.
4565 * process.c (create_process, record_child_status_change):
4566 Don't use special value -1 in pid field, as the caller now must
de5ef41a
SM
4567 know the pid rather than having the callee infer it.
4568 The inference was sometimes incorrect anyway, due to another race.
0b3d4a47
PE
4569 (create_process): Set new 'alive' member if child is created.
4570 (process_status_retrieved): New function.
4571 (record_child_status_change): Use it.
4572 Accept negative 1st argument, which means to wait for the
4573 processes that Emacs already knows about. Move special-case code
4574 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
4575 processes that have already been waited for, by testing and
4576 clearing new 'alive' member.
4577 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
4578 now does this internally.
4579 (handle_child_signal): Let record_child_status_change do all
4580 the work, since we do not want to reap all exited child processes,
4581 only the child processes that Emacs itself created.
4582 * process.h (Lisp_Process): New boolean member 'alive'.
4583
0d879dca
PE
4584 Omit duplicate definitions no longer needed with gcc -g3.
4585 * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
4586 (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
4587 Define only as macros. There's no longer any need to also define
4588 these symbols as enums or as constants, since we now assume
4589 gcc -g3 when debugging.
4590
3478f4b5
EZ
45912012-11-03 Eli Zaretskii <eliz@gnu.org>
4592
4593 * lisp.mk: Adjust comments to the fact that term/internal is now
4594 loaded from loadup.el.
4595
4596 * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
4597 (msdos_fatal_signal): New function.
4598 (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
4599 its argument list.
4600
4601 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
4602 for GCC versions before 4.
4603 (emacs_raise): Define to call msdos_fatal_signal.
4604
4605 * xdisp.c (init_from_display_pos): Fix initialization of the bidi
4606 iterator when starting in the middle of a display or overlay
4607 string. (Bug#12745)
4608
85fabcb7
CY
46092012-11-03 Chong Yidong <cyd@gnu.org>
4610
4611 * process.c (wait_reading_process_output): Clean up the last
4612 change.
4613
893cc455
CY
46142012-11-03 Jim Paris <jim@jtan.com> (tiny change)
4615
4616 * process.c (wait_reading_process_output): Avoid a race condition
4617 with SIGIO delivery (Bug#11536).
4618
0f7b074f
CY
46192012-11-03 Chong Yidong <cyd@gnu.org>
4620
4621 * buffer.c (cursor_type): Untabify docstring.
4622
3737fee7
DA
46232012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
4624
4625 * frame.h (struct frame): Drop can_have_scroll_bars member
4626 which is meaningless for a long time. Adjust comments.
4627 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
4628 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
4629
b6a9e8b1
DA
46302012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
4631
4632 * window.c (decode_next_window_args): Update window arg after
4633 calling decode_live_window and so fix crash reported at
4634 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
4635 by Juanma Barranquero <lekktu@gmail.com>.
4636 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
4637 * font.c (Ffont_at): Likewise.
4638
600d4768
JD
46392012-11-01 Jan Djärv <jan.h.d@swipnet.se>
4640
4641 * widget.c (resize_cb): New function.
4642 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
4643 (EmacsFrameResize): Check if all is up to date before changing frame
4644 size.
4645
1005b4b9
EZ
46462012-11-02 Eli Zaretskii <eliz@gnu.org>
4647
4648 Implement backtrace output for fatal errors on MS-Windows.
4649 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
4650 (BACKTRACE_LIMIT_MAX): New macro.
4651 (w32_backtrace): New function.
4652 (emacs_abort): Use w32_backtrace when the user chooses not to
4653 attach a debugger. Update the text of the abort dialog.
4654
b9e9df47
DA
46552012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
4656
4657 Window-related stuff cleanup here and there.
4658 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
4659 Use decode_any_window.
4660 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
4661 * xdisp.c (Fformat_mode_line): Likewise.
4662 * font.c (Ffont_at): Use decode_live_window.
4663 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
4664 * window.c (decode_next_window_args): Likewise.
4665 (decode_any_window): Remove static.
4666 * window.h (decode_any_window): Add prototype.
4667 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
4668 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
4669 respectively.
4670
2b371ff7
DA
46712012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
4672
4673 Remove pad from struct input_event.
4674 * termhooks.h (struct input_event): Remove padding field.
4675 Adjust comment.
4676 * keyboard.c (event_to_kboard): Simplify because frame_or_window
4677 member is never cons for a long time. Adjust comment.
4678 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
4679 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
4680 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
4681 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
4682
7e8b50d9
EZ
46832012-11-01 Eli Zaretskii <eliz@gnu.org>
4684
4685 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
4686
322aea6d
PE
46872012-10-31 Paul Eggert <eggert@cs.ucla.edu>
4688
4689 Fix crash when using Emacs as commit editor for git (Bug#12697).
4690 * callproc.c (setpgrp): Remove macro, as we now use setpgid
4691 and it is configured in conf_post.h.
4692 (Fcall_process): Don't invoke both setsid and setpgid; the former
4693 is enough, if it exists.
4694 * callproc.c (Fcall_process, child_setup):
4695 * process.c (create_process): Use setpgid.
4696 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
4697 for the real thing.
4698 * dispnew.c (init_display): Initialize the foreground group
4699 if we are running a tty display.
4700 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
4701 * lisp.h (init_foreground_group): New decl.
4702 * sysdep.c (inherited_pgroup): New static var.
4703 (init_foreground_group, tcsetpgrp_without_stopping)
4704 (narrow_foreground_group, widen_foreground_group): New functions.
4705 (init_sys_modes): Narrow foreground group.
4706 (reset_sys_modes): Widen foreground group.
4707
220cb2bd
MA
47082012-10-31 Michael Albinus <michael.albinus@gmx.de>
4709
4710 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE.
4711
218e997a
MR
47122012-10-31 Martin Rudalics <rudalics@gmx.at>
4713
4714 * minibuf.c (read_minibuf): Restore current buffer since
4715 choose_minibuf_frame calling Fset_frame_selected_window may
4716 change it (Bug#12766).
4717
02615da0
JD
47182012-10-30 Jan Djärv <jan.h.d@swipnet.se>
4719
4720 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
4721
aee5b18e
KH
47222012-10-30 Kenichi Handa <handa@gnu.org>
4723
4724 * font.c (Ffont_at): If WINDOW is specified and it is not
4725 displaying the current buffer, signal an error.
4726
ba116008
DC
47272012-10-29 Daniel Colascione <dancol@dancol.org>
4728
de5ef41a
SM
4729 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
4730 In preparation for fixing bug#12739, move these functions from
ba116008
DC
4731 here...
4732
4733 * coding.h, coding.c: ... to here, and compile them only when
53372c27
DC
4734 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper
4735 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
ba116008 4736
640bf8ad
EZ
47372012-10-28 Eli Zaretskii <eliz@gnu.org>
4738
4739 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
4740 (timer_loop, getitimer, setitimer): Use it instead of
4741 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
4742 'clock'.
4743 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
4744 literal 10000.
4745
64ccff5f
JD
47462012-10-28 Jan Djärv <jan.h.d@swipnet.se>
4747
4748 * nsterm.m (NO_APPDEFINED_DATA): New define.
4749 (last_appdefined_event_data): New variable
4750 (last_appdefined_event): Remove.
4751 (ns_select): Initialize t from last_appdefined_event_data instead
4752 of [last_appdefined_event data1].
4753 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
4754 remove last_appdefined_event (Bug#12698).
4755
e483264c
SM
47562012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
4757
4758 * frame.c (x_set_font): Catch internal error.
4759
6c16c13e
EZ
47602012-10-27 Eli Zaretskii <eliz@gnu.org>
4761
e483264c
SM
4762 Avoid overflow in w32 implementation of interval timers.
4763 When possible, for ITIMER_PROF count only times the main thread
6c16c13e
EZ
4764 actually executes.
4765 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
2e612797
EZ
4766 'volatile ULONGLONG' types. All the other data which was
4767 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'.
6c16c13e
EZ
4768 (GetThreadTimes_Proc): New typedef.
4769 (w32_get_timer_time): New function, returns a suitable time value
4770 for the timer.
4771 (timer_loop): Enter critical section when accessing ULONGLONG
4772 values of the itimer_data struct, as these accesses are no longer
e483264c
SM
4773 atomic. Call 'w32_get_timer_time' instead of 'clock'.
4774 Remove unused variable.
6c16c13e
EZ
4775 (init_timers): Initialize s_pfn_Get_Thread_Times.
4776 (start_timer_thread): Don't assign itimer->caller_thread here.
4777 (getitimer): Assign itimer->caller_thread here.
4778 (setitimer): Always call getitimer to get the value of ticks_now.
2f246cd3 4779 (sys_spawnve): Avoid compiler warning about format mismatch.
6c16c13e 4780
ccc83f50
EZ
47812012-10-26 Eli Zaretskii <eliz@gnu.org>
4782
4783 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
4784 mouse movement events if the menu bar is active. This avoids
4785 producing a busy "hour-glass" cursor by Windows if the mouse
4786 pointer is positioned over a tooltip shown for some menu item.
4787
69deda53
PE
47882012-10-25 Paul Eggert <eggert@cs.ucla.edu>
4789
4790 Don't assume process IDs fit in int.
4791 * emacs.c (shut_down_emacs) [!DOS_NT]:
4792 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
4793 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
4794 Use pid_t, not int, to store process IDs, as 'int'
4795 is not wide enough on a few platforms (e.g., AIX and IRIX).
4796
7e70a152
KH
47972012-10-23 Kenichi Handa <handa@gnu.org>
4798
4799 The following change is to make face-font-rescale-alist work
4800 correctly for non-ASCII fonts.
4801
4802 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
4803 (font_open_for_lface): Handle Vface_font_rescale_alist.
4804
49238e7f
CY
48052012-10-23 Chong Yidong <cyd@gnu.org>
4806
4807 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
4808
5ec86886
JD
48092012-10-21 Jan Djärv <jan.h.d@swipnet.se>
4810
ef446959
JD
4811 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
4812 for screen font.
4813 (nsfont_draw): Turn off LCD-smoothing (Bug#11484).
4814
5ec86886
JD
4815 * xterm.c (x_focus_changed): Check if daemonp when sending focus in
4816 event (Bug#12681).
4817
ee7a418d
GM
48182012-10-21 Glenn Morris <rgm@gnu.org>
4819
4820 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
4821
4973679b
PE
48222012-10-20 Paul Eggert <eggert@cs.ucla.edu>
4823
4824 Port to OpenBSD 5.1.
4825 * frame.c (Fmouse_position, Fmouse_pixel_position):
4826 * xdisp.c (produce_stretch_glyph):
4827 Declare local vars only when they're needed.
4828 This is clearer and avoids a warning on OpenBSD about unused vars.
4829 * frame.h (FRAME_WINDOW_P): Always evaluate its argument.
4830 This is safer, and avoids OpenBSD warnings about unused vars.
4831 * keyboard.c (record_menu_key): Remove unnecessary decl.
4832 (poll_timer): Define only if POLL_FOR_INPUT is defined.
4833 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
4834 as our definition clashes with OpenBSD's.
4835 * xfaces.c (load_face_colors, check_lface_attrs)
4836 (get_lface_attributes_no_remap, get_lface_attributes)
4837 (lface_fully_specified_p, x_supports_face_attributes_p)
4838 (tty_supports_face_attributes_p, face_fontset, realize_face)
4839 (realize_x_face, realize_tty_face):
4840 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
4841 merely Lisp_Object *. This is more informative and avoids
4842 a warning on OpenBSD about accessing beyond an object's size.
4843
c664f463
CY
48442012-10-20 Chong Yidong <cyd@gnu.org>
4845
4846 * lread.c (Fload): Doc fix (Bug#12592).
4847
6ec83f92 48482012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
a0d7415f
KH
4849
4850 * font.c (Ffont_at): Fix previous change.
4851
d2824928
EZ
48522012-10-19 Eli Zaretskii <eliz@gnu.org>
4853
e483264c
SM
4854 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
4855 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
c052c554
EZ
4856 for the reasons.
4857
d2824928
EZ
4858 * alloc.c (NSTATICS): Decrease to 0x800.
4859
f60d391f
SM
48602012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
4861
4a0e1924 4862 * fns.c (Fnreverse): Include the problem element when signaling an
f60d391f
SM
4863 error (bug#12677).
4864
1a9327d5
JD
48652012-10-18 Jan Djärv <jan.h.d@swipnet.se>
4866
4867 * nsterm.m (ns_select): Check writefds before call to
4868 FD_ISSET (Bug#12668).
4869
14145a1e
DC
48702012-10-18 Daniel Colascione <dancol@dancol.org>
4871
4872 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000
4873 (staticpro): If we run out of staticpro slots, die with an
4874 informative error instead of just calling emacs_abort.
4875
1f76f6f5
MR
48762012-10-18 Martin Rudalics <rudalics@gmx.at>
4877
4878 Fix two flaws reported by Dmitry Antipov.
4879 * window.c (Ftemp_output_buffer_show): Remove.
4880 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
4881 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
4882
fcf14875
EZ
48832012-10-17 Eli Zaretskii <eliz@gnu.org>
4884
1f76f6f5
MR
4885 * makefile.w32-in ($(BLD)/w32.$(O)):
4886 ($(BLD)/vm-limit.$(O)):
4887 ($(BLD)/term.$(O)):
4888 ($(BLD)/unexw32.$(O)):
4889 ($(BLD)/fileio.$(O)):
a68089e4
EZ
4890 ($(BLD)/dispnew.$(O)): Update dependencies.
4891
4892 * w32term.h (w32_initialize_display_info, initialize_w32_display):
4893 Add prototypes.
4894
4895 * w32proc.c: Include ctype.h.
4896
4897 * w32.h (init_environment, check_windows_init_file)
4898 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
4899 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
4900 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
4901 (sys_link): Add prototypes.
4902
4903 * w32.c: Include w32select.h.
4904 (sys_access, e_malloc, sys_select): Add prototypes.
4905 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
4906
4907 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
4908
4909 * unexw32.c: Include lisp.h and w32.h.
4910
4911 * term.c [WINDOWSNT]: Include w32term.h.
4912
4913 * process.c [WINDOWSNT]: Add prototype of sys_select.
4914
4915 * fileio.c [WINDOWSNT]: Include w32.h.
4916
4917 * dispnew.c [WINDOWSNT]: Include w32.h.
4918
fcf14875
EZ
4919 * cygw32.c (Fcygwin_convert_path_to_windows)
4920 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
4921 Lisp_Object values. (Bug#12661)
4922
4923 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
4924 to Lisp_Object. (Bug#12661)
4925
fe0b1ec4
KH
49262012-10-17 Kenichi Handa <handa@gnu.org>
4927
4928 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
4929 invalidate.
4930
d556ebf9
DA
49312012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
4932
4933 * buffer.c (Fkill_buffer): When unchaining the marker,
1f9f395d 4934 reset its buffer pointer to NULL (Bug#12652).
d556ebf9 4935
f0863a54
DA
49362012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
4937
4938 Do not verify indirection counters of killed buffers (Bug#12579).
4939 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
4940 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
4941
12fbe755
DA
49422012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
4943
4944 * alloc.c (Fmake_byte_code): Fix typo in comment.
4945 * print.c (print_interval): Define as static to match prototype.
4946 * indent.c (disptab_matches_widthtab, recompute_width_table):
4947 Convert to eassert.
4948
61655b89
DA
49492012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
4950
4951 * editfns.c (get_system_name): Remove.
4952 * lisp.h (get_system_name): Remove prototype.
4953 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
4954 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
4955
9520f2f2
DC
49562012-10-15 Daniel Colascione <dancol@dancol.org>
4957
4958 * dbusbind.c: Add comment explaining reason for previous change.
4959
dca778d5
MR
49602012-10-15 Martin Rudalics <rudalics@gmx.at>
4961
4962 * window.c (Fwindow_end): Rewrite check whether cached position
4963 can be used (Bug#12600).
4964 (resize_frame_windows, grow_mini_window, shrink_mini_window):
4965 Set windows_or_buffers_changed.
4966
3e0341b0
DC
49672012-10-15 Daniel Colascione <dancol@dancol.org>
4968
4969 * dbusbind.c: Fix cygw32 build break when compiling with dbus
4970 enabled by undefining the symbol "interface", which the platform
4971 headers define to something incompatible.
4972
33d4113c
DC
49732012-10-14 Daniel Colascione <dancol@dancol.org>
4974
4975 * image.c (init_tiff_functions, init_imagemagick_functions)
4976 (init_svg_functions): Fix cygw32 build break by using these
4977 functions only when WINDOWSNT _and_ HAVE_NTGUI.
4978
a36fb15e
JD
49792012-10-14 Jan Djärv <jan.h.d@swipnet.se>
4980
4981 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
4982
537f336d
JD
49832012-10-13 Jan Djärv <jan.h.d@swipnet.se>
4984
4985 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
4986
0ba06a77
KH
49872012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change)
4988
4989 * coding.c (detect_coding): Set coding->id before calling
4990 this->detector.
4991
ce2fe65a
AS
49922012-10-13 Andreas Schwab <schwab@linux-m68k.org>
4993
4994 * fileio.c: Formatting fixes.
4995
d6453ce4
PE
49962012-10-13 Paul Eggert <eggert@cs.ucla.edu>
4997
4998 Fix some stat-related races.
4999 * fileio.c (Fwrite_region): Avoid race condition if a file is
5000 removed or renamed by some other process immediately after Emacs
5001 writes it but before Emacs stats it. Do not assume that stat (or
5002 fstat) succeeds.
5003 * image.c (slurp_file): Resolve the file name with fopen + fstat
5004 rather than stat + fopen.
5005 (pbm_read_file) [0]: Remove unused code with stat race.
5006 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
5007 Remove ineffective code with stat race.
5008
06485aa8
SM
50092012-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
5010
5011 * doc.c (get_doc_string): Don't signal an error if the file is missing.
5012
167e3640
JD
50132012-10-12 Jan Djärv <jan.h.d@swipnet.se>
5014
5015 * nsterm.m (hold_event_q): New static variable.
5016 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
5017 ! q_event_ptr.
5018 (hold_event): New function.
5019 (ns_read_socket): If hold_event_q have events, store them and
5020 return (Bug#12384).
5021 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
5022 is zero (Bug#12384).
5023
c40239df
JB
50242012-10-12 Juanma Barranquero <lekktu@gmail.com>
5025
5026 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
5027
bb385a92
EZ
50282012-10-12 Eli Zaretskii <eliz@gnu.org>
5029
2a9f1099
EZ
5030 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
5031
bb385a92
EZ
5032 * fileio.c (check_existing): New function.
5033 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
5034 instead of calling 'stat', when what's needed is to check whether
5035 a file exists. This avoids expensive system calls on MS-Windows.
5036 (Bug#12587)
5037
8599b23a 5038 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
bb385a92
EZ
5039
5040 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
5041 determine whether a file exists and is not a directory.
5042
5043 * lisp.h (check_existing): Add prototype.
5044
2b9c2e68
JD
50452012-10-12 Jan Djärv <jan.h.d@swipnet.se>
5046
5047 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
5048
81749a23
GM
50492012-10-12 Glenn Morris <rgm@gnu.org>
5050
5051 * buffer.c (Fset_buffer): Doc fix. (Bug#12624)
5052
5253a5fd
SM
50532012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
5054
389a94a5
SM
5055 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
5056
5253a5fd
SM
5057 * eval.c (Fautoload): Remember previous autoload status in load-history.
5058
7cded46f
PE
50592012-10-11 Paul Eggert <eggert@cs.ucla.edu>
5060
5061 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
5062 * lread.c (load_each_byte, new_backquote_flag, readchar)
5063 (read_filtered_event, lisp_file_lexically_bound_p)
5064 (safe_to_load_version, Fload, complete_filename_p, openp)
5065 (build_load_history, readevalloop, read_escape, read1)
5066 (string_to_number, read_vector, read_list):
5067 * macros.c (Fstart_kbd_macro):
5068 * marker.c (CONSIDER):
5069 * menu.c (parse_single_submenu, digest_single_submenu)
5070 (find_and_return_menu_selection, Fx_popup_menu):
5071 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
5072 (Ftry_completion):
5073 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
5074 (ns_menu_show):
5075 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
5076 (xmenu_show, xdialog_show):
5077 Use bool for booleans.
5078 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
5079 as it's not a predicate. All uses changed. Omit unnecessary
5080 buffer termination.
5081
549c3414
DA
50822012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
5083
5084 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
5085 (save_excursion_restore): Do not restore mark if it was not saved.
5086
e85aafe7
PE
50872012-10-11 Paul Eggert <eggert@cs.ucla.edu>
5088
fd2f90cf
PE
5089 * marker.c (cached_modiff): EMACS_INT, not int.
5090
c1af190b
PE
5091 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
5092 instead of having a wrong decl.
e85aafe7
PE
5093 * nsmenu.m (waiting_for_input): Remove wrong decl.
5094
e738ca56
PE
50952012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5096
9fa1de30
PE
5097 keyboard.c, keymap.c: Use bool for booleans.
5098 * dispnew.c (sit_for): Distinguish between 3-way display_option
5099 and boolean do_display.
5100 * keyboard.c (single_kboard, this_command_key_count_reset)
5101 (waiting_for_input, echoing, immediate_quit, input_pending)
5102 (interrupt_input, interrupts_deferred, pop_kboard)
5103 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
5104 (command_loop_1, adjust_point_for_property)
5105 (safe_run_hooks_error, input_polling_used, read_char):
5106 (help_char_p, readable_events, kbd_buffer_events_waiting)
5107 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
5108 (lucid_event_type_list_p, get_input_pending):
5109 (gobble_input, menu_separator_name_p, menu_bar_item)
5110 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
5111 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
5112 (keyremap_step, test_undefined, read_key_sequence)
5113 (detect_input_pending, detect_input_pending_ignore_squeezables)
5114 (detect_input_pending_run_timers, requeued_events_pending_p)
5115 (quit_throw_to_read_char, Fset_input_interrupt_mode):
5116 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
5117 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
5118 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
5119 (accessible_keymaps_1, Fkey_description, push_key_description):
5120 (shadow_lookup, struct where_is_internal_data)
5121 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
5122 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
5123 (describe_map, describe_vector):
5124 * menu.c (single_menu_item):
5125 * nsmenu.m (ns_update_menubar):
5126 * process.c (wait_reading_process_output):
5127 * search.c (scan_buffer, scan_newline):
5128 Use bool for boolean.
5129 * keyboard.c (timers_run, swallow_events)
5130 (detect_input_pending_run_timers):
5131 * process.c (wait_reading_process_output):
5132 Use unsigned for counter where wraparound-on-overflow is desired,
5133 since unsigned is guaranteed to have that behavior and signed is not.
5134 (read_char): Use ptrdiff_t for string length.
5135 (get_input_pending): Remove first argument, since it was always
5136 the same pointer-to-int (now pointer-to-boolean) &input_pending,
5137 and behave as if it had that value. Return new value of
5138 input_pending. All callers changed.
5139 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
5140 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
5141 a string length.
5142 * keymap.c (push_key_description): Omit last arg, which was always 1.
5143 All callers changed.
5144
e738ca56
PE
5145 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
5146
29f21cdf
JB
51472012-10-10 Juanma Barranquero <lekktu@gmail.com>
5148
5149 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
5150 ($(BLD)/term.$(O)): Update dependencies.
5151
6aea7528
DA
51522012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
5153
5154 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
5155 * lisp.h (enum pvec_type): Adjust comments and omit explicit
5156 initializer for PVEC_NORMAL_VECTOR.
5157
5f3f57be
PE
51582012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5159
5160 Clean out old termopts cruft.
5161 * termopts.h (flow_control, meta_key): Remove unused decls.
5162 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
5163 Don't include termopts.h.
5164
3e98c68e
DA
51652012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
5166
5167 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
5168
77e344e5
PE
51692012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5170
5171 * commands.h (immediate_quit): Remove duplicate decl.
5172
5683d7cd
JD
51732012-10-09 Jan Djärv <jan.h.d@swipnet.se>
5174
5175 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
5176 caching.
5177 (nsfont_open): Remove setting of Vfonts_in_cache.
1f9f395d 5178 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
5683d7cd 5179
cf5fc6db
EZ
51802012-10-09 Eli Zaretskii <eliz@gnu.org>
5181
b15736e6
EZ
5182 * w32fns.c (w32_last_error): Change the return value to DWORD, to
5183 match what GetLastError returns. Explain why the function is
5184 needed.
5185
cf5fc6db
EZ
5186 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
5187 'is_tooltip_frame', to avoid confusion with its global namesake.
5188
f99714ce
DC
51892012-10-08 Daniel Colascione <dancol@dancol.org>
5190
5191 * xdisp.c (start_hourglass): Call w32_note_current_window when
2b1f11ed
EZ
5192 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
5193 build that caused Emacs to display the hourglass cursor forever.
f99714ce 5194
fd59cb29
GM
5195 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
5196 which is broken under remote desktop, calculate the number of
5197 colors available for a display based on the display's number of
5198 planes and number of bits per pixel per plane. (bug#10397).
5199
62c480c9 52002012-10-08 Jan Djärv <jan.h.d@swipnet.se>
fd59cb29 5201
62c480c9
JD
5202 * nsfont.m (Vfonts_in_cache): New variable.
5203 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
5204 are used. Add cached fonts to Vfonts_in_cache.
5205 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
5206
607446ba
JB
52072012-10-08 Juanma Barranquero <lekktu@gmail.com>
5208
fd5125ad
JB
5209 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
5210 in nt/config.nt.
46979e0b
JB
5211 (FONT_H): Define after FRAME_H.
5212 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
5213 Update dependencies.
fd5125ad 5214
607446ba
JB
5215 * w32term.c: Remove leftover declaration of keyboard_codepage.
5216
b6f4e300
EZ
52172012-10-08 Eli Zaretskii <eliz@gnu.org>
5218
c54ebba4
EZ
5219 * makefile.w32-in (FONT_H): Add $(FRAME_H).
5220 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
5221 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
5222 (GLOBAL_SOURCES): Add cygw32.c.
fd59cb29
GM
5223 ($(BLD)/unexw32.$(O)):
5224 ($(BLD)/w32.$(O)):
5225 ($(BLD)/w32console.$(O)):
5226 ($(BLD)/w32fns.$(O)):
5227 ($(BLD)/w32heap.$(O)):
5228 ($(BLD)/w32menu.$(O)):
15c720a3 5229 ($(BLD)/w32proc.$(O)): Add w32common.h.
c54ebba4 5230
b6f4e300
EZ
5231 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
5232 'const char *'.
5233 (x_to_w32_color): Don't modify the argument, modify a copy instead.
5234
501199a3
DC
52352012-10-08 Daniel Colascione <dancol@dancol.org>
5236
5237 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
5238 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
5239 accidental message numbering hole. Change other messages to
5240 match.
5241
5242 * w32select.h (HAVE_W32SELECT): Remove.
5243
5244 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
1f9f395d 5245 w32common.h instead of w32heap.h.
501199a3
DC
5246
5247 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
5248 (get_allocation_unit, get_processor_type, get_w32_major_version)
5249 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
5250 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
5251 (OS_NT, os_subtype, cache_system_info): Move declarations to
5252 w32common.
5253
5254 * w32heap.c: Include w32common.h.
5255 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
8599b23a
SM
5256 (w32_minor_version, w32_build_number, w32_subtype):
5257 Remove duplicate definitions.
501199a3
DC
5258
5259 * w32fns.c: Include w32common.h; include w32heap.h only in
5260 WINDOWSNT.
5261
5262 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
5263 Use `report_file_error' instead of `error' in order to better
5264 inform users of what went wrong. Increase NTGUI_UNICODE file
5265 dialog box file name length to 32k, the maximum allowed by the NT
5266 kernel.
5267
5268 * w32common.h: New file.
5269 (ROUND_UP, ROUND_DOWN, get_page_size)
5270 (get_allocation_unit, get_processor_type, get_w32_major_version)
5271 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
5272 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
5273 (OS_NT, os_subtype, cache_system_info): Move here.
5274
5275 * unexw32.c, unexcw.c: Include w32common.h.
5276
5277 * emacs.c (main): Use (defined (WINDOWSNT) || defined
5278 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
5279 to call syms_of_w32select.
5280
5281 * cygw32.h: Remove obsolete EXFUN declarations.
5282
5283 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
5284
5285 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
5286 of w32inevt.o from SOME_MACHINE_OBJECTS.
5287
93aa5c81
DC
52882012-10-08 Daniel Colascione <dancol@dancol.org>
5289
5290 * image.c: Permanent fix for JPEG compilation issue --- limit
5291 jpeglib `boolean' redefinition to Cygwin builds.
5292
d424f3d8
EZ
52932012-10-08 Eli Zaretskii <eliz@gnu.org>
5294
8ee4c6ce
EZ
5295 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
5296
d424f3d8
EZ
5297 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
5298 Cygwin.
5299
e08348a0
DC
53002012-10-08 Daniel Colascione <dancol@dancol.org>
5301
5302 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
5303 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
5304 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
5305 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
5306 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
5307 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
5308 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
5309 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
5310 now a supported configuration.
5311
5312 * Makefile.in: consolidate image variables into LIBIMAGE; add
8e2417bf 5313 W32_OBJ and W32_LIBS. Compile new files.
e08348a0
DC
5314
5315 * conf_post.h:
5316 (_DebPrint) declare tracing facility for W32 debugging. We need
5317 to unify tracing later.
5318
5319 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
5320 unconditional use of W32 Unicode functions. Cygwin runs only on
5321 100% Unicode operating systems.
5322
5323 * cygw32.c: New file. Define Cygwin-specific facilities.
5324 (Fcygwin_convert_path_to_windows)
5325 (Fcygwin_convert_path_from_windows): New user functions for
5326 accessing Cygwin path-munging routines.
5327
5328 * cygw32.h: New file.
5329 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
5330 UTF-16LE strings temporarily inside non-Lisp-visible string
5331 objects.
5332
5333 (w32_strerror): Just what it says on the tin.
5334
5335 * emacs.c: Make the NS fork-then-exec code for daemon-launching
5336 also run for Cygwin; both systems have the same problem with using
5337 GUI facilities in a forked child. Also call syms_of_cygw32,
5338 syms_of_w32select in correct places.
5339
5340 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
5341 needs fork-then-exec for daemon launching.
5342
5343 * font.h: Include frame.h.
5344
5345 * image.c: Use the image library cache machinery only when we're
5346 compiling for native WINDOWSNT; Cygwin can use shared libraries
5347 like any other Unixlike system.
5348
5349 * keyboard.c: Clarify a comment regarding the input loop.
5350
5351 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
5352 functions directly instead of trying to detect at runtime that our
5353 host operating system supports them. We make this change for two
5354 reasons: Cygwin lacks support for the multibyte character
5355 conversion functions used by the legacy menu code, and Cygwin
5356 never needs to rely on non-Unicode APIs.
5357
5358 * unexw32.c (hinst): Declare extern.
5359
5360 * w32.c: Change header order;
5361 (w32_strerror): Move to w32fns.c because we need it for
5362 non-WINDOWSNT builds.
5363
5364 * w32.h: Add #error macro to make sure we don't include w32.h for
5365 Cygwin builds. Remove w32select declarations.
5366
5367 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
1f9f395d 5368 w32fns.c. w32console.c is WINDOWSNT-only.
e08348a0
DC
5369
5370 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
5371 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
5372 POSIXy alternative.
5373 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
5374 (w32_major_version, w32_minor_version, w32_build_number)
5375 (os_subtype, sound_type): Define here
5376 (w32_defined_color): Make color parameter const for consistency
5377 with other _defined_color functions.
5378 (w32_createwindow): Unconditionally call w32_init_class instead of
5379 doing so only when hprevinst is non-NULL. Plumbing hprevinst
5380 through the code is complex and unnecessary because class
5381 registration is practically free.
5382 (w32_name_of_message): New EMACSDEBUG-only function.
5383 (Fset_message_beep): Move here
5384 (Fx_open_connection): Require that the display name for Windows be
5385 "w32" for consistency, emacsclient disambiguation, and maybe, one
5386 day, multi-window-system support.
5387 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
5388 Cygwin files for W32 GUI facilities, since these clearly don't
5389 expect Cygwin names.
5390 (_DebPrint): Define.
5391 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
5392 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
5393 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
5394 (w32_last_error): Remove.
5395
5396 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
5397
5398 * w32heap.c (syspage_mask): Declare here.
5399 (cache_system_info): Remove.
5400
5401 * w32inevt.c (faked_key): Define globally, not statically.
5402 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
5403 (w32_console_toggle_lock_key): Move to w32fns.c.
5404
5405 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
5406
5407 * w32proc.c (_DebPrint): Move to w32fns.c.
5408 * w32select.c: Include string.h, stdio.h for Cygwin.
5409 * w32select.h: New File.
5410
5411 * w32term.c: Include io.h for non-CYGWIN builds; needed for
5412 get_osfhandle.
5413 (w32_message_fd): New variable. Under Cygwin, holds the file
5414 descriptor the system used to tell us about pending thread
5415 messages.
5416
5417 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
5418 that prevented compilation under non-WINDOWSNT systems.
5419
5420 (w32_initialize): Open /dev/windows and assign it to
5421 w32_message_fd. Provide w32 feature.
5422
5423 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
5424 (WM_EMACS_INPUT_READY): add.
5425 (prepend_msg, w32_message_fd): Declare globally.
5426
5427 * w32xfns.c:
5428 (keyboard_handle): Use only when WINDOWSNT.
5429 (notify_msg_ready): New function. Posts a message to the main
5430 thread's message queue under CYGWIN, which wakes up the main
5431 thread from select(2) by making the /dev/windows file descriptor
5432 ready. Under WINDOWSNT, it sets an event the same way the old
5433 code did.
5434
5435 (post, prepend_msg): Actually call notify_msg_ready instead of
5436 setting the input event directly.
5437
98daa893
EZ
54382012-10-07 Eli Zaretskii <eliz@gnu.org>
5439
5440 * ralloc.c (relinquish): If a heap is ready to be relinquished,
5441 but it still has blocs in it, don't return it to the system,
5442 instead of aborting. (Bug#12402)
5443
3bc0a2f7
JD
54442012-10-07 Jan Djärv <jan.h.d@swipnet.se>
5445
8ad5b73b 5446 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
493b5b1c 5447
335f5ae4
JD
5448 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
5449 MAC_OS_X_VERSION_10_6.
8ad5b73b
JD
5450 (syms_of_nsterm): Remove comment about Panther and above for
5451 ns-antialias-text.
335f5ae4
JD
5452 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
5453 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
5454 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
5455
5456 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
5457 MAC_OS_X_VERSION_10_4.
5458
8ad5b73b
JD
5459 * nsmenu.m (fillWithWidgetValue:): Remove code for <
5460 MAC_OS_X_VERSION_10_2.
335f5ae4
JD
5461
5462 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
5463
5464 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
5465 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
5466
3bc0a2f7
JD
5467 * nsterm.m (ns_in_resize): Remove (Bug#12479).
5468 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
8599b23a
SM
5469 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
5470 Remove ns_in_resize check.
3bc0a2f7
JD
5471 (ns_clear_frame_area): Remove resize handle code.
5472
5473 * nsfns.m (ns_in_resize): Remove.
e483264c
SM
5474 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
5475 Remove ns_in_resize check.
3bc0a2f7 5476
c622b48f
PE
54772012-10-07 Paul Eggert <eggert@cs.ucla.edu>
5478
5479 Improve sys_siglist detection.
5480 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
5481 defined as a macro, as is done in Solaris.
5482 (sys_siglist_entries): New macro.
5483 (save_strsignal): Use it.
5484 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
5485 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
5486
04fafa46
JD
54872012-10-06 Jan Djärv <jan.h.d@swipnet.se>
5488
5489 * nsfns.m (Fx_create_frame): Call x_default_parameter with
5490 fullscreen/Fullscreen.
5491
5492 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
5493 tobar_height is new.
5494
5495 * nsterm.m (x_make_frame_visible): Check for fullscreen.
5496 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
5497 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
5498 (windowDidResize:): Check for correct window if old style fullscreen.
5499 Capitalize word in comment. Remove incorrect comment.
5500 (initFrameFromEmacs:): tbar_height renamed tibar_height.
5501 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
5502 error in drawing background.
1f9f395d 5503 (toggleFullScreen:): Remove comment. Rearrange calls.
04fafa46
JD
5504 Set toolbar values to zero, save old height in tobar_height.
5505 Restore tool bar height when leaving fullscreen.
5506 (canBecomeMainWindow): New function.
5507
c6e21c03
PE
55082012-10-06 Paul Eggert <eggert@cs.ucla.edu>
5509
5510 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
5511
0d9f584b
EZ
55122012-10-05 Eli Zaretskii <eliz@gnu.org>
5513
a65fbb5f
EZ
5514 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
5515
0d9f584b 5516 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
8599b23a
SM
5517 that time stamps of directories could also be changed.
5518 Don't request the too broad GENERIC_WRITE, only the more restrictive
0d9f584b
EZ
5519 FILE_WRITE_ATTRIBUTES access rights.
5520
5521 * fileio.c (Fset_file_times): Special-case ignoring errors for
5522 directories only on MSDOS, not on MS-Windows.
5523
e8757f09 55242012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
ca347e3d
IK
5525
5526 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
5527
7604f298
EZ
55282012-10-04 Eli Zaretskii <eliz@gnu.org>
5529
5530 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
5531 see whether CreateFile failed.
5532
88d69b7d
PE
55332012-10-04 Paul Eggert <eggert@cs.ucla.edu>
5534
5535 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
5536 to avoid similar races.
5537 * keyboard.c (pending_signals): Now bool, not int.
5538
7509f454
PE
5539 Port timers to OpenBSD, plus check for timer failures.
5540 OpenBSD problem reported by Han Boetes.
5541 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
5542 and/or setitimer.
5543 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
5544 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
5545 like OpenBSD, which has timer_settime but does not declare it.
5546 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
5547 whether to use itimerspec-related primitives. All uses of
5548 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
5549
a3c5c0c5
PE
55502012-10-02 Paul Eggert <eggert@cs.ucla.edu>
5551
5552 * profiler.c (handle_profiler_signal): Fix a malloc race
5553 that caused Emacs to hang on Fedora 17 when profiling Lisp.
5554
914e743b
JD
55552012-10-02 Jan Djärv <jan.h.d@swipnet.se>
5556
5557 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
5558
d8ab37a8
EZ
55592012-10-02 Eli Zaretskii <eliz@gnu.org>
5560
5561 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
5562 consistent with the change in return value of 'safe_strsignal'.
5563
b3ecad33
PE
55642012-10-02 Paul Eggert <eggert@cs.ucla.edu>
5565
0a99eee1
PE
5566 Prefer plain 'static' to 'static inline' (Bug#12541).
5567 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
5568 (bidi_set_sor_type, bidi_push_embedding_level)
5569 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
5570 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
5571 (bidi_cache_search, bidi_cache_ensure_space)
5572 (bidi_cache_iterator_state, bidi_cache_find)
5573 (bidi_peek_at_next_level, bidi_set_paragraph_end)
5574 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
5575 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
5576 Now 'static', not 'static inline'.
5577
b3ecad33
PE
5578 Count overruns when profiling; change units to ns.
5579 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
5580 Give extra weight to samples after overruns, to attempt to count
5581 the time more accurately.
5582 (setup_cpu_timer): Change sampling interval units from ms to ns, since
5583 the underlying primitives nominally do ns.
5584 (Fprofiler_cpu_start): Document the change. Mention that
5585 the sampling intervals are only approximate.
5586
090cf9db
SM
55872012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
5588
5589 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
5590
5591 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
5592 case for the special 0 coding-system.
5593
5594 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
5595 (Fmake_overlay): Remove redundant tests.
64edc777 5596 (fix_start_end_in_overlays): Remove redundant recentering.
090cf9db 5597
81550bf4
JB
55982012-10-02 Juanma Barranquero <lekktu@gmail.com>
5599
5600 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
5601 Update dependencies.
5602
aa1ba90e
PE
56032012-10-01 Paul Eggert <eggert@cs.ucla.edu>
5604
5605 Fix a malloc race condition involving strsignal.
5606 A signal can arrive in the middle of a malloc, and Emacs's signal
5607 handler can invoke strsignal, which can invoke malloc, which is
5608 not portable. This race condition bug makes Emacs hang on GNU/Linux.
5609 Fix it by altering the signal handler so that it does not invoke
5610 strsignal.
5611 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
5612 * process.c (status_message): Use const pointer, in case strsignal
5613 is #defined to safe_strsignal.
5614 * sysdep.c (sys_siglist, init_signals): Always define and
5615 initialize a substitute sys_siglist if the system does not define
5616 one, even if HAVE_STRSIGNAL.
5617 (safe_strsignal): Rename from strsignal. Always define,
5618 using sys_siglist. Return a const pointer.
5619 * syssignal.h (safe_strsignal): New decl.
5620 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
5621
ace917bd
EZ
56222012-10-01 Eli Zaretskii <eliz@gnu.org>
5623
5624 * w32proc.c (timer_loop): Fix code that waits for timer
5625 expiration, to avoid high CPU usage.
5626
9eb71b9c
SM
56272012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
5628
5629 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
5630 (sweep_weak_table): Remove redundant prototypes.
5631
b3317662
FP
56322012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
5633
5634 * emacs.c: Move the inclusion of TERM_HEADER after including
5635 windows.h on WINDOWSNT. This avoids compilation problems with
5636 MSVC.
5637
f0e5f225
EZ
56382012-10-01 Eli Zaretskii <eliz@gnu.org>
5639
2d7d1608
EZ
5640 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
5641 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
5642 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
5643 as the previous version used 'void *'.
5644
5645 * ralloc.c (ROUNDUP): Fix last change.
5646 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
5647 'size_t'.
5648
f0e5f225
EZ
5649 * w32proc.c <disable_itimers>: New static flag.
5650 (init_timers): Initialize it to zero, after creating the critical
5651 sections used by the timer threads.
5652 (term_timers): Set to 1 before deleting the critical sections.
5653 (getitimer, setitimer): If disable_itimers is non-zero, return an
5654 error indication without doing anything. Reported by Fabrice
5655 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
4cdfbb89
EZ
5656 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
5657 return results.
5658 [!HAVE_SETITIMER]: Behave as the previous version that didn't
5659 support timers.
f0e5f225
EZ
5660
5661 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
5662 term_ntproc after all the other bookkeeping, to get timers working
5663 as long as possible.
5664
82ef37c1
PE
56652012-10-01 Paul Eggert <eggert@cs.ucla.edu>
5666
b3a4c387
PE
5667 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
5668 Suggested by Juri Linkov in
5669 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
5670
b0ab8123
PE
5671 Prefer plain 'static' to 'static inline' (Bug#12541).
5672 With static functions, modern compilers inline pretty well by
5673 themselves; advice from programmers often hurts as much as it helps.
5674 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
5675 this change shrinks the text size of the Emacs executable by 1.1%
5676 without affecting CPU significantly in my benchmark.
5677 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
5678 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
5679 (mark_maybe_object, mark_maybe_pointer, bounded_number):
5680 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
5681 (bset_auto_fill_function, bset_auto_save_file_format)
5682 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
5683 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
5684 (bset_cache_long_line_scans, bset_case_fold_search)
5685 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
5686 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
5687 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
5688 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
5689 (bset_header_line_format, bset_indicate_buffer_boundaries)
5690 (bset_indicate_empty_lines, bset_invisibility_spec)
5691 (bset_left_fringe_width, bset_major_mode, bset_mark)
5692 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
5693 (bset_name, bset_overwrite_mode, bset_pt_marker)
5694 (bset_right_fringe_width, bset_save_length)
5695 (bset_scroll_bar_width, bset_scroll_down_aggressively)
5696 (bset_scroll_up_aggressively, bset_selective_display)
5697 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
5698 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
5699 (set_buffer_overlays_after):
5700 * category.c (bset_category_table):
5701 * charset.c (read_hex):
5702 * coding.c (produce_composition, produce_charset)
5703 (handle_composition_annotation, handle_charset_annotation)
5704 (char_encodable_p):
5705 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
5706 (assign_row, set_frame_matrix_frame, make_current)
5707 (add_row_entry):
5708 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
5709 * fns.c (maybe_resize_hash_table):
5710 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
5711 * gmalloc.c (register_heapinfo):
5712 * image.c (lookup_image_type):
5713 * intervals.c (set_interval_object, set_interval_left)
5714 (set_interval_right, copy_interval_parent, rotate_right)
5715 (rotate_left, balance_possible_root_interval):
5716 * keyboard.c (kset_echo_string, kset_kbd_queue)
5717 (kset_keyboard_translate_table, kset_last_prefix_arg)
5718 (kset_last_repeatable_command, kset_local_function_key_map)
5719 (kset_overriding_terminal_local_map, kset_real_last_command)
5720 (kset_system_key_syms, clear_event, set_prop):
5721 * lread.c (digit_to_number):
5722 * marker.c (attach_marker, live_buffer, set_marker_internal):
5723 * nsterm.m (ns_compute_glyph_string_overhangs):
5724 * process.c (pset_buffer, pset_command)
5725 (pset_decode_coding_system, pset_decoding_buf)
5726 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
5727 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
5728 (pset_status, pset_tty_name, pset_type, pset_write_queue):
5729 * syntax.c (bset_syntax_table, dec_bytepos):
5730 * terminal.c (tset_param_alist):
5731 * textprop.c (interval_has_some_properties)
5732 (interval_has_some_properties_list):
5733 * window.c (wset_combination_limit, wset_dedicated)
5734 (wset_display_table, wset_hchild, wset_left_fringe_width)
5735 (wset_left_margin_cols, wset_new_normal, wset_new_total)
5736 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
5737 (wset_right_fringe_width, wset_right_margin_cols)
5738 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
5739 (wset_vertical_scroll_bar_type, wset_window_parameters):
5740 * xdisp.c (wset_base_line_number, wset_base_line_pos)
5741 (wset_column_number_displayed, wset_region_showing)
5742 (window_box_edges, run_window_scroll_functions)
5743 (append_glyph_string_lists, prepend_glyph_string_lists)
5744 (append_glyph_string, set_glyph_string_background_width)
5745 (append_glyph, append_composite_glyph)
5746 (take_vertical_position_into_account):
5747 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
5748 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
5749 (lface_hash, lface_same_font_attributes_p, lookup_face):
5750 * xml.c (libxml2_loaded_p):
5751 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
5752 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
5753 Now 'static', not 'static inline'.
5754
05584c31
PE
5755 * bidi.c: Tune.
5756 (bidi_copy_it): Do the whole copy with a single memcpy.
5757 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
5758
86ec63ba
PE
5759 Revert the FOLLOW-SYMLINKS change for file-attributes.
5760 Doing it right would require several changes to Tramp, and there's
5761 not enough time to get that tested before the freeze today.
5762 * dired.c (directory_files_internal, Ffile_attributes):
5763 Undo last change.
5764
82ef37c1
PE
5765 * frame.c (x_report_frame_params): Port better to wider ints.
5766 Do not assume that EMACS_UINT is the same width as uprintmax_t,
5767 or that pointers can be printed in 15 decimal digits.
5768 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
5769
62aba0d4
FP
57702012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
5771
5772 Support x64 build on MS-Windows.
5773 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
5774 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
5775 compatibility with x64.
5e4daaf3 5776 (x_get_focus_frame): Add prototype.
62aba0d4
FP
5777
5778 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
5779 defining an XRectangle structure.
5780
5781 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
5782 arithmetics for compatibility with x64.
5783
5784 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
5785 compatibility with x64.
5786
5787 * w32heap.h: Adjust prototypes and declarations.
5788
5789 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
5790 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
5791 DWORD, long, and unsigned long, for compatibility with x64.
5792 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
5793 (sbrk): Argument is now of type ptrdiff_t.
5794
5795 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
5796 less than 0x0500.
5797 (w32_msg_pump): Use WPARAM type for 'result'.
5798
5799 * w32.c (init_environment, get_emacs_configuration): Support AMD64
5800 architecture.
5801 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
5802 compatibility with x64.
5803
5804 * vm-limit.c (lim_data): Now size_t.
5805 (check_memory_limits): Adjust prototypes of real_morecore and
5806 __morecore to receive argument of type ptrdiff_t. Use size_t for
5807 five_percent and data_size.
5808
5809 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
5810 variables, for compatibility with x64.
5811 (rva_to_section, offset_to_section, relocate_offset)
5812 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
5813 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
5814 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
5815 for compatibility with x64.
5816
5817 * sysdep.c (STDERR_FILENO): Define if not already defined.
5818
5819 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
5820 (__morecore): Argument type is now ptrdiff_t.
5821 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
5822 (relinquish): Use ptrdiff_t type for 'excess'.
5823 (r_alloc_sbrk): Argument type is now ptrdiff_t.
5824
5825 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
5826 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
5827 instead of a literal number.
5828
5829 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
5830 (min): Define only if not already defined.
5831
5832 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
5833 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
5834 hosts.
5835
5836 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
5837 'bitmaps' is a pointer.
5838
5839 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
5840
5841 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
5842
e7a2937b
PE
58432012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5844
5845 file-attributes has a new optional arg FOLLOW-SYMLINKS.
5846 * dired.c (directory_files_internal, Ffile_attributes):
5847 New arg follow_symlinks. All uses changed.
5848
b43d62ae
SM
58492012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
5850
5851 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
5852
c06c382a
EZ
58532012-09-30 Eli Zaretskii <eliz@gnu.org>
5854
5855 Support atimers and CPU profiler via profile.c on MS-Windows.
5856 * w32proc.c (sig_mask, crit_sig): New static variables.
5857 (sys_signal): Support SIGALRM and SIGPROF.
5858 (sigemptyset, sigaddset, sigfillset, sigprocmask)
b43d62ae 5859 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
c06c382a
EZ
5860 sigfillset, and sigprocmask are no longer no-ops.
5861 (sigismember): New function.
5862 (struct itimer_data): New definition.
5863 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
5864 (crit_prof): New static variables.
5865 (MAX_SINGLE_SLEEP): New definition.
5866 (timer_loop, stop_timer_thread, term_timers, init_timers)
5867 (start_timer_thread, getitimer, setitimer): New functions.
5868 (alarm): No longer a no-op, calls setitimer.
5869
5870 * w32.c (term_ntproc): Call term_timers.
5871 (init_ntproc): Make sure all signals are unblocked at startup, to
5872 erase any traces of dumping. Call init_timers.
5873
5874 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
5875 Windows-specific code to display the hourglass mouse pointer is no
5876 longer used.
5877 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
5878 to hourglass timer expiration.
5879 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
5880 Remove, no longer used.
b43d62ae
SM
5881 (w32_note_current_window, show_hourglass, hide_hourglass):
5882 New functions, in support of hourglass cursor display similar to other
c06c382a
EZ
5883 window systems.
5884 (syms_of_w32fns): Don't initialize hourglass_timer.
5885
5886 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
5887 WINDOWSNT as well.
5888 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
5889
5890 * w32.h (init_timers, term_timers): Add prototypes.
5891
95402d5f
KH
58922012-09-30 Kenichi Handa <handa@gnu.org>
5893
5894 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
5895 to the buffer relocation which may be caused by ccl_driver.
5896
dd946752
JD
58972012-09-30 Jan Djärv <jan.h.d@swipnet.se>
5898
d7e642cc
JD
5899 * xfns.c (Fx_file_dialog): Update comment.
5900
5901 * w32fns.c (Fx_file_dialog): Update comment.
5902
5903 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
5904 Initialize panel name field if OSX >= 10.6.
5905
5906 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
5907
dd946752
JD
5908 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
5909
5910 * nsterm.m (NEW_STYLE_FS): New define.
5911 (ns_fullscreen_hook, windowWillEnterFullScreen)
5912 (windowDidEnterFullScreen, windowWillExitFullScreen)
5913 (windowDidExitFullScreen, toggleFullScreen, handleFS)
5914 (setFSValue): New functions.
5915 (EmacsFSWindow): New implementation.
5916 (canBecomeKeyWindow): New function for EmacsFSWindow.
5917 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
5918 (dealloc): Release nonfs_window if in fullscreen.
5919 (updateFrameSize:): Call windowDidMove to update top/left.
5920 (windowWillResize:toSize:): Check if frame is still maximized.
5921 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
5922 next_maximized, maximized_width, maximized_height and nonfs_window.
5923 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
5924 tbar_height.
5925 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
1f9f395d 5926 fullscreen. Set maximized_width/height. Act on next_maximized.
dd946752
JD
5927
5928 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
5929 (EmacsView): Add variables for fullscreen.
5930 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
5931 (EmacsFSWindow): New interface for fullscreen.
5932
427730eb
JB
59332012-09-30 Juanma Barranquero <lekktu@gmail.com>
5934
5935 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
5936
48de8b12
CY
59372012-09-30 Chong Yidong <cyd@gnu.org>
5938
5939 * fns.c (Frandom): Doc fix.
5940
5938d519
MR
59412012-09-30 Martin Rudalics <rudalics@gmx.at>
5942
5943 * window.c (Vwindow_combination_limit): New default value.
5944 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
5945
cb5b0266
PE
59462012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5947
5948 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
5949 Suggested by Eli Zaretskii in
5950 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
5951
84f72efd
EZ
59522012-09-30 Eli Zaretskii <eliz@gnu.org>
5953
5954 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
5955 HAVE_TIMER_SETTIME is defined.
5956
9d4dcdc9
PE
59572012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5958
d89460ed
PE
5959 Profiler improvements: more-accurate timers, overflow checks.
5960 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
5961 signal.h, setjmp.h. Include systime.h instead.
5962 (saturated_add): New function.
5963 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
5964 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
5965 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
5966 New static vars.
84f72efd 5967 (enum profiler_cpu_running): New enum.
d89460ed
PE
5968 (profiler_cpu_running): Now of that enum type, not bool.
5969 All uses changed to store the new value.
5970 (handle_profiler_signal): Rename from sigprof_handler_1,
5971 for consistency with other handlers. Do not check whether
5972 cpu_log is a hash-table if garbage collecting, since it
5973 doesn't matter in that case.
5974 (deliver_profiler_signal): Rename from sigprof_handler,
5975 for consistency with other handlers.
5976 (setup_cpu_timer): New function, with much of what used to be in
5977 Fprofiler_cpu_start. Check for out-of-range argument.
5978 Prefer timer_settime if available, and prefer
5979 thread cputime clocks, then process cputime clocks, then
5980 monotonic clocks, to the old realtime clock. Use make_timeval
5981 to round more-correctly when falling back to setitimer.
5982 (Fprofiler_cpu_start): Use it.
5983 (Fprofiler_cpu_stop): Prefer timer_settime if available.
5984 Don't assume that passing NULL as the 2nd argument of setitimer
5985 is the same as passing a pointer to all-zero storage.
5986 Ignore SIGPROF afterwards.
5987 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
5988 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
5989 non-fatal signal handlers. Ignore SIGPROF on startup.
5990 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
5991 in profiler.c, since sysdep.c now uses it.
5992
9d4dcdc9
PE
5993 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
5994 Suggested by Eli Zaretskii in
5995 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
5996
8e5691a0
JB
59972012-09-29 Juanma Barranquero <lekktu@gmail.com>
5998
5999 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
6000
e7c1b6ef
SM
60012012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
6002
6003 * lisp.h (struct backtrace): Remove indirection for `function' field.
6004 * xdisp.c (redisplay_internal):
6005 * profiler.c (record_backtrace, sigprof_handler_1):
6006 * alloc.c (Fgarbage_collect):
6007 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
6008 (Fbacktrace_frame): Adjust accordingly.
6009
e61d39cd 60102012-09-28 Glenn Morris <rgm@gnu.org>
d393cefb
GM
6011
6012 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
6013 (Frun_hook_with_args_until_failure): Doc fixes.
6014
404043ea
EZ
60152012-09-28 Eli Zaretskii <eliz@gnu.org>
6016
6017 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
6018 Qautomatic_redisplay and change the symbol name. All users changed.
6019
704d3f45
TM
60202012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
6021
6022 * profiler.c (sigprof_handler): Fix race condition.
6023
757140ff
GM
60242012-09-28 Glenn Morris <rgm@gnu.org>
6025
6026 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
6027
a615a3ae
PE
60282012-09-27 Paul Eggert <eggert@cs.ucla.edu>
6029
6030 Check more robustly for timer_settime.
89d17fd0
PE
6031 * Makefile.in (LIB_TIMER_TIME): New macro.
6032 (LIBES): Add it.
a615a3ae
PE
6033 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
6034 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
6035 call timer_settime.
6036
3670daf7
TM
60372012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
6038
6039 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
6040
6a586b7f
JB
60412012-09-26 Juanma Barranquero <lekktu@gmail.com>
6042
6043 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
6044
41c8bfcf
PE
60452012-09-26 Paul Eggert <eggert@cs.ucla.edu>
6046
6047 * character.h (MAYBE_UNIFY_CHAR): Remove.
6048 * charset.c, charset.h (maybe_unify_char): Now static.
6049 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
6050 Since this stuff is now private to charset.c, there's no need for
6051 a public macro and no need to inline by hand.
6052
3a880af4 60532012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
908589fd
AS
6054 Stefan Monnier <monnier@iro.umontreal.ca>
6055 Juanma Barranquero <lekktu@gmail.com>
611b7507 6056
3a880af4
SM
6057 * profiler.c: New file.
6058 * Makefile.in (base_obj): Add profiler.o.
611b7507
JB
6059 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
6060 ($(BLD)/profiler.$(O)): New target.
3a880af4
SM
6061 * emacs.c (main): Call syms_of_profiler.
6062 * alloc.c (Qautomatic_gc): New constant.
6063 (MALLOC_PROBE): New macro.
6064 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
6065 (total_bytes_of_live_objects): New function.
6066 (Fgarbage_collect): Use it. Record itself in backtrace_list.
6067 Call malloc_probe for the memory profiler.
6068 (syms_of_alloc): Define Qautomatic_gc.
6069 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
6070 race condition.
6071 (struct backtrace): Move definition...
6072 * lisp.h (struct backtrace): ..here.
6073 (Qautomatic_gc, profiler_memory_running): Declare vars.
6074 (malloc_probe, syms_of_profiler): Declare functions.
6075 * xdisp.c (Qautomatic_redisplay): New constant.
6076 (redisplay_internal): Record itself in backtrace_list.
6077 (syms_of_xdisp): Define Qautomatic_redisplay.
611b7507 6078
5938d519 60792012-09-25 Eli Zaretskii <eliz@gnu.org>
b67238c2
JB
60802012-09-25 Juanma Barranquero <lekktu@gmail.com>
6081
6082 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
6083
e26fd2e4
PE
60842012-09-25 Paul Eggert <eggert@cs.ucla.edu>
6085
6086 Prefer POSIX timers if available.
6087 They avoid a race if the timer is too close to the current time.
6088 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
6089 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
9180598c 6090 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
e26fd2e4 6091
eedec3ee
EZ
60922012-09-25 Eli Zaretskii <eliz@gnu.org>
6093
6094 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
6095 CHAR_STRING_ADVANCE.
6096 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
6097 STRING_CHAR_ADVANCE.
6098
aa15c6bb
JB
60992012-09-25 Juanma Barranquero <lekktu@gmail.com>
6100
6101 Move Vlibrary_cache to emacs.c and reset before dumping.
6102
6103 * lisp.h (reset_image_types): Declare.
6104 [WINDOWSNT] (Vlibrary_cache): Declare.
6105
6106 * image.c (reset_image_types): New function.
6107
6108 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
6109 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
6110 (Fdump_emacs): Reset Vlibrary_cache and image_types.
6111
6112 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
6113 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
6114
6115 * w32.h (Vlibrary_cache): Do not declare.
6116
54d629be
EZ
61172012-09-25 Eli Zaretskii <eliz@gnu.org>
6118
16b22fef
EZ
6119 * w32proc.c (sys_signal): Handle all signals defined by the
6120 MS-Windows runtime, not just SIGCHLD. Actually install the signal
6121 handlers for signals supported by Windows. Don't override
6122 term_ntproc as the handler for SIGABRT.
6123 (sigaction): Rewrite to call sys_signal instead of duplicating its
6124 code.
6125 (sys_kill): Improve commentary.
6126
6127 * w32.c (term_ntproc): Accept (and ignore) one argument, for
6128 consistency with a signature of a signal handler. All callers
6129 changed.
6130 (init_ntproc): Accept an argument DUMPING. If dumping, don't
6131 install term_ntproc as a signal handler for SIGABRT, as that
6132 should be done by the dumped Emacs.
6133
6134 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
6135
6136 * w32select.c (term_w32select): Protect against repeated
6137 invocation by setting clipboard_owner to NULL after calling
6138 DestroyWindow.
6139
6140 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
6141 and term_ntproc to their modified signatures.
6142
54d629be
EZ
6143 * character.c (char_string, string_char): Remove calls to
6144 MAYBE_UNIFY_CHAR. See the discussion starting at
6145 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
6146 for the details.
6147
59f7af81
CY
61482012-09-25 Chong Yidong <cyd@gnu.org>
6149
6150 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
6151
22e8cf4a
SM
61522012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
6153
6154 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
6155 when encountering an unknown bytecode.
6156
578098f3
PE
61572012-09-24 Paul Eggert <eggert@cs.ucla.edu>
6158
6159 image.c, indent.c: Use bool for booleans.
6160 * dispextern.h (struct image_type): Members valid_p, load, init
6161 now return bool, not int. All uses changed.
6162 * image.c: Omit unnecessary static decls.
6163 (x_create_bitmap_mask, x_build_heuristic_mask):
6164 Return void, not int, since callers don't care about the return value.
6165 (x_create_bitmap_mask, define_image_type, valid_image_p)
6166 (struct image_keyword, parse_image_spec, image_spec_value)
6167 (check_image_size, image_background)
6168 (image_background_transparent, x_clear_image_1)
6169 (postprocess_image, lookup_image, x_check_image_size)
6170 (x_create_x_image_and_pixmap, xbm_image_p)
6171 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
6172 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
6173 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
6174 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
6175 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
6176 (png_image_p, init_png_functions, png_load_body, png_load)
6177 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
6178 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
6179 (init_gif_functions, gif_load, imagemagick_image_p)
6180 (imagemagick_load_image, imagemagick_load, svg_image_p)
6181 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
6182 (gs_load):
6183 * nsimage.m (ns_load_image):
6184 * nsterm.m (ns_defined_color):
6185 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
6186 * xfns.c (x_defined_color):
6187 * xterm.c (x_alloc_lighter_color_for_widget)
6188 (x_alloc_nearest_color_1, x_alloc_nearest_color)
6189 (x_alloc_lighter_color):
6190 * indent.c (disptab_matches_widthtab, current_column)
6191 (scan_for_column, string_display_width, indented_beyond_p)
6192 (compute_motion, vmotion, Fvertical_motion):
6193 Use bool for booleans.
6194
a5f2b6ec
CY
61952012-09-24 Chong Yidong <cyd@gnu.org>
6196
6197 * chartab.c (Fset_char_table_default): Obsolete function removed.
6198
18e27ea8
PE
61992012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6200
afea8a8a
PE
6201 Move pid_t related decls out of lisp.h.
6202 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
6203 (interruptible_wait_for_termination):
6204 Move these decls from lisp.h to syswait.h, since they use pid_t.
6205 Needed on FreeBSD; see Herbert J. Skuhra in
6206 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
6207 * callproc.c: Include syswait.h.
6208
18e27ea8
PE
6209 gnutls.c, gtkutil.c: Use bool for boolean.
6210 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
6211 (emacs_gnutls_handle_error):
6212 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
6213 (xg_hide_tooltip, xg_create_frame_widgets)
6214 (create_dialog, xg_uses_old_file_dialog)
6215 (xg_get_file_with_chooser, xg_get_file_with_selection)
6216 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
6217 (xg_item_label_same_p, xg_update_menubar)
6218 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
6219 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
6220 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
6221 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
6222 (update_frame_tool_bar, free_frame_tool_bar):
6223 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
6224 * nsmenu.m (ns_update_menubar):
6225 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
6226 * xfns.c (Fx_show_tip) [USE_GTK]:
6227 Use bool for boolean.
6228 * gtkutil.c (xg_update_frame_menubar):
6229 * xmenu.c (update_frame_menubar):
6230 Return void, not int, since caller ignores return value.
6231 * gtkutil.c (xg_change_toolbar_position):
6232 Return void, not 1.
6233
af0e9f75
JB
62342012-09-23 Juanma Barranquero <lekktu@gmail.com>
6235
6236 * makefile.w32-in (BLOCKINPUT_H): Remove.
6237 (SYSSIGNAL_H): New macro.
6238 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
6239 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
6240 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
6241 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
6242 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
6243 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
6244 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
6245 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
6246 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
6247 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
6248 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
6249 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
6250 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
6251 ($(BLD)/w32xfns.$(O)): Update dependencies.
6252
5101529e
EZ
62532012-09-23 Eli Zaretskii <eliz@gnu.org>
6254
6255 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
6256 fatal_error_backtrace.
6257
6258 * w32proc.c (sys_kill): Undo last change: don't do anything when
6259 invoked to deliver SIGABRT to our own process. This is now
6260 handled by emacs_raise.
6261
2c3ee0ad
JB
62622012-09-23 Juanma Barranquero <lekktu@gmail.com>
6263
6264 * w32term.c (w32_read_socket): Remove leftover reference to
6265 interrupt_input_pending.
6266
62a1d661
PE
62672012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6268
6269 Do not use SA_NODEFER.
6270 Problem reported by Dani Moncayo in
6271 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
6272 * alloc.c (die):
6273 * sysdep.c (emacs_abort): Do not reset signal handler.
6274 * emacs.c (terminate_due_to_signal): Reset signal handler here.
6275 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
6276 wanted even on POSIXish hosts, and it doesn't work on Windows.
6277
a0942b9a
JD
62782012-09-23 Jan Djärv <jan.h.d@swipnet.se>
6279
6280 * xterm.c (x_term_init): Call fixup_locale before and after calling
6281 gtk_init (Bug#12392).
6282
d07ff9db
CY
62832012-09-23 Chong Yidong <cyd@gnu.org>
6284
6285 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
6286 Vdynamic_library_alist.
6287
6288 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
6289 (Fgnutls_available_p): Caller changed.
6290
6291 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
6292 (Flibxml_parse_xml_region): Likewise.
6293
6294 * dispextern.h (struct image_type): Remove arg from init function.
6295
6296 * image.c (Finit_image_library, lookup_image_type)
6297 (define_image_type): Remove now-unneeded second arg.
6298 (init_xpm_functions, init_png_functions, init_jpeg_functions)
6299 (init_tiff_functions, init_gif_functions, init_svg_functions):
6300 Arglist and w32_delayed_load calling convention changed.
6301 (gs_type): Remove init_gs_functions; there is no such function.
641cfd14 6302 (valid_image_p, make_image): Fix caller to lookup_image_type.
d07ff9db 6303
4d7e6e51
PE
63042012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6305
6306 Simplify and avoid signal-handling races (Bug#12471).
6307 * alloc.c (die):
6308 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
6309 Avoid recursive loop if there's a fatal error in the function itself.
6310 * atimer.c (pending_atimers):
6311 * blockinput.h: Don't include "atimer.h"; no longer needed.
6312 (interrupt_input_pending): Remove. All uses removed.
6313 pending_signals now counts both atimers and ordinary interrupts.
6314 This is less racy than having three separate pending-signal flags.
6315 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
6316 (input_blocked_p):
6317 Rename from their upper-case counterparts BLOCK_INPUT,
6318 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
6319 INPUT_BLOCKED_P, and turn into functions. All uses changed.
6320 This makes it easier to access volatile variables more accurately.
6321 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
6322 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
6323 that's more reliable if the code is buggy and sets
6324 interrupt_input_blocked to a negative value. All uses changed.
6325 * atimer.c (deliver_alarm_signal):
6326 Remove. No need to deliver this to the parent; any thread can
6327 handle this signal now. All uses replaced by underlying handler.
6328 * atimer.c (turn_on_atimers):
6329 * dispnew.c (handle_window_change_signal):
6330 * emacs.c (handle_danger_signal):
6331 * keyboard.c (kbd_buffer_get_event):
6332 Don't reestablish signal handler; not needed with sigaction.
6333 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
6334 (UNBLOCK_INPUT_TO):
6335 Rework to avoid unnecessary accesses to volatile variables.
6336 (UNBLOCK_INPUT_TO): Now a function.
6337 (totally_unblock_input, unblock_input): New decls.
6338 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
6339 (init_data): Remove. Necessary stuff now done in init_signal.
6340 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
6341 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
6342 (fatal_error_code): Remove; no longer needed.
6343 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
6344 it doesn't always backtrace. All uses changed. No need to reset
6345 signal to default, since sigaction and/or die does that for us now.
6346 Use emacs_raise (FOO), not kill (getpid (), FOO).
6347 (main): Check more-accurately whether we're dumping.
6348 Move fatal-error setup to sysdep.c
6349 * floatfns.c: Do not include "syssignal.h"; no longer needed.
6350 * gtkutil.c (xg_get_file_name, xg_get_font):
6351 Remove no-longer-needed signal-mask manipulation.
6352 * keyboard.c, process.c (POLL_FOR_INPUT):
6353 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
6354 * keyboard.c (read_avail_input): Remove.
6355 All uses replaced by gobble_input.
6356 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
6357 (kbd_buffer_store_event_hold, gobble_input):
6358 (record_asynch_buffer_change) [USABLE_SIGIO]:
6359 (store_user_signal_events):
6360 No need to mess with signal mask.
6361 (gobble_input): If blocking input and there are terminals, simply
6362 set pending_signals to 1 and return. All hooks changed to not
6363 worry about whether input is blocked.
6364 (process_pending_signals): Clear pending_signals before processing
6365 them, in case a signal comes in while we're processing.
6366 By convention callers now test pending_signals before calling us.
6367 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
6368 New functions, to support changes to blockinput.h.
6369 (handle_input_available_signal): Now extern.
6370 (reinvoke_input_signal): Remove. All uses replaced by
6371 handle_async_input.
6372 (quit_count): Now volatile, since a signal handler uses it.
3a880af4
SM
6373 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
6374 All callers changed. Block SIGINT only if not already blocked.
4d7e6e51
PE
6375 Clear sigmask reliably, even if Fsignal returns, which it can.
6376 Omit unnecessary accesses to volatile var.
6377 (quit_throw_to_read_char): No need to restore sigmask.
6378 * keyboard.c (gobble_input, handle_user_signal):
6379 * process.c (wait_reading_process_output):
6380 Call signal-handling code rather than killing ourselves.
6381 * lisp.h: Include <float.h>, for...
6382 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
6383 (pending_signals): Now volatile.
6384 (syms_of_data): Now const if IEEE floating point.
6385 (handle_input_available_signal) [USABLE_SIGIO]:
6386 (terminate_due_to_signal, record_child_status_change): New decls.
6387 * process.c (create_process): Avoid disaster if memory is exhausted
6388 while we're processing a vfork, by tightening the critical section
6389 around the vfork.
6390 (send_process_frame, process_sent_to, handle_pipe_signal)
6391 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
6392 ignores SIGPIPE.
6393 (send_process): No need for setjmp/longjmp any more, since the
6394 SIGPIPE stuff is now gone. Instead, report an error if errno
6395 is EPIPE.
6396 (record_child_status_change): Now extern. PID and W are now args.
6397 Return void, not bool. All callers changed.
6398 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
6399 Remove. All uses removed. This bug should be fixed now in a
6400 different way.
6401 (wait_for_termination_1): Use waitpid rather than sigsuspend,
6402 and record the child status change directly. This avoids the
6403 need to futz with the signal mask.
6404 (process_fatal_action): Move here from emacs.c.
6405 (emacs_sigaction_flags): New function, containing
6406 much of what used to be in emacs_sigaction_init.
6407 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
6408 caught by emacs, to make races less likely.
6409 (deliver_process_signal): Rename from handle_on_main_thread.
6410 All uses changed.
6411 (BACKTRACE_LIMIT_MAX): Now at top level.
6412 (thread_backtrace_buffer, threadback_backtrace_pointers):
6413 New static vars.
6414 (deliver_thread_signal, deliver_fatal_thread_signal):
6415 New functions, for more-accurate delivery of thread-specific signals.
6416 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
6417 (deliver_arith_signal): Handle in this thread, not
6418 in the main thread, since it's triggered by this thread.
6419 (maybe_fatal_sig): New function.
6420 (init_signals): New arg DUMPING so that we can be more accurate
6421 about whether we're dumping. Caller changed.
6422 Treat thread-specific signals differently from process-general signals.
6423 Block all signals while handling fatal error; that's safer.
6424 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
6425 on IEEE hosts.
6426 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
6427 Ignore SIGPIPE unless batch.
6428 (emacs_backtrace): Output backtrace for the appropriate thread,
6429 which is not necessarily the main thread.
6430 * syssignal.h: Include <stdbool.h>.
6431 (emacs_raise): New macro.
6432 * xterm.c (x_connection_signal): Remove; no longer needed
6433 now that we use sigaction.
6434 (x_connection_closed): No need to mess with sigmask now.
6435 (x_initialize): No need to reset SIGPIPE handler here, since
6436 init_signals does this for us now.
6437
8f4635e9
JD
64382012-09-23 Jan Djärv <jan.h.d@swipnet.se>
6439
6440 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
fb39b937 6441 background rect may be larger (Bug#12245).
8f4635e9 6442
3296976d
CY
64432012-09-23 Chong Yidong <cyd@gnu.org>
6444
6445 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
6446
d41e491e
PE
64472012-09-22 Paul Eggert <eggert@cs.ucla.edu>
6448
6449 * .gdbinit: Just stop at fatal_error_backtrace.
6450 See Stefan Monnier's request in
6451 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
6452 Remove no-longer-used query of system type.
6453
c88b867f
CY
64542012-09-22 Chong Yidong <cyd@gnu.org>
6455
6456 * search.c (Freplace_match): Doc fix (Bug#12325).
6457
6458 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
6459
6460 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
6461 (Fline_end_position): Doc fix.
6462
6463 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
6464
bb4d86b4
CY
64652012-09-22 Chong Yidong <cyd@gnu.org>
6466
6467 * dispextern.h (struct image_type): Add new slot, storing a type
6468 initialization function.
6469
6470 * image.c (define_image_type): Call the image initializer function
6471 if it is defined. Arguments and return value changed.
6472 (valid_image_p, make_image): Callers changed.
6473 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
3a880af4
SM
6474 (gif_type, imagemagick_type, svg_type, gs_type):
6475 Add initialization functions.
bb4d86b4
CY
6476 (Finit_image_library): Call lookup_image_type.
6477 (CHECK_LIB_AVAILABLE): Macro deleted.
6478 (lookup_image_type): Call define_image_type here, rather than via
6479 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
6480 (syms_of_image): Move define_image_type calls for xbm_type and
6481 pbm_type to lookup_image_type.
6482
df9685f3
EZ
64832012-09-22 Eli Zaretskii <eliz@gnu.org>
6484
6485 * keyboard.c (timer_check_2): Move calculation of 'timers' and
6486 'idle_timers' from here ...
6487 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
6488 lists, to avoid infloops when the timer does something stupid,
6489 like reinvoke itself with the same or smaller time-out.
6490 (Bug#12447)
6491
8e17c9ba
MR
64922012-09-22 Martin Rudalics <rudalics@gmx.at>
6493
6494 * window.c (Fsplit_window_internal): Handle only Qt value of
6495 Vwindow_combination_limit separately.
6496 (Qtemp_buffer_resize): New symbol.
3a880af4
SM
6497 (Vwindow_combination_limit): New default value.
6498 Rewrite doc-string.
8e17c9ba 6499
589bd69b
EZ
65002012-09-22 Eli Zaretskii <eliz@gnu.org>
6501
6502 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
6503 the new overlay string. (Bug#10159)
6504
01108e3f
PE
65052012-09-22 Paul Eggert <eggert@cs.ucla.edu>
6506
6507 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
6508 or that fprintf is async-signal-safe. POSIX doesn't require
6509 either assumption.
6510
82f8cd94
CY
65112012-09-22 Chong Yidong <cyd@gnu.org>
6512
6513 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
6514 (Bug#8207).
6515
3cccbd87
KH
65162012-09-22 Kenichi Handa <handa@gnu.org>
6517
6518 * composite.c (composition_reseat_it): Handle the case that a
6519 grapheme cluster is not covered by a single font (Bug#12352).
6520
09c01941
CY
65212012-09-21 Chong Yidong <cyd@gnu.org>
6522
6523 * image.c (define_image_type): Avoid adding duplicate types to
6524 image_types (Bug#12463). Suggested by Jörg Walter.
6525
acfa068f 65262012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
e25c1a30
YM
6527
6528 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
6529 (print_load_command_name): Add case LC_DATA_IN_CODE.
6530 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
6531
acfa068f 65322012-09-21 Glenn Morris <rgm@gnu.org>
1e9bbf47
GM
6533
6534 * eval.c (Frun_hook_with_args_until_success)
6535 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
6536
acfa068f 65372012-09-21 Andreas Schwab <schwab@linux-m68k.org>
c6ba4138
AS
6538
6539 * fileio.c (Ffile_selinux_context): Only call freecon when
6540 lgetfilecon succeeded.
6541 (Fset_file_selinux_context): Likewise. (Bug#12444)
6542
acfa068f 65432012-09-21 Eli Zaretskii <eliz@gnu.org>
aa36e4d2
EZ
6544
6545 * xdisp.c (try_window_reusing_current_matrix): Under bidi
6546 reordering, locate the cursor by calling set_cursor_from_row; if
6547 that fails, clear the desired glyph matrix before returning a
6548 failure indication to the caller. Fixes leaving garbled display
6549 when fast scrolling with a down-key. (Bug#12403)
f2016bea
EZ
6550 (compute_stop_pos_backwards): Fix a typo that caused crashes while
6551 scrolling through multibyte text.
aa36e4d2 6552
e99f70c8
SM
65532012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
6554
6555 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
6556 calling mark_vectorlike since that's the one that marks the window.
6557 (mark_discard_killed_buffers): Mark the final cdr.
6558 * window.h (struct window): Move prev/next_buffers to the
6559 non-standard fields.
6560 * window.c (make_window): Initialize prev/next_buffers manually.
6561
f75beb47
PE
65622012-09-20 Paul Eggert <eggert@cs.ucla.edu>
6563
6564 Omit unused arg EXPECTED from socket hooks.
6565 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
6566 * nsterm.m (ns_term_init):
6567 * termhooks.h (struct terminal.read_socket_hook):
6568 * w32inevt.c (w32_console_read_socket):
6569 * w32term.c (w32_read_socket):
6570 * xterm.c (XTread_socket):
6571 Omit unused arg EXPECTED. All callers changed.
6572 (store_user_signal_events): Return void, not int, since callers no
6573 longer care about the return value. All uses changed.
6574
b019b76a
JB
65752012-09-20 Juanma Barranquero <lekktu@gmail.com>
6576
6577 * w32gui.h (XParseGeometry): Do not declare.
6578
05642592
PE
65792012-09-19 Paul Eggert <eggert@cs.ucla.edu>
6580
e4bce92a 6581 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
1f9f395d 6582 Ignore 'expected'. See Eli Zaretskii in
e4bce92a
PE
6583 <http://bugs.gnu.org/12471#8> (last line).
6584
05642592
PE
6585 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
6586 (XParseGeometry): Now static. Substitute extremal values for
6587 values that are out of range.
6588
e543ae91
JD
65892012-09-19 Jan Djärv <jan.h.d@swipnet.se>
6590
6591 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
6592
6593 * nsfns.m (XParseGeometry): Remove.
6594 (Fx_create_frame): Call x_set_offset to correctly interpret
6595 top_pos in geometry.
6596
3a880af4 6597 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
e543ae91
JD
6598 (Fx_parse_geometry): If there is a space in string, call
6599 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
6600
45ba16c7
EZ
66012012-09-17 Eli Zaretskii <eliz@gnu.org>
6602
c8b9f1bc
EZ
6603 * search.c (scan_buffer): Use character positions in calls to
6604 region_cache_forward and region_cache_backward, not byte
6605 positions. (Bug#12196)
6606
b4c932a2
EZ
6607 * w32term.c (w32_read_socket): Set pending_signals to 1, like
6608 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
6609
45ba16c7
EZ
6610 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
6611 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
6612 emacs_blocked_malloc, now deleted.
6613
eeceac93
PE
66142012-09-17 Paul Eggert <eggert@cs.ucla.edu>
6615
6616 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
6617 The workaround was for improving performance on Solaris 2.4, but
6618 is getting in the way now. Emacs will still work if someone is
6619 still running Solaris 2.4 in a museum somewhere; Sun dropped
6620 support for Solaris 2.4 in 2003.
6621 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
6622 * process.c (create_process) [HAVE_WORKING_VFORK]:
6623 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
6624 since Emacs no longer uses vfork on that platform.
6625
78f83752
GM
66262012-09-17 Glenn Morris <rgm@gnu.org>
6627
6628 * emacs.c: Use COPYRIGHT.
6629
634b8cac
PE
66302012-09-16 Paul Eggert <eggert@cs.ucla.edu>
6631
0caaedb1
PE
6632 Remove configure's --without-sync-input option (Bug#12450).
6633 When auditing signal-handling in preparation for cleaning it up,
6634 I found that SYNC_INPUT has race conditions and would be a real
6635 pain to fix. Since it's an undocumented and deprecated
6636 configure-time option, now seems like a good time to remove it.
6637 Also see <http://bugs.gnu.org/11080#16>.
6638 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
6639 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
6640 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
6641 (malloc_hysteresis):
6642 (check_depth) [XMALLOC_OVERRUN_CHECK]:
6643 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
6644 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
6645 (dont_register_blocks, bytes_used_when_reconsidered)
6646 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
6647 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
6648 [!SYSTEM_MALLOC && !SYNC_INPUT]:
1f9f395d 6649 Remove. All uses removed.
0caaedb1
PE
6650 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
6651 implementation, one that depends on whether the new macro
6652 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
6653 is defined.
6654 * atimer.c (run_timers, handle_alarm_signal):
6655 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
6656 (handle_async_input, process_pending_signals)
6657 (handle_input_available_signal, init_keyboard):
6658 * nsterm.m (ns_read_socket):
6659 * process.c (wait_reading_process_output):
6660 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
6661 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
6662 (emacs_write):
6663 * xterm.c (XTread_socket):
6664 Assume SYNC_INPUT.
6665 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
6666 * eval.c (handling_signal): Remove. All uses removed.
6667 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
6668 All uses replaced with the SYNC_INPUT version.
6669 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
6670 Remove decls.
6671 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
6672 Now static.
6673
634b8cac
PE
6674 * font.c (Ffont_shape_gstring): Remove unused local.
6675
83da1b55
GM
66762012-09-16 Glenn Morris <rgm@gnu.org>
6677
518650a5
GM
6678 * Makefile.in (clean): No longer run nextstep's clean.
6679
83da1b55
GM
6680 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
6681 (ns_frag): Remove.
6682 (ns-app): Move here from ns.mk, and simplify.
6683 (clean): Simplify nextstep entry.
6684 * ns.mk: Remove file.
6685
85a43e2e
KH
66862012-09-17 Kenichi Handa <handa@gnu.org>
6687
6688 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
6689 not covert the last few charactes.
6690
ba13e616 66912012-09-16 Kenichi Handa <handa@gnu.org>
ea964864
KH
6692
6693 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
6694 here, but just check the validity of glyphs in the glyph-string.
6695
a8c729af
MR
66962012-09-16 Martin Rudalics <rudalics@gmx.at>
6697
3a880af4
SM
6698 * window.c (Fwindow_parameter, Fset_window_parameter):
6699 Accept any window as argument (Bug#12452).
a8c729af 6700
c077c059
JD
67012012-09-16 Jan Djärv <jan.h.d@swipnet.se>
6702
6703 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
6704 to ns_term_init to avoid memory leak.
6705
6706 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
6707 explicit retain/release.
6708 (ns_term_init): Only allow one display. Initialize outerpool and
6709 ns_*_types.
6710
39a57ad0
PE
67112012-09-15 Paul Eggert <eggert@cs.ucla.edu>
6712
6713 Port _setjmp fix to POSIXish hosts as well as Microsoft.
6714 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
6715 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
6716 the Microsoft problem in a different way, by altering ../nt/config.nt.
6717
7105c8cb
EZ
67182012-09-15 Eli Zaretskii <eliz@gnu.org>
6719
6720 * w32xfns.c:
6721 * w32uniscribe.c:
6722 * w32term.c:
6723 * w32select.c:
6724 * w32reg.c:
6725 * w32proc.c:
6726 * w32menu.c:
6727 * w32inevt.c:
6728 * w32heap.c:
6729 * w32font.c:
6730 * w32fns.c:
6731 * w32console.c:
6732 * w32.c:
6733 * w16select.c: Remove inclusion of setjmp.h, as it is now included
6734 by lisp.h. This completes removal of setjmp.h inclusion
6735 erroneously announced in the previous commit. (Bug#12446)
6736
6737 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
6738 more accurate.
6739
6740 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
6741 not defined as a macro. The latter happens on MS-Windows.
6742 (Bug#12446)
6743
0328b6de
PE
67442012-09-15 Paul Eggert <eggert@cs.ucla.edu>
6745
6746 Port better to POSIX hosts lacking _setjmp (Bug#12446).
6747 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
7105c8cb 6748 Some instances of '#include <setjmp.h>' removed, if the
0328b6de
PE
6749 only reason for the instance was because "lisp.h" was included.
6750 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
6751 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
6752 and _longjmp with the new symbols. Emacs already uses _setjmp if
6753 available, so this change affects only POSIXish hosts that have
6754 sigsetjmp but not _setjmp, such as some versions of Solaris and
6755 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
6756 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
6757 (png_load_body) [HAVE_PNG]:
6758 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
6759 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
6760 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
6761 since PNG requires jmp_buf. This is the only exception to the
6762 general rule that we now use sys_setjmp and sys_longjmp.
6763 This exception is OK since this code does not change the signal
6764 mask or longjmp out of a signal handler.
6765
2af03429
PE
67662012-09-14 Paul Eggert <eggert@cs.ucla.edu>
6767
6768 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
6769 Include "syssignal.h", for 'main_thread'.
6770
2f294edf
DA
67712012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
6772
6773 Avoid out-of-range marker position (Bug#12426).
3a880af4
SM
6774 * insdel.c (replace_range, replace_range_2):
6775 Adjust markers before overlays, as suggested by comments.
2f294edf
DA
6776 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
6777 Remove redundant check before calling offset_intervals.
6778
6b533e9c
MR
67792012-09-14 Martin Rudalics <rudalics@gmx.at>
6780
6781 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
6782 current buffer (Bug#12387).
6783
2a7931e3
JB
67842012-09-14 Juanma Barranquero <lekktu@gmail.com>
6785
6786 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
6787
c18e885b
PE
67882012-09-13 Paul Eggert <eggert@cs.ucla.edu>
6789
6790 Use a more backwards-compatible timer format (Bug#12430).
6791 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
6792 vector element, not from the 4th, since PSECS is now at the end.
6793 (Fcurrent_idle_time): Doc fix.
6794
d59a1afb
DA
67952012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
6796
6797 Function to mark objects and remove killed buffers at once.
6798 * alloc.c (discard_killed_buffers): Rename to ...
6799 (mark_discard_killed buffers) ... new name. Add marking
6800 of remaining objects. Fix comment. Adjust users.
6801 (mark_object): Do not touch frame buffer lists here.
6802 * frame.c (delete_frame): Reset frame buffer lists here.
6803
5f0cb45a
PE
68042012-09-13 Paul Eggert <eggert@cs.ucla.edu>
6805
8ea47e3a
PE
6806 Better workaround for GNOME bug when --enable-gcc-warnings.
6807 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
6808 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
6809 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
6810
4a4bbad2
PE
6811 Simplify SIGIO usage (Bug#12408).
6812 The code that dealt with SIGIO was crufty and confusing, e.g., it
6813 played tricks like "#undef SIGIO" but these tricks were not used
6814 consistently. Simplify mostly by not #undeffing standard symbols,
6815 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
6816 or not as we please) rather than "defined SIGIO" (standard symbol
6817 that we probably shouldn't #undef).
6818 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
6819 Modules that need it can include it.
6820 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
6821 * dispextern.h (ignore_sigio): New decl.
6822 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
6823 unconditionally, since it's now a no-op if !USABLE_SIGIO.
6824 * emacs.c (shut_down_emacs):
6825 * keyboard.c (kbd_buffer_store_event_hold):
6826 Use ignore_sigio rather than invoking 'signal' directly.
6827 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
6828 for FIONREAD.
6829 (FIONREAD, SIGIO): Do not #undef.
6830 (tty_read_avail_input): Use #error rather than a syntax error.
6831 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
6832 for I_PIPE, used by SETUP_SLAVE_PTY.
6833 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
6834 * sysdep.c (croak): Remove; no longer needed. This bit of
6835 temporary code, with Fred N. Fish's comment that it's temporary,
6836 has been in Emacs since at least 1992!
6837 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
6838 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
6839 * syssignal.h (croak): Remove decl.
6840 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
6841 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
6842 now that we're termios-only.
6843 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
6844 * term.c (dissociate_if_controlling_tty): Use #error rather than
6845 a run-time error.
6846
5f0cb45a
PE
6847 Work around GCC and GNOME bugs when --enable-gcc-warnings.
6848 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
6849 to work around GNOME bug 683906.
6850 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
6851 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
6852 This works around GCC bug 54561.
6853
40bce90b
PE
68542012-09-12 Paul Eggert <eggert@cs.ucla.edu>
6855
6856 More fixes for 'volatile' and setjmp/longjmp.
6857 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
6858 * image.c (struct png_load_context) [HAVE_PNG]: New type.
6859 (png_load_body) [HAVE_PNG]:
6860 (jpeg_load_body) [HAVE_JPEG]:
6861 New function, with most of the old parent function's body.
6862 (png_load) [HAVE_PNG]:
6863 (jpeg_load) [HAVE_JPEG]:
6864 Invoke the new function, to avoid longjmp munging our locals.
6865 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
6866 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
6867 longjmp is passed 2, as the C standard doesn't guarantee this.
6868 Instead, store the failure code into mgr->failure_code.
6869
bfeae2cf
SM
68702012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6871
6872 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
6873 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
6874 (syms_of_keyboard): Remove support for unread-command-char.
6875
8099e36b
EZ
68762012-09-12 Eli Zaretskii <eliz@gnu.org>
6877
6878 * w32proc.c (sys_kill): If PID is our process ID and the signal is
6879 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
6880 violation. (Bug#12426)
6881
92547ff9
PE
68822012-09-12 Paul Eggert <eggert@cs.ucla.edu>
6883
6884 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
6885
45b82ad0
SM
68862012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6887
6888 * eval.c: Add `inhibit-debugger'.
6889 (Qinhibit_debugger): New symbol.
6890 (call_debugger): Bind it instead of Qdebug_on_error.
6891 (maybe_call_debugger): Test Vinhibit_debugger.
6892 (syms_of_eval): Define inhibit-debugger.
6893 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
6894 (syms_of_xdisp): Remove inhibit-debug-on-message.
6895
5779a1dc
PE
68962012-09-11 Paul Eggert <eggert@cs.ucla.edu>
6897
50f2e553
PE
6898 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
6899 If a nonvolatile local variable is written before a _longjmp to
6900 the frame containing the variable, and is read after the _longjmp,
6901 the value read is indeterminate. Some local variables of type
6902 'struct handler' and 'struct catchtag' are used in this way, so
6903 mark each of their slots as volatile if the slot can be set before
6904 _longjmp and read afterwards.
6905 * lisp.h (struct handler): var and chosen_clause are now volatile.
6906 (struct catchtag): val, next, and pdlcount are now volatile.
6907
ae1d87e2
PE
6908 * bidi.c (bidi_push_it, bidi_pop_it):
6909 * fns.c (copy_hash_table):
6910 * image.c (define_image_type):
6911 * keyboard.c (kbd_buffer_store_event_hold):
6912 * process.c (Fprocess_send_eof):
6913 * xfaces.c (x_create_gc) [HAVE_NS]:
6914 * xgselect.c (xg_select):
6915 Prefer assignment to memcpy when either will do.
6916
5779a1dc
PE
6917 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
6918 Use pointer-to-a-pointer to simplify and avoid a NILP check each
6919 time an item is removed. No need to mark this function 'inline';
6920 the compiler knows better than we do.
6921
c4c9756b
JD
69222012-09-11 Jan Djärv <jan.h.d@swipnet.se>
6923
6924 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
6925 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
6926 to change_frame_size (Bug#12388).
6927 (windowDidResize:): Pass YES to updateFrameSize.
6928
6929 * nsterm.h: Add delay parameter to updateFrameSize.
6930
d73e321c
DA
69312012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6932
6933 Discard killed buffers from deleted window and frame objects.
6934 This reduces an amount of references to killed buffers and
6935 helps GC to reclaim them faster.
6936 * alloc.c (discard_killed_buffers): New function.
6937 (mark_object): Use it for deleted windows and frames.
6938 (mark_object): If symbol's value is set up for a killed buffer
1f9f395d 6939 or deleted frame, restore its global binding.
d73e321c
DA
6940 * data.c (swap_in_global_binding): Add GC notice.
6941 (swap_in_symval_forwarding): Use convenient set_blv_where.
6942 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
6943 * window.h: ... to here.
6944
e578f381
DA
69452012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6946
6947 Convenient macro to check whether the buffer is live.
6948 * buffer.h (BUFFER_LIVE_P): New macro.
6949 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
6950 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
6951
3057e615
YM
69522012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6953
6954 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
6955 composition cases (Bug#12364).
6956
6957 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
6958 overhang of succeeding glyphs overlapping box cursor.
6959
6960 * w32term.c (x_draw_glyph_string): Likewise.
6961
6fda35f2
PE
69622012-09-11 Paul Eggert <eggert@cs.ucla.edu>
6963
c990426a
PE
6964 Simplify, document, and port floating-point (Bug#12381).
6965 The porting part of this patch fixes bugs on non-IEEE platforms
6966 with frexp, ldexp, logb.
6967 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
6968 Now static.
6969 * floatfns.c: Simplify discussion of functions that Emacs doesn't
6970 support, by removing commented-out code and briefly listing the
6971 C89 functions excluded. The commented-out stuff was confusing
6972 maintenance, e.g., we thought we needed cbrt but it was commented out.
6973 (logb): Remove decl; no longer needed.
6974 (isfinite): New macro, if not already supplied.
6975 (isnan): Don't replace any existing macro.
6976 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
6977 are present on all C89 platforms.
6978 (Ffrexp): Do not special-case zero, as frexp does the right thing
6979 for that case.
6980 (Flogb): Do not use logb, as it doesn't have the desired meaning
6981 on hosts that use non-base-2 floating point. Instead, stick with
6982 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
6983 frexp, to avoid getting an unspecified result.
6984
6fda35f2
PE
6985 * xdisp.c (Qinhibit_debug_on_message): Now static.
6986
16130a58
JD
69872012-09-10 Jan Djärv <jan.h.d@swipnet.se>
6988
6989 * nsterm.m (ns_update_begin): Set clip path to whole view by using
6990 NSBezierPath (Bug#12131).
6991
d105a573
CY
69922012-09-10 Chong Yidong <cyd@gnu.org>
6993
6994 * fns.c (Fdelq, Fdelete): Doc fix.
6995
ff55dfe8
PE
69962012-09-10 Paul Eggert <eggert@cs.ucla.edu>
6997
6998 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
6999 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
7000
e7032e7c
SM
70012012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
7002
7003 * lisp.h (make_lisp_ptr): New macro to replace XSET.
7004 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
7005 Use it.
7006
e9957956
EZ
70072012-09-09 Eli Zaretskii <eliz@gnu.org>
7008
aba05ce9
EZ
7009 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
7010 left fringe if the window has a left margin. This avoids leaving
7011 traces of the cursor because its leftmost pixel is not drawn over.
7012
e9957956
EZ
7013 * dispnew.c (update_window_line): When the left margin area of a
7014 screen line is updated, set the redraw_fringe_bitmaps_p flag of
7015 that screen line. (Bug#12277)
7016
f6196b87
PE
70172012-09-09 Paul Eggert <eggert@cs.ucla.edu>
7018
7019 Assume C89 or later for math functions (Bug#12381).
7020 This simplifies the code, and makes it a bit smaller and faster,
7021 and (most important) makes it easier to clean up signal handling
7022 since we can stop worring about floating-point exceptions in
7023 library code. That was a problem before C89, but the problem
7024 went away many years ago on all practical Emacs targets.
7025 * data.c, image.c, lread.c, print.c:
7026 Don't include <math.h>; no longer needed.
7027 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
7028 might be autoconfigured, as that never happens.
7029 * data.c (fmod):
7030 * doprnt.c (DBL_MAX_10_EXP):
7031 * print.c (DBL_DIG):
7032 Remove. C89 or later always defines these.
7033 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
7034 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
7035 (arith_error, domain_error, domain_error2):
7036 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
7037 no longer needed -- we simply return what C returns. All uses removed.
7038 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
7039 the wrapped code.
7040 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
7041 Remove. All uses expanded, as these macros are no longer used
7042 more than once and are now more trouble than they're worth.
7043 (Ftan): Use tan, not sin / cos.
7044 (Flogb): Assume C89 frexp.
7045 (fmod_float): Assume C89 fmod.
7046 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
7047 (init_floatfns): Remove. All uses removed.
7048
9d7f1863
JD
70492012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7050
7051 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
7052 compositeToPoint for OSX < 10.6 (Bug#12390).
7053
eabf0404
PE
70542012-09-08 Paul Eggert <eggert@cs.ucla.edu>
7055
7056 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
7057 This produces more-accurate results.
7058
0b3b1d23
JD
70592012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7060
7061 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
7062 changes (Bug#12088).
7063
6dcef6ec
CY
70642012-09-08 Chong Yidong <cyd@gnu.org>
7065
7066 * syntax.c (Fstring_to_syntax): Doc fix.
7067
aa7d57c5
JD
70682012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7069
7070 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
7071 in the internal border.
7072 (x_set_window_size): Remove static variables and their usage.
7073 (ns_redraw_scroll_bars): Fix NSTRACE arg.
3a880af4
SM
7074 (ns_after_update_window_line, ns_draw_fringe_bitmap):
7075 Remove fringe/internal border adjustment (Bug#11052).
aa7d57c5
JD
7076 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
7077 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
7078 (ns_fix_rect_ibw): Remove.
7079 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
7080 (ns_dumpglyphs_box_or_relief): Ditto.
7081 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
7082 adjustment.
7083 (ns_dumpglyphs_image): Ditto.
fc0c31f8 7084 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
aa7d57c5
JD
7085 border adjustment.
7086 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
7087 their usage. Add fringe_extended_p and its use as in other terms.
7088 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
7089 scroll bar was removed.
7090 (updateFrameSize): New function.
7091 (windowDidResize): Move code to updateFrameSize and call it.
7092
7093 * nsterm.h (EmacsView): Add updateFrameSize.
7094
1a5432bc
CY
70952012-09-07 Chong Yidong <cyd@gnu.org>
7096
b4f5313e
CY
7097 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
7098
1a5432bc
CY
7099 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
7100
1a4f1e9b
PE
71012012-09-07 Paul Eggert <eggert@cs.ucla.edu>
7102
7103 More signal-handler cleanup (Bug#12327).
eddb36a7
PE
7104 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
7105 Problem introduced when merging patches. Noted by Eli Zaretskii in
7106 <http://bugs.gnu.org/12327#67>.
1a4f1e9b
PE
7107 * floatfns.c: Comment fix.
7108 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
7109 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
7110 and anyway the declaration is harmless even if SIGDANGER is not defined.
7111 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
7112 defined BROKEN_FIONREAD). systty.h formerly did this, but other
7113 source files not surprisingly expected syssignal.h to define, or
7114 not define, SIGIO, and it's cleaner to do it that way, for consistency.
7115 Include <sys/ioctl.h>, for FIONREAD.
7116 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
7117 This eliminates a problem whereby other files mysteriously had
7118 to include "syssignal.h" before including "systty.h" if they
7119 wanted to use "#ifdef SIGIO".
7120
bc8000ff
EZ
71212012-09-07 Eli Zaretskii <eliz@gnu.org>
7122
3e6d6928
EZ
7123 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
7124
7125 * w32.c (sigemptyset): Empty the set.
7126 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
7127
bc8000ff
EZ
7128 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
7129
b4fa72f2
DA
71302012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
7131
7132 * alloc.c (mark_buffer): Revert unsafe marking optimization.
7133 (mark_object): Likewise for frame objects.
7134
30730c93
PE
71352012-09-07 Paul Eggert <eggert@cs.ucla.edu>
7136
7137 * syssignal.h (handle_on_main_thread): Always declare,
7138 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
7139 This ports to platforms without HAVE_PTHREAD.
7140
2fe28299
PE
71412012-09-06 Paul Eggert <eggert@cs.ucla.edu>
7142
7143 Signal-handler cleanup (Bug#12327).
7144 Emacs's signal handlers were written in the old 4.2BSD style with
7145 sigblock and sigmask and so forth, and this led to some
7146 inefficiencies and confusion. Rewrite these to use
7147 pthread_sigmask etc. without copying signal sets around. Also,
7148 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
7149 'signal', and instead use functions that do not attempt to take
7150 over the system name space. This patch causes Emacs's text
7151 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
7152 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
7153 Do not include <signal.h> or "syssignal.h", as these
7154 modules do not use signals.
7155 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
7156 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
7157 Do not include <signal.h>, as "syssignal.h" does that for us now.
7158 * atimer.c (sigmask_atimers): New function.
7159 (block_atimers, unblock_atimers): New functions,
7160 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
7161 All uses replaced.
7162 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
7163 no longer needed here.
7164 * emacs.c (main): Inspect existing signal handler with sigaction,
fc0c31f8 7165 so that there's no need to block and unblock SIGHUP.
2fe28299
PE
7166 * sysdep.c (struct save_signal): New member 'action', replacing
7167 old member 'handler'.
7168 (save_signal_handlers, restore_signal_handlers):
7169 Use sigaction instead of 'signal' to save and restore.
7170 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
7171 New function. All users of 'signal' modified to use set_sighandler
7172 if they're writeonly, and to use sys_signal if they're read+write.
7173 (emacs_sigaction_init, forwarded_signal): New functions.
7174 (sys_signal): Remove. All uses replaced by calls to sigaction
7175 and emacs_sigaction_init, or by direct calls to 'signal'.
7176 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
7177 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
7178 all uses replaced by pthread_sigmask etc. calls.
7179 * syssignal.h: Include <signal.h>.
7180 (emacs_sigaction_init, forwarded_signal): New decls.
7181 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
7182 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
7183 (sigmask, sys_sigmask): Remove; no longer needed.
7184 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
7185 (sigblock, sigunblock, sigfree):
7186 (sigsetmask) [!defined sigsetmask]:
7187 Remove. All uses replaced by pthread_sigmask.
7188 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
7189 no longer need to be replaced, and its typical old uses
7190 are now done via emacs_sigaction_init and sigaction.
7191 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
7192 (sys_sigdel): Remove; unused.
7193 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
7194
0216c128
EZ
71952012-09-06 Eli Zaretskii <eliz@gnu.org>
7196
7197 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
7198 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
7199
c752cfa9
DA
72002012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
7201
7202 Explicitly mark buffer_defaults and buffer_local_symbols.
7203 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
7204 mark_local_symbols here.
7205 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
7206 since special buffers aren't marked here any more.
7207 (allocate_buffer): Chain new buffer with all_buffers here...
7208 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
7209 not here.
7210 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
7211 (syms_of_buffer): Remove staticpro of the above.
7212 (init_buffer_once): Set names for buffer_defaults and
7213 buffer_local_symbols.
7214
a864ef14
PE
72152012-09-06 Paul Eggert <eggert@cs.ucla.edu>
7216
7217 Use bool for booleans in font-related modules.
7218 * font.c (font_intern_prop, font_style_to_value)
7219 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
7220 (generate_otf_features, font_check_otf_features, font_check_otf)
7221 (font_match_p, font_list_entities, font_at):
7222 * fontset.c (fontset_id_valid_p, reorder_font_vector
7223 (fontset_find_font, Fset_fontset_font)
7224 (face_suitable_for_char_p) [0]:
7225 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
7226 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
7227 (m17n_flt_initialized, ftfont_shape_by_flt):
7228 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
7229 * nsfont.m (nsfont_draw):
7230 * w32font.c (w32font_draw):
7231 * w32term.c (x_draw_glyphless_glyph_string_foreground):
7232 Use bool for booleans.
7233 * font.h: Adjust to above API changes.
7234 (struct font, struct font_driver, struct font_driver_list):
7235 Use bool for booleans.
7236 (struct font): Remove useless member encoding_type.
7237 All users removed.
7238 * fontset.c, xftfont.c: Omit unnecessary static decls.
7239
0699fc18
DA
72402012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
7241
7242 * alloc.c (mark_object): Revert window marking code
7243 since it's unsafe for the Fset_window_configuration.
7244
20ef56db
PE
72452012-09-05 Paul Eggert <eggert@cs.ucla.edu>
7246
2fe28299 7247 Fix race conditions with signal handlers and errno (Bug#12327).
20ef56db
PE
7248 Be more systematic about preserving errno whenever a signal
7249 handler returns, even if it's not in the main thread. Do this by
7250 renaming signal handlers to distinguish between signal delivery
7251 and signal handling. All uses changed.
7252 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
7253 * data.c (deliver_arith_signal): Rename from arith_error.
7254 * dispnew.c (deliver_window_change_signal): Rename from
7255 window_change_signal.
7256 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
7257 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
7258 * keyboard.c (deliver_input_available_signal): Rename from
7259 input_available_signal.
7260 (deliver_user_signal): Rename from handle_user_signal.
7261 (deliver_interrupt_signal): Rename from interrupt_signal.
7262 * process.c (deliver_pipe_signal): Rename from send_process_trap.
7263 (deliver_child_signal): Rename from sigchld_handler.
7264 * atimer.c (handle_alarm_signal):
7265 * data.c (handle_arith_signal):
7266 * dispnew.c (handle_window_change_signal):
7267 * emacs.c (handle_fatal_signal, handle_danger_signal):
7268 * keyboard.c (handle_input_available_signal):
7269 * keyboard.c (handle_user_signal, handle_interrupt_signal):
7270 * process.c (handle_pipe_signal, handle_child_signal):
7271 New functions, with the actual signal-handling code taken from the
7272 original respective signal handlers, sans the sporadic attempts to
7273 preserve errno, since that's now done by handle_on_main_thread.
7274 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
7275 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
7276 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7277 Move to sysdep.c.
7278 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7279 Move initialization of main_thread to sysdep.c's init_signals.
7280 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
7281 our usage, and simplifies the mainline code.
7282 (record_child_status_change): New static function, as a helper
7283 for handle_child_signal, and with most of the old child handler's
7284 contents.
7285 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
7286 (handle_child_signal): Use the above.
7287 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7288 Moved here from emacs.c.
7289 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
7290 code moved here from emacs.c's main function.
7291 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
3a880af4
SM
7292 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
7293 This lets callers save and restore errno properly.
20ef56db 7294
e3ccf108
DA
72952012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7296
7297 Remove redundant or unused things here and there.
7298 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
7299 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
7300 * editfns.c (Fcompare_buffer_substrings): Likewise.
7301 * frame.h (struct terminal, struct font_driver_list):
7302 Remove redundant declarations.
7303 * window.h (Qleft, Qright): Likewise.
7304
697e1e39
DA
73052012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7306
7307 Do not mark objects from deleted buffers, windows and frames.
7308 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
7309 (mark_object): Likewise for windows and frames.
7310
c1ca42ca
DA
73112012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7312
7313 * alloc.c (valid_lisp_object_p): Treat killed buffers,
7314 buffer_defaults and buffer_local_symbols as valid objects.
7315 Return special value to denote them.
7316
014d93be
PE
73172012-09-05 Paul Eggert <eggert@cs.ucla.edu>
7318
f75d7a91
PE
7319 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
7320 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
7321 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
7322 (file_name_absolute_p, Fsubstitute_in_file_name):
7323 (check_executable, check_writable, Ffile_accessible_directory_p)
7324 (Fset_file_selinux_context, Fdefault_file_modes)
7325 (Finsert_file_contents, choose_write_coding_system)
7326 (Fwrite_region, build_annotations, a_write, e_write)
7327 (Fdo_auto_save):
7328 * filelock.c (boot_time_initialized, get_boot_time)
7329 (get_boot_time_1, lock_file_1, within_one_second):
7330 * floatfns.c (in_float):
7331 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
7332 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
7333 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
7334 * lisp.h (struct Lisp_Hash_Table.cmpfn):
7335 * window.c (compare_window_configurations):
7336 Use bool for booleans.
7337 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
7338 (Fdefault_file_modes): Now mode_t, not int, for modes.
7339 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
7340 (internal_delete_file): Now returns void, not a (boolean) int,
7341 since nobody was looking at the return value.
7342 * lisp.h, window.h: Adjust to above API changes.
7343
014d93be
PE
7344 * xdisp.c (set_message): Simplify and reindent last change.
7345
776f29e1
JB
73462012-09-05 Juanma Barranquero <lekktu@gmail.com>
7347
7348 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
7349
7f7e0167
LI
73502012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
7351
7352 * eval.c (call_debugger): Make the function non-static so that we
7353 can call it from set_message.
7354
7355 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
7356 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
7357
cf29dd84
PE
73582012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7359
7360 Give more-useful info on a fatal error (Bug#12328).
7361 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
7362 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
7363 of doing the work ourselves.
7364 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
7365 do most of the work.
7366 (fatal_error_backtrace): New function, taken from the guts
7367 of the old fatal_error_signal, but with a new option to output
7368 a backtrace.
7369 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
7370 info about the signal than just its number.
7371 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
7372 * sysdep.c: Include <execinfo.h>
7373 (emacs_backtrace): New function, taken partly from the previous
7374 code of the 'die' function.
7375 (emacs_abort): Call fatal_error_backtrace rather than abort.
7376
972debf2
SM
73772012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
7378
7379 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
7380 eager (load-time) macro-expansion.
7381 * lisp.mk (lisp): Add macroexp.
7382
1088b922
PE
73832012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7384
7385 Simplify redefinition of 'abort' (Bug#12316).
7386 Do not try to redefine the 'abort' function. Instead, redo
7387 the code so that it calls 'emacs_abort' rather than 'abort'.
7388 This removes the need for the NO_ABORT configure-time macro
7389 and makes it easier to change the abort code to do a backtrace.
7390 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
7391 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
7392 Remove; sysdep.c's emacs_abort now takes its place.
7393 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
7394 'abort' changed to use 'emacs_abort'.
7395 * msdos.c (dos_abort) [defined abort]: Remove; not used.
7396 (abort) [!defined abort]: Rename to ...
7397 (emacs_abort): ... new name.
7398 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
7399 the place of the old 'abort' in emacs.c.
7400 * w32.c, w32fns.c (abort): Do not #undef.
7401 * w32.c (emacs_abort): Rename from w32_abort.
7402
30934d33
EZ
74032012-09-04 Eli Zaretskii <eliz@gnu.org>
7404
7405 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
7406 offsets[j].dv, since the y axis of the screen coordinates points
7407 down, while the y axis of the font definition coordinates points
7408 up. This fixes display of Arabic diacritics such as KASRA and
7409 KASRATAN. (Bug#11860)
7410
af26b72c
PE
74112012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7412
7413 Be more systematic about _setjmp vs setjmp.
7414 * alloc.c (test_setjmp, mark_stack):
7415 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
7416 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
7417 (png_load, my_error_exit, jpeg_load):
7418 * process.c (send_process_trap, send_process):
7419 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
7420 The underscored versions are up to 30x faster on some hosts.
7421 Formerly, the code used setjmp+longjmp sometimes and
7422 _setjmp+_longjmp at other times, with no particular reason to
7423 prefer setjmp+longjmp.
7424
26d4541d
PE
74252012-09-03 Paul Eggert <eggert@cs.ucla.edu>
7426
d42f4f0f 7427 Fix minor problem found by static checking.
26d4541d 7428 * buffer.c (Fdelete_all_overlays): Return nil.
26d4541d 7429
c5e28e39
MR
74302012-09-03 Martin Rudalics <rudalics@gmx.at>
7431
7432 * buffer.c (Fdelete_all_overlays): New function.
7433
3eab3ca9
CY
74342012-09-03 Chong Yidong <cyd@gnu.org>
7435
7436 * gtkutil.c: Add extern decl for Qxft.
7437
c04889f8
PE
74382012-09-02 Paul Eggert <eggert@cs.ucla.edu>
7439
1882aa38
PE
7440 * emacs.c, eval.c: Use bool for boolean.
7441 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
7442 (malloc_using_checking) [DOUG_LEA_MALLOC]:
7443 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
7444 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
7445 (main, decode_env_path, Fdaemon_initialized):
7446 * eval.c (call_debugger, Finteractive_p, interactive_p):
7447 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
7448 (maybe_call_debugger, Fbacktrace):
7449 * process.c (read_process_output, exec_sentinel):
7450 Use bool for booleans.
7451 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
7452 All callers changed.
7453 * eval.c (interactive_p): Omit always-true boolean argument
7454 EXCLUDE_SUBRS_P. All callers changed.
7455 * dispextern.h, lisp.h: Reflect above API changes.
7456 * firstfile.c (dummy): Use the address of 'main', whose signature
7457 won't change, instead of the address of 'initialize', whose
7458 signature just changed from int to bool.
7459 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
7460 * msdos.c (fatal_error_in_progress): ... from here.
7461 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
7462 of incrementing it.
7463 (redisplay_internal, unwind_redisplay): Simply clear
7464 REDISPLAYING_P when unwinding, instead of saving its previous,
7465 always-false value and then restoring it.
7466
a411ac43
PE
7467 Clean up some extern decls.
7468 Mostly, this hoists extern decls out of .c files and into .h files.
7469 That way, we're more likely to catch errors if the interfaces change.
7470 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
7471 declare xg_mark_data.
7472 * dispextern.h (x_frame_parm_handlers):
7473 * font.h (Qxft):
7474 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
7475 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
7476 (Qultra_bold, Qoblique, Qitalic):
7477 Move extern decl here from .c file.
7478 * alloc.c (xg_mark_data) [USE_GTK]:
7479 * doc.c (Qclosure):
7480 * eval.c (Qlexical_binding):
7481 * fns.c (time) [!HAVE_UNISTD_H]:
7482 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
7483 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
7484 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
7485 * lread.c (Qinternal_interpreter_environment):
7486 * minibuf.c (Qbuffer):
7487 * process.c (QCfamily, QCfilter):
7488 * widget.c (free_frame_faces):
7489 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
7490 * xfont.c (x_clear_errors):
7491 * xterm.c (x_frame_parm_handlers):
7492 Remove now-redundant extern decls.
7493 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
7494 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
7495 Now static.
7496 * xfaces.c: Remove unnecessary static decls.
7497 * xterm.c (updating_frame): Remove decl of nonexistent object.
7498
c04889f8
PE
7499 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
7500 when building globals.h, as the objects that are not built on
7501 this host are not needed to compile C files on this host.
7502
8b339673
JD
75032012-09-02 Jan Djärv <jan.h.d@swipnet.se>
7504
7505 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
7506
7507 * frame.h: Add missing prototype for x_wm_set_size_hint.
7508
a08d4ba7
PE
75092012-09-02 Paul Eggert <eggert@cs.ucla.edu>
7510
7511 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
7512 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
7513 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
7514 (Fsubstitute_command_keys):
7515 * editfns.c (region_limit, find_field, Fconstrain_to_field)
7516 (save_excursion_save, save_excursion_restore)
7517 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
7518 (format_time_string, general_insert_function)
7519 (make_buffer_string, make_buffer_string_both)
7520 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
7521 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
7522 (copy_text, insert_1, insert_1_both, insert_from_string)
7523 (insert_from_string_before_markers, insert_from_string_1)
7524 (insert_from_buffer, insert_from_buffer_1, replace_range)
7525 (replace_range_2, del_range_1, del_range_byte, del_range_both)
7526 (del_range_2, modify_region):
7527 * intervals.c (intervals_equal, balance_possible_root_interval)
7528 (adjust_intervals_for_insertion, merge_properties_sticky)
7529 (graft_intervals_into_buffer, lookup_char_property)
7530 (adjust_for_invis_intang, set_point_both)
7531 (get_property_and_range, compare_string_intervals)
7532 (set_intervals_multibyte_1, set_intervals_multibyte):
7533 * keyboard.c (decode_timer):
7534 Use bool for boolean.
7535 * intervals.h, lisp.h, systime.h: Reflect above API changes.
7536 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
7537
48c948de
CY
75382012-09-02 Chong Yidong <cyd@gnu.org>
7539
7540 * keymap.c (push_key_description): Print M-TAB as C-M-i
7541 (Bug#11758).
7542
6c49a40b
JB
75432012-09-02 Juanma Barranquero <lekktu@gmail.com>
7544
7545 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
7546 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
7547 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
7548 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
7549 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
7550 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
7551 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
7552
4dfbd238
EZ
75532012-09-01 Eli Zaretskii <eliz@gnu.org>
7554
7e510e28
EZ
7555 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
7556 more than one grapheme cluster passed to the shaper: compute the
7557 offset adjustment values separately for each cluster. (Bug#11860)
7558
4dfbd238
EZ
7559 * image.c: Restore mistakenly removed inclusion of w32.h. Without
7560 it, GCC doesn't see prototypes of w32_delayed_load, and complains
7561 about implicit conversions from integer to pointer.
7562
86571ae0
DC
75632012-09-01 Daniel Colascione <dancol@dancol.org>
7564
7565 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
7566 system used too early.
7567
0e23ef9d
PE
75682012-09-01 Paul Eggert <eggert@cs.ucla.edu>
7569
7570 Better seed support for (random).
7571 * emacs.c (main): Call init_random.
7572 * fns.c (Frandom): Set the seed from a string argument, if given.
7573 Remove long-obsolete Gentzel cruft.
7574 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
7575 (init_random): New function.
7576
17a2cbbd
DC
75772012-09-01 Daniel Colascione <dancol@dancol.org>
7578
7579 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
7580 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
7581 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
7582 x_wm_set_size_hint, x_query_colors, x_real_positions,
7583 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
7584 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
7585 all of which have been moved to common code.
7586
7587 * xfaces.c: Include TERM_HEADER instead of listing all possible
7588 window-system headers.
7589
7590 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
7591 to match header.
7592
7593 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
7594 directly accessing frame internals.
7595
f18cbb28 7596 * w32font.h: Include font.h. Define syms_of_w32font and
17a2cbbd
DC
7597 globals_of_w32font.
7598
7599 * process.c: Include TERM_HEADER instead of listing all possible
7600 window-system headers.
7601
3a880af4
SM
7602 * nsterm.h: Remove declarations now in frame.h.
7603 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
17a2cbbd
DC
7604
7605 * menu.c: Include TERM_HEADER instead of listing all possible
7606 window-system headers.
7607
7608 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
7609 window system.
7610
7611 * keyboard.c: Include TERM_HEADER instead of listing all possible
7612 window-system headers.
7613
7614 * image.c: Include TERM_HEADER instead of listing all possible
7615 window-system headers. Declare Vlibrary_cache when compiling for
7616 Windows.
7617
7618 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
7619 window system declarations.
7620
7621 * frame.h: Move common functions here: set_frame_menubar,
7622 x_set_window_size, x_sync, x_get_focus_frame,
7623 x_set_mouse_position, x_set_mouse_pixel_position,
7624 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
7625 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
7626 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
7627 x_activate_menubar, x_real_positions, x_bitmap_icon,
7628 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
7629 and x_query_colors.
7630
7631 * frame.c: Include TERM_HEADER instead of listing all possible
7632 window-system headers.
7633
7634 * font.c: Include TERM_HEADER instead of listing all possible
7635 window-system headers.
7636
7637 * emacs.c: Include TERM_HEADER.
7638
f18cbb28
EZ
7639 * dispnew.c: Include TERM_HEADER instead of listing all possible
7640 window-system headers.
17a2cbbd 7641
f18cbb28 7642 * ccl.h: Include character.h.
17a2cbbd
DC
7643
7644 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
7645 the current window system; include in list of objects to link into
7646 Emacs.
7647
c650a5de
DA
76482012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7649
7650 Remove mark_ttys function and fix tty_display_info initialization.
7651 * lisp.h (mark_ttys): Remove prototype.
7652 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
7653 to mark_ttys because all possible values of 'top_frame' slot are
7654 the frames which are reachable from Vframe_list.
7655 * term.c (mark_ttys): Remove.
7656 (init_tty): Safely initialize 'top_frame' slot with Qnil.
7657
4e0f6479
DA
76582012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7659
7660 Change struct frame bitfields from unsigned char to unsigned.
7661 * frame.h (struct frame): Change type of 'display_preempted',
7662 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
7663 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
7664 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
7665 bitfields from unsigned char to unsigned.
7666
8b96a52c
DA
76672012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7668
7669 Remove unused member of struct x_output and struct w32_output.
7670 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
7671 * w32term.h (struct w32_output): Likewise.
7672
b4444c8a
JD
76732012-08-30 Jan Djärv <jan.h.d@swipnet.se>
7674
7675 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
7676 does not become zero (Bug#12234).
7677
b98521db
PE
76782012-08-30 Paul Eggert <eggert@cs.ucla.edu>
7679
7680 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
7681 for GCC 4.7.1 x86-64.
7682
31d02438
GM
76832012-08-30 Glenn Morris <rgm@gnu.org>
7684
7685 * lread.c (init_lread): For out-of-tree builds, only add the
7686 source directory's site-lisp dir to the load-path if it exists,
7687 consistent with in-tree builds. (Bug#12302)
7688
7f8941d8
JD
76892012-08-28 Jan Djärv <jan.h.d@swipnet.se>
7690
7691 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
fc0c31f8 7692 button_values to NULL. Call setStykeMask so dialogs get a close button.
7f8941d8
JD
7693 (windowShouldClose:): Set window_closed.
7694 (dealloc): New member, free button_values.
fc0c31f8
JB
7695 (process_dialog:): Make member function. Remove window argument,
7696 replace window with self. Count buttons and allocate and store values
7f8941d8
JD
7697 in button_values.
7698 (addButton:value:row:): value is int with the name tag. Call setTag
fc0c31f8 7699 with tag. Remove return self, declare return value as void.
7f8941d8
JD
7700 (addString:row:): Remove return self, declare return value as void.
7701 (addSplit): Remove return self, declare return value as void.
7702 (clicked:): Remove return self, declare return value as void.
fc0c31f8 7703 Set dialog_return to button_values[seltag]. Code formatting change.
7f8941d8
JD
7704 (initFromContents:isQuestion:): Adjust call to process_dialog.
7705 Code formatting change.
7706 (timeout_handler:): Set timer_fired to YES.
7707 (runDialogAt:): Set timer_fired to NO.
7708 Handle click on close button as quit.
7709
7710 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
7711 Add window_closed and button_values. Add void as return value for
7712 add(Button|String|Split). addButton takes int instead of Lisp_Object.
7713 Add process_dialog as new member.
7714
eada0861 77152012-08-28 Eli Zaretskii <eliz@gnu.org>
19c17fc1 7716
eada0861
GM
7717 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
7718 is not one of the heaps we manage. (Bug#12242)
7719
77202012-08-28 Glenn Morris <rgm@gnu.org>
7721
7722 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
7723
457294dd
MR
77242012-08-28 Martin Rudalics <rudalics@gmx.at>
7725
7726 * window.c (Fset_window_configuration): Remove handling of
37b9743e
MR
7727 auto-buffer-name window parameter. Install revision of reverted
7728 fix.
457294dd 7729
4f2daf31
DA
77302012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7731
7732 Do not allow to set major mode for a dead buffer.
7733 * buffer.c (Fset_buffer_major_mode): Signal an error
7734 if the buffer is dead.
7735 (Fother_buffer, other_buffer_safely): Remove redundant
7736 nested declaration.
7737
66322887
DA
77382012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7739
7740 Always use set_buffer_if_live to restore original buffer at unwind.
7741 * buffer.h (record_unwind_current_buffer): New function.
7742 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
7743 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
7744 * undo.c, window.c: Adjust users.
7745 * buffer.c (set_buffer_if_live): Fix comment.
7746
a3d794a1
DA
77472012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7748
7749 Fix usage of set_buffer_internal.
7750 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
7751 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
7752 * coding.c (decode_coding): Omit redundant test.
7753 * fileio.c (decide_coding_unwind): Likewise.
7754 * fns.c (secure_hash): Likewise.
7755 * insdel.c (modify_region): Likewise.
7756 * keyboard.c (command_loop_1): Likewise.
7757 * print.c (PRINTFINISH): Likewise.
7758 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
7759
59ea14cd
PE
77602012-08-27 Paul Eggert <eggert@cs.ucla.edu>
7761
7762 * dispnew.c: Use bool for boolean.
7763 (frame_garbaged, display_completed, delayed_size_change)
7764 (fonts_changed_p, add_window_display_history)
7765 (add_frame_display_history, verify_row_hash)
7766 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
7767 (row_equal_p, realloc_glyph_pool)
7768 (allocate_matrices_for_frame_redisplay)
7769 (showing_window_margins_p)
7770 (adjust_frame_glyphs_for_frame_redisplay)
7771 (build_frame_matrix_from_leaf_window, make_current)
7772 (mirrored_line_dance, mirror_line_dance, update_frame)
7773 (update_window_tree, update_single_window)
7774 (check_current_matrix_flags, update_window, update_text_area)
7775 (update_window_line, set_window_update_flags, scrolling_window)
7776 (update_frame_1, scrolling, buffer_posn_from_coords)
7777 (do_pending_window_change, change_frame_size)
7778 (change_frame_size_1, sit_for):
7779 Use bool for boolean.
7780 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
7781 and remove last int (actually boolean) argument, which was always 0.
7782 All callers changed.
7783 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
7784 * dispextern.h (struct composition_it): Use bool for boolean.
7785 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
7786 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
7787 * dired.c (file_name_completion):
7788 Use bool for boolean. (This was missed in an earlier change.)
7789
95072a94
MR
77902012-08-27 Martin Rudalics <rudalics@gmx.at>
7791
7792 * window.c (Fset_window_configuration): Revert first part of
7793 last change.
7794
0f19feff
JD
77952012-08-27 Jan Djärv <jan.h.d@swipnet.se>
7796
7797 * nsterm.h (NSPanel): New class variable dialog_return.
7798
3a880af4
SM
7799 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
7800 Initialize dialog_return.
0f19feff
JD
7801 (windowShouldClose:): Use stop instead of stopModalWithCode.
7802 (clicked:): Ditto, and also set dialog_return (Bug#12258).
7803 (timeout_handler:): Use stop instead of abortModal. Send a dummy
7804 event.
7805 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
7806 modal loop returns.
7807
f10fe38f
PE
78082012-08-27 Paul Eggert <eggert@cs.ucla.edu>
7809
de1339b0
PE
7810 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
7811 * composite.c (find_composition, composition_gstring_p)
7812 (composition_reseat_it, find_automatic_composition):
7813 * data.c (let_shadows_buffer_binding_p)
7814 (let_shadows_global_binding_p, set_internal, make_blv)
7815 (Fmake_variable_buffer_local, Fmake_local_variable)
7816 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
7817 (cons_to_signed, arith_driver):
7818 * dbusbind.c (xd_in_read_queued_messages):
7819 * dired.c (directory_files_internal, file_name_completion):
7820 Use bool for booleans.
7821 * dired.c (file_name_completion):
7822 * process.h (fd_callback):
7823 Omit int (actually boolean) argument. It wasn't being used.
7824 All uses changed.
7825 * composite.h, lisp.h: Reflect above API changes.
7826
f10fe38f
PE
7827 * cmds.c, coding.c: Use bool for booleans.
7828 * cmds.c (move_point, Fself_insert_command):
7829 * coding.h (struct composition status, struct coding_system):
7830 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
7831 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
7832 (emacs_mule_char, decode_coding_emacs_mule)
7833 (encode_coding_emacs_mule, detect_coding_iso_2022)
7834 (decode_coding_iso_2022, encode_invocation_designation)
7835 (encode_designation_at_bol, encode_coding_iso_2022)
7836 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
7837 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
7838 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
7839 (encode_coding_raw_text, detect_coding_charset)
7840 (decode_coding_charset, encode_coding_charset, detect_eol)
7841 (detect_coding, get_translation_table, produce_chars)
7842 (consume_chars, reused_workbuf_in_use)
7843 (make_conversion_work_buffer, code_conversion_save)
7844 (decode_coding_object, encode_coding_object)
7845 (detect_coding_system, char_encodable_p)
7846 (Funencodable_char_position, code_convert_region)
7847 (code_convert_string, code_convert_string_norecord)
7848 (Fset_coding_system_priority):
7849 * fileio.c (Finsert_file_contents):
7850 Use bool for booleans.
7851 * coding.h, lisp.h: Reflect above API changes.
7852 * coding.c: Remove unnecessary static function decls.
7853 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
7854 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
7855 not a boolean 'int', since callers never look at the return value.
7856 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
7857 * coding.h (decoding_buffer_size, encoding_buffer_size)
7858 (emacs_mule_string_char): Remove unused extern decls.
7859 (struct iso_2022_spec, struct coding_system):
7860 Use 'unsigned int : 1' for boolean fields, since there's more than one.
7861 (struct emacs_mule_spec): Remove unused field 'full_support'.
7862 All initializations removed.
7863 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
7864
5474c384
DA
78652012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7866
f10fe38f 7867 Fix spare memory change (Bug#12286).
5474c384
DA
7868 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
7869 (valid_lisp_object_p): Likewise.
7870
c4b6914d
MR
78712012-08-27 Martin Rudalics <rudalics@gmx.at>
7872
7873 * window.c (Fset_window_configuration): Record any window's old
7874 buffer if it's replaced (see Bug#8789). If the new current
7875 buffer doesn't appear in the selected window, go to its old
7876 point (Bug#12208).
7877
35aaa1ea
DA
78782012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7879
7880 Special MEM_TYPE_SPARE to denote reserved memory.
7881 * alloc.c (enum mem_type): New memory type.
7882 (refill_memory_reserve): Use new type for spare memory.
7883 This prevents live_cons_p and live_string_p from incorrect
7884 detection of uninitialized objects from spare memory as live.
7885
6af64513
PE
78862012-08-26 Paul Eggert <eggert@cs.ucla.edu>
7887
8b2e00a3
PE
7888 Spelling fixes.
7889 * Makefile.in (.PHONY): versioclean -> versionclean.
7890
b52d6985
PE
7891 Remove unused external symbols.
7892 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
7893 * window.c (Qwindow_valid_p, decode_valid_window):
7894 Now static, not extern.
7895 * data.c (Qinterval): Remove; unused.
7896 (syms_of_data): Do not define 'interval'.
7897 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
7898 * window.h (decode_valid_window):
7899 Remove decls.
7900
d5172d4f
PE
7901 * character.c, charset.c, chartab.c: Use bool for booleans.
7902 * character.c (lisp_string_width, string_count_byte8)
7903 (string_escape_byte8):
7904 * charset.c (charset_map_loaded, load_charset_map, read_hex):
7905 (load_charset_map_from_file, map_charset_chars)
7906 (Fdefine_charset_internal, define_charset_internal)
7907 (Fdeclare_equiv_charset, find_charsets_in_text)
7908 (Ffind_charset_region, char_charset, Fiso_charset):
7909 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
7910 (sub_char_table_set, sub_char_table_set_range)
7911 (char_table_set_range, optimize_sub_char_table)
7912 (map_sub_char_table):
7913 Use bool for boolean.
7914 * character.c (str_to_unibyte): Omit last boolean argument; it was
7915 always 0. All callers changed.
7916 * character.h, charset.h: Adjust to match previous changes.
7917 * character.h (char_printable_p): Remove decl of nonexistent function.
7918 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
7919 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
7920 are all boolean, so make them single-bit bitfields.
7921
6af64513
PE
7922 * lisp.h (ASET): Remove attempt to detect side effects.
7923 It was meant to be temporary and it often doesn't work,
7924 because when IDX has side effects the behavior of IDX==IDX
7925 is undefined. See Stefan Monnier in
7926 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
7927
e1f29348
BR
79282012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
7929
7930 * lisp.h (functionp): New function (extracted from Ffunctionp).
7931 (FUNCTIONP): Use it.
7932 * eval.c (Ffunctionp): Use it.
7933
17c05d74
PE
79342012-08-25 Paul Eggert <eggert@cs.ucla.edu>
7935
0f46bc75
PE
7936 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
7937 as that's faster and simpler than static storage. Don't bother
7938 with the g_main_context_query overhead if g_main_context_pending
7939 says no events are pending.
7940 (gfds, gfds_size): Remove these static vars.
7941 (xgselect_initialize): Remove; no longer needed.
7942 All uses and decls removed.
7943
ee4c0f69
PE
7944 * emacs.c (fatal_error_signal_hook): Remove.
7945 All uses removed. This leftover from old code was always 0.
7946
17c05d74
PE
7947 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
7948 * casefiddle.c (casify_object, casify_region):
7949 * casetab.c (set_case_table):
7950 * category.c, category.h (word_boundary_p):
7951 * category.h (CHAR_HAS_CATEGORY):
7952 Use bool for booleans, instead of int.
7953
391ceac5
EZ
79542012-08-25 Eli Zaretskii <eliz@gnu.org>
7955
7956 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
7957
2f221583
PE
79582012-08-25 Paul Eggert <eggert@cs.ucla.edu>
7959
f4a681b0
PE
7960 On assertion failure, print backtrace if available.
7961 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
7962 (die) [ENABLE_CHECKING]: Print a backtrace if available.
7963 * Makefile.in (LIB_EXECINFO): New macro.
7964 (LIBES): Use it.
7965
2f221583
PE
7966 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
7967 * bytecode.c (exec_byte_code):
7968 * callint.c (check_mark, Fcall_interactively):
7969 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
7970 (getenv_internal, sync_process_alive, call_process_exited):
7971 * lisp.h (USE_SAFE_ALLOCA):
7972 Use bool for booleans, instead of int.
7973 * lisp.h, process.h: Adjust prototypes to match above changes.
7974 * callint.c (Fcall_interactively): Don't assume the mark's
7975 offset fits in 'int'.
7976
37ef52bb
PE
79772012-08-24 Paul Eggert <eggert@cs.ucla.edu>
7978
7979 * buffer.c, buffer.h: Use bool for boolean.
7980 * buffer.c (reset_buffer_local_variables)
7981 (buffer_lisp_local_variables, Fset_buffer_modified_p)
7982 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
7983 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
7984 (overlay_touches_p, overlay_strings, Foverlay_put)
7985 (report_overlay_modification, call_overlay_mod_hooks):
7986 (mmap_enlarge, mmap_set_vars):
7987 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
7988 Use bool for booleans, instead of int.
7989 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
7990 since the 1-or-0 return value is always ignored anyway.
7991 (mmap_initialized_p):
7992 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
7993 * buffer.h, lisp.h: Adjust prototypes to match above changes.
7994
2cc21167
PE
79952012-08-23 Paul Eggert <eggert@cs.ucla.edu>
7996
7997 * bidi.c: Use bool for boolean.
7998 This is a bit more readable, and makes the text segment of bidi.o
7999 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
8000 Presumably it's faster too.
8001 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
8002 Now bool.
8003 (bidi_cache_find_level_change, bidi_cache_iterator_state)
8004 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
8005 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
8006 (bidi_explicit_dir_char, bidi_level_of_next_char)
8007 (bidi_find_other_level_edge, bidi_move_to_visually_next):
8008 Use bool for booleans, instead of int.
8009 * dispextern.h (bidi_init_it, bidi_paragraph_init)
8010 (bidi_unshelve_cache): Adjust decls to match code.
8011
7db4ddf4
MR
80122012-08-23 Martin Rudalics <rudalics@gmx.at>
8013
8014 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
8015 argument.
8016
b1bb8011
PE
80172012-08-23 Paul Eggert <eggert@cs.ucla.edu>
8018
8019 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
8020 * atimer.h: Include <stdbool.h>.
8021
ff687885
DN
80222012-08-22 Dan Nicolaescu <dann@gnu.org>
8023
8024 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
8025 compile time tests instead of run time tests on systems that do
8026 not use them.
8027 (FRAME_MAC_P): Remove leftover from deleted code.
8028 * frame.c (syms_of_frame): Remove leftover from deleted code.
8029
4ce7a138
JD
80302012-08-22 Jan Djärv <jan.h.d@swipnet.se>
8031
8032 * nsterm.m (insertText:): Don't clear modifiers if code is space.
8033
d733ec6d
PE
80342012-08-22 Paul Eggert <eggert@cs.ucla.edu>
8035
8036 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
8037 Otherwise, the compiler complains about (A?B:C) where B is void
fc0c31f8 8038 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
d733ec6d
PE
8039 (fontset_add): Return void, for FONTSET_ADD.
8040
d0d2d26f
PE
80412012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8042
fce31d69
PE
8043 * alloc.c: Use bool for booleans.
8044 (gc_in_progress, abort_on_gc)
8045 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
8046 (dont_register_blocks) [GC_MALLOC_CHECK]:
8047 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
8048 (check_string_bytes, make_specified_string, memory_full)
8049 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
8050 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
8051 (mark_stack, valid_pointer_p, make_pure_string)
8052 (Fgarbage_collect, survives_gc_p, gc_sweep):
8053 Use bool for booleans, instead of int.
8054 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
8055 Remove unused local.
8056 * alloc.c (PURE_POINTER_P):
8057 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
8058 * editfns.c (Fformat):
8059 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
8060 (Fdo_auto_save):
8061 * fns.c (sweep_weak_table):
8062 * lisp.h (suppress_checking, push_message, survives_gc_p)
8063 (make_pure_string, gc_in_progress, abort_on_gc):
8064 * lread.c (readchar, read1):
8065 * print.c (Fprin1_to_string):
8066 * xdisp.c (push_message):
8067 Use bool for booleans affected directly or indirectly by
8068 alloc.c's changes.
8069
d0d2d26f
PE
8070 Make recently-introduced setters macros.
8071 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
8072 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
8073 (set_fontset_default, set_fontset_fallback): Rename from their
8074 upper-case counterparts, and make them functions rather than macros.
8075 This is more consistent with the other recently-introduced setters.
8076 These don't need to be inline, since they're local.
8077
d18e2bb6
JD
80782012-08-21 Jan Djärv <jan.h.d@swipnet.se>
8079
8080 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
8081 the loop (Bug#12247).
8082
1b9d9d16
PE
80832012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8084
8085 * lisp.h (vcopy): Use memcpy rather than our own loop.
8086 This fixes a performance regression introduced by the recent
8087 addition of vcopy. This means 'vcopy' will need to be modified
8088 for a copying collector, but that's OK. Also, tighten the
8089 checking in the assertion.
8090
b2f09701
EZ
80912012-08-21 Eli Zaretskii <eliz@gnu.org>
8092
8093 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
8094 components for RTL text (Bug#11860). Adjust X-OFFSET of each
8095 non-base glyph for the width of the base character, according to
e1f29348
BR
8096 what x_draw_composite_glyph_string_foreground expects.
8097 Generate WADJUST value according to composition_gstring_width's
b2f09701
EZ
8098 expectations, to produce correct width of the composed character.
8099 Reverse the sign of the DU offset produced by ScriptPlace.
8100
9b994fed
PE
81012012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8102
8103 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
8104
086ca913
DA
81052012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
8106
8107 Avoid direct writes to contents member of struct Lisp_Vector.
8108 * lisp.h (vcopy): New function to copy data into vector.
8109 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
8110 * fns.c (Ffillarray): Use ASET.
8111 * keyboard.c (timer_check_2): Use AREF and ASET.
8112 (append_tool_bar_item, Frecent_keys): Use vcopy.
8113 * lread.c (read_vector): Use ASET.
8114 * msdos.c (Frecent_doskeys): Use vcopy.
8115 * xface.c (Finternal_copy_lisp_face): Use vcopy.
8116 (Finternal_merge_in_global_face): Use ASET and vcopy.
8117 * xfont.c (xfont_list_pattern): Likewise.
8118
5481664a
MR
81192012-08-21 Martin Rudalics <rudalics@gmx.at>
8120
8121 * window.c (Fwindow_point): For the selected window always return
8122 the position of its buffer's point.
8123 (Fset_window_point): For the selected window always go in its
8124 buffer to the specified position.
8125
6d470bdd
DA
81262012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
8127
8128 Setter macros for fontsets.
8129 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
8130 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
8131 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
8132 Adjust users.
8133
24564fe1
GM
81342012-08-20 Glenn Morris <rgm@gnu.org>
8135
8136 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
8137 Don't assume that `ln -f' works.
8138
0a05a035
EZ
81392012-08-20 Eli Zaretskii <eliz@gnu.org>
8140
8141 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
8142 and later about non-assignments with no effect. See discussion at
8143 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
8144 details.
8145
e46f2325
DA
81462012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8147
8148 Inline setter functions for Lisp_Objects slots of struct specbinding.
8149 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
8150 Adjust users.
8151
734fbd86
MR
81522012-08-20 Martin Rudalics <rudalics@gmx.at>
8153
8154 * window.c (select_window): Always make selected window's buffer
8155 current.
8156
f1a95992
DA
81572012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8158
8159 Use AREF and ASET for docstrings of category tables.
8160 * category.h (CATEGORY_DOCSTRING): Use AREF.
8161 (SET_CATEGORY_DOCSTRING): Use ASET.
8162 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
8163
e83064be
DA
81642012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8165
8166 Inline setter functions for hash table members.
8167 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
8168 (set_hash_hash, set_hash_index): Rename with _slot suffix.
8169 (set_hash_key_and_value, set_hash_index, set_hash_next)
8170 (set_hash_hash): New functions.
8171 * charset.c, fns.c: Adjust users.
8172
4ce60d2e
DA
81732012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8174
8175 Inline getter and setter functions for per-buffer values.
8176 * buffer.h (per_buffer_default, set_per_buffer_default)
8177 (per_buffer_value, set_per_buffer_value): New functions.
8178 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
8179 * buffer.c, data.c: Adjust users.
8180
c06c9690
JB
81812012-08-20 Juanma Barranquero <lekktu@gmail.com>
8182
8183 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
8184
32bd4250
PE
81852012-08-19 Paul Eggert <eggert@cs.ucla.edu>
8186
bad03192 8187 Rely on <config.h> + <unistd.h> to declare 'environ',
b69a6d22
PE
8188 as gnulib does this if the system doesn't.
8189 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
72279493
EZ
8190 Remove declaration. MS-Windows declares it on stdlib.h which is
8191 included by conf_post.h.
b69a6d22
PE
8192 * emacs.c (environ) [DOUG_LEA_MALLOC]:
8193 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
8194 * vm-limit.c: Include <unistd.h>, for 'environ'.
8195
22d7feb2
PE
8196 * unexaix.c, unexcoff.c: Include "mem-limits.h".
8197 (start_of_data): Remove decl; mem-limits.h provides it.
8198
32bd4250
PE
8199 * xdisp.c (handle_invisible_prop): Make it a bit faster
8200 and avoid a gcc -Wmaybe-uninitialized diagnostic.
8201
450809af
CY
82022012-08-19 Chong Yidong <cyd@gnu.org>
8203
8204 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
8205 ends (Bug#3874).
8206
9e677988
AS
82072012-08-19 Andreas Schwab <schwab@linux-m68k.org>
8208
6b1319ce
AS
8209 * .gdbinit: Use call instead of set when calling a function in the
8210 inferior.
8211
9e677988
AS
8212 * data.c (set_internal): Don't use set_blv_found.
8213 (Fkill_local_variable): Likewise.
8214
d7191076
AA
82152012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
8216
8217 * nsfont.m (ns_ascii_average_width): Ensure the string
8218 ascii_printable is initialized with a null-terminated character
8219 array. Otherwise, it can contain undesired extra characters.
8220
e757f1c6
PE
82212012-08-18 Paul Eggert <eggert@cs.ucla.edu>
8222
8223 port new setting code to Sun C 5.8 2005/10/13
8224 * chartab.c, lisp.h (char_table_set, char_table_set_range):
8225 Return void, not Lisp_Object. Otherwise, the compiler
8226 complains about (A?B:C) where B is void and C is Lisp_Object
8227 when compiling CHAR_TABLE_SET, due to the recent change to
8228 the API of sub_char_table_set_contents.
8229
a999ce26
CY
82302012-08-18 Chong Yidong <cyd@gnu.org>
8231
8232 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
8233 for the string case (Bug#3874).
8234
3f22b86f
PE
82352012-08-18 Paul Eggert <eggert@cs.ucla.edu>
8236
39eb03f1
PE
8237 * buffer.h (BSET): Remove (Bug#12215).
8238 Replace all uses with calls to new setter functions.
8239 (bset_bidi_paragraph_direction, bset_case_canon_table)
8240 (bset_case_eqv_table, bset_directory, bset_display_count)
8241 (bset_display_time, bset_downcase_table)
8242 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
8243 (bset_last_selected_window, bset_local_var_alist)
8244 (bset_mark_active, bset_point_before_scroll, bset_read_only)
8245 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
8246 (bset_width_table):
8247 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
8248 (bset_auto_fill_function, bset_auto_save_file_format)
8249 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
8250 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
8251 (bset_cache_long_line_scans, bset_case_fold_search)
8252 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
8253 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
8254 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
8255 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
8256 (bset_header_line_format, bset_indicate_buffer_boundaries)
8257 (bset_indicate_empty_lines, bset_invisibility_spec)
8258 (bset_left_fringe_width, bset_major_mode, bset_mark)
8259 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
8260 (bset_name, bset_overwrite_mode, bset_pt_marker)
8261 (bset_right_fringe_width, bset_save_length)
8262 (bset_scroll_bar_width, bset_scroll_down_aggressively)
8263 (bset_scroll_up_aggressively, bset_selective_display)
8264 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
8265 (bset_word_wrap, bset_zv_marker):
8266 * category.c (bset_category_table):
8267 * syntax.c (bset_syntax_table):
8268 New setter functions.
8269
6a09a33b
PE
8270 * process.h (PSET): Remove (Bug#12215).
8271 Replace all uses with calls to new setter functions.
8272 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8273 (PROCESS_INLINE): New macro.
8274 (pset_childp): New setter function.
8275 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
8276 * process.c (PROCESS_INLINE):
8277 Define to EXTERN_INLINE, so that the corresponding functions
8278 are compiled into code.
8279 (pset_buffer, pset_command, pset_decode_coding_system)
8280 (pset_decoding_buf, pset_encode_coding_system)
8281 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
8282 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
8283 (pset_type, pset_write_queue): New setter functions.
8284
e8c17b81
PE
8285 * window.h (WSET): Remove (Bug#12215).
8286 Replace all uses with calls to new setter functions.
8287 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8288 (WINDOW_INLINE): New macro.
8289 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
8290 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
8291 (wset_total_lines, wset_vertical_scroll_bar)
8292 (wset_window_end_pos, wset_window_end_valid)
8293 (wset_window_end_vpos): New setter functions.
8294 * window.c (WINDOW_INLINE):
8295 Define to EXTERN_INLINE, so that the corresponding functions
8296 are compiled into code.
8297 (wset_combination_limit, wset_dedicated, wset_display_table)
8298 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
8299 (wset_new_normal, wset_new_total, wset_next_buffers)
8300 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
8301 (wset_prev_buffers, wset_right_fringe_width)
8302 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
8303 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
8304 (wset_window_parameters):
8305 * xdisp.c (wset_base_line_number, wset_base_line_pos)
8306 (wset_column_number_displayed, wset_region_showing):
8307 New setter functions.
8308
3f22b86f
PE
8309 * termhooks.h (TSET): Remove (Bug#12215).
8310 Replace all uses with calls to new setter functions.
8311 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8312 (TERMHOOKS_INLINE): New macro.
8313 (tset_charset_list, tset_selection_alist): New setter functions.
8314 * terminal.c (TERMHOOKS_INLINE):
8315 Define to EXTERN_INLINE, so that the corresponding functions
8316 are compiled into code.
8317 (tset_param_alist): New setter function.
8318
742af32f
PE
83192012-08-17 Paul Eggert <eggert@cs.ucla.edu>
8320
15dbb4d6
PE
8321 * keyboard.h (KSET): Remove (Bug#12215).
8322 Replace all uses with calls to new setter functions.
8323 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8324 (KEYBOARD_INLINE): New macro.
8325 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
8326 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
8327 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
8328 New setter functions.
8329 * keyboard.c (KEYBOARD_INLINE):
8330 Define to EXTERN_INLINE, so that the corresponding functions
8331 are compiled into code.
8332 (kset_echo_string, kset_kbd_queue)
8333 (kset_keyboard_translate_table, kset_last_prefix_arg)
8334 (kset_last_repeatable_command, kset_local_function_key_map)
8335 (kset_overriding_terminal_local_map, kset_real_last_command)
8336 (kset_system_key_syms): New setter functions.
8337
f00af5b1
PE
8338 * frame.h (FSET): Remove (Bug#12215).
8339 Replace all uses with calls to new setter functions.
8340 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8341 (FRAME_INLINE): New macro.
8342 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
8343 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
8344 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
8345 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
8346 (fset_param_alist, fset_root_window, fset_scroll_bars)
8347 (fset_selected_window, fset_title, fset_tool_bar_items)
8348 (fset_tool_bar_position, fset_tool_bar_window): New functions.
8349 * frame.c (FRAME_INLINE):
8350 Define to EXTERN_INLINE, so that the corresponding functions
8351 are compiled into code.
8352 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
8353
0c94c8d6
PE
8354 A few more naming-convention fixes for getters and setters.
8355 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
8356 and rename from buffer_overlays_set_before.
8357 (set_buffer_overlays_after): Move here from buffer.h, and rename
8358 from buffer_overlays_set_after.
8359 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
8360 All uses changed.
8361 (set_buffer_intervals): Rename from buffer_set_intervals.
8362 * intervals.c (set_interval_object): Move here from intervals.h,
8363 and rename from interval_set_object.
8364 (set_interval_left): Move here from intervals.h, and rename from
8365 interval_set_left.
8366 (set_interval_right): Move here from intervals.h, and rename from
8367 interval_set_right.
8368 (copy_interval_parent): Move here from intervals.h, and rename from
8369 interval_copy_parent.
8370 * intervals.h (set_interval_parent): Rename from interval_set_parent.
8371 (set_interval_plist): Rename from interval_set_plist.
8372 Return void, not Lisp_Object, since no caller uses the result.
8373 * lisp.h (string_intervals): Rename from string_get_intervals.
8374 (set_string_intervals): Rename from string_set_intervals.
8375
34dabdb7
PE
8376 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
8377 (set_char_table_contents): Rename from char_table_set_contents.
0b390a9d 8378 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
34dabdb7
PE
8379 All uses changed. See the end of
8380 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
8381
742af32f
PE
8382 * lisp.h (CSET): Remove (Bug#12215).
8383 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
8384 (set_char_table_purpose): New functions,
8385 replacing CSET. All uses changed. For example, replace
8386 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
c24eb18a 8387 "set_char_table_parent (char_table, parent);".
742af32f
PE
8388 The old version was confusing because it used the same name
8389 'parent' for two different things.
8390
a04e2c62
DA
83912012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
8392
8393 Functions to get and set Lisp_Object fields of buffer-local variables.
8394 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
8395 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
8396 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
8397 * data.c, eval.c, frame.c: Adjust users.
8398
383dcbf9
CY
83992012-08-17 Chong Yidong <cyd@gnu.org>
8400
8401 * xfaces.c (merge_face_vectors): If the target font specfies a
8402 font spec, make the font's attributes take precedence over
8403 directly-specified attributes.
8404 (merge_face_ref): Recognize :font.
8405
44386687
DA
84062012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
8407
8408 Do not use memcpy for copying intervals.
8409 * intervals.c (reproduce_interval): New function.
8410 (reproduce_tree, reproduce_tree_obj): Use it.
8411 (reproduce_tree_obj): Remove prototype.
8412
927c7216
PE
84132012-08-17 Paul Eggert <eggert@cs.ucla.edu>
8414
8415 * lisp.h (duration_to_sec_usec): Remove unused decl.
8416
93044f7b
AA
84172012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
8418
8419 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
8420 to an allocated instance of NSString, not to the class itself.
8421
9851e4a5
JB
84222012-08-17 Juanma Barranquero <lekktu@gmail.com>
8423
8424 * makefile.w32-in (C_CTYPE_H): New macro.
8425 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
8426 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
8427 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
8428
620f13b0
PE
84292012-08-16 Paul Eggert <eggert@cs.ucla.edu>
8430
8431 Use ASCII tests for character types.
8432 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
8433 * xfns.c, xterm.c:
8434 Don't include <ctype.h>; was not needed.
8435 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
8436 * sysdep.c, xfaces.c:
8437 Include <c-ctype.h> instead of <ctype.h>.
8438 * nsterm.m: Include <c-ctype.h>.
8439 * charset.c (read_hex):
8440 * doc.c (Fsnarf_documentation):
8441 * fileio.c (IS_DRIVE) [WINDOWSNT]:
8442 (DRIVE_LETTER) [DOS_NT]:
8443 (Ffile_name_directory, Fexpand_file_name)
8444 (Fsubstitute_in_file_name):
8445 * font.c (font_parse_xlfd, font_parse_fcname):
8446 * frame.c (x_set_font_backend):
8447 * gtkutil.c (xg_get_font):
8448 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
8449 * nsimage.m (hexchar):
8450 * nsterm.m (ns_xlfd_to_fontname):
8451 * sysdep.c (system_process_attributes):
8452 * xfaces.c (hash_string_case_insensitive):
8453 Use C-locale tests instead of locale-specific tests for character
8454 types, since we want the ASCII interpretation here, not the
8455 interpretation suitable for whatever happens to be the current locale.
8456
52162052
MR
84572012-08-16 Martin Rudalics <rudalics@gmx.at>
8458
8459 Consistently check windows for validity/liveness
8460 (Bug#11984, Bug#12025, Bug#12026).
8461 * lisp.h (CHECK_VALID_WINDOW): New macro.
8462 * window.c (decode_window): Rename to decode_live_window.
8463 (decode_valid_window, Fwindow_valid_p): New functions.
8464 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
8465 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
8466 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
8467 (Fwindow_prev_sibling, Fwindow_combination_limit)
8468 (Fset_window_combination_limit, Fwindow_use_time)
8469 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
8470 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
8471 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
8472 (Fwindow_hscroll, Fset_window_hscroll)
8473 (Fwindow_redisplay_end_trigger)
8474 (Fset_window_redisplay_end_trigger, Fwindow_edges)
8475 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
8476 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
8477 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
8478 (Fwindow_end, Fset_window_point, Fset_window_start)
8479 (Fpos_visible_in_window_p, Fwindow_line_height)
8480 (Fwindow_dedicated_p, Fset_window_dedicated_p)
8481 (Fwindow_prev_buffers, Fset_window_prev_buffers)
8482 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
8483 (Fset_window_parameter, Fwindow_display_table)
8484 (Fset_window_display_table, Fdelete_other_windows_internal)
8485 (Fset_window_buffer, Fset_window_new_total)
8486 (Fset_window_new_normal, Fdelete_window_internal)
8487 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
8488 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
8489 (Fwindow_scroll_bars): Check whether argument window is a valid or
8490 live window. Update doc-strings.
8491 (syms_of_window): New symbol Qwindow_valid_p.
8492 * keyboard.c (Fposn_at_x_y): Check whether argument
8493 frame_or_window denotes a valid window.
8494
2751c80f
DA
84952012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
8496
8497 Fix previous char table change.
8498 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
8499 * chartab.c (optimize_sub_char_table): Likewise.
8500
032a42c8
CY
85012012-08-16 Chong Yidong <cyd@gnu.org>
8502
a2d19368
CY
8503 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
8504
032a42c8
CY
8505 * xfont.c (xfont_open):
8506 * xftfont.c (xftfont_open): Set the font's max_width field.
8507
8508 * nsfont.m (nsfont_open): Similar to the Xft backend, set
8509 min_width to space_width and average_width to the average over
8510 printable ASCII characters.
8511 (ns_char_width): Code cleanup.
8512 (ns_ascii_average_width): New utility function.
8513
8514 * font.h (struct font): Update comments.
8515
a098c930
DA
85162012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
8517
032a42c8 8518 Simple interface to set Lisp_Object fields of character tables.
a098c930
DA
8519 * lisp.h (CSET): New macro.
8520 (char_table_set_extras, char_table_set_contents)
8521 (sub_char_table_set_contents): New function.
8522 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
8523 * syntax.c: Adjust users.
8524
8be3a09c
SM
85252012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
8526
8527 * eval.c (eval_sub): Bind lexical-binding.
8528 * lread.c (Qlexical_binding): Make non-static.
8529
ac4845a6
JD
85302012-08-15 Jan Djärv <jan.h.d@swipnet.se>
8531
ddee6515
JD
8532 * nsmenu.m (popupSession): Remove.
8533 (pop_down_menu): Remove endModalSession.
8534 (timeout_handler:): New method.
8535 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
8536 Call runModalForWindow. Check timer_fired when it returns.
8537 If not set, cancel timer and break out of loop.
8538 Otherwise loop again, with a new timeout.
8539
8540 * nsterm.m: Include fcntl.h if present.
8541 (fd_entry, t_readfds, inNsSelect): Remove.
8542 (select_writefds, select_valid, select_timeout, selfds)
8543 (select_mutex, apploopnr): Add.
8544 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
8545 Otherwise call kbd_buffer_store_event.
8546 (ns_send_appdefined): Remove release of fd_entry.
8547 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
8548 Increment and decrement apploopnr.
8549 (ns_select): If no file descriptors, just do a NSTimer.
8550 Otherwise copy read/write masks and start select thread (fd_handler).
8551 Start main loop and wait for application defined event.
8552 Inform select thread to stop selecting after main loop is exited.
8553 (ns_term_init): Create selfds pipe and set non-blocking.
fc0c31f8 8554 Initialize select_mutex. Start the select thread (fd_handler).
ddee6515
JD
8555 (fd_handler:): Loop forever, wait for info from the main thread
8556 to either start or stop selecting. When select returns, send
8557 and appdefined event.
8558 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
8559 If not call kbd_buffer_store_event.
8560
8561 * nsterm.h (EmacsApp): fd_handler takes id argument.
8562 (EmacsDialogPanel): Add timer_fired and timeout_handler.
8563
ac4845a6
JD
8564 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
8565
eb424fe3
EZ
85662012-08-15 Eli Zaretskii <eliz@gnu.org>
8567
8568 * region-cache.c (move_cache_gap): Update gap_len using the actual
8569 growth of the boundaries array. Do not change cache_len.
8570 (Bug#12196)
8571
4e6a86c6
DA
85722012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
8573
8574 Generalize and cleanup font subsystem checks.
8575 * font.h (FONT_DEBUG, font_assert): Remove.
8be3a09c
SM
8576 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
8577 Change font_assert to eassert. Use eassert where appropriate.
4e6a86c6 8578
5bf192ca
DA
85792012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
8580
8581 * gtkutil.c (xg_get_font): Use pango_units_to_double.
8582
f2045622
CY
85832012-08-15 Chong Yidong <cyd@gnu.org>
8584
8be3a09c
SM
8585 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
8586 When using the new font chooser, use gtk_font_chooser_get_font_desc to
8587 extract the font descriptor instead of just the font name.
8588 In that case, return a font spec instead of a string.
f2045622
CY
8589 (x_last_font_name): Move to this file from xfns.c.
8590
8591 * xfns.c (Fx_select_font): The return value can also be a font
8592 spec. Move x_last_font_name management to gtkutil.c.
8593
8594 * xfaces.c: Make font weight and style symbols non-static.
8595
7f6feb56
SM
85962012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
8597
8598 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
8599 (bug#12117).
8600
fecbd8ff
SM
86012012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
8602
8603 * alloc.c (Fgarbage_collect): Use plural form consistently.
8604
9b8d5165
EZ
86052012-08-14 Eli Zaretskii <eliz@gnu.org>
8606
8607 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
8608 iteration through the command loop. Fixes a problem whereby mouse
8609 movements are ignored until the first mouse click.
8610
f5d9e83a
PE
86112012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8612
8613 Use bool, not int, for Lisp booleans.
8614 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
8615 makes Emacs a bit smaller and presumably a bit faster.
8616 * lisp.h: Include <stdbool.h>.
8617 (struct Lisp_Boolfwd, defvar_bool):
8618 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
8619 * regex.c [!emacs]: Include <stdbool.h>.
8620 (false, true): Remove; <stdbool.h> does this for us now.
8621
55802e4a
CY
86222012-08-14 Chong Yidong <cyd@gnu.org>
8623
4abcdac8
CY
8624 * character.c (Fcharacterp): Doc fix (Bug#12076).
8625
8626 * data.c (Findirect_variable): Doc fix (Bug#11040).
8627
55802e4a
CY
8628 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
8629
8630 * editfns.c (Fformat): Doc fix (Bug#12059).
4abcdac8 8631 (Fsave_current_buffer): Doc fix (Bug#11542).
55802e4a 8632
8e99d072
BR
86332012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
8634
8635 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
8636 (bug#12022).
8637
08908aca
MR
86382012-08-14 Martin Rudalics <rudalics@gmx.at>
8639
8640 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
8641 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
8642 * minibuf.c (choose_minibuf_frame, read_minibuf):
8643 * w32fns.c (x_create_tip_frame):
8644 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
8645 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
8646
56120d6f
PE
86472012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8648
8649 * intervals.c (offset_intervals): Remove obsolete comment.
8650
67b77c0b
AS
86512012-08-14 Andreas Schwab <schwab@linux-m68k.org>
8652
8653 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
8654
f48b82fd
GR
86552012-08-14 Gergely Risko <gergely@risko.hu>
8656
8657 * coding.c (decode_coding): Record buffer modification before
8658 disabling undo_list (Bug#11773).
8659
fd318b54
DA
86602012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8661
8662 Revert and cleanup some recent overlay changes.
8663 * buffer.h (enum overlay_type): Remove.
8664 (buffer_get_overlays, buffer_set_overlays): Likewise.
8665 (buffer_set_overlays_before, buffer_set_overlays_after):
8666 New function. Adjust users.
8667 (unchain_both): Add eassert.
8668
41a62dd9
DA
86692012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8670
8671 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
8672
5884c324
PE
86732012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8674
8675 * gtkutil.c (xg_mark_data): Don't assume C99.
8676
ca06f160
JD
86772012-08-13 Jan Djärv <jan.h.d@swipnet.se>
8678
8679 * gtkutil.c (xg_frame_tb_info): New struct.
8680 (TB_INFO_KEY): New define.
8681 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
8682 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
8683 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
8684 if not present.
8685 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
fc0c31f8 8686 is up to date. Otherwise store new data.
ca06f160
JD
8687 (free_frame_tool_bar): Free xg_frame_tb_info if present.
8688
7864a3f7
DA
86892012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8690
8691 Use KSET for write access to Lisp_Object members of struct kboard.
8692 * keyboard.h (KSET): New macro.
8693 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
8694 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
8695 * xterm.c: Adjust users.
8696
4c31be61
DA
86972012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8698
8699 Use BSET for write access to Lisp_Object members of struct buffer.
8700 * buffer.h (BSET): New macro.
8701 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
8702 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
8703 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
8704 * window.c, xdisp.c, xfns.c: Adjust users.
8705
14ae4239
BT
87062012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
8707
8708 * lread.c (syms_of_lread): Initialize Vlexical_binding.
8709
32bcadb4
JD
87102012-08-11 Jan Djärv <jan.h.d@swipnet.se>
8711
3d29b2ce 8712 * nsterm.m (not_in_argv): New function.
fc0c31f8 8713 (application:openFile, application:openTempFile:):
3d29b2ce
JD
8714 (application:openFileWithoutUI:, application:openFiles:): Open file
8715 if not_in_argv returns non-zero (bug#12171).
8716
32bcadb4 8717 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
14ae4239
BT
8718 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
8719 Define for Gtk+ versions less than 3.2.
32bcadb4
JD
8720 (xg_get_font_name): Use those functions/macros here.
8721 Reported by Frans Oilinki <moilinki@gmail.com>.
8722
9ff9402d 87232012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8ccd072a
YM
8724
8725 * unexmacosx.c (copy_data_segment): Copy initialized data in
8726 statically linked libraries from input file rather than memory.
8727
db74a5fc
YM
8728 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
8729 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
8730 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
8731
25e65510
GM
87322012-08-10 Glenn Morris <rgm@gnu.org>
8733
8734 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
8735 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
8736
7961135c
DA
87372012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8738
8739 Fix last change to allow compilation with low optimization levels.
8740 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
8741 Reported by Jan Djärv <jan.h.d@swipnet.se>.
8742
42b3a444
DA
87432012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8744
8745 Use common inline syntax in intervals.h.
8746 * intervals.h (INTERVALS_INLINE): New macro.
8747 Change all users from LISP_INLINE.
8748
9fb0c957
DA
87492012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8750
8751 Define Qnone once for all platforms.
8752 * frame.c (Qnone): Define here.
8753 (syms_of_frame): DEFSYM it.
8754 * lisp.h (Qnone): New declaration.
8755 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
8756 * xfns.c: Remove duplication. Adjust users.
8757
65e8ee52
DA
87582012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8759
8760 Remove unused macros from intervals.h.
8761 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
8762 * intervals.c: Adjust comment.
8763
9b855fd6
EZ
87642012-08-10 Eli Zaretskii <eliz@gnu.org>
8765
8766 * w32fns.c <w32_unicode_gui>: New static variable.
8767 (globals_of_w32fns): Initialize it according to os_subtype.
8768 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
8769 testing os_subtype.
8770
39cb9e56 87712012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
d30be705
EZ
8772 Eli Zaretskii <eliz@gnu.org>
8773
8774 Fix bug #10299 with Unicode characters sent by customized
8775 keyboards created by MSKLC.
8776 * w32fns.c (INIT_WINDOW_CLASS): New macro.
8777 (w32_init_class): Use it to initialize the Emacs class with either
8778 ANSI or Unicode API calls.
8779 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
8780 later.
8781 (w32_wnd_proc): If the character code sent by WM_CHAR or
8782 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
8783 original message. Call DefWindowProcW on NT and later.
8784
9374581a
GM
87852012-08-10 Glenn Morris <rgm@gnu.org>
8786
4b94e8cf
GM
8787 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
8788
9374581a
GM
8789 * lisp.h (DIRECTORY_SEP): Let configure set it.
8790
a2752828
DA
87912012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
8792
8793 Use TSET for write access to Lisp_Object slots of struct terminal.
8794 * termhooks.h (TSET): New macro.
8795 * coding.c, terminal.c, xselect.c: Adjust users.
8796
cc92c454
SM
87972012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
8798
8799 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
8800 the failing expression, include them in the error message.
8801 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
8802 * lisp.h (internal_condition_case_n): Update declaration.
8803
4cb3e6b3
DA
88042012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8805
8806 Inline functions to examine and change buffer overlays.
8807 * buffer.c (unchain_both): New function.
8808 * buffer.h (buffer_get_overlays, buffer_set_overlays):
8809 (buffer_has_overlays): New function.
8810 (enum overlay_type): New enum.
8811 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
8812 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
8813
8707c1e5
DA
88142012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8815
8816 Inline functions to examine and change buffer intervals.
8817 * alloc.c (mark_interval_tree): Remove.
8818 (MARK_INTERVAL_TREE): Simplify.
8819 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
8820 * intervals.c (buffer_balance_intervals): New function.
8821 (graft_intervals_into_buffer): Adjust indentation.
8822 (set_intervals_multibyte): Simplify.
8823 * buffer.h (BUF_INTERVALS): Remove.
8824 (buffer_get_intervals, buffer_set_intervals): New function.
8825 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
8826 * intervals.c, textprop.c: Adjust users.
8827
ad8c997f
DA
88282012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8829
8830 Inline functions to examine and change string intervals.
8831 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
8832 (string_get_intervals, string_set_intervals): New function.
8833 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
8834 * lread.c, print.c, textprop.c: Adjust users.
8835
32ac3a6b
GM
88362012-08-08 Glenn Morris <rgm@gnu.org>
8837
8838 * lisp.mk (lisp): Remove language/persian.elc.
8839
77c7bcb1
DA
88402012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8841
8842 Cleanup intervals.
8843 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
8844 (NULL_INTERVAL_P): Likewise. Adjust users.
14ae4239
BT
8845 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
8846 Adjust comment. Move under #if 0.
77c7bcb1
DA
8847 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
8848 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
8849
9c08a8d4
DA
88502012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8851
8852 Check total length of intervals with eassert.
8853 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
8854 * intervals.c: Change all users to eassert.
8855
26d16b35
EZ
88562012-08-07 Eli Zaretskii <eliz@gnu.org>
8857
14ae4239
BT
8858 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
8859 Rename fields to match removal of FGET and WGET and disuse of
26d16b35
EZ
8860 INTERNAL_FIELD in Lisp_Cons.
8861
c644523b
DA
88622012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8863
8864 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
8865 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
8866 name since all xname users are fixed long time ago. Do not
8867 use INTERNAL_FIELD.
8868 (set_symbol_name, set_symbol_function, set_symbol_plist):
8869 (set_symbol_next, set_overlay_plist): New function.
8870 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
8871 (struct Lisp_Overlay): Likewise.
8872 (CVAR, MVAR, SVAR): Remove.
8873 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
8874 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
8875 * xterm.c: Adjust users.
8876 * .gdbinit: Change to use name field of struct Lisp_Symbol
8877 where appropriate.
8878
6a3d20cc
DA
88792012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8880
8881 Basic functions to set Lisp_Object and pointer slots of intervals.
8882 * intervals.h (interval_set_parent, interval_set_object):
8883 (interval_set_left, interval_set_right, interval_set_plist):
8884 (interval_copy_parent): New function.
8885 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
14ae4239
BT
8886 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
8887 Adjust indentation.
6a3d20cc
DA
8888 (INTERVAL_SIZE): Remove. Adjust users.
8889 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
8890
4d2b044c
DA
88912012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8892
8893 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
8894 * process.h (PGET): Remove.
8895 (struct Lisp_Process): Do not use INTERNAL_FIELD.
8896 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
8897
d3d50620
DA
88982012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8899
8900 Drop WGET and revert read access to Lisp_Objects slots of struct window.
8901 * window.h (WGET): Remove.
8902 (struct window): Do not use INTERNAL_FIELD.
8903 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
8904 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
8905 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
8906 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
8907 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
8908 Adjust users.
8909
d10a51dc
CY
89102012-08-07 Chong Yidong <cyd@gnu.org>
8911
8912 * window.c (Fwindow_edges, Fwindow_pixel_edges)
8913 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
8914 (Fdelete_window_internal): Signal an error if the window is not on
8915 a live frame (Bug#12025).
8916
e69b0960
DA
89172012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8918
8919 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
8920 * frame.h (FGET): Remove.
8921 (struct frame): Do not use INTERNAL_FIELD.
8922 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
8923 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
8924 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
8925 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
8926
25a20a3a
JB
89272012-08-06 Juanma Barranquero <lekktu@gmail.com>
8928
8929 * w32.c: Silence compiler warnings.
8930 (map_w32_filename): Remove unused variable `is_fat'.
8931 (chase_symlinks): Add parentheses around expression.
8932
1c6f11f4
GM
89332012-08-06 Glenn Morris <rgm@gnu.org>
8934
1db4583a
GM
8935 * sysdep.c: Respect BROKEN_GETWD.
8936
1c6f11f4
GM
8937 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
8938 Let configure handle it.
8939 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
8940
2b90362b
DA
89412012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8942
8943 Use GCALIGNMENT where appropriate.
8944 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
8945 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
8946 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
8947
5f50daf2
EZ
89482012-08-06 Eli Zaretskii <eliz@gnu.org>
8949
14ae4239
BT
8950 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
8951 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5f50daf2 8952
cbcc7007
SM
89532012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
8954
8955 * buffer.h (struct buffer): Revert `indirections' to a simple int;
8956 that should be sufficient for everyone.
8957
4d365fa4
JD
89582012-08-06 Jan Djärv <jan.h.d@swipnet.se>
8959
8960 * keyboard.c (timer_check_2): Add break so timer_check returns next
8961 timeout.
8962
dd86bd82
DA
89632012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8964
8965 Fix Windows build errors introduced after converting to WGET and WSET.
8966 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
8967 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
8968
054e1668
JD
89692012-08-06 Jan Djärv <jan.h.d@swipnet.se>
8970
8971 * nsterm.m (ns_frame_rehighlight): Use FSET.
8972
8973 * nsmenu.m (ns_update_menubar): Use FSET.
8974
21238f11
DA
89752012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8976
8977 Separate read and write access to Lisp_Object slots of Lisp_Process.
8978 * process.h (PGET, PSET): New macros similar to AREF and ASET.
8979 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
8980
077288cf
DA
89812012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8982
8983 Separate read and write access to Lisp_Object slots of struct window.
8984 * window.h (WGET, WSET): New macros similar to AREF and ASET.
8985 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
8986 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
8987 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
8988 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
8989 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
8990 Adjust users.
8991
71688bd7
DA
89922012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8993
8994 Fix Windows build errors introduced after converting to FGET and FSET.
8995 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
8996 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
8997 (w32_judge_scroll_bars): Change to use FSET.
8998 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
8999
f99bac93
DA
90002012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9001
9002 Fix replacement typo.
9003 * window.c (replace_window): Set root_window instead of
9004 selected_window. This fixes a total window subsystem
9005 malfunction reported by Bastien Guerry <bzg@gnu.org>.
9006
8c2a0f2d
GM
90072012-08-06 Glenn Morris <rgm@gnu.org>
9008
9009 * lisp.mk (lisp): Add language/persian.elc.
9010
edd74c35
DA
90112012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9012
9013 Separate read and write access to Lisp_Object slots of struct frame.
9014 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
9015 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
9016 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
9017 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
9018 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
9019
8671676c
AS
90202012-08-05 Andreas Schwab <schwab@linux-m68k.org>
9021
9022 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
9023
663e2b3f
DA
90242012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
9025
9026 Generalize common compile-time constants.
9027 * lisp.h (header_size, bool_header_size, word_size): Now here.
9028 (struct Lisp_Vector): Add comment.
9029 (struct Lisp_Bool_Vector): Move up to define handy constants.
9030 (VECSIZE, PSEUDOVECSIZE): Simplify.
9031 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
9032 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
9033 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
9034 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
9035 * xfont.c, xmenu.c: Use word_size where appropriate.
9036
d32e47af
LM
90372012-08-05 Lawrence Mitchell <wence@gmx.li>
9038
9039 * search.c (Freplace_match): Treat \? in the replacement text
9040 literally (Bug#8161).
9041
e5d9c0d1
CY
90422012-08-05 Chong Yidong <cyd@gnu.org>
9043
9044 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
9045 * frame.c (Vdelete_frame_functions):
9046 * emacs.c (Vkill_emacs_hook): Doc fix.
9047
8da0576b
EZ
90482012-08-04 Eli Zaretskii <eliz@gnu.org>
9049
9050 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
9051 --with-x-toolkit=no builds.
9052 Reported by Carsten Mattner <carstenmattner@gmail.com>.
9053
02676e5d
CY
90542012-08-04 Chong Yidong <cyd@gnu.org>
9055
9056 * syntax.c (Fmodify_syntax_entry): Doc fix.
9057
97147da9
EZ
90582012-08-04 Eli Zaretskii <eliz@gnu.org>
9059
76151e2c
EZ
9060 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
9061 * w32.c (init_environment): Change the default values of many
9062 environment variables in dflt_envvars[] to NULL, to avoid pushing
14ae4239
BT
9063 them into environment when they were not already defined.
9064 Remove the code that deletes site-lisp subdirectories from the default
76151e2c 9065 value of EMACSLOADPATH, as it is no longer needed.
14ae4239
BT
9066 (check_windows_init_file): Now external, not static.
9067 Use Vload_path as is, without adding anything, as this function is now
76151e2c
EZ
9068 called when Vload_path is already set up.
9069
9070 * w32.h (check_windows_init_file): Add prototype.
9071
9072 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
9073 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
9074 compatibility with Posix platforms.
9075 (main): Move the call to check_windows_init_file to here from
9076 w32.c.
9077 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
9078 any, in the DEFALT argument into the root of the Emacs build or
9079 installation tree, as appropriate.
9080
9081 * callproc.c (init_callproc_1): Call decode_env_path instead of
9082 doing its equivalent by hand.
9083 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
9084 the code that sets Vexec_path run on MS-Windows.
9085
9086 * lread.c (init_lread): Add comments to #ifdef's.
9087
97147da9
EZ
9088 * msdos.c (dos_set_window_size, IT_update_begin)
9089 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
9090 instead of direct references.
9091
185ee146
PE
90922012-08-04 Paul Eggert <eggert@cs.ucla.edu>
9093
9094 Export DEFAULT_REHASH_* to GDB.
9095 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
9096 Now constants, not macros.
9097
8834c57a
PE
90982012-08-03 Paul Eggert <eggert@cs.ucla.edu>
9099
98c6f1e3
PE
9100 Remove unnecessary casts involving pointers.
9101 These casts are no longer needed now that we assume C89 or later,
9102 since they involve casting to or from void *.
9103 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
9104 (make_pure_float, make_pure_vector):
9105 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
9106 * macros.c (Fstart_kbd_macro):
9107 * menu.c (find_and_return_menu_selection):
9108 * minibuf.c (read_minibuf_noninteractive):
9109 * sysdep.c (closedir):
9110 * xdisp.c (x_produce_glyphs):
9111 * xfaces.c (compare_fonts_by_sort_order):
9112 * xfns.c (x_real_positions, select_visual):
9113 * xselect.c (x_stop_queuing_selection_requests)
9114 (x_get_window_property, x_get_window_property_as_lisp_data):
9115 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
9116 Remove unnecessary pointer casts.
9117 * alloc.c (record_xmalloc): New function.
9118 * lisp.h (record_xmalloc): New decl.
9119 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
9120 more like a function. This is because the pointer cast is not
9121 needed. All uses changed.
9122 * print.c (print_string, print_error_message): Avoid length recalc.
9123
8834c57a
PE
9124 Improve fix for macroexp crash with debugging (Bug#12118).
9125 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
9126 ARRAY_MARK_FLAG when checking subscripts, because ASET is
9127 not supposed to be invoked from the garbage collector.
9128 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
9129 (gc_aset): New function, which is like ASET but can be
9130 used in the garbage collector.
9131 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
9132 (set_hash_index): Use it instead of ASET.
9133
6dad7178
EZ
91342012-08-03 Eli Zaretskii <eliz@gnu.org>
9135
9136 Support symlinks on latest versions of MS-Windows.
9137 * w32.c: Include winioctl.h and aclapi.h.
9138 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
9139 (revert_to_self): Forward declarations of static functions.
9140 <static BOOL g_b_init_get_security_info>:
9141 <g_b_init_create_symbolic_link>: New static flags.
9142 (globals_of_w32): Initialize them to zero.
9143 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
9144 (map_w32_filename): Improve commentary. Simplify switch.
9145 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
9146 headers (most versions of MinGW w32api don't).
9147 (get_security_info, create_symbolic_link)
9148 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
9149 New functions.
9150 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
9151 in the argument file name.
9152 (sys_access): Call unc_volume_file_attributes only if
9153 GetFileAttributes fails with network-related error codes.
9154 (sys_rename): Diagnose renaming of a symlink when the user doesn't
9155 have the required privileges.
14ae4239 9156 (get_file_security_desc_by_name): Rename from
6dad7178
EZ
9157 get_file_security_desc.
9158 (stat_worker): New function, with most of the guts of 'stat', and
14ae4239
BT
9159 with addition of handling of symlinks and support for 'lstat'.
9160 If possible, get file's attributes and security information by
6dad7178
EZ
9161 handle, not by name. Produce S_IFLNK bit for symlinks, when
9162 called from 'lstat'.
9163 (stat, lstat): New functions, call 'stat_worker'.
9164 (symlink, readlink, careadlinkat): Rewritten to create and resolve
9165 symlinks when the underlying filesystem supports them.
9166
f162bcc3
PE
91672012-08-02 Paul Eggert <eggert@cs.ucla.edu>
9168
79ea6c20
PE
9169 Fix macroexp crash on Windows with debugging (Bug#12118).
9170 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
9171 checking subscripts; problem introduced with the recent
9172 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
9173 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
9174 since it's used in non-static inline functions now.
9175
c0ce93fd
PE
9176 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
9177 Don't assume buffer size fits in 'int'. Remove unused local.
c71f5156 9178
f162bcc3
PE
9179 Use C99-style 'extern inline' if available.
9180 * buffer.h (BUFFER_INLINE):
9181 * category.h (CATEGORY_INLINE):
9182 * character.h (CHARACTER_INLINE):
9183 * charset.h (CHARSET_INLINE):
9184 * composite.h (COMPOSITE_INLINE):
9185 * dispextern.h (DISPEXTERN_INLINE):
9186 * lisp.h (LISP_INLINE):
9187 * systime.h (SYSTIME_INLINE):
9188 New macro, replacing 'static inline' in this header.
9189 * buffer.h, category.h, character.h, charset.h, composite.h:
9190 * dispextern.h, lisp.h, systime.h:
9191 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
9192 * alloc.c (LISP_INLINE):
9193 * buffer.c (BUFFER_INLINE):
9194 * category.c (CATEGORY_INLINE):
9195 * character.c (CHARACTER_INLINE):
9196 * charset.c (CHARSET_INLINE):
9197 * composite.c (COMPOSITE_INLINE):
9198 * dispnew.c (DISPEXTERN_INLINE):
9199 * sysdep.c (SYSTIME_INLINE):
9200 Define to EXTERN_INLINE, so that the corresponding functions
9201 are compiled into code.
9202 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
9203 (INLINE_HEADER_END): New macros.
9204 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
9205 since it's used in non-static inline functions now.
a8333d03 9206 (VALMASK) [!USE_LSB_TAG]: Likewise.
f162bcc3 9207
837b365b
GM
92082012-08-02 Glenn Morris <rgm@gnu.org>
9209
d66b744d
GM
9210 * s/: Remove empty directory.
9211
837b365b
GM
9212 * s/ms-w32.h: Move to ../nt/inc.
9213 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
9214 Update for new ms-w32.h location.
9215
13294f95
PE
92162012-08-02 Paul Eggert <eggert@cs.ucla.edu>
9217
9218 Port to Solaris 8.
9219 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
9220
90df0db3
GM
92212012-08-02 Glenn Morris <rgm@gnu.org>
9222
9223 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
9224 hard-coding the path separator.
9225
4939150c
PE
92262012-08-01 Paul Eggert <eggert@cs.ucla.edu>
9227
9228 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
9229 This how ASET and AREF are supposed to work, and makes
9230 it easier to think about future improvements. See
9231 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
9232 * charset.h (set_charset_attr): New function.
9233 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
9234 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
9235 (aref_addr): New function. All uses of &AREF(...) changed.
9236 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
9237 (set_hash_index): New functions. All lvalue-style uses of
9238 HASH_KEY etc. changed.
9239 * keyboard.c (set_prop): New function. All lvalue-style uses
9240 of PROP changed.
9241
947b2afd
AA
92422012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
9243
9244 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
9245 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
1f9f395d 9246 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
947b2afd
AA
9247 * nsfns.m (ns_set_name_as_filename): Likewise.
9248 * nsmenu.m (ns_update_menubar): Likewise.
9249 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
9250
4f5d0325
EZ
92512012-08-01 Eli Zaretskii <eliz@gnu.org>
9252
2008beae
EZ
9253 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
9254 Adapt to latest changes in field names of the corresponding Lisp
288479f6 9255 objects.
2008beae 9256
4f5d0325
EZ
9257 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
9258
fe3cc771
GM
92592012-08-01 Glenn Morris <rgm@gnu.org>
9260
9261 * s/msdos.h: Remove file.
9262 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
9263 * Makefile.in (S_FILE): Remove.
9264 (config_h): Remove S_FILE.
9265
c90acc54
JB
92662012-08-01 Juanma Barranquero <lekktu@gmail.com>
9267
9268 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
9269 Remove; moved to nt/config.nt.
9270
d8a05828
DA
92712012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9272
9273 Use INTERNAL_FIELD for conses and overlays.
9274 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
9275 Remove obsolete comment.
9276 (MVAR): New macro.
9277 (struct Lisp_Overlay): Use INTERNAL_FIELD.
9278 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
9279
8271d590
DA
92802012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9281
9282 Use INTERNAL_FIELD for symbols.
9283 * lisp.h (SVAR): New macro. Adjust users.
9284 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
9285 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
9286
3193acd2
DA
92872012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9288
9289 Use INTERNAL_FIELD for processes.
9290 * process.h (PVAR): New macro. Adjust style.
9291 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
9292 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
9293
3a45383a
DA
92942012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9295
9296 Use INTERNAL_FIELD for windows.
9297 * window.h (WVAR): New macro.
9298 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
9299 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
9300 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
9301 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
9302 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
9303 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
9304
c1dbc63c
PE
93052012-08-01 Paul Eggert <eggert@cs.ucla.edu>
9306
9307 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
9308
5c0c0e8a
GM
93092012-08-01 Glenn Morris <rgm@gnu.org>
9310
9311 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
9312 Move to configure.ac.
9313
552a99b4
JB
93142012-08-01 Juanma Barranquero <lekktu@gmail.com>
9315
9316 * makefile.w32-in (CONFIG_H): Update dependencies.
9317 (CONF_POST_H): New macro.
9318
9319 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
9320
8d8e2dfe
GM
93212012-07-31 Glenn Morris <rgm@gnu.org>
9322
bc96620a
GM
9323 * Makefile.in (S_FILE): No longer set by configure.
9324
476b1b2d
GM
9325 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
9326 is available.
9327 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
9328
b2c7a106
GM
9329 * process.h (NULL_DEVICE):
9330 * emacs.c (SEPCHAR):
9331 * editfns.c (USER_FULL_NAME): Let configure set them.
9332
d53d062a
GM
9333 * s/README, s/template.h: Remove files.
9334
4515017f
GM
9335 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
9336
8d8e2dfe
GM
9337 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
9338 Move to configure.ac.
9339
5b20b3cc
EZ
93402012-07-31 Eli Zaretskii <eliz@gnu.org>
9341
1e0afd9a
EZ
9342 * .gdbinit (xframe): Adapt to introduction of FVAR and the
9343 resulting renaming of 'struct frame' members.
9344
5b20b3cc
EZ
9345 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
9346
9347 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
9348 after introduction of FVAR.
9349
f1310128
JD
93502012-07-31 Jan Djärv <jan.h.d@swipnet.se>
9351
79e721e0
JD
9352 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
9353
9354 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
9355 instead of compositeToPoint.
9356 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
9357
8d7c7eed 9358 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
f1310128 9359
e34f7f79
DA
93602012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
9361
9362 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
9363 * lisp.h (INTERNAL_FIELD): New macro.
14ae4239 9364 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
e34f7f79
DA
9365 (BVAR): Change to use INTERNAL_FIELD.
9366 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
9367 (KVAR): Change to use INTERNAL_FIELD.
9368 * frame.h (FVAR): New macro.
9369 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
3a45383a
DA
9370 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
9371 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
9372 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
e34f7f79
DA
9373 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
9374
c09bfb2f
DA
93752012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
9376
9377 Miscellaneous fixes for non-default X toolkits.
9378 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
9379 * xterm.c (x_frame_of_widget): Remove redundant prototype.
9380 Move under #ifdef USE_LUCID.
9381 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
9382 definition and usage to avoid warnings.
9383
14c114ae
JD
93842012-07-31 Jan Djärv <jan.h.d@swipnet.se>
9385
9386 * nsterm.m (openFiles): Fix previous checkin.
9387
3bd21e82
PE
93882012-07-31 Paul Eggert <eggert@cs.ucla.edu>
9389
9390 * indent.c (compute_motion): Remove unused local.
9391
c1529ded
GM
93922012-07-31 Glenn Morris <rgm@gnu.org>
9393
400d5621
GM
9394 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
9395
268e2432
GM
9396 * conf_post.h [USG5_4]:
9397 Move remaining contents of s/usg5-4-common.h here.
9398 * s/usg5-4-common.h: Remove file.
9399
7552f3ee
GM
9400 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
9401 * s/irix6-5.h: Remove file.
9402
6a381852
GM
9403 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
9404 * s/darwin.h: Remove file.
9405
c1529ded
GM
9406 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
9407 * s/hpux10-20.h: Remove file, which is now empty.
9408
b429a4ee
GM
94092012-07-30 Glenn Morris <rgm@gnu.org>
9410
9411 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
9412 * Makefile.in (config_h): Add conf_post.h.
9413 * makefile.w32-in (CONFIG_H): Add conf_post.h.
9414
adff3182
JD
94152012-07-30 Jan Djärv <jan.h.d@swipnet.se>
9416
9417 * nsterm.m (ns_do_open_file): New variable.
b9031d69 9418 (ns_term_init): Set ns_do_open_file to YES after run returns.
14ae4239
BT
9419 (openFile, openTempFile, openFileWithoutUI, openFiles):
9420 Open files only if ns_do_open_file.
adff3182 9421
c32af1e4
PE
94222012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9423
7393bcbb
PE
9424 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
9425 This no-op macro hasn't been needed for many years.
9426 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
9427
c32af1e4
PE
9428 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
9429 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
9430 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
9431 gdb_make_enums_visible.
9432 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
9433 (DIRECTORY_SEP): Now a constant, not a macro.
9434
302fc036
EZ
94352012-07-30 Eli Zaretskii <eliz@gnu.org>
9436
9437 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
9438 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
9439
9440 * w32term.c <w32_keyboard_codepage>: Renamed from
9441 keyboard_codepage and now external. All users changed.
9442
9443 * w32term.h: Add declaration of w32_keyboard_codepage.
9444
9445 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
9446 the codepage to translate keys to Unicode. If this argument is
9447 -1, use the value returned by GetConsoleCP. All callers changed.
9448
88fb40b4
PE
94492012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9450
0aee6912
PE
9451 Update .PHONY listings in makefiles.
9452 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
9453 bootstrap-clean, distclean, maintainer-clean, versioclean,
9454 extraclean, frc.
9455
88fb40b4
PE
9456 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
9457 This is a bit clearer. Fix some commentary typos.
9458
0a763bd1
GM
94592012-07-30 Glenn Morris <rgm@gnu.org>
9460
32bac6d6
GM
9461 * s/netbsd.h: Let configure include signal.h if needed.
9462 Remove file, which is now empty.
9463
b65e7c46
GM
9464 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
9465 Let configure set them.
9466 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
9467 No more need to undefine.
0a763bd1 9468
169304bd
AS
94692012-07-30 Andreas Schwab <schwab@linux-m68k.org>
9470
9471 * keymap.c (Fkey_description): Don't remove 0x80 bit from
9472 non-single-byte char when adding meta modifier. (Bug#12090)
9473
6cd7a139
DA
94742012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
9475
9476 Convert safe_call to use variable number of arguments.
9477 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
9478 (safe_call2): Fix comment.
9479 * lisp.h (safe_call): Adjust prototype.
9480 * coding.c (encode_coding_object): Change to use safe_call2.
9481 * xfaces.c (merge_face_heights): Change to use safe_call1.
9482
d34d6ffc
GM
94832012-07-30 Glenn Morris <rgm@gnu.org>
9484
7b8a48e4 9485 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 9486 does that unconditionally. Remove file, which is now empty.
7b8a48e4 9487
d34d6ffc
GM
9488 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
9489 Remove empty files.
9490
03a660a6
PE
94912012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9492
9493 Export to GDB most of lisp.h's remaining object-like macros.
9494 * lisp.h (min, max): Move earlier, because they're used earlier now.
9495 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
9496 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
9497 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
9498 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
9499 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
9500 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
9501 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
9502 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
9503 Now constants, for GDB. They need not be macros.
9504 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
9505 Now constants, for GDB, as well as macros, for static initializers.
9506 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
9507 Move to after the definition of struct Lisp_Char_Table,
9508 since the former now needs that type defined.
9509 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
9510 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
9511 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
9512 New enums, for gdb_make_enums_visible.
9513 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 9514 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
9515 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
9516 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
9517 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
9518 enum maxargs, enum MAX_ALLOCA.
9519 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
9520 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
9521 no longer needed, now that they are done in lisp.h.
9522
e499d0ee
DA
95232012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
9524
9525 Cleanup string bytes checking.
9526 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
9527 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
9528 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
9529 (check_sblock, compact_small_strings): Simplify.
9530
d5040d2d
PE
95312012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9532
9533 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
9534 These macros are confusing and no longer need to be defined, as
9535 the enum values now suffice. All uses replaced with definiens.
9536 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
9537
7f259ae6
JB
95382012-07-29 Juanma Barranquero <lekktu@gmail.com>
9539
9540 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
9541 ($(BLD)/w32console.$(O)): Update dependencies.
9542
7e63e0c3
DA
95432012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9544
9545 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
9546 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
9547 time. Adjust users.
9548 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
9549
ffd817eb
JD
95502012-07-29 Jan Djärv <jan.h.d@swipnet.se>
9551
9552 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
9553 setting sitelisp (Bug#12010).
9554
417a7a0e
EZ
95552012-07-29 Eli Zaretskii <eliz@gnu.org>
9556
14ae4239 9557 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
417a7a0e
EZ
9558
9559 * w32heap.c (cache_system_info):
9560 * w32.c (sys_rename):
9561 * w32proc.c (find_child_console, sys_kill): All users changed.
9562
387d4d92
PE
95632012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9564
9565 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
9566
55a6cca6
EZ
95672012-07-29 Eli Zaretskii <eliz@gnu.org>
9568
9569 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
9570
dbcf001c
DA
95712012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9572
9573 Cleanup statistics calculation in Fgarbage_collect.
14ae4239
BT
9574 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
9575 Fix zombies percentage calculation. Simplify elapsed time calculation.
dbcf001c 9576
e2688e4a
DA
95772012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9578
9579 Generalize marker debugging code under MARKER_DEBUG and use eassert.
9580 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
9581 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
9582 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
9583 (replace_range, replace_range_2, del_range_2): Change to eassert.
9584 * marker.c (byte_char_debug_check): Adjust style.
9585
b46a6a83
PE
95862012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9587
9588 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
9589 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
9590 long-ago-commented-out code that talks about "WIN32".
9591 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
9592 All uses changed.
9593
e32a5799
PE
95942012-07-28 Paul Eggert <eggert@cs.ucla.edu>
9595
9596 Use Gnulib stdalign module (Bug#9772, Bug#9960).
9597 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
9598 Simplify by using alignof.
9599 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
9600 * lisp.h: Include <stdalign.h>.
9601 (GCALIGNMENT): New macro and constant.
9602 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
9603 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
9604 (stdalign): New macro, if not already defined.
9605
df81cd29
EZ
96062012-07-28 Eli Zaretskii <eliz@gnu.org>
9607
01bd1b0d
EZ
9608 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
9609 * w32inevt.c: Include w32inevt.h.
9610 (w32_read_console_input): New inline function, calls either
9611 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
9612 w32_console_unicode_input.
9613 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
9614 (w32_kbd_patch_key, key_event): Use the codepage returned by
9615 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
9616 (key_event): use uChar.UnicodeChar only if
9617 w32_console_unicode_input is non-zero.
9618
9619 * w32console.c: Include w32heap.h.
9620 <w32_console_unicode_input>: New global variable.
9621 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
9622 family of Windows, zero otherwise.
9623
9624 * w32inevt.h: Declare w32_console_unicode_input.
9625
df81cd29
EZ
9626 * xdisp.c (init_iterator): Don't reference tip_frame in a build
9627 --without-x. (Bug#11742)
9628
c20fdd9e
PE
96292012-07-27 Paul Eggert <eggert@cs.ucla.edu>
9630
9631 Adjust GDB to reflect pvec_type changes (Bug#12036).
9632 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
14ae4239
BT
9633 2012-07-04 changes to pseudovector representation.
9634 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
c20fdd9e 9635
32770973 96362012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
9637
9638 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
9639 bus address.
9640 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
9641
3438fe21
EZ
96422012-07-27 Eli Zaretskii <eliz@gnu.org>
9643
bcfbc9de
EZ
9644 * alloc.c (listn): Fix the order the arguments are consed onto the
9645 list.
9646
3438fe21
EZ
9647 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
9648 enumeration constants, as PURE and HEAP are too general, and clash
9649 with other headers and sources, such as gmalloc.c and the
9650 MS-Windows system headers. All users changed.
9651
eeaea515
DA
96522012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9653
9654 Revert last save_excursion_save and save_excursion_restore changes.
9655 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
9656 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
9657
073c88c2
DA
96582012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9659
9660 Fix recently-introduced typos in Windows port.
9661 Reported by Martin Rudalics <rudalics@gmx.at>.
9662 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 9663 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 9664
4706125e
PE
96652012-07-27 Paul Eggert <eggert@cs.ucla.edu>
9666
9667 Improve GDB symbol export (Bug#12036).
9668 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
9669 arms of an 'if', not using conditional expressions; otherwise GDB
9670 complains about the types in the unevaluated arm when the argument
9671 is an integer literal.
9672 (xgetint): Simplify expression.
9673 * alloc.c (gdb_make_enums_visible): New constant. This ports to
9674 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
9675 Zaretskii in <http://bugs.gnu.org/12036#13>.
9676 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
9677 needed now that we have gdb_make_enums_visible.
9678 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
9679 (enum enum_USE_LSB_TAG):
9680 New enum types, packaging up enums that need to be exported to GDB.
9681
694b6c97
DA
96822012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9683
9684 Utility function to make a list from specified amount of objects.
9685 * lisp.h (enum constype): New datatype.
9686 (listn): New prototype.
9687 * alloc.c (listn): New function.
9688 (Fmemory_use_count, syms_of_alloc): Use it.
9689 * buffer.c (syms_of_buffer): Likewise.
9690 * callint.c (syms_of_callint): Likewise.
9691 * charset.c (define_charset_internal): Likewise.
9692 * coding.c (syms_of_coding): Likewise.
9693 * keymap.c (syms_of_keymap): Likewise.
9694 * search.c (syms_of_search): Likewise.
9695 * syntax.c (syms_of_syntax): Likewise.
9696 * w32.c (init_environment): Likewise.
9697 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
9698 * xdisp.c (syms_of_xdisp): Likewise.
9699 * xfns.c (syms_of_xfns): Likewise.
9700
6195f384
DA
97012012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9702
9703 Fast save_excursion_save and save_excursion_restore.
9704 * lisp.h (struct Lisp_Excursion): New data type.
9705 (PVEC_EXCURSION): New pseudovector type.
9706 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
9707 to deal with it. Adjust comments.
9708 (init_marker, attach_marker): New prototype.
9709 (unchain_marker): Adjust prototype.
9710 * marker.c (attach_marker): Change to global.
9711 (init_marker): New function.
9712 * alloc.c (Fmake_marker, build_marker): Use it.
9713 (build_marker): More easserts.
9714 (mark_object): Handle struct Lisp_Excursion.
9715 * editfns.c (save_excursion_save, save_excursion_restore):
9716 Reimplement to use struct Lisp_Excursion. Add comments.
9717
5eceb8fb
PE
97182012-07-26 Paul Eggert <eggert@cs.ucla.edu>
9719
9720 Fix export of symbols to GDB (Bug#12036).
9721 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
9722 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
9723 emacs.c, as this is a more-suitable home. Had this been done earlier
9724 the fix for 12036 would have avoided some of the problems noted in
9725 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
9726 would have been more obvious.
562157c8
PE
9727 * emacs.c: Do not include <verify.h>; no longer needed.
9728 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
9729 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
9730 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
9731 Remove; now done in lisp.h.
9732 * lisp.h (PUBLISH_TO_GDB): New macro.
9733 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
9734 (DATA_SEG_BITS): Use it.
9735 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
9736 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
9737 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
9738 not be usable in #if. This simplifies things.
9739
d6749401
JB
97402012-07-26 Juanma Barranquero <lekktu@gmail.com>
9741
9742 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
9743
1781b9e9
PE
97442012-07-26 Paul Eggert <eggert@cs.ucla.edu>
9745
d89518db 9746 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
9747 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
9748 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
9749 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
9750 Adjust to changes in lisp.h and emacs.c, by using
9751 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
9752 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
9753 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
9754 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
9755 instead of gdb_valbits.
9756 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
9757 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
9758 instead of gdb_array_mark_flag.
9759 (xboolvector): Get size from $->size, not $->header.size.
9760 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
9761 (xreload, hook-run, hookpost-run): Remove.
9762 * emacs.c: Include <verify.h>.
9763 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
9764 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
9765 Remove.
9766 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
9767 (gdb_USE_LSB_TAG): New enum constants.
9768 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
9769 Also define these as enum constants, so they're visible to GDB.
9770 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
9771 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
9772 as constants, so they're visible to GDB.
9773 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
9774 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
9775 Now enum constants, not macros, so they're visible to GDB.
9776 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
9777 more convenient now. All uses changed.
9778 (VALMASK) [USE_LSB_TAG]: Also define in this case.
9779 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
9780
3628596a
DA
97812012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
9782
9783 Explicitly free restriction data that are not needed anymore.
9784 * editfns.c (save_restriction_restore): Free restriction data.
9785
7abaf5cc
SM
97862012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
9787
9788 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
9789 add argument, tune behavior, and adjust all callers.
9790
71f88e00
PE
97912012-07-25 Paul Eggert <eggert@cs.ucla.edu>
9792
9793 Use typedef for EMACS_INT, EMACS_UINT.
9794 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
9795 than macros. This simplifies debugging in the usual case, since
9796 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
9797 and it allows expressions involving EMACS_INT casts.
9798 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
9799
57ec3034
JD
98002012-07-25 Jan Djärv <jan.h.d@swipnet.se>
9801
9802 * nsterm.m (ns_read_socket): Return early if there is a modal
9803 window (Bug#12043).
9804
8137e7b3
MR
98052012-07-25 Martin Rudalics <rudalics@gmx.at>
9806
9807 * frame.c (Fredirect_frame_focus): In doc-string don't mention
9808 that FOCUS-FRAME can be omitted.
9809
04e9897c
DA
98102012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
9811
9812 Adjust buffer text indirection counters at the end of Fkill_buffer.
9813 * buffer.c (Fkill_buffer): Adjust indirection counters when the
9814 buffer is definitely dead. This should really fix an issue reported
9815 by Christoph Scholtes again. (Bug#12007).
9816 (init_buffer_once): Initialize indirection counters of
9817 buffer_defaults and buffer_local_symbols (for sanity and safety).
9818
8a0484e1
EZ
98192012-07-24 Eli Zaretskii <eliz@gnu.org>
9820
9821 * xdisp.c (init_iterator): Don't compute dimensions of truncation
9822 and continuation glyphs on tooltip frames, leave them at zero.
9823 Avoids continued lines in tooltips. (Bug#11832)
9824
fa691a83
DA
98252012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
9826
9827 Simplify copy_overlay.
04e9897c 9828 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
9829 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
9830
436bc8e0
EZ
98312012-07-23 Eli Zaretskii <eliz@gnu.org>
9832
9833 * print.c (print_object): Don't crash when a frame's name is nil
9834 or invalid. (Bug#12025)
9835
9836 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
9837 it signals an error when a tooltip frame is being created.
9838
d7a7fda3
DA
98392012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
9840
9841 Cleanup miscellaneous objects allocation and initialization.
9842 * alloc.c (allocate_misc): Change to static. Add argument to
9843 specify the subtype. Adjust comment and users.
9844 (build_overlay): New function.
9845 * buffer.c (copy_overlays, Fmake_overlay): Use it.
9846 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
9847 (allocate_misc): Remove prototype.
9848 (build_overlay): Add prototype.
9849
98502012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
9851
9852 Swap buffer text indirection counters in Fbuffer_swap_text.
9853 * buffer.c (Fbuffer_swap_text): Swap indirections too.
9854 This avoids crash reported by Christoph Scholtes at
9855 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
9856
9d7fa573
JD
98572012-07-22 Jan Djärv <jan.h.d@swipnet.se>
9858
9859 * nsmenu.m (Popdown_data): New struct.
9860 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
9861 free Popdown_data.
9862 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
9863 (initWithContentRect): Make imgView and contentView non-static
9864 and autorelease them. Also autorelease img and matrix (Bug#12005).
9865 (dealloc): Remove (Bug#12005).
9866
0dd6d66d
DA
98672012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
9868
9869 Adjust consing_since_gc when objects are explicitly freed.
9870 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
9871 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
9872 (free_cons, free_misc): Subtract object size from consing_since_gc.
9873
d36d71df
DA
98742012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
9875
9876 Simplify and cleanup markers positioning code.
9877 * marker.c (attach_marker): More useful eassert.
9878 (live_buffer, set_marker_internal): New function.
9879 (Fset_marker, set_marker_restricted): Use set_marker_internal.
9880 (set_marker_both, set_marker_restricted_both): Use live_buffer.
9881
fb9ea40f
PE
98822012-07-22 Paul Eggert <eggert@cs.ucla.edu>
9883
9884 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
9885 as it's limited by the amount of memory, not by INT_MAX.
9886
2d5c5f7d
EZ
98872012-07-21 Eli Zaretskii <eliz@gnu.org>
9888
07fb592e
EZ
9889 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
9890 in special-event-map. See the discussion at
9891 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
9892 for the reasons.
9893
37a9eac8 9894 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
14ae4239
BT
9895 info.dwItemData. Fixes crashes on 64-bit Windows.
9896 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2d5c5f7d 9897
c4328746
JD
98982012-07-21 Jan Djärv <jan.h.d@swipnet.se>
9899
fc0c31f8 9900 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 9901 (conversationIdentifier): Return value is NSInteger.
784051c4 9902 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 9903
6e5d1c12
CY
99042012-07-21 Chong Yidong <cyd@gnu.org>
9905
9906 * window.c (decode_any_window): Signal an error if the window is
9907 on a dead frame (Bug#11984).
9908
9928463d
DA
99092012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9910
9911 Add indirection counting to speed up Fkill_buffer.
9912 * buffer.h (struct buffer): New member.
9913 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
9914 (Fmake_indirect_buffer): Set indirection counter to -1, increment
9915 base buffer indirection counter.
9916 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
9917 (Fkill_buffer): Adjust indirection counters as needed, don't walk
9918 through buffer list if indirection counter is 0.
9919
f8643a6b
DA
99202012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9921
9922 Extend the value returned by Fgarbage_collect with heap statistics.
9923 * alloc.c (Qheap): New symbol.
9924 (syms_of_alloc): DEFSYM it.
9925 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
9926 (Fmemory_free): Remove.
9927 (syms_of_alloc): Don't defsubr it.
9928 * buffer.c (Fcompact_buffer): Remove.
9929 (syms_of_buffer): Don't defsubr it.
9930
dac616ff
DA
99312012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9932
9933 Make maybe_gc inline.
9934 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
9935 * lisp.h (consing_since_gc, gc_relative_threshold)
9936 (memory_full_cons_threshold): Revert declaration.
9937 (maybe_gc): Remove prototype, define as inline.
9938 * alloc.c: Remove old commented-out code.
9939 (consing_since_gc, gc_relative_threshold)
9940 (memory_full_cons_threshold): Revert to global.
9941 (maybe_gc): Remove.
9942
d7ea76b4
DA
99432012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9944
9945 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
9946 * lisp.h (build_unibyte_string): New function.
9947 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
9948 * sysdep.c, w32fns.c, xfns.c: Use it.
9949 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
9950 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
9951 Adjust users accordingly.
9952 * font.h (font_open_by_name): Adjust prototype.
9953
765e61e3
DA
99542012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9955
9956 Cleanup calls to Fgarbage_collect.
9957 * lisp.h (maybe_gc): New prototype.
9958 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
9959 Remove declarations.
9960 * alloc.c (maybe_gc): New function.
9961 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
9962 Make them static.
9963 * bytecode.c (MAYBE_GC): Use maybe_gc.
9964 * eval.c (eval_sub, Ffuncall): Likewise.
9965 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
9966 to avoid dependency from auto-save feature.
9967
52b852c7
PE
99682012-07-19 Paul Eggert <eggert@cs.ucla.edu>
9969
9970 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
9971 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
9972 'for_each_per_buffer_object_at'.
9973 All uses changed. It's better to use upper-case for macros that
9974 cannot be implemented as functions, to give the reader a clue
9975 that they're special.
9976
5db81e33
SM
99772012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
9978
9979 * alloc.c (Fgarbage_collect): Tweak docstring.
9980
5b835e1d
DA
99812012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
9982
9983 Tweak the value returned from Fgarbage_collect again.
9984 * alloc.c (Fgarbage_collect): New return value, as confirmed in
9985 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
9986 Adjust documentation.
9987 (total_vector_bytes): Rename to total_vector_slots, adjust
9988 accounting.
9989 (total_free_vector_bytes): Rename to total_free_vector_slots,
9990 adjust accounting.
9991 (Qstring_bytes, Qvector_slots): New symbols.
9992 (syms_of_alloc): DEFSYM them.
9993
9cd47b72
DA
99942012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
9995
9996 Buffer compaction primitive which may be used from Lisp.
9997 * buffer.c (compact_buffer, Fcompact_buffer): New function.
9998 (syms_of_buffer): Register Fcompact_buffer.
9999 * alloc.c (Fgarbage_collect): Use compact_buffer.
10000 * buffer.h (compact_buffer): New prototype.
10001 (struct buffer_text): New member.
10002
d17337e5
DA
100032012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
10004
10005 New macro to iterate over all buffers, miscellaneous cleanups.
10006 * lisp.h (all_buffers): Remove declaration.
10007 * buffer.h (all_buffers): Add declaration, with comment.
10008 (for_each_buffer): New macro.
10009 * alloc.c (Fgarbage_collect, mark_object): Use it.
10010 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
10011 (init_buffer): Likewise.
10012 * data.c (Fset_default): Likewise.
10013 * coding.c (code_conversion_restore): Remove redundant check
10014 for dead buffer.
10015 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
10016
60cfd278
AS
100172012-07-18 Andreas Schwab <schwab@linux-m68k.org>
10018
10019 Fix bug that created negative-length intervals.
10020 * intervals.c (merge_interval_right, merge_interval_left):
10021 Do not zero out this interval if it is absorbed by its children,
10022 as this interval's total length doesn't change in that case. See
10023 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
10024
d06714cb
PE
100252012-07-18 Paul Eggert <eggert@cs.ucla.edu>
10026
83713154
PE
10027 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
10028 when invoking (make-bool-vector N t) and N is a positive
10029 multiple of 8 -- the last 8 bits were mistakenly cleared.
10030
d06714cb
PE
10031 Remove some struct layout assumptions in bool vectors.
10032 * alloc.c (bool_header_size): New constant.
10033 (header_size, word_size): Move earlier, as they're now used earlier.
10034 Use 'word_size' in a few more places, where it's appropriate.
10035 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
10036 padding before the data member of a bool vector.
10037 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
10038 than doing the check by hand with an abort ().
10039
464d5a5e
SM
100402012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
10041
5fbc0409
SM
10042 * eval.c (Fdefvar): Don't check constants since we only set the var if
10043 it's not yet defined anyway (bug#11904).
10044
464d5a5e
SM
10045 * lisp.h (last_undo_boundary): Declare new var.
10046 * keyboard.c (command_loop_1): Set it.
10047 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
10048 were auto-added by the command loop (bug#11774).
10049
8dc2e44a
AS
100502012-07-18 Andreas Schwab <schwab@linux-m68k.org>
10051
10052 * w32font.c (Qsymbol): Remove local definition.
10053 (syms_of_w32font): Don't DEFSYM it.
10054
169925ec
DA
100552012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
10056
10057 Fix sweep_vectors to handle large bool vectors correctly.
10058 * alloc.c (sweep_vectors): Account total_vector_bytes for
10059 bool vectors larger than VBLOCK_BYTES_MAX.
10060
5fbfb018
CY
100612012-07-18 Chong Yidong <cyd@gnu.org>
10062
10063 * frame.c (x_set_frame_parameters): Revert bogus change introduced
10064 in 2012-05-25 commit by Paul Eggert (Bug#11738).
10065
3ab6e069
DA
100662012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
10067
10068 Return more descriptive data from Fgarbage_collect.
10069 Suggested by Stefan Monnier in
10070 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
10071 * alloc.c (bounded_number): New function.
10072 (total_buffers, total_vectors): New variable.
10073 (total_string_size): Rename to total_string_bytes, adjust users.
10074 (total_vector_size): Rename to total_vector_bytes, adjust users.
10075 (sweep_vectors): Account total_vectors and total_vector_bytes.
10076 (Fgarbage_collect): New return value. Adjust documentation.
10077 (gc_sweep): Account total_buffers.
10078 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
10079 (VECTOR_SIZE): Remove.
10080 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
10081 (Qinterval, Qmisc): New symbols.
10082 (syms_of_data): Initialize them.
10083 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
10084 (Qcons, Qbuffer): New declarations.
10085
6d02fe5b
PE
100862012-07-17 Paul Eggert <eggert@cs.ucla.edu>
10087
10088 * alloc.c (Fmemory_free): Account for memory-free's own storage.
10089 Round up, not down. Improve doc.
10090
b7ffe040
DA
100912012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10092
10093 Restore old code in allocate_string_data to avoid Faset breakage.
10094 Reported by Julien Danjou <julien@danjou.info> in
10095 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
10096 * alloc.c (allocate_string_data): Restore old code with minor
10097 adjustments, fix comment to explain this subtle issue.
10098
4dc7c8d5
SM
100992012-07-17 Eli Zaretskii <eliz@gnu.org>
10100
10101 Remove FILE_SYSTEM_CASE.
10102 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
10103
10104 * fileio.c (FILE_SYSTEM_CASE): Don't define.
10105 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
10106 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
10107 call-process-region passes it through expand-file-name.
10108
10109 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
10110
101112012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10112
10113 Fix crash when creating indirect buffer (Bug#11917)
10114 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
10115 Don't handle unbound variables specially if non-zero.
10116 (Fbuffer_local_variables): Pass zero.
10117 (clone_per_buffer_values): Pass non-zero.
10118
101192012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10120
10121 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
10122 to make the loop interruptible.
10123
101242012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10125
10126 * gnutls.c (emacs_gnutls_handshake): Only retry if
10127 GNUTLS_E_INTERRUPTED.
10128
cce7fefc
DA
101292012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10130
10131 Cleanup and convert miscellaneous checks to eassert.
10132 * alloc.c (mark_interval): Fix comment, partially rephrase
10133 old comment from intervals.h (see below).
10134 * intervals.c (find_interval, adjust_intervals_for_insertion)
10135 (delete_interval, adjust_intervals_for_deletion)
10136 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
10137 Convert to eassert.
10138 (adjust_intervals_for_insertion, make_new_interval):
10139 Remove obsolete and unused code.
10140 * intervals.h (struct interval): Remove obsolete comment.
10141 * textprotp.c (erase_properties): Remove unused code.
10142 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
10143 (Fremove_list_of_text_properties): Convert to eassert.
10144
9ea10cc3
CY
101452012-07-17 Chong Yidong <cyd@gnu.org>
10146
10147 * editfns.c (Finsert_char): Doc fix.
10148
3900d5de
DA
101492012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10150
10151 Fix previous change to make Fmemory_free always accurate.
10152 * alloc.c (make_interval): Update total_free_intervals.
10153 (make_float): Likewise for total_free_floats.
10154 (free_cons, Fcons): Likewise for total_free_conses.
10155 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
10156 Likewise for total_free_vector_bytes.
10157 (Fmake_symbol): Likewise for total_free_symbols.
10158 (bytes_free): Remove.
10159
7098646f
DA
101602012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10161
10162 Simple free memory accounting feature.
10163 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
10164 (sweep_vectors): Accumulate size of free vectors.
10165 (Fgarbage_collect): Setup bytes_free.
10166 (Fmemory_free): New function.
10167 (syms_of_alloc): Register it.
10168
22657b40
DA
101692012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10170
10171 Cleanup overlays checking.
10172 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
10173 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
10174 eassert and OVERLAYP.
10175 (sort_overlays): Change to use OVERLAYP.
10176
ddfc8813
RK
101772012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
10178
10179 * editfns.c (Finsert_char): Make it interactive, and make the
10180 second arg optional. Copy interactive spec and docstring from
10181 ucs-insert.
10182
7c26cf3c
PE
101832012-07-17 Paul Eggert <eggert@cs.ucla.edu>
10184
10185 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
10186 Unlike the other wrapped functions, fabs has an unspecified
10187 effect on errno.
10188
5d127af9
JD
101892012-07-16 Jan Djärv <jan.h.d@swipnet.se>
10190
10191 * nsterm.m (keyDown): Interpret flags without left/right bits
10192 as the left key (Bug#11670).
10193
6a0dd1d7
DA
101942012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
10195
10196 Remove empty and useless init functions.
10197 * lisp.h (init_character_once, init_fns, init_image)
10198 (init_filelock, init_sound): Remove prototype.
10199 * character.c (init_character_once): Remove.
10200 * filelock.c (init_filelock): Likewise.
10201 * fns.c (init_fns): Likewise.
10202 * image.c (init_image): Likewise.
10203 * sound.c (init_sound): Likewise.
10204 * emacs.c (main): Adjust accordingly.
10205
7a6136fd
DA
102062012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
10207
10208 * gtkutil.h: Tiny cleanups.
10209 (use_old_gtk_file_dialog): Remove useless declaration.
10210 (xg_uses_old_file_dialog): Add suggested const attribute.
10211
ce811ad9
EZ
102122012-07-15 Eli Zaretskii <eliz@gnu.org>
10213
10214 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
10215 (bidi_paragraph_init): Use it to limit search forward for a strong
10216 directional character in abnormally large paragraphs full of
10217 neutral or weak characters. (Bug#11943)
10218
c9adfeaa
SF
102192012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
10220
10221 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
10222 the toolbar (Bug#9451).
10223 (xg_make_tool_item): Give the widget event box a transparent
10224 background.
10225
fff62aa9
DA
102262012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
10227
10228 Cleanup basic allocation variables and functions.
10229 * alloc.c (ignore_warnings, init_intervals, init_float)
10230 (init_cons, init_symbol, init_marker): Remove.
10231 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
10232 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
10233 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
10234 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
10235 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
10236 (staticidx, init_alloc_once, init_strings, free_ablock):
10237 Remove redundant initialization.
10238 * fns.c (init_weak_hash_tables): Remove.
10239 * lisp.h (init_weak_hash_tables): Remove prototype.
10240
9730daca
DA
102412012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
10242
10243 Use zero_vector where appropriate.
10244 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
10245 accordingly.
10246 * lisp.h (zero_vector): New declaration.
10247 * font.c (null_vector): Remove.
10248 (syms_of_font): Remove initialization and staticpro.
10249 (font_list_entities, font_find_for_lface): Change to use zero_vector.
10250 * keymap.c (Faccessible_keymaps): Likewise.
10251
2e2d2a13
LL
102522012-07-15 Leo Liu <sdl.web@gmail.com>
10253
10254 * fringe.c: Fix typo in comments.
10255
cd276f6e
LL
102562012-07-14 Leo Liu <sdl.web@gmail.com>
10257
10258 * fringe.c: Add a new bitmap exclamation-mark.
10259
5a1131d9
EZ
102602012-07-14 Eli Zaretskii <eliz@gnu.org>
10261
10262 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
10263
10264 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
10265 (HAVE_MENUS): Don't define, defined by editing config.in with
10266 msdos/sed2v2.inp.
10267 (GMALLOC_INHIBIT_VALLOC): Don't define.
10268 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
10269
22e983b7
JB
102702012-07-14 Juanma Barranquero <lekktu@gmail.com>
10271
10272 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
10273
5b3f250f
GM
102742012-07-14 Glenn Morris <rgm@gnu.org>
10275
10276 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
10277 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
10278 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
10279
33d63ff4
GM
102802012-07-13 Glenn Morris <rgm@gnu.org>
10281
5b633342
GM
10282 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
10283
33d63ff4
GM
10284 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
10285 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
10286
b55b9f85
JD
102872012-07-13 Jan Djärv <jan.h.d@swipnet.se>
10288
0dc8cf50
JD
10289 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
10290 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
10291 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
10292 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
10293 where appropriate.
10294 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
10295 as boolean expression.
10296 (x_set_window_size): Remove unused variable toolbar.
10297 (ns_get_color_default, ns_mod_to_lisp): Remove.
10298 (ns_mouse_position): Remove unused variables xchar and ychar.
10299 (ns_compute_glyph_string_overhangs): Remove unused variable face.
10300 (ns_set_vertical_scroll_bar): Remove unused variable count.
10301 (ns_delete_terminal): Remove unused variable i.
10302 (ns_term_init): Remove unused variables r, g and b.
10303 (mouseDown): Remove unused variable window.
10304 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
10305 (initFrameFromEmacs): Remove unused variable vbextra.
10306 (mouseEntered): Remove unused variables p and dpyinfo.
10307 (mouseExited): Remove unused variables p and r.
10308 (ns_define_frame_cursor, ns_clear_frame_area)
10309 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
10310 (menuDown): Assign [sender tag] to variable and cast the variable.
10311
10312 * nsterm.h (menuDown): Add id as type to argument sender.
10313 (ns_display_info_for_name): Add Lisp_Object argument.
10314 (ns_term_init): Add Lisp_Object argument.
10315 (ns_map_event_to_object): Add void argument.
10316 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
10317 prototype with arguments and only declare if __OBJC__.
10318 (nxatoms_of_nsselect): Add void argument.
10319 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
10320 (ns_alloc_autorelease_pool): Add void argument.
10321 (ns_release_autorelease_pool): Add void* argument.
10322 (ns_get_defaults_value): Add const char* argument.
10323
10324 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
10325 (initFromContents): Use SSDATA where appropriate.
10326 (ns_update_menubar): Add braces to ambigous if-else.
10327 (initWithTitle): Put () around assignment in if statement.
10328 (ns_menu_show): Remove unused variables window and keymap.
10329 (update_frame_tool_bar): Remove unused variable selected_p.
10330 (initWithContentRect): Remove unused variable this_cmd_name.
10331
10332 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
10333 appropriate.
10334 (setXBMColor): Remove unused variable len.
10335 (setPixmapData): Put () around assignment in loop statement.
10336
10337 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
10338 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
10339 where appropriate.
10340 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
10341 around assignment in loop statement.
10342 (nsfont_open): Remove unused variable i.
10343 (nsfont_open): Remove unused variable len.
10344 (nsfont_draw): Remove unused variable cs.
10345
10346 * nsfns.m (x_set_icon_name, ns_set_name_internal)
10347 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
10348 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
10349 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
10350 (Fns_font_name, Fns_perform_service)
10351 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
10352 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
10353 (ns_set_name): Remove unused variable view.
10354 (x_set_menu_bar_lines): Remove unused variable olines.
10355 (x_set_tool_bar_lines): Remove unused variable root_window.
10356 (Fns_list_colors): Put () around assignment in while statement.
10357 (Fns_perform_service): Remove unused variable len.
10358 (Fns_display_usable_bounds): Remove unused variable top.
10359 (syms_of_nsfns): Remove unused variable i.
10360
b55b9f85
JD
10361 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
10362 memcpy (Bug#11907).
10363
ed9265fc 103642012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
10365
10366 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
10367 and free it with DestroyExceptionInfo (Bug#11558).
10368
ef099b57
JB
103692012-07-13 Juanma Barranquero <lekktu@gmail.com>
10370
10371 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
10372 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
10373 Set here, not in nt/config.nt.
10374
ea814a5d
EZ
103752012-07-13 Eli Zaretskii <eliz@gnu.org>
10376
10377 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
10378 cursor overflow into the last glyph on display line when the right
10379 fringe is off. (Bug#11832)
10380
1a952767
PE
103812012-07-13 Paul Eggert <eggert@cs.ucla.edu>
10382
10383 * xdisp.c (produce_special_glyphs): Now static.
10384 * dispextern.h (produce_special_glyphs): Remove decl.
10385
983188fd
GM
103862012-07-13 Glenn Morris <rgm@gnu.org>
10387
8d7c7eed 10388 * s/bsd-common.h, s/cygwin.h: Remove empty files.
32fb4bb6
GM
10389 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
10390
983188fd
GM
10391 * s/usg5-4-common.h (USG, USG5):
10392 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
10393 * s/sol2-6.h (SOLARIS2):
10394 * s/irix6-5.h (IRIX6_5):
10395 * s/hpux10-20.h (USG, USG5, HPUX):
10396 * s/gnu-linux.h (USG, GNU_LINUX):
10397 * s/freebsd.h (BSD_SYSTEM):
10398 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
10399 * s/cygwin.h (CYGWIN):
10400 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
10401 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
10402
d1e68667 104032012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
10404
10405 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 10406
6de0e799
GM
104072012-07-13 Glenn Morris <rgm@gnu.org>
10408
739ae010
GM
10409 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
10410
dbee5793
GM
10411 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
10412
6de0e799
GM
10413 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
10414 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
10415
b82da769
GM
104162012-07-12 Glenn Morris <rgm@gnu.org>
10417
4fae5a7a 10418 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
10419
10420 * process.c (init_process_emacs): Rename from init_process.
10421 The old name is also the name of a Mach system call.
10422 * lisp.h, emacs.c: Update for this name change.
10423 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
10424 longer needed.
10425
5a979817
EZ
104262012-07-12 Eli Zaretskii <eliz@gnu.org>
10427
10428 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
10429 memmove call that removes glyphs covered by the left truncation
10430 glyph. Improve commentary.
10431 (display_line): Fix display of continuation glyphs on GUI frames
10432 when the right fringe is turned off and variable-size fonts are
10433 used in the window. Move the code that appends a stretch glyph to
10434 produce_special_glyphs, so that it could be used for truncation
10435 and continuation glyphs alike.
10436 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
10437 glyph of a suitably computed width, to align the special glyphs at
10438 the window margin. Code moved from display_line. (Bug#11832)
10439
3e91a053
GM
104402012-07-12 Glenn Morris <rgm@gnu.org>
10441
ba9e4b84
GM
10442 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
10443
10444 * s/gnu-linux.h, s/hpux10-20.h:
10445 Do not unconditionally define HAVE_XRMSETDATABASE.
10446
3e91a053
GM
10447 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
10448
b300b1f4
PE
104492012-07-12 Paul Eggert <eggert@cs.ucla.edu>
10450
10451 Fix typos that broke OS X build.
10452 Reported by Randal L. Schwartz in
10453 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
10454 * nsterm.m (ns_timeout): Add missing local decl.
10455 (ns_get_color): snprintf -> sprintf, to fix typo.
10456
6e777848
GM
104572012-07-12 Glenn Morris <rgm@gnu.org>
10458
3f922c37
GM
10459 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
10460 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
10461 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
10462 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
10463
0ab7b23a
GM
10464 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
10465 Move PTY_OPEN to configure.
10466
6e777848
GM
10467 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10468 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
10469 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
10470
4a7edc24
DA
104712012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
10472
10473 Use empty_unibyte_string where applicable.
10474 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
10475 * lread.c (read1): Likewise.
10476 * xsettings.c (syms_of_xsettings): Likewise.
10477
308aab79
GM
104782012-07-12 Glenn Morris <rgm@gnu.org>
10479
42bd1719
GM
10480 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
10481 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
10482 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
10483 * s/hpux10-20.h (RUN_TIME_REMAP):
10484 * s/bsd-common.h (TABDLY): Move to configure.
10485
10486 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
10487
10488 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
10489
ea0bbd17 10490 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 10491 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
10492
10493 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 10494
308aab79
GM
10495 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
10496 * s/template.h: Move NARROWPROTO to configure.
10497
ee1cf5cf
GM
104982012-07-11 Glenn Morris <rgm@gnu.org>
10499
30fe9bf4
GM
10500 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
10501 unused since 2011-01-17 change to systty.h.
10502
ee1cf5cf
GM
10503 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
10504 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
10505 Move HAVE_PTYS and HAVE_SOCKETS to configure.
10506
63e47e07
PE
105072012-07-11 Paul Eggert <eggert@cs.ucla.edu>
10508
10509 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
10510
c43fb4c3
GM
105112012-07-11 Glenn Morris <rgm@gnu.org>
10512
10513 * s/darwin.h, s/gnu-linux.h, s/template.h:
10514 Move INTERRUPT_INPUT to configure.
10515
e8df9267
DA
105162012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10517
10518 Minor adjustments to interning code.
10519 * lisp.h (intern, intern_c_string): Redefine as static inline
10520 wrappers for intern_1 and intern_c_string_1, respectively.
10521 (intern_1, intern_c_string_1): Rename prototypes.
14ae4239
BT
10522 * lread.c (intern_1, intern_c_string_1, oblookup):
10523 Simplify Vobarray checking.
e8df9267
DA
10524 * font.c (font_intern_prop): Likewise. Adjust comment.
10525 * w32font.c (intern_font_name): Likewise.
10526
34348bd4
AS
105272012-07-11 Andreas Schwab <schwab@linux-m68k.org>
10528
d96a1e0c
AS
10529 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
10530
34348bd4
AS
10531 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
10532 of Fcar/Fcdr if possible.
10533 * font.c (check_otf_features): Likewise.
10534 * fontset.c (Fnew_fontset): Likewise.
10535 * gnutls.c (Fgnutls_boot): Likewise.
10536 * minibuf.c (read_minibuf): Likewise.
10537 * msdos.c (IT_set_frame_parameters): Likewise.
10538 * xmenu.c (Fx_popup_dialog): Likewise.
10539 * w32menu.c (Fx_popup_dialog): Likewise.
10540
c8add24e
GM
105412012-07-11 Glenn Morris <rgm@gnu.org>
10542
4b575b3c
GM
10543 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
10544 since nothing has defined it on these platforms.
10545
09f4e3b0
GM
10546 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
10547 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
10548
172bedef
GM
10549 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10550 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
10551 Move CLASH_DETECTION to configure.
10552
249685df
GM
10553 * s/gnu.h: Remove file, which is now empty.
10554
c8add24e
GM
10555 * s/gnu.h, s/gnu-linux.h:
10556 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
10557
b41253a3
JW
105582012-07-11 John Wiegley <johnw@newartisans.com>
10559
10560 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
10561 function attribute, so we only use it if it exists in the
10562 compiler.
10563
d923b542
DA
105642012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10565
10566 Avoid call to strlen in fast_c_string_match_ignore_case.
10567 * search.c (fast_c_string_match_ignore_case): Change to use
10568 length argument. Adjust users accordingly.
10569 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
10570
5ebbef1d
PE
105712012-07-11 Paul Eggert <eggert@cs.ucla.edu>
10572
bb352260
PE
10573 Assume mkdir, rmdir.
10574 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
10575 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
10576
57054ddd
PE
10577 Assume rename.
10578 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
10579
b747d3f7
PE
10580 Assume perror.
10581 * s/hpux10-20.h (HAVE_PERROR): Remove.
10582 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
10583 Remove dummy definition, as this problem was obsolete long ago.
10584
5ebbef1d
PE
10585 Assume strerror.
10586 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
10587
984e7f30
DA
105882012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10589
10590 Avoid calls to strlen in font processing functions.
10591 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
14ae4239
BT
10592 (font_open_by_name): Change to use length argument.
10593 Adjust users accordingly.
d923b542
DA
10594 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
10595 Adjust prototypes.
10596 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
10597 Change to return ptrdiff_t.
984e7f30
DA
10598 (xfont_list_pattern, xfont_match): Use length returned by
10599 xfont_decode_coding_xlfd.
10600 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
10601
20e94fdd
GM
106022012-07-11 Glenn Morris <rgm@gnu.org>
10603
9d596af3
GM
10604 * s/darwin.h, s/freebsd.h, s/netbsd.h:
10605 Move DONT_REOPEN_PTY to configure.
10606
20e94fdd
GM
10607 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
10608 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
10609
e99a530f
PE
106102012-07-10 Paul Eggert <eggert@cs.ucla.edu>
10611
22ffb973
PE
10612 Remove "#define unix" that is no longer needed (Bug#11905).
10613 * s/aix4-2.h (unix): Remove; no longer needed.
10614
e9a9ae03
PE
10615 EMACS_TIME simplification (Bug#11875).
10616 This replaces macros (which typically do not work in GDB)
10617 with functions, typedefs and enums, making the code easier to debug.
10618 The functional style also makes code easier to read and maintain.
10619 * systime.h: Include <sys/time.h> on all hosts, not just if
10620 WINDOWSNT, since 'struct timeval' is needed in general.
10621 (EMACS_TIME): Now a typedef, not a macro.
10622 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
10623 not macros.
10624 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
10625 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
10626 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
10627 (EMACS_TIME_LE): Now functions, not macros.
10628 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
10629 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
10630 which are not functions. All uses rewritten to use:
10631 (make_emacs_time): New function.
10632 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
10633 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
10634 not functions. All uses rewritten to use the following, respectively:
10635 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
10636 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 10637 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
10638 * fileio.c (Fcopy_file):
10639 * xterm.c (XTflash): Get the current time closer to when it's used.
10640 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
10641
ffacb126
PE
10642 * bytecode.c (targets): Suppress -Woverride-init warnings.
10643
e99a530f
PE
10644 Simplify by avoiding confusing use of strncpy etc.
10645 * doc.c (Fsnarf_documentation):
10646 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
10647 * frame.c (Fmake_terminal_frame):
10648 * gtkutil.c (get_utf8_string):
10649 * lread.c (openp):
10650 * nsmenu.m (ns_update_menubar):
10651 * regex.c (regerror):
10652 Prefer memcpy to strncpy and strncat when either will do.
10653 * fileio.c (Fsubstitute_in_file_name):
10654 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
10655 (menu_separator_name_p):
10656 * nsmenu.m (ns_update_menubar):
10657 Prefer memcmp to strncmp when either will do.
10658 * nsterm.m: Include <ftoastr.h>.
10659 (ns_get_color):
10660 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
10661 Prefer snprintf to strncpy.
10662 * nsterm.m (ns_term_init):
10663 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
10664 * nsterm.m (ns_term_init):
10665 Avoid the need for strncpy, by using build_string or
10666 make_unibyte_string directly. Use dtoastr, not snprintf.
10667 * process.c (Fmake_network_process): Diagnose service names that
10668 are too long, rather than silently truncating them or creating
10669 non-null-terminated names.
10670 (Fnetwork_interface_info): Likewise, for interface names.
10671 * sysdep.c (system_process_attributes) [GNU_LINUX]:
10672 Prefer sprintf to strncat.
10673 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
10674 Prefer vsnprintf to vsprintf + strncpy.
10675
c59592b3
GM
106762012-07-10 Glenn Morris <rgm@gnu.org>
10677
10678 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
10679 Clarify fallback case.
10680
7d7bbefd
DA
106812012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10682
10683 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
10684 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
10685 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 10686 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
10687 where argument type is known to be a Lisp_Cons.
10688
3a4c8000
TT
106892012-07-10 Tom Tromey <tromey@redhat.com>
10690
10691 * bytecode.c (BYTE_CODE_THREADED): New macro.
10692 (BYTE_CODES): New macro. Replaces all old byte-code defines.
10693 (enum byte_code_op): New type.
10694 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
10695 (exec_byte_code): Use them. Use token threading when applicable.
10696
2a0213a6
DA
106972012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10698
10699 Optimize pure C strings initialization.
10700 * lisp.h (make_pure_string): Fix prototype.
10701 (build_pure_c_string): New function, defined as static inline. This
10702 provides a better opportunity to optimize away calls to strlen when
10703 the function is called with compile-time constant argument.
10704 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
10705 argument, adjust users accordingly. Use build_pure_c_string where
10706 appropriate.
10707 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
10708 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
10709 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
10710
cb1caeaf
DA
107112012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10712
10713 Avoid calls to strlen in miscellaneous functions.
10714 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
10715 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
10716 * lread.c (openp): Likewise.
10717
c293e30c
DA
107182012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10719
10720 Avoid calls to strlen in path processing functions.
10721 * fileio.c (file_name_as_directory): Add comment. Change to add
10722 srclen argument and return the length of result. Adjust users
10723 accordingly.
10724 (directory_file_name): Fix comment. Change to add srclen argument,
14ae4239
BT
10725 swap 1st and 2nd arguments to obey the common convention.
10726 Adjust users accordingly.
c293e30c
DA
10727 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
10728
9e059e3f
GM
107292012-07-10 Glenn Morris <rgm@gnu.org>
10730
d02eb359
GM
10731 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
10732 Move PENDING_OUTPUT_COUNT definition to configure.
10733
882cf227
GM
10734 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
10735 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
10736 * s/gnu.h (DATA_START): Move definitions to configure.
10737
af6e839f
GM
10738 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
10739 We include usg5-4-common.h, which defines them both.
10740
40289a12
GM
10741 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
10742 O_RDONLY already includes it).
10743
9e059e3f
GM
10744 Stop ns builds setting the EMACSLOADPATH environment variable.
10745 * nsterm.m (ns_load_path): Rename from ns_init_paths.
10746 Now it does not set EMACSLOADPATH, just returns the load-path string.
10747 * nsterm.h: Update accordingly.
10748 * lread.c [HAVE_NS]: Include nsterm.h.
10749 (init_lread) [HAVE_NS]: Use ns_load_path.
10750 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
10751
7c4e8ec0
GM
107522012-07-09 Glenn Morris <rgm@gnu.org>
10753
d4f600ff
GM
10754 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
10755 since the included bsd-common.h does so.
10756
cbb31951
GM
10757 Stop ns builds setting the EMACSPATH environment variable.
10758 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
10759 (ns_init_paths): Do not set EMACSPATH.
10760 * nsterm.h (ns_exec_path): Add it.
10761 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
10762 Use ns_exec_path.
10763
7c4e8ec0
GM
10764 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
10765
26bccfae
PE
107662012-07-09 Paul Eggert <eggert@cs.ucla.edu>
10767
a0bee46f
PE
10768 * process.c (wait_reading_process_output): 'waitchannels' was unset
10769 when read_kbd || !NILP (wait_for_cell); fix this.
10770
5994c183
PE
10771 Add GCC-style 'const' attribute to functions that can use it.
10772 * character.h (char_resolve_modifier_mask):
10773 * keyboard.h (make_ctrl_char):
10774 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
10775 (init_character_once, next_almost_prime, init_fns, init_image)
10776 (flush_pending_output, init_sound):
10777 * mem-limits.h (start_of_data):
10778 * menu.h (finish_menu_items):
10779 Add ATTRIBUTE_CONST.
10780 * emacs.c (DEFINE_DUMMY_FUNCTION):
10781 Declare the dummy function with ATTRIBUTE_CONST.
10782 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
10783 Add decls with ATTRIBUTE_CONST.
10784
26bccfae
PE
10785 Minor improvements to make_formatted_string.
10786 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
10787 where int is good enough, as vsprintf returns an int.
10788 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
10789
a8290ec3
DA
107902012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
10791
10792 Use make_formatted_string to avoid double length calculation.
10793 * lisp.h (make_formatted_string): New prototype.
10794 * alloc.c (make_formatted_string): New function.
10795 * buffer.c (Fgenerate_new_buffer_name): Use it.
220cb2bd 10796 * dbusbind.c (syms_of_dbusbind): Likewise.
a8290ec3
DA
10797 * editfns.c (Fcurrent_time_zone): Likewise.
10798 * filelock.c (get_boot_time): Likewise.
10799 * frame.c (make_terminal_frame, set_term_frame_name)
10800 (x_report_frame_params): Likewise.
10801 * image.c (gs_load): Likewise.
10802 * minibuf.c (get_minibuffer): Likewise.
10803 * msdos.c (dos_set_window_size): Likewise.
10804 * process.c (make_process): Likewise.
10805 * xdisp.c (ensure_echo_area_buffers): Likewise.
10806 * xsettings.c (apply_xft_settings): Likewise.
10807
d01ba2f1
GM
108082012-07-09 Glenn Morris <rgm@gnu.org>
10809
10810 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
10811 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
10812 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
10813 * nsterm.h (ns_etc_directory): Add it.
10814 * callproc.c [HAVE_NS]: Include nsterm.h.
10815 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
10816
f1f924b6
DA
108172012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
10818
10819 Move marker debugging code under MARKER_DEBUG.
10820 * marker.c (MARKER_DEBUG): Move marker debugging code under
10821 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
10822 for bootstrap with --enable-checking (~3x slowdown reported
10823 by Juanma Barranquero <lekktu@gmail.com>).
10824 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
10825
ab531b66
PE
108262012-07-08 Paul Eggert <eggert@cs.ucla.edu>
10827
10828 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
10829 See <http://bugs.gnu.org/11825#29>.
10830
c4b3bc8a
EZ
108312012-07-08 Eli Zaretskii <eliz@gnu.org>
10832
10833 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
10834 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
10835 (display_line): Add commentary about displaying truncation glyphs
10836 on GUI frames.
10837 (produce_special_glyphs): Move here from term.c.
10838
10839 * term.c (produce_special_glyphs): Move to xdisp.c.
10840
10841 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
10842 section.
c4b3bc8a 10843
b676b881
AS
108442012-07-07 Andreas Schwab <schwab@linux-m68k.org>
10845
f17c5273
AS
10846 * xdisp.c (display_line): Avoid warning about implicit declaration
10847 of FRAME_FONT.
10848
298819b9
AS
10849 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
10850
b676b881
AS
10851 * lisp.h: Remove empty conditional.
10852
6045c4fd
PE
108532012-07-07 Paul Eggert <eggert@cs.ucla.edu>
10854
b3350bf9
PE
10855 * lread.c (load_path_check): Now static.
10856
6045c4fd
PE
10857 Fix some minor --with-ns problems found by static checking.
10858 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
10859 (x_set_font) [!HAVE_X_WINDOWS]:
10860 * image.c (xpm_load_image) [HAVE_NS]:
10861 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
10862 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
10863 Remove unused local.
10864 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
10865 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
10866 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
10867 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
10868 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
10869 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
10870 Fix pointer signedness problem.
10871 * xfaces.c (FRAME_X_FONT_TABLE):
10872 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
10873
929e7845
GM
108742012-07-07 Glenn Morris <rgm@gnu.org>
10875
10876 * lread.c (load_path_check): New function, split from init_lread.
10877 (init_lread): Reorganize. Motivation:
10878 If EMACSLOADPATH is set, check/warn about that rather than the
10879 defaults, which we are not going to use. Hence we can remove
10880 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
10881 Don't warn if site-lisp directories are missing.
10882 If not installed, start from a blank load-path, since
10883 PATH_LOADSEARCH refers to the eventual installation directories.
10884
58dd0aa4
EZ
108852012-07-07 Eli Zaretskii <eliz@gnu.org>
10886
10887 Support truncation and continuation glyphs on GUI frames, when
10888 fringes are disabled. (Bug#11832)
10889 * xdisp.c (init_iterator): Get dimensions of truncation and
14ae4239
BT
10890 continuation glyphs even if on GUI frames.
10891 Adjust it->last_visible_x on GUI frames when the left or right fringes,
58dd0aa4
EZ
10892 or both, are absent.
10893 (start_display, move_it_in_display_line_to): Handle the case of a
10894 GUI frame without a fringe to display continuation or truncation
10895 glyphs.
10896 (insert_left_trunc_glyphs): Support GUI frames: make sure
10897 truncation glyphs overwrite enough glyphs from the current line to
10898 have sufficient space in pixels.
10899 (display_line): Support truncation and continuation glyphs on GUI
10900 frames. If some spare pixels are left on the line after inserting
10901 the truncation glyphs, fill that space with a stretch glyph of a
10902 suitably computed width.
10903
10904 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
10905 produce_glyphs, to support GUI sessions.
10906
31571fd7
PE
109072012-07-07 Paul Eggert <eggert@cs.ucla.edu>
10908
5a16b9bc
PE
10909 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
10910
f3047c75
PE
10911 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
10912
31571fd7
PE
10913 Do not require float-time's arg to fit in time_t (Bug#11825).
10914 This works better on hosts where time_t is unsigned, and where
10915 float-time is applied to the (negative) difference between two times.
10916 * editfns.c (decode_time_components): Last arg is now double *,
10917 not int *, and means to store all the result as a double, without
10918 worrying about whether the seconds part fits in time_t.
10919 All callers changed.
10920 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
10921 All callers changed.
10922 (Ffloat_time): Do not fail merely because the specified time falls
10923 outside of time_t range.
10924
4516fbef
GM
109252012-07-07 Glenn Morris <rgm@gnu.org>
10926
10927 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
10928 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
10929 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
10930
07adc2c6
JB
109312012-07-07 Juanma Barranquero <lekktu@gmail.com>
10932
10933 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
10934 Update dependencies.
10935
10936 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
10937
fd573f31
PE
109382012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10939
fee5959d
PE
10940 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
10941 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
10942 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
10943 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
10944 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
10945 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
10946
fd573f31
PE
10947 * xfont.c (compare_font_names): Redo to omit the need for casts.
10948
ddadbc0e
AS
109492012-07-06 Andreas Schwab <schwab@linux-m68k.org>
10950
fca8d6b6
AS
10951 * xfns.c (Fx_change_window_property): Doc fix.
10952 * w32fns.c (Fx_change_window_property): Doc fix.
10953
ddadbc0e
AS
10954 * w32fns.c (Fx_window_property): Accept the same arguments as the
10955 X Windows version. Doc fix.
10956 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
10957
ed9265fc 109582012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
10959 Eli Zaretskii <eliz@gnu.org>
10960
10961 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
10962 Windows-specific code from nt/config.nt moved here.
10963 Obsolete settings removed.
10964
216ee680
PE
109652012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10966
10967 * process.c: Avoid unnecessary calls to gettime.
10968 (wait_reading_process_output): Don't get the time of day
10969 when gobbling data immediately and not waiting, as there's no need
10970 for it in that case. This removes a FIXME.
10971
bdd091e4
JD
109722012-07-06 Jan Djärv <jan.h.d@swipnet.se>
10973
10974 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
10975 is defined (Bug#11768).
10976
9d44f8ce
DA
109772012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10978
10979 Fix marker debugging code.
10980 * marker.c (byte_char_debug_check): Do not perform the check
10981 if buffer is not multibyte.
090bd7cb
JB
10982 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
10983 Call byte_char_debug_check with correct arguments.
9d44f8ce 10984
90fc4786
DA
109852012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10986
10987 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
10988 * marker.c (byte_char_debug_check, count_markers):
10989 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
10990 (byte_debug_flag): Remove.
10991 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
10992 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
10993
7b7ae965
DA
109942012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10995
4e57b342
DA
10996 Avoid code repetition in marker-related functions.
10997 * marker.c (attach_marker): New function.
10998 (Fset_marker, set_marker_restricted, set_marker_both)
10999 (set_marker_restricted_both): Use it.
11000 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
11001 Consistently rename charno to charpos.
11002 (marker_position): Add eassert.
11003 (marker_byte_position): Convert to eassert.
11004
110052012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11006
11007 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 11008 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 11009 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 11010
657924ff
DA
110112012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11012
11013 Introduce fast path for the widely used marker operation.
11014 * alloc.c (build_marker): New function.
11015 * lisp.h (build_marker): New prototype.
11016 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
11017 * composite.c (autocmp_chars): Likewise.
11018 * editfns.c (buildmark): Remove.
11019 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
11020 (save_restriction_save): Use build_marker.
11021 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
11022 * window.c (save_window_save): Likewise.
11023
041a49a6
DA
110242012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11025
11026 Do not use Fdelete_overlay in delete_all_overlays
11027 to avoid redundant calls to unchain_overlay.
11028 * buffer.c (drop_overlay): New function.
11029 (delete_all_overlays, Fdelete_overlay): Use it.
11030 * minibuf.c (get_minibuffer): Fix comment.
11031
7dca65a4
PE
110322012-07-06 Paul Eggert <eggert@cs.ucla.edu>
11033
11034 Port to OpenBSD 5.1 amd64.
11035 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
11036 This is needed for OpenBSD, and should be harmless on all BSD systems.
11037 Also, include <sys/sysctl.h>, as it should be available on all
11038 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
11039 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
11040 use p_pid member, not kp_proc.pid.
11041
8eb876e2
GM
110422012-07-06 Glenn Morris <rgm@gnu.org>
11043
11044 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
11045
38182d90
PE
110462012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11047
11048 More xmalloc and related cleanup.
11049 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
11050 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
11051 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
11052 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
11053 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
11054 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
11055 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
11056 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
11057 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
11058 * xterm.c:
11059 Omit needless casts involving void * pointers and allocation.
11060 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
11061 as the former is more robust if P's type is changed.
11062 Prefer xzalloc to xmalloc + memset 0.
11063 Simplify malloc-or-realloc to realloc.
11064 Don't worry about xmalloc returning a null pointer.
11065 Prefer xstrdup to xmalloc + strcpy.
11066 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
11067 growing it.
11068 * keyboard.c (apply_modifiers_uncached): Prefer local array to
11069 alloca of a constant.
11070
6dd5a677
EZ
110712012-07-05 Eli Zaretskii <eliz@gnu.org>
11072
11073 * xdisp.c (display_line): Fix horizontal pixel coordinates when
11074 hscroll is larger than the line width. Fixes long and futile
11075 looping inside extend_face_to_end_of_line (on a TTY) producing
11076 glyphs that are not needed and thrown away.
11077
6b312f0f
DA
110782012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
11079
11080 * marker.c (set_marker_restricted_both): Simplify by using
11081 clip_to_bounds.
11082
f520ef9b
PE
110832012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11084
11085 * editfns.c (region_limit): Simplify by using clip_to_bounds.
11086
383b7c95
JD
110872012-07-05 Jan Djärv <jan.h.d@swipnet.se>
11088
11089 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
11090 not defined (Bug#11768).
11091 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
11092 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
11093 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
11094 followed by gtk_box_set_homogeneous (Bug#11768).
11095 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
11096 (update_theme_scrollbar_width, xg_create_scroll_bar):
11097 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
11098 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
11099 (is_box_type): New function (Bug#11768).
11100 (xg_tool_item_stale_p): Call is_box_type.
5293d758 11101 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
11102 with default display (Bug#11768).
11103
d6e7bf45
EZ
111042012-07-05 Eli Zaretskii <eliz@gnu.org>
11105
11106 * xdisp.c (window_hscroll_limited): New function.
11107 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
11108 coordinates when window's hscroll is set to insanely large
11109 values. (Bug#11857)
11110
431391ec
JB
111112012-07-05 Juanma Barranquero <lekktu@gmail.com>
11112
11113 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
11114 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
11115
23f86fce
DA
111162012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
11117
11118 Cleanup xmalloc.
11119 * lisp.h (xzalloc): New prototype. Omit needless casts.
11120 * alloc.c (xzalloc): New function. Omit needless casts.
11121 * charset.c: Omit needless casts. Convert all calls to
11122 xmalloc with following memset to xzalloc.
11123 * dispnew.c: Likewise.
11124 * fringe.c: Likewise.
11125 * image.c: Likewise.
11126 * sound.c: Likewise.
11127 * term.c: Likewise.
11128 * w32fns.c: Likewise.
11129 * w32font.c: Likewise.
11130 * w32term.c: Likewise.
11131 * xfaces.c: Likewise.
11132 * xfns.c: Likewise.
11133 * xterm.c: Likewise.
11134 * atimer.c: Omit needless casts.
11135 * buffer.c: Likewise.
11136 * callproc.c: Likewise.
11137 * ccl.c: Likewise.
11138 * coding.c: Likewise.
11139 * composite.c: Likewise.
11140 * doc.c: Likewise.
11141 * doprnt.c: Likewise.
11142 * editfns.c: Likewise.
11143 * emacs.c: Likewise.
11144 * eval.c: Likewise.
11145 * filelock.c: Likewise.
11146 * fns.c: Likewise.
11147 * gtkutil.c: Likewise.
11148 * keyboard.c: Likewise.
11149 * lisp.h: Likewise.
11150 * lread.c: Likewise.
11151 * minibuf.c: Likewise.
11152 * msdos.c: Likewise.
11153 * print.c: Likewise.
11154 * process.c: Likewise.
11155 * region-cache.c: Likewise.
11156 * search.c: Likewise.
11157 * sysdep.c: Likewise.
11158 * termcap.c: Likewise.
11159 * terminal.c: Likewise.
11160 * tparam.c: Likewise.
11161 * w16select.c: Likewise.
11162 * w32.c: Likewise.
11163 * w32reg.c: Likewise.
11164 * w32select.c: Likewise.
11165 * w32uniscribe.c: Likewise.
11166 * widget.c: Likewise.
11167 * xdisp.c: Likewise.
11168 * xmenu.c: Likewise.
11169 * xrdb.c: Likewise.
11170 * xselect.c: Likewise.
11171
0497dc44
PE
111722012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11173
11174 * fileio.c (time_error_value): Check the right error number.
11175 Problem reported by Troels Nielsen in
11176 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
11177
356e7178
PE
111782012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11179
4e71fd89
PE
11180 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
11181 This should be fixed in a better way; see Eli Zaretskii in
11182 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
11183 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
11184
f0941253
PE
11185 * fileio.c (time_error_value): Rename from special_mtime.
11186 The old name's problems were noted by Eli Zaretskii in
11187 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
11188
065c9eb4
PE
11189 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
11190 This variable's comment says Emacs needs at least one GDB-visible
11191 symbol of type enum pvec_type, to work around GDB problems.
11192 The symbol's value doesn't matter.
11193
356e7178
PE
11194 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
11195 that causes compilation to fail on pre-C99 compilers.
11196
ed9265fc 111972012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
11198
11199 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
11200 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
11201
3884d954
DA
112022012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11203
d209e2fb 11204 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
11205 headers for buffer_defaults and buffer_local_symbols.
11206 Reported by Juanma Barranquero <lekktu@gmail.com>.
11207
ee28be33
SM
112082012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
11209
11210 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
11211 * lisp.h (enum pvec_type): Use fewer bits.
11212 (PSEUDOVECTOR_SIZE_BITS): New constant.
11213 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
11214 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
11215 change in pvec_type.
11216 (PSEUDOVECTOR_TYPEP): New macro.
11217 (TYPED_PSEUDOVECTORP): Use it.
11218 * fns.c (internal_equal): Adapt code to extract pvectype.
11219 * emacs.c (gdb_pvec_type): Update type.
11220 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
11221 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
11222 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
11223 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
11224 (sweep_vectors): Use it. Use local var `total_bytes' instead of
11225 abusing vector->header.next.nbytes.
11226 (live_vector_p): Use PVEC_TYPE.
11227 (mark_object): Adapt code to extract pvectype. Use switch.
11228
c7f2cd7f
PE
112292012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11230
11231 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
11232 Tighten new eassert a bit.
11233
8ce70ed2
DA
112342012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11235
11236 Fix compilation with --enable-gcc-warnings and -O1
11237 optimization level.
11238 * doprnt.c (doprnt): Change type of tem to int, initialize
11239 to avoid compiler warning. Add eassert.
11240 * search.c (simple_search): Initialize match_byte to avoid
11241 compiler warning. Add eassert.
11242
dea7f1e5
PE
112432012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11244
24a212eb
PE
11245 Avoid weird behavior with large horizontal scrolls.
11246 Without this change, for example, large hscroll values would
11247 mess up Emacs's display on Fedora 15 x86, presumably due to
11248 overflows in int calculations in the display code.
11249 Also, if buffers had long lines, Emacs would freeze.
11250 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
11251 (set_window_hscroll): New function, containing the old guts of
11252 Fset_window_hscroll. Return the clipped value.
11253 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
11254 This avoids the need to check against PTRDIFF_MAX.
11255
dea7f1e5
PE
11256 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
11257
76046526
DA
112582012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11259
11260 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
11261
39adff0d
PE
112622012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11263
63807d47
PE
11264 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
11265 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
11266 since GCC 4.4.6 issues a bogus warning for them.
11267
39adff0d
PE
11268 Fix bugs in file timestamp newness comparisons.
11269 * fileio.c (Ffile_newer_than_file_p):
11270 * lread.c (Fload): Use full timestamp resolution of files,
11271 not just the 1-second resolution, so that files that are only
11272 slightly newer still count as newer.
11273 * fileio.c (Ffile_newer_than_file_p): Don't assume file
11274 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
11275
dbeed9a6
PE
112762012-07-03 Paul Eggert <eggert@cs.ucla.edu>
11277
11278 * fileio.c: Improve handling of file time marker. (Bug#11852)
11279 (special_mtime): New function.
11280 (Finsert_file_contents, Fverify_visited_file_modtime):
11281 Use it to set special mtime values consistently.
11282
636334d6
AS
112832012-07-03 Andreas Schwab <schwab@linux-m68k.org>
11284
11285 * fileio.c (Finsert_file_contents): Properly handle st_mtime
11286 marker for non-existing file. (Bug#11852)
11287
e2017fe2
GM
112882012-07-03 Glenn Morris <rgm@gnu.org>
11289
11290 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
11291 and did not make it into globals.h).
11292
404dbd37
TT
112932012-07-03 Tom Tromey <tromey@redhat.com>
11294
11295 * window.c (Fset_window_margins, Fset_window_fringes)
11296 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
11297 * textprop.c (Fprevious_property_change): No longer static.
11298 * syntax.c (Fsyntax_table_p): No longer static.
11299 * process.c (Fget_process, Fprocess_datagram_address): No longer
11300 static.
11301 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
11302 * keyboard.c (Fcommand_execute): No longer static.
11303 Remove EXFUN.
11304 * insdel.c (Fcombine_after_change_execute): No longer static.
11305 * image.c (Finit_image_library): No longer static.
11306 * fileio.c (Fmake_symbolic_link): No longer static.
11307 * eval.c (Ffetch_bytecode): No longer static.
11308 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
11309 * doc.c (Fdocumentation_property, Fsnarf_documentation):
11310 No longer static.
404dbd37
TT
11311 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
11312 static.
11313 * dired.c (Ffile_attributes): No longer static.
11314 * composite.c (Fcomposition_get_gstring): No longer static.
11315 * callproc.c (Fgetenv_internal): No longer static.
11316
11317 * ccl.h: Remove EXFUNs.
11318 * buffer.h: Remove EXFUNs.
11319 * dispextern.h: Remove EXFUNs.
11320 * intervals.h: Remove EXFUNs.
11321 * fontset.h: Remove EXFUN.
11322 * font.h: Remove EXFUNs.
11323 * dosfns.c (system_process_attributes): Remove EXFUN.
11324 * keymap.h: Remove EXFUNs.
11325 * lisp.h: Remove EXFUNs.
11326 * w32term.h: Remove EXFUNs.
11327 * window.h: Remove EXFUNs.
11328 * xsettings.h: Remove EXFUN.
11329 * xterm.h: Remove EXFUN.
11330
8e4fd1e1
GM
113312012-07-03 Glenn Morris <rgm@gnu.org>
11332
11333 * lisp.h (Frandom): Make it visible to C.
11334 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
11335 buffer for invisible buffers. (Bug#1229)
11336
ca95b3eb
DA
113372012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11338
11339 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
11340 values which aren't power of 2.
14ae4239 11341 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
1f9f395d 11342 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
ca95b3eb
DA
11343 accordingly.
11344
7555c33f
SM
113452012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
11346
11347 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
11348
11349 * alloc.c (mark_object): Revert part of last patch to use `switch'.
11350
d12e8f5a
DA
113512012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11352
11353 * alloc.c (allocate_vector_block): Remove redundant
11354 calls to mallopt if DOUG_LEA_MALLOC is defined.
11355 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
11356 avoid calls to mallopt if zero_vector is returned.
11357
296094c3
DA
113582012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11359
11360 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
11361 is enabled, avoid dereferencing NULL current_sblock if
11362 running undumped.
11363
36429c89
DA
113642012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11365
11366 Cleanup basic buffer management.
11367 * buffer.h (struct buffer): Change layout to use generic vector
11368 marking code. Fix some comments. Change type of 'clip_changed'
11369 to bitfield. Remove unused #ifndef old.
11370 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
11371 (GET_OVERLAYS_AT): Fix indentation.
11372 (for_each_per_buffer_object_at): New macro.
11373 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
11374 (Fbuffer_local_variables): Use it.
11375 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
11376 * alloc.c (allocate_buffer): Adjust to match new layout of
11377 struct buffer. Fix comment.
11378 (mark_overlay): New function.
11379 (mark_buffer): Use it. Use mark_vectorlike to mark normal
11380 Lisp area of struct buffer.
11381 (mark_object): Use it. Adjust marking of misc objects
11382 and related comments.
11383
3b3e4cac
PE
113842012-07-02 Paul Eggert <eggert@cs.ucla.edu>
11385
11386 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
11387 wrapper that is not needed because the wrapped code is a no-op (zero
11388 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
11389 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
11390
cf5c0175
DA
113912012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
11392
11393 * alloc.c (mark_buffer): Simplify. Remove prototype.
11394 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 11395 objects. Use CHECK_LIVE for all vector-like objects except buffers
14ae4239
BT
11396 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
11397 Avoid redundant calls to mark_vectorlike for bool vectors.
cf5c0175 11398
ca26824c
GM
113992012-06-30 Glenn Morris <rgm@gnu.org>
11400
2e4c5312
GM
11401 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
11402
ca26824c
GM
11403 * epaths.in (PATH_SITELOADSEARCH): New.
11404 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
11405 This is rather than relying on --enable-locallisppath elements
11406 having "site-lisp" in their names. (Bug#10208#25, 11658)
11407
0d23c240
EZ
114082012-06-30 Eli Zaretskii <eliz@gnu.org>
11409
c9240d7a
EZ
11410 * w32proc.c (sys_select): Accept and ignore one more argument.
11411
11412 * w32.c (emacs_gnutls_pull): Call select with one more argument.
11413
0d23c240 11414 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 11415 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
11416
11417 * sysdep.c: Don't include dos.h and dosfns.h.
11418
11419 * process.c (sys_select):
11420 * msdos.c (sys_select): Accept one more argument and ignore it.
11421
11422 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
11423 adapt data types and code to that.
11424
11425 * dosfns.c:
11426 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
11427 which clashes with the gnulib function of the same name.
11428
af5a5a98
AS
114292012-06-30 Andreas Schwab <schwab@linux-m68k.org>
11430
c5e4379c
AS
11431 * font.c (font_style_to_value, font_style_symbolic)
11432 (font_prop_validate_style): Add type checks for values in
11433 font_style_table.
11434
af5a5a98
AS
11435 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
11436 argument.
11437 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
11438 uses.
11439
8d38f461
EZ
114402012-06-29 Eli Zaretskii <eliz@gnu.org>
11441
2e5a6631
EZ
11442 * xdisp.c (try_window_id): Undo last change.
11443
8d38f461
EZ
11444 * w32.c (getwd): Adjust commentary about startup_dir.
11445 (init_environment): Always call sys_access, even in non-MSVC
11446 builds. Don't chdir to the directory of the Emacs executable.
11447 This undoes code from 1997 which was justified by the need to
11448 "avoid conflicts when removing and renaming directories". But its
11449 downside was that every relative file name was being interpreted
11450 relative to the directory of the Emacs executable, which can never
11451 be TRT. In particular, it broke sys_access when called with
11452 relative file names.
11453 (sys_access): Map GetLastError to errno.
11454
2af3565e
DA
114552012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11456
11457 * window.h (struct window): Change type of 'fringes_outside_margins'
11458 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 11459 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
11460 Adjust comment.
11461 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
11462 to ptrdiff_t.
11463
c8d3a25c 114642012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 11465
c8d3a25c
GM
11466 * gnutls.c (emacs_gnutls_handshake):
11467 Add QUIT to make the loop interruptible.
57570cd3 11468
c8d3a25c 114692012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 11470
c8d3a25c
GM
11471 * charset.c (init_charset): Make lack of etc/charsets fatal.
11472
3e984ee8
DA
114732012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11474
11475 * editfns.c (region_limit): Fix type mismatch.
11476
ef884f23
DA
114772012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11478
11479 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
11480 undefined. Convert from xassert to eassert.
11481 * nsmenu.m: Convert from xassert to eassert.
11482 * nsterm.m: Likewise.
11483
7d7e0027
SM
114842012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
11485
11486 * editfns.c (region_limit): Clip to narrowing (bug#11770).
11487
aa754e6a
PE
114882012-06-28 Paul Eggert <eggert@cs.ucla.edu>
11489
11490 Avoid integer overflow on scroll-left and scroll-right.
11491 * window.c (HSCROLL_MAX): New macro.
11492 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
11493 overflow when requested scroll falls outside ptrdiff_t range.
11494
80b00b08
DA
114952012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11496
11497 * window.h (struct window): Change type of 'hscroll',
11498 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
11499 'last_modified' and 'last_overlay_modified' to EMACS_INT.
11500 Adjust users accordingly.
11501 * xdisp.c (try_cursor_movement): Replace type check with eassert.
11502 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
11503 from EMACS_INT to ptrdiff_t.
11504 (make_window): Omit redundant initialization.
11505
62b2bcf6
JB
115062012-06-28 Juanma Barranquero <lekktu@gmail.com>
11507
11508 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
11509
45942c7d
DA
115102012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11511
11512 * window.h (struct window): Change type of 'use_time' and
11513 'sequence_number' from Lisp_Object to int.
11514 * frame.c (make_frame): Adjust users accordingly.
11515 * print.c (print_object): Likewise.
11516 * window.c (select_window, Fwindow_use_time, make_parent_window)
11517 (make_window): Likewise.
11518
e509cfa6
DA
115192012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11520
11521 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
11522 enabled with --enable-checking=[all,glyphs] configure option.
11523 Fix GLYPH_DEBUG usage assuming that it may be undefined,
11524 adjust comments accordingly.
11525 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
11526 undefined, adjust comments accordingly.
11527 * image.c: Likewise.
11528 * scroll.c: Likewise.
11529 * w32fns.c: Likewise.
11530 * w32term.c: Likewise.
11531 * xdisp.c: Likewise.
11532 * xfaces.c: Likewise.
11533 * xfns.c: Likewise.
11534 * xterm.c: Likewise.
11535
a54e2c05
DA
115362012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11537
11538 Generalize run-time debugging checks.
11539 * dispextern.h (XASSERTS): Remove.
11540 * fontset.c (xassert): Remove.
11541 Convert from xassert to eassert.
11542 * alloc.c: Convert from xassert to eassert.
11543 * bidi.c: Likewise.
11544 * dispnew.c: Likewise.
11545 * fns.c: Likewise.
11546 * fringe.c: Likewise.
11547 * ftfont.c: Likewise.
11548 * gtkutil.c: Likewise.
11549 * image.c: Likewise.
11550 * keyboard.c: Likewise.
11551 * menu.c: Likewise.
11552 * process.c: Likewise.
11553 * scroll.c: Likewise.
11554 * sound.c: Likewise.
11555 * term.c: Likewise.
11556 * w32console.c: Likewise.
11557 * w32fns.c: Likewise.
11558 * w32term.c: Likewise.
11559 * window.c: Likewise.
11560 * xdisp.c: Likewise.
11561 * xfaces.c: Likewise.
11562 * xfns.c: Likewise.
11563 * xselect.c: Likewise.
11564 * xterm.c: Likewise.
11565
1ec4b7b2
SM
115662012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
11567
11568 * fns.c (maybe_resize_hash_table): Output message when growing the
11569 purify-hashtable.
11570
2014308a
DA
115712012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11572
11573 * alloc.c (allocate_string_data): Remove dead code.
11574 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
11575 avoid GCC warning about unused macro.
11576
246155eb
DA
115772012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11578
11579 * alloc.c (allocate_string): Omit intervals initialization.
11580 * alloc.c (make_uninit_multibyte_string): Initialize intervals
11581 as in make_pure_string and make_pure_c_string.
11582
43184b7b
DA
115832012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11584
d209e2fb 11585 * alloc.c (allocate_string): Fix last change.
43184b7b 11586
3fe6dd74
DA
115872012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11588
d209e2fb 11589 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
11590 to memset, add explicit initialization where appropriate.
11591
1ba6038a
GM
115922012-06-27 Glenn Morris <rgm@gnu.org>
11593
11594 * lisp.mk (lisp): Remove paths.elc.
11595
c89926a5
CY
115962012-06-27 Chong Yidong <cyd@gnu.org>
11597
11598 * doc.c (Fsubstitute_command_keys): Fix punctuation.
11599
ed6b3510
JW
116002012-06-26 John Wiegley <johnw@newartisans.com>
11601
1ec4b7b2 11602 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
11603 on Mac OS X Lion: __mod_init_func and __mod_term_func.
11604
ed6b3510
JW
11605 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
11606 when building with Clang.
11607
8edd4a2b
SM
116082012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
11609
11610 * eval.c (Fapply): Allow calling it with a single argument.
11611
f6f62d1b
EZ
116122012-06-26 Eli Zaretskii <eliz@gnu.org>
11613
11614 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
11615 _stricmp and _strnicmp.
11616 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
11617
62efea5e
DA
116182012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11619
11620 * alloc.c (allocate_window): Zero out non-Lisp part of newly
11621 allocated window.
11622 (allocate_process): Likewise for new process.
8edd4a2b 11623 (allocate_terminal): Change to use offsetof.
62efea5e
DA
11624 (allocate_frame): Likewise.
11625 * frame.c (make_frame): Omit redundant initialization.
11626 * window.c (make_parent_window): Use memset.
11627 (make_window): Omit redundant initialization.
11628 * process.c (make_process): Omit redundant initialization.
11629 * terminal.c (create_terminal): Likewise.
11630
42997f4d
DA
116312012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11632
11633 * term.c (delete_tty): Remove redundant call to memset.
11634
1130ecfc
DA
116352012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11636
11637 * alloc.c: Remove build_string.
11638 * lisp.h: Define build_string as static inline. This provides
11639 a better opportunity to optimize away calls to strlen when the
11640 function is called with compile-time constant argument.
11641 * image.c (imagemagick_error): Convert to build_string.
11642 * w32proc.c (sys_spawnve): Likewise.
11643 * xterm.c (x_term_init): Likewise.
11644
cf38a720
PE
116452012-06-26 Paul Eggert <eggert@cs.ucla.edu>
11646
99027bdd
PE
11647 Use sprintf return value instead of invoking strlen on result.
11648 In the old days this wasn't portable, since some sprintf
11649 implementations returned char *. But they died out years ago and
11650 Emacs already assumes sprintf returns int.
11651 Similarly for float_to_string.
11652 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
11653 * ccl.c (ccl_driver):
11654 * character.c (string_escape_byte8):
11655 * data.c (Fnumber_to_string):
11656 * doprnt.c (doprnt):
11657 * print.c (print_object):
11658 * xdisp.c (message_dolog):
11659 * xfns.c (syms_of_xfns):
11660 Use sprintf or float_to_string result to avoid need to call strlen.
11661 * data.c (Fnumber_to_string):
11662 Use make_unibyte_string, since the string must be ASCII.
11663 * lisp.h, print.c (float_to_string): Now returns int length.
11664 * term.c (produce_glyphless_glyph):
11665 Use sprintf result rather than recomputing it.
11666
cf38a720
PE
11667 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
11668 * Makefile.in (ALL_CFLAGS):
11669 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
11670 * gmalloc.c, regex.c: Include <config.h> unconditionally.
11671
3511c784
DA
116722012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11673
0a08eb21 11674 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
11675 strcasecmp if available.
11676 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
11677
fb7da12e
AS
116782012-06-25 Andreas Schwab <schwab@linux-m68k.org>
11679
11680 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
11681 Avoid comma operator.
11682 * menu.c (push_submenu_start, push_submenu_end)
11683 (push_left_right_boundary, push_menu_pane): Likewise.
11684 * msdos.c (dos_rawgetc): Likewise.
11685
afa2ffd8
DA
116862012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11687
11688 * xfns.c (xic_create_fontsetname): Remove redundant calls
11689 to memset.
11690
b3b4476b
PE
116912012-06-25 Paul Eggert <eggert@cs.ucla.edu>
11692
4495ff38
PE
11693 * gtkutil.c (get_utf8_string): Remove redundant assignment.
11694 sprintf already null-terminates its output.
11695
b3b4476b
PE
11696 * xfns.c (x_window): Remove redundant cast.
11697
b00876c9
DA
116982012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11699
11700 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
11701 `const char *' to `char *' to avoid compiler warning.
11702
d188e26b
PE
117032012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11704
885d1d74
PE
11705 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
11706 instead of truncating it to 63 (admittedly a generous limit).
11707
d188e26b
PE
11708 * process.c: Fix spelling and caps in comments.
11709
e2f560b1
DN
117102012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
11711
e86db54b 11712 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
11713 * sysdep.c (setpgrp): Remove definition, not used in this file.
11714
7583a3a1
JB
117152012-06-24 Juanma Barranquero <lekktu@gmail.com>
11716
11717 * makefile.w32-in: Update dependencies.
11718
696056c2
EZ
117192012-06-24 Eli Zaretskii <eliz@gnu.org>
11720
11721 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
11722 (SYSTIME_H): Add nt/inc/sys/time.h.
11723
11724 * systime.h [WINDOWSNT]: Include sys/time.h.
11725
11726 * s/ms-w32.h (struct timespec): Definition moved from
11727 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
11728
845ca893
PE
117292012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11730
11731 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
11732 * buffer.h (buffer_slot_type_mismatch):
11733 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
11734 * eval.c (unwind_to_catch):
11735 * image.c (my_png_error, my_error_exit):
11736 * keyboard.c (quit_throw_to_read_char, user_error)
11737 (Fexit_recursive_edit, Fabort_recursive_edit):
11738 * lisp.h (die, args_out_of_range, args_out_of_range_3)
11739 (wrong_type_argument, buffer_overflow, __executable_start)
11740 (memory_full, buffer_memory_full, string_overflow, Fthrow)
11741 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
11742 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
11743 (fatal):
11744 (child_setup) [!DOS_NT]:
11745 * lread.c (end_of_file_error, invalid_syntax):
11746 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
11747 * puresize.h (pure_write_error):
11748 * search.c (matcher_overflow):
11749 * sound.c (sound_perror, alsa_sound_perror):
11750 * sysdep.c, syssignal.h (croak):
11751 * term.c (maybe_fatal, vfatal):
11752 * textprop.c (text_read_only):
11753 * undo.c (user_error):
11754 * unexmacosx.c (unexec_error):
11755 * xterm.c (x_ins_del_lines, x_delete_glyphs):
11756 Use _Noreturn rather than NO_RETURN.
11757 No need for separate decl merely because of _Noreturn.
11758 * sound.c (sound_warning, parse_sound):
11759 Remove unnecessary forward decls.
11760
f1dd8073
PE
117612012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11762
11763 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
11764 * lisp.h (WAIT_READING_MAX): New macro.
11765 * dispnew.c (Fsleep_for, sit_for):
11766 * keyboard.c (kbd_buffer_get_event):
11767 * process.c (Faccept_process_output):
11768 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
11769 This improves on the previous patch, which introduced a bug
11770 when time_t is unsigned and as wide as intmax_t.
11771 See <http://bugs.gnu.org/9000#51>.
11772
b82c1755
EZ
117732012-06-23 Eli Zaretskii <eliz@gnu.org>
11774
11775 * dispnew.c (sit_for, Fsleep_for):
11776 * keyboard.c (kbd_buffer_get_event):
11777 * process.c (Faccept_process_output): Avoid compiler warnings when
11778 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
11779
ca300656
JB
117802012-06-23 Juanma Barranquero <lekktu@gmail.com>
11781
049ec95b
JB
11782 * makefile.w32-in: Update dependencies.
11783
ca300656
JB
11784 * w32.c (ltime): Add return type and declare static.
11785 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
11786
db7b8d06
PE
117872012-06-23 Paul Eggert <eggert@cs.ucla.edu>
11788
11789 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
11790 Privately reported by Herbert J. Skuhra.
11791 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
11792 All uses changed.
11793 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
11794 not make_lisp_timeval, when the argument is of type EMACS_TIME.
11795
0bd8297f
EZ
117962012-06-23 Eli Zaretskii <eliz@gnu.org>
11797
96512555
EZ
11798 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
11799 last argument of make_unibyte_string.
11800
0bd8297f
EZ
11801 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
11802 language ID in the event parameters.
11803
11804 * w32term.c (w32_read_socket): Put the new keyboard codepage into
11805 event.code, not the obscure "character set ID".
11806
63def6b6
CY
118072012-06-23 Chong Yidong <cyd@gnu.org>
11808
11809 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
11810
e8a02204
EZ
118112012-06-23 Eli Zaretskii <eliz@gnu.org>
11812
388cdec0
EZ
11813 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
11814 * w32.c (fdutimens): New function.
11815
11816 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
11817
11818 * s/ms-w32.h (pselect): Redirect to sys_select.
11819
11820 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
11821
e8a02204
EZ
11822 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
11823 in the logic of incrementing and decrementing the value of
11824 use_relocatable_buffers.
11825
d054f3fb
PE
118262012-06-23 Paul Eggert <eggert@cs.ucla.edu>
11827
11828 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
11829 Privately reported by Herbert J. Skuhra.
11830 [__FreeBSD__]: Remove "*/" typo after "#include".
11831 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
11832 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
11833 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
11834 Don't assume EMACS_TIME and struct timeval are the same type.
11835
d35af63c
PE
118362012-06-22 Paul Eggert <eggert@cs.ucla.edu>
11837
11838 Support higher-resolution time stamps (Bug#9000).
11839 The time stamps are only nanosecond-resolution at the C level,
11840 since that's the best that any real-world system supports now.
11841 But they are picosecond-resolution at the Lisp level, as that's
11842 easy, and leaves room for future OS improvements.
11843
11844 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
11845 (LIBES): Use it.
11846
11847 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
11848 Don't get current time unless it's needed.
11849
11850 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
11851 now provides it if it's absent.
11852 (start_atimer): Port to higher-res time stamps.
11853 Check for time stamp overflow. Don't get current time more
11854 often than is needed.
11855
11856 * buffer.h (struct buffer): Buffer modtime now has high resolution.
11857 Include systime.h, not time.h.
11858 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
11859
11860 * dired.c: Include stat-time.h.
11861 (Ffile-attributes): File times now have higher resolution.
11862
11863 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
11864 (struct image): Timestamp now has higher resolution.
11865
11866 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
11867 has at least microseconds now. All uses removed.
11868 (update_frame, update_single_window, update_window, update_frame_1)
11869 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
927c7216 11870 (duration_to_sec_usec): Remove; no longer needed.
d35af63c
PE
11871
11872 * editfns.c (time_overflow): Now extern.
11873 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
11874 (float-time, Fformat_time_string, Fcurrent_time_string)
11875 (Fcurrent_time_zone): Accept and generate higher-resolution
11876 time stamps.
11877 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
11878 (decode_time_components, lisp_seconds_argument): New functions.
11879 (make_time): Now static.
11880 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
11881 Report an error if the time is invalid, rather than having the caller
11882 do that.
11883
11884 * fileio.c: Include <stat-time.h>
11885 (Fcopy_file): Copy higher-resolution time stamps.
11886 Prefer to set the time stamp via a file descriptor if that works.
11887 (Fset_file_times, Finsert_file_contents, Fwrite_region)
11888 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
11889 (Fvisited_file_modtime, Fset_visited_file_modtime):
11890 Support higher-resolution time stamps.
11891
11892 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
11893
11894 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
11895
11896 * image.c (prepare_image_for_display, clear_image_cache)
11897 (lookup_image): Port to higer-resolution time stamps.
11898
11899 * keyboard.c (start_polling, bind_polling_period):
11900 Check for time stamp overflow.
11901 (read_char, kbd_buffer_get_event, timer_start_idle)
11902 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
11903 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
11904 Port to higher-resolution time stamps. Do not assume time_t is signed.
11905 (decode_timer): New function. Timers are now vectors of length 9,
11906 not 8, to accommodate the picosecond component.
11907 (timer_check_2): Use it.
11908
11909 * nsterm.m (select_timeout, timeval_subtract): Remove.
11910 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
11911 as they're a bit more accurate and handle overflow better.
11912 (ns_select): Change prototype to be compatible with pselect.
11913 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
11914 * nsterm.h (ns_select): Adjust prototype.
11915
11916 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
11917 us-resolution time stamps.
11918 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
11919
11920 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
11921
11922 * lisp.h (time_overflow): New decl.
11923 (wait_reading_process_output): First arg is now intmax_t, not int,
11924 to accommodate larger waits.
11925
11926 * process.h (struct Lisp_Process.read_output_delay):
11927 Now counts nanoseconds, not microseconds.
11928 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
11929 EMACS_HAS_USECS.
11930 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
11931 (wait_reading_process_output):
11932 Port to ns-resolution time stamps.
11933 (Faccept_process_output, wait_reading_process_output):
11934 Check for time stamp overflow. Do not assume time_t is signed.
11935 (select_wrapper): Remove; we now use pselect.
11936 (Fprocess_attributes): Now generates ns-resolution time stamps.
11937
11938 * sysdep.c: Include utimens.h. Don't include utime.h
11939 or worry about struct utimbuf; gnulib does that for us now.
11940 (gettimeofday): Remove; gnulib provides a substitute.
11941 (make_timeval): New function.
11942 (set_file_times): Now sets ns-resolution time stamps.
11943 New arg FD; all uses changed.
11944 (time_from_jiffies, ltime_from_jiffies, get_up_time)
11945 (system_process_attributes):
11946 Now returns ns-resolution time stamp. All uses changed.
11947 Check for time stamp overflow.
11948
11949 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
11950 provides a substitute now.
11951
11952 * systime.h: Include timespec.h rather than sys/time.h and time.h,
11953 since it guarantees struct timespec.
11954 (EMACS_TIME): Now struct timespec, so that we can support
11955 ns-resolution time stamps.
11956 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
11957 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
11958 (EMACS_USECS): Remove.
11959 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
11960 so multiply the arg by 1000 before storing it.
11961 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
11962 New macros.
11963 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
11964 Port to ns-resolution time stamps.
11965 (EMACS_TIME_NEG_P): Remove; replaced by....
11966 (EMACS_TIME_SIGN): New macro.
11967 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
11968 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
11969 (set_file_times, make_time, lisp_time_argument): Adjust signature.
11970 (make_timeval, make_lisp_time, decode_time_components): New decls.
11971 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
11972 that it mishandled time_t overflow. You can't compare by subtracting!
11973 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
11974 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
11975
11976 * term.c: Include <sys/time.h>.
11977 (timeval_to_Time): New function, for proper overflow wraparound.
11978 (term_mouse_position, term_mouse_click): Use it.
11979
11980 * undo.c (record_first_change): Support higher-resolution time stamps
11981 in the undo buffer.
11982 (Fprimitive_undo): Use them when restoring time stamps.
11983
11984 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
11985 (w32_get_internal_run_time):
11986 Port to higher-resolution Emacs time stamps.
11987 (ltime): Now accepts single 64-bit integer, as that's more convenient
11988 for callers.
11989
11990 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
11991
11992 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
11993 for compatibility with pselect. Support ns-resolution time stamps.
11994
11995 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
11996
11997 * xselect.c (wait_for_property_change, x_get_foreign_selection):
11998 Check for time stamp overflow, and support ns-resolution time stamps.
11999
12000 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
12001 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
12002 (timeval_subtract): Remove; no longer needed.
12003 (XTflash, XTring_bell, x_wait_for_event):
12004 Port to ns-resolution time stamps. Don't assume time_t is signed.
12005
b6a92dfe
CY
120062012-06-22 Chong Yidong <cyd@gnu.org>
12007
12008 * xdisp.c (x_consider_frame_title): Revert last change.
12009
d251c37c
EZ
120102012-06-22 Eli Zaretskii <eliz@gnu.org>
12011
12012 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
12013 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
12014 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
12015 staticidx goes up to 1597 out of 1600 = 0x640.)
12016
f10deafb
PE
120172012-06-20 Paul Eggert <eggert@cs.ucla.edu>
12018
12019 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
12020 Otherwise, the umask might be mistakenly 0 while handling input signals.
12021
ec6de1e2
SM
120222012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
12023
12024 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
12025
28be1ada
DA
120262012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
12027
12028 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
12029 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
12030 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
12031 access to `contents' member of Lisp_Vector objects with AREF and ASET
12032 where appropriate.
12033
c6bf3022
CY
120342012-06-19 Chong Yidong <cyd@gnu.org>
12035
12036 * frame.c (delete_frame): When selecting a frame on a different
12037 text terminal, do not alter the terminal's top-frame.
12038
12039 * xdisp.c (format_mode_line_unwind_data): Record the target
12040 frame's selected window and its terminal's top-frame.
12041 (unwind_format_mode_line): Restore them.
12042 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
12043 Callers changed.
12044 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
12045 since tty frames can be explicitly named.
12046 (prepare_menu_bars): Likewise.
12047
12048 * term.c (Ftty_top_frame): New function.
12049
defd4196
PE
120502012-06-18 Paul Eggert <eggert@cs.ucla.edu>
12051
12052 Port byte-code-meter to modern targets.
12053 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
12054 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 12055 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
12056 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
12057 (METER_1, METER_2): Simplify.
12058
1053a871
SM
120592012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
12060
12061 * data.c (Fdefalias): Return `symbol' (bug#11686).
12062
b7e8d081
MR
120632012-06-18 Martin Rudalics <rudalics@gmx.at>
12064
12065 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
12066 gets killed during executing of this function (Bug#11665).
12067 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
12068 (Vkill_buffer_query_functions): In doc-string say that functions
12069 run by this hook should not change the current buffer.
12070
7ea2b339
PE
120712012-06-18 Paul Eggert <eggert@cs.ucla.edu>
12072
12073 Fix recently-introduced process.c problems found by static checking.
12074 * process.c (write_queue_push, write_queue_pop, send_process):
12075 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
12076 (write_queue_pop): Fix pointer signedness problem.
12077 (send_process): Remove unused local.
12078
96a313a1
CY
120792012-06-17 Chong Yidong <cyd@gnu.org>
12080
12081 * xdisp.c (redisplay_internal): No need to redisplay terminal
12082 frames that are not on top.
12083
20ca2e94
TN
120842012-06-17 Troels Nielsen <bn.troels@gmail.com>
12085
12086 * process.c (make_process): Initialize write_queue.
12087 (write_queue_push, write_queue_pop): New functions.
12088 (send_process): Use them to maintain correct ordering of process
12089 writes (Bug#10815).
12090
9a900ca9
PE
120912012-06-17 Paul Eggert <eggert@cs.ucla.edu>
12092
310fbfa8
PE
12093 * lisp.h (eassert): Assume C89 or later.
12094 This removes the need for CHECK.
12095 (CHECK): Remove. Its comments about always evaluating its
12096 argument were confusing, as 'eassert' typically does not evaluate
12097 its argument.
12098
27bb1ca4
PE
12099 * coding.c (produce_chars): Use ptrdiff_t, not int.
12100
9a900ca9
PE
12101 * xterm.c (x_draw_underwave): Check for integer overflow.
12102 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
12103
41b7f8bc 121042012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
12105
12106 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
12107 referenced (Bug#11583).
12108
9b0e3eba
AA
121092012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
12110
12111 Implement wave-style variant of underlining.
12112 * dispextern.h (face_underline_type): New enum.
12113 (face): Add field for underline type.
12114 * nsterm.m (ns_draw_underwave): New function.
12115 (ns_draw_text_decoration): Use it.
12116 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
12117 New functions.
12118 (x_draw_glyph_string): Use them.
12119 * xfaces.c (Qline, Qwave): New Lisp objects.
12120 (check_lface_attrs, merge_face_ref)
1053a871
SM
12121 (Finternal_set_lisp_face_attribute, realize_x_face):
12122 Handle wave-style underline face attributes.
9b0e3eba
AA
12123 * xterm.c (x_draw_underwave): New function.
12124 (x_draw_glyph_string): Use it.
12125
0fb52f11
JB
121262012-06-16 Juanma Barranquero <lekktu@gmail.com>
12127
12128 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
12129 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
12130 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
12131 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
12132 ($(BLD)/w32select.$(O)): Update dependencies.
12133
e5560ff7
AS
121342012-06-16 Andreas Schwab <schwab@linux-m68k.org>
12135
12136 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
12137 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
12138 * character.c (_fetch_multibyte_char_p): Remove.
12139 * alloc.c: Include "character.h" before "buffer.h".
12140 * bidi.c: Likewise.
12141 * buffer.c: Likewise.
12142 * bytecode.c: Likewise.
12143 * callint.c: Likewise.
12144 * callproc.c: Likewise.
12145 * casefiddle.c: Likewise.
12146 * casetab.c: Likewise.
12147 * category.c: Likewise.
12148 * cmds.c: Likewise.
12149 * coding.c: Likewise.
12150 * composite.c: Likewise.
12151 * dired.c: Likewise.
12152 * dispnew.c: Likewise.
12153 * doc.c: Likewise.
12154 * dosfns.c: Likewise.
12155 * editfns.c: Likewise.
12156 * emacs.c: Likewise.
12157 * fileio.c: Likewise.
12158 * filelock.c: Likewise.
12159 * font.c: Likewise.
12160 * fontset.c: Likewise.
12161 * fringe.c: Likewise.
12162 * indent.c: Likewise.
12163 * insdel.c: Likewise.
12164 * intervals.c: Likewise.
12165 * keyboard.c: Likewise.
12166 * keymap.c: Likewise.
12167 * lread.c: Likewise.
12168 * macros.c: Likewise.
12169 * marker.c: Likewise.
12170 * minibuf.c: Likewise.
12171 * nsfns.m: Likewise.
12172 * nsmenu.m: Likewise.
12173 * print.c: Likewise.
12174 * process.c: Likewise.
12175 * regex.c: Likewise.
12176 * region-cache.c: Likewise.
12177 * search.c: Likewise.
12178 * syntax.c: Likewise.
12179 * term.c: Likewise.
12180 * textprop.c: Likewise.
12181 * undo.c: Likewise.
12182 * unexsol.c: Likewise.
12183 * w16select.c: Likewise.
12184 * w32fns.c: Likewise.
12185 * w32menu.c: Likewise.
12186 * window.c: Likewise.
12187 * xdisp.c: Likewise.
12188 * xfns.c: Likewise.
12189 * xmenu.c: Likewise.
12190 * xml.c: Likewise.
12191 * xselect.c: Likewise.
12192
2f07e6af
EZ
121932012-06-16 Eli Zaretskii <eliz@gnu.org>
12194
1053a871
SM
12195 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
12196 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 12197 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
12198 row.
12199 (handle_face_prop): Use chunk-relative overlay string index when
12200 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
12201 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
12202 the rightmost. (Bug#11720)
2f07e6af 12203
29b83cec
AS
122042012-06-16 Andreas Schwab <schwab@linux-m68k.org>
12205
12206 * category.h (CHAR_HAS_CATEGORY): Define as inline.
12207 (CATEGORY_MEMBER): Enforce 1/0 value.
12208 * category.c (_temp_category_set): Remove.
12209
4c5501e9
EZ
122102012-06-16 Eli Zaretskii <eliz@gnu.org>
12211
12212 * window.c (Fdelete_other_windows_internal)
12213 (Fdelete_window_internal): Don't access frame's mouse highlight
12214 info of the initial frame. (Bug#11677)
12215
2b570124
PE
122162012-06-14 Paul Eggert <eggert@cs.ucla.edu>
12217
e93864f9
PE
12218 * .gdbinit (xgetint): Fix recently-introduced paren typo.
12219 Assume USE_2_TAGS_FOR_INTS.
12220 (xreload): Adjust $tagmask width to match recent lisp.h change.
12221
2b570124
PE
12222 Simplify lisp.h in minor ways that should not affect code.
12223 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
12224 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
12225 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
12226 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
12227 (INTTYPEBITS): New macro, for clarity.
12228 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
12229 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
12230 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
12231 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
12232 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
12233
81755f69
JB
122342012-06-13 Juanma Barranquero <lekktu@gmail.com>
12235
12236 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
12237
16192a57
GM
122382012-06-13 Glenn Morris <rgm@gnu.org>
12239
12240 * s/bsd-common.h (BSD4_3):
12241 * s/usg5-4-common.h (USG5_4): No longer define; unused.
12242
646b5f55
AS
122432012-06-13 Andreas Schwab <schwab@linux-m68k.org>
12244
12245 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
12246 instead of union.
12247 (XLI, XIL): Define.
1053a871
SM
12248 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
12249 Use them.
12250 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 12251 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 12252 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
12253 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
12254 * frame.c (delete_frame): Remove outdated comment.
12255 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
12256 USE_LISP_UNION_TYPE.
12257 (Fw32_unregister_hot_key): Likewise.
12258 (Fw32_toggle_lock_key): Likewise.
12259 * w32menu.c (add_menu_item): Likewise.
12260 (w32_menu_display_help): Use XIL instead of checking
12261 USE_LISP_UNION_TYPE.
12262 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
12263 (init_heap): Likewise.
12264 * w32term.c (w32_read_socket): Update comment.
12265
1d3823c9
GM
122662012-06-13 Glenn Morris <rgm@gnu.org>
12267
c62ff706
GM
12268 * s/usg5-4-common.h, src/s/unixware.h:
12269 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
12270
1d3823c9
GM
12271 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
12272
bfe3e0a2
PE
122732012-06-13 Paul Eggert <eggert@cs.ucla.edu>
12274
12275 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
12276 * alloc.c (make_number) [!defined make_number]:
12277 Remove, as lisp.h always defines this now.
12278 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
12279 (roundup_size): Verify that it is a power of 2.
12280 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
12281 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
12282 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
12283 -DUSE_LSB_TAG=0, to override the automatically-selected default.
12284 USE_LSB_TAG now is always defined to be either 0 or 1.
12285 All uses changed.
12286 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
12287 code works fine either way, and efficiency is not a concern here,
12288 as the union type is for debugging, not for production.
12289 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
12290 Use an inline function on all platforms when using the union type,
12291 since this is simpler and 'static inline' can be used portably
12292 within Emacs now.
12293 (LISP_INITIALLY_ZERO): New macro.
12294 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
12295 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
12296
45fa9c0f
GM
122972012-06-12 Glenn Morris <rgm@gnu.org>
12298
b4492cba
GM
12299 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
12300
12301 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 12302
45fa9c0f
GM
12303 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
12304 Move BROKEN_SIGIO to configure.
12305
12306 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
12307 Move NO_TERMIO to configure.
12308
0e25d334
CY
123092012-06-12 Chong Yidong <cyd@gnu.org>
12310
12311 * image.c (imagemagick_load_image): Use MagickFlattenImage if
12312 MagickMergeImageLayers is undefined. Use pixel pusher loop if
12313 MagickExportImagePixels is undefined.
12314
43682bb6
PE
123152012-06-12 Paul Eggert <eggert@cs.ucla.edu>
12316
12317 * image.c (imagemagick_load_image): Remove unused label.
12318
a9be7d2b
GM
123192012-06-11 Glenn Morris <rgm@gnu.org>
12320
12321 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
12322 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
12323 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
12324 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
12325
3017f87f
SM
123262012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
12327
12328 * alloc.c (make_byte_code): New function.
12329 (Fmake_byte_code): Use it. Don't purify here.
12330 * lread.c (read1): Use it as well to avoid extra allocation.
12331
1b9b4cf4
CY
123322012-06-11 Chong Yidong <cyd@gnu.org>
12333
12334 * image.c (imagemagick_load_image): Implement transparency.
12335
95988fcf
AS
123362012-06-10 Andreas Schwab <schwab@linux-m68k.org>
12337
12338 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
12339 account for preceding backslashes. (Bug#11663)
12340
cd4eb164
CY
123412012-06-09 Chong Yidong <cyd@gnu.org>
12342
12343 * term.c: Support italics in capable terminals (Bug#9652).
12344 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
12345 (turn_on_face): Output using TS_enter_italic_mode if available.
12346 Don't handle unused blinking and alt-charset cases.
12347 (turn_off_face): Handle italic case; discard unused tty_blinking_p
12348 and tty_alt_charset_p cases.
12349 (tty_capable_p, init_tty): Support italics.
12350
12351 * termchar.h (struct tty_display_info): Add field for italics.
12352 Remove unused blink field.
12353
12354 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
12355 Handle slant.
12356
12357 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
12358 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
12359 tty_alt_charset_p. Add tty_italic_p.
12360
ff88beb8
MA
123612012-06-09 Michael Albinus <michael.albinus@gmx.de>
12362
12363 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
12364 dbus_type_is_basic if available.
12365 (xd_extract_signed, xd_extract_unsigned): Rename from
12366 extract_signed and extract_unsigned, respectively. Adapt callers.
12367
44286096
CY
123682012-06-09 Chong Yidong <cyd@gnu.org>
12369
1682701f
CY
12370 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
12371
44286096
CY
12372 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
12373 case (Bug#9752).
12374
d86feb17
PE
123752012-06-08 Paul Eggert <eggert@cs.ucla.edu>
12376
12377 * xdisp.c (vmessage): Treat frame message as multibyte.
12378 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
12379 would generate the diagnostic "Making \302\247 buffer-local while
12380 let-bound!".
12381
d5c20fe8
EZ
123822012-06-08 Eli Zaretskii <eliz@gnu.org>
12383
12384 * dispnew.c (showing_window_margins_p): Undo last change, which
12385 was done due to an inadvertent commit.
12386 (adjust_frame_glyphs_for_frame_redisplay): Do call
12387 showing_window_margins_p.
12388
513749ee
SM
123892012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
12390
12391 * eval.c (Fmake_var_non_special): New primitive.
12392 (syms_of_eval): Defsubr it.
12393 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
12394
d4a8f5c1
JB
123952012-06-08 Juanma Barranquero <lekktu@gmail.com>
12396
12397 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
12398 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
12399
8bbbc977
EZ
124002012-06-08 Eli Zaretskii <eliz@gnu.org>
12401
12402 * alloc.c (allocate_vectorlike): Fix last change.
12403
f3372c87
DA
124042012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
12405
12406 Block-based vector allocation of small vectors.
12407 * lisp.h (struct vectorlike_header): New field `nbytes',
12408 adjust comment accordingly.
12409 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
fc0c31f8 12410 to denote vector blocks. Adjust users (live_vector_p,
f3372c87
DA
12411 mark_maybe_pointer, valid_lisp_object_p) accordingly.
12412 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
f4ad7ea1
JB
12413 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES)
12414 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX)
12415 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST)
f3372c87
DA
12416 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
12417 (roundup_size): New constant.
12418 (struct vector_block): New data type.
12419 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 12420 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
12421 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
12422 (sweep_vectors): New functions.
12423 (allocate_vectorlike): Return `zero_vector' as the only vector of
fc0c31f8 12424 0 items. Allocate new vector from block if vector size is less than
f3372c87
DA
12425 or equal to VBLOCK_BYTES_MAX.
12426 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
12427 (init_alloc_once): Add call to init_vectors.
12428
4f18a4ed
SM
124292012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
12430
12431 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
12432
86f158bc
PE
124332012-06-07 Paul Eggert <eggert@cs.ucla.edu>
12434
12435 * doprnt.c (doprnt): Truncate multibyte char correctly.
12436 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
12437 would mishandle a string argument "Xc" if X was a multibyte
12438 character of length 2: it would truncate after X's first byte
12439 rather than including all of X.
12440
c5cfcbe0
CY
124412012-06-06 Chong Yidong <cyd@gnu.org>
12442
12443 * buffer.c (word_wrap): Doc fix.
12444
c05cf390
PE
124452012-06-04 Paul Eggert <eggert@cs.ucla.edu>
12446
12447 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
12448
0c3461de
GM
124492012-06-03 Glenn Morris <rgm@gnu.org>
12450
12451 * xdisp.c (tool-bar-style): Doc fix.
12452
c71232db
UM
124532012-06-03 Ulrich Müller <ulm@gentoo.org>
12454
12455 * Makefile.in (PAXCTL): Define.
12456 (temacs$(EXEEXT)): Disable memory randomization for the temacs
12457 binary via PaX flags if the paxctl utility is available.
12458 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
12459 Restore PaX flags to their default. (Bug#11398)
12460
383f7350
CY
124612012-06-03 Chong Yidong <cyd@gnu.org>
12462
12463 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
12464 buffer (Bug#11226).
12465
5f2c76c6
CY
124662012-06-03 Chong Yidong <cyd@gnu.org>
12467
12468 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
12469 (note_mode_line_or_margin_highlight): If there is no help echo,
12470 use mode-line-default-help-echo. Handle the case where the mouse
12471 position is past the end of the mode line string.
12472
12473 * buffer.c (buffer_local_value_1): New function, split from
12474 Fbuffer_local_value; can return Qunbound.
12475 (Fbuffer_local_value): Use it.
12476 (Vmode_line_format): Docstring tweaks.
12477
773d47f6
PE
124782012-06-02 Paul Eggert <eggert@cs.ucla.edu>
12479
12480 * sysdep.c (system_process_attributes): Improve comment.
12481
f2d6a3df
SM
124822012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
12483
12484 * keyboard.c: Export real-this-command to Elisp.
12485 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
12486 and DEFVAR it. Update all users.
12487
63810350
PE
124882012-06-02 Paul Eggert <eggert@cs.ucla.edu>
12489
7bd5c1f4
PE
12490 * minibuf.c (Fassoc_string): Remove duplicate declaration.
12491
63810350
PE
12492 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
12493 Convert pctcpu and pctmem to Lisp float properly.
12494 Let the compiler fold better, as 100.0/0x8000 is exact.
12495
a2821611
AS
124962012-06-02 Andreas Schwab <schwab@linux-m68k.org>
12497
12498 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
12499 cons_block.
12500
5fceba1d
PE
125012012-06-01 Paul Eggert <eggert@cs.ucla.edu>
12502
12503 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
12504
c98ff5dd
DA
125052012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
12506
12507 For a 'struct window', replace some Lisp_Object fields to
12508 bitfields where appropriate, remove unused fields.
12509 * window.h (struct window): Remove unused 'last_mark_x' and
12510 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1f9f395d 12511 change its type from Lisp_Object to bitfield.
c98ff5dd
DA
12512 Change type of 'force_start', 'optional_new_start',
12513 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
fc0c31f8 12514 fields from Lisp_Object to bitfield. Adjust users accordingly.
c98ff5dd 12515
ca34e0be
PE
125162012-05-31 Paul Eggert <eggert@cs.ucla.edu>
12517
12518 Pacify gcc -Wdouble-precision when using Xaw.
12519 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
12520 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
12521 Use 'float' consistently, rather than 'float' in most places
12522 and 'double' in a couple of places.
12523
efc00ab1 125242012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
12525
12526 * xdisp.c (handle_stop): Detect whether we have overlay strings
12527 loaded by testing it->current.overlay_string_index to be
12528 non-negative, instead of checking whether n_overlay_strings is
12529 positive. (Bug#11587)
12530
efc00ab1 125312012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
12532
12533 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
12534
12535 * doc.c (Fsubstitute_command_keys): Doc fix.
12536
efc00ab1 125372012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
12538
12539 * search.c (search_buffer): Remove calls to
12540 r_alloc_inhibit_buffer_relocation, as it is now called by
12541 maybe_unify_char, which was the cause of relocation of buffer text
12542 in bug#11519.
12543
efc00ab1 125442012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
12545
12546 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
12547 for the duration of call to load_charset, to avoid problems with
12548 callers of maybe_unify_char that access buffer text through C
12549 pointers.
12550
12551 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
12552 decrement the inhibition flag, instead of just setting or
12553 resetting it.
12554
ba93a187
PE
125552012-05-31 Paul Eggert <eggert@cs.ucla.edu>
12556
12557 Remove obsolete '#define static' cruft.
12558 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
12559 This #undef was "temporary" in 2000; it is no longer needed
12560 now that '#define static' has gone away.
12561 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
12562 (gray_bitmap_bits): Remove; no longer needed.
12563 All uses replaced with definiens.
12564 * xterm.c: Include "bitmaps/gray.xbm".
12565
9e4bf381
PE
125662012-05-30 Paul Eggert <eggert@cs.ucla.edu>
12567
12568 Clean up __executable_start, monstartup when --enable-profiling.
12569 The following changes affect the code only when profiling.
12570 * dispnew.c (__executable_start): Rename from safe_bcopy.
12571 Define only on platforms that need it.
12572 * emacs.c: Include <sys/gmon.h> when profiling.
12573 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
12574 (__executable_start): Remove decl, since lisp.h does it now.
12575 (safe_bcopy): Remove decl; no longer has that name.
12576 (main): Coalesce #if into single bit of code, for simplicity.
12577 Cast pointers to uintptr_t, since standard libraries want integers
12578 and not pointers.
12579 * lisp.h (__executable_start): New decl.
12580
32d72c2f
GM
125812012-05-31 Glenn Morris <rgm@gnu.org>
12582
12583 * image.c (Fimagemagick_types): Doc fix.
12584
baac5bc7
JM
125852012-05-30 Jim Meyering <meyering@redhat.com>
12586
12587 * callproc.c (Fcall_process_region): Include directory component
12588 in mkstemp error message (Bug#11586).
12589
72cb32cf
PE
125902012-05-30 Paul Eggert <eggert@cs.ucla.edu>
12591
12592 * alloc.c, lisp.h (make_pure_vector): Now static.
12593
61b108cc
SM
125942012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
12595
12596 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
12597 Move to byte-run.el.
12598 (Fautoload): Do the hash-doc more carefully.
12599 * data.c (Fdefalias): Purify definition, except for keymaps.
12600 (Qdefun): Move from eval.c.
12601 * lisp.h (Qdefun): Remove.
12602 * lread.c (read1): Tiny simplification.
12603
471fe23d
TN
126042012-05-29 Troels Nielsen <bn.troels@gmail.com>
12605
934f3f58 12606 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
12607 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
12608 Bug#9642, but explicitly check that the buffer the overlay would
12609 be moved to is live and rearrange lines to make sure that errors
12610 will not put the overlay in an inconsistent state.
12611 (Fdelete_overlay): Cosmetics.
12612
85d0efd1
EZ
126132012-05-28 Eli Zaretskii <eliz@gnu.org>
12614
12615 * w32term.c (my_bring_window_to_top): New function.
12616 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
12617 could be different from the original one.
12618 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
12619 (Bug#11513)
12620
12621 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
12622 by calling BringWindowToTop.
12623
12624 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
12625 (WM_EMACS_END): Increase by one.
12626
da92a98c
PE
126272012-05-28 Paul Eggert <eggert@cs.ucla.edu>
12628
12629 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
12630 This avoids undefined behavior that might cause the eassert
12631 to not catch an out-of-range value.
12632
74d1f848
JB
126332012-05-28 Juanma Barranquero <lekktu@gmail.com>
12634
12635 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
12636 Update dependencies.
12637
9e1a06fc
EZ
126382012-05-27 Eli Zaretskii <eliz@gnu.org>
12639
12640 * bidi.c (bidi_mirror_char): Fix last change.
12641
f3dd7312
AS
126422012-05-27 Andreas Schwab <schwab@linux-m68k.org>
12643
12644 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
12645 when referring to sectname field in printf format.
12646
81899c91
PE
126472012-05-27 Paul Eggert <eggert@cs.ucla.edu>
12648
57b81a9f
PE
12649 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
12650 Only r_alloc_inhibit_buffer_relocation needed to be added;
12651 the others were already declared.
12652
81899c91
PE
12653 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
12654 before checking whether it's out of range. Put the check inside
12655 eassert. See
12656 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
12657
33017faf 126582012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
12659
12660 * callproc.c (Fcall_process): Restore a line that was accidentally
12661 commented out in the 2011-02-13 change (bug#11547).
12662
33017faf 126632012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
12664
12665 * lisp.h [REL_ALLOC]: Add prototypes for external functions
12666 defined on ralloc.c.
12667
12668 * buffer.c [REL_ALLOC]: Remove prototypes of
12669 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
12670 they are now on lisp.h.
12671
12672 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
12673
12674 * search.c (search_buffer): Use it to inhibit relocation of buffer
12675 text while re_search_2 is doing its job, because re_search_2 is
12676 passed C pointers to buffer text. (Bug#11519)
12677
23415acf
EZ
12678 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
12679 Update value to 24.
12680
44e27368
EZ
12681 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
12682 state after an additional call to move_it_in_display_line_to, keep
12683 the values of it->max_ascent and it->max_descent found for the
12684 entire line.
12685 (pos_visible_p): Revert the comparison against bottom_y to what it
12686 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
12687 (Bug#11464)
12688
c1892f11
PE
126892012-05-26 Paul Eggert <eggert@cs.ucla.edu>
12690
12691 Fix coding-related core dumps with gcc -ftrapv.
12692 The code was computing A - B, where A and B are pointers, and B is
12693 random garbage. This can lead to core dumps on platforms that
12694 have special pointer registers, and it also leads to core dumps on
12695 x86-64 when compiled with gcc -ftrapv. The fix is to compute
12696 A - B only when B is initialized properly.
12697 * coding.c (coding_set_source, coding_set_destination): Return void.
12698 (coding_change_source, coding_change_destinations): New functions,
12699 with the old behaviors of coding_set_source and coding_set_destination.
12700 All callers that need an offset changed to use these new functions.
12701
eb7afdad
GM
127022012-05-26 Glenn Morris <rgm@gnu.org>
12703
12704 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
12705
f12fdf02
EZ
127062012-05-26 Eli Zaretskii <eliz@gnu.org>
12707
53a63be6 12708 Extend mouse support on W32 text-mode console.
61b108cc
SM
12709 * xdisp.c (draw_row_with_mouse_face):
12710 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 12711
eb3f6f01 12712 * w32console.c: Include window.h.
61b108cc
SM
12713 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
12714 New functions.
eb3f6f01
EZ
12715 (initialize_w32_display): Initialize mouse-highlight data.
12716
53a63be6
EZ
12717 * w32inevt.c: Include termchar.h and window.h.
12718 (do_mouse_event): Support mouse-autoselect-window. When the mouse
12719 moves, call note_mouse_highlight. If help_echo changed, call
12720 gen_help_event to produce help-echo message in the echo area.
12721 Call clear_mouse_face if mouse_face_hidden is set in the mouse
12722 highlight info.
12723
4cfd81f6
PE
127242012-05-26 Paul Eggert <eggert@cs.ucla.edu>
12725
12726 * lread.c (read1): Simplify slightly to avoid an overflow warning
12727 with GCC 4.7.0 on x86-64.
12728
4446092a
EZ
127292012-05-26 Eli Zaretskii <eliz@gnu.org>
12730
12731 * bidi.c (bidi_mirror_char): Revert last change: an int is
12732 definitely wide enough here.
12733
42b2a986 127342012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 12735
42b2a986 12736 Fix integer width and related bugs (Bug#9874).
eb106a49 12737 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
12738 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
12739 (string_bytes, check_sblock, allocate_string_data):
12740 (compact_small_strings, Fmake_bool_vector, make_string)
12741 (make_unibyte_string, make_multibyte_string)
12742 (make_string_from_bytes, make_specified_string)
12743 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
12744 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
12745 (mark_vectorlike):
12746 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12747 (allocate_pseudovector):
12748 Use int, not EMACS_INT, where int is wide enough.
12749 (inhibit_garbage_collection, Fgarbage_collect):
12750 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12751 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
12752 int might not be wide enough.
12753 (bidi_cache_search, bidi_cache_find, bidi_init_it)
12754 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
12755 (bidi_at_paragraph_end, bidi_find_paragraph_start)
12756 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
12757 (bidi_level_of_next_char, bidi_move_to_visually_next):
12758 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12759 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
12760 (Fkill_buffer, Fset_buffer_major_mode)
12761 (advance_to_char_boundary, Fbuffer_swap_text)
12762 (Fset_buffer_multibyte, overlays_at, overlays_in)
12763 (overlay_touches_p, struct sortvec, record_overlay_string)
12764 (overlay_strings, recenter_overlay_lists)
12765 (adjust_overlays_for_insert, adjust_overlays_for_delete)
12766 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
12767 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
12768 (Foverlay_recenter, last_overlay_modification_hooks_used)
12769 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
12770 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
12771 (validate_region): Omit unnecessary test for b <= e,
12772 since that's guaranteed by the previous test.
d311d28c
PE
12773 (adjust_overlays_for_delete): Avoid pos + length overflow.
12774 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
12775 (report_overlay_modification):
12776 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12777 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
12778 Omit pointer cast, which isn't needed anyway, and doesn't work
12779 after the EMACS_INT -> ptrdiff_t change.
02481186 12780 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
12781 * buffer.h: Adjust decls to match defn changes elsewhere.
12782 (struct buffer_text, struct buffer):
12783 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12784 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
12785 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
12786 not int, to avoid needless 32-bit limit on 64-bit hosts.
12787 (exec_byte_code): Use tighter memory-full test, one that checks
12788 for alloca overflow. Don't compute the address of the object just
12789 before an array, as that's not portable. Use EMACS_INT, not
12790 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
12791 * callint.c (Fcall_interactively):
12792 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12793 * callproc.c (call_process_kill, Fcall_process):
12794 Don't assume pid_t fits into an Emacs fixnum.
12795 (call_process_cleanup, Fcall_process, child_setup):
12796 Don't assume pid_t fits into int.
12797 (call_process_cleanup, Fcall_process, delete_temp_file)
12798 (Fcall_process_region):
12799 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12800 (Fcall_process): Simplify handling of volatile integers.
12801 Use int, not EMACS_INT, where int will do.
12802 * casefiddle.c (casify_object, casify_region, operate_on_word)
12803 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
12804 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12805 (casify_object): Avoid integer overflow when overallocating buffer.
12806 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 12807 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
12808 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
12809 * category.h (CATEGORYP): Don't assume arg is nonnegative.
12810 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
12811 integers are now checked earlier. All uses replaced with XINT.
12812 (ccl_driver):
12813 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12814 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
12815 (ccl_driver, Fregister_code_conversion_map):
12816 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
12817 (resolve_symbol_ccl_program): Check that vector header is in range.
12818 Always copy the vector, so that we can check its contents reliably
12819 now rather than having to recheck each instruction as it's being
12820 executed. Check that vector words fit in 'int'.
12821 (ccl_get_compiled_code, Fregister_ccl_program)
12822 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
12823 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
12824 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
12825 contents are in range.
12826 (Fccl_execute_on_string): Check that status is in range.
12827 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
12828 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
12829 Accept and return EMACS_INT, not int, because callers can pass values
12830 out of 'int' range.
12831 (c_string_width, strwidth, lisp_string_width, chars_in_text)
12832 (multibyte_chars_in_text, parse_str_as_multibyte)
12833 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
12834 (str_as_unibyte, str_to_unibyte, string_count_byte8)
12835 (string_escape_byte8, Fget_byte):
12836 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 12837 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
12838 avoid mishandling large integers.
12839 * character.h: Adjust decls to match defn changes elsewhere.
12840 * charset.c (load_charset_map_from_file, find_charsets_in_text)
12841 (Ffind_charset_region):
12842 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12843 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
12844 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 12845 Don't assume fixnum fits in int.
d311d28c
PE
12846 (load_charset_map_from_vector, Fmap_charset_chars):
12847 Remove now-unnecessary CHECK_NATNUMs.
12848 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
12849 Don't rely on undefined behavior with signed left shift overflow.
12850 Don't assume unsigned int fits into fixnum, or that fixnum fits
12851 into unsigned int. Don't require max_code to be a valid fixnum;
12852 that's not true for gb10830 4-byte on a 32-bit host. Allow
12853 invalid_code to be a cons, for the same reason. Require code_offset
12854 to be a character. Avoid int overflow if max_char is close
12855 to INT_MAX.
12856 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
12857 this is intended anyway and avoids some undefined behavior.
12858 (load_charset_map): Pass unsigned, not int, as 2nd arg of
12859 INDEX_TO_CODE_POINT, as that's what it expects.
12860 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
12861 * charset.h (DECODE_CHAR): Return int, not unsigned;
12862 this is what was intended anyway, and it avoids undefined behavior.
12863 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
12864 integer-overflow issues.
12865 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
12866 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
12867 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
12868 * chartab.c (Fmake_char_table, Fset_char_table_range)
12869 (uniprop_get_decoder, uniprop_get_encoder):
12870 Don't assume fixnum fits in int.
12871 * cmds.c (move_point): New function, that does the gist of
12872 Fforward_char and Fbackward_char, but does so while checking
12873 for integer overflow more accurately.
c96e5d6a 12874 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
12875 (Fforward_line, Fend_of_line, internal_self_insert)
12876 (internal_self_insert):
12877 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12878 Fix a FIXME, by checking for integer overflow when calculating
12879 target_clm and actual_clm.
12880 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 12881 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
12882 (ASSURE_DESTINATION, coding_alloc_by_realloc)
12883 (coding_alloc_by_making_gap, alloc_destination)
12884 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
12885 (encode_coding_utf_16, detect_coding_emacs_mule)
12886 (decode_coding_emacs_mule, encode_coding_emacs_mule)
12887 (detect_coding_iso_2022, decode_coding_iso_2022)
12888 (encode_invocation_designation, encode_designation_at_bol)
12889 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
12890 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
12891 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
12892 (encode_coding_ccl, encode_coding_raw_text)
12893 (detect_coding_charset, decode_coding_charset)
12894 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
12895 (produce_composition, produce_charset, produce_annotation)
12896 (decode_coding, handle_composition_annotation)
12897 (handle_charset_annotation, consume_chars, decode_coding_gap)
12898 (decode_coding_object, encode_coding_object, detect_coding_system)
12899 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
12900 (code_convert_region, code_convert_string)
8f50130c
PE
12901 (Fdefine_coding_system_internal)
12902 (coding_set_source, coding_set_destination):
d311d28c
PE
12903 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12904 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
12905 (Fdefine_coding_system_internal):
12906 Don't assume fixnums fit in int.
12907 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 12908 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
12909 (Funencodable_char_position, Fcheck_coding_systems_region)
12910 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 12911 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 12912 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 12913 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 12914 Don't access memory outside of the args array.
d311d28c 12915 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
12916 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
12917 result of ENCODE_CHAR.
d311d28c
PE
12918 * coding.h: Adjust decls to match defn changes elsewhere.
12919 (struct coding_system):
12920 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12921 * composite.c (get_composition_id, find_composition)
12922 (run_composition_function, update_compositions)
12923 (compose_text, composition_gstring_put_cache)
12924 (composition_gstring_p, composition_gstring_width)
12925 (fill_gstring_header, fill_gstring_body, autocmp_chars)
12926 (composition_compute_stop_pos, composition_reseat_it)
12927 (composition_update_it, struct position_record)
12928 (find_automatic_composition, composition_adjust_point)
12929 (Fcomposition_get_gstring, Ffind_composition_internal):
12930 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12931 (update_compositions):
12932 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12933 * composite.h: Adjust decls to match defn changes elsewhere.
12934 (struct composition):
12935 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12936 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
12937 Do not attempt to compute the address of the object just before a
12938 buffer; this is not portable.
12939 (Faref, Faset):
12940 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12941 (Faset): Use int, not EMACS_INT, where int is wide enough.
12942 (Fstring_to_number): Don't assume fixnums fit in int.
12943 (Frem): Don't assume arg is nonnegative.
12944 * dbusbind.c (xd_append_arg): Check for integers out of range.
12945 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 12946 (extract_signed, extract_unsigned): New functions.
243e0530
PE
12947 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
12948 (xd_get_connection_references): Return ptrdiff_t, not int.
12949 All uses changed.
12950 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
12951 (xd_read_message_1):
12952 Use int, not unsigned, where the dbus API uses int.
12953 (Fdbus_message_internal): Don't overflow mtype.
12954 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
12955 * dired.c (directory_files_internal, file_name_completion, scmp)
12956 (file_name_completion_stat):
12957 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12958 (file_name_completion): Don't overflow matchcount.
12959 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
12960 * dispextern.h: Adjust decls to match defn changes elsewhere.
12961 (struct text_pos, struct glyph, struct bidi_saved_info)
12962 (struct bidi_string_data, struct bidi_it, struct composition_it)
12963 (struct it):
12964 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12965 (struct display_pos, struct composition_it, struct it):
12966 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12967 * dispnew.c (increment_matrix_positions)
12968 (increment_row_positions, mode_line_string)
12969 (marginal_area_string):
12970 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 12971 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
12972 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12973 (duration_to_sec_usec): New function, to check for overflow better.
12974 (Fsleep_for, sit_for): Use it.
12975 * doc.c (get_doc_string, store_function_docstring):
12976 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12977 (get_doc_string, Fsnarf_documentation):
12978 Use int, not EMACS_INT, where int is wide enough.
12979 (get_doc_string):
12980 Use SAFE_ALLOCA, not alloca.
12981 Check for overflow when converting EMACS_INT to off_t.
12982 * doprnt.c (doprnt):
12983 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12984 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
12985 Don't assume uid_t fits into fixnum.
12986 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
12987 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
12988 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
12989 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
12990 (general_insert_function)
12991 (Finsert_char, make_buffer_string, make_buffer_string_both)
12992 (update_buffer_properties, Fbuffer_substring)
12993 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
12994 (Fsubst_char_in_region, check_translation)
12995 (Ftranslate_region_internal, save_restriction_restore, Fformat)
12996 (transpose_markers, Ftranspose_regions):
12997 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12998 (clip_to_bounds): Move to lisp.h as an inline function).
12999 (Fconstrain_to_field): Don't assume integers are nonnegative.
13000 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
13001 (Fsubst_char_in_region, Fsave_restriction):
13002 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13003 (Femacs_pid): Don't assume pid_t fits into fixnum.
13004 (lo_time): Use int, not EMACS_INT, when int suffices.
13005 (lisp_time_argument): Check for usec out of range.
13006 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
13007 (Fuser_login_name, Fuser_full_name): Signal an error
13008 if a uid argument is out of range, rather than relying on
13009 undefined behavior.
c8d5c857
PE
13010 (Fformat_time_string): Remove now-unnecessary check.
13011 lisp_time_argument checks for out-of-range usec now.
243e0530 13012 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
13013 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
13014 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
13015 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
13016 (init_cmdargs, Fdump_emacs):
13017 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13018 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
13019 the bottom (typically) 32 bits of the fixnum.
13020 * eval.c (specpdl_size, call_debugger):
13021 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13022 (when_entered_debugger, Fbacktrace_debug):
13023 Don't assume fixnum can fit in int.
13024 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
13025 the object just before a buffer; this is not portable.
13026 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
13027 (grow_specpdl, unbind_to):
13028 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13029 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
13030 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 13031 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
13032 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
13033 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
13034 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13035 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
13036 (a_write, e_write):
13037 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13038 (Fcopy_file, non_regular_nbytes, read_non_regular)
13039 (Finsert_file_contents):
13040 Use int, not EMACS_INT, where int is wide enough.
13041 (READ_BUF_SIZE): Verify that it fits in int.
13042 (Finsert_file_contents): Check that counts are in proper range,
13043 rather than assuming fixnums fit into ptrdiff_t etc.
13044 Don't assume fixnums fit into int.
125b3835 13045 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
13046 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
13047 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
13048 (string_char_to_byte, string_byte_to_char)
13049 (string_make_multibyte, string_to_multibyte)
13050 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
13051 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
13052 (substring_both, Fdelete, internal_equal, Ffillarray)
13053 (Fclear_string, mapcar1)
13054 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
13055 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
13056 (larger_vector, make_hash_table, maybe_resize_hash_table)
13057 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
13058 (Fmaphash, secure_hash):
13059 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13060 (concat): Check for string index and length overflow.
13061 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
13062 (Frequire):
13063 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13064 (larger_vector): New API (vec, incr_min, size_max) replaces old
13065 one (vec, new_size, init). This catches size overflow.
13066 INIT was removed because it was always Qnil.
13067 All callers changed.
13068 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
13069 the upper bound on a hash table index size.
13070 (make_hash_table, maybe_resize_hash_table): Use it.
13071 (secure_hash): Computer start_byte and end_byte only after
13072 they're known to be in ptrdiff_t range.
13073 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
13074 (Ffont_get_glyphs, Ffont_at):
13075 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13076 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
13077 (Flist_fonts, Fopen_font):
13078 Don't assume fixnum can fit in int.
13079 (check_gstring): Don't assume index can fit in int.
13080 (font_match_p): Check that fixnum is a character, not a nonnegative
13081 fixnum, since the later code needs to stuff it into an int.
13082 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
13083 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
13084 conversion overflow issues.
13085 (Fopen_font): Check for integer out of range.
13086 (Ffont_get_glyphs): Don't assume index can fit in int.
13087 * font.h: Adjust decls to match defn changes elsewhere.
13088 * fontset.c (reorder_font_vector): Redo score calculation to avoid
13089 integer overflow.
13090 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
13091 printmax_t, where ptrdiff_t is wide enough.
13092 (Finternal_char_font):
13093 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13094 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
13095 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
13096 (Fset_frame_position, x_set_frame_parameters)
13097 (x_set_line_spacing, x_set_border_width)
13098 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
13099 Check that fixnums are in proper range for system types.
13100 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
13101 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13102 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
13103 Use SAFE_ALLOCA_LISP, not alloca.
13104 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
13105 intptr_t is wide enough.
13106 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
13107 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
13108 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
13109 Check for fixnum out of range.
13110 * ftfont.c (ftfont_list): Don't assume index fits in int.
13111 Check that fixnums are in proper range for system types.
13112 (ftfont_shape_by_flt):
13113 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
13114 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
13115 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13116 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
13117 Check that fixnums are in proper range for system types.
13118 * gnutls.h: Adjust decls to match defn changes elsewhere.
13119 * gtkutil.c (xg_dialog_run):
13120 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13121 (update_frame_tool_bar):
13122 Check that fixnums are in proper range for system types.
13123 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 13124 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
13125 * indent.c (last_known_column, last_known_column_point):
13126 (current_column_bol_cache):
13127 (skip_invisible, current_column, check_display_width):
13128 (check_display_width, scan_for_column, current_column_1)
13129 (Findent_to, Fcurrent_indentation, position_indentation)
13130 (indented_beyond_p, Fmove_to_column, compute_motion):
13131 (Fcompute_motion, Fvertical_motion):
13132 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13133 (last_known_column_modified): Use EMACS_INT, not int.
13134 (check_display_width):
13135 (Fcompute_motion):
13136 Check that fixnums and floats are in proper range for system types.
13137 (compute_motion): Don't assume index or fixnum fits in int.
13138 (compute_motion, Fcompute_motion):
13139 Use int, not EMACS_INT, when it is wide enough.
13140 (vmotion): Omit local var start_hpos that is always 0; that way
13141 we don't need to worry about overflow in expressions involving it.
13142 * indent.h: Adjust decls to match defn changes elsewhere.
13143 (struct position):
13144 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13145 Use int, not EMACS_INT, where int is wide enough.
13146 Remove unused members ovstring_chars_done and tab_offset;
13147 all uses removed.
13148 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
13149 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
13150 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
13151 (make_gap, copy_text, insert, insert_and_inherit)
13152 (insert_before_markers, insert_before_markers_and_inherit)
13153 (insert_1, count_combining_before, count_combining_after)
13154 (insert_1_both, insert_from_string)
13155 (insert_from_string_before_markers, insert_from_string_1)
13156 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
13157 (adjust_after_replace, adjust_after_insert, replace_range)
13158 (replace_range_2, del_range, del_range_1, del_range_byte)
13159 (del_range_both, del_range_2, modify_region)
13160 (prepare_to_modify_buffer, signal_before_change)
13161 (signal_after_change, Fcombine_after_change_execute):
13162 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13163 * intervals.c (traverse_intervals, rotate_right, rotate_left)
13164 (balance_an_interval, split_interval_right, split_interval_left)
13165 (find_interval, next_interval, update_interval)
13166 (adjust_intervals_for_insertion, delete_node, delete_interval)
13167 (interval_deletion_adjustment, adjust_intervals_for_deletion)
13168 (static_offset_intervals, offset_intervals)
13169 (merge_interval_right, merge_interval_left, make_new_interval)
13170 (graft_intervals_into_buffer, temp_set_point_both)
13171 (temp_set_point, set_point, adjust_for_invis_intang)
13172 (set_point_both, move_if_not_intangible, get_property_and_range)
13173 (get_local_map, copy_intervals, copy_intervals_to_string)
13174 (compare_string_intervals, set_intervals_multibyte_1):
13175 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13176 * intervals.h: Adjust decls to match defn changes elsewhere.
13177 (struct interval):
13178 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13179 * keyboard.c (this_command_key_count, this_single_command_key_start)
13180 (before_command_key_count, before_command_echo_length, echo_now)
13181 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
13182 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
13183 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
13184 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
13185 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13186 (last_non_minibuf_size, last_point_position, echo_truncate)
13187 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
13188 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
13189 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
13190 (stuff_buffered_input):
13191 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13192 (last_auto_save, command_loop_1, read_char):
13193 Use EMACS_INT, not int, to avoid integer overflow.
13194 (record_char): Avoid overflow in total_keys computation.
13195 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
13196 * keyboard.h: Adjust decls to match defn changes elsewhere.
13197 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
13198 (Fkey_description, Fdescribe_vector, Flookup_key):
13199 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13200 (click_position): New function, to check that positions are in range.
13201 (Fcurrent_active_maps):
13202 (describe_command):
13203 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13204 (Faccessible_keymaps, Fkey_description):
13205 (preferred_sequence_p):
13206 Don't assume fixnum can fit into int.
13207 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
13208 Check for integer overflow in size calculations.
13209 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
13210 avoid mishandling large integers.
13211 * lisp.h: Adjust decls to match defn changes elsewhere.
13212 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
13213 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
13214 (struct Lisp_Marker):
13215 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13216 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
13217 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
13218 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
13219 All callers changed.
13220 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
13221 Assume the arg has valid form, since it always does.
13222 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
13223 unsigned integer system type.
13224 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
13225 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
13226 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13227 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
13228 (duration_to_sec_usec): New decl.
13229 * lread.c (read_from_string_index, read_from_string_index_byte)
13230 (read_from_string_limit, readchar, unreadchar, openp)
13231 (read_internal_start, read1, oblookup):
13232 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13233 (Fload, readevalloop, Feval_buffer, Feval_region):
13234 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13235 (openp): Check for out-of-range argument to 'access'.
13236 (read1): Use int, not EMACS_INT, where int is wide enough.
13237 Don't assume fixnum fits into int.
6efdadfd 13238 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
13239 (read_filtered_event): Use duration_to_sec_usec
13240 to do proper overflow checking on durations.
d311d28c
PE
13241 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
13242 in size calculation.
13243 (Fexecute_kbd_macro):
13244 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13245 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
13246 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
13247 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
13248 (set_marker_both, set_marker_restricted_both, marker_position)
13249 (marker_byte_position, Fbuffer_has_markers_at):
13250 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13251 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 13252 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
13253 It now merely ensures that the menu is large enough, without
13254 necessarily growing it, as this avoids some integer overflow issues.
13255 All callers changed.
13256 (keymap_panes, parse_single_submenu, Fx_popup_menu):
13257 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13258 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
13259 Use SAFE_ALLOCA_LISP, not alloca.
13260 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
13261 to EMACS_INT. Check that fixnums are in proper range for system types.
13262 * minibuf.c (minibuf_prompt_width, string_to_object)
13263 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
13264 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
13265 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13266 (get_minibuffer, read_minibuf_unwind):
13267 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13268 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
13269 this simplifies overflow checking. All callers changed.
13270 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
13271 (Ftest_completion):
13272 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13273 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
13274 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
13275 Check that fixnums are in proper range for system types.
13276 (Fx_create_frame, Fx_show_tip):
13277 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13278 * nsfont.m (ns_findfonts, nsfont_list_family):
13279 Don't assume fixnum fits in long.
13280 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
13281 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13282 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
13283 wide enough.
17fdb222 13284 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
13285 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13286 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
13287 (PRINTDECLARE, PRINTPREPARE):
13288 (strout, print_string):
13289 (print, print_preprocess, print_check_string_charset_prop)
13290 (print_object):
13291 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13292 (PRINTDECLARE):
13293 (temp_output_buffer_setup, Fprin1_to_string, print_object):
13294 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13295 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 13296 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 13297 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
13298 (print_error_message): Use SAFE_ALLOCA, not alloca.
13299 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
13300 (print_depth, new_backquote_output, print_number_index):
13301 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
13302 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
13303 (Fset_process_window_size, Fformat_network_address)
13304 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 13305 (sigchld_handler):
d311d28c 13306 Check that fixnums are in proper range for system types.
d44287d4 13307 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
13308 Check for process-ids out of pid_t range rather than relying on
13309 undefined behavior.
e4d81efc 13310 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
13311 (Fformat_network_address, read_process_output, send_process)
13312 (Fprocess_send_region, status_notify):
13313 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13314 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
13315 (wait_reading_process_output, read_process_output, exec_sentinel):
13316 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13317 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
13318 (Faccept_process_output): Use duration_to_sec_usec to do proper
13319 overflow checking on durations.
dde14581
PE
13320 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
13321 Don't assume pid_t fits in int.
02481186
PE
13322 * process.h (struct Lisp_Process): Members tick and update_tick
13323 are now of type EMACS_INT, not int.
b62b53e8
PE
13324 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
13325 configured --with-wide-int.
d311d28c
PE
13326 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
13327 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
13328 * search.c (looking_at_1, string_match_1):
13329 (fast_string_match, fast_c_string_match_ignore_case)
13330 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
13331 (scan_newline, find_before_next_newline, search_command)
13332 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
13333 (set_search_regs, wordify):
13334 (Freplace_match):
13335 (Fmatch_data):
13336 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13337 (string_match_1, search_buffer, set_search_regs):
13338 (Fmatch_data):
13339 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13340 (wordify): Check for overflow in size calculation.
13341 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
13342 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
13343 Check that fixnums are in proper range for system types.
13344 * sound.c (struct sound_device)
13345 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
13346 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13347 (Fplay_sound_internal):
13348 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 13349 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
13350 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
13351 (Fparse_partial_sexp):
13352 Don't assume fixnums can fit in int.
13353 (struct lisp_parse_state, find_start_pos, find_start_value)
13354 (find_start_value_byte, find_start_begv)
13355 (update_syntax_table, char_quoted, dec_bytepos)
13356 (find_defun_start, prev_char_comend_first, back_comment):
13357 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
13358 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
13359 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13360 (Finternal_describe_syntax_value): Check that match_lisp is a
13361 character, not an integer, since the code stuffs it into int.
13362 (scan_words, scan_sexps_forward):
13363 Check that fixnums are in proper range for system types.
13364 (Fforward_word):
13365 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13366 (scan_sexps_forward):
13367 Use CHARACTERP, not INTEGERP, since the value must fit into int.
13368 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
13369 * syntax.h: Adjust decls to match defn changes elsewhere.
13370 (struct gl_state_s):
13371 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
13372 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
13373 MOST_POSITIVE_FIXNUM.
d311d28c
PE
13374 * sysdep.c (wait_for_termination_1, wait_for_termination)
13375 (interruptible_wait_for_termination, mkdir):
13376 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
13377 (emacs_read, emacs_write):
13378 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
13379 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
13380 and double all fit in int.
d311d28c
PE
13381 * term.c (set_tty_color_mode):
13382 Check that fixnums are in proper range for system types.
13383 * termhooks.h (struct input_event):
13384 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13385 * textprop.c (validate_interval_range, interval_of)
13386 (Fadd_text_properties, set_text_properties_1)
13387 (Fremove_text_properties, Fremove_list_of_text_properties)
13388 (Ftext_property_any, Ftext_property_not_all)
13389 (copy_text_properties, text_property_list, extend_property_ranges)
13390 (verify_interval_modification):
13391 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13392 (Fnext_single_char_property_change)
13393 (Fprevious_single_char_property_change):
13394 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
13395 (copy_text_properties):
13396 Check for integer overflow in index calculation.
d311d28c
PE
13397 * undo.c (last_boundary_position, record_point, record_insert)
13398 (record_delete, record_marker_adjustment, record_change)
13399 (record_property_change):
13400 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13401 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
13402 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13403 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
13404 (Fx_hide_tip, Fx_file_dialog):
13405 * w32menu.c (set_frame_menubar):
13406 Use ptrdiff_t, not int, for consistency with rest of code.
13407 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
13408 (select_window, Fdelete_other_windows_internal)
13409 (window_scroll_pixel_based, window_scroll_line_based)
13410 (Frecenter, Fset_window_configuration):
13411 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13412 (Fset_window_hscroll, run_window_configuration_change_hook)
13413 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 13414 (Fscroll_other_window, Frecenter):
d311d28c
PE
13415 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13416 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
13417 Don't assume fixnum fits in int.
13418 (Fset_window_scroll_bars):
13419 Check that fixnums are in proper range for system types.
13420 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
13421 (string_pos, c_string_pos, number_of_chars, init_iterator)
13422 (in_ellipses_for_invisible_text_p, init_from_display_pos)
13423 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
13424 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
13425 (face_before_or_after_it_pos, handle_invisible_prop)
13426 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
13427 (display_prop_intangible_p, string_buffer_position_lim)
13428 (string_buffer_position, handle_composition_prop, load_overlay_strings)
13429 (get_overlay_strings_1, get_overlay_strings)
13430 (iterate_out_of_display_property, forward_to_next_line_start)
13431 (back_to_previous_visible_line_start, reseat, reseat_to_string)
13432 (get_next_display_element, set_iterator_to_next)
13433 (get_visually_first_element, compute_stop_pos_backwards)
13434 (handle_stop_backwards, next_element_from_buffer)
13435 (move_it_in_display_line_to, move_it_in_display_line)
13436 (move_it_to, move_it_vertically_backward, move_it_by_lines)
13437 (add_to_log, message_dolog, message_log_check_duplicate)
13438 (message2, message2_nolog, message3, message3_nolog
13439 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
13440 (current_message_1, truncate_echo_area, truncate_message_1)
13441 (set_message, set_message_1, store_mode_line_noprop)
13442 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
13443 (text_outside_line_unchanged_p, check_point_in_composition)
13444 (reconsider_clip_changes)
13445 (redisplay_internal, set_cursor_from_row, try_scrolling)
13446 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
13447 (redisplay_window, find_last_unchanged_at_beg_row)
13448 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
13449 (trailing_whitespace_p, find_row_edges, display_line)
13450 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
13451 (display_mode_element, store_mode_line_string)
13452 (pint2str, pint2hrstr, decode_mode_spec)
13453 (display_count_lines, display_string, draw_glyphs)
13454 (x_produce_glyphs, x_insert_glyphs)
13455 (rows_from_pos_range, mouse_face_from_buffer_pos)
13456 (fast_find_string_pos, mouse_face_from_string_pos)
13457 (note_mode_line_or_margin_highlight, note_mouse_highlight):
13458 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13459 (safe_call, init_from_display_pos, handle_fontified_prop)
13460 (handle_single_display_spec, load_overlay_strings)
13461 (with_echo_area_buffer, setup_echo_area_for_printing)
13462 (display_echo_area, echo_area_display)
13463 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
13464 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
13465 (redisplay_window, dump_glyph_row, display_mode_line)
13466 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 13467 (handle_display_spec, display_prop_string_p):
d311d28c
PE
13468 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13469 (handle_single_display_spec, build_desired_tool_bar_string)
13470 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
13471 (get_specified_cursor_type):
13472 Check that fixnums are in proper range for system types.
13473 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
13474 (Flookup_image_map):
13475 Don't assume fixnums fit in int.
13476 (compare_overlay_entries):
13477 Avoid mishandling comparisons due to subtraction overflow.
13478 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
13479 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
13480 (handle_tool_bar_click):
13481 Use int, not unsigned, since we prefer signed and the signedness
13482 doesn't matter here.
13483 (get_next_display_element, next_element_from_display_vector):
13484 Use int, not EMACS_INT, when int is wide enough.
13485 (start_hourglass): Use duration_to_sec_usec to do proper
13486 overflow checking on durations.
13487 * xfaces.c (Fbitmap_spec_p):
13488 Check that fixnums are in proper range for system types.
13489 (compare_fonts_by_sort_order):
13490 Avoid mishandling comparisons due to subtraction overflow.
13491 (Fx_family_fonts, realize_basic_faces):
13492 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13493 (Fx_family_fonts):
13494 Don't assume fixnum fits in int.
13495 Use SAFE_ALLOCA_LISP, not alloca.
13496 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
13497 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
13498 (face_at_buffer_position, face_for_overlay_string)
13499 (face_at_string_position):
13500 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13501 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
13502 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
13503 (Fx_show_tip):
13504 Check that fixnums are in proper range for system types.
13505 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
13506 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
13507 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13508 (Fx_change_window_property): Don't assume fixnums fit in int.
13509 * xfont.c (xfont_chars_supported):
13510 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13511 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
13512 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
13513 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13514 * xml.c (parse_region):
13515 * xrdb.c (magic_file_p):
13516 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13517 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
13518 (x_get_local_selection, x_reply_selection_request)
13519 (x_handle_selection_request, wait_for_property_change):
13520 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13521 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
13522 short is wide enough.
13523 (x_send_client_event): Don't assume fixnum fits in int.
13524 * xterm.c (x_x_to_emacs_modifiers):
13525 Don't assume EMACS_INT overflows nicely into int.
13526 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
13527 may come from Lisp.
13528 (handle_one_xevent): NATNUMP can eval its arg twice.
13529 (x_connection_closed):
13530 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13531 * xterm.h: Adjust decls to match defn changes elsewhere.
13532 (struct scroll_bar): Use struct vectorlike_header
13533 rather than rolling our own approximation.
13534 (SCROLL_BAR_VEC_SIZE): Remove; not used.
13535
c6574eb5
GM
135362012-05-25 Glenn Morris <rgm@gnu.org>
13537
13538 * lisp.mk (lisp): Update for more files being compiled now.
13539
e8d32c7e
SM
135402012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
13541
48def666
SM
13542 * lread.c: Remove `read_pure' which makes no difference.
13543 (read_pure): Remove var.
13544 (unreadpure): Remove function.
13545 (readevalloop): Don't call read_list with -1 flag.
13546 (read1, read_vector): Don't test read_pure any more.
13547 (read_list): Simplify.
13548
e8d32c7e
SM
13549 * fileio.c, character.h: Minor style tweaks.
13550
4b2addb7
DA
135512012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
13552
13553 * window.h (clip_changed): Remove useless declaration.
13554
584461b2
JB
135552012-05-22 Juanma Barranquero <lekktu@gmail.com>
13556
13557 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
13558 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
13559
34374650
PE
135602012-05-22 Paul Eggert <eggert@cs.ucla.edu>
13561
13562 Remove src/m/*.
13563 This directory predates autoconf and is no longer needed nowadays.
13564 Move its few remaining bits of functionality to where they're needed.
13565 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
13566 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
13567 * m/template.h: Remove.
13568 * Makefile.in (M_FILE): Remove. All uses removed.
13569 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
13570 * lisp.h (USE_LSB_TAG):
13571 * mem-limits.h (EXCEEDS_LISP_PTR):
13572 Use VAL_MAX, not VALBITS, in #if.
13573 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
13574 (EMACS_UINT): Define unconditionally now.
13575 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
13576 (BITS_PER_EMACS_INT): New constants, replacing
13577 what used to be in config.h, but not useful in #if.
13578 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
13579 define them any more.
13580 (VAL_MAX): New macro.
13581 (VALMASK): Use it.
13582 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
13583 BITS_PER_EMACS_INT, in #if.
13584 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
13585 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
13586 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
13587 * s/ms-w32.h (DATA_START):
13588 Move here from removed file m/intel386.h.
13589 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
13590 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
13591
261cb4bb
PE
135922012-05-21 Paul Eggert <eggert@cs.ucla.edu>
13593
13594 Assume C89 or later.
13595 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
13596 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
13597 (xrealloc):
13598 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
13599 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
13600 * textprop.c, tparam.c (NULL): Remove.
13601 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
13602 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
13603 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
13604 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
13605 * xterm.c (input_signal_count): Assume volatile works.
13606
ff23cd9f
KB
136072012-05-21 Ken Brown <kbrown@cornell.edu>
13608
13609 * xgselect.c (xg_select): Fix first argument in call to 'select'
13610 (bug#11508).
13611
1b170bc6
KB
136122012-05-20 Ken Brown <kbrown@cornell.edu>
13613
13614 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 13615 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 13616
b2f4d39f
KB
136172012-05-19 Ken Brown <kbrown@cornell.edu>
13618
13619 * xfns.c (x_in_use): Remove `static' qualifier.
13620 * xterm.h (x_in_use): Declare.
13621 * xgselect.c: Include xterm.h.
13622 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
13623 and `display_arg' (bug#9754).
13624
003fdae2
PE
136252012-05-19 Paul Eggert <eggert@cs.ucla.edu>
13626
9232a6d9
PE
13627 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
13628
003fdae2
PE
13629 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
13630 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
13631
784b56e2
EZ
136322012-05-18 Eli Zaretskii <eliz@gnu.org>
13633
13634 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
13635
13636 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 13637 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
13638
13639 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
13640 reference to image_cache->refcount.
13641 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
13642
a0a79cde
JL
136432012-05-17 Juri Linkov <juri@jurta.org>
13644
13645 * search.c (Fword_search_regexp, Fword_search_backward)
13646 (Fword_search_forward, Fword_search_backward_lax)
13647 (Fword_search_forward_lax): Move functions to isearch.el
13648 (bug#10145, bug#11381).
13649
b0572523
PE
136502012-05-16 Paul Eggert <eggert@cs.ucla.edu>
13651
13652 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
13653
9660f5fc
SM
136542012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
13655
13656 * lread.c (init_obarray): Declare Qt and Qnil as special.
13657
4374de83
GM
136582012-05-14 Glenn Morris <rgm@gnu.org>
13659
13660 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 13661 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 13662
dc44c39a
PE
136632012-05-14 Paul Eggert <eggert@cs.ucla.edu>
13664
078c97cb
PE
13665 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
13666
dc44c39a
PE
13667 * unexaix.c: Port to more-recent AIX compilers.
13668 (report_error, report_error_1, make_hdr, copy_sym)
13669 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
13670 Make arguments const char *, not char *, to avoid violations of C
13671 standard and to fix some AIX warnings reported by Gilles Pion.
13672
e18afed7 136732012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
13674
13675 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
13676 already have overlays loaded.
13677 (handle_single_display_spec): Before returning without displaying
13678 fringe bitmap, synchronize the bidi iterator with the main display
13679 iterator, by calling iterate_out_of_display_property.
13680 (iterate_out_of_display_property): Detect buffer iteration by
13681 testing that it->string is a Lisp string.
13682 (get_next_display_element): When the current object is exhausted,
13683 and there's something on it->stack, call set_iterator_to_next to
13684 proceed with what's on the stack, instead of returning zero.
13685 (set_iterator_to_next): If called at the end of a Lisp string,
13686 proceed to consider_string_end without incrementing string
13687 position. Don't increment display vector index past the end of
13688 the display vector. (Bug#11417)
c8fb9dc6
EZ
13689 (pos_visible_p): Don't report a position visible when move_it_to
13690 stopped at the last line of window, which happens to be scanned
13691 backwards by the bidi iteration. (Bug#11464)
ac268e67 13692
e18afed7 136932012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
13694
13695 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
13696 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
13697 are on a TTY, and thus unable to display on the fringes.
13698 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
13699 so we need to signal to the caller that this is a "replacing"
13700 display spec. This fixes display when the spec is invalid or we
13701 are on a TTY.
13702
e18afed7 137032012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
13704
13705 * unexaix.c (make_hdr): Fix typo in prototype.
13706 This bug broke the build on AIX. Problem reported by Gilles Pion.
13707
9d0a235a
MA
137082012-05-14 Michael Albinus <michael.albinus@gmx.de>
13709
13710 * keyboard.c (kbd_buffer_get_event): Read special events also in
13711 batch mode. (Bug#11415)
13712
9e6b06ed
GM
137132012-05-12 Glenn Morris <rgm@gnu.org>
13714
13715 * ns.mk: Update for ns_appbindir no longer having trailing "/".
13716
c1a1d7a3
EZ
137172012-05-12 Eli Zaretskii <eliz@gnu.org>
13718
13719 * lisp.mk (lisp): Add newcomment.elc.
13720
3fe7cdc8
GM
137212012-05-12 Glenn Morris <rgm@gnu.org>
13722
13723 * Makefile.in (MKDIR_P): New, set by configure.
13724 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
13725
53f7d2c0
PE
137262012-05-11 Paul Eggert <eggert@cs.ucla.edu>
13727
13728 Remove unused function hourglass_started.
13729 * dispextern.h (hourglass_started):
13730 * w32fns.c (hourglass_started):
13731 * xdisp.c (hourglass_started): Remove.
13732
75aafb17
JB
137332012-05-10 Juanma Barranquero <lekktu@gmail.com>
13734
13735 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
13736 Update dependencies.
13737
12959e8e
PE
137382012-05-10 Paul Eggert <eggert@cs.ucla.edu>
13739
97107e2e
PE
13740 * xgselect.c (xg_select): Put maxfds+1 into a var.
13741 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
13742
12959e8e
PE
13743 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
13744
836d29b3
DA
137452012-05-10 Dave Abrahams <dave@boostpro.com>
13746
13747 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
13748 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
13749
5cb67954
MA
137502012-05-09 Michael Albinus <michael.albinus@gmx.de>
13751
13752 * dbusbind.c (xd_registered_buses): New internal Lisp object.
cccaebd2 13753 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
5cb67954
MA
13754 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
13755 Initialize xd_registered_buses.
13756
3478ec45
PE
137572012-05-09 Paul Eggert <eggert@cs.ucla.edu>
13758
b263a6b0
PE
13759 Untag more efficiently if USE_LSB_TAG.
13760 This is based on a proposal by YAMAMOTO Mitsuharu in
13761 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
13762 For an admittedly artificial (nth 8000 longlist) benchmark on
13763 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
13764 Emacs's overall text size by 1%.
13765 * lisp.h (XUNTAG): New macro.
13766 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
13767 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
13768 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
13769 * eval.c (Fautoload):
13770 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
13771 * frame.h (XFRAME): Use XUNTAG.
13772
3478ec45
PE
13773 Port recent dbusbind.c changes to 32-bit --with-wide-int.
13774 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
13775 Remove unportable assumptions about print widths of types like
13776 dbus_uint32_t.
13777 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
13778 intptr_t when converting between pointer and integer, to avoid GCC
13779 warnings about wrong width.
13780
666b903b 137812012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
13782
13783 * w32proc.c (new_child): Force Windows to reserve only 64KB of
13784 stack for each reader_thread, instead of defaulting to 8MB
13785 determined by the linker. This avoids failures in creating
13786 subprocesses on Windows 7, see the discussion in this thread:
13787 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
13788
b120cc17
JC
137892012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
13790
13791 Fix up display of the *Minibuf-0* buffer in the mini window.
13792 * keyboard.c (read_char): Don't clear the echo area if there's no
13793 message to clear.
13794 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 13795 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 13796
9a4b36f8
MA
137972012-05-07 Michael Albinus <michael.albinus@gmx.de>
13798
13799 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
13800 batch mode.
13801
e5f9458f
CY
138022012-05-06 Chong Yidong <cyd@gnu.org>
13803
13804 * lisp.mk (lisp): Update.
13805
eceeb5fc 138062012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
13807
13808 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
13809
71873e2b
SM
138102012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
13811
13812 * data.c (PUT_ERROR): New macro.
13813 (syms_of_data): Use it. Add new error type `user-error'.
13814 * undo.c (user_error): New function.
13815 (Fprimitive_undo): Use it.
13816 * print.c (print_error_message): Adjust print style for `user-error'.
13817 * keyboard.c (user_error): New function.
13818 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
13819
ab0fa4e4
PE
138202012-05-03 Paul Eggert <eggert@cs.ucla.edu>
13821
13822 Do not limit current-time-string to years 1000..9999.
13823 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
13824 (Fcurrent_time_string): Support any year that is supported by the
13825 underlying localtime representation. Don't use asctime, as it
13826 has undefined behavior for years outside the range -999..9999.
13827
7ed806a7
PE
138282012-05-02 Paul Eggert <eggert@cs.ucla.edu>
13829
13830 Fix race conditions involving setenv, gmtime, localtime, asctime.
13831 Without this fix, interrupts could mess up code that uses these
13832 nonreentrant functions, since setting TZ invalidates existing
13833 tm_zone or tzname values, and since most of these functions return
13834 pointers to static storage.
13835 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
13836 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
13837 Grow the critical sections to include not just invoking
13838 localtime/gmtime, but also accessing these functions' results
13839 including their tm_zone values if any, and any related TZ setting.
13840 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
13841 so that the struct tm is saved in the critical section.
13842 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
13843 motivated by the fact that memory allocation needs to be outside
13844 the critical section.
13845
0c16dfed
DA
138462012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
13847
13848 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
13849 with RESET_INTERVAL.
13850
13851 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
13852 Remove duplicated buffer name initialization.
13853
3f83ace8
JM
138542012-05-02 Jim Meyering <jim@meyering.net>
13855
13856 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
13857
c7b8541e
JM
13858 * xfns.c (x_window): Use xstrdup (Bug#11375).
13859
90207a15 138602012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
13861
13862 * xdisp.c (pos_visible_p): If already at a newline from the
13863 display string before the 'while' loop, don't walk back the glyphs
13864 from it3.glyph_row. Solves assertion violation when the display
13865 string begins with a newline (egg.el). (Bug#11367)
13866
b593d6a9
AH
138672012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
13868
13869 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
13870 Move to simple.el.
13871
4737362e
GM
138722012-05-01 Glenn Morris <rgm@gnu.org>
13873
99cf43f9
GM
13874 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
13875 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
13876 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
13877 All were removed before 23.1.
13878
9311dcff
GM
13879 * dispnew.c: Remove HAVE_LIBNCURSES test;
13880 it is always true on relevant platforms.
13881
4d5c6349
GM
13882 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
13883 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
13884
4737362e
GM
13885 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
13886
74dd3a6b
AS
138872012-04-30 Andreas Schwab <schwab@linux-m68k.org>
13888
13889 * .gdbinit (xpr): Remove checks for no longer existing misc types.
13890 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
13891 Remove.
13892
13c379ee
PE
138932012-04-28 Paul Eggert <eggert@cs.ucla.edu>
13894
13895 Do not avoid creating empty evaporating overlays (Bug#9642).
13896 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
13897 That is, do not delete an evaporating overlay if it becomes
13898 empty after its bounds are adjusted to fit within its buffer.
13899 This fix caused other problems, and I'm reverting it until we get
13900 to the bottom of them.
13901
a8e7d6d7 139022012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
13903
13904 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
13905
a8e7d6d7 139062012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
13907
13908 * xdisp.c (pos_visible_p): If the window start position is beyond
13909 ZV, start the display from buffer beginning. Prevents assertion
13910 violation in init_iterator when the minibuffer window is scrolled
13911 via the scroll bar.
13912
13913 * window.c (window_scroll_pixel_based): Likewise.
13914
a8e7d6d7 139152012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
13916
13917 * keymap.c (where_is_internal): Doc fix (Bug#10872).
13918
a8e7d6d7 139192012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
13920
13921 * fileio.c (Fcopy_file, Fset_file_selinux_context):
13922 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
13923
a8e7d6d7 139242012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 13925
b593d6a9
AH
13926 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
13927 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 13928
1c6900d9
EZ
139292012-04-26 Eli Zaretskii <eliz@gnu.org>
13930
4c3fa1d9
EZ
13931 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
13932 display element, check also the underlying string or buffer
13933 character. (Bug#11341)
13934
1c6900d9
EZ
13935 * w32menu.c: Include w32heap.h.
13936 (add_menu_item): If the call to AppendMenuW (via
13937 unicode_append_menu) fails, disable Unicode menus only if we are
13938 running on Windows 9X/Me.
13939
42bf8205
AS
139402012-04-24 Andreas Schwab <schwab@linux-m68k.org>
13941
13942 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
13943 (xgetint): Add missing shift for LSB tags.
13944
b1bac16e
MR
139452012-04-24 Martin Rudalics <rudalics@gmx.at>
13946
13947 * keyboard.c (read_char): Don't wipe echo area for select window
13948 events: These might get delayed via `mouse-autoselect-window'
13949 (Bug#11304).
13950
d69621cc
JB
139512012-04-24 Juanma Barranquero <lekktu@gmail.com>
13952
13953 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
13954 manipulation of :loaded-from data.
13955
02fd101b
JB
139562012-04-23 Juanma Barranquero <lekktu@gmail.com>
13957
13958 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
13959 now a cons (bug#11311).
13960
888bec30
PE
139612012-04-23 Paul Eggert <eggert@cs.ucla.edu>
13962
89a438bd
PE
13963 Do not create empty overlays with the evaporate property (Bug#9642).
13964 * buffer.c (Fmove_overlay): Delete an evaporating overlay
13965 if it becomes empty after its bounds are adjusted to fit within
13966 its buffer. Without this fix, in a nonempty buffer (let ((o
13967 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
13968 yields an empty overlay that has the evaporate property, which is
13969 not supposed to happen.
13970
1068fe4d
PE
13971 Fix minor GTK3 problems found by static checking.
13972 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
13973 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
13974 (struct _EmacsFixedClass, emacs_fixed_get_type):
13975 Move decls here from emacsgtkfixed.h, since they needn't be public.
13976 (emacs_fixed_get_type): Now static.
13977 (emacs_fixed_class_init): Omit unused local.
13978 (emacs_fixed_child_type): Remove; unused.
13979 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
13980 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
13981 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
13982 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
13983 (EMACS_FIXED_GET_CLASS): Remove; unused.
13984 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
13985
888bec30
PE
13986 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
13987 Problem reported by Juanma Barranquero for Windows -Wunused-function.
13988
de85e130
PE
139892012-04-22 Paul Eggert <eggert@cs.ucla.edu>
13990
d0baac98 13991 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 13992 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
13993 (__malloc_size_t, __malloc_ptrdiff_t):
13994 Remove. All uses removed, replaced by the definiens if needed,
13995 since we can assume C89 or better now.
13996 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
13997 (protect_malloc_state, align, get_contiguous_space)
13998 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
13999 (malloc_atfork_handler_child, malloc_enable_thread)
14000 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
14001 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
14002 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
14003 (special_realloc, _realloc_internal_nolock, _realloc_internal)
14004 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
14005 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
14006 Define using prototypes, not old style.
14007 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
14008 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
14009 (align): Don't assume that signed integer overflow wraps around.
14010 Omit unused local var.
14011 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
14012 (_free_internal_nolock, memalign, mallochook, reallochook):
14013 Omit no-longer-needed casts.
14014 (valloc): Use getpagesize, not __getpagesize.
14015 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
14016 (struct hdr): The 'magic' member is now size_t, not unsigned long.
14017
de85e130
PE
14018 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
14019
dcbf5805
MA
140202012-04-22 Michael Albinus <michael.albinus@gmx.de>
14021
14022 Move functions from C to Lisp. Make non-blocking method calls
14023 the default. Implement further D-Bus standard interfaces.
14024
14025 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
14026 (QCdbus_request_name_allow_replacement)
14027 (QCdbus_request_name_replace_existing)
14028 (QCdbus_request_name_do_not_queue)
14029 (QCdbus_request_name_reply_primary_owner)
14030 (QCdbus_request_name_reply_in_queue)
14031 (QCdbus_request_name_reply_exists)
14032 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
14033 (QCdbus_registered_serial, QCdbus_registered_method)
14034 (QCdbus_registered_signal): New Lisp objects.
14035 (XD_DEBUG_MESSAGE): Use sizeof.
14036 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
14037 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
14038 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
14039 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
14040 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
14041 (xd_signature, xd_append_arg): Allow float for integer types.
14042 (xd_get_connection_references): New function.
b593d6a9
AH
14043 (xd_get_connection_address): Rename from xd_initialize.
14044 Return cached address.
dcbf5805
MA
14045 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
14046 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
14047 level.
14048 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 14049 Return number of refcounts.
dcbf5805
MA
14050 (Fdbus_get_unique_name): Make stronger parameter check.
14051 (Fdbus_message_internal): New defun.
14052 (Fdbus_call_method, Fdbus_call_method_asynchronously)
14053 (Fdbus_method_return_internal, Fdbus_method_error_internal)
14054 (Fdbus_send_signal, Fdbus_register_service)
14055 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
14056 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
14057 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
14058 (Vdbus_compiled_version, Vdbus_runtime_version)
14059 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
14060 (Vdbus_message_type_method_return, Vdbus_message_type_error)
14061 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
14062 (Vdbus_registered_buses, Vdbus_registered_objects_table):
14063 Adapt docstring.
dcbf5805 14064
52828e02
PE
140652012-04-22 Paul Eggert <eggert@cs.ucla.edu>
14066
da05bc4c
PE
14067 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
14068 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
14069 Do not assume ptrdiff_t is the same width as 'int'.
14070
52828e02
PE
14071 * alloc.c: Handle unusual debugging option combinations.
14072 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
14073 since the two debugging options are incompatible.
14074 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
14075 is defined.
14076 (mem_init, mem_insert, mem_insert_fixup):
14077 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
14078 (NEED_MEM_INSERT): Remove; no longer needed.
14079
f01769f9
LL
140802012-04-22 Leo Liu <sdl.web@gmail.com>
14081
14082 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
14083
5790543d
PE
140842012-04-22 Paul Eggert <eggert@cs.ucla.edu>
14085
14086 * sysdep.c [__FreeBSD__]: Minor cleanups.
14087 (list_system_processes, system_process_attributes) [__FreeBSD__]:
14088 Use Emacs indenting style more consistently. Avoid some casts.
14089 Use 'double' consistently rather than mixing 'float' and 'double'.
14090
b91b7e4d
EW
140912012-04-21 Eduard Wiebe <usenet@pusto.de>
14092
b593d6a9
AH
14093 * sysdep.c (list_system_processes, system_process_attributes):
14094 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 14095
6114eb15
AS
140962012-04-21 Andreas Schwab <schwab@linux-m68k.org>
14097
14098 * lisp.mk (lisp): Update.
14099
2f38dff7
PE
141002012-04-20 Paul Eggert <eggert@cs.ucla.edu>
14101
14102 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
14103 It is never used otherwise.
14104
4ae29f89
SM
141052012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
14106
14107 * print.c (print_preprocess): Only check print_depth if print-circle
14108 is nil.
14109 (print_object): Check for cycles even when print-circle is nil and
14110 print-gensym is t, but only check print_depth if print-circle is nil.
14111
f30d612a
CY
141122012-04-20 Chong Yidong <cyd@gnu.org>
14113
14114 * process.c (wait_reading_process_output): If EIO occurs on a pty,
14115 set the status to "failed" and ensure that sentinel is run.
14116
c07a4c0b 141172012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
14118
14119 * process.c (Fset_process_inherit_coding_system_flag)
14120 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 14121 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 14122
c07a4c0b 141232012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
14124
14125 * xdisp.c (string_buffer_position_lim): Limit starting position to
14126 BEGV.
14127 (set_cursor_from_row): If called for a mode-line or header-line
14128 row, return zero immediately.
14129 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
14130 farther than the first row after the header line, if any.
14131 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
14132 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
14133
c07a4c0b 141342012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 14135
4ae29f89
SM
14136 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
14137 (bug#11238).
ad3a2b41 14138
c07a4c0b 141392012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 141402012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
14141
14142 configure: new option --enable-gcc-warnings (Bug#11207)
14143 * Makefile.in (C_WARNINGS_SWITCH): Remove.
14144 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
14145 (ALL_CFLAGS): Use new macros rather than old.
14146 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
14147 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
14148 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
14149 -Wunused-result, -Wunused-variable. This should go away once
14150 the Emacs and Gnulib regex code is merged.
14151 (xmalloc, xrealloc): Now static.
14152
aba027e8
PE
141532012-04-17 Paul Eggert <eggert@cs.ucla.edu>
14154
14155 * dired.c (Fsystem_groups): Remove unused local.
14156
e5a36063
GM
141572012-04-17 Glenn Morris <rgm@gnu.org>
14158
14159 * dired.c (Fsystem_users): Doc fix.
14160
316411f0
DA
141612012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
14162
14163 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
14164 (syms_of_dired): Add them.
14165
9426aba4
PE
141662012-04-16 Paul Eggert <eggert@cs.ucla.edu>
14167
b62a57be
PE
14168 Fix minor alloc.c problems found by static checking.
14169 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
14170 New extern decls, to avoid calling undeclared functions.
14171 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
14172 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
14173 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
14174 (NEED_MEM_INSERT): New macro.
14175 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 14176 Remove one incorrect comment and fix another.
b62a57be 14177
3539f31f
PE
14178 Fix minor ralloc.c problems found by static checking.
14179 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
14180 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
14181 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
14182 (r_alloc_sbrk): Now static.
14183
a041960a
PE
14184 Improve ralloc.c interface checking.
14185 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
14186 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
14187 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
14188 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
14189 [REL_ALLOC]: ... to here, to check interface.
14190 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
14191 Remove decls. This fixes an "It stinks!".
14192
9426aba4
PE
14193 * alloc.c (which_symbols): Fix alignment issue / type clash.
14194
d55c12ed
AS
141952012-04-15 Andreas Schwab <schwab@linux-m68k.org>
14196
14197 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
14198 (struct Lisp_Misc_Any): Likewise.
14199 (struct Lisp_Free): Likewise.
14200 * alloc.c (union aligned_Lisp_Symbol): Define.
14201 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
14202 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
14203 (union aligned_Lisp_Misc): Define.
14204 (MARKER_BLOCK_SIZE, struct marker_block): Use union
14205 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 14206 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 14207
b948ce8b
PE
142082012-04-14 Paul Eggert <eggert@cs.ucla.edu>
14209
14210 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
14211 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
14212 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
14213 * s/netbsd.h, s/sol2-6.h:
14214 Remove definition of GC_MARK_STACK, since the default now works.
14215 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
14216 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
14217 no longer the default.
14218 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
14219
35dc09a1 142202012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 14221
35dc09a1
GM
14222 * lread.c (lisp_file_lexically_bound_p):
14223 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 14224
35dc09a1
GM
142252012-04-14 Eli Zaretskii <eliz@gnu.org>
14226
14227 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
14228 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
14229
142302012-04-14 Jan Djärv <jan.h.d@swipnet.se>
14231
14232 * nsterm.m (constrainFrameRect): Always constrain when there is only
14233 one screen (Bug#10962).
14234
bcd86815
KB
142352012-04-13 Ken Brown <kbrown@cornell.edu>
14236
14237 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
14238
c25df26e
RT
142392012-04-13 Reuben Thomas <rrt@sc3d.org>
14240
14241 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
14242
0fc59f1e
DC
142432012-04-11 Daniel Colascione <dancol@dancol.org>
14244
14245 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
14246 against is gone. It's better to use vfork now so that when Cygwin
14247 gains a new, working vfork, we use it automatically (bug#10398).
14248
de8c03dc
SM
142492012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
14250
14251 * window.c (save_window_save): Obey window-point-insertion-type.
14252
2f097256
GM
142532012-04-11 Glenn Morris <rgm@gnu.org>
14254
14255 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
14256
453b951e
SM
142572012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
14258
14259 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
14260
75f1671a 142612012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
14262
14263 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
14264 (force_quit_count): New var.
14265 (handle_interrupt): Use it.
14266
2a8ce227
JB
142672012-04-10 Juanma Barranquero <lekktu@gmail.com>
14268
14269 * w32.c (w32_delayed_load): Record the full path of the library
14270 being loaded (bug#10424).
14271
935396c0
GM
142722012-04-09 Glenn Morris <rgm@gnu.org>
14273
05920a43
GM
14274 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
14275 not just in the obarray, before snarfing them. (Bug#11036)
14276
935396c0
GM
14277 * Makefile.in ($(leimdir)/leim-list.el):
14278 Pass EMACS rather than BUILT_EMACS.
14279
a18ecafa
TZ
142802012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
14281
14282 * process.c (make_process):
14283 * process.h: Add integer `gnutls_handshakes_tried' member to
14284 process struct.
14285
6bbef4e5
JC
14286 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
14287 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
14288
14289 * gnutls.c (gnutls_log_function2i): Convenience log function.
14290 (emacs_gnutls_read): Use new log functions,
14291 `gnutls_handshakes_tried' process member, and
14292 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
14293 attempts per process (connection).
14294
b4d3bc10
CY
142952012-04-09 Chong Yidong <cyd@gnu.org>
14296
14297 * eval.c (Fuser_variable_p, user_variable_p_eh)
14298 (lisp_indirect_variable): Functions deleted.
14299 (Fdefvar): Caller changed.
14300
14301 * callint.c (Finteractive, Fcall_interactively):
14302 * minibuf.c (Fread_variable): Callers changed.
14303
70f4d973
EZ
143042012-04-09 Eli Zaretskii <eliz@gnu.org>
14305
14306 * xdisp.c (set_cursor_from_row): If the display string appears in
14307 the buffer at position that is closer to point than the position
14308 after the display string, display the cursor on the first glyph of
14309 the display string. Fixes cursor display when a 'display' text
14310 property immediately follows invisible text. (Bug#11094)
14311
cb3c2e3e
PE
143122012-04-09 Paul Eggert <eggert@cs.ucla.edu>
14313
14314 composite.c: use 'double' consistently
14315 * composite.c (get_composition_id): Use 'double' consistently
14316 instead of converting 'float' to 'double' and vice versa; this is
14317 easier to understand and avoids a GCC warning.
14318
fd06db5d
GM
143192012-04-09 Glenn Morris <rgm@gnu.org>
14320
50fe702a
GM
14321 * Makefile.in: Generate leim-list with bootstrap-emacs, in
14322 preparation for dumping it with emacs. (Bug#4789)
14323 (leimdir): New variable.
14324 ($(leimdir)/leim-list.el): New rule.
14325 (emacs$(EXEEXT)): Depend on leim-list.el.
14326
fd06db5d
GM
14327 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
14328 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
14329 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
14330
55c131ee
AS
143312012-04-08 Andreas Schwab <schwab@linux-m68k.org>
14332
14333 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
14334 proper alignment.
14335
9209588f
JB
143362012-04-07 Juanma Barranquero <lekktu@gmail.com>
14337
14338 * xml.c (init_libxml2_functions) [WINDOWSNT]:
14339 Remove unused local variable.
14340
e3fb2efb
PE
143412012-04-07 Paul Eggert <eggert@cs.ucla.edu>
14342
14343 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
14344 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
14345 (mark_memory): Mark Lisp_Objects only if pointers might hide in
14346 objects, as mark_maybe_pointer will catch them otherwise.
14347 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
14348 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
14349
b5385551
PE
143502012-04-07 Paul Eggert <eggert@cs.ucla.edu>
14351
14352 Fix typo that broke non-Windows builds.
14353 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
14354
9078ead6
EZ
143552012-04-07 Eli Zaretskii <eliz@gnu.org>
14356
14357 Support building on MS-Windows with libxml2.
14358
14359 * makefile.w32-in (OBJ2): Add xml.$(O).
14360 (GLOBAL_SOURCES): Add xml.c.
14361 ($(BLD)/xml.$(O)): New dependency list.
14362
14363 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
14364 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
14365 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
14366 [!WINDOWSNT]: New macros.
14367 (init_libxml2_functions, libxml2_loaded_p): New functions.
14368 (parse_region): Call fn_xmlCheckVersion instead of using the macro
14369 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
14370 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
14371 Calls xmlCleanupParser only if libxml2 was loaded (or statically
14372 linked in).
6bbef4e5
JC
14373 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
14374 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
14375 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
14376
14377 * emacs.c: Don't include libxml/parser.h.
14378 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
14379 xmlCleanupParser directly.
14380
14381 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
14382
3811fdf3
EZ
143832012-04-07 Eli Zaretskii <eliz@gnu.org>
14384
14385 * indent.c (Fvertical_motion): If there is a display string at
14386 point, use it.vpos to compute how many lines to backtrack after
14387 move_it_to point. (Bug#11133)
14388
2f8e16b2
EZ
143892012-04-06 Eli Zaretskii <eliz@gnu.org>
14390
14391 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
14392 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
14393 about subtle differences between FETCH_CHAR* and STRING_CHAR*
14394 macros related to unification of CJK characters. For the details,
14395 see the discussion following the message here:
14396 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
14397
3d439cd1
CY
143982012-04-04 Chong Yidong <cyd@gnu.org>
14399
14400 * keyboard.c (Vdelayed_warnings_list): Doc fix.
14401
8bc53d00
EZ
144022012-04-01 Eli Zaretskii <eliz@gnu.org>
14403
14404 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
14405 instead of alloca. (Bug#11138)
14406
3b0512a3
AS
144072012-04-01 Andreas Schwab <schwab@linux-m68k.org>
14408
14409 * w32menu.c (is_simple_dialog): Properly check lisp types.
14410 (Bug#11141)
14411
8427ddd2
EZ
144122012-03-31 Eli Zaretskii <eliz@gnu.org>
14413
979022ef
EZ
14414 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
14415 position we get to after a call to move_it_to fails the
14416 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
14417 only if we wind up in a string from display property. (Bug#11063)
14418
a6b1c7cc
EZ
14419 * window.c (Fdelete_other_windows_internal): Invalidate the row
14420 and column information about mouse highlight, so that redisplay
14421 restores it after reallocating the glyph matrices. (Bug#7464)
14422
8427ddd2
EZ
14423 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
14424 string comes from a `display' text property, use the buffer
14425 position of that property as if we actually saw that position in
14426 the row's glyphs.
697ba24b
EZ
14427 (move_it_by_lines): Remove the assertion that
14428 "it->current_x == 0 && it->hpos == 0" which can be legitimately
14429 violated when there's a before-string at the beginning of a line.
14430 (Bug#11063)
8427ddd2 14431
65a0a738
EZ
144322012-03-30 Eli Zaretskii <eliz@gnu.org>
14433
14434 * xdisp.c (append_space_for_newline): If the default face was
14435 remapped, use the remapped face for the appended newline.
14436 (extend_face_to_end_of_line): Use the remapped default face for
14437 extending the face to the end of the line.
14438 (display_line): Call extend_face_to_end_of_line when the default
14439 face was remapped. (Bug#11068)
14440
581355cc
EZ
144412012-03-29 Eli Zaretskii <eliz@gnu.org>
14442
14443 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
14444
e8fc049f
SM
144452012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
14446
14447 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
14448
4fb9a543
GM
144492012-03-27 Glenn Morris <rgm@gnu.org>
14450
14451 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
14452 Doc fixes.
14453
679910f1
KH
144542012-03-26 Kenichi Handa <handa@m17n.org>
14455
14456 * dispextern.h (struct glyph): Fix previous change. Change the
14457 bit length of glyphless.ch to 25 (Bug#11082).
14458
90d49b7f
CY
144592012-03-26 Chong Yidong <cyd@gnu.org>
14460
14461 * keyboard.c (Vselection_inhibit_update_commands): New variable.
14462 (command_loop_1): Use it; inhibit selection update for
14463 handle-select-window too (Bug#8996).
14464
f514f6f0
FP
144652012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
14466
e8fc049f 14467 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 14468
bf43fa51
KH
144692012-03-25 Kenichi Handa <handa@m17n.org>
14470
14471 * dispextern.h (struct glyph): Change the bit length of
14472 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
14473
8a0c01dd
EZ
144742012-03-24 Eli Zaretskii <eliz@gnu.org>
14475
14476 * s/ms-w32.h (tzname): Include time.h before redirecting to
14477 _tzname. Fixes the MSVC build. (Bug#9960)
14478
7d1c3a76
AS
144792012-03-24 Andreas Schwab <schwab@linux-m68k.org>
14480
8ed79523
AS
14481 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
14482 characters.
14483
7d1c3a76
AS
14484 * xterm.c (XTread_socket): Only modify handling_signal if
14485 !SYNC_INPUT. (Bug#11080)
14486
e99a9b8b
EZ
144872012-03-23 Eli Zaretskii <eliz@gnu.org>
14488
14489 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
14490 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
14491 when fetching a multibyte character consumes more bytes than
14492 CHAR_BYTES returns, due to unification of CJK characters in
14493 string_char. (Bug#11073)
14494
5063c0e1
TN
144952012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
14496
14497 * process.c (wait_reading_process_output): Handle pty disconnect
14498 by refraining from sending oneself a SIGCHLD (bug#10933).
14499
9f851fbd
CY
145002012-03-22 Chong Yidong <cyd@gnu.org>
14501
14502 * dispextern.h (struct it): New member string_from_prefix_prop_p.
14503
5063c0e1 14504 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
14505 Mark string as coming from a prefix property.
14506 (handle_face_prop): Use default face for prefix strings (Bug#4281).
14507 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
14508
fb5b8aca
CY
145092012-03-21 Chong Yidong <cyd@gnu.org>
14510
14511 * xfaces.c (Vface_remapping_alist): Doc fix.
14512
62356a1b
EZ
145132012-03-20 Eli Zaretskii <eliz@gnu.org>
14514
14515 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
14516 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
14517 Doc fixes.
62356a1b 14518
025de85b
CY
145192012-03-20 Chong Yidong <cyd@gnu.org>
14520
14521 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
14522 to reflect default non-nil value of redisplay-dont-pause.
14523
4827f94e
KH
145242012-03-19 Kenichi Handa <handa@m17n.org>
14525
14526 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
14527 it fit in a valid range (Bug#11003).
14528
e50a24a2
EZ
145292012-03-18 Eli Zaretskii <eliz@gnu.org>
14530
14531 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
14532 that is not from display property, accept the row as a "cursor
14533 row" if one of the string's character has a non-nil `cursor'
14534 property. Fixes cursor positioning when there are newlines in
14535 overlay strings, e.g. in icomplete.el. (Bug#11035)
14536
9af5ed87
PE
145372012-03-12 Paul Eggert <eggert@cs.ucla.edu>
14538
14539 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
14540
d1f55f16
CY
145412012-03-12 Chong Yidong <cyd@gnu.org>
14542
14543 * eval.c (inhibit_lisp_code): Rename from
14544 inhibit_window_configuration_change_hook; move from window.c.
14545
14546 * xfns.c (unwind_create_frame_1, Fx_create_frame):
14547 * window.c (run_window_configuration_change_hook)
14548 (syms_of_window): Callers changed.
14549
66c5eebd
CY
145502012-03-11 Chong Yidong <cyd@gnu.org>
14551
413df973
CY
14552 * keymap.c (Fkey_description): Doc fix (Bug#9700).
14553
66c5eebd
CY
14554 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
14555
1de11f56
CY
145562012-03-10 Chong Yidong <cyd@gnu.org>
14557
14558 * frame.c (other_visible_frames): Don't assume the selected frame
14559 is visible (Bug#10955).
14560
cae07000
SM
145612012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
14562
14563 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
14564
89c94350
JD
145652012-03-08 Jan Djärv <jan.h.d@swipnet.se>
14566
14567 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
14568 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
14569 zero (Bug#10954).
14570
999dd333
GM
145712012-03-03 Glenn Morris <rgm@gnu.org>
14572
01a6dcc8 14573 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 14574
de0100f2
EZ
145752012-03-02 Eli Zaretskii <eliz@gnu.org>
14576
14577 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
14578 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
14579 (redisplay_window, next_element_from_string): Fix typos in
14580 comments.
3e441275
EZ
14581 (redisplay_window): Pass to move_it_vertically the margin in
14582 pixels, not in screen lines.
de0100f2 14583
96a72ee9
GM
145842012-03-02 Glenn Morris <rgm@gnu.org>
14585
14586 * buffer.c (buffer-list-update-hook): Doc fix.
14587
312508d7
EZ
145882012-02-29 Eli Zaretskii <eliz@gnu.org>
14589
14590 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
14591 push_it before setting up the iterator for the first overlay
14592 string, even if we have an empty string loaded.
14593 (next_overlay_string): If there's an empty string on the iterator
14594 stack, pop the stack. (Bug#10903)
14595
27f3c637
PE
145962012-02-25 Paul Eggert <eggert@cs.ucla.edu>
14597
14598 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
14599 Suggested by Stefan Monnier in
14600 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
14601 * alloc.c (widen_to_Lisp_Object): New static function.
14602 (mark_memory): Also mark Lisp_Objects by fetching pointer words
14603 and widening them to Lisp_Objects. This would work even if
14604 USE_LSB_TAG is defined and wide integers are used, which might
14605 happen in a future version of Emacs.
14606
3c9dfce6
CY
146072012-02-25 Chong Yidong <cyd@gnu.org>
14608
fa74b241
CY
14609 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
14610 Doc fix.
14611
3c9dfce6
CY
14612 * xselect.c (Fx_selection_exists_p): Doc fix.
14613 (x_clipboard_manager_save_all): Print an informative message
14614 before saving to clipboard manager.
14615
9486df08
CY
146162012-02-24 Chong Yidong <cyd@gnu.org>
14617
14618 * keyboard.c (process_special_events): Handle all X selection
14619 requests in kbd_buffer, not just the next one (Bug#8869).
14620
f01d3321
CY
146212012-02-23 Chong Yidong <cyd@gnu.org>
14622
14623 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
14624 call when setting menu-bar-lines and tool-bar-lines parameters.
14625 (unwind_create_frame_1): New helper function.
14626
14627 * window.c (inhibit_window_configuration_change_hook): New var.
14628 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 14629 (syms_of_window): Initialize it.
f01d3321 14630
86b847b6
CY
146312012-02-22 Chong Yidong <cyd@gnu.org>
14632
14633 * xterm.c (x_draw_image_relief): Add missing type check for
14634 Vtool_bar_button_margin (Bug#10743).
14635
a59225b1
CY
146362012-02-21 Chong Yidong <cyd@gnu.org>
14637
14638 * fileio.c (Vfile_name_handler_alist): Doc fix.
14639
14640 * buffer.c (Fget_file_buffer): Protect against invalid file
14641 handler return value.
14642
310f5bd4
PE
146432012-02-20 Paul Eggert <eggert@cs.ucla.edu>
14644
cb3a28cc
PE
14645 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
14646 when computing $valmask.
14647
310f5bd4
PE
14648 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
14649 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
14650 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
14651 It's useless in that case, and it can cause problems on hosts
14652 that allocate halves of EMACS_INT values separately.
14653 Reported by Dan Horák. Diagnosed by Andreas Schwab in
14654 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
14655 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
14656 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
14657 it avoids undefined behavior on hosts where shifting right by more
14658 than the word width has undefined behavior.
14659
2375c96a
CY
146602012-02-19 Chong Yidong <cyd@gnu.org>
14661
14662 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
14663 (Funhandled_file_name_directory, Ffile_name_as_directory)
14664 (Fdirectory_file_name, Fexpand_file_name)
14665 (Fsubstitute_in_file_name): Protect against invalid file handler
14666 return values (Bug#10845).
14667
3eb49e71
EZ
146682012-02-18 Eli Zaretskii <eliz@gnu.org>
14669
14670 * .gdbinit (pitx): Fix incorrect references to fields of the
14671 iterator stack.
14672
7b926f3f
CY
146732012-02-17 Chong Yidong <cyd@gnu.org>
14674
14675 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
14676
11273115
PE
146772012-02-15 Paul Eggert <eggert@cs.ucla.edu>
14678
14679 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
14680 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
14681
c3a70e2b
CY
146822012-02-15 Chong Yidong <cyd@gnu.org>
14683
14684 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
14685 marked as special. Also, starting docstrings with * is obsolete.
14686
0ca43699
AS
146872012-02-13 Andreas Schwab <schwab@linux-m68k.org>
14688
14689 * gnutls.c (emacs_gnutls_write): Fix last change.
14690
2e8f3c56
LI
146912012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
14692
14693 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
14694 send_process.
14695
af70074f
SM
146962012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
14697
14698 * keymap.c (Fsingle_key_description): Handle char ranges.
14699
95986d52
CY
147002012-02-12 Chong Yidong <cyd@gnu.org>
14701
afd83bd1
CY
14702 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
14703 as that creates a dangerous corner case.
14704
95986d52
CY
14705 * window.c (Fdelete_window_internal): Invalidate the mouse
14706 highlight (Bug#9904).
14707
bd7da63e
GM
147082012-02-12 Glenn Morris <rgm@gnu.org>
14709
14710 * xselect.c (Fx_own_selection_internal)
14711 (Fx_get_selection_internal, Fx_disown_selection_internal)
14712 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
14713 * nsselect.m (Fx_own_selection_internal)
14714 (Fx_disown_selection_internal, Fx_selection_exists_p)
14715 (Fx_selection_owner_p, Fx_get_selection_internal):
14716 Sync docs and argument specs with the xselect.c versions.
14717
77abcbc2
LI
147182012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
14719
14720 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
14721
90b671e2
EZ
147222012-02-11 Eli Zaretskii <eliz@gnu.org>
14723
1c0ca0b7
EZ
14724 * w32select.c (Fx_selection_exists_p): Sync doc string and
14725 argument list with xselect.c. (Bug#10783)
14726
14727 * w16select.c (Fx_selection_exists_p): Sync doc string and
14728 argument list with xselect.c. (Bug#10783)
90b671e2 14729
49241268
GM
147302012-02-10 Glenn Morris <rgm@gnu.org>
14731
14732 * fns.c (Fsecure_hash): Doc fix.
14733
f998bbe7 147342012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
14735
14736 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
14737
0992bd9c
CY
147382012-02-07 Chong Yidong <cyd@gnu.org>
14739
14740 * buffer.c (Fbuffer_local_variables)
14741 (buffer_lisp_local_variables): Handle unbound vars correctly;
14742 don't let Qunbound leak into Lisp.
14743
af008560
GM
147442012-02-07 Glenn Morris <rgm@gnu.org>
14745
dd605cc4
GM
14746 * image.c (Fimagemagick_types): Doc fix.
14747
af008560
GM
14748 * image.c (imagemagick-render-type): Change it from a lisp object
14749 to an integer. Move the doc here from the lisp manual.
14750 Treat all values not equal to 0 the same.
14751
1449fa1d
CY
147522012-02-06 Chong Yidong <cyd@gnu.org>
14753
14754 * doc.c (store_function_docstring): Avoid applying docstring of
14755 alias to base function (Bug#2603).
14756
3723ec07
AS
147572012-02-04 Andreas Schwab <schwab@linux-m68k.org>
14758
14759 * .gdbinit (pp1, pv1): Remove redundant defines.
14760 (pr): Use pp.
14761
79c1cc1e
CY
147622012-02-04 Chong Yidong <cyd@gnu.org>
14763
14764 * nsterm.m: Declare a global (Bug#10694).
14765
d7f29f8e
EZ
147662012-02-04 Eli Zaretskii <eliz@gnu.org>
14767
cae07000
SM
14768 * w32.c (get_emacs_configuration_options):
14769 Include --enable-checking, if specified, in the return value.
d7f29f8e 14770
3b95a6f9
MR
147712012-02-04 Martin Rudalics <rudalics@gmx.at>
14772
14773 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
14774 after rounding frame sizes. (Bug#9723)
14775
d6fa96a6
EZ
147762012-02-04 Eli Zaretskii <eliz@gnu.org>
14777
14778 * keyboard.c (adjust_point_for_property): Don't position point
14779 before BEGV. (Bug#10696)
14780
df0b2940
PE
147812012-02-03 Paul Eggert <eggert@cs.ucla.edu>
14782
14783 Handle overflow when computing char display width (Bug#9496).
14784 * character.c (char_width): Return EMACS_INT, not int.
14785 (char_width, c_string_width): Check for overflow when
14786 computing the width; this is possible now that individual
14787 characters can have unbounded width. Problem introduced
14788 by merge from Emacs 23 on 2012-01-19.
14789
6bee44d6
MA
147902012-02-02 Michael Albinus <michael.albinus@gmx.de>
14791
14792 * dbusbind.c (Fdbus_register_method): Mention the return value
14793 :ignore in the docstring.
14794
44f92739
GM
147952012-02-02 Glenn Morris <rgm@gnu.org>
14796
1b9f60cc
GM
14797 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
14798
44f92739
GM
14799 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14800 Unconditionally set to t. (Bug#10673)
14801 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14802 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
14803 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
14804
c5d3843c
KH
148052012-02-02 Kenichi Handa <handa@m17n.org>
14806
14807 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
14808 0, do not call append_composite_glyph.
14809
159462d4 148102012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
14811
14812 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
14813 NULL (Bug#6988).
14814 (x_produce_glyphs): If the component of a composition is a null
14815 string, set it->pixel_width to 1 to avoid zero-width glyph.
14816
78cef877
EZ
148172012-02-01 Eli Zaretskii <eliz@gnu.org>
14818
14819 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
14820 first 2 arguments are identical. This makes inserting large
14821 output from a subprocess an order of magnitude faster on
14822 MS-Windows, where all sbrk'ed memory is always contiguous.
14823
97897668
GM
148242012-01-31 Glenn Morris <rgm@gnu.org>
14825
14826 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 14827 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
14828 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
14829
31fd3586
GM
148302012-01-29 Glenn Morris <rgm@gnu.org>
14831
14832 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
14833
0e24a8b2
CY
148342012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
14835
14836 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
14837
cc0adcb0
CY
148382012-01-28 Chong Yidong <cyd@gnu.org>
14839
14840 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
14841
acc28cb9
CY
148422012-01-26 Chong Yidong <cyd@gnu.org>
14843
9c69cfb7
CY
14844 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
14845
acc28cb9
CY
14846 * search.c (Fsearch_forward, Fsearch_backward): Document negative
14847 repeat counts (Bug#10507).
14848
48da7392
GM
148492012-01-26 Glenn Morris <rgm@gnu.org>
14850
14851 * lread.c (syms_of_lread): Doc fix.
14852
14af5f7f
CY
148532012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
14854
14855 * coding.c (encode_designation_at_bol): Change return value to
14856 EMACS_INT.
14857
0b21c100
CY
148582012-01-25 Chong Yidong <cyd@gnu.org>
14859
14860 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
14861
3c2907f7
CY
148622012-01-21 Chong Yidong <cyd@gnu.org>
14863
14864 * floatfns.c (Fcopysign): Make the second argument non-optional,
14865 since nil is not allowed anyway.
14866
959ad23f
AS
148672012-01-21 Andreas Schwab <schwab@linux-m68k.org>
14868
14869 * process.c (read_process_output): Use p instead of XPROCESS (proc).
14870 (send_process): Likewise.
14871
34a02f46
MR
148722012-01-19 Martin Rudalics <rudalics@gmx.at>
14873
14874 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
14875 (Vwindow_persistent_parameters): Do not use Qstate.
14876 Rewrite doc-strings.
34a02f46 14877
1259009a 148782012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
14879
14880 * character.c (char_width): New function.
70d4fdf6
GM
14881 (Fchar_width, c_string_width, lisp_string_width):
14882 Use char_width (Bug#9496).
25ed9e61 14883
6a6ee00d
MR
148842012-01-16 Martin Rudalics <rudalics@gmx.at>
14885
14886 * window.c (Vwindow_persistent_parameters): New variable.
14887 (Fset_window_configuration, save_window_save): Handle persistent
14888 window parameters.
14889
c85efaf7
EZ
148902012-01-14 Eli Zaretskii <eliz@gnu.org>
14891
14892 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
14893 thrashing the stack of the thread. (Bug#9087)
14894
5944709e
PE
148952012-01-12 Paul Eggert <eggert@cs.ucla.edu>
14896
14897 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
14898
e71f5d99
EZ
148992012-01-11 Eli Zaretskii <eliz@gnu.org>
14900
14901 * xdisp.c (rows_from_pos_range): Handle the case where the
14902 highlight ends on a newline. (Bug#10464)
14903 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
14904 he end column for display of highlight that ends on a newline
14905 before a R2L line.
14906
ce316182
GM
149072012-01-11 Glenn Morris <rgm@gnu.org>
14908
14909 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
14910 from load-path also when installation-directory is nil. (Bug#10208)
14911
5b43da69
GM
149122012-01-10 Glenn Morris <rgm@gnu.org>
14913
74cc8ff9
GM
14914 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
14915
7d8d6e4e
GM
14916 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
14917 Update template values to be closer to their typical values these days.
5b43da69 14918
a0db8d43
EZ
149192012-01-09 Eli Zaretskii <eliz@gnu.org>
14920
14921 * xdisp.c (rows_from_pos_range): Accept additional argument
14922 DISP_STRING, and accept any glyph in a row whose object is that
14923 string as eligible for mouse highlight. Fixes mouse highlight of
14924 display strings from overlays. (Bug#10464)
14925
9a0115ab 149262012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 14927
b9110d6a 14928 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
14929 * fileio.c (auto_saving_dir_umask): New static var.
14930 (Fmake_directory_internal): Use it.
14931 (do_auto_save_make_dir): Set it, instead of invoking chmod after
14932 creating the directory. The old code temporarily assigns
14933 too-generous permissions to the directory.
14934 (do_auto_save_eh): Clear it.
b9110d6a 14935 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
14936 that the var is always cleared.
14937
6c1bd3f3
EZ
149382012-01-07 Eli Zaretskii <eliz@gnu.org>
14939
14940 * search.c (scan_buffer): Pass character positions to
14941 know_region_cache, not byte positions. (Bug#6540)
14942
069d2b50
L
149432012-01-07 LynX <_LynX@bk.ru> (tiny change)
14944
14945 * w32.c (sys_rename): Report EXDEV when rename of a directory
14946 fails because the target is on another logical disk. (Bug#10284)
14947
75bf0d33
DB
149482012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
14949
14950 * xterm.c (x_embed_request_focus): New function.
14951
14952 * xterm.h: Add prototype.
14953
14954 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
14955
1c6e5a32
GM
149562012-01-05 Glenn Morris <rgm@gnu.org>
14957
14958 * emacs.c (emacs_copyright): Update short copyright year to 2012.
14959
651e947e
EZ
149602012-01-01 Eli Zaretskii <eliz@gnu.org>
14961
14962 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
14963 Load gnutls_transport_set_lowat only if GnuTLS version is below
14964 2.11.1.
14965 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
14966 GnuTLS versions below 2.11.1.
14967
3778cdd8
AL
149682011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
14969
14970 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
14971 to the doc string advising against its use for altering the way
14972 windows are scrolled.
14973
0e5317f7
KH
149742011-12-28 Kenichi Handa <handa@m17n.org>
14975
14976 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
14977 coding-system ASCII compatible only when it does not produce BOM
14978 on encoding (Bug#10383).
14979
93d5ca1f
JD
149802011-12-26 Jan Djärv <jan.h.d@swipnet.se>
14981
14982 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
14983 can scroll.
14984 (create_and_show_popup_menu): Always use menu_position_func for
14985 Gtk3 (Bug#10361).
14986
ca22b785
AS
149872011-12-24 Andreas Schwab <schwab@linux-m68k.org>
14988
14989 * callint.c (Fcall_interactively): Don't truncate prompt string.
14990
d048e1e6
EZ
149912011-12-23 Eli Zaretskii <eliz@gnu.org>
14992
14993 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
14994 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 14995 resumed from there (after widening). (Bug#10360)
d048e1e6 14996
5ccaba1f
JD
149972011-12-22 Jan Djärv <jan.h.d@swipnet.se>
14998
14999 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
15000
204ee57f
JD
150012011-12-21 Jan Djärv <jan.h.d@swipnet.se>
15002
b81d40f0
JB
15003 * nsterm.m (x_free_frame_resources):
15004 Release f->output_data.ns->miniimage.
204ee57f
JD
15005 (ns_index_color): Fix indentation. Do not retain
15006 color_table->colors[i].
15007
15008 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
15009 before returning.
15010
15011 * nsfns.m (x_set_background_color): Assign return value from
15012 ns_index_color to face-background instead of NSColor*.
15013 (ns_implicitly_set_icon_type): Fix indentation.
15014 Change assignment in for loop to comparison.
15015
15016 * emacs.c (ns_pool): New variable.
15017 (main): Assign ns_pool.
15018 (Fkill_emacs): Call ns_release_autorelease_pool.
15019
15020 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
15021 autorelease fdesc, release fdAttrs and tdict.
15022 (ns_get_covering_families): Release charset.
15023 (ns_findfonts): Release NSFontDescriptor created with new.
15024 (ns_uni_to_glyphs): Fix indentation.
15025 (setString): Release attrStr before assigning new value.
15026
c803b2b7
JD
150272011-12-18 Jan Djärv <jan.h.d@swipnet.se>
15028
678f4426
JD
15029 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
15030 and NS_IMPL_COCOA.
15031 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
15032 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
15033
cd394be1 150342011-12-18 David Reitter <reitter@cmu.edu>
678f4426 15035
5fecd5fc
JD
15036 * nsterm.m (ns_term_init): Subscribe for notifications
15037 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
15038 to method trackingNotification in EmacsMenu.
15039
15040 * nsmenu.m (trackingMenu): New variable.
3771cb17 15041 (trackingNotification): New method (from Aquamacs).
5fecd5fc 15042 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 15043 from Aquamacs (Bug#7030).
678f4426
JD
15044
150452011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 15046
c803b2b7
JD
15047 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
15048 (symbol_to_nsstring): Fix indentation.
15049 (ns_symbol_to_pb): New function.
cae07000
SM
15050 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
15051 (Fns_rotate_cut_buffers_internal): Remove.
15052 (Fns_store_selection_internal): Rename from
c803b2b7
JD
15053 Fns_store_cut_buffer_internal.
15054 (ns_get_foreign_selection, Fx_own_selection_internal)
15055 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
15056 (Fns_get_selection_internal, Fns_store_selection_internal):
15057 Use ns_symbol_to_pb and check if return value is nil.
15058 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
15059 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
15060 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
15061 renamed to Sns_store_selection_internal.
15062 (ns_handle_selection_request): Move code to Fx_own_selection_internal
15063 and remove this function.
15064 (ns_handle_selection_clear): Remove, never used.
15065 (Fx_own_selection_internal): Move code from ns_handle_selection_request
15066 here.
15067
e1b01a3a
KB
150682011-12-17 Ken Brown <kbrown@cornell.edu>
15069
15070 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
15071 GID is unknown (Bug#10257).
15072
2adb6e85
PE
150732011-12-17 Paul Eggert <eggert@cs.ucla.edu>
15074
15075 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
15076 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
15077 which caused a build failure on GNU/Linux IA-64. This problem was
15078 introduced by my 2011-10-07 patch.
15079
d1d7b339
JL
150802011-12-15 Juri Linkov <juri@jurta.org>
15081
15082 * image.c (imagemagick_error): New function. (Bug#10112)
15083 (imagemagick_load_image): Comment out `MagickSetResolution' call.
15084 Use `imagemagick_error' where ImageMagick functions return
15085 `MagickFalse'.
15086 (Fimagemagick_types): Add `Fnreverse' to return the list in the
15087 proper order.
15088
100d5755
KH
150892011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15090
15091 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
15092 fill background (Bug#8992).
15093
454592a6
MR
150942011-12-13 Martin Rudalics <rudalics@gmx.at>
15095
15096 * window.c (Vwindow_combination_resize)
15097 (Vwindow_combination_limit): Use t instead of non-nil in
15098 doc-strings.
61d4b438
MR
15099 (Vrecenter_redisplay): Add first sentence of doc-string on
15100 separate line.
53524d93 15101 (Frecenter): Fix doc-string typo.
454592a6 15102
3633e3aa
KH
151032011-12-11 Kenichi Handa <handa@m17n.org>
15104
15105 * coding.c (Funencodable_char_position): Pay attention to the
15106 buffer text relocation (Bug#9389).
15107
7b9d523a 151082011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 15109
7b9d523a
JD
15110 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
15111 gtk_init (Bug#10100).
15112
b73189c6
EZ
151132011-12-10 Eli Zaretskii <eliz@gnu.org>
15114
15115 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
15116 IT->string is nil. (Bug#10263)
15117
f7dfe5d6
JD
151182011-12-10 Jan Djärv <jan.h.d@swipnet.se>
15119
83faebb4
JD
15120 * nsterm.h (x_free_frame_resources): Declare.
15121
f7dfe5d6
JD
15122 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
15123 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
15124
15125 * nsterm.h (ns_get_defaults_value): Declare.
15126
15127 * nsterm.m (ns_default): Call ns_get_defaults_value.
15128
7cd4e72c
EZ
151292011-12-09 Eli Zaretskii <eliz@gnu.org>
15130
15131 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
15132 (Bug#10170)
15133
b34d7317
YM
151342011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15135
15136 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
15137 that where the value of an _OBJC_* symbol points to is in the .bss
15138 section (Bug#10240).
15139
76470ad1
KH
151402011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
15141
15142 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 15143 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 15144
745fff94
KH
151452011-12-08 Kenichi Handa <handa@m17n.org>
15146
15147 * ftfont.c (get_adstyle_property): Fix previous change
15148 (Bug#10233).
15149
6e44397c
JB
151502011-12-07 Juanma Barranquero <lekktu@gmail.com>
15151
15152 * w32.c (init_environment): If no_site_lisp, remove site-lisp
15153 dirs from the default value of EMACSLOADPATH (bug#10208).
15154
7efa6272
GM
151552011-12-07 Glenn Morris <rgm@gnu.org>
15156
15157 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
15158 installation and source directories as well. (Bug#10208)
15159
f6fc4d87
CY
151602011-12-06 Chong Yidong <cyd@gnu.org>
15161
15162 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
15163
2bf26180
GM
151642011-12-06 Glenn Morris <rgm@gnu.org>
15165
15166 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
15167 as an error, not just -1. (Bug#10217)
15168
3a6ad4f0
CY
151692011-12-05 Chong Yidong <cyd@gnu.org>
15170
15171 * keyboard.c (process_special_events): New function.
15172 (swallow_events, Finput_pending_p): Use it (Bug#10195).
15173
75a3b399
PE
151742011-12-05 Paul Eggert <eggert@cs.ucla.edu>
15175
15176 * coding.c (encode_designation_at_bol): Don't use uninitialized
15177 local variable (Bug#9318).
15178
c3c9e25e
KH
151792011-12-05 Kenichi Handa <handa@m17n.org>
15180
15181 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
15182 return Qnil (Bug#8046, Bug#10193).
15183
5eb05ea3
KH
151842011-12-05 Kenichi Handa <handa@m17n.org>
15185
15186 * coding.c (encode_designation_at_bol): New args charbuf_end and
15187 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
15188 (coding_set_source): Return how many bytes coding->source was
15189 relocated.
15190 (coding_set_destination): Return how many bytes
15191 coding->destination was relocated.
15192 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 15193 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
15194
151952011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
15196
15197 * coding.c (CODING_CHAR_CHARSET_P): New macro.
15198 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
15199 macro (Bug#9318).
15200
152012011-12-05 Andreas Schwab <schwab@linux-m68k.org>
15202
15203 The following changes are to fix Bug#9318.
15204
a79703f5 15205 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
15206 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
15207 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 15208 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 15209
7dbda6df
JB
152102011-12-05 Juanma Barranquero <lekktu@gmail.com>
15211
15212 * lisp.h (process_quit_flag): Fix external declaration.
15213
6d5eb5b0
SM
152142011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
15215
15216 Don't macro-inline non-performance-critical code.
15217 * eval.c (process_quit_flag): New function.
15218 * lisp.h (QUIT): Use it.
15219
a0c3fad0
JD
152202011-12-04 Jan Djärv <jan.h.d@swipnet.se>
15221
15222 * nsfns.m (get_geometry_from_preferences): New function.
15223 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
15224
6c07aac2
AS
152252011-12-04 Andreas Schwab <schwab@linux-m68k.org>
15226
15227 * emacs.c (Qkill_emacs): Define.
15228 (syms_of_emacs): Initialize it.
15229 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
15230 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
15231 (quit_throw_to_read_char): Add parameter `from_signal'.
15232 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
15233 * lisp.h (QUIT): Call Fkill_emacs if requested.
15234
c052ead4
JD
152352011-12-03 Jan Djärv <jan.h.d@swipnet.se>
15236
15237 * widget.c (update_wm_hints): Return if wmshell is null.
15238 (widget_update_wm_size_hints): New function.
15239
15240 * widget.h (widget_update_wm_size_hints): Declare.
15241
15242 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
15243 widget_update_wm_size_hints (Bug#10104).
15244
9e49252b
EZ
152452011-12-03 Eli Zaretskii <eliz@gnu.org>
15246
15247 * xdisp.c (handle_invisible_prop): If the invisible text ends just
15248 before a newline, prepare the bidi iterator for consuming the
15249 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 15250 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 15251
02b16839
JL
152522011-12-02 Juri Linkov <juri@jurta.org>
15253
15254 * search.c (Fword_search_regexp): New Lisp function created from
15255 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
15256 (Fword_search_backward, Fword_search_forward)
15257 (Fword_search_backward_lax, Fword_search_forward_lax):
15258 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
15259 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
15260
0068070e
SM
152612011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
15262
15263 * fileio.c (Finsert_file_contents): Move after-change-function call
15264 to before the "handled:" label, since all "goto handled" appear in
15265 cases where the *-change-functions have already been properly called
15266 (bug#10117).
15267
3360a3fc
AS
152682011-12-01 Andreas Schwab <schwab@linux-m68k.org>
15269
15270 * keyboard.c (interrupt_signal): Don't call kill-emacs when
15271 waiting for input. (Bug#10169)
15272
73d6c093
EZ
152732011-11-30 Eli Zaretskii <eliz@gnu.org>
15274
15275 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
15276 verifies glyph row's hash code--we have just reallocated the
15277 glyphs, so their contents can be complete garbage. (Bug#10164)
15278
febe6bea
JB
152792011-11-30 Juanma Barranquero <lekktu@gmail.com>
15280
15281 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
15282
801a4313
EZ
152832011-11-30 Eli Zaretskii <eliz@gnu.org>
15284
15285 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
15286 attributes are tested _before_ calling verify_row_hash, to protect
15287 against GCC re-ordering of the tests. (Bug#10164)
15288
2b56b87e
JD
152892011-11-29 Jan Djärv <jan.h.d@swipnet.se>
15290
15291 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
15292
15293 * xterm.c (handle_one_xevent): Only set async_visible and friends
15294 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 15295 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
15296 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
15297
dbf31225
PE
152982011-11-28 Paul Eggert <eggert@cs.ucla.edu>
15299
15300 Remove GCPRO-related macros that exist only to avoid shadowing locals.
15301 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
15302 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
15303 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
15304 All uses changed to use GCPRO1 etc.
15305 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
15306 Revert to old implementation (i.e., before 2011-03-11).
15307
1305621b
YM
153082011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15309
15310 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
15311 of scroll runs so as to avoid assigning disabled bogus rows and
15312 unnecessary graphics copy operations.
15313
8c9afb46
EZ
153142011-11-27 Eli Zaretskii <eliz@gnu.org>
15315
15316 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
15317 (snprintf) [_MSC_VER]: Redirect to _snprintf.
15318 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
15319 (malloc, free, realloc, calloc): Redirect to e_* only when
15320 compiling Emacs.
15321
15322 * lisp.h (GCTYPEBITS): Move before first use.
15323 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
15324 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
15325 this macro definition.
15326
15327 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
15328 _MSC_VER.
15329
54e9e3bf
JD
153302011-11-27 Jan Djärv <jan.h.d@swipnet.se>
15331
6d5eb5b0
SM
15332 * gtkutil.c (xg_create_frame_widgets):
15333 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
15334 present with Gtk+ 2.0.
15335
83aca1cb
PE
153362011-11-26 Paul Eggert <eggert@cs.ucla.edu>
15337
15338 * fileio.c (Finsert_file_contents): Undo previous change; see
15339 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
15340
5b76caa4
PE
153412011-11-26 Paul Eggert <eggert@cs.ucla.edu>
15342
15343 Rename locals to avoid shadowing.
15344 * fileio.c (Finsert_file_contents):
15345 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
15346 * process.c (wait_reading_process_output):
15347 Rename inner 'proc' to 'p' to avoid shadowing.
15348 Indent for consistency with usual Emacs style.
15349
8c535114
EZ
153502011-11-25 Eli Zaretskii <eliz@gnu.org>
15351
15352 * xdisp.c (redisplay_window): If cursor row is not fully visible
15353 after recentering, and scroll-conservatively is set to a large
15354 number, scroll window by a few more lines to make the cursor fully
15355 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
15356 (start_display): Don't move to the next line if the display should
15357 start at a newline that is part of a display vector or an overlay
15358 string. (Bug#10119)
8c535114 15359
fa4fdb5c
JL
153602011-11-24 Juri Linkov <juri@jurta.org>
15361
15362 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
15363 after the `MagickPingImage' call. (Bug#10112)
15364
90ec88df
CY
153652011-11-23 Chong Yidong <cyd@gnu.org>
15366
15367 * window.c (Fcoordinates_in_window_p): Accept only live windows.
15368
56e2e794
MR
153692011-11-23 Martin Rudalics <rudalics@gmx.at>
15370
15371 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
15372 making another buffer current. (Bug#10114)
15373
b6e64c41
GM
153742011-11-23 Glenn Morris <rgm@gnu.org>
15375
15376 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
15377
6b21de18
CY
153782011-11-23 Chong Yidong <cyd@gnu.org>
15379
15380 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
15381 using it (Bug#5984).
15382
b12cd789
EZ
153832011-11-22 Eli Zaretskii <eliz@gnu.org>
15384
15385 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
15386 and header-lines, as they don't have one computed for them.
15387 (Bug#10098)
15388
15389 * .gdbinit (prow): Make displayed values more self-explaining.
15390 Add row's hash code.
15391
261b6fd4
LMI
153922011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
15393
15394 * process.c (wait_reading_process_output): Fix asynchrounous
15395 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 15396 (wait_reading_process_output): Add comment and URL.
261b6fd4 15397
e7cfd277
JD
153982011-11-21 Jan Djärv <jan.h.d@swipnet.se>
15399
15400 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
15401
a9b9b7f5
CY
154022011-11-21 Chong Yidong <cyd@gnu.org>
15403
15404 * window.c (Fnext_window, Fprevious_window): Doc fix.
15405
b0d15b4f
SM
154062011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
15407
15408 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
15409
fe7a3057
JB
154102011-11-20 Juanma Barranquero <lekktu@gmail.com>
15411
15412 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
15413
d2999b1a
MR
154142011-11-20 Martin Rudalics <rudalics@gmx.at>
15415
15416 * window.c (Fset_window_combination_limit): Rename argument
15417 STATUS to LIMIT.
15418 (Vwindow_combination_limit): Remove "status" from doc-string.
15419
d5ff9cd0
AS
154202011-11-20 Andreas Schwab <schwab@linux-m68k.org>
15421
15422 * m/ibms390.h: Remove.
15423 * m/ibms390x.h: Don't include "ibms390.h".
15424
a5bb9bd3
SM
154252011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
15426
15427 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
15428 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
15429
cd1181db
JB
154302011-11-20 Juanma Barranquero <lekktu@gmail.com>
15431
15432 * casetab.c (Fset_case_table):
15433 * charset.c (Fcharset_after): Fix typos.
15434
615a3b8d 154352011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 15436
17e845af
PE
15437 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
15438 Otherwise, valgrind does not work on some platforms.
15439 Problem reported by Andreas Schwab in
6a0bf43d
PE
15440 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
15441 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
15442 is set, removing the need for VIRT_ADDRESS_VARIES.
15443 (PURE_P): Use a more-efficient implementation that needs just one
15444 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
15445 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
15446 to 4 (xorl, subq, cmpq, setbe).
15447 * alloc.c (pure): Always extern now, since that's the
15448 VIRT_ADDR_VARIES behavior.
15449 (PURE_POINTER_P): Use a single comparison, not two, for
15450 consistency with the new puresize.h.
15451 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
15452 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
15453 Remove VIRT_ADDR_VARIES no longer needed.
15454
f8fe6f96
EZ
154552011-11-19 Eli Zaretskii <eliz@gnu.org>
15456
15457 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
15458 (erase_phys_cursor, update_window_cursor, show_mouse_face)
15459 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
15460 behave as if the cursor position were at the window margin.
15461
15462 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
15463 and the cursor position is out of bounds, behave as if the cursor
15464 position were at the window margin. (Bug#10075)
15465
df05a53c
CY
154662011-11-18 Chong Yidong <cyd@gnu.org>
15467
15468 * window.c (Fwindow_combination_limit): Make first argument
15469 non-optional, since it is meaningless for live windows like the
15470 selected window.
61ccba97 15471
2071918e
DA
154722011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
15473
15474 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
15475
b50a28de
SM
154762011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
15477
15478 * intervals.c: Fix grafting over the whole buffer (bug#10071).
15479 (graft_intervals_into_buffer): Simplify.
15480
015137db
EZ
154812011-11-18 Eli Zaretskii <eliz@gnu.org>
15482
15483 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
15484 hash values of the two rows.
15485 (copy_row_except_pointers): Preserve the used[] arrays and the
15486 hash values of the two rows. (Bug#10035)
68c95424 15487 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
15488
15489 * xdisp.c (row_hash): New function, body extracted from
15490 compute_line_metrics.
15491 (compute_line_metrics): Call row_hash, instead of computing the
15492 hash code inline.
15493
15494 * dispnew.c (verify_row_hash): Call row_hash for computing the
15495 hash code of a row, instead of duplicating code from xdisp.c.
15496
15497 * dispextern.h (row_hash): Add prototype.
15498
a2addb04
TH
154992011-11-18 Tassilo Horn <tassilo@member.fsf.org>
15500
15501 * frame.c (delete_frame): Don't delete the terminal when the last
15502 X frame is closed if emacs is built with GTK toolkit.
15503
df85d315
JB
155042011-11-17 Juanma Barranquero <lekktu@gmail.com>
15505
15506 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
15507
a0c2d0ae
MR
155082011-11-17 Martin Rudalics <rudalics@gmx.at>
15509
15510 * window.c (Vwindow_splits): Rename to
15511 Vwindow_combination_resize. Suggested by Juri Linkov.
15512 (Fsplit_window_internal): Use Vwindow_combination_resize instead
15513 of Vwindow_splits.
15514
58179cce
JB
155152011-11-16 Juanma Barranquero <lekktu@gmail.com>
15516
7877f373
JB
15517 * nsfns.m (Fns_font_name):
15518 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 15519
b6f67890
MR
155202011-11-16 Martin Rudalics <rudalics@gmx.at>
15521
15522 * window.h (window): Rename slot "nest" to "combination_limit".
15523 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
15524 (Fset_window_nest): Rename to Fset_window_combination_limit.
15525 (Vwindow_nest): Rename to Vwindow_combination_limit.
15526 (recombine_windows, make_parent_window, make_window)
15527 (Fsplit_window_internal, saved_window)
15528 (Fset_window_configuration, save_window_save): Rename all
15529 occurrences of window_nest to window_combination_limit.
15530
c7015153
JB
155312011-11-15 Juanma Barranquero <lekktu@gmail.com>
15532
15533 * image.c (imagemagick_load_image): Fix typo.
15534
322ad6ec
EZ
155352011-11-14 Eli Zaretskii <eliz@gnu.org>
15536
15537 * xdisp.c (display_line): Move the call to
15538 highlight_trailing_whitespace before the call to
15539 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
15540 faces of all the glyphs to compute ROW's hash value.
15541 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 15542
f067b8ec
JB
155432011-11-14 Juanma Barranquero <lekktu@gmail.com>
15544
15545 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
15546 just return (bug#10044).
15547
1e5b2111
EZ
155482011-11-12 Eli Zaretskii <eliz@gnu.org>
15549
7ef3cbd5
EZ
15550 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
15551 with user-defined heap size. Bump the default size of the temacs
15552 heap to 27MB, to avoid memory warning when running temacs.
15553 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
15554
1e5b2111
EZ
15555 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
15556 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
15557 (verify_row_hash) [XASSERTS]: New function.
15558 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
15559 that the hash value of glyph rows is correct.
1e5b2111 15560
89d61221
MR
155612011-11-12 Martin Rudalics <rudalics@gmx.at>
15562
15563 * window.h (window): Remove splits slot.
15564 * window.c (Fwindow_splits, Fset_window_splits): Remove.
15565 (Fdelete_other_windows_internal, make_parent_window)
15566 (make_window, Fsplit_window_internal, Fdelete_window_internal)
15567 (Fset_window_configuration, save_window_save): Don't deal with
15568 split status of windows.
15569 (saved_window): Remove splits slot.
15570 (Vwindow_splits): Rewrite doc-string.
15571
97f18cc8
JD
155722011-11-11 Jan Djärv <jan.h.d@swipnet.se>
15573
15574 * xfns.c (unwind_create_frame):
15575 * nsfns.m (unwind_create_frame):
15576 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
15577 Vframe_list (Bug#9999).
15578
22a648b4
DA
155792011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
15580
0b381c7e 15581 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 15582
659afede
KH
155832011-11-11 Kenichi Handa <handa@m17n.org>
15584
15585 * callproc.c (Fcall_process): Set the member dst_multibyte of
15586 process_coding.
15587
9ac0394b
KH
155882011-11-11 Johan Bockgård <bojohan@gnu.org>
15589
15590 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
15591 avoid a crash (bug#9496).
15592
2fbdc249
CY
155932011-11-09 Chong Yidong <cyd@gnu.org>
15594
15595 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
15596 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
15597
ac6b1f81
PE
155982011-11-08 Paul Eggert <eggert@cs.ucla.edu>
15599
15600 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
15601
09db192c
PE
156022011-11-08 Paul Eggert <eggert@cs.ucla.edu>
15603
15604 Avoid some portability problems by eschewing 'extern inline' functions.
15605 The trivial performance wins aren't worth the portability hassles; see
15606 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
15607 et seq.
15608 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
15609 (window_box_width, window_box_left, window_box_left_offset)
15610 (window_box_right, window_box_right_offset): Undo previous change,
15611 by removing the "extern"s.
15612 * intervals.c (adjust_intervals_for_insertion)
15613 (adjust_intervals_for_deletion): Undo previous change,
15614 making these static again.
15615 (offset_intervals, temp_set_point_both, temp_set_point)
15616 (copy_intervals_to_string): No longer inline.
15617 * xdisp.c (window_text_bottom_y, window_box_width)
15618 (window_box_height, window_box_left_offset)
15619 (window_box_right_offset, window_box_left, window_box_right)
15620 (window_box): No longer inline.
15621
105216ed
CY
156222011-11-08 Chong Yidong <cyd@gnu.org>
15623
15624 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
15625 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
15626 Signal an error if not a live window.
105216ed
CY
15627 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
15628 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
15629
ae9e237f
JB
156302011-11-07 Juanma Barranquero <lekktu@gmail.com>
15631
15632 * lisp.h (syms_of_abbrev): Remove declaration.
15633 Reported by CHENG Gao <chenggao@royau.me>.
15634
c7aa8333
EZ
156352011-11-07 Eli Zaretskii <eliz@gnu.org>
15636
15637 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
15638 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
15639 of temacs in GUI mode.
15640
be7f5545
MR
156412011-11-07 Martin Rudalics <rudalics@gmx.at>
15642
15643 * window.h: Declare delete_all_child_windows instead of
15644 delete_all_subwindows.
15645 * window.c (Fwindow_nest, Fset_window_nest)
15646 (Fset_window_new_total, Fset_window_new_normal)
15647 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
15648 (delete_all_subwindows): Rename to delete_all_child_windows.
15649 (Fdelete_other_windows_internal, Fset_window_configuration):
15650 Call delete_all_child_windows instead of delete_all_subwindows.
15651 * frame.c (delete_frame): Call delete_all_child_windows instead
15652 of delete_all_subwindows.
15653
ca78dc43
PE
156542011-11-07 Paul Eggert <eggert@cs.ucla.edu>
15655
15656 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
15657 This is also needed for porting to any host where GC_MARK_STACK is
15658 not GC_MAKE_GCPROS_NOOPS.
15659 (which_symbols): Use it.
15660
a0241d01
KH
156612011-11-07 Kenichi Handa <handa@m17n.org>
15662
15663 * coding.c (coding_set_destination): Check coding->src_pos only
15664 when coding->src_object is a buffer (bug#9910).
15665
15666 * process.c (send_process): Set the member src_multibyte of coding
15667 to 0 (bug#9911) when sending a unibyte text.
15668
15669 * callproc.c (Fcall_process): Set the member src_multibyte of
15670 process_coding to 0 (bug#9912).
15671
a64bfdfa 156722011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
15673
15674 * xmenu.c (cleanup_widget_value_tree): New function.
15675 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
15676 calling free_menubar_widget_value_tree directly (Bug#9830).
15677
cb41b32a
PE
156782011-11-06 Paul Eggert <eggert@cs.ucla.edu>
15679
15680 Fix some portability problems with 'inline'.
15681 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
15682 (window_box_width, window_box_left, window_box_left_offset)
15683 (window_box_right, window_box_right_offset): Declare extern.
15684 Otherwise, these inline functions do not conform to C99 and
15685 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
15686 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
15687 * intervals.c (adjust_intervals_for_insertion)
15688 (adjust_intervals_for_deletion): Now extern, because otherwise the
15689 extern inline functions 'offset_intervals' couldn't refer to it.
15690 (static_offset_intervals): Remove.
15691 (offset_intervals): Rewrite using the old contents of
15692 static_offset_intervals. The old version didn't conform to C99
15693 because an extern inline function contained a reference to an
15694 identifier with static linkage.
15695
b7041366
AS
156962011-11-06 Andreas Schwab <schwab@linux-m68k.org>
15697
15698 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
15699 GC.
15700
88a37c4d
EZ
157012011-11-06 Eli Zaretskii <eliz@gnu.org>
15702
15703 * xdisp.c (init_iterator, reseat_to_string): Don't set the
15704 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
15705 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
15706 return Qleft_to_right.
15707
49745b39
CY
157082011-11-06 Chong Yidong <cyd@gnu.org>
15709
15710 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
15711 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
15712 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
15713 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
15714 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
15715 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
15716 (Fwindow_vscroll): Doc fix.
15717 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
15718 argument, since it makes no sense to pass a live window and for
15719 consistency with window-child.
15720
1f05cd82
CS
157212011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
15722
15723 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
15724 support MSVC.
15725
22610910
JR
157262011-11-05 Jason Rumney <jasonr@gnu.org>
15727
15728 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
15729 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
15730 fonts (Bug#6029).
15731 (add_font_entity_to_list): Fix logic errors in mixed boolean and
15732 bitwise arithmetic preventing use of unicode-sip and non-truetype
15733 opentype fonts.
15734
a06776b2
EZ
157352011-11-05 Eli Zaretskii <eliz@gnu.org>
15736
3ad924ba
EZ
15737 * s/ms-w32.h (fstat, stat, utime): Move redirections to
15738 "emacs"-only part.
15739
a06776b2
EZ
15740 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
15741 initialization code to keep similarity to xfns.c after changes
15742 from 2011-11-05.
15743
c9e7db78
JD
157442011-11-05 Jan Djärv <jan.h.d@swipnet.se>
15745
a97f8f3f
JD
15746 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
15747 (unwind_create_frame): New function (Bug#9943).
15748 (Fx_create_frame): Restructure code to be more similar to the one in
15749 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
15750 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
15751 Move terminal->reference_count++ just before making the frame official
15752 (Bug#9943).
15753
15754 * nsterm.m (x_free_frame_resources): New function.
15755 (x_destroy_window): Move code to x_free_frame_resources.
15756
c9e7db78 15757 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
15758 (Fx_create_frame, x_create_tip_frame):
15759 Move terminal->reference_count++ just before making the frame
75f1671a 15760 official. Move initialization of image_cache_refcount and
c9e7db78
JD
15761 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
15762
a6fc3b5c
EZ
157632011-11-05 Eli Zaretskii <eliz@gnu.org>
15764
15765 Support MSVC build with newer versions of Visual Studio.
15766 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
15767 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
15768 nt/gmake.defs.
15769
15770 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
15771 which are not supported by MSVC.
15772 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
15773 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
15774 bitfields.
15775 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
15776 types in bitfields.
15777 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
15778
15779 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
15780
58179cce 157812011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
15782
15783 Support MSVC build with newer versions of Visual Studio.
15784 * w32.c: Don't include w32api.h for MSVC.
15785 (init_environment) [_MSC_VER]: Call sys_access, not _access.
15786
15787 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
15788 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
15789 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
15790 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
15791 e_* cousins.
15792 (alloca) [_MSC_VER]: Define to _alloca.
15793
15794 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
15795
15796 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
15797
a58c13ed
EZ
157982011-11-04 Eli Zaretskii <eliz@gnu.org>
15799
15800 * xdisp.c (note_mouse_highlight): If either of
15801 previous/next-single-property-change returns nil, treat that as
15802 the beginning or the end of the buffer. (Bug#9955)
15803
fe0b6370
JD
158042011-11-04 Jan Djärv <jan.h.d@swipnet.se>
15805
a58c13ed 15806 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
15807 label is not null (Bug#9951).
15808 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
15809 may be NULL.
15810
89bd5ee1
EZ
158112011-11-04 Eli Zaretskii <eliz@gnu.org>
15812
15813 * window.c (Fwindow_body_size): Mention in the doc string that the
15814 return value is in frame's canonical units. (Bug#9949)
15815
84c3edb9
EZ
158162011-11-03 Eli Zaretskii <eliz@gnu.org>
15817
4e2fb5c7
EZ
15818 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
15819
84c3edb9 15820 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 15821 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 15822 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 15823
bc17a887
EZ
158242011-11-01 Eli Zaretskii <eliz@gnu.org>
15825
15826 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
15827 Don't stop backward scan on the continuation glyph, even though
15828 its CHARPOS is positive.
6d5eb5b0
SM
15829 (mouse_face_from_buffer_pos, note_mouse_highlight):
15830 Rename cover_string to disp_string.
bc17a887 15831
4ee88440
MR
158322011-11-01 Martin Rudalics <rudalics@gmx.at>
15833
15834 * window.c (temp_output_buffer_show): Don't use
15835 Vtemp_buffer_show_specifiers.
15836 (Vtemp_buffer_show_specifiers): Remove unused variable.
15837
c2ff3c02
EZ
158382011-10-30 Eli Zaretskii <eliz@gnu.org>
15839
15840 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
15841 past the beginning of the current glyph matrix.
15842
58179cce 158432011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
15844
15845 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
15846 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
15847 HAVE_GTK3 (Bug#9869).
b77a6a7f 15848
3b574623
JD
15849 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
15850 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
15851
b77a6a7f
JD
15852 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
15853
15854 * xterm.c: Declare x_handle_net_wm_state to return int.
15855 (handle_one_xevent): Check if we are iconified but don't have
15856 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
15857 (get_current_wm_state): Return non-zero if not hidden,
15858 check for _NET_WM_STATE_HIDDEN (Bug#9893).
15859 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
15860 (x_handle_net_wm_state): Return what get_current_wm_state returns.
15861 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
15862
196e41e4
PE
158632011-10-29 Paul Eggert <eggert@cs.ucla.edu>
15864
15865 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
15866 so that this new function doesn't get optimized away by a
15867 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
15868
021f2e1a
AS
158692011-10-29 Andreas Schwab <schwab@linux-m68k.org>
15870
15871 * frame.h (MOUSE_HL_INFO): Remove excess parens.
15872
8b058d44
EZ
158732011-10-29 Eli Zaretskii <eliz@gnu.org>
15874
15875 Fix the `xbytecode' command.
15876 * .gdbinit (xprintbytestr): New command.
b50a28de 15877 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
15878 (xbytecode): Print the byte-code string as well.
15879
4452fb80
EZ
158802011-10-29 Kim Storm <storm@cua.dk>
15881
8b058d44
EZ
15882 * alloc.c (which_symbols): New function.
15883
21b72067
AS
158842011-10-29 Andreas Schwab <schwab@linux-m68k.org>
15885
15886 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
15887 line. (Bug#9903)
15888
83ed7b5c
GM
158892011-10-29 Glenn Morris <rgm@gnu.org>
15890
15891 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
15892 Not clear what it was for, and it causes various bugs. (Bug#9839)
15893
5a7a728b
EZ
158942011-10-28 Eli Zaretskii <eliz@gnu.org>
15895
15896 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
15897 possible random value that matches one of those tested as
15898 condition to clear the mouse face.
15899
d3d0842f
CY
159002011-10-28 Chong Yidong <cyd@gnu.org>
15901
15902 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
15903
31b39d13
DN
159042011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
15905
15906 * window.c (make_window): Initialize phys_cursor_on_p.
15907
9aba6043
SM
159082011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
15909
15910 * lisp.h (struct Lisp_Symbol): Update comments.
15911
c20992f4
JB
159122011-10-28 Juanma Barranquero <lekktu@gmail.com>
15913
15914 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
15915
db4f02f2
EZ
159162011-10-28 Eli Zaretskii <eliz@gnu.org>
15917
15918 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
15919 <oslsachem@gmail.com> for helping to debug this.
15920
15921 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
15922 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
15923 (g_b_init_get_glyph_outline_w): New static variables.
15924 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
15925 (GetGlyphOutlineW_Proc): New typedefs.
15926 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
15927 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
15928 New functions.
15929 (w32font_open_internal, compute_metrics):
15930 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
15931 instead of calling the "wide" APIs directly.
15932
15933 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
15934
15935 * w32.h (syms_of_w32font): Add prototype.
15936
87e68db4
JB
159372011-10-27 Juanma Barranquero <lekktu@gmail.com>
15938
15939 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
15940 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
15941 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
15942 (Fmove_to_window_line): Doc fix.
15943
435c1d67
CY
159442011-10-27 Chong Yidong <cyd@gnu.org>
15945
15946 * process.c (make_process): Set gnutls_state to NULL.
15947
15948 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
15949 non-NULL, regardless of GNUTLS_INITSTAGE.
15950 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
15951 an error. Set process slots as soon as we allocate them.
15952
15953 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
15954
9c6c6f49
CY
159552011-10-27 Chong Yidong <cyd@gnu.org>
15956
9aba6043
SM
15957 * gnutls.c (emacs_gnutls_deinit): New function.
15958 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
15959 (Fgnutls_deinit, Fgnutls_boot): Use it.
15960
15961 * process.c (make_process): Initialize GnuTLS credentials to NULL.
15962 (deactivate_process): Call emacs_gnutls_deinit.
15963
657d08d3
JB
159642011-10-27 Juanma Barranquero <lekktu@gmail.com>
15965
15966 * image.c (x_create_x_image_and_pixmap):
15967 * w32.c (sys_rename, w32_delayed_load):
15968 * w32font.c (fill_in_logfont):
15969 * w32reg.c (x_get_string_resource): Silence compiler warnings.
15970
5430d399
JB
159712011-10-26 Juanma Barranquero <lekktu@gmail.com>
15972
15973 * w32fns.c (w32_default_color_map): New function,
15974 extracted from Fw32_default_color_map.
a7ef684b 15975 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 15976
fe0055fa
PE
159772011-10-25 Paul Eggert <eggert@cs.ucla.edu>
15978
15979 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
15980
e6346438
SM
159812011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
15982
15983 * keyboard.c (test_undefined): New function (bug#9751).
15984 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
15985
e112cc37
ET
159862011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
15987
15988 * sysdep.c (init_sys_modes): Fix the check for the controlling
15989 terminal (Bug#6649).
15990
7b5d6677
EZ
159912011-10-20 Eli Zaretskii <eliz@gnu.org>
15992
15993 * dispextern.h (struct bidi_it): New member next_en_type.
15994
15995 * bidi.c (bidi_line_init): Initialize the next_en_type member.
15996 (bidi_resolve_explicit_1): When next_en_pos is valid for the
15997 current character, check also for next_en_type being WEAK_EN.
15998 (bidi_resolve_weak): Don't enter the expensive loop if the current
15999 position is before next_en_pos. Record the bidi type of the first
16000 non-ET, non-BN character we find, in addition to its position.
16001 (bidi_level_of_next_char): Invalidate next_en_type when
16002 next_en_pos is over-stepped.
16003
7da0b018
PE
160042011-10-20 Paul Eggert <eggert@cs.ucla.edu>
16005
16006 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
16007 * editfns.c: Rewrite current-time-zone so that it invokes
16008 the equivalent of (format-time-string "%Z") to get the time zone name.
16009 This fixes a bug when the time zone name contains characters that
16010 need converting from the system time locale to Emacs internal format.
16011 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
16012 that patch fixed format-time-string to do the conversion, but
16013 I forgot to fix current-time-zone.
16014 (format_time_string): New function, containing most of
16015 what Fformat_time_string used to contain.
16016 (Fformat_time_string): Rewrite in terms of format_time_string.
16017 This doesn't change this function's behavior.
16018 (current-time-zone): Rewrite to use format_time_string.
16019 This fixes the bug reported by Michael Schierl in
16020 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
16021 Jason Rumney's 2007-06-07 change worked around this bug, but
16022 didn't fix it.
16023 * systime.h (tzname, timezone): Remove no-longer-used declarations.
16024
8547b010
EZ
160252011-10-19 Eli Zaretskii <eliz@gnu.org>
16026
16027 * xdisp.c (start_display): If the character at POS is displayed
16028 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
16029 (try_window_reusing_current_matrix): If a line ends in a display
16030 vector or the next line starts in a display vector, continue
16031 redrawing the window even though the character position of
16032 start_row was reached.
8547b010
EZ
16033 (Bug#9771, part 2)
16034
4e948d15
CY
160352011-10-18 Chong Yidong <cyd@gnu.org>
16036
16037 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
16038 with nobreak-char-display too.
16039
4787455f
EZ
160402011-10-18 Eli Zaretskii <eliz@gnu.org>
16041
16042 Fix part 3 of bug#9771.
16043 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
16044 (bidi_resolve_neutral): Don't enter the expensive loop looking for
16045 non-neutral characters if the current character is a paragraph
16046 separator (a.k.a. Newline). This avoids running the same
16047 expensive loop twice, once when we consume the preceding newline
16048 and the other time when the line actually needs to be displayed.
16049 Avoid the loop when we see neutrals on the base embedding level
16050 following a character whose directionality is the same as the
16051 paragraph's. This avoids running the expensive loop when a line
16052 ends in a long sequence of neutrals, like control characters.
16053 Add assertion against STRONG_AL type. Slightly rearrange code
16054 that determines the type of a neutral given the first non-neutral
16055 that follows it.
16056 (bidi_level_of_next_char): Set next_en_pos to zero when
16057 invalidating its info.
16058
2c91f553
EZ
160592011-10-17 Eli Zaretskii <eliz@gnu.org>
16060
16061 * xdisp.c (push_display_prop): Determine whether to record string
16062 or buffer position by IT->string, not by IT->method. Allow
16063 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
16064 (move_it_vertically_backward): Don't look for character position
16065 immediately after the newline when in a continuation line.
16066 (Bug#9771, part 1)
2c91f553 16067
c7b08b0d
MR
160682011-10-15 Martin Rudalics <rudalics@gmx.at>
16069
16070 * window.c (coordinates_in_window): Rewrite and delabelize
16071 vertical border check. (Bug#5357) (Bug#9618)
16072
6b02f655
SM
160732011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
16074
16075 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
16076 errors in XSetWindowBorder (bug#9310).
16077
81d40c92
DA
160782011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
16079
16080 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
16081 avoid crash when xmalloc overrun checking is enabled.
16082
d4172c3b
EZ
160832011-10-13 Eli Zaretskii <eliz@gnu.org>
16084
16085 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
16086 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
16087 cursor motion with <left> and <right> arrow keys.
16088
16089 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
16090 some callers set that themselves.
16091
b00eea75
EZ
160922011-10-12 Eli Zaretskii <eliz@gnu.org>
16093
16094 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
16095 display string and the previous row comes from the same string and
16096 is empty. (Bug#9739) (Bug#9738)
16097
8fe012c4
SM
160982011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
16099
16100 * doc.c (get_doc_string): Encode file name (bug#9735).
16101
0074aef2
EZ
161022011-10-12 Eli Zaretskii <eliz@gnu.org>
16103
79beb178
EZ
16104 * bidi.c (bidi_level_of_next_char):
16105 * xdisp.c (get_visually_first_element): Remove old incorrect
16106 comments regarding the Unicode Line Separator character.
16107
0074aef2
EZ
16108 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
16109
6e4b3fbe
DA
161102011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
16111
16112 * alloc.c (Fgc_status): Do not access beyond zombies array
16113 boundary if nzombies > MAX_ZOMBIES.
16114 * alloc.c (dump_zombies): Add missing format specifier.
16115
0324f3af
PE
161162011-10-12 Paul Eggert <eggert@cs.ucla.edu>
16117
b5525cac
PE
16118 * xdisp.c (set_cursor_from_row): Simplify conditionals,
16119 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
16120
0324f3af
PE
16121 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
16122 Some packages use them to denote characters with modifiers.
16123
e9b5f888
AS
161242011-10-11 Andreas Schwab <schwab@linux-m68k.org>
16125
16126 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
16127 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
16128 matching a pp-number. Rename parameter var to var1.
16129
127827c0
SM
161302011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
16131
16132 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
16133
c8fd3bd0
GM
161342011-10-08 Glenn Morris <rgm@gnu.org>
16135
16136 * callint.c (Fcall_interactively): Give a more explicit error for the
16137 'c' case with a non-character input. (Bug#8479)
16138
352ec8ff
EZ
161392011-10-08 Eli Zaretskii <eliz@gnu.org>
16140
03669ccb
EZ
16141 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
16142 lines.
7061c986
EZ
16143 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
16144 lines that are hscrolled on the left.
03669ccb 16145
352ec8ff
EZ
16146 * dispnew.c (buffer_posn_from_coords): Account for a possible
16147 presence of header-line. (Bug#4426)
16148
a66cfb1c
SM
161492011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
16150
6b02f655
SM
16151 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
16152 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 16153
7c5ee88e
PE
161542011-10-07 Paul Eggert <eggert@cs.ucla.edu>
16155
16156 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
16157 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
16158 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
16159 this makes Emacs dump core during garbage collection on rare
16160 occasions. sizeof is obviously inferior to offsetof here, so
16161 stick with offsetof.
16162 (GC_POINTER_ALIGNMENT): New macro.
16163 (mark_memory): Omit 3rd (offset) arg; caller changed.
16164 Don't assume EMACS_INT alignment is the same as pointer alignment.
16165
df1bbe5b
SM
161662011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
16167
16168 * keyboard.c (read_key_sequence_remapped): New var.
16169 (read_key_sequence): Compute remapping in the right buffer.
16170 (command_loop_1): Use read_key_sequence's remapping directly.
16171
51553db6
SM
161722011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
16173
32c1fffd
SM
16174 * dired.c (file_name_completion): Don't expand file name.
16175 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
16176 before checking file name handler.
16177
51553db6
SM
16178 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
16179 they've been requested explicitly (bug#9591).
16180
b6bd1599 161812011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
16182
16183 * keymap.c (Fsingle_key_description): Use make_specified_string
16184 instead of build_string to build string from push_key_description.
16185 (Bug#5193)
16186
f701dc2a
PE
161872011-09-30 Paul Eggert <eggert@cs.ucla.edu>
16188
4222c55d
PE
16189 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
16190 This fixes a Y2038 bug on 64-bit hosts.
16191 * buffer.c (reset_buffer):
16192 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
16193 (Fclear_buffer_auto_save_failure):
16194 Use 0, not -1, to represent an unset failure time, since time_t
16195 might not be signed.
16196
f701dc2a
PE
16197 Remove dependency on glibc malloc internals.
16198 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16199 Move back here from lisp.h, but with their new implementations.
16200 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16201 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
16202 * charset.c (charset_table_init): New static var.
16203 (syms_of_charset): Use it instead of xmalloc. This removes a
16204 dependency on glibc malloc internals. See Eli Zaretskii's comment in
16205 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
16206 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16207 Move back to alloc.c.
16208 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16209 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
16210
9ceebf39
JD
162112011-09-30 Jan Djärv <jan.h.d@swipnet.se>
16212
16213 * nsterm.m (windowDidResize): Call x_set_window_size only when
16214 ns_in_resize is true. Otherwise set pixelwidth/height and
16215 call change_frame_size (Bug#9628).
16216
cb993c58
PE
162172011-09-30 Paul Eggert <eggert@cs.ucla.edu>
16218
3930c88b
PE
16219 Port --enable-checking=all to Fedora 14 x86-64.
16220 * charset.c (syms_of_charset): Also account for glibc malloc's
16221 internal overhead when calculating the initial malloc maximum.
16222
cb993c58
PE
16223 Port --enable-checking=all to Fedora 14 x86.
16224 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16225 Move to lisp.h.
16226 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
16227 (overrun_check_realloc, overrun_check_free):
16228 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
16229 That way, xmalloc returns a properly-aligned pointer even if
16230 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
16231 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
16232 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
16233 into account when calculating the initial malloc maximum.
16234 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16235 Move here from alloc.c, so that charset.c can use it too.
16236 Properly align; the old code wasn't right for common 32-bit hosts
16237 when configured with --enable-checking=all.
16238 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16239 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
16240
31bed486
EZ
162412011-09-29 Eli Zaretskii <eliz@gnu.org>
16242
04c70788 16243 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
16244 use EDOM.
16245
fbcaa2f3
EZ
162462011-09-28 Eli Zaretskii <eliz@gnu.org>
16247
16248 * xdisp.c (compute_display_string_end): If there's no display
16249 string at CHARPOS, return -1.
16250
16251 * bidi.c (bidi_fetch_char): When compute_display_string_end
16252 returns a negative value, treat the character as a normal
16253 character not covered by a display string. (Bug#9624)
16254
a239d4e9
JB
162552011-09-28 Juanma Barranquero <lekktu@gmail.com>
16256
16257 * lread.c (Fread_from_string): Fix typo in docstring.
16258
88652fd5
EZ
162592011-09-27 Eli Zaretskii <eliz@gnu.org>
16260
16261 * xdisp.c (handle_invisible_prop): If invisible text ends on a
16262 newline, reseat the iterator instead of bidi-iterating there one
16263 character at a time. (Bug#9610)
32c1fffd
SM
16264 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
16265 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 16266
ed497dd4
AS
162672011-09-27 Andreas Schwab <schwab@linux-m68k.org>
16268
16269 * lread.c (readevalloop): Use correct code for NBSP.
16270 (read1): Likewise. (Bug#9608)
16271
b2bf61aa
MA
162722011-09-25 Michael Albinus <michael.albinus@gmx.de>
16273
16274 * dbusbind.c (Fdbus_register_signal): When service is not
16275 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
16276
32bbb17c
GM
162772011-09-25 Glenn Morris <rgm@gnu.org>
16278
16279 * buffer.c (truncate-lines): Doc fix.
16280
94e0933e
CY
162812011-09-24 Chong Yidong <cyd@stupidchicken.com>
16282
16283 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
16284 (Fset_window_next_buffers): Doc fix.
16285
cddde921
GM
162862011-09-24 Glenn Morris <rgm@gnu.org>
16287
16288 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
16289
1260aef1
PE
162902011-09-24 Paul Eggert <eggert@cs.ucla.edu>
16291
25b4bfa0
PE
16292 Fix minor problems found by static checking.
16293 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
16294 * indent.c (Fvertical_motion): Fix == vs = typo.
16295
e3cbd34b
EZ
162962011-09-24 Eli Zaretskii <eliz@gnu.org>
16297
a66cfb1c
SM
16298 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
16299 Default value is now t. Doc fix.
6bf7006f 16300
e3cbd34b 16301 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 16302 logic when moving up, not only when moving down. Fix the
e3cbd34b 16303 confusing name and values of the it_overshoot_expected variable;
32c1fffd 16304 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
16305
16306 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
16307 CHARPOS is covered by a display string which includes newlines.
16308 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
16309 is covered by a display string with embedded newlines.
16310
a3de0cbd
MA
163112011-09-24 Michael Albinus <michael.albinus@gmx.de>
16312
16313 * dbusbind.c (Fdbus_register_signal): Add match rule to
16314 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
16315 (Fdbus_register_method, Vdbus_registered_objects_table):
16316 Fix docstring.
a3de0cbd 16317
b260039d
JM
163182011-09-24 Jim Meyering <meyering@redhat.com>
16319
32c1fffd 16320 do not ignore write error for any output size
b260039d
JM
16321 The previous change was incomplete.
16322 While it makes emacs --batch detect the vast majority of stdout
16323 write failures, errors were still ignored whenever the output size is
16324 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
16325 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
16326 && echo FAIL: ignored write error
16327 FAIL: ignored write error
16328 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
16329 && echo FAIL: ignored write error
16330 FAIL: ignored write error
16331 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
16332
8eca8a7c
AS
163332011-09-23 Andreas Schwab <schwab@linux-m68k.org>
16334
16335 * emacs.c (Fkill_emacs): In noninteractive mode exit
16336 non-successfully if a write error occurred on stdout. (Bug#9574)
16337
3341db62
EZ
163382011-09-21 Eli Zaretskii <eliz@gnu.org>
16339
16340 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
16341 the xassert test.
16342
16343 * dispextern.h (struct it): Update the comment documenting what
16344 can it->OBJECT be.
16345
8c203dbf
EZ
163462011-09-20 Eli Zaretskii <eliz@gnu.org>
16347
16348 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
16349 a display string, extend search for cursor position to end of row.
16350 (find_row_edges): If the row ends in a newline from a display
16351 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
16352 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
16353 (Fcurrent_bidi_paragraph_direction): Fix search for previous
16354 non-empty line. Fixes confusing cursor motion with arrow keys at
16355 the beginning of a line that starts with whitespace.
8c203dbf 16356
a4824228
LMI
163572011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
16358
16359 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
16360 (bug#9493).
16361
33ed493b
CY
163622011-09-18 Chong Yidong <cyd@stupidchicken.com>
16363
16364 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
16365 boolean (Bug#9154).
16366
56cd55c8
EZ
163672011-09-18 Eli Zaretskii <eliz@gnu.org>
16368
16369 * xdisp.c (display_line): Record maximum and minimum buffer
16370 positions even if no glyphs were produced (e.g., by a zero-width
16371 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
16372 buffer positions that will be removed from the glyph row because
16373 they don't fit.
c02dcedf
EZ
16374 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
16375 column is beyond frame width: don't subtract 1 "pixel" when
16376 computing width of the stretch.
3e62b7e0
EZ
16377 (reseat_at_next_visible_line_start): Undo the change made on
16378 2011-09-17 that saved paragraph information and restored it after
16379 the call to `reseat'. (Bug#9545)
56cd55c8 16380
5ed99d36 163812011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
16382
16383 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
16384 and turn window cursor on if cleared (Bug#9415).
16385
5ed99d36 163862011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
16387
16388 * search.c (boyer_moore): Take unibyte characters from pattern
16389 literally. (Bug#9458)
16390
9bade7b2
EZ
163912011-09-18 Eli Zaretskii <eliz@gnu.org>
16392
16393 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
16394
e5e9d610
PE
163952011-09-18 Paul Eggert <eggert@cs.ucla.edu>
16396
87e4427a
PE
16397 Fix minor problem found by static checking.
16398 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
16399 initialized, to pacify gcc -Wuninitialized.
16400
e5e9d610
PE
16401 * fileio.c: Report proper errno when syscall falls.
16402 (Finsert_file_contents): Save and restore errno,
16403 so that report_file_error outputs the correct diagnostic.
16404 (Fwrite_region) [CLASH_DETECTION]: Likewise.
16405
a1674f0b
EZ
164062011-09-18 Eli Zaretskii <eliz@gnu.org>
16407
16408 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
16409
fbfb6dd4
EZ
164102011-09-17 Eli Zaretskii <eliz@gnu.org>
16411
16412 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
16413 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
16414
bb187662
EZ
164152011-09-17 Eli Zaretskii <eliz@gnu.org>
16416
1137e8b8 16417 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 16418 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
16419
16420 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
16421 (bidi_find_paragraph_start): Search back for paragraph beginning
16422 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
16423 (bidi_move_to_visually_next): Only trigger paragraph-related
16424 computations when the last character is a newline or at EOB, not
16425 just any NEUTRAL_B. (Bug#9470)
16426
bb187662
EZ
16427 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
16428 truncated lines if point is covered by a display string. (Bug#9524)
16429
2e621251
PE
164302011-09-16 Paul Eggert <eggert@cs.ucla.edu>
16431
16432 * xselect.c: Relax test for outgoing X longs (Bug#9498).
16433 (cons_to_x_long): New function.
16434 (lisp_data_to_selection_data): Use it. Correct the test for
16435 short-versus-long data; it was negated. Break out of vector
16436 loop, for efficiency, when a long datum is discovered.
16437
91a15bc6
SM
164382011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
16439
16440 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
16441
b41c3a35
EZ
164422011-09-16 Eli Zaretskii <eliz@gnu.org>
16443
16444 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
16445 GCC PR/17406) by declaring this function with external scope.
16446
7812ba2d
PE
164472011-09-15 Paul Eggert <eggert@cs.ucla.edu>
16448
16449 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
16450 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
16451
cf7edc2a
AS
164522011-09-15 Andreas Schwab <schwab@linux-m68k.org>
16453
16454 * editfns.c (Fformat): Correctly handle text properties on "%%".
16455
bd01620e
EZ
164562011-09-15 Eli Zaretskii <eliz@gnu.org>
16457
16458 * xterm.c (x_draw_composite_glyph_string_foreground):
16459 * w32term.c (x_draw_composite_glyph_string_foreground):
16460 * term.c (encode_terminal_code):
16461 * composite.c (composition_update_it, get_composition_id):
16462 * xdisp.c (get_next_display_element)
16463 (fill_composite_glyph_string): Add comments about special meaning
16464 of TAB characters in a composition.
16465
a02719a3
PE
164662011-09-15 Paul Eggert <eggert@cs.ucla.edu>
16467
16468 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
16469 This occurs when processing a multibyte format.
16470 Problem reported by Wolfgang Jenker.
a02719a3 16471
72589a3c
JB
164722011-09-15 Johan Bockgård <bojohan@gnu.org>
16473
16474 * xdisp.c (try_cursor_movement): Only check for exact match if
16475 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
16476
1c14176c
PE
164772011-09-14 Paul Eggert <eggert@cs.ucla.edu>
16478
16479 Remove unused external symbols.
16480 * dispextern.h (calc_pixel_width_or_height): Remove decl.
16481 * xdisp.c (calc_pixel_width_or_height): Now static.
16482 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
16483 * indent.c (check_display_width):
16484 * w32term.c: Fix comment to match code.
16485 * xterm.c, xterm.h (x_catching_errors): Remove.
16486
d2eea5b5
PE
164872011-09-14 Paul Eggert <eggert@cs.ucla.edu>
16488
16489 * xselect.c: Use signed conversions more consistently (Bug#9498).
16490 (selection_data_to_lisp_data): Assume incoming selection data are
16491 signed integers, not unsigned. This is to be consistent with
16492 outgoing selection data, which was modified to use signed integers
16493 in as part of the fix to Bug#9196 in response to Jan D.'s comment
16494 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
16495 expects long, not unsigned long.
16496
46888499
EZ
164972011-09-14 Eli Zaretskii <eliz@gnu.org>
16498
16499 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
16500 computation of loop end. Reported by Johan Bockgård
16501 <bojohan@gnu.org>.
16502
ef8ef9fb
CY
165032011-09-13 Chong Yidong <cyd@stupidchicken.com>
16504
16505 * frame.c (Fother_visible_frames_p): Function deleted.
16506
fa819fed
EZ
165072011-09-12 Eli Zaretskii <eliz@gnu.org>
16508
16509 * indent.c (compute_motion): Process display vector front to back
16510 rather than the other way around. (Bug#2496)
16511
2ba8e008
SM
165122011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
16513
16514 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
16515
20f53c69
CY
165162011-09-11 Chong Yidong <cyd@stupidchicken.com>
16517
16518 * minibuf.c (Fread_from_minibuffer): Doc fix.
16519
d562d7a4
EZ
165202011-09-11 Eli Zaretskii <eliz@gnu.org>
16521
16522 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
16523 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
16524
1c4d7f3d
LMI
165252011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
16526
16527 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
16528 value for non-existent files.
16529
b885bf36
EZ
165302011-09-11 Eli Zaretskii <eliz@gnu.org>
16531
16532 * fileio.c (Finsert_file_contents): If the file cannot be opened,
16533 set its "size" to -1. This will set the modtime_size field of
16534 the corresponding buffer to -1, which is what
16535 verify-visited-file-modtime expects for files that do not exist.
16536 (Bug#9139)
16537
6612f0bf
PE
165382011-09-11 Paul Eggert <eggert@cs.ucla.edu>
16539
16540 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
16541 here ...
16542 * lisp.h: ... from here. push_key_description is no longer
16543 defined in keyboard.c, so its declaration should not be in
16544 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
16545 logically belongs with push_key_description.
16546
dfb3f755
PE
165472011-09-10 Paul Eggert <eggert@cs.ucla.edu>
16548
16549 * buffer.h: Include <sys/types.h> instead of <time.h>.
16550 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
16551 Problem reported by Herbert J. Skuhra.
16552
3134906c
LMI
165532011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
16554
16555 * xml.c (parse_region): Make the parsing work for
16556 non-comment-starting XML files again (bug#9144).
16557
8d903f4e
AS
165582011-09-10 Andreas Schwab <schwab@linux-m68k.org>
16559
16560 * image.c (gif_load): Fix calculation of bottom and right corner.
16561 (Bug#9468)
16562
80ad64f4
EZ
165632011-09-10 Eli Zaretskii <eliz@gnu.org>
16564
16565 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
16566 redisplay in small windows.
16567
208a048d
EZ
165682011-09-09 Eli Zaretskii <eliz@gnu.org>
16569
16570 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
16571
9b1c252e
MR
165722011-09-08 Martin Rudalics <rudalics@gmx.at>
16573
16574 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
16575 Operate on live windows only.
16576
2949f33b
JB
165772011-09-08 Juanma Barranquero <lekktu@gmail.com>
16578
16579 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
16580
e08dcafd
EZ
165812011-09-07 Eli Zaretskii <eliz@gnu.org>
16582
16583 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
16584 only under bidi iteration.
16585
115b96bd
JD
165862011-09-07 Jan Djärv <jan.h.d@swipnet.se>
16587
16588 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
16589
c8199d0f
PE
165902011-09-06 Paul Eggert <eggert@cs.ucla.edu>
16591
16592 isnan: Fix porting problem to Solaris 10 with bundled gcc.
16593 Without this fix, the command to link temacs failed due to an
16594 undefined symbol __builtin_isnan. This is because
16595 /usr/include/iso/math_c99.h #defines isnan(x) to
16596 __builtin_isnan(x), but the bundled gcc, which identifies itself
16597 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
16598 a __builtin_isnan.
16599 * floatfns.c (isnan): #undef, and then #define to a clone of
16600 what's in data.c.
16601 (Fisnan): Always define, since it's always available now.
16602 (syms_of_floatfns): Always define isnan at the Lisp level.
16603
e39b275c 166042011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
16605
16606 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
16607
b2db44d9 166082011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 16609
f4af5137 16610 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
16611 The previous code assumed that file offsets (off_t values) fit in
16612 EMACS_INT variables, which is not true on typical 32-bit hosts.
16613 The code messed up by falsely reporting buffer overflow in cases
16614 such as (insert-file-contents "big" nil 1 2) into an empty buffer
16615 when "big" contains more than 2**29 bytes, even though this
16616 inserts just one byte and does not overflow the buffer.
16617 (Finsert_file_contents): Store file offsets as off_t
16618 values, not as EMACS_INT values. Check for overflow when
16619 converting between EMACS_INT and off_t. When checking for
16620 buffer overflow or for overlap, take the offsets into account.
16621 Don't use EMACS_INT for small values where int suffices.
16622 When checking for overlap, fix a typo: ZV was used where
16623 ZV_BYTE was intended.
16624 (Fwrite_region): Don't assume off_t fits into 'long'.
16625 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
16626
ecfc0a49
MA
166272011-09-05 Michael Albinus <michael.albinus@gmx.de>
16628
16629 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
16630
6511acf2 166312011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 16632
0999621a 16633 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
16634
16635 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 16636 (esprintf, exprintf, evxprintf): New functions.
62f19c19 16637 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 16638 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
16639 (modify_event_symbol): Do not assume that the length of
16640 name_alist_or_stem is safe to alloca and fits in int.
16641 (Fexecute_extended_command): Likewise for function name and binding.
16642 (Frecursion_depth): Wrap around reliably on integer overflow.
16643 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
16644 since some callers pass EMACS_INT values.
16645 (Fsingle_key_description): Don't crash if symbol name contains more
16646 than MAX_ALLOCA bytes.
16647 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
16648 (get_minibuffer): Arg is now EMACS_INT, not int.
16649 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 16650 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
16651 * window.h (command_loop_level, minibuf_level): Reflect API changes.
16652
2be7d702
PE
16653 * dbusbind.c (signature_cat): New function.
16654 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
16655 Do not overrun buffer; instead, report string overflow.
16656
9d1df220
PE
16657 * dispnew.c (add_window_display_history): Don't overrun buffer.
16658 Truncate instead; this is OK since it's just a log.
16659
33ef5c64
PE
16660 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
16661 even if the time zone offset is outlandishly large.
16662 Don't mishandle offset == INT_MIN.
16663
66c6fdd5
PE
16664 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
16665 when creating daemon; the previous buffer-overflow check was incorrect.
16666
d749b01b
PE
16667 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
16668 which has the guts of the old verror function.
16669
b5cd1905
PE
16670 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
16671 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
16672
6e1a67fb
PE
16673 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
16674 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 16675 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 16676 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
16677 length of string rather than counting it via multiple sprintfs;
16678 that's simpler and more reliable.
c21721cc
PE
16679 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
16680 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
16681 sprintf, in case result does not fit in int.
16682
c57b67fc
PE
16683 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
16684 (fontset_from_font): Print it.
16685
8a401434
PE
16686 * frame.c (tty_frame_count): Now printmax_t, not int.
16687 (make_terminal_frame, set_term_frame_name): Print it.
16688 (x_report_frame_params): In X, window IDs are unsigned long,
16689 not signed long, so print them as unsigned.
16690 (validate_x_resource_name): Check for implausibly long names,
16691 and don't assume name length fits in 'int'.
16692 (x_get_resource_string): Don't blindly alloca invocation name;
16693 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
16694 not fit in int.
16695
6e1a67fb
PE
16696 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
16697 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
16698 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
16699
0df02bf3
PE
16700 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
16701 Use esprintf, not sprintf, in case result does not fit in int.
16702
48e30793
PE
16703 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
16704 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
16705 it as a large positive number.
16706 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
16707 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
16708
a66ff6d8
PE
16709 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
16710 in case result does not fit in int.
16711
aca216ff
PE
16712 * print.c (float_to_string): Detect width overflow more reliably.
16713 (print_object): Make sprintf buffer a bit bigger, to avoid potential
16714 buffer overrun. Don't assume list length fits in 'int'. Treat
16715 print length of 0 as 0, not as infinity; to be consistent with other
16716 uses of print length in this function. Don't overflow print length
16717 index. Don't assume hash table size fits in 'long', or that
16718 vectorlike size fits in 'unsigned long'.
16719
31c286f7
PE
16720 * process.c (make_process): Use printmax_t, not int, to format
16721 process-name gensyms.
16722
55e5faa1
PE
16723 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
16724
80f2e268
PE
16725 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
16726 to avoid potential buffer overrun.
16727
670741ab
PE
16728 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
16729 if X resource line is longer than 512 bytes.
16730
b7163a50
PE
16731 * xfns.c (x_window): Make sprintf buffer a bit bigger
16732 to avoid potential buffer overrun.
16733
ae58ff1f
PE
16734 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
16735
c43c8a6a
PE
16736 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
16737
3f8236f4
PE
167382011-09-04 Paul Eggert <eggert@cs.ucla.edu>
16739
53e9fe90 16740 Integer overflow fixes for scrolling, etc.
6511acf2
PE
16741 Without these, Emacs silently mishandles large integers sometimes.
16742 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
16743 it were "C-u 1 M-x recenter" on a typical 64-bit host.
16744
6511acf2
PE
16745 * xdisp.c (try_window_id): Check Emacs fixnum range before
16746 converting to 'int'.
806add1d 16747
6511acf2 16748 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
16749 Check that an Emacs fixnum is in range before assigning it to 'int'.
16750 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
16751 values converted from Emacs fixnums.
16752 (Frecenter): Don't wrap around a line count if it is out of 'int'
16753 range; instead, treat it as an extreme value.
16754 (Fset_window_configuration, compare_window_configurations):
16755 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
16756
6511acf2
PE
16757 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
16758 that can exceed INT_MAX. Check that EMACS_INT value is in range
16759 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
16760 (match_limit): Don't assume that a fixnum can fit in 'int'.
16761
6511acf2 16762 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
16763 exceed INT_MAX.
16764
6511acf2 16765 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
16766 (Fvertical_motion): Don't wrap around LINES values that don't fit
16767 in 'int'. Instead, treat them as extreme values. This is good
16768 enough for windows, which can't have more than INT_MAX lines anyway.
16769
fcb901a7
LMI
167702011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
16771
0f2f6b6d
LMI
16772 * Require libxml/parser.h to avoid compilation warning.
16773
fcb901a7
LMI
16774 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
16775
16776 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
16777 since this reportedly can destroy thread storage.
16778
6e20a0d4
CY
167792011-08-30 Chong Yidong <cyd@stupidchicken.com>
16780
16781 * syntax.c (find_defun_start): Update all cache variables if
16782 exiting early (Bug#9401).
16783
148ae00e
EZ
167842011-08-30 Eli Zaretskii <eliz@gnu.org>
16785
f6cfbd8f
EZ
16786 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
16787
148ae00e
EZ
16788 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
16789 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
16790 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
16791
16792 * term.c (tty_append_glyph): New function.
16793 (produce_stretch_glyph): Static function and its prototype deleted.
16794
a66cfb1c
SM
16795 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
16796 Add prototypes.
148ae00e 16797
c4a07a4c
PE
167982011-08-29 Paul Eggert <eggert@cs.ucla.edu>
16799
16800 * image.c (parse_image_spec): Check for nonnegative, not for positive,
16801 when checking :margin (Bug#9390).
16802 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 16803 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
16804 so that the name doesn't mislead. All uses changed.
16805
6bc8cd65
JB
168062011-08-28 Johan Bockgård <bojohan@gnu.org>
16807
16808 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
16809 set_tty_hooks.
16810
dca4927e
EZ
168112011-08-27 Eli Zaretskii <eliz@gnu.org>
16812
16813 * xdisp.c (move_it_to): Don't bail out early when reaching
16814 position beyond to_charpos, if we are scanning backwards.
16815 (move_it_vertically_backward): When DY == 0, make sure we get to
16816 the first character in the line after the newline.
16817
f2cad773
PE
168182011-08-27 Paul Eggert <eggert@cs.ucla.edu>
16819
16820 * ccl.c: Improve and simplify overflow checking (Bug#9196).
16821 (ccl_driver): Do not generate an out-of-range pointer.
16822 (Fccl_execute_on_string): Remove unnecessary check for
16823 integer overflow, noted by Stefan Monnier in
16824 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
16825 Remove a FIXME that didn't need fixing.
16826 Simplify the newly-introduced buffer reallocation code.
16827
0cae2cdb
JB
168282011-08-27 Juanma Barranquero <lekktu@gmail.com>
16829
16830 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
16831
5fc295a4 168322011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 16833
70c60eb2 16834 Integer and memory overflow issues (Bug#9196).
726e0ab1 16835
d31850da
PE
16836 * doc.c (get_doc_string): Rework so that
16837 get_doc_string_buffer_size is the actual buffer size, rather than
16838 being 1 less than the actual buffer size; this makes xpalloc more
16839 convenient.
16840
a69fbedb
PE
16841 * image.c (x_allocate_bitmap_record, cache_image):
16842 * xselect.c (Fx_register_dnd_atom):
16843 Simplify previous changes by using xpalloc.
16844
fe5c5d37
PE
16845 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
16846 since either will do and ptrdiff_t is convenient with xpalloc.
16847
0065d054
PE
16848 * charset.c (charset_table_size)
16849 (struct charset_sort_data.priority): Now ptrdiff_t.
16850 (charset_compare): Don't overflow if priorities differ greatly.
16851 (Fsort_charsets): Don't assume list length fits in int.
16852 Check for size-calculation overflow when allocating sort data.
16853 (syms_of_charset): Allocate an initial charset table that is
16854 just under 64 KiB, to avoid problems with glibc malloc and mmap.
16855
16856 * cmds.c (internal_self_insert): Check for size-calculation overflow.
16857
16858 * composite.h (struct composition.glyph_len): Now int, not unsigned.
16859 The actual value is always <= INT_MAX, and leaving it unsigned made
16860 overflow checking harder.
16861
16862 * dispextern.h (struct glyph_matrix.rows_allocated)
16863 (struct face_cache.size): Now ptrdiff_t, for convenience in use
16864 with xpalloc. The values are still always <= INT_MAX.
16865
16866 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
16867
16868 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
16869 (SAFE_NALLOCA): New macro.
16870
16871 * region-cache.c (struct boundary.pos, find_cache_boundary)
16872 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
16873 (set_cache_region, invalidate_region_cache)
16874 (revalidate_region_cache, know_region_cache, region_cache_forward)
16875 (region_cache_backward, pp_cache):
16876 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
16877 so that ptrdiff_t * can be passed to xpalloc.
16878 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
16879 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
16880 (pp_cache): Don't assume cache_len fits in int.
16881 * region-cache.h: Adjust extern decls to match.
16882
16883 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
16884 EMACS_INT, since either will do, for xpalloc.
16885
16886 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
16887 (xnmalloc, xnrealloc, xpalloc): New functions.
16888
726e0ab1
PE
16889 * bidi.c (bidi_shelve_header_size): New constant.
16890 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
16891 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
16892
51f30bc5 16893 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
16894 * buffer.c (overlays_at, overlays_in, record_overlay_string)
16895 (overlay_strings):
16896 Don't update size of array until after memory allocation succeeds,
16897 because xmalloc/xrealloc may not return.
0065d054
PE
16898 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
16899 now that we have proper integer overflow checking.
16900 (record_overlay_string, overlay_strings): Catch overflows when
16901 calculating size of overlay_str_buf.
726e0ab1 16902
0065d054
PE
16903 * callproc.c (Fcall_process): Check for size overflow when
16904 calculating size of args2.
16905 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
16906 Normally we prefer signed values, but sticking with ptrdiff_t would
16907 require adding more-complicated checks.
726e0ab1
PE
16908
16909 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
16910 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
16911 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 16912 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
16913
16914 * character.c (Fstring): Check for size-calculation overflow.
16915
16916 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
16917 unnecessary integer overflow. Check for size overflow.
16918 (encode_coding_object): Don't update size until xmalloc succeeds.
16919
16920 * composite.c (get_composition_id): Check for overflow in glyph
16921 length calculations.
16922
16923 Integer and memory overflow fixes for display code.
16924 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
16925 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
16926 (scrolling_window): Check for overflow in size calculations.
16927 (line_draw_cost, realloc_glyph_pool, add_row_entry):
16928 Don't assume glyph table len fits in int.
16929 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
16930 (row_table_size): Now ptrdiff_t, not int.
16931 (scrolling_window): Avoid overflow in size calculations.
16932 Don't update size until allocation succeeds.
16933 * fns.c (concat): Check for overflow in size calculations.
16934 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
16935 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
16936 (NEXT_ALMOST_PRIME_LIMIT): New constant.
16937
16938 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
16939 (get_doc_string): Check for size calculation overflow.
16940 Don't update size until allocation succeeds.
16941 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
16942 EMACS_INT, where ptrdiff_t will do.
16943 (Fsubstitute_command_keys): Check for string overflow.
16944
16945 * editfns.c (set_time_zone_rule): Don't assume environment length
16946 fits in int.
16947 (message_length): Now ptrdiff_t, not int.
16948 (Fmessage_box): Don't update size until allocation succeeds.
16949 Don't assume message length fits in int.
16950 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
16951
0065d054
PE
16952 * emacs.c (main): Do not reallocate argv, since there is a null at
16953 the end that can be overwritten, and this way there's no need to
16954 worry about size-calculation overflow.
16955 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
16956
16957 * eval.c (init_eval_once, grow_specpdl): Don't update size until
16958 alloc succeeds.
16959 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
16960
16961 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
16962 (x_set_scroll_bar_width, x_figure_window_size):
16963 Check for integer overflow.
16964 (x_set_alpha): Do not assume XINT fits in int.
16965
16966 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
16967 This is for the members text_lines, text_cols, total_lines, total_cols,
16968 where the system imposes an 'int' limit.
16969
16970 * fringe.c (Fdefine_fringe_bitmap):
16971 Don't update size until alloc works.
16972
16973 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
16974 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
16975
16976 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
16977 Check for size-calculation overflow.
16978 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
16979 do, as we prefer signed integers.
16980 (id_to_widget.max_size, id_to_widget.used)
16981 (xg_store_widget_in_map, xg_remove_widget_from_map)
16982 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
16983 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
16984 Use and return ptrdiff_t, not int.
16985 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
16986 * gtkutil.h: Change prototypes to match the above.
16987
16988 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
16989 are duplicate now that they've been promoted to lisp.h.
16990 (x_allocate_bitmap_record, x_alloc_image_color)
16991 (make_image_cache, cache_image, xpm_load):
16992 Don't update size until alloc is done.
16993 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
16994 (x_detect_edges):
3256efce 16995 Check for size calculation overflow.
726e0ab1
PE
16996 (ct_colors_allocated_max): New constant.
16997 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
16998 overflow.
3256efce 16999
726e0ab1
PE
17000 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
17001 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
17002 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
17003 Use ptrdiff_t, not int, to count maps.
17004 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
17005 calculations. Don't update size until allocation succeeds.
17006 Redo calculations to avoid overflow.
726e0ab1
PE
17007 * keyboard.h: Change prototypes to match the above.
17008
17009 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
17010 to count maps.
17011 (current_minor_maps): Check for size calculation overflow.
17012 * keymap.h: Change prototypes to match the above.
17013
17014 * lread.c (read1, init_obarray): Don't update size until alloc done.
17015
17016 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
17017 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
17018
726e0ab1
PE
17019 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
17020 Now ptrdiff_t, not int.
17021 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
17022 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
17023
17024 * process.c (Fnetwork_interface_list): Check for overflow
17025 in size calculation.
17026
17027 * region-cache.c (move_cache_gap): Check for size calculation overflow.
17028
17029 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
17030 overflow. Don't bother calling xmalloc when xrealloc will do.
17031
17032 * search.c (Freplace_match): Check for size calculation overflow.
17033 (Fset_match_data): Don't assume list lengths fit in 'int'.
17034
17035 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
17036 for command line length. Do not attempt to address one before the
17037 beginning of an array, as that's not portable.
17038
17039 * term.c (max_frame_lines): Remove; unused.
17040 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
17041 not int.
17042 (encode_terminal_code, calculate_costs): Check for size
17043 calculation overflow.
17044 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
17045 table lengths and related sizes. Don't update size until alloc
17046 done. Redo calculations to avoid overflow.
17047 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
17048
17049 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
17050 subtracting pointers.
17051 (gobble_line): Check for overflow more carefully. Don't update size
17052 until alloc done.
17053
17054 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
17055 Don't update size until alloc done.
17056 Redo size calculations to avoid overflow.
17057 Check for size calculation overflow.
0065d054 17058 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
17059
17060 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
17061 Use ptrdiff_t, not int, for sizes.
17062 (store_mode_line_noprop_char): Don't update size until alloc done.
17063
0065d054
PE
17064 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
17065 Use ptrdiff_t, not int, for sizes.
17066 (Finternal_make_lisp_face, cache_face):
17067 Check for size calculation overflow.
17068 (cache_face): Treat size calculation overflows as if they were
17069 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
17070
17071 * xfns.c (x_encode_text, x_set_name_internal)
17072 (Fx_change_window_property): Use ptrdiff_t, not int, to count
17073 sizes, since they can exceed INT_MAX in size. Check for size
17074 calculation overflow.
17075
0065d054
PE
17076 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
17077 (xg_select): Check for size calculation overflow.
726e0ab1
PE
17078 Don't update size until alloc done.
17079
0065d054 17080 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 17081 as sprintf is limited to int lengths.
1d526e2f 17082
252c5ee1
PE
17083 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
17084 (X_LONG_MIN): New macros.
864d7ce7
PE
17085 Use them to make the following changes clearer.
17086 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
17087 This change doesn't affect the value now, but it may help remind
17088 future maintainers not to raise the value too much later.
17089 (SELECTION_QUANTUM): Remove, replacing with ...
17090 (selection_quantum): ... new function, which avoids overflow.
17091 All uses changed.
17092 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
17093 assumption that selection length fits in 'int'.
17094 (x_reply_selection_request, x_handle_selection_request)
17095 (x_get_window_property, receive_incremental_selection)
17096 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
17097 (lisp_data_to_selection_data, clean_local_selection_data):
17098 Use ptrdiff_t, not int, to record length of selection.
17099 (x_reply_selection_request, x_get_window_property)
17100 (receive_incremental_selection, x_property_data_to_lisp):
17101 Redo calculations to avoid overflow.
17102 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 17103 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
17104 something.
17105 (x_get_window_property, receive_incremental_selection)
17106 (lisp_data_to_selection_data, x_property_data_to_lisp):
17107 Check for size-calculation overflow.
17108 (x_get_window_property, receive_incremental_selection)
17109 (lisp_data_to_selection_data, Fx_register_dnd_atom):
17110 Don't store size until memory allocation succeeds.
17111 (x_get_window_property): Plug memory leak on memory exhaustion.
17112 Don't double-block input; malloc is safe here. Don't assume 2**34
17113 - 4 fits in unsigned long. Add an xassert to check
17114 XGetWindowProperty overflow. Be more careful about overflow
17115 calculations, and distinguish size from memory overflow better.
17116 (receive_incremental_selection): When tracing, don't assume
17117 unsigned int is less than INT_MAX.
17118 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
17119 harmful) conversions of unsigned short to int.
17120 (lisp_data_to_selection_data): Don't assume that integers
17121 in the range -65535 through -1 fit in an X unsigned short.
17122 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
17123 result parameters unless successful. Rely on cons_to_unsigned
17124 to report problems with elements; the old code wasn't right anyway.
17125 (x_check_property_data): Check for int overflow; we cannot use
17126 a wider type due to X limits.
17127 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
17128
726e0ab1 17129 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 17130
0065d054
PE
17131 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
17132 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
17133 (x_color_cells): Don't store size until memory allocation succeeds.
17134 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 17135 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
17136 (x_term_init): Don't assume length fits in int (sprintf is limited
17137 to int size).
bc18e09d 17138
ebfa62c0
PE
17139 Use ptrdiff_t for composition IDs.
17140 * character.c (lisp_string_width):
17141 * composite.c (composition_table_size, n_compositions)
17142 (get_composition_id, composition_gstring_from_id):
17143 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
17144 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
17145 * window.c (Frecenter):
17146 Use ptrdiff_t, not int, for composition IDs.
17147 * composite.c (get_composition_id): Check for integer overflow.
17148 * composite.h: Adjust prototypes to match the above changes.
17149
d3411f89
PE
17150 Use ptrdiff_t for hash table indexes.
17151 * category.c (hash_get_category_set):
17152 * ccl.c (ccl_driver):
17153 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
17154 * coding.c (coding_system_charset_list, detect_coding_system):
17155 * coding.h (struct coding_system.id):
17156 * composite.c (get_composition_id, gstring_lookup_cache):
17157 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
17158 * image.c (xpm_get_color_table_h):
17159 * lisp.h (hash_lookup, hash_put):
17160 * minibuf.c (Ftest_completion):
17161 Use ptrdiff_t for hash table indexes, not int (which is too
17162 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
17163 32-bit --with-wide-int hosts).
17164
e097a6fa
PE
17165 * charset.c (Fdefine_charset_internal): Check for integer overflow.
17166 Add a FIXME comment about memory leaks.
17167 (syms_of_charset): Don't assume xmalloc returns.
17168
5637687f
PE
17169 Don't assume that stated character widths fit in int.
17170 * character.c (Fchar_width, c_string_width, lisp_string_width):
17171 * character.h (CHAR_WIDTH):
17172 * indent.c (MULTIBYTE_BYTES_WIDTH):
17173 Use sanitize_char_width to avoid undefined and/or bad behavior
17174 with outlandish widths.
a66cfb1c 17175 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
17176 now that we have two such functions. All uses changed.
17177 (sanitize_char_width): New inline function.
17178
a2271ba2
PE
17179 Don't assume that tab-width fits in int.
17180 * character.h (sanitize_width): New inline function.
17181 (SANE_TAB_WIDTH): New macro.
17182 (ASCII_CHAR_WIDTH): Use it.
17183 * indent.c (sane_tab_width): Remove. All uses replaced by
17184 SANE_TAB_WIDTH (current_buffer).
17185 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
17186
18c52557
PE
17187 * fileio.c: Integer overflow issues with file modes.
17188 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
17189
caeeedc1
PE
17190 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
17191 Remove unreachable code.
17192 (read_hex, load_charset_map_from_file): Check for integer overflow.
17193
6df6ae42 17194 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
17195 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
17196 (x_send_scroll_bar_event): Likewise. Check that the size does not
17197 exceed limits imposed by XClientMessageEvent, as well as the usual
17198 ptrdiff_t and size_t limits.
17199
b13995db
PE
17200 * keyboard.c: Overflow, signedness and related fixes.
17201 (make_lispy_movement): Use same integer type in forward decl
17202 that is used in the definition.
17203 (read_key_sequence, keyremap_step):
17204 Change bufsize argument back to int, undoing my 2011-03-30 change.
17205 We prefer signed types, and int is wide enough here.
17206 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
17207 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
17208 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
17209 length, not size_t. Use ptrdiff_t for index, not int.
17210 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
17211 possibility of integer overflow.
17212
13464394
PE
17213 Overflow, signedness and related fixes for images.
17214
17215 * dispextern.h (struct it.stack[0].u.image.image_id)
17216 (struct_it.image_id, struct image.id, struct image_cache.size)
17217 (struct image_cache.used, struct image_cache.ref_count):
17218 * gtkutil.c (update_frame_tool_bar):
17219 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
17220 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
17221 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
17222 * nsmenu.m (update_frame_tool_bar):
17223 * xdisp.c (calc_pixel_width_or_height):
17224 * xfns.c (image_cache_refcount):
17225 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
17226 on typical 64-bit hosts.
17227
17228 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
17229 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
17230 Omit unnecessary casts to int.
17231 (parse_image_spec): Check that integers fall into 'int' range
17232 when the callers expect that.
17233 (image_ascent): Redo ascent calculation to avoid int overflow.
17234 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
17235 (lookup_image): Remove unnecessary tests.
17236 (xbm_image_p): Locals are now of int, not EMACS_INT,
17237 since parse_image_check makes sure they fit into int.
17238 (png_load, gif_load, svg_load_image):
17239 Prefer int to unsigned where either will do.
17240 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
17241 old tiff_error_handler and tiff_warning_handler.
17242 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
17243 stack buffer overflows. It uses only the features of vsnprintf
17244 that are common to both POSIX and native Microsoft.
17245 (tiff_error_handler, tiff_warning_handler): Use it.
17246 (tiff_load, gif_load, imagemagick_load_image):
17247 Don't assume :index value fits in 'int'.
17248 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
17249 (imagemagick_load_image): Check that crop parameters fit into
17250 the integer types that MagickCropImage accepts. Don't assume
17251 Vimagemagick_render_type has a nonnegative value. Don't assume
17252 size_t fits in 'long'.
17253 (gs_load): Use printmax_t to print the widest integers possible.
17254 Check for integer overflow when computing image height and width.
17255
c11821d4
EZ
172562011-08-26 Eli Zaretskii <eliz@gnu.org>
17257
17258 * xdisp.c (redisplay_window): Don't force window start if point
17259 will be invisible in the resulting window. (Bug#9324)
17260
0c95fcf7
EZ
172612011-08-25 Eli Zaretskii <eliz@gnu.org>
17262
17263 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
17264 the display spec is of the form `(space ...)'.
17265 (handle_display_spec): Return the value returned by
17266 handle_single_display_spec, not just 1 or zero.
17267 (handle_single_display_spec): If the display spec is of the form
17268 `(space ...)', and specifies display in the text area, return 2
17269 rather than 1.
fee65a97 17270 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
17271 accurately, and prefer exact match for point under bidi.
17272 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
17273
17274 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
17275 into disp_prop; all users changed.
17276
17277 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
17278 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
17279 for the text covered by the display property.
17280
e4ed06f1
CY
172812011-08-25 Chong Yidong <cyd@stupidchicken.com>
17282
17283 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
17284 Change return value to nil.
17285 (Frecord_buffer): Delete unused function.
17286
f67cdd7f
EZ
172872011-08-24 Eli Zaretskii <eliz@gnu.org>
17288
5980d4c6
EZ
17289 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
17290 buffers, return left-to-right.
8610fe8b
EZ
17291 (set_cursor_from_row): Consider candidate row a win if its glyph
17292 represents a newline and point is on that newline. Fixes cursor
17293 positioning on the newline at EOL of R2L text within L2R
17294 paragraph, and vice versa.
17295 (try_cursor_movement): Check continued rows, in addition to
17296 continuation rows. Fixes unwarranted scroll when point enters a
17297 continued line of R2L text within an L2R paragraph, or vice versa.
17298 (cursor_row_p): Consider the case of point being equal to
17299 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
17300 from the end of a short line to the beginning of a continued line
17301 of R2L text within L2R paragraph.
17302 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
17303 composed characters.
5980d4c6 17304
f67cdd7f
EZ
17305 * bidi.c (bidi_check_type): Use xassert.
17306 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
17307 members.
17308
bca633fb
EZ
173092011-08-23 Eli Zaretskii <eliz@gnu.org>
17310
17311 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
17312 a character.
17313
4a5885a7
CY
173142011-08-23 Chong Yidong <cyd@stupidchicken.com>
17315
17316 * nsfont.m (ns_otf_to_script): Fix typo.
17317
0902a04e
KH
173182011-08-22 Kenichi Handa <handa@m17n.org>
17319
17320 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
17321 extra slot even if the purpose is char-code-property-table.
17322
1a2e6670
EZ
173232011-08-23 Eli Zaretskii <eliz@gnu.org>
17324
8ddde651
EZ
17325 * xdisp.c (redisplay_window): When computing centering_position,
17326 account for the height of the header line. (Bug#8874)
17327
425cc014
EZ
17328 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
17329 instead of CHAR_TO_BYTE. Fixes a crash when a completion
17330 candidate is selected by the mouse, and that candidate has a
17331 composed character under the mouse.
17332
1a2e6670
EZ
17333 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
17334 coordinates reported by pos-visible-in-window-p for a composed
17335 character in column zero.
17336
8b76d6f8
SM
173372011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
17338
17339 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
17340
dac347dd
EZ
173412011-08-22 Eli Zaretskii <eliz@gnu.org>
17342
17343 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
17344 consider it a hit if to_charpos is anywhere in the range of the
17345 composed buffer positions.
17346
e013fb34
CY
173472011-08-22 Chong Yidong <cyd@stupidchicken.com>
17348
17349 * image.c (gif_load): Don't assume that each subimage has the same
17350 dimensions as the base image. Handle disposal method that is
17351 "undefined" by the gif spec (Bug#9335).
17352
bd1ba3e8
CY
173532011-08-20 Chong Yidong <cyd@stupidchicken.com>
17354
17355 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 17356 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 17357
54a1215b
EZ
173582011-08-19 Eli Zaretskii <eliz@gnu.org>
17359
823564e5
EZ
17360 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
17361 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
17362 from an Org mode buffer to a Speedbar frame.
17363
54a1215b
EZ
17364 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
17365 a composition, take its buffer position from IT->cmp_it.charpos.
17366 Fixes cursor positioning at the beginning of a line that begins
17367 with a composed character.
17368
9778ebcc
EZ
173692011-08-18 Eli Zaretskii <eliz@gnu.org>
17370
0be6ee06
EZ
17371 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
17372 character bidirectional type, use STRONG_L instead. Fixes crashes
17373 in a buffer produced by `describe-categories'.
17374
9778ebcc
EZ
17375 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
17376 members before the level stack, so they would be saved and
17377 restored when copying iterator state. Fixes incorrect reordering
17378 around TABs covered by display properties.
17379
156bffbe
AS
173802011-08-18 Andreas Schwab <schwab@linux-m68k.org>
17381
6b02f655 17382 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 17383
72ad093b
CY
173842011-08-17 Chong Yidong <cyd@stupidchicken.com>
17385
17386 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
17387 (internal_condition_case_2, internal_condition_case_n):
17388 Remove unnecessary aborts (Bug#9081).
72ad093b 17389
35774242
EZ
173902011-08-17 Eli Zaretskii <eliz@gnu.org>
17391
17392 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
17393 has no `load' handler, try opening the file locally. (Bug#9311)
17394
db76dd85
KB
173952011-08-16 Ken Brown <kbrown@cornell.edu>
17396
17397 * gmalloc.c: Expand comment.
17398
b215eee5
EZ
173992011-08-16 Eli Zaretskii <eliz@gnu.org>
17400
17401 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
17402 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
17403
a4579d33
KB
174042011-08-16 Ken Brown <kbrown@cornell.edu>
17405
17406 Fix memory allocation problems in Cygwin build (Bug#9273).
17407
17408 * unexcw.c ( __malloc_initialized): Declare external variable.
17409 (fixup_executable): Force the dumped emacs to reinitialize malloc.
17410
8b76d6f8
SM
17411 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
17412 New variables.
a4579d33
KB
17413 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
17414 dumped emacs.
17415 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
17416 in the static heap.
17417 [CYGWIN] (special_realloc): New function.
17418 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
17419 requests to realloc storage in the static heap.
17420
3ebec551
PE
174212011-08-15 Paul Eggert <eggert@cs.ucla.edu>
17422
17423 * bidi.c (bidi_initialize): Remove unused local.
17424
9fd8be00
EZ
174252011-08-15 Eli Zaretskii <eliz@gnu.org>
17426
6b02f655
SM
17427 * bidimirror.h:
17428 * biditype.h: Remove file.
17429 * makefile.w32-in ($(BLD)/bidi.$(O)):
17430 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
17431
17432 * dispextern.h: Fix a typo in the comment to bidi_type_t.
17433
17434 * chartab.c: Improve commentary for the uniprop_table API.
17435
32413314
EZ
17436 * bidi.c (bidi_paragraph_init): Support zero value of
17437 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
17438 (bidi_initialize): Use uniprop_table instead of including
17439 biditype.h and bidimirror.h.
32413314 17440
9fd8be00
EZ
17441 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
17442 coordinates of the iterator when restoring from ppos_it.
17443 (Bug#9296)
17444
5cf2b69b
KH
174452011-08-14 Kenichi Handa <handa@m17n.org>
17446
17447 * process.c (create_process): Call setup_process_coding_systems
72ad093b 17448 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 17449
daf17d00
EZ
174502011-08-14 Eli Zaretskii <eliz@gnu.org>
17451
17452 * xdisp.c (move_it_in_display_line_to): Don't invoke
17453 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
17454 ppos_it. Fixes vertical cursor motion when line beginning is
17455 covered by an image. (Bug#9296)
17456
08e3161a
JD
174572011-08-14 Jan Djärv <jan.h.d@swipnet.se>
17458
17459 * nsterm.h (ns_run_ascript): Declare.
17460 (NSAPP_DATA2_RUNASSCRIPT): Define.
17461
17462 * nsfns.m (as_script, as_result, as_status): New static variables.
17463 (ns_run_ascript): New function.
5e617bc2 17464 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
17465 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
17466 the event loop. Get status from as_status (Bug#7276).
17467
17468 * nsterm.m (sendEvent): If event is NSApplicationDefined and
17469 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
17470 the event loop (Bug#7276).
17471
a3720aa2
AS
174722011-08-14 Andreas Schwab <schwab@linux-m68k.org>
17473
17474 * gnutls.c (QCgnutls_bootprop_priority)
17475 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
17476 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
17477 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
17478 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
17479 (QCgnutls_bootprop_verify_hostname_error)
17480 (QCgnutls_bootprop_callbacks_verify): Rename from
17481 Qgnutls_bootprop_..., all uses changed.
17482
17483 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
17484 uses changed.
17485
0a0d27fb
PE
174862011-08-14 Paul Eggert <eggert@cs.ucla.edu>
17487
19d5c50c
PE
17488 * xfaces.c (Qframe_set_background_mode): Now static.
17489 * dispextern.h (Qframe_set_background_mode): Remove decl.
17490
0a0d27fb
PE
17491 * process.c (Fnetwork_interface_info): Declare local only if needed.
17492
377538cb
JD
174932011-08-13 Jan Djärv <jan.h.d@swipnet.se>
17494
17495 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
17496 (Fnetwork_interface_list): Allocate in increments of bytes instead
17497 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
17498 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
17499 sockaddr.
17500 (struct ifflag_def): notrailers is smart on OSX.
17501 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
17502 Get hardware address with getifaddrs if available.
17503
08fff70c
EZ
175042011-08-12 Eli Zaretskii <eliz@gnu.org>
17505
17506 * xdisp.c (iterate_out_of_display_property): xassert that
17507 IT->position is set to within IT->object's boundaries. Break from
17508 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
17509 when IT->position is set up wrongly due to some bug.
17510 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
17511 (push_display_prop): Allow GET_FROM_STRING as IT->method on
17512 entry. Force push_it to save on the stack the current
17513 buffer/string position, to be restored by pop_it. Fix flags in
17514 the iterator structure wrt the object coming from a display
17515 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
17516 properties. (Bug#9284)
17517
7be1c708 175182011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 17519
7be1c708
CY
17520 * fontset.c (fontset_get_font_group): Add proper type checks.
17521 (Bug#9172)
aac0c6e3 17522
7be1c708 175232011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 17524
7be1c708
CY
17525 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
17526 and LC_VERSION_MIN_MACOSX.
17527 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
17528 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 17529
97bb72a6
EZ
175302011-08-08 Eli Zaretskii <eliz@gnu.org>
17531
17532 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
17533 no-display-properties-and-no-overlays under bidi display.
17534 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 17535 properties and overlays.
97bb72a6 17536
d5617611
CY
175372011-08-08 Chong Yidong <cyd@stupidchicken.com>
17538
37e11a63
CY
17539 * editfns.c (Fset_time_zone_rule): Document relationship with the
17540 setenv function.
17541
d5617611
CY
17542 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
17543 the font entity extracted from the cache (Bug#8109).
17544
58872834
CY
175452011-08-07 Chong Yidong <cyd@stupidchicken.com>
17546
17547 * composite.c (autocmp_chars): Don't reset point. That is done by
17548 restore_point_unwind (Bug#5984).
17549
75bfc667
JL
175502011-08-07 Juri Linkov <juri@jurta.org>
17551
17552 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
17553 to show the arg `TIME' instead of `TIMEVAL'.
17554
d1410150
EZ
175552011-08-06 Eli Zaretskii <eliz@gnu.org>
17556
17557 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
17558 display property strides EOL and includes a newline, as in
17559 longlines-mode. (Bug#9254)
75b771e4
EZ
17560 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
17561 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
17562
17563 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
17564 is non-zero, even if the data buffer is NULL. Fixes a crash in
17565 vertical-motion with longlines-mode. (Bug#9254)
17566
35928349
EZ
175672011-08-05 Eli Zaretskii <eliz@gnu.org>
17568
ec7cc85b
EZ
17569 * bidi.c <bidi_cache_total_alloc>: Now static.
17570 (bidi_initialize): Initialize bidi_cache_total_alloc.
17571
8b76d6f8 17572 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
17573 cache. (Bug#9221)
17574
17575 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
17576 amount allocated this far in `bidi_cache_total_alloc'.
17577 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
17578 non-zero, only free the data buffer without restoring the cache
17579 contents. All callers changed.
17580
17581 * dispextern.h (bidi_unshelve_cache): Update prototype.
17582
17583 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
17584 (move_it_in_display_line, move_it_to)
17585 (move_it_vertically_backward, move_it_by_lines): Replace the call
17586 to xfree to an equivalent call to bidi_unshelve_cache.
17587 (move_it_in_display_line_to): Fix logic of returning
412b6358 17588 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 17589
e2e2423b
EZ
175902011-08-05 Eli Zaretskii <eliz@gnu.org>
17591
17592 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
17593 came from a string character with a `cursor' property. (Bug#9229)
17594
ae9e757a
JD
175952011-08-04 Jan Djärv <jan.h.d@swipnet.se>
17596
17597 * Makefile.in (LIB_PTHREAD): New variable.
17598 (LIBES): Add LIB_PTHREAD (Bug#9216).
17599
17600 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
17601 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
17602
213bd7f2
AS
176032011-08-04 Andreas Schwab <schwab@linux-m68k.org>
17604
6b02f655 17605 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 17606
99aaf75f
JD
176072011-08-04 Jan Djärv <jan.h.d@swipnet.se>
17608
17609 * xterm.c (x_find_topmost_parent): New function.
17610 (x_set_frame_alpha): Find topmost parent window with
17611 x_find_topmost_parent and set the property there also (bug#9181).
17612 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
17613
c74e9d86
PE
176142011-08-04 Paul Eggert <eggert@cs.ucla.edu>
17615
17616 * callproc.c (Fcall_process): Avoid vfork clobbering
17617 the local vars buffer, coding_systems, current_dir.
17618
640c8776
SM
176192011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
17620
17621 * keymap.c (Fmake_composed_keymap): Move to subr.el.
17622
f26d0e4c
PE
176232011-08-03 Paul Eggert <eggert@cs.ucla.edu>
17624
8a10d76c
PE
17625 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
17626 so that it is not optimized away.
17627
f26d0e4c
PE
17628 * xdisp.c (compute_display_string_pos): Remove unused local.
17629
55439c61
EZ
176302011-08-02 Eli Zaretskii <eliz@gnu.org>
17631
17632 Fix slow cursor motion and scrolling in large buffers with
17633 selective display, like Org Mode buffers. (Bug#9218)
17634
17635 * dispextern.h (struct bidi_it): New member disp_prop_p.
17636
17637 * xdisp.c: Remove one-slot cache of display string positions.
17638 (compute_display_string_pos): Accept an additional argument
5e617bc2 17639 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
17640 for a display string or property. If found, set DISP_PROP_P
17641 non-zero.
17642
17643 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
17644 DISP_PROP_P, and pass it to compute_display_string_pos.
17645 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
17646 non-zero. All callers of bidi_fetch_char changed.
17647
fb33fa43
SM
176482011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
17649
17650 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
17651
b099e063
DM
176522010-12-03 Don March <don@ohspite.net>
17653
17654 * keymap.c (Fdefine_key): Fix non-prefix key error message when
17655 last character M-[char] is translated to ESC [char] (bug#7541).
17656
5cc7f7af
KH
176572011-08-02 Kenichi Handa <handa@m17n.org>
17658
d0fffa3f 17659 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
17660
17661 * chartab.c (uniprop_table): Make it non-static.
17662
525d5e6e
EZ
176632011-08-01 Eli Zaretskii <eliz@gnu.org>
17664
17665 * xdisp.c (forward_to_next_line_start): Accept additional argument
17666 BIDI_IT_PREV, and store into it the state of the bidi iterator had
17667 on the newline.
17668 (reseat_at_next_visible_line_start): Use the bidi iterator state
17669 returned by forward_to_next_line_start to restore the state of
17670 it->bidi_it after backing up to previous newline. (Bug#9212)
17671
31011111
AS
176722011-07-30 Andreas Schwab <schwab@linux-m68k.org>
17673
17674 * regex.c (re_comp): Protoize.
17675 (re_exec): Fix return type.
17676 (regexec): Fix type of `ret'. (Bug#9203)
17677
476371c4
PE
176782011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17679
e5d76069
PE
17680 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
17681 This is needed if max-image-size is a floating-point number.
17682
9a79b20c
AS
176832011-07-28 Andreas Schwab <schwab@linux-m68k.org>
17684
17685 * print.c (print_object): Print empty symbol as ##.
17686
17687 * lread.c (read1): Read ## as empty symbol.
17688
d8c2fa78
AA
176892011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
17690
17691 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
17692 setting frame foreground color (Bug#9175).
17693 (x_set_background_color): Likewise.
17694
ffe57a7a
AA
17695 * nsmenu.m (-setText): Size tooltip dimensions precisely to
17696 contents (Bug#9176).
17697 (EmacsTooltip -init): Remove bezels and add shadows to
17698 tooltip windows.
17699
bf3492a5
AA
17700 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
17701 or scroll bar (Bug#8470).
17702
d55e9c53
AA
17703 * nsfont.m (nsfont_open): Remove assignment to voffset and
17704 unnecessary vars hshink, expand, hd, full_height, min_height.
17705 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
17706
17707 * nsterm.h (nsfont_info): Remove voffset field.
17708
d8c2fa78 177092011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
17710
17711 Implement strike-through and overline on NextStep (Bug#8863).
17712
17713 * nsfont.m (nsfont_open): Use underline position provided by font,
17714 instead of hard-coded value of 2.
17715 (nsfont_draw): Call ns_draw_text_decoration instead.
17716
17717 * nsterm.h: Add declaration for ns_draw_text_decoration.
17718
17719 * nsterm.m (ns_draw_text_decoration): New function for drawing
17720 underline, overline, and strike-through.
17721 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
17722 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 17723 accommodate underlining, etc.
4843aac3 17724
4cc60b9b
EZ
177252011-07-28 Eli Zaretskii <eliz@gnu.org>
17726
bc7ece87
EZ
17727 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
17728 default.
4cc60b9b 17729
476371c4
PE
177302011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17731
66606eea
PE
17732 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
17733 Without this fix, if a signal arrives just after memory fills up,
17734 'malloc' might be invoked reentrantly.
17735
476371c4
PE
17736 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
17737 In other words, assume that every image size is allowed, on non-X
17738 hosts. This assumption is probably wrong, but it lets Emacs compile.
17739
f3fcc40d
AS
177402011-07-28 Andreas Schwab <schwab@linux-m68k.org>
17741
17742 * regex.c (re_iswctype): Convert return values to boolean.
17743
350c992f
EZ
177442011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
17745
17746 * xdisp.c (compute_display_string_pos): Don't use cached display
17747 string position if the buffer had its restriction changed.
17748 (Bug#9184)
17749
5266b4bb
PE
177502011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17751
17752 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
17753
2573a837 177542011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 17755
41f55ccd 17756 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 17757
39e378da
PE
17758 * bidi.c: Integer size and overflow fixes.
17759 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
17760 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
17761 (bidi_cache_find_level_change, bidi_cache_ensure_space)
17762 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
17763 (bidi_find_other_level_edge):
17764 Use ptrdiff_t instead of EMACS_INT where either will do.
17765 This works better on 32-bit hosts configured --with-wide-int.
17766 (bidi_cache_ensure_space): Check for size-calculation overflow.
17767 Use % rather than repeated addition, for better worst-case speed.
17768 Don't set bidi_cache_size until after xrealloc returns, because it
17769 might not return.
17770 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
17771 (bidi_cache_ensure_space): Also check that the bidi cache size
17772 does not exceed that of the largest Lisp string or buffer. See Eli
17773 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 17774
5e927815
PE
17775 * alloc.c (__malloc_size_t): Remove.
17776 All uses replaced by size_t. See Andreas Schwab's note
17777 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
17778
ca4aa935
PE
17779 * image.c: Improve checking for integer overflow.
17780 (check_image_size): Assume that f is nonnull, since
17781 it is always nonnull in practice. This is one less thing to
17782 worry about when checking for integer overflow later.
17783 (x_check_image_size): New function, which checks for integer
17784 overflow issues inside X.
17785 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
17786 This removes the need for a memory_full check.
17787 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
17788 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
17789 (xbm_read_bitmap_data): Change locals back to 'int', since
17790 their values must fit in 'int'.
17791 (xpm_load_image, png_load, tiff_load):
17792 Invoke x_create_x_image_and_pixmap earlier,
17793 to avoid much needless work if the image is too large.
17794 (tiff_load): Treat overly large images as if
17795 x_create_x_image_and_pixmap failed, not as malloc failures.
17796 (gs_load): Use x_check_image_size.
17797
5f8f9cc2
PE
17798 * gtkutil.c: Omit integer casts.
17799 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
17800 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
17801
5adf60bc
PE
17802 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
17803
c8907a93
PE
17804 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
17805 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
17806 would wrongly return t on a 64-bit host.
17807
e3c25c68
PE
17808 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
17809 The plain *_OVERFLOW macros run afoul of GCC bug 49705
17810 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
17811 and therefore cause GCC to emit a bogus diagnostic in some cases.
17812
3f791afe
PE
17813 * image.c: Integer signedness and overflow and related fixes.
17814 This is not an exhaustive set of fixes, but it's time to
17815 record what I've got.
17816 (lookup_pixel_color, check_image_size): Remove redundant decls.
17817 (check_image_size): Don't assume that arbitrary EMACS_INT values
17818 fit in 'int', or that arbitrary 'double' values fit in 'int'.
17819 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
17820 (tiff_load, imagemagick_load_image):
17821 Check for overflow in size calculations.
17822 (x_create_x_image_and_pixmap): Remove unnecessary test for
17823 xmalloc returning NULL; that can't happen.
17824 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
17825 (xpm_color_bucket): Use better integer hashing function.
17826 (xpm_cache_color): Don't possibly over-allocate memory.
17827 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
17828 (gif_memory_source):
17829 Use ptrdiff_t, not int or size_t, to record sizes.
17830 (png_load): Don't assume values greater than 2**31 fit in 'int'.
17831 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
17832 either works, as we prefer signed integers.
17833 (tiff_read_from_memory, tiff_write_from_memory):
17834 Return tsize_t, not size_t, since that's what the TIFF API wants.
17835 (tiff_read_from_memory): Don't fail simply because the read would
17836 go past EOF; instead, return a short read.
17837 (tiff_load): Omit no-longer-needed casts.
17838 (Fimagemagick_types): Don't assume size fits into 'int'.
17839
3cc5a532
PE
17840 Improve hashing quality when configured --with-wide-int.
17841 * fns.c (hash_string): New function, taken from sxhash_string.
17842 Do not discard information about ASCII character case; this
17843 discarding is no longer needed.
17844 (sxhash-string): Use it. Change sig to match it. Caller changed.
17845 * lisp.h: Declare it.
17846 * lread.c (hash_string): Remove, since we now use fns.c's version.
17847 The fns.c version returns a wider integer if --with-wide-int is
17848 specified, so this should help the quality of the hashing a bit.
17849
b312a492
PE
17850 * emacs.c: Integer overflow minor fix.
17851 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
17852 Define only if GNU_LINUX.
17853 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
17854
dfd153ae
PE
17855 * dispnew.c: Integer signedness and overflow fixes.
17856 Remove unnecessary forward decls, that were a maintenance hassle.
17857 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
17858 All uses changed.
17859 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
17860 (scrolling_window): Use ptrdiff_t, not int, for byte count.
17861 (prepare_desired_row, line_draw_cost):
17862 Use int, not unsigned, where either works.
17863 (save_current_matrix, restore_current_matrix):
17864 Use ptrdiff_t, not size_t, where either works.
17865 (init_display): Check for overflow more accurately, and without
17866 relying on undefined behavior.
17867
a81d11a3
PE
17868 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
17869 Remove, replacing with the new symbols in lisp.h. All uses changed.
17870 * fileio.c (make_temp_name):
17871 * filelock.c (lock_file_1, lock_file):
17872 * xdisp.c (message_dolog):
17873 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
17874 Use pMd etc. instead.
17875 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
17876 replacing the pWIDE etc. symbols removed from editfns.c.
17877
3300e6fd
PE
17878 * keyboard.h (num_input_events): Now uintmax_t.
17879 This is (very slightly) less likely to mess up due to wraparound.
17880 All uses changed.
17881
fd05c7e9
PE
17882 * buffer.c: Integer signedness fixes.
17883 (alloc_buffer_text, enlarge_buffer_text):
17884 Use ptrdiff_t rather than size_t when either will do, as we prefer
17885 signed integers.
17886
903fe15d
PE
17887 * alloc.c: Integer signedness and overflow fixes.
17888 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
17889 (__malloc_size_t): Default to size_t, not to int.
17890 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
17891 (Fgarbage_collect, mark_object_loop_halt, mark_object):
17892 Prefer ptrdiff_t to size_t when either would do, as we prefer
17893 signed integers.
17894 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
17895 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
17896 Now const. Initialize with values that are in range even if char
17897 is signed.
17898 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
17899 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
17900 These functions do the right thing with sizes > 2**32.
17901 (check_depth): Now ptrdiff_t, not int.
17902 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
17903 Adjust to new way of storing sizes. Check for size overflow bugs
17904 in rest of code.
17905 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
17906 slightly wrong anyway, as it missed one instance of
17907 XMALLOC_OVERRUN_CHECK_OVERHEAD.
17908 (refill_memory_reserve): Omit needless cast to size_t.
17909 (mark_object_loop_halt): Mark as externally visible.
17910
ac82cc6a
PE
17911 * xselect.c: Integer signedness and overflow fixes.
17912 (Fx_register_dnd_atom, x_handle_dnd_message):
17913 Use ptrdiff_t, not size_t, since we prefer signed.
17914 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
17915 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
17916 x_dnd_atoms_size and x_dnd_atoms_length.
17917
c2d1e36d
PE
17918 * doprnt.c: Prefer signed to unsigned when either works.
17919 * eval.c (verror):
17920 * doprnt.c (doprnt):
17921 * lisp.h (doprnt):
17922 * xdisp.c (vmessage):
17923 Use ptrdiff_t, not size_t, when using or implementing doprnt,
17924 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
17925 prefer signed arithmetic to avoid comparison confusion.
17926 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
17927 but is a bit tricky.
17928
0e926e56
PE
17929 Assume freestanding C89 headers, string.h, stdlib.h.
17930 * data.c, doprnt.c, floatfns.c, print.c:
17931 Include float.h unconditionally.
17932 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
17933 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
17934 * regex.c: Likewise for stddef.h, string.h.
17935 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
17936 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
17937 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
17938 (STDC_HEADERS): Remove obsolete defines.
17939 * sysdep.c: Include limits.h unconditionally.
17940
9cfdb3ec
PE
17941 Assume support for memcmp, memcpy, memmove, memset.
17942 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
17943 * regex.c (memcmp, memcpy):
17944 Remove; we assume C89 now.
17945
17946 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
17947 (__malloc_safe_bcopy): Remove; no longer needed.
17948
cf950e6b 17949 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
17950 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
17951 well either way, and we prefer signed to unsigned.
17952
dbf38e02
LMI
179532011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
17954
17955 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
17956 closes the connection while we're reading (bug#9182).
17957
d6f0886c 179582011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 17959
d6f0886c
JD
17960 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
17961 are specified (Bug#9168).
24e0f6b1 17962
2eb1f9e6
PE
179632011-07-25 Paul Eggert <eggert@cs.ucla.edu>
17964
17965 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
17966 Found by GCC static checking and --with-wide-int on a 32-bit host.
17967
22381272 179682011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
17969
17970 * xdisp.c (compute_display_string_pos): Fix logic of caching
17971 previous display string position. Initialize cached_prev_pos to
17972 -1. Fixes slow-down at the beginning of a buffer.
17973
f25e39b4
EZ
179742011-07-24 Eli Zaretskii <eliz@gnu.org>
17975
17976 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
17977 for attrs[LFACE_FONTSET_INDEX].
17978
04c4b52e
PE
179792011-07-23 Paul Eggert <eggert@cs.ucla.edu>
17980
17981 * xml.c (parse_region): Remove unused local
17982 that was recently introduced.
17983
c1734fbd
EZ
179842011-07-23 Eli Zaretskii <eliz@gnu.org>
17985
be18c5a5
EZ
17986 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
17987 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
17988
c1734fbd
EZ
17989 * xdisp.c (move_it_in_display_line_to): Record the best matching
17990 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
17991 exit if none of the characters scanned was an exact match.
17992 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
17993 when exact match is impossible due to invisible text, and the
17994 lines are truncated.
17995
a258d627
JD
179962011-07-23 Jan Djärv <jan.h.d@swipnet.se>
17997
17998 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
17999 for OSX >= 10.7.
18000
b6d5a689
EZ
180012011-07-22 Eli Zaretskii <eliz@gnu.org>
18002
0f74f785
EZ
18003 Fix a significant slow-down of cursor motion with C-n, C-p,
18004 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
18005 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 18006 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
18007 (next_element_from_buffer): Call compute_stop_pos_backwards to
18008 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
18009 base_level_stop.
18010 (reseat): Don't look for prev_stop, as that could mean a very long
18011 run.
18012 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
18013 <cached_disp_overlay_modiff>: Cache for last found display string
18014 position.
551918c1 18015 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
18016 about the same buffer in the same area of character positions, and
18017 the buffer wasn't changed since the time the display string
18018 position was cached.
551918c1 18019
b2d0c91a
EZ
180202011-07-22 Eli Zaretskii <eliz@gnu.org>
18021
18022 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
18023 is an integer, which is important for empty lines. (Bug#9149)
18024
043604ee
CY
180252011-07-22 Chong Yidong <cyd@stupidchicken.com>
18026
18027 * frame.c (Fmodify_frame_parameters): In tty case, update the
18028 default face if necessary (Bug#4238).
18029
da4adb04
CY
180302011-07-21 Chong Yidong <cyd@stupidchicken.com>
18031
18032 * editfns.c (Fstring_to_char): No need to explain what a character
18033 is in the docstring (Bug#6576).
18034
9abd0532
LMI
180352011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
18036
18037 * xml.c (parse_region): Make sure we always return a tree.
18038
36881d16
HK
180392011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
18040
18041 * xml.c (parse_region): If a document contains only comments,
18042 return that, too.
18043
1e98674d
LMI
180442011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
18045
18046 * xml.c (make_dom): Return comments, too.
18047
590bd467
PE
180482011-07-19 Paul Eggert <eggert@cs.ucla.edu>
18049
18050 Port to OpenBSD.
18051 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
18052 and the surrounding thread.
18053 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
18054 rather than fgets, and retry after EINTR. Otherwise, 'emacs
18055 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
18056 timer goes off.
18057 * s/openbsd.h (BROKEN_SIGIO): Define.
18058 * unexelf.c (unexec) [__OpenBSD__]:
18059 Don't update the .mdebug section of the Alpha COFF symbol table.
18060
f41628b2
LMI
180612011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
18062
18063 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
18064 (bug#8460).
18065
b59b67c5
PE
180662011-07-18 Paul Eggert <eggert@cs.ucla.edu>
18067
15e3a074
PE
18068 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
18069 This fixes some race conditions on the permissions of any newly
18070 created file.
18071
41bed37d
PE
18072 * alloc.c (valid_pointer_p): Use pipe, not open.
18073 This fixes some permissions issues when debugging.
18074
b59b67c5
PE
18075 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
18076 If fchown fails to set both uid and gid, try to set just gid,
18077 as that is sometimes allowed. Adjust the file's mode to eliminate
18078 setuid or setgid bits that are inappropriate if fchown fails.
18079
925a6be7
SM
180802011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
18081
18082 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
18083 to compare Lisp_Objects.
18084 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
18085 global_gnutls_log_level, don't mistake it for a Lisp_Object.
18086 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
18087
52968808
AS
180882011-07-17 Andreas Schwab <schwab@linux-m68k.org>
18089
0a6a104b
AS
18090 * lread.c (read_integer): Unread even EOF character.
18091 (read1): Likewise. Properly record start position of symbol.
18092
52968808
AS
18093 * lread.c (read1): Read `#:' as empty uninterned symbol if no
18094 symbol character follows.
18095
9e381cdd
PE
180962011-07-17 Paul Eggert <eggert@cs.ucla.edu>
18097
18098 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
18099 This works around a problem with the previous change to Fcopy_file.
18100 Recent glibc declares fchown with __attribute__((warn_unused_result)),
18101 and without this change, GCC might complain about discarding
18102 fchown's return value.
18103
b5641435
JB
181042011-07-16 Juanma Barranquero <lekktu@gmail.com>
18105
18106 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
18107
a8031457
PE
181082011-07-16 Paul Eggert <eggert@cs.ucla.edu>
18109
18110 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
18111
dd889327
LMI
181122011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
18113
750c33f7
LMI
18114 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
18115 it's used from the C level.
18116
dd889327
LMI
18117 * process.c: Use the same condition for POLL_FOR_INPUT in both
18118 keyboard.c and process.c (bug#1858).
18119
87e86684
LM
181202011-07-09 Lawrence Mitchell <wence@gmx.li>
18121
18122 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
18123 (Fgnutls_boot): Use it.
18124
64348f40
AS
181252011-07-15 Andreas Schwab <schwab@linux-m68k.org>
18126
18127 * doc.c (Fsubstitute_command_keys): Revert last change.
18128
1d698799
LMI
181292011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
18130
f863868c
LMI
18131 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
18132 quotes the next character, and doesn't affect other longer
18133 sequences (bug#8935).
18134
1d698799
LMI
18135 * lread.c (syms_of_lread): Clarify that is isn't only
18136 `eval-buffer' and `eval-defun' that's affected by
18137 `lexical-binding' (bug#8460).
18138
aa4b6df6
EZ
181392011-07-15 Eli Zaretskii <eliz@gnu.org>
18140
18141 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 18142 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 18143
5d856da6
PE
181442011-07-14 Paul Eggert <eggert@cs.ucla.edu>
18145
ad6042bb
PE
18146 Fix minor problems found by static checking.
18147 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
18148 (elsz): Now a signed constant, not a size_t var. We prefer signed
18149 types to unsigned, to avoid integer comparison confusion. Without
18150 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
18151 "cannot optimize loop, the loop counter may overflow", a symptom
18152 of the confusion.
f00bbb22 18153 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
18154 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
18155
6468f31c
LMI
181562011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
18157
49080b10
LMI
18158 * search.c (Fre_search_backward): Mention `case-fold-search' in
18159 all the re_search_* functions (bug#8138).
18160
6468f31c
LMI
18161 * keyboard.c (Fopen_dribble_file): Document when the file is
18162 closed (bug#8056).
18163
c965adc5
EZ
181642011-07-14 Eli Zaretskii <eliz@gnu.org>
18165
df9733bf
EZ
18166 * bidi.c (bidi_dump_cached_states): Fix format of displaying
18167 bidi_cache_idx.
18168
0bb23927
EZ
18169 Support bidi reordering of display and overlay strings.
18170 * xdisp.c (compute_display_string_pos)
18171 (compute_display_string_end): Accept additional argument STRING.
18172 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
18173 (reseat_to_string): Initialize bidi_it->string.s and
18174 bidi_it->string.schars.
18175 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
18176 NULL (avoids a crash in bidi_paragraph_init).
18177 Initialize itb.string.lstring.
0bb23927
EZ
18178 (init_iterator): Call bidi_init_it only of a valid
18179 buffer position was specified. Initialize paragraph_embedding to
18180 L2R.
18181 (reseat_to_string): Initialize the bidi iterator.
18182 (display_string): If we need to ignore text properties of
18183 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
18184 original value of -1 will not work with bidi.)
18185 (compute_display_string_pos): First arg is now struct
18186 `text_pos *'; all callers changed. Support display properties on
18187 Lisp strings.
18188 (compute_display_string_end): Support display properties on Lisp
18189 strings.
18190 (init_iterator, reseat_1, reseat_to_string): Initialize the
18191 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
18192 when iterating on a string not from display properties).
640c8776
SM
18193 (compute_display_string_pos, compute_display_string_end):
18194 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
18195 arrow keys.
18196 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
18197 base_level_stop; instead, set base_level_stop to BEGV.
18198 Fixes crashes in vertical-motion.
0bb23927
EZ
18199 (next_element_from_buffer): Improve commentary for when
18200 the iterator is before prev_stop.
18201 (init_iterator): Initialize bidi_p from the default value of
18202 bidi-display-reordering, not from buffer-local value. Use the
18203 buffer-local value only if initializing for buffer iteration.
18204 (handle_invisible_prop): Support invisible properties on strings
18205 that are being bidi-reordered.
18206 (set_iterator_to_next): Support bidi reordering of C strings and
18207 Lisp strings.
18208 (next_element_from_string): Support bidi reordering of Lisp
18209 strings.
18210 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
18211 (display_string): Support display of R2L glyph rows.
18212 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
18213 (init_iterator): Don't initialize it->bidi_p for strings
18214 here.
18215 (reseat_to_string): Initialize it->bidi_p for strings here.
18216 (next_element_from_string, next_element_from_c_string)
18217 (next_element_from_buffer): Add xassert's for correspondence
18218 between IT's object being iterated and it->bidi_it.string
18219 structure.
18220 (face_before_or_after_it_pos): Support bidi iteration.
18221 (next_element_from_c_string): Handle the case of the first string
18222 character that is not the first one in the visual order.
18223 (get_visually_first_element): New function, refactored from common
18224 parts of next_element_from_buffer, next_element_from_string, and
18225 next_element_from_c_string.
18226 (tool_bar_lines_needed, redisplay_tool_bar)
18227 (display_menu_bar): Force left-to-right direction. Add a FIXME
18228 comment for making that be controlled by a user option.
18229 (push_it, pop_it): Save and restore the state of the
18230 bidi iterator. Save and restore the bidi_p flag.
18231 (pop_it): Iterate out of display property for string iteration as
18232 well.
18233 (iterate_out_of_display_property): Support iteration over strings.
18234 (handle_single_display_spec): Set up it->bidi_it for iteration
18235 over a display string, and call bidi_init_it.
18236 (handle_single_display_spec, next_overlay_string)
18237 (get_overlay_strings_1, push_display_prop): Set up the bidi
18238 iterator for displaying display or overlay strings.
18239 (forward_to_next_line_start): Don't use the shortcut if
18240 bidi-iterating.
18241 (back_to_previous_visible_line_start): If handle_display_prop
18242 pushed the iterator stack, restore the internal state of the bidi
18243 iterator by calling bidi_pop_it same number of times.
18244 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
18245 and we are bidi-iterating, don't decrement the iterator position;
18246 instead, set the first_elt flag in the bidi iterator, to produce
18247 the same effect.
18248 (reseat_1): Remove redundant setting of string_from_display_prop_p.
18249 (push_display_prop): xassert that we are iterating a buffer.
18250 (push_it, pop_it): Save and restore paragraph_embedding member.
18251 (handle_single_display_spec, next_overlay_string)
18252 (get_overlay_strings_1, reseat_1, reseat_to_string)
18253 (push_display_prop): Set up the `unibyte' member of bidi_it.string
18254 correctly. Don't assume unibyte strings are not bidi-reordered.
18255 (compute_display_string_pos)
18256 (compute_display_string_end): Fix handling the case of C string.
18257 (push_it, pop_it): Save and restore from_disp_prop_p.
18258 (handle_single_display_spec, push_display_prop): Set the
18259 from_disp_prop_p flag.
18260 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
18261 (pop_it): Call iterate_out_of_display_property only if we are
18262 popping after iteration over a string that came from a display
18263 property. Fix a typo in popping stretch info. Add an assertion
18264 for verifying that the iterator position is in sync with the bidi
18265 iterator.
18266 (handle_single_display_spec, get_overlay_strings_1)
18267 (push_display_prop): Fix initialization of paragraph direction for
18268 string when that of the parent object is not yet determined.
18269 (reseat_1): Call bidi_init_it to resync the bidi
18270 iterator with IT's position. (Bug#7616)
18271 (find_row_edges): If ROW->start.pos gives position
18272 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
18273 (handle_stop, back_to_previous_visible_line_start, reseat_1):
18274 Reset the from_disp_prop_p flag.
18275 (SAVE_IT, RESTORE_IT): New macros.
18276 (pos_visible_p, face_before_or_after_it_pos)
18277 (back_to_previous_visible_line_start)
18278 (move_it_in_display_line_to, move_it_in_display_line)
18279 (move_it_to, move_it_vertically_backward, move_it_by_lines)
18280 (try_scrolling, redisplay_window, display_line): Use them when
18281 saving a temporary copy of the iterator and restoring it back.
18282 (back_to_previous_visible_line_start, reseat_1)
18283 (init_iterator): Empty the bidi cache "stack".
18284 (move_it_in_display_line_to): If iterator ended up at
18285 EOL, but we never saw any buffer positions smaller than
18286 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
18287 motion in bidi-reordered lines.
18288 (move_it_in_display_line_to): Record prev_method and prev_pos
18289 immediately before the call to set_iterator_to_next. Fixes cursor
18290 motion in bidi-reordered lines with stretch glyphs and strings
18291 displayed in margins. (Bug#8133) (Bug#8867)
18292 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
18293 TO_CHARPOS.
640c8776
SM
18294 (pos_visible_p): Support positions in bidi-reordered lines.
18295 Save and restore bidi cache.
0bb23927
EZ
18296
18297 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
18298 (bidi_paragraph_info): Delete unused struct.
18299 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
18300 (bidi_cache_start): New variable.
18301 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
18302 to zero.
18303 (bidi_cache_fetch_state, bidi_cache_search)
18304 (bidi_cache_find_level_change, bidi_cache_iterator_state)
18305 (bidi_cache_find, bidi_peek_at_next_level)
18306 (bidi_level_of_next_char, bidi_find_other_level_edge)
18307 (bidi_move_to_visually_next): Compare cache index with
18308 bidi_cache_start rather than with zero.
18309 (bidi_fetch_char): Accept new argument STRING; all callers
18310 changed. Support iteration over a string. Support strings with
18311 display properties. Support unibyte strings. Fix the type of
18312 `len' according to what STRING_CHAR_AND_LENGTH expects.
18313 (bidi_paragraph_init, bidi_resolve_explicit_1)
18314 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
18315 (bidi_level_of_next_char, bidi_move_to_visually_next):
18316 Support iteration over a string.
0bb23927
EZ
18317 (bidi_set_sor_type, bidi_resolve_explicit_1)
18318 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
18319 can now be zero (for strings); special values 0 and -1 were
18320 changed to -1 and -2, respectively.
18321 (bidi_char_at_pos): New function.
18322 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
18323 Call it instead of FETCH_MULTIBYTE_CHAR.
18324 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
18325 initialized to valid values.
18326 (bidi_init_it): Don't initialize charpos and bytepos with invalid
18327 values.
18328 (bidi_level_of_next_char): Allow the sentinel "position" to pass
18329 the test for valid cached positions. Fix the logic for looking up
18330 the sentinel state in the cache. GCPRO the Lisp string we are
18331 iterating.
18332 (bidi_push_it, bidi_pop_it): New functions.
18333 (bidi_initialize): Initialize the bidi cache start stack pointer.
18334 (bidi_cache_ensure_space): New function, refactored from part of
18335 bidi_cache_iterator_state. Don't assume the required size is just
18336 one BIDI_CACHE_CHUNK away.
18337 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
18338 (bidi_count_bytes, bidi_char_at_pos): New functions.
18339 (bidi_cache_search): Don't assume bidi_cache_last_idx is
18340 always valid if bidi_cache_idx is valid.
18341 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
18342 is valid if it's going to be used.
18343 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
18344 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
18345 (bidi_cache_find_level_change, bidi_cache_ensure_space)
18346 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
18347 (bidi_find_other_level_edge, bidi_cache_start_stack):
18348 All variables related to cache indices are now EMACS_INT.
c965adc5 18349
0bb23927
EZ
18350 * dispextern.h (struct bidi_string_data): New structure.
18351 (struct bidi_it): New member `string'. Make flag members be 1-bit
18352 fields, and put them last in the struct.
640c8776
SM
18353 (compute_display_string_pos, compute_display_string_end):
18354 Update prototypes.
0bb23927
EZ
18355 (bidi_push_it, bidi_pop_it): Add prototypes.
18356 (struct iterator_stack_entry): New members bidi_p,
18357 paragraph_embedding, and from_disp_prop_p.
18358 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
18359 (bidi_shelve_cache, bidi_unshelve_cache):
18360 Declare prototypes.
0bb23927
EZ
18361
18362 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
18363 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
18364 and vector-like objects.
18365
18366 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
18367 cache around display iteration.
18368
18369 * window.c (Fwindow_end, window_scroll_pixel_based)
18370 (displayed_window_lines, Frecenter): Save and restore the bidi
18371 cache around display iteration.
18372
3bbd2265
LMI
183732011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
18374
18375 * editfns.c (Fdelete_region): Clarify the use of the named
18376 parameters (bug#6788).
18377
adc47434
MR
183782011-07-14 Martin Rudalics <rudalics@gmx.at>
18379
18380 * indent.c (Fvertical_motion): Set and restore w->pointm when
18381 saving and restoring the window's buffer (Bug#9006).
18382
837c31f8
LMI
183832011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
18384
18385 * editfns.c (Fstring_to_char): Clarify just what is returned
18386 (bug#6576). Text by Eli Zaretskii.
18387
ac389d0c
JB
183882011-07-13 Juanma Barranquero <lekktu@gmail.com>
18389
18390 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
18391
0be0ce47
EZ
183922011-07-13 Eli Zaretskii <eliz@gnu.org>
18393
18394 * buffer.c (mmap_find): Fix a typo.
18395
cd18e7e3
JB
183962011-07-13 Johan Bockgård <bojohan@gnu.org>
18397
18398 Fix execution of x selection hooks.
18399 * xselect.c (Qx_lost_selection_functions)
18400 (Qx_sent_selection_functions): New vars.
18401 (syms_of_xselect): DEFSYM them.
18402 (x_handle_selection_request): Pass Qx_sent_selection_functions
18403 rather than Vx_sent_selection_functions to Frun_hook_with_args.
18404 (x_handle_selection_clear,x_clear_frame_selections):
18405 Pass Qx_lost_selection_functions rather than
18406 Vx_lost_selection_functions to Frun_hook_with_args.
18407
47ea7f44
PE
184082011-07-13 Paul Eggert <eggert@cs.ucla.edu>
18409
ac389d0c 18410 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
18411 The old code sometimes used this field without initializing it.
18412
47ea7f44
PE
18413 * alloc.c (gc_sweep): Don't read past end of array.
18414 In theory, the old code could also have corrupted Emacs internals,
18415 though it'd be very unlikely.
18416
bc985c87
AS
184172011-07-12 Andreas Schwab <schwab@linux-m68k.org>
18418
18419 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 18420 argument. (Bug#4026)
bc985c87 18421
0cf34688
LMI
184222011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
18423
b3dadd76
LMI
18424 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
18425 key" (bug#4257).
18426
0cf34688
LMI
18427 * window.c (Fset_window_start): Doc fix (bug#4199).
18428 (Fset_window_hscroll): Ditto.
18429
270768cd
PE
184302011-07-12 Paul Eggert <eggert@cs.ucla.edu>
18431
077e3dda 18432 Fix minor new problems caught by GCC 4.6.1.
270768cd 18433 * term.c (init_tty): Remove unused local.
490011a6 18434 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 18435 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 18436 not used otherwise.
270768cd 18437
b1f58454
CY
184382011-07-12 Chong Yidong <cyd@stupidchicken.com>
18439
18440 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
18441
22b9578d
LMI
184422011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
18443
6e70ab07
LMI
18444 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
18445 are the mini-buffer and the echo area (bug#3320).
18446
22b9578d
LMI
18447 * term.c (init_tty): Remove support for supdup, c10 and perq
18448 terminals, which are no longer supported (bug#1482).
18449
8974cc9f
JB
184502011-07-10 Johan Bockgård <bojohan@gnu.org>
18451
18452 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
18453
a560d974
JD
184542011-07-10 Jan Djärv <jan.h.d@swipnet.se>
18455
18456 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
18457 for non-popups (Bug#3642).
18458
1dae0f0a
AS
184592011-07-10 Andreas Schwab <schwab@linux-m68k.org>
18460
268c2c36 18461 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 18462 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
18463 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
18464 * cm.c (losecursor): Likewise.
1dae0f0a
AS
18465 * data.c (fmod): Likewise.
18466 * dispnew.c (swap_glyphs_in_rows): Likewise.
18467 * emacs.c (memory_warning_signal): Likewise.
18468 * floatfns.c (float_error): Likewise.
18469 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
18470 (otf_open, font_otf_capability, generate_otf_features)
18471 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
18472 Likewise.
18473 * image.c (pbm_read_file): Likewise.
18474 * indent.c (string_display_width): Likewise.
18475 * intervals.c (check_for_interval, search_for_interval)
18476 (inc_interval_count, count_intervals, root_interval)
18477 (adjust_intervals_for_insertion, make_new_interval): Likewise.
18478 * lread.c (defalias): Likewise.
268c2c36 18479 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
18480 * regex.c (set_image_of_range_1, set_image_of_range)
18481 (regex_grow_registers): Likewise.
18482 * sysdep.c (strerror): Likewise.
18483 * termcap.c (valid_filename_p, tprint, main): Likewise.
18484 * tparam.c (main): Likewise.
18485 * unexhp9k800.c (run_time_remap, save_data_space)
18486 (update_file_ptrs, read_header, write_header, calculate_checksum)
18487 (copy_file, copy_rest, display_header): Likewise.
18488 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
18489 Likewise.
18490 * xdisp.c (check_it): Likewise.
18491 * xfaces.c (register_color, unregister_color, unregister_colors):
18492 Likewise.
18493 * xfns.c (print_fontset_result): Likewise.
18494 * xrdb.c (member, fatal, main): Likewise.
18495
99033785
PE
184962011-07-10 Paul Eggert <eggert@cs.ucla.edu>
18497
18498 Fix minor problems found by static checking (Bug#9031).
18499 * chartab.c (char_table_set_range, map_sub_char_table):
18500 Remove unused locals.
18501 (uniprop_table): Now static.
18502 * composite.c (_work_char): Remove unused static var.
18503
9cb2ac56
JB
185042011-07-09 Juanma Barranquero <lekktu@gmail.com>
18505
18506 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
18507
f25661f0
JD
185082011-07-09 Jan Djärv <jan.h.d@swipnet.se>
18509
18510 * gtkutil.c (qttip_cb): Remove code without function.
18511
8278c4fe
EZ
185122011-07-09 Eli Zaretskii <eliz@gnu.org>
18513
18514 * w32.c (pthread_sigmask): New stub.
18515
1692ae2d 185162011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 18517
8a6ebd58 18518 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
18519 sigprocmask is portable only for single-threaded applications, and
18520 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
18521 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
18522 (LIBES): Use it.
18523 * callproc.c (Fcall_process):
18524 * process.c (create_process):
18525 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
18526 Use pthread_sigmask, not sigprocmask.
123403e4 18527
1b854618
JD
185282011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18529
18530 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
18531 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
18532 wrong (Bug#8591).
18533
3fe4b549
JD
185342011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18535
0ce7e563
JD
18536 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
18537 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
18538 (xg_hide_tooltip): Fix comment.
18539
3fe4b549
JD
18540 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
18541 in registerServicesMenuSendTypes.
18542 (validRequestorForSendType): Don't check ns_return_types.
18543
18544 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
18545 ns_return_type.
18546
5df75e47
JR
185472011-07-08 Jason Rumney <jasonr@gnu.org>
18548
22610910
JR
18549 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
18550 SH_SHOW for hidden windows (Bug#5482).
18551
5df75e47
JR
18552 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
18553 frame struct members of non-existent frames (Bug#6284).
18554
699c10bd
JD
185552011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18556
4393663b
JD
18557 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
18558 variable firstTime not needed on OSX >= 10.6.
18559 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
18560 >= 10.5. Use setKnobProportion, setDoubleValue.
18561
18562 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
18563 (MAC_OS_X_VERSION_10_5): Define if not defined.
18564 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
18565 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
18566 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
18567
18568 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 18569 cString and lossyCString on OSX >= 10.4.
4393663b 18570
58179cce 18571 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
18572 sizeToFit on OSX >= 10.2.
18573
18574 * nsimage.m (allocInitFromFile): Don't use deprecated method
18575 bestRepresentationForDevice on OSX >= 10.6.
18576
18577 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
18578 to avoid warning.
18579
18580 * emacs.c: Declare unexec_init_emacs_zone.
18581
a63e0781
JD
18582 * nsgui.h: Fix compiler warning about gnulib redefining verify.
18583
699c10bd
JD
18584 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
18585
18586 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
18587 on svcsMenu (Bug#8842).
18588
18589 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
18590 ns_return_types.
18591 (Fns_list_services): Just return Qnil on 10.6, code not working there.
18592
18593 * nsterm.m (QUTF8_STRING): Declare.
18594 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
18595 (validRequestorForSendType): Return type is (id).
18596 Change indexOfObjectIdenticalTo to indexOfObject.
18597 Check if we have local selection before returning self (Bug#8842).
18598 (writeSelectionToPasteboard): Put local selection into paste board
18599 if we have a local selection (Bug#8842).
18600 (syms_of_nsterm): DEFSYM QUTF8_STRING.
18601
18602 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
18603 (ns_get_local_selection): Declare.
18604
54e10184
LMI
186052011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18606
9888ff71
LMI
18607 * keymap.c (describe_map_tree): Don't insert a double newline at
18608 the end of the buffer (bug#1169) and return whether we inserted
18609 something.
18610
54e10184
LMI
18611 * callint.c (Fcall_interactively): Change "reading args" to
18612 "providing args" to try to clarify what it does (bug#1010).
18613
15fa4783
KH
186142011-07-07 Kenichi Handa <handa@m17n.org>
18615
18616 * composite.c (composition_compute_stop_pos): Ignore a static
18617 composition starting before CHARPOS (Bug#8915).
18618
18619 * xdisp.c (handle_composition_prop): Likewise.
18620
a8815b00
EZ
186212011-07-07 Eli Zaretskii <eliz@gnu.org>
18622
18623 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
18624 (Bug#9015)
18625
ef7b981d 186262011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
18627
18628 * character.h (unicode_category_t): New enum type.
18629
18630 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
18631 (Qchar_code_property_table): New variable.
18632 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
18633 (UNIPROP_COMPRESSED_FORM_P): New macros.
18634 (char_table_ascii): Uncompress the compressed values.
18635 (sub_char_table_ref): New arg is_uniprop. Callers changed.
18636 Uncompress the compressed values.
ac389d0c 18637 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
18638 (char_table_ref_and_range): Uncompress the compressed values.
18639 (sub_char_table_set): New arg is_uniprop. Callers changed.
18640 Uncompress the compressed values.
18641 (sub_char_table_set_range): Args changed. Callers changed.
18642 (char_table_set_range): Adjuted for the above change.
18643 (map_sub_char_table): Delete args default_val and parent. Add arg
18644 top. Give decoded values to a Lisp function.
640c8776 18645 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
18646 values to a Lisp function. Gcpro more variables.
18647 (uniprop_table_uncompress)
18648 (uniprop_decode_value_run_length): New functions.
18649 (uniprop_decoder, uniprop_decoder_count): New variables.
18650 (uniprop_get_decoder, uniprop_encode_value_character)
18651 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
18652 New functions.
18653 (uniprop_encoder, uniprop_encoder_count): New variables.
18654 (uniprop_get_encoder, uniprop_table)
18655 (Funicode_property_table_internal, Fget_unicode_property_internal)
18656 (Fput_unicode_property_internal): New functions.
18657 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
18658 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 18659 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
18660 char-code-property-alist.
18661
640c8776 18662 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
18663 Vunicode_category_table.
18664
640c8776 18665 * font.c (font_range): Adjust for the change of
c805dec0
KH
18666 Vunicode_category_table.
18667
76b397fb
DN
186682011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
18669
18670 * m/iris4d.h: Remove file, move contents ...
18671 * s/irix6-5.h: ... here.
18672
22b4128e
PE
186732011-07-06 Paul Eggert <eggert@cs.ucla.edu>
18674
18675 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
18676 * alloc.c (mark_buffer):
18677 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
18678 (clone_per_buffer_values): Don't assume that
22b4128e
PE
18679 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
18680 This isn't true in general, and it's particularly not true
18681 if Emacs is configured with --with-wide-int.
18682 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
18683 New macros, used in the buffer.c change.
18684
869795d6
JD
186852011-07-05 Jan Djärv <jan.h.d@swipnet.se>
18686
18687 * xsettings.c: Use both GConf and GSettings if both are available.
18688 (store_config_changed_event): Add comment.
18689 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
18690 (store_tool_bar_style_changed): New functions.
5e617bc2 18691 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
18692 (struct xsettings): Move font inside HAVE_XFT.
18693 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 18694 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 18695 Move inside HAVE_XFT.
640c8776 18696 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
18697 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
18698 also.
18699 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 18700 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 18701 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
18702 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
18703 (parse_settings): Move check for font inside HAVE_XFT.
18704 (read_settings, apply_xft_settings): Add comment.
18705 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
18706 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
18707 call store_font_name_changed.
18708 (xft_settings_event): Add comment.
18709 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
18710 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
18711 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
18712 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
18713 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
18714 (xsettings_get_system_font, xsettings_get_system_normal_font):
18715 Add comment.
869795d6 18716
d8ed26bd
PE
187172011-07-05 Paul Eggert <eggert@cs.ucla.edu>
18718
18719 Random fixes. E.g., (random) never returned negative values.
18720 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
18721 subseconds part to the entropy, as that's a bit more random.
18722 Prefer signed to unsigned, since the signedness doesn't matter and
18723 in general we prefer signed. When given a limit, use a
18724 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
18725 latter isn't right if USE_2_TAGS_FOR_INTS.
18726 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
18727 not 0..VALMASK. Don't discard "excess" bits that random () returns.
18728
cabf1cac
SM
187292011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
18730
18731 * textprop.c (text_property_stickiness):
18732 Obey Vtext_property_default_nonsticky.
18733 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
18734 * w32fns.c (syms_of_w32fns):
18735 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
18736
6e9b2be9
PE
187372011-07-04 Paul Eggert <eggert@cs.ucla.edu>
18738
18739 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
18740 This is more efficient than Ffile_directory_p and avoids a minor race.
18741
90186c68
LMI
187422011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
18743
7c301272
LMI
18744 * buffer.c (Foverlay_put): Say what the return value is
18745 (bug#7835).
18746
c4f2d8d4
LMI
18747 * fileio.c (barf_or_query_if_file_exists): Check first if the file
18748 is a directory before asking whether to use the file name
18749 (bug#7564).
ad637907
LMI
18750 (barf_or_query_if_file_exists): Make the "File is a directory"
18751 error be more correct.
c4f2d8d4 18752
90186c68
LMI
18753 * fns.c (Frequire): Remove the mention of the .gz files, since
18754 that's installation-specific, but keep the mention of
18755 `get-load-suffixes'.
18756
da64016e
PE
187572011-07-04 Paul Eggert <eggert@cs.ucla.edu>
18758
18759 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
18760 Report string overflow if the output is too long.
18761
7d47b580
JB
187622011-07-04 Juanma Barranquero <lekktu@gmail.com>
18763
a555cb87
JB
18764 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
18765 (syms_of_gnutls): Remove duplicate DEFSYM for
18766 Qgnutls_bootprop_verify_hostname_error, an error for
18767 Qgnutls_bootprop_verify_error (which is no longer used).
18768
7d47b580
JB
18769 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
18770 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
18771 Also (re)move comments that are misplaced or no longer relevant.
18772
1e49bfab
LMI
187732011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
18774
18775 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
18776
1485f4c0
CY
187772011-07-03 Chong Yidong <cyd@stupidchicken.com>
18778
18779 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
18780 and background color parameters if they have been changed.
18781
a9ab721e
LMI
187822011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
18783
18784 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
18785
cf7cff57
PE
187862011-07-03 Paul Eggert <eggert@cs.ucla.edu>
18787
2e13213d
PE
18788 * xsettings.c (SYSTEM_FONT): Define only when used.
18789 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
18790
cf7cff57
PE
18791 * keymap.c (access_keymap_1): Now static.
18792
7a8e04f7
CY
187932011-07-02 Chong Yidong <cyd@stupidchicken.com>
18794
18795 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
18796 leave any prefix arg for the up event (Bug#1586).
18797
61352f62
LMI
187982011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
18799
69bb1ef7
LMI
18800 * lread.c (syms_of_lread): Mention single symbols defined by
18801 `defvar' or `defconst' (bug#7154).
18802
61352f62 18803 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 18804 (Frequire): Mention get-load-suffixes.
61352f62 18805
28545e04
MR
188062011-07-02 Martin Rudalics <rudalics@gmx.at>
18807
18808 * window.h (window): Remove clone_number slot.
18809 * window.c (Fwindow_clone_number, Fset_window_clone_number):
18810 Remove.
18811 (make_parent_window, make_window, saved_window)
18812 (Fset_window_configuration, save_window_save): Don't deal with
18813 clone numbers.
18814 * buffer.c (Qclone_number): Remove declaration.
18815 (sort_overlays, overlay_strings): Don't deal with clone numbers.
18816
3349e122
SM
188172011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
18818
18819 Add multiple inheritance to keymaps.
18820 * keymap.c (Fmake_composed_keymap): New function.
18821 (Fset_keymap_parent): Simplify.
18822 (fix_submap_inheritance): Remove.
18823 (access_keymap_1): New function extracted from access_keymap to handle
18824 embedded parents and handle lists of maps.
18825 (access_keymap): Use it.
18826 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
18827 (Fcopy_keymap): Handle embedded parents.
18828 (Fcommand_remapping, define_as_prefix): Simplify.
18829 (Fkey_binding): Simplify.
18830 (syms_of_keymap): Move minibuffer-local-completion-map,
18831 minibuffer-local-filename-completion-map,
18832 minibuffer-local-must-match-map, and
18833 minibuffer-local-filename-must-match-map to Elisp.
18834 (syms_of_keymap): Defsubr make-composed-keymap.
18835 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
18836 (parse_menu_item): Trivial simplification.
18837
3279eb87
GM
188382011-07-01 Glenn Morris <rgm@gnu.org>
18839
18840 * Makefile.in (SETTINGS_LIBS): Fix typo.
18841
39cb9e56 188422011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4550efdf
KI
18843
18844 * coding.c (Fencode_coding_string): Record the last coding system
18845 used, as the function doc string says (bug#8738).
18846
0949d2b6
JD
188472011-07-01 Jan Djärv <jan.h.d@swipnet.se>
18848
18849 * xsettings.c (store_monospaced_changed): Take new font as arg and
18850 check for change against current_mono_font.
18851 (EMACS_TYPE_SETTINGS): Remove this and related defines.
18852 (emacs_settings_constructor, emacs_settings_get_property)
18853 (emacs_settings_set_property, emacs_settings_class_init)
18854 (emacs_settings_init, gsettings_obj): Remove.
18855 (something_changedCB): New function for HAVE_GSETTINGS.
18856 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
18857 with value as argument.
18858 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
18859 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 18860 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
18861 "changed".
18862
18863 * xgselect.c: Add defined (HAVE_GSETTINGS).
18864 (xgselect_initialize): Ditto.
18865
18866 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
18867 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
18868 xg_select.
18869
bbc6b304
PE
188702011-07-01 Paul Eggert <eggert@cs.ucla.edu>
18871
18872 * eval.c (struct backtrace): Simplify and port the data structure.
18873 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
18874 signed bit field, as this assumption is not portable and it makes
18875 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
18876 "char debug_on_exit : 1" as this is not portable either; instead,
18877 use the portable "unsigned int debug_on_exit : 1". Remove unused
18878 member evalargs. Remove obsolete comments about cc bombing out.
18879
9851bfc5
JD
188802011-06-30 Jan Djärv <jan.h.d@swipnet.se>
18881
51bb811f 18882 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
18883 Let HAVE_GSETTINGS override HAVE_GCONF.
18884 (store_monospaced_changed): New function.
18885 (EMACS_SETTINGS): A new type derived from GObject to handle
18886 GSettings notifications.
18887 (emacs_settings_constructor, emacs_settings_get_property)
18888 (emacs_settings_set_property, emacs_settings_class_init):
18889 New functions.
18890 (gsettings_client, gsettings_obj): New variables.
18891 (GSETTINGS_SCHEMA): New define.
18892 (something_changedCB): Call store_monospaced_changed.
18893 (init_gsettings): New function.
18894 (xsettings_initialize): Call init_gsettings.
18895 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
18896 to NULL.
18897
640c8776 18898 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
18899 GCONF_CFLAGS/LIBS.
18900
5386012d
MR
189012011-06-29 Martin Rudalics <rudalics@gmx.at>
18902
18903 * window.c (resize_root_window, grow_mini_window)
18904 (shrink_mini_window): Rename Qresize_root_window to
18905 Qwindow_resize_root_window and Qresize_root_window_vertically to
18906 Qwindow_resize_root_window_vertically.
18907
f13e0b08
PE
189082011-06-28 Paul Eggert <eggert@cs.ucla.edu>
18909
18910 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
18911
94515237
JB
189122011-06-27 Juanma Barranquero <lekktu@gmail.com>
18913
18914 * makefile.w32-in: Redesign dependencies so they reflect more
18915 clearly which files are directly included by each source file,
18916 and not through other includes.
18917
e43b6e43
MR
189182011-06-27 Martin Rudalics <rudalics@gmx.at>
18919
18920 * buffer.c (Qclone_number): Declare static and DEFSYM it.
18921 (sort_overlays, overlay_strings): When an overlay's clone number
18922 matches the window's clone number process the overlay even if
18923 the overlay's window property doesn't match the current window.
18924
d68443dc
MR
18925 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
18926 (Fwindow_hchild): Rename to Fwindow_left_child.
18927 (Fwindow_next): Rename to Fwindow_next_sibling.
18928 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
18929 (resize_window_check): Rename to window_resize_check.
18930 (resize_window_apply): Rename to window_resize_apply.
18931 (Fresize_window_apply): Rename to Fwindow_resize_apply.
18932 (Fdelete_other_windows_internal, resize_frame_windows)
18933 (Fsplit_window_internal, Fdelete_window_internal)
18934 (grow_mini_window, shrink_mini_window)
18935 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 18936
c7e73be5
JD
189372011-06-26 Jan Djärv <jan.h.d@swipnet.se>
18938
18939 * emacsgtkfixed.h: State that this is only used with Gtk+3.
18940 (emacs_fixed_set_min_size): Remove.
18941 (emacs_fixed_new): Take frame as argument.
18942
18943 * emacsgtkfixed.c: State that this is only used with Gtk+3.
18944 (_EmacsFixedPrivate): Remove minwidth/height.
18945 Add struct frame *f.
18946 (emacs_fixed_init): Initialize priv->f.
18947 (get_parent_class, emacs_fixed_set_min_size): Remove.
18948 (emacs_fixed_new): Set priv->f to argument.
18949 (emacs_fixed_get_preferred_width)
18950 (emacs_fixed_get_preferred_height): Use min_width/height from
18951 frames size_hint to set minimum and natural (Bug#8919).
18952 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
18953 and use min_width/height from frames size_hint to set
18954 min_width/height (Bug#8919).
18955
18956 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
18957 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
18958 Fix indentation.
c7e73be5 18959
cf99dcf8
EZ
189602011-06-26 Eli Zaretskii <eliz@gnu.org>
18961
18962 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
18963 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
18964 called at ZV.
18965
029529ac
CY
189662011-06-26 Chong Yidong <cyd@stupidchicken.com>
18967
18968 * process.c (wait_reading_process_output): Bypass select if
18969 waiting for a cell while ignoring keyboard input, and input is
18970 pending. Suggested by Jan Djärv (Bug#8869).
18971
7a7ef429
PE
189722011-06-25 Paul Eggert <eggert@cs.ucla.edu>
18973
18974 Use gnulib's dup2 module instead of rolling our own.
18975 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
18976
11fdef7d 189772011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
18978
18979 * dispnew.c (scrolling_window): Before scrolling, turn off a
18980 mouse-highlight in the window being scrolled.
18981
cd3520a4
JB
189822011-06-24 Juanma Barranquero <lekktu@gmail.com>
18983
18984 Move DEFSYM to lisp.h and use everywhere.
18985
18986 * character.h (DEFSYM): Move declaration...
18987 * lisp.h (DEFSYM): ...here.
18988
18989 * gnutls.c:
18990 * minibuf.c:
18991 * w32menu.c:
18992 * w32proc.c:
18993 * w32select.c: Don't include character.h.
18994
18995 * alloc.c (syms_of_alloc):
18996 * buffer.c (syms_of_buffer):
18997 * bytecode.c (syms_of_bytecode):
18998 * callint.c (syms_of_callint):
18999 * casefiddle.c (syms_of_casefiddle):
19000 * casetab.c (init_casetab_once):
19001 * category.c (init_category_once, syms_of_category):
19002 * ccl.c (syms_of_ccl):
19003 * cmds.c (syms_of_cmds):
19004 * composite.c (syms_of_composite):
19005 * dbusbind.c (syms_of_dbusbind):
19006 * dired.c (syms_of_dired):
19007 * dispnew.c (syms_of_display):
19008 * doc.c (syms_of_doc):
19009 * editfns.c (syms_of_editfns):
19010 * emacs.c (syms_of_emacs):
19011 * eval.c (syms_of_eval):
19012 * fileio.c (syms_of_fileio):
19013 * fns.c (syms_of_fns):
19014 * frame.c (syms_of_frame):
19015 * fringe.c (syms_of_fringe):
19016 * insdel.c (syms_of_insdel):
19017 * keymap.c (syms_of_keymap):
19018 * lread.c (init_obarray, syms_of_lread):
19019 * macros.c (syms_of_macros):
19020 * msdos.c (syms_of_msdos):
19021 * print.c (syms_of_print):
19022 * process.c (syms_of_process):
19023 * search.c (syms_of_search):
19024 * sound.c (syms_of_sound):
19025 * syntax.c (init_syntax_once, syms_of_syntax):
19026 * terminal.c (syms_of_terminal):
19027 * textprop.c (syms_of_textprop):
19028 * undo.c (syms_of_undo):
19029 * w32.c (globals_of_w32):
19030 * window.c (syms_of_window):
19031 * xdisp.c (syms_of_xdisp):
19032 * xfaces.c (syms_of_xfaces):
19033 * xfns.c (syms_of_xfns):
19034 * xmenu.c (syms_of_xmenu):
19035 * xsettings.c (syms_of_xsettings):
19036 * xterm.c (syms_of_xterm): Use DEFSYM.
19037
4228cf16
TZ
190382011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
19039
cd3520a4 19040 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 19041
7fcccf1e
PE
190422011-06-23 Paul Eggert <eggert@cs.ucla.edu>
19043
7efb4e0e
PE
19044 Integer and buffer overflow fixes (Bug#8873).
19045
ff5844ad
PE
19046 * print.c (printchar, strout): Check for string overflow.
19047 (PRINTPREPARE, printchar, strout):
19048 Don't set size unless allocation succeeds.
19049
90532f02
PE
19050 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
19051 for sizes. Check for string overflow more accurately.
19052 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
19053
6d84508d
PE
19054 * macros.c: Integer and buffer overflow fixes.
19055 * keyboard.h (struct keyboard.kbd_macro_bufsize):
19056 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
19057 Use ptrdiff_t, not int, for sizes.
19058 Don't increment bufsize until after realloc succeeds.
19059 Check for size-calculation overflow.
19060 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
19061
437b2cb4
PE
19062 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
19063
8b9ac8b4
PE
19064 * lread.c: Integer overflow fixes.
19065 (read_integer): Radix is now EMACS_INT, not int,
19066 to improve quality of diagnostics for out-of-range radices.
19067 Calculate buffer size correctly for out-of-range radices.
19068 (read1): Check for integer overflow in radices, and in
19069 read-circle numbers.
82cb60d3
PE
19070 (read_escape): Avoid int overflow.
19071 (Fload, openp, read_buffer_size, read1)
19072 (substitute_object_recurse, read_vector, read_list, map_obarray):
19073 Use ptrdiff_t, not int, for sizes.
19074 (read1): Use EMACS_INT, not int, for sizes.
20270765 19075 Check for size overflow.
8b9ac8b4 19076
7fcccf1e
PE
19077 * image.c (cache_image): Check for size arithmetic overflow.
19078
bfbbd7e7
PE
19079 * lread.c: Integer overflow issues.
19080 (saved_doc_string_size, saved_doc_string_length)
19081 (prev_saved_doc_string_size, prev_saved_doc_string_length):
19082 Now ptrdiff_t, not int.
19083 (read1): Don't assume doc string length fits in int. Check for
19084 out-of-range doc string lengths.
19085 (read_list): Don't assume file position fits in int.
39019e54 19086 (read_escape): Check for hex character overflow.
bfbbd7e7 19087
4e323265
LL
190882011-06-22 Leo Liu <sdl.web@gmail.com>
19089
19090 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
19091 Move to minibuffer.el.
19092
85fece3e
PE
190932011-06-22 Paul Eggert <eggert@cs.ucla.edu>
19094
20b84ce9 19095 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
19096 The following patches are for when GLYPH_DEBUG && !XASSERT.
19097 * dispextern.h (trace_redisplay_p, dump_glyph_string):
19098 * dispnew.c (flush_stdout):
19099 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
19100 Mark as externally visible.
19101 * dispnew.c (check_window_matrix_pointers): Now static.
19102 * dispnew.c (window_to_frame_vpos):
19103 * xfns.c (unwind_create_frame):
19104 * xterm.c (x_check_font): Remove unused local.
19105 * scroll.c (CHECK_BOUNDS):
19106 * xfaces.c (cache_fache): Rename local to avoid shadowing.
19107 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
19108 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
19109 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
19110 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
19111 Now static.
19112 (debug_method_add): Use va_list and vsprintf rather than relying
19113 on undefined behavior with wrong number of arguments.
19114 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
19115 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
19116 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
19117 since we're not interested in debugging glyphs with old libraries.
19118 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
19119 GCC 4.6.0's static checking.
19120
0766b489
PE
191212011-06-22 Paul Eggert <eggert@cs.ucla.edu>
19122
31fd4b32
PE
19123 Integer overflow and signedness fixes (Bug#8873).
19124 A few related buffer overrun fixes, too.
19125
b79e8648
PE
19126 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
19127
0766b489
PE
19128 * dispextern.h (struct face.stipple):
19129 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
19130 (x_bitmap_mask, x_allocate_bitmap_record)
19131 (x_create_bitmap_from_data, x_create_bitmap_from_file)
19132 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
19133 (x_create_bitmap_from_xpm_data):
19134 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
19135 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
19136 (.bitmaps_last):
19137 * xfaces.c (load_pixmap):
19138 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
19139 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
19140 (.bitmaps_last, struct x_output.icon_bitmap):
19141 Use ptrdiff_t, not int, for bitmap indexes.
19142 (x_allocate_bitmap_record): Check for size overflow.
19143 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
19144
b081724f
PE
19145 Use ptrdiff_t, not int, for overlay counts.
19146 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
19147 * editfns.c (overlays_around, get_pos_property):
19148 * textprop.c (get_char_property_and_overlay):
19149 * xdisp.c (next_overlay_change, note_mouse_highlight):
19150 * xfaces.c (face_at_buffer_position):
21514da7
PE
19151 * buffer.c (OVERLAY_COUNT_MAX): New macro.
19152 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
19153 (Fnext_overlay_change, Fprevious_overlay_change)
19154 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 19155 Use ptrdiff_t, not int, for sizes.
21514da7 19156 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 19157
3de73e5e
PE
19158 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
19159
2606c57b
PE
19160 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
19161 (x_session_initialize): Do not assume string length fits in int.
19162
aaafe47a
PE
19163 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
19164 This is unlikely, but can occur if DPI is outlandish.
19165
2674ddc8 19166 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
19167 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
19168
28154962
PE
19169 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
19170 * xrdb.c (magic_file_p, search_magic_path):
19171 Omit last arg SUFFIX; it was always 0. All callers changed.
19172 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
19173
7de51af5
PE
19174 * xfont.c (xfont_match): Avoid need for strlen.
19175
25ed6cc3
PE
19176 * xfns.c: Don't assume strlen fits in int.
19177 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
19178
4eab31dd
PE
19179 * xdisp.c (message_log_check_duplicate): Return intmax_t,
19180 not unsigned long, as we prefer signed integers. All callers changed.
19181 Detect integer overflow in repeat count.
19182 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 19183 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 19184
171e2a58
PE
19185 * termcap.c: Don't assume sizes fit in int and never overflow.
19186 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
19187 (gobble_line): Check for size-calculation overflow.
19188
ad39faca 19189 * minibuf.c (Fread_buffer):
6e5bb2dc 19190 * lread.c (intern, intern_c_string):
74ca2eb3
PE
19191 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
19192 Don't assume string length fits in int.
19193
52c61c22 19194 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
19195 * gtkutil.c (style_changed_cb): Avoid need for strlen.
19196
b5b8c9e5
PE
19197 * font.c: Don't assume string length fits in int.
19198 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
19199 Use ptrdiff_t, not int.
ccd6111c
PE
19200 (font_intern_prop): Don't assume string length fits in int.
19201 Don't assume integer property fits in fixnum.
19202 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 19203
882f0d81 19204 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 19205 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
19206 Reformulate so as not to need the command string.
19207 Invoke gzip -cd rather than gunzip, as it's more portable.
19208 (lock_info_type, lock_file_1, lock_file):
19209 Don't assume pid_t and time_t fit in unsigned long.
19210 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
19211 (current_lock_owner): Prefer signed type for sizes.
19212 Use memcpy, not strncpy, where memcpy is what is really wanted.
19213 Don't assume (via atoi) that time_t and pid_t fit in int.
19214 Check for time_t and/or pid_t out of range, e.g., via a network share.
19215 Don't alloca where an auto var works fine.
19216
93f4cf88
PE
19217 * fileio.c: Fix some integer overflow issues.
19218 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
19219 Don't assume string length fits in int.
19220 (directory_file_name): Don't assume string length fits in long.
19221 (make_temp_name): Don't assume pid fits in int, or that its print
19222 length is less than 20.
19223
f3e92b69
PE
19224 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
19225
1bfdaf10
PE
19226 * coding.c (make_subsidiaries): Don't assume string length fits in int.
19227
35016e9a
PE
19228 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
19229
3d1e65a1
PE
19230 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
19231 We prefer signed integers, even for size calculations.
19232
0b963a93
PE
19233 * emacs.c: Don't assume string length fits in 'int'.
19234 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
19235 (main): Don't invoke strlen when not needed.
19236
573f4b54
PE
19237 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
19238 (XD_DEBUG_MESSAGE): Don't waste a byte.
19239
989f33ba
PE
19240 * callproc.c (getenv_internal_1, getenv_internal)
19241 (Fgetenv_internal):
965d34eb
PE
19242 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
19243
e4d29b33
PE
19244 * lread.c (invalid_syntax): Omit length argument.
19245 All uses changed. This doesn't fix a bug, but it simplifies the
19246 code away from its former Hollerith-constant appearance, and it's
19247 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 19248 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 19249
eb49b136
PE
19250 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
19251 This didn't break anything, but it didn't help either.
19252 It's confusing to put a bogus integer in a place where the actual
19253 value does not matter.
9f62aeb1 19254 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 19255 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 19256
15375a22
PE
19257 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
19258 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
19259 implementation.
b61cc01c
PE
19260 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
19261 We prefer signed types, and the value cannot exceed the EMACS_INT
19262 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
19263 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
19264 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
19265 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 19266
53b2623d
PE
19267 * indent.c (sane_tab_width): New function.
19268 (current_column, scan_for_column, Findent_to, position_indentation)
19269 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 19270 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 19271
51cab52b 19272 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 19273
f2ed8a70
PE
19274 * lisp.h (lint_assume): New macro.
19275 * composite.c (composition_gstring_put_cache):
19276 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
19277
abe80cc6
PE
19278 * editfns.c, insdel.c:
19279 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 19280
b02c740e
PE
19281 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
19282
ebc96716
PE
19283 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
19284
b4e50fa0 19285 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 19286 Use much-faster test for byte-length change.
311d5d7c 19287 Don't assume string byte-length fits in 'int'.
a4cf38e4 19288 Check that character arg fits in 'int'.
85461888 19289 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 19290
c0c1ee9f
PE
19291 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
19292
a498d7f4
PE
19293 * fns.c (concat): Catch string overflow earlier.
19294 Do not rely on integer wraparound.
19295
51cab52b
PE
19296 * dispextern.h (struct it.overlay_strings_charpos)
19297 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
19298 * xdisp.c (forward_to_next_line_start)
19299 (back_to_previous_visible_line_start)
19300 (reseat_at_next_visible_line_start, next_element_from_buffer):
19301 Don't arbitrarily truncate the value of 'selective' to int.
19302
76031fad
PE
19303 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
19304
5eb55db9
PE
19305 * composite.c: Don't truncate sizes to 'int'.
19306 (composition_gstring_p, composition_reseat_it)
19307 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
19308 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
19309 not EMACS_UINT, for indexes.
5eb55db9 19310
0703a717
PE
19311 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
19312
d6202519
PE
19313 * buffer.c: Include <verify.h>.
19314 (struct sortvec.priority, struct sortstr.priority):
8961a454 19315 Now EMACS_INT, not int.
c20998a7 19316 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
19317 (struct sortstr.size, record_overlay_string)
19318 (struct sortstrlist.size, struct sortlist.used):
19319 Don't truncate size to int.
19320 (record_overlay_string): Check for size-calculation overflow.
d6202519 19321 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 19322
d5a19415
JM
193232011-06-22 Jim Meyering <meyering@redhat.com>
19324
029529ac 19325 Don't leak an XBM-image-sized buffer
d5a19415
JM
19326 * image.c (xbm_load): Free the image buffer after using it.
19327
a9041e6c
PE
193282011-06-21 Paul Eggert <eggert@cs.ucla.edu>
19329
19330 Port to Sun C.
19331 * composite.c (find_automatic_composition): Omit needless 'return 0;'
19332 that Sun C diagnosed.
19333 * fns.c (secure_hash): Fix pointer signedness issue.
19334 * intervals.c (static_offset_intervals): New function.
19335 (offset_intervals): Use it.
19336
7f3f739f
LL
193372011-06-21 Leo Liu <sdl.web@gmail.com>
19338
19339 * deps.mk (fns.o):
19340 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
19341 sha512.h.
19342
19343 * fns.c (secure_hash): Rename from crypto_hash_function and change
19344 the first arg to accept symbols.
5b66d427 19345 (Fsecure_hash): New primitive.
7f3f739f
LL
19346 (syms_of_fns): New symbols.
19347
76147d94
DD
193482011-06-20 Deniz Dogan <deniz@dogan.se>
19349
19350 * process.c (Fset_process_buffer): Clarify return value in
19351 docstring.
19352
7d7d0045
CY
193532011-06-18 Chong Yidong <cyd@stupidchicken.com>
19354
19355 * dispnew.c (add_window_display_history): Use BVAR.
19356
19357 * xdisp.c (debug_method_add): Use BVAR.
19358 (check_window_end, dump_glyph_matrix, dump_glyph)
19359 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
19360
19361 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
19362 Likewise.
19363
19364 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
19365 check till after the cache is created in init_frame_faces.
19366
ff2bc410
SM
193672011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
19368
19369 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
19370
28177add
PE
193712011-06-16 Paul Eggert <eggert@cs.ucla.edu>
19372
dd3482fe
PE
19373 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
19374 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
19375 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
19376
393d71f3 19377 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
19378 * fileio.c (Finsert_file_contents):
19379 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
19380 Remove the old (too-loose) buffer overflow checks.
19381 They weren't needed, since make_gap checks for buffer overflow.
19382 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
19383 The old code merely checked for Emacs fixnum overflow, and relied
19384 on undefined (wraparound) behavior. The new code avoids undefined
19385 behavior, and also checks for ptrdiff_t and/or size_t overflow.
19386
2e6813b0 19387 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
19388 Tune. Don't use wider integers than needed. Don't use alloca.
19389 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 19390
599a9e4f
PE
19391 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
19392
99561444
PE
19393 * insdel.c, lisp.h (buffer_overflow): New function.
19394 (insert_from_buffer_1, replace_range, replace_range_2):
19395 * insdel.c (make_gap_larger):
19396 * editfns.c (Finsert_char):
19397 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
19398
28177add
PE
19399 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
19400
e69dafad
PE
194012011-06-15 Paul Eggert <eggert@cs.ucla.edu>
19402
4baa020d 19403 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 19404
b1c46f02
PE
19405 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
19406 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
19407
e69dafad
PE
19408 * fileio.c: Don't assume EMACS_INT fits in off_t.
19409 (emacs_lseek): New static function.
19410 (Finsert_file_contents, Fwrite_region): Use it.
19411 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
19412
566684ea
PE
19413 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
19414
e6966cd6
PE
19415 * fns.c: Don't overflow int when computing a list length.
19416 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
19417 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
19418 truncation on 64-bit hosts. Check for QUIT every
19419 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
19420 faster and is responsive enough.
19421 (Flength): Report an error instead of overflowing an integer.
19422 (Fsafe_length): Return a float if the value is not representable
19423 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 19424 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 19425 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 19426
dd0b0efb
PE
19427 * alloc.c: Check that resized vectors' lengths fit in fixnums.
19428 (header_size, word_size): New constants.
19429 (allocate_vectorlike): Don't check size overflow here.
19430 (allocate_vector): Check it here instead, since this is the only
19431 caller of allocate_vectorlike that could cause overflow.
19432 Check that the new vector's length is representable as a fixnum.
19433
86fe5cfe
PE
19434 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
19435 The previous code was bogus. For example, next_almost_prime (32)
19436 returned 39, which is undesirable as it is a multiple of 3; and
19437 next_almost_prime (24) returned 25, which is a multiple of 5 so
19438 why was the code bothering to check for multiples of 7?
19439
80e88859
PE
19440 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
19441
4a2f0ad6
PE
19442 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
19443
f66c7cf8
PE
19444 Variadic C functions now count arguments with ptrdiff_t.
19445 This partly undoes my 2011-03-30 change, which replaced int with size_t.
19446 Back then I didn't know that the Emacs coding style prefers signed int.
19447 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
19448 were being counted with int, which may truncate counts on 64-bit
19449 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
19450 * lisp.h (struct Lisp_Subr.function.aMANY)
19451 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
19452 Arg counts are now ptrdiff_t, not size_t.
19453 All variadic functions and their callers changed accordingly.
19454 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
19455 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
19456 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
19457 * callint.c (Fcall_interactively): Check arg count for overflow,
19458 to avoid potential buffer overrun. Use signed char, not 'int',
19459 for 'varies' array, so that we needn't bother to check its size
19460 calculation for overflow.
19461 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
19462 * eval.c (apply_lambda):
19463 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
19464 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
19465 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
19466
a1759b76
PE
19467 * callint.c (Fcall_interactively): Don't use index var as event count.
19468
d96be9fc
PE
19469 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
19470 * mem-limits.h (SIZE): Remove; no longer used.
19471
a690a978 19472 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 19473
578c21e6
PE
19474 Remove unnecessary casts.
19475 * xterm.c (x_term_init):
19476 * xfns.c (x_set_border_pixel):
19477 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
19478 These aren't needed now that we assume ANSI C.
19479
96f53c6c
PE
19480 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
19481 It's more likely to cause problems (due to unsigned overflow)
19482 than to cure them.
19483
83c77d31
PE
19484 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
19485
ee2079f1
PE
19486 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
19487
6da65536
PE
19488 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
19489
7147c4a4
PE
19490 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
19491
193e32d9
PE
19492 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
19493
e5533da6
PE
19494 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
19495
9910e595
PE
19496 GLYPH_CODE_FACE returns EMACS_INT, not int.
19497 * dispextern.h (merge_faces):
19498 * xfaces.c (merge_faces):
01103c44
PE
19499 * xdisp.c (get_next_display_element, next_element_from_display_vector):
19500 Don't assume EMACS_INT fits in int.
9910e595 19501
2638320e
PE
19502 * character.h (CHAR_VALID_P): Remove unused parameter.
19503 * fontset.c, lisp.h, xdisp.c: All uses changed.
19504
045eb8d9
PE
19505 * editfns.c (Ftranslate_region_internal): Omit redundant test.
19506
c1f134b5
PE
19507 * fns.c (concat): Minor tuning based on overflow analysis.
19508 This doesn't fix any bugs. Use int to hold character, instead
19509 of constantly refetching from Emacs object. Use XFASTINT, not
19510 XINT, for value known to be a character. Don't bother comparing
19511 a single byte to 0400, as it's always less.
19512
395fcb93 19513 * floatfns.c (Fexpt):
327eeec8
PE
19514 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
19515
abbd3d23
PE
19516 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
19517 for characters.
19518
684a03ef
PE
19519 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
19520
0fed43f3
PE
19521 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
19522 Without this fix, on a 64-bit host (aset S 0 4294967386) would
19523 incorrectly succeed when S was a string, because 4294967386 was
19524 truncated before it was used.
19525
8fd02eb7
PE
19526 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
19527 Otherwise, an out-of-range integer could cause undefined behavior
19528 on a 64-bit host.
19529
f8c86b69
PE
19530 * composite.c: Use int, not EMACS_INT, for characters.
19531 (fill_gstring_body, composition_compute_stop_pos): Use int, not
19532 EMACS_INT, for values that are known to be in character range.
19533 This doesn't fix any bugs but is the usual style inside Emacs and
19534 may generate better code on 32-bit machines.
19535
34206dd2
PE
19536 Make sure a 64-bit char is never passed to ENCODE_CHAR.
19537 This is for reasons similar to the recent CHAR_STRING fix.
19538 * charset.c (Fencode_char): Check that character arg is actually
19539 a character. Pass an int to ENCODE_CHAR.
19540 * charset.h (ENCODE_CHAR): Verify that the character argument is no
19541 wider than 'int', as a compile-time check to prevent future regressions
19542 in this area.
19543
c5958d4c 19544 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
19545
19546 Make sure a 64-bit char is never passed to CHAR_STRING.
19547 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
19548 by silently ignoring the top 32 bits, allowing some values
19549 that were far too large to be valid characters.
19550 * character.h: Include <verify.h>.
19551 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
19552 arguments are no wider than unsigned, as a compile-time check
19553 to prevent future regressions in this area.
19554 * data.c (Faset):
01103c44 19555 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
19556 (Fsubst_char_in_region):
19557 * fns.c (concat):
19558 * xdisp.c (decode_mode_spec_coding):
19559 Adjust to CHAR_STRING's new requirement.
19560 * editfns.c (Finsert_char, Fsubst_char_in_region):
19561 * fns.c (concat): Check that character args are actually
19562 characters. Without this test, these functions did the wrong
19563 thing with wildly out-of-range values on 64-bit hosts.
19564
d37ca623
PE
19565 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
19566 These casts should not be needed on 32-bit hosts, either.
19567 * keyboard.c (read_char):
19568 * lread.c (Fload): Remove casts to unsigned.
19569
ea204efb
PE
19570 * lisp.h (UNSIGNED_CMP): New macro.
19571 This fixes comparison bugs on 64-bit hosts.
19572 (ASCII_CHAR_P): Use it.
19573 * casefiddle.c (casify_object):
01103c44 19574 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
19575 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
19576 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
19577 * dispextern.h (FACE_FROM_ID):
19578 * keyboard.c (read_char): Use UNSIGNED_CMP.
19579
41cb286c
PE
19580 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
19581 not to EMACS_INT, to avoid GCC warning.
19582
4a1b9832
PE
19583 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
19584
55daad71
PE
19585 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
19586 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
19587 isn't needed on 32-bit machines.
8f95c75c 19588
01103c44
PE
19589 * buffer.c (Fgenerate_new_buffer_name):
19590 Use EMACS_INT for count, not int.
0ceccced 19591 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
19592
19593 * data.c (Qcompiled_function): Now static.
19594
c6f072e7
PE
19595 * window.c (window_body_lines): Now static.
19596
20ce5912
PE
19597 * image.c (gif_load): Rename local to avoid shadowing.
19598
9c4c5f81
PE
19599 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
19600 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
19601 * alloc.c (make_save_value): Integer argument is now of type
19602 ptrdiff_t, not int.
19603 (mark_object): Use ptrdiff_t, not int.
19604 * lisp.h (pD): New macro.
19605 * print.c (print_object): Use it.
19606
c0c5c8ae
PE
19607 * alloc.c: Use EMACS_INT, not int, to count objects.
19608 (total_conses, total_markers, total_symbols, total_vector_size)
19609 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
19610 (total_free_floats, total_floats, total_free_intervals)
19611 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
19612 Now EMACS_INT, not int. All uses changed.
19613 (Fgarbage_collect): Compute overall total using a double, so that
19614 integer overflow is less likely to be a problem. Check for overflow
19615 when converting back to an integer.
5a25e253
PE
19616 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
19617 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
19618 These were 'int' variables that could overflow on 64-bit hosts;
19619 they were never used, so remove them instead of repairing them.
211a0b2a 19620 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
19621 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
19622 Previously, this ceilinged at INT_MAX, but that doesn't work on
19623 64-bit machines.
e46bb31a 19624 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 19625
c78baabf 19626 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 19627 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
19628 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
19629 when a (possibly-narrower) signed value would do just as well.
19630 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 19631
c9d624c6
PE
19632 * alloc.c: Catch some string size overflows that we were missing.
19633 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
19634 for convenience in STRING_BYTES_MAX.
19635 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
19636 The definition here is exact; the one in lisp.h was approximate.
19637 (allocate_string_data): Check for string overflow. This catches
19638 some instances we weren't catching before. Also, it catches
19639 size_t overflow on (unusual) hosts where SIZE_MAX <= min
19640 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
19641 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 19642
c9d624c6
PE
19643 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
19644 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 19645 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 19646
353032ce
PE
19647 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
19648
2bccce07
PE
19649 * alloc.c (Fmake_string): Check for out-of-range init.
19650
0ac30604
SM
196512011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
19652
19653 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
19654
c195f2de
JD
196552011-06-14 Jan Djärv <jan.h.d@swipnet.se>
19656
19657 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
19658 xg_get_default_scrollbar_width.
19659
19660 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
19661 (int_gtk_range_get_value): Move to the scroll bar part of the file.
19662 (style_changed_cb): Call update_theme_scrollbar_width and call
19663 x_set_scroll_bar_default_width and xg_frame_set_char_size for
19664 all frames (Bug#8505).
19665 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
19666 Call gtk_window_set_resizable if HAVE_GTK3.
19667 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
19668 and height if HAVE_GTK3 (Bug#8505).
19669 (scroll_bar_width_for_theme): New variable.
19670 (update_theme_scrollbar_width): New function.
19671 (xg_get_default_scrollbar_width): Move code to
19672 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
19673 (xg_initialize): Call update_theme_scrollbar_width.
19674
19675 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
19676
19677 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
19678
e10ac9f1
MR
196792011-06-12 Martin Rudalics <rudalics@gmx.at>
19680
19681 * frame.c (make_frame): Call other_buffer_safely instead of
19682 other_buffer.
19683
19684 * window.c (temp_output_buffer_show): Call display_buffer with
19685 second argument Vtemp_buffer_show_specifiers and reset latter
19686 immediately after the call.
19687 (Vtemp_buffer_show_specifiers): New variable.
19688 (auto_window_vscroll_p, next_screen_context_lines)
19689 (Vscroll_preserve_screen_position): Remove leading asterisks from
19690 doc-strings.
19691
2d3c217e 196922011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 19693
7b7f97e8 19694 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
19695 * buffer.c (Qclone_number): Remove for now, as it's unused.
19696 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
19697 (record_buffer): Remove unused local.
19698 * frame.c (other_visible_frames, frame_buffer_list): Now static.
19699 (set_frame_buffer_list): Remove; unused.
19700 * frame.h (other_visible_frames): Remove decl.
19701 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
19702 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
19703 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
19704 if HAVE_GPM.
19705 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
19706 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
19707 Define only if HAVE_GPM.
19708 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
19709 (update_hints_inhibit): Remove; never set. All uses removed.
19710 * widgetprv.h (emacsFrameClassRec): Remove decl.
19711 * window.c (delete_deletable_window): Now returns void, since it
19712 wasn't returning anything.
19713 (compare_window_configurations): Remove unused locals.
19714 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
19715 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
19716 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
19717 the same widths as pointers. This follows up on the 2011-05-06 patch.
19718 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
19719 * xterm.h: Likewise.
19720 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
19721
1384b89e
JB
197222011-06-12 Juanma Barranquero <lekktu@gmail.com>
19723
19724 * makefile.w32-in: Update dependencies.
19725 (LISP_H): Add lib/intprops.h.
19726
1100a63c
CY
197272011-06-11 Chong Yidong <cyd@stupidchicken.com>
19728
19729 * image.c (gif_load): Add animation frame delay to the metadata.
19730 (syms_of_image): Use DEFSYM. New symbol `delay'.
19731
6198ccd0
MR
197322011-06-11 Martin Rudalics <rudalics@gmx.at>
19733
19734 * window.c (delete_deletable_window): Re-add.
19735 (Fset_window_configuration): Rewrite to handle dead buffers and
19736 consequently deletable windows.
19737 (window_tree, Fwindow_tree): Remove. Supply functionality in
19738 window.el.
19739 (compare_window_configurations): Simplify code.
19740
b6e3633c
AS
197412011-06-11 Andreas Schwab <schwab@linux-m68k.org>
19742
1ab0dee5
AS
19743 * image.c (imagemagick_load_image): Fix type mismatch.
19744 (Fimagemagick_types): Likewise.
19745
b6e3633c
AS
19746 * window.h (replace_buffer_in_windows): Declare.
19747
9397e56f
MR
197482011-06-11 Martin Rudalics <rudalics@gmx.at>
19749
19750 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
19751 Qclone_number. Remove external declaration of Qdelete_window.
19752 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
19753 code.
640c8776
SM
19754 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
19755 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
19756 (Fother_buffer): Rewrite doc-string. Major rewrite for new
19757 buffer list implementation.
19758 (other_buffer_safely): New function.
19759 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
19760 calls to replace_buffer_in_windows and
19761 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
19762 if allowed.
19763 (record_buffer): Inhibit quitting and rewrite using quittable
19764 functions. Run Qbuffer_list_update_hook if allowed.
19765 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
19766 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
19767 Move switch-to-buffer to window.el.
9397e56f
MR
19768 (bury-buffer): Move to window.el.
19769 (Vbuffer_list_update_hook): New variable.
19770
19771 * lisp.h (other_buffer_safely): Add prototype in buffer.c
19772 section.
19773
19774 * window.h (resize_frame_windows): Move up in code.
19775 (Fwindow_frame): Remove EXFUN.
19776 (replace_buffer_in_all_windows): Remove prototype.
19777 (replace_buffer_in_windows_safely): Add prototype.
19778
19779 * window.c: Declare Qdelete_window static again. Move down
19780 declaration of select_count.
19781 (Fnext_window, Fprevious_window): Rewrite doc-strings.
19782 (Fother_window): Move to window.el.
19783 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
19784 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
19785 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
19786 window.el.
19787 (replace_buffer_in_windows): Implement by calling
19788 Qreplace_buffer_in_windows.
19789 (replace_buffer_in_all_windows): Remove with some functionality
19790 moved into replace_buffer_in_windows_safely.
19791 (replace_buffer_in_windows_safely): New function.
19792 (select_window_norecord, select_frame_norecord): Move in front
19793 of run_window_configuration_change_hook. Remove now obsolete
19794 declarations.
640c8776
SM
19795 (Fset_window_buffer): Rewrite doc-string.
19796 Call Qrecord_window_buffer.
9397e56f
MR
19797 (keys_of_window): Move binding for other-window to window.el.
19798
b50691aa
CY
197992011-06-11 Chong Yidong <cyd@stupidchicken.com>
19800
19801 * dispextern.h (struct image): Replace data member, whose int_val
19802 and ptr_val fields were not used by anything, with a single
19803 lisp_val object.
19804
19805 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
19806 (gif_clear_image, gif_load, imagemagick_load_image)
19807 (gs_clear_image, gs_load): Callers changed.
19808
3f754b86
PE
198092011-06-10 Paul Eggert <eggert@cs.ucla.edu>
19810
cca69397
PE
19811 * buffer.h: Include <time.h>, for time_t.
19812 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
19813
109e28d0
PE
19814 Fix minor problems found by static checking.
19815
60737f02
PE
19816 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
19817
4b66faf3
PE
19818 Make identifiers static if they are not used in other modules.
19819 * data.c (Qcompiled_function, Qframe, Qvector):
19820 * image.c (QimageMagick, Qsvg):
19821 * minibuf.c (Qmetadata):
19822 * window.c (resize_window_check, resize_root_window): Now static.
19823 * window.h (resize_window_check, resize_root_window): Remove decls.
19824
109e28d0
PE
19825 * window.c (window_deletion_count, delete_deletable_window):
19826 Remove; unused.
46a4ce9e
PE
19827 (window_body_lines): Now static.
19828 (Fdelete_other_windows_internal): Mark vars as initialized.
19829 Make sure 'resize_failed' is initialized.
19830 (run_window_configuration_change_hook): Rename local to avoid shadowing.
19831 (resize_window_apply): Remove unused local.
19832 * window.h (delete_deletable_window): Remove decl.
19833
109e28d0 19834 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
19835 (imagemagick_load_image): Fix pointer signedness problem by changing
19836 last arg from unsigned char * to char *. All uses changed.
19837 Also, fix a local for similar reasons.
19838 Remove unused locals. Remove locals to avoid shadowing.
19839 (fn_rsvg_handle_free): Remove; unused.
19840 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 19841 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 19842
3f754b86
PE
19843 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
19844
2547adb1
CY
198452011-06-10 Chong Yidong <cyd@stupidchicken.com>
19846
19847 * image.c (gif_load): Fix omitted cast error introduced by
19848 2011-06-06 change.
19849
2c8e37d4
MR
198502011-06-10 Martin Rudalics <rudalics@gmx.at>
19851
19852 * window.h (resize_proportionally, orig_total_lines)
19853 (orig_top_line): Remove from window structure.
19854 (set_window_height, set_window_width, change_window_heights)
19855 (Fdelete_window): Remove prototypes.
19856 (resize_frame_windows): Remove duplicate declaration.
19857
440a42e3
EZ
198582011-06-10 Eli Zaretskii <eliz@gnu.org>
19859
19860 * window.h (resize_frame_windows, resize_window_check)
19861 (delete_deletable_window, resize_root_window)
19862 (resize_frame_windows): Declare prototypes.
19863
19864 * window.c (resize_window_apply): Make definition be "static" to
19865 match the prototype.
19866
562dd5e9
MR
198672011-06-10 Martin Rudalics <rudalics@gmx.at>
19868
19869 * window.c: Remove declarations of Qwindow_size_fixed,
19870 window_min_size_1, window_min_size_2, window_min_size,
19871 size_window, window_fixed_size_p, enlarge_window, delete_window.
19872 Remove static from declaration of Qdelete_window, it's
19873 temporarily needed by Fbury_buffer.
19874 (replace_window): Don't assign orig_top_line and
19875 orig_total_lines.
19876 (Fdelete_window, delete_window): Remove. Window deletion is
19877 handled by window.el.
640c8776
SM
19878 (window_loop): Remove DELETE_OTHER_WINDOWS case.
19879 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
19880 (Fdelete_other_windows): Remove. Deleting other windows is
19881 handled by window.el.
19882 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
19883 handled in window.el.
19884 (window_min_size_2, window_min_size_1, window_min_size): Remove.
19885 Window minimum sizes are handled in window.el.
19886 (shrink_windows, size_window, set_window_height)
19887 (set_window_width, change_window_heights, window_height)
19888 (window_width, CURBEG, CURSIZE, enlarge_window)
19889 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
19890 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
19891 handled in window.el.
19892 (make_dummy_parent): Rename to make_parent_window and give it a
19893 second argument horflag.
19894 (make_window): Don't set resize_proportionally any more.
19895 (Fsplit_window): Remove. Windows are split in window.el.
19896 (save_restore_action, save_restore_orig_size)
19897 (shrink_window_lowest_first, save_restore_orig_size): Remove.
19898 Resize mini windows in window.el.
19899 (grow_mini_window, shrink_mini_window): Implement by calling
19900 Qresize_root_window_vertically, resize_window_check and
19901 resize_window_apply.
640c8776
SM
19902 (saved_window, Fset_window_configuration, save_window_save):
19903 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
19904 resize_proportionally.
19905 (window_min_height, window_min_width): Move to window.el.
19906 (keys_of_window): Move bindings for delete-other-windows,
19907 split-window, delete-window and enlarge-window to window.el.
19908
19909 * buffer.c: Temporarily extern Qdelete_window.
19910 (Fbury_buffer): Temporarily call Qdelete_window instead of
19911 Fdelete_window (Fbury_buffer will move to window.el soon).
19912
19913 * frame.c (set_menu_bar_lines_1): Remove code handling
19914 orig_top_line and orig_total_lines.
19915
19916 * dispnew.c (adjust_frame_glyphs_initially): Don't use
19917 set_window_height but set heights directly.
19918 (change_frame_size_1): Use resize_frame_windows.
19919
19920 * xdisp.c (init_xdisp): Don't use set_window_height but set
19921 heights directly.
19922
640c8776
SM
19923 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
19924 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
19925 run_window_configuration_change_hook.
19926
19927 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
19928 instead of change_window_heights and run
19929 run_window_configuration_change_hook.
19930
1a13852e
MR
199312011-06-09 Martin Rudalics <rudalics@gmx.at>
19932
19933 * window.c (replace_window): Rename second argument REPLACEMENT to
19934 NEW. New third argument SETFLAG. Rewrite.
19935 (delete_window, make_dummy_parent): Call replace_window with
19936 third argument 1.
19937 (window_list_1): Move down in code.
19938 (run_window_configuration_change_hook): Move set_buffer part
19939 before select_frame_norecord part in order to unwind correctly.
19940 Rename count1 to count.
19941 (recombine_windows, delete_deletable_window, resize_root_window)
19942 (Fdelete_other_windows_internal)
19943 (Frun_window_configuration_change_hook, make_parent_window)
19944 (resize_window_check, resize_window_apply, Fresize_window_apply)
19945 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
19946 (Fdelete_window_internal, Fresize_mini_window_internal):
19947 New functions.
1a13852e
MR
19948 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
19949
f3d1777e
MR
199502011-06-08 Martin Rudalics <rudalics@gmx.at>
19951
496e208e
MR
19952 * window.h (window): Add some new members to window structure -
19953 normal_lines, normal_cols, new_total, new_normal, clone_number,
19954 splits, nest, prev_buffers, next_buffers.
19955 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 19956 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 19957
f3d1777e
MR
19958 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
19959 Remove.
496e208e
MR
19960 (make_dummy_parent): Set new members of windows structure.
19961 (make_window): Move down in code. Handle new members of window
19962 structure.
19963 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
19964 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
19965 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
19966 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
19967 (Fset_window_next_buffers, Fset_window_clone_number):
19968 New functions.
496e208e
MR
19969 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
19970 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
19971 Doc-string fixes.
19972 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
19973 Argument WINDOW can be now internal window too.
19974 (Fwindow_use_time): Move up in code.
19975 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
19976 Rewrite doc-string.
19977 (Fset_window_configuration, saved_window)
19978 (Fcurrent_window_configuration, save_window_save): Handle new
19979 members of window structure.
b9e809c2
MR
19980 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
19981 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
19982 (syms_of_window): New Lisp objects Qrecord_window_buffer,
19983 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
19984 Qget_mru_window, Qresize_root_window,
19985 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
19986 Qauto_buffer_name; staticpro them.
f3d1777e 19987
abde8f8c
MR
199882011-06-07 Martin Rudalics <rudalics@gmx.at>
19989
19990 * window.c (Fwindow_total_size, Fwindow_left_column)
19991 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
19992 (Fwindow_list_1): New functions.
19993 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
19994 (Fwindow_width, Fscroll_left, Fscroll_right):
19995 Use window_body_cols instead of window_box_text_cols.
19996 (delete_window, Fset_window_configuration):
19997 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
19998 (delete_all_subwindows): Take a window as argument and not a
19999 structure. Rewrite.
190b47e6
MR
20000 (window_loop): Remove handling of GET_LRU_WINDOW and
20001 GET_LARGEST_WINDOW.
20002 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
20003
20004 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
20005 window_box_text_cols. delete_all_subwindows now takes a
20006 Lisp_Object as argument.
abde8f8c 20007
640c8776
SM
20008 * indent.c (compute_motion, Fcompute_motion):
20009 Use window_body_cols instead of window_box_text_cols.
abde8f8c 20010
fa8a67e6
MR
20011 * frame.c (delete_frame): Call delete_all_subwindows with root
20012 window as argument.
20013
a54e3482
DC
200142011-06-07 Daniel Colascione <dan.colascione@gmail.com>
20015
20016 * fns.c (Fputhash): Document return value.
20017
60002bf5
CY
200182011-06-06 Chong Yidong <cyd@stupidchicken.com>
20019
20020 * image.c (gif_load): Implement gif89a spec "no disposal" method.
20021
0c671da6 200222011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 20023
b862a52a 20024 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 20025
be44ca6c
PE
20026 Check for overflow when converting integer to cons and back.
20027 * charset.c (Fdefine_charset_internal, Fdecode_char):
20028 Use cons_to_unsigned to catch overflow.
20029 (Fencode_char): Use INTEGER_TO_CONS.
20030 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
20031 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
20032 * data.c (long_to_cons, cons_to_long): Remove.
20033 (cons_to_unsigned, cons_to_signed): New functions.
20034 These signal an error for invalid or out-of-range values.
20035 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
20036 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
20037 * font.c (Ffont_variation_glyphs):
20038 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
20039 * lisp.h: Include <intprops.h>.
20040 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
20041 (cons_to_signed, cons_to_unsigned): New decls.
20042 (long_to_cons, cons_to_long): Remove decls.
20043 * undo.c (record_first_change): Use INTEGER_TO_CONS.
20044 (Fprimitive_undo): Use CONS_TO_INTEGER.
20045 * xfns.c (Fx_window_property): Likewise.
20046 * xselect.c: Include <limits.h>.
20047 (x_own_selection, selection_data_to_lisp_data):
20048 Use INTEGER_TO_CONS.
20049 (x_handle_selection_request, x_handle_selection_clear)
20050 (x_get_foreign_selection, Fx_disown_selection_internal)
20051 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
20052 (lisp_data_to_selection_data): Use cons_to_unsigned.
20053 (x_fill_property_data): Use cons_to_signed.
20054 Report values out of range.
20055
d1f3d2af
PE
20056 Check for buffer and string overflow more precisely.
20057 * buffer.h (BUF_BYTES_MAX): New macro.
20058 * lisp.h (STRING_BYTES_MAX): New macro.
20059 * alloc.c (Fmake_string):
20060 * character.c (string_escape_byte8):
20061 * coding.c (coding_alloc_by_realloc):
20062 * doprnt.c (doprnt):
20063 * editfns.c (Fformat):
20064 * eval.c (verror):
20065 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
20066 since they may not be the same number.
20067 * editfns.c (Finsert_char):
20068 * fileio.c (Finsert_file_contents):
20069 Likewise for BUF_BYTES_MAX.
20070
dd52fcea
PE
20071 * image.c: Use ptrdiff_t, not int, for sizes.
20072 (slurp_file): Switch from int to ptrdiff_t.
20073 All uses changed.
20074 (slurp_file): Check that file size fits in both size_t (for
20075 malloc) and ptrdiff_t (for sanity and safety).
20076
7f9bbdbb
PE
20077 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
20078 if b->modtime has its maximal value.
20079
dfe18f82
PE
20080 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
20081
84acfcf0
PE
20082 Don't assume time_t can fit into int.
20083 * buffer.h (struct buffer.modtime): Now time_t, not int.
20084 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
20085 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
20086
ccd9a01a
PE
20087 Minor fixes for signed vs unsigned integers.
20088 * character.h (MAYBE_UNIFY_CHAR):
20089 * charset.c (maybe_unify_char):
20090 * keyboard.c (read_char, reorder_modifiers):
20091 XINT -> XFASTINT, since the integer must be nonnegative.
20092 * ftfont.c (ftfont_spec_pattern):
20093 * keymap.c (access_keymap, silly_event_symbol_error):
20094 XUINT -> XFASTINT, since the integer must be nonnegative.
20095 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
20096 since it makes no difference and we prefer signed.
20097 * keyboard.c (record_char): Use XUINT when all the neighbors do.
20098 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
20099 nonnegative.
20100
d6d100dd
SM
201012011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
20102
20103 * window.h (Fwindow_frame): Declare.
20104
2b6148e4
PE
201052011-06-06 Paul Eggert <eggert@cs.ucla.edu>
20106
20107 * alloc.c: Simplify handling of large-request failures (Bug#8800).
20108 (SPARE_MEMORY): Always define.
20109 (LARGE_REQUEST): Remove.
20110 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
20111
f230ecc9
MR
201122011-06-06 Martin Rudalics <rudalics@gmx.at>
20113
727e958e
MR
20114 * lisp.h: Move EXFUNS for Fframe_root_window,
20115 Fframe_first_window and Fset_frame_selected_window to window.h.
20116
20117 * window.h: Move EXFUNS for Fframe_root_window,
20118 Fframe_first_window and Fset_frame_selected_window here from
20119 lisp.h.
20120
20121 * frame.c (Fwindow_frame, Fframe_first_window)
20122 (Fframe_root_window, Fframe_selected_window)
20123 (Fset_frame_selected_window): Move to window.c.
20124 (Factive_minibuffer_window): Move to minibuf.c.
20125 (Fother_visible_frames_p): New function.
20126
20127 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
20128
f230ecc9
MR
20129 * window.c (decode_window, decode_any_window): Move up in code.
20130 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
20131 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
20132 (Fwindow_buffer): Move up and rewrite doc-string.
20133 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
20134 (Fwindow_prev): New functions.
727e958e
MR
20135 (Fwindow_frame): Move here from frame.c. Accept any window as
20136 argument.
20137 (Fframe_root_window, Fframe_first_window)
20138 (Fframe_selected_window): Move here from frame.c. Accept frame
20139 or arbitrary window as argument. Update doc-strings.
20140 (Fminibuffer_window): Move up in code.
20141 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
20142 (Fset_frame_selected_window): Move here from frame.c.
20143 Marginal rewrite.
727e958e
MR
20144 (Fselected_window, select_window, Fselect_window): Move up in
20145 code. Minor doc-string fixes.
f230ecc9 20146
4d09bcf6
PE
201472011-06-06 Paul Eggert <eggert@cs.ucla.edu>
20148
20149 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
20150 Do not assume that spare memory exists; that assumption is valid
20151 only if SYSTEM_MALLOC.
20152 (LARGE_REQUEST): New macro, so that the issue of large requests
20153 is separated from the issue of spare memory.
20154
810928a2
AS
201552011-06-05 Andreas Schwab <schwab@linux-m68k.org>
20156
172418ad
AS
20157 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
20158 format. (Bug#8806)
20159
43f862f7
AS
20160 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
20161
810928a2
AS
20162 * xfns.c (x_set_scroll_bar_default_width): Move declarations
20163 before statements.
20164
a059fe24
JD
201652011-06-05 Jan Djärv <jan.h.d@swipnet.se>
20166
20167 * gtkutil.c (xg_get_default_scrollbar_width): New function.
20168
20169 * gtkutil.h: Declare xg_get_default_scrollbar_width.
20170
20171 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
20172 min width by calling x_set_scroll_bar_default_width (Bug#8505).
20173
989bf368
JB
201742011-06-05 Juanma Barranquero <lekktu@gmail.com>
20175
20176 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
20177
4b80f674
CY
201782011-06-04 Chong Yidong <cyd@stupidchicken.com>
20179
20180 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
20181 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
20182 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
20183 New error handlers.
4b80f674
CY
20184 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
20185 Obey Vx_select_enable_clipboard_manager. Catch errors in
20186 x_clipboard_manager_save (Bug#8779).
20187 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 20188 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 20189
99a33b77 201902011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
20191
20192 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
20193
99a33b77 201942011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
20195
20196 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
20197 in the current matrix if keep_current_p is non-zero.
20198
8264569d
EZ
201992011-06-04 Eli Zaretskii <eliz@gnu.org>
20200
20201 * bidi.c (bidi_level_of_next_char): Fix last change.
20202
57f97249
EZ
202032011-06-03 Eli Zaretskii <eliz@gnu.org>
20204
fec2107c 20205 Support bidi reordering of text covered by display properties.
57f97249 20206
fec2107c
EZ
20207 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
20208 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
20209 (bidi_cache_search, bidi_cache_iterator_state)
20210 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
20211 (bidi_level_of_next_char, bidi_move_to_visually_next):
20212 Support character positions inside a run of characters covered by a
fec2107c
EZ
20213 display string.
20214 (bidi_paragraph_init, bidi_resolve_explicit_1)
20215 (bidi_level_of_next_char): Call bidi_fetch_char and
20216 bidi_fetch_char_advance instead of FETCH_CHAR and
20217 FETCH_CHAR_ADVANCE.
20218 (bidi_init_it): Initialize new members.
20219 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
20220 definitions.
20221 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
20222 instead of using explicit *_CHAR codes.
d6d100dd
SM
20223 (bidi_resolve_explicit, bidi_resolve_weak):
20224 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
20225 bidirectional text is supported only in multibyte buffers.
20226 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
20227 it to initialize the frame_window_p member of struct bidi_it.
20228 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
20229 (bidi_resolve_explicit, bidi_resolve_weak)
20230 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
20231 bidi_it->nchars is non-positive.
20232 (bidi_level_of_next_char): Don't try to lookup the cache for the
20233 next/previous character if nothing is cached there yet, or if we
20234 were just reseat()'ed to a new position.
c40e2fb2 20235
0e14fe90
EZ
20236 * xdisp.c (set_cursor_from_row): Set start and stop points
20237 according to the row's direction when priming the loop that looks
20238 for the glyph on which to display cursor.
20239 (single_display_spec_intangible_p): Function deleted.
20240 (display_prop_intangible_p): Reimplement to call
20241 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
20242 Accept 3 additional arguments needed by handle_display_spec.
20243 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
20244 values: lists, `(when COND...)' forms, etc.
20245 (single_display_spec_string_p): Support property values that are
20246 lists with the argument STRING its top-level element.
20247 (display_prop_string_p): Fix the condition for processing a
20248 property that is a list to be consistent with handle_display_spec.
fec2107c 20249 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
20250 last portion of handle_display_prop.
20251 (compute_display_string_pos): Accept additional argument
20252 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
20253 value of a `display' property is a "replacing spec".
20254 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
20255 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
20256 the display property, but just return a value indicating whether
20257 the display property will replace the characters it covers.
20258 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
20259 frame_window_p members of struct bidi_it.
d6d100dd
SM
20260 (compute_display_string_pos, compute_display_string_end):
20261 New functions.
fec2107c
EZ
20262 (push_it): Accept second argument POSITION, where pop_it should
20263 jump to continue iteration.
20264 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 20265
fec2107c
EZ
20266 * keyboard.c (adjust_point_for_property): Adjust the call to
20267 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
20268
20269 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
20270 (bidi_init_it): Update prototypes.
20271 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
20272 (compute_display_string_pos, compute_display_string_end):
20273 Declare prototypes.
fec2107c
EZ
20274 (struct bidi_it): New members nchars and disp_pos. ch_len is now
20275 EMACS_INT.
fc6f18ce 20276
40087514 202772011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 20278
57f53182
PE
20279 Malloc failure behavior now depends on size of allocation.
20280 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
20281 * lisp.h: Change signatures accordingly.
20282 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
20283 All callers changed. (Bug#8762)
20284
20285 * gnutls.c: Use Emacs's memory allocators.
20286 Without this change, the gnutls library would invoke malloc etc.
20287 directly, which causes problems on non-SYNC_INPUT hosts, and which
20288 runs afoul of improving memory_full behavior. (Bug#8761)
20289 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
20290 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
20291 xfree instead of the default malloc, realloc, free.
20292 (Fgnutls_boot): No need to check for memory allocation failure,
20293 since xmalloc does that for us.
20294
ac32cd99 20295 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
20296 * category.c (hash_get_category_set):
20297 * ccl.c (ccl_driver):
20298 * charset.c (Fdefine_charset_internal):
20299 * charset.h (struct charset.hash_index):
20300 * composite.c (get_composition_id, gstring_lookup_cache)
20301 (composition_gstring_put_cache):
20302 * composite.h (struct composition.hash_index):
20303 * dispextern.h (struct image.hash):
20304 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
20305 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
20306 (hashfn_equal, hashfn_user_defined, make_hash_table)
20307 (maybe_resize_hash_table, hash_lookup, hash_put)
20308 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
20309 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
20310 (Fsxhash, Fgethash, Fputhash, Fmaphash):
20311 * image.c (make_image, search_image_cache, lookup_image)
20312 (xpm_put_color_table_h):
20313 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 20314 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 20315 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 20316 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
20317 * alloc.c (allocate_vectorlike):
20318 Check for overflow in vector size calculations.
20319 * ccl.c (ccl_driver):
20320 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
20321 * fns.c, image.c: Remove unnecessary static decls that would otherwise
20322 need to be updated by these changes.
40087514
PE
20323 * fns.c (make_hash_table, maybe_resize_hash_table):
20324 Check for integer overflow with large hash tables.
0de4bb68
PE
20325 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
20326 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
20327 (SXHASH_REDUCE): New macro.
20328 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
20329 Use it instead of discarding useful hash info with large hash values.
20330 (sxhash_float): New function.
20331 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
20332 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
20333 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
20334 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
20335 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
20336 Adjust signatures to match updated version of code.
20337 (consing_since_gc): Now EMACS_INT, since a single hash table can
20338 use more than INT_MAX bytes.
20339
698d32e2
DN
203402011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
20341
20342 Make it possible to build with GCC-4.6+ -O2 -flto.
20343
20344 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
20345
fd6fa53f
SM
203462011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
20347
20348 * minibuf.c (get_minibuffer, read_minibuf_unwind):
20349 Call minibuffer-inactive-mode.
20350
864db017
JB
203512011-05-31 Juanma Barranquero <lekktu@gmail.com>
20352
20353 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
20354 Update dependencies.
20355
2ad0baf4
DN
203562011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20357
20358 * data.c (init_data): Remove code for UTS, this system is not
20359 supported anymore.
20360
4fcc2638
DN
203612011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20362
20363 Don't force ./temacs to start in terminal mode.
20364
20365 * frame.c (make_initial_frame): Initialize faces in all cases, not
20366 only when CANNOT_DUMP is defined.
20367 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
20368
c56e0fd5
DN
203692011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20370
20371 * dispnew.c (add_window_display_history): Use const for the string
20372 pointer. Remove declaration, not needed.
20373
333d54da 203742011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 20375
55d4c1b2 20376 Use 'inline', not 'INLINE'.
333d54da 20377 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
20378 * alloc.c, fontset.c (INLINE): Remove.
20379 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
20380 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
20381 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
20382 * gmalloc.c (register_heapinfo): Use inline unconditionally.
20383 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
20384
738db178
DN
203852011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20386
20387 Make it possible to run ./temacs.
20388
20389 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
20390 syms_of_callproc does the same thing. Remove test for
20391 "initialized", do it in the caller.
20392 * emacs.c (main): Avoid calling set_initial_environment when dumping.
20393
620c53a6
SM
203942011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
20395
20396 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
20397 (read_minibuf): Use get_minibuffer.
20398 (syms_of_minibuf): Use DEFSYM.
20399 (Qmetadata): New var.
20400 * data.c (Qbuffer): Don't make it static.
20401 (syms_of_data): Use DEFSYM.
20402
e003a292
PE
204032011-05-31 Paul Eggert <eggert@cs.ucla.edu>
20404
20405 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
20406 (CCL_CODE_MIN): New macro.
20407
ed008a6d
PE
204082011-05-30 Paul Eggert <eggert@cs.ucla.edu>
20409
3687c2ef
PE
20410 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
20411
ed008a6d
PE
20412 * eval.c (Qdebug): Now static.
20413 * lisp.h (Qdebug): Remove decl. This reverts a part of the
20414 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
20415 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
20416
d66c4c7c
CY
204172011-05-29 Chong Yidong <cyd@stupidchicken.com>
20418
20419 * image.c: Various fixes to ImageMagick code comments.
20420 (Fimagemagick_types): Doc fix.
20421
5fbc2025
PE
204222011-05-29 Paul Eggert <eggert@cs.ucla.edu>
20423
0196f88a
PE
20424 Minor fixes prompted by GCC 4.6.0 warnings.
20425
20426 * xselect.c (converted_selections, conversion_fail_tag): Now static.
20427
5fbc2025
PE
20428 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
20429 (x_clipboard_manager_save_all): Move extern decl to ...
20430 * xterm.h: ... here, so that it can be checked for consistency.
20431
1dd3c2d9
CY
204322011-05-29 Chong Yidong <cyd@stupidchicken.com>
20433
20434 * xselect.c (x_clipboard_manager_save_frame)
20435 (x_clipboard_manager_save_all): New functions.
20436 (Fx_clipboard_manager_save): Lisp function deleted.
20437
20438 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
20439 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
20440
20441 * xterm.h: Update prototype.
20442
5ba6571d
WX
204432011-05-28 William Xu <william.xwl@gmail.com>
20444
20445 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
20446 exiting (Bug#8239).
20447
3eaff834
JM
204482011-05-28 Jim Meyering <meyering@redhat.com>
20449
e1900994 20450 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
20451 * fns.c (to_uchar): Define.
20452 (crypto_hash_function): Use it to convert some newly-signed
20453 variables to unsigned, to avoid sign-extension bugs. For example,
20454 without this change, (md5 "truc") would evaluate to
20455 45723a2aff78ff4fff7fff1114760e62 rather than the expected
20456 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 20457 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 20458
0f6990a7
PE
204592011-05-27 Paul Eggert <eggert@cs.ucla.edu>
20460
20461 Integer overflow fixes.
c8a9ca5a 20462
08686060
PE
20463 * dbusbind.c: Serial number integer overflow fixes.
20464 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
20465 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
20466 to hold a serial number that is too large for a fixnum.
20467 (Fdbus_method_return_internal, Fdbus_method_error_internal):
20468 Check for serial numbers out of range. Decode any serial number
59568bf0 20469 that was so large that it became a float. (Bug#8722)
08686060 20470
2d1fc3c7
PE
20471 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
20472 (Fdbus_call_method, Fdbus_call_method_asynchronously):
20473 Use XFASTINT rather than XUINT when numbers are nonnegative.
20474 (xd_append_arg, Fdbus_method_return_internal):
20475 (Fdbus_method_error_internal): Likewise. Also, for unsigned
20476 arguments, check that Lisp number is nonnegative, rather than
59568bf0 20477 silently wrapping negative numbers around. (Bug#8722)
30217ff0 20478 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 20479 (Bug#8722)
2d1fc3c7 20480
c8a9ca5a
PE
20481 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
20482
519e1d69
PE
20483 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
20484
6df6ae42 20485 ccl: Add integer overflow checks.
30569699
PE
20486 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
20487 (IN_INT_RANGE): New macros.
20488 (ccl_driver): Use them to check for integer overflow when
20489 decoding a CCL program. Many of the new checks are whether XINT (x)
20490 fits in int; it doesn't always, on 64-bit hosts. The new version
20491 doesn't catch all possible integer overflows, but it's an
847044ea 20492 improvement. (Bug#8719)
30569699 20493
c11285dc
PE
20494 * alloc.c (make_event_array): Use XINT, not XUINT.
20495 There's no need for unsigned here.
20496
fdccd48e
PE
20497 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
20498 This follows up to the 2011-05-06 change that substituted uintptr_t
20499 for EMACS_INT. This case wasn't caught back then.
20500
37910ab2
PE
20501 Rework Fformat to avoid integer overflow issues.
20502 * editfns.c: Include <float.h> unconditionally, as it's everywhere
20503 now (part of C89). Include <verify.h>.
20504 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
20505 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
20506 (Fformat): Avoid the prepass trying to compute sizes; it was only
20507 approximate and thus did not catch overflow reliably. Instead, walk
20508 through the format just once, formatting and computing sizes as we go,
20509 checking for integer overflow at every step, and allocating a larger
20510 buffer as needed. Keep track separately whether the format is
20511 multibyte. Keep only the most-recently calculated precision, rather
20512 than them all. Record whether each argument has been converted to
20513 string. Use EMACS_INT, not int, for byte and char and arg counts.
20514 Support field widths and precisions larger than INT_MAX. Avoid
20515 sprintf's undefined behavior with conversion specifications such as %#d
20516 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
20517 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
20518 formatting out-of-range floating point numbers with int
9173deec 20519 formats. (Bug#8668)
37910ab2 20520
2e6578fb
PE
20521 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
20522
0ae6bdee
PE
20523 * data.c: Avoid integer truncation in expressions involving floats.
20524 * data.c: Include <intprops.h>.
20525 (arith_driver): When there's an integer overflow in an expression
20526 involving floating point, convert the integers to floating point
20527 so that the resulting value does not suffer from catastrophic
20528 integer truncation. For example, on a 64-bit host (* 4
20529 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
20530 Do not rely on undefined behavior after integer overflow.
20531
de883a70
PE
20532 merge count_size_as_multibyte, parse_str_to_multibyte
20533 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 20534 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
20535 Check for integer overflow.
20536 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
20537 since it's now a duplicate of the other. This is more of
20538 a character than a buffer op, so better that it's in character.c.
20539 * fns.c, print.c: Adjust to above changes.
20540
2ff916cb
PE
205412011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
20542
20543 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
20544
f1b54466
PE
205452011-05-27 Paul Eggert <eggert@cs.ucla.edu>
20546
fb1ac845
PE
20547 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
20548 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
20549 (x_clipboard_manager_save): Now static.
20550 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
20551
f1b54466
PE
20552 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
20553 (crypto_hash_function): Now static.
20554 Fix pointer signedness problems. Avoid unnecessary initializations.
20555
a9f737ee
CY
205562011-05-27 Chong Yidong <cyd@stupidchicken.com>
20557
20558 * termhooks.h (Vselection_alist): Make it terminal-local.
20559
20560 * terminal.c (create_terminal): Initialize it.
20561
20562 * xselect.c: Support for clipboard managers.
20563 (Vselection_alist): Move to termhooks.h as terminal-local var.
20564 (LOCAL_SELECTION): New macro.
20565 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
20566 (symbol_to_x_atom): Remove gratuitous arg.
20567 (x_handle_selection_request, lisp_data_to_selection_data)
20568 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
20569 (x_own_selection, x_get_local_selection, x_convert_selection):
20570 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
20571 (some_frame_on_display): Delete unused function.
20572 (Fx_own_selection_internal, Fx_get_selection_internal)
20573 (Fx_disown_selection_internal, Fx_selection_owner_p)
20574 (Fx_selection_exists_p): New optional frame arg.
20575 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
20576 (x_handle_selection_clear): Don't treat other terminals with the
20577 same keyboard specially. Use the terminal-local Vselection_alist.
20578 (x_clear_frame_selections): Use Frun_hook_with_args.
20579
20580 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
20581
20582 * xterm.h: Add support for those atoms.
20583
e067f0c1
CY
205842011-05-26 Chong Yidong <cyd@stupidchicken.com>
20585
20586 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
20587 (converted_selections, conversion_fail_tag): New global variables.
20588 (x_selection_request_lisp_error): Free the above.
20589 (x_get_local_selection): Remove unnecessary code.
20590 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
20591 of converted selections stored in converted_selections.
20592 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
20593 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
20594 (x_convert_selection): New function.
20595 (x_handle_selection_event): Simplify.
20596 (x_get_foreign_selection): Don't ignore incoming requests while
20597 waiting for an answer; this will fail when we implement
20598 SAVE_TARGETS, and seems unnecessary anyway.
20599 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
20600 (Vx_sent_selection_functions): Doc fix.
20601
0f4aebc0
LL
206022011-05-26 Leo Liu <sdl.web@gmail.com>
20603
20604 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
20605
e61124cd
YM
206062011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20607
20608 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
20609
20610 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
20611 for fringe update if it has periodic bitmap.
ac389d0c 20612 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
20613 and fringe_bitmap_periodic_p.
20614
20615 * fringe.c (get_fringe_bitmap_data): New function.
20616 (draw_fringe_bitmap_1, update_window_fringes): Use it.
20617 (update_window_fringes): Record periodicity of fringe bitmap in glyph
20618 row. Mark glyph row for fringe update if periodicity changed.
20619
20620 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
20621 for fringe update unless it has periodic bitmap.
20622
f16d9837
KH
206232011-05-25 Kenichi Handa <handa@m17n.org>
20624
20625 * xdisp.c (get_next_display_element): Set correct it->face_id for
20626 a static composition.
20627
e1b90ef6
LL
206282011-05-24 Leo Liu <sdl.web@gmail.com>
20629
20630 * deps.mk (fns.o):
20631 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
20632
20633 * fns.c (crypto_hash_function, Fsha1): New function.
20634 (Fmd5): Use crypto_hash_function.
20635 (syms_of_fns): Add Ssha1.
20636
7400048f
PE
206372011-05-22 Paul Eggert <eggert@cs.ucla.edu>
20638
20639 * gnutls.c: Remove unused macros.
20640 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
20641 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
20642 Remove macros that are defined and never used.
20643 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
20644
abb71cf4
CY
206452011-05-22 Chong Yidong <cyd@stupidchicken.com>
20646
20647 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
20648 (Fx_get_selection_internal): Minor cleanup.
20649 (Fx_own_selection_internal): Rename arguments for consistency with
20650 select.el.
20651
6307db39
PE
206522011-05-22 Paul Eggert <eggert@cs.ucla.edu>
20653
20654 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
20655
f3d4e0a4
CY
206562011-05-22 Chong Yidong <cyd@stupidchicken.com>
20657
20658 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
20659
4d8ade89
YM
206602011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20661
20662 * dispnew.c (scrolling_window): Don't exclude the case that the
20663 last enabled row in the desired matrix touches the bottom boundary.
20664
32078c8d
GM
206652011-05-21 Glenn Morris <rgm@gnu.org>
20666
20667 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
20668 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
20669 and add some more files.
32078c8d 20670
7285dc67
EZ
206712011-05-20 Eli Zaretskii <eliz@gnu.org>
20672
20673 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
20674 report_file_error introduced by the change from 2011-05-07.
20675
89d1bd22
PE
206762011-05-20 Paul Eggert <eggert@cs.ucla.edu>
20677
20678 * systime.h (Time): Define only if emacs is defined.
20679 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
20680 where the include path doesn't have X11/X.h by default. See
20681 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
20682
cd394be1 206832011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
20684
20685 * composite.c (find_automatic_composition): Fix previous change.
20686
b9704ad9
GM
206872011-05-20 Glenn Morris <rgm@gnu.org>
20688
20689 * lisp.mk: New file, split from Makefile.in.
20690 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
20691 (shortlisp): Remove.
20692 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
20693
4a720484
GM
206942011-05-19 Glenn Morris <rgm@gnu.org>
20695
20696 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
20697 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
20698 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
20699 (lisp): Set the order to that of loadup.el.
20700 (shortlisp): Make it a copy of $lisp.
20701 (SOME_MACHINE_LISP): Remove.
20702 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
20703 Use just $shortlisp, not $SOME_MACHINE_LISP too.
20704
a28d4396
KH
207052011-05-18 Kenichi Handa <handa@m17n.org>
20706
20707 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
20708 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
20709 (find_automatic_composition): Mostly rewrite for efficiency.
20710
a2b1fa8e
JB
207112011-05-18 Juanma Barranquero <lekktu@gmail.com>
20712
20713 * makefile.w32-in: Update dependencies.
20714
8e1f5610
CS
207152011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
20716
20717 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 20718 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 20719
7025ee00 207202011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 20721
cdfa6eab
PE
20722 Fix some integer overflow issues, such as string length overflow.
20723
06d6db33
PE
20724 * insdel.c (count_size_as_multibyte): Check for string overflow.
20725
2b4560a8
PE
20726 * character.c (lisp_string_width): Check for string overflow.
20727 Use EMACS_INT, not int, for string indexes and lengths; in
20728 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
20729 the resulting string length overflows an EMACS_INT; instead,
20730 report a string overflow if no precision given. When checking for
20731 precision exhaustion, use a check that cannot possibly have
20732 integer overflow. (Bug#8675)
20733 * character.h (lisp_string_width): Adjust to new signature.
20734
cb93f9be
PE
20735 * alloc.c (string_overflow): New function.
20736 (Fmake_string): Use it. This doesn't change behavior, but saves
20737 a few bytes and will simplify future changes.
20738 * character.c (string_escape_byte8): Likewise.
20739 * lisp.h (string_overflow): New decl.
20740
1a1f3366
PE
20741 Fixups, following up to the user-interface timestamp change.
20742 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
20743 for UI timestamps, instead of unsigned long.
9fbd6841
PE
20744 * msdos.c (mouse_get_pos): Likewise.
20745 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
20746 * w32gui.h (Time): Define by including "systime.h" rather than by
20747 declaring it ourselves. (Bug#8664)
20748
d4e3e4d3
PE
20749 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
20750 * image.c (clear_image_cache): Likewise.
20751
f6a24d19
PE
20752 * term.c (term_mouse_position): Don't assume time_t wraparound.
20753
08dc5ae6
PE
20754 Be more systematic about user-interface timestamps.
20755 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
20756 and sometimes 'EMACS_UINT', to represent these timestamps.
20757 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
20758 This makes the code easier to follow, and makes it easier to catch
20759 integer overflow bugs such as Bug#8664.
20760 * frame.c (Fmouse_position, Fmouse_pixel_position):
20761 Use Time, not unsigned long, for user-interface timestamps.
20762 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
20763 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
20764 * keyboard.h (last_event_timestamp): Likewise.
20765 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
20766 * menu.h (xmenu_show): Likewise.
20767 * term.c (term_mouse_position): Likewise.
20768 * termhooks.h (struct input_event.timestamp): Likewise.
20769 (struct terminal.mouse_position_hook): Likewise.
20770 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
20771 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
20772 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
20773 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
20774 what it was before.
20775 * menu.h, termhooks.h: Include "systime.h", for Time.
20776
8e55734a
PE
20777 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
20778 Don't assume that the difference between two unsigned long values
20779 can fit into an integer. At this point, we know button_down_time
20780 <= event->timestamp, so the difference must be nonnegative, so
20781 there's no need to cast the result if double-click-time is
20782 nonnegative, as it should be; check that it's nonnegative, just in
20783 case. This bug is triggered when events are more than 2**31 ms
86db42d2 20784 apart (about 25 days). (Bug#8664)
8e55734a 20785
841f1b75 20786 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 20787 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 20788
3e26f69c
PE
20789 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
20790 that always fit in int. Use a sentinel instead of a counter, to
20791 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
20792 * frame.h (struct frame): Use int for menu_bar_items_used
20793 instead of EMACS_INT, since it always fits in int.
3e26f69c 20794
5cc152c0
PE
20795 * menu.c (grow_menu_items): Check for int overflow.
20796
d89eb65e
PE
20797 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
20798
5235bd3e
PE
20799 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
20800 Before, the code was not consistent. These values cannot exceed
20801 2**31 - 1 so there's no need to make them unsigned.
20802 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
20803 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
20804 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
20805 as modifiers.
20806 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
20807
bc827e23
PE
20808 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
20809 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
20810 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
20811 presumably because the widths might not match.
20812
78eb494e
PE
20813 * window.c (size_window): Avoid needless test at loop start.
20814
04f2d78b
CB
208152011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
20816
20817 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
20818
d2fc7e3d 208192011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
20820
20821 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
20822
d2fc7e3d 208232011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
20824
20825 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
20826 `width' to `bar_area_x' and `bar_area_width', respectively.
20827 (x_scroll_run): Take account of fringe background extension.
20828
04f2d78b
CB
20829 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
20830 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
20831 `bar_area_width', respectively.
20832 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
20833 background extension.
20834
79b70037
GM
208352011-05-10 Jim Meyering <meyering@redhat.com>
20836
20837 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
20838
2f142cc5
JB
208392011-05-10 Juanma Barranquero <lekktu@gmail.com>
20840
20841 * image.c (Finit_image_library): Return t for built-in image types,
20842 like pbm and xbm. (Bug#8640)
20843
57679c86
AS
208442011-05-09 Andreas Schwab <schwab@linux-m68k.org>
20845
20846 * w32menu.c (set_frame_menubar): Fix submenu allocation.
20847
888c9e86
EZ
208482011-05-07 Eli Zaretskii <eliz@gnu.org>
20849
b0512a1d
EZ
20850 * w32console.c (Fset_screen_color): Doc fix.
20851 (Fget_screen_color): New function.
20852 (syms_of_ntterm): Defsubr it.
20853
7285dc67
EZ
20854 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
20855 unlink the temporary file if Fcall_process didn't create it in the
20856 first place.
20857 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
20858 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
20859 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
20860 cue to call_process_cleanup not to close that handle.
20861
4d3fcc8e
BK
208622011-05-07 Ben Key <bkey76@gmail.com>
20863
20864 * makefile.w32-in: The bootstrap-temacs rule now makes use of
20865 one of two shell specific rules, either bootstrap-temacs-CMD or
20866 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
20867 to the previous implementation of the bootstrap-temacs rule.
20868 The bootstrap-temacs-CMD rule is similar to the previous
20869 implementation of the bootstrap-temacs rule except that it
20870 makes use of the ESC_CFLAGS variable instead of the CFLAGS
20871 variable.
20872
20873 These changes, along with some changes to nt/configure.bat,
20874 nt/gmake.defs, and nt/nmake.defs, are required to extend my
20875 earlier fix to add support for --cflags and --ldflags options
20876 that include quotes so that it works whether make uses cmd or
20877 sh as the shell.
20878
b4289b64
MA
208792011-05-06 Michael Albinus <michael.albinus@gmx.de>
20880
20881 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
20882 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
20883 is a constant.
20884 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
20885 a string. Handle both cases.
20886 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
20887 (Fdbus_register_method): Use Qinvalid_function.
20888
af4c0e28
JB
208892011-05-06 Juanma Barranquero <lekktu@gmail.com>
20890
20891 * makefile.w32-in: Update dependencies.
20892 (LISP_H): Add inttypes.h and stdin.h.
20893 (PROCESS_H): Add unistd.h.
20894
c51453d9
EZ
208952011-05-06 Eli Zaretskii <eliz@gnu.org>
20896
20897 * lread.c: Include limits.h (fixes the MS-Windows build broken by
20898 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
20899
8ff0ac3c 209002011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 20901
4c4b566b
PE
20902 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
20903
aab2b9b5
PE
20904 * term.c (vfatal): Remove stray call to va_end.
20905 It's not needed and the C Standard doesn't allow it here anyway.
20906
c378da0b
PE
20907 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
20908 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
20909
288b08c7
PE
20910 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
20911 bytes.
20912
e3601888
PE
20913 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
20914
db6c0e74
PE
20915 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
20916
dd5963ea
PE
20917 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
20918
88c9450f
PE
20919 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
20920
2f9442b8
PE
20921 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
20922
c032b5f8
PE
20923 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
20924 * charset.c (Fdefine_charset_internal): Don't initialize
20925 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 20926 32-bit int (Bug#8600).
a108c10b
PE
20927
20928 * lread.c (read_integer): Be more consistent with string-to-number.
20929 Use string_to_number to do the actual conversion; this avoids
20930 rounding errors and fixes some other screwups. Without this fix,
20931 for example, #x1fffffffffffffff was misread as -2305843009213693952.
20932 (digit_to_number): Move earlier, for benefit of read_integer.
20933 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 20934 not a digit in any supported base. (Bug#8602)
a108c10b 20935
ad5f9eea
PE
20936 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
20937
aec1708a
PE
20938 * dispnew.c (scrolling_window): Return 1 if we scrolled,
20939 to match comment at start of function. This also removes a
20940 GCC warning about overflow in a 32+64-bit port.
20941
47be4ab5
PE
20942 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
20943
371cac43
PE
20944 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
20945 Reported by Stefan Monnier in
20946 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
20947 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
20948 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 20949
d01a7826
PE
20950 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
20951 (EMACS_UINTPTR): Likewise, with uintptr_t.
20952
7fd47d5c
PE
20953 * lisp.h: Prefer 64-bit EMACS_INT if available.
20954 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
20955 on 32-bit hosts that have 64-bit int, so that they can access
20956 large files.
122b0c86
PE
20957 However, temporarily disable this change unless the temporary
20958 symbol WIDE_EMACS_INT is defined.
7fd47d5c 20959
8727937b
PE
20960 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
20961
8ac068ac
PE
20962 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
20963 This removes an assumption that EMACS_INT and long are the same
20964 width as pointers. The assumption is true for Emacs porting targets
20965 now, but we want to make other targets possible.
20966 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
20967 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
20968 In the rest of the code, change types of integers that hold casted
20969 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
20970 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
20971 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
20972 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
20973 No need to cast type when ORing.
20974 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
20975 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
20976 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
20977 assume EMACS_INT is the same width as char *.
20978 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
20979 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
20980 Remove no-longer-needed casts.
20981 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
20982 (xg_tool_bar_help_callback, xg_make_tool_item):
20983 Use EMACS_INTPTR to hold an integer
20984 that will be cast to void *; this can avoid a GCC warning
20985 if EMACS_INT is not the same width as void *.
20986 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
20987 * xdisp.c (display_echo_area_1, resize_mini_window_1):
20988 (current_message_1, set_message_1):
20989 Use a local to convert to proper width without a cast.
20990 * xmenu.c (dialog_selection_callback): Likewise.
20991
ede49d71
PE
20992 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
20993 Also, don't assume VALBITS / RAND_BITS is less than 5,
20994 and don't rely on undefined behavior when shifting a 1 left into
20995 the sign bit.
20996 * lisp.h (get_random): Change signature to match.
20997
2f30ecd0
PE
20998 * lread.c (hash_string): Use size_t, not int, for hash computation.
20999 Normally we prefer signed values; but hashing is special, because
21000 it's better to use unsigned division on hash table sizes so that
21001 the remainder is nonnegative. Also, size_t is the natural width
21002 for hashing into memory. The previous code used 'int', which doesn't
21003 retain enough info to hash well into very large tables.
21004 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
21005
2a866e7b
PE
21006 * dbusbind.c: Don't possibly lose pointer info when converting.
21007 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
21008 Use XPNTR rather than XHASH, so that the high-order bits of
21009 the pointer aren't lost when converting through void *.
21010
51639eac
PE
21011 * eval.c (Fautoload): Don't double-shift a pointer.
21012
92394119
PE
21013 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
21014
dbdb9a7c
JB
210152011-05-06 Juanma Barranquero <lekktu@gmail.com>
21016
21017 * gnutls.c (DEF_GNUTLS_FN):
21018 * image.c (DEF_IMGLIB_FN): Make function pointers static.
21019
db7a0b4f
AS
210202011-05-05 Andreas Schwab <schwab@linux-m68k.org>
21021
21022 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
21023 marker. (Bug#8610)
21024
cd394be1 210252011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
21026
21027 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
21028 New version that can reserve upto 2GB of heap space.
21029
f7ff1b0f 210302011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
21031
21032 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
21033
639c109b
TZ
210342011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
21035
21036 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
21037 `gnutls_certificate_set_x509_key_file'.
21038
d2127135
JB
210392011-05-05 Juanma Barranquero <lekktu@gmail.com>
21040
21041 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
21042 Update dependencies.
21043
e968f4f3
JB
210442011-05-04 Juanma Barranquero <lekktu@gmail.com>
21045
21046 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
21047 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
21048 Remove unused parameter `fildes'.
21049 * process.c (read_process_output, send_process): Don't pass it.
21050
84d358f0
JB
210512011-05-04 Juanma Barranquero <lekktu@gmail.com>
21052
21053 Fix previous change: the library cache is defined in w32.c.
21054 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
21055 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
21056
0898ca10
JB
210572011-05-04 Juanma Barranquero <lekktu@gmail.com>
21058
21059 Implement dynamic loading of GnuTLS on Windows.
21060
21061 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
21062 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
21063 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
21064 Declare.
21065
21066 * gnutls.c (Qgnutls_dll): Define.
21067 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
21068 (gnutls_*): Declare function pointers.
21069 (init_gnutls_functions): New function to initialize function pointers.
21070 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
21071 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
21072 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
21073 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
21074 (emacs_gnutls_write, emacs_gnutls_read)
21075 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
21076 (Fgnutls_available_p): New function.
21077 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
21078 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
21079 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
21080
21081 * image.c: Include w32.h.
21082 (Vimage_type_cache): Delete.
21083 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
21084 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
21085 (w32_delayed_load): Move to w32.c.
21086
21087 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
21088
21089 * w32.c (QCloaded_from, Vlibrary_cache): Define.
21090 (w32_delayed_load): Move from image.c. When loading a library, record
21091 its filename in the :loaded-from property of the library id.
21092 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
21093 Initialize and staticpro them.
21094 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
21095
21096 * process.c: Include lisp.h before w32.h, not after.
21097 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
21098 instead of gnutls_record_check_pending.
21099
21100 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
21101
ff4de4aa
TZ
211022011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
21103
21104 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
21105 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
21106 as passed in.
21107
abe95abb
JD
211082011-05-03 Jan Djärv <jan.h.d@swipnet.se>
21109
21110 * xterm.c (x_set_frame_alpha): Do not set property on anything
21111 else than FRAME_X_OUTER_WINDOW (Bug#8608).
21112
e16e55d4
JB
211132011-05-02 Juanma Barranquero <lekktu@gmail.com>
21114
21115 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
21116
bafcf6a5
JB
211172011-05-02 Juanma Barranquero <lekktu@gmail.com>
21118
21119 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
21120 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
21121 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
21122 (gnutls_global_initialized, Qgnutls_bootprop_priority)
21123 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
21124 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
21125 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
21126 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
21127 (Qgnutls_bootprop_callbacks_verify): Make static.
21128
e7a6747f
AS
211292011-05-01 Andreas Schwab <schwab@linux-m68k.org>
21130
19ed11ba
AS
21131 * callproc.c: Indentation fixup.
21132
e7a6747f 21133 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
21134 (wait_for_termination, interruptible_wait_for_termination):
21135 Move after wait_for_termination_1.
e7a6747f 21136
1ef14cb4
LMI
211372011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
21138
21139 * sysdep.c (interruptible_wait_for_termination): New function
21140 which is like wait_for_termination, but allows keyboard
21141 interruptions.
21142
21143 * callproc.c (Fcall_process): Add (:file "file") as an option for
21144 the STDOUT buffer.
21145 (Fcall_process_region): Ditto.
21146
330d880c
EZ
211472011-04-30 Eli Zaretskii <eliz@gnu.org>
21148
8db90b73
EZ
21149 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
21150 rather than `XVECTOR (FOO)->size'.
21151
330d880c
EZ
21152 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
21153 inttypes.h, as a gnulib replacement is used if it not available in
21154 system headers.
21155
15cbd324
EZ
211562011-04-21 Eli Zaretskii <eliz@gnu.org>
21157
21158 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
21159 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
21160 of MOST_POSITIVE_FIXNUM. (Bug#8528)
21161
21162 * coding.c (coding_alloc_by_realloc): Error out if destination
21163 will grow beyond MOST_POSITIVE_FIXNUM.
21164 (decode_coding_emacs_mule): Abort if there isn't enough place in
21165 charbuf for the composition carryover bytes. Reserve an extra
21166 space for up to 2 characters produced in a loop.
21167 (decode_coding_iso_2022): Abort if there isn't enough place in
21168 charbuf for the composition carryover bytes.
21169
211702011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 21171
ae940cca
EZ
21172 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
21173 aborting when %lld or %lll format is passed.
21174 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
21175 %llo or %llx format is passed. (Bug#8545)
21176
03ab8921
EZ
21177 * window.c (window_scroll_line_based): Use a marker instead of
21178 simple variables to record original value of point. (Bug#7952)
21179
afda1437
EZ
21180 * doprnt.c (doprnt): Fix the case where a multibyte sequence
21181 produced by %s or %c overflows available buffer space. (Bug#8545)
21182
f76dee0c
PE
211832011-04-28 Paul Eggert <eggert@cs.ucla.edu>
21184
21185 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 21186 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 21187
fdc5744d
JB
211882011-04-28 Juanma Barranquero <lekktu@gmail.com>
21189
21190 * w32.c (init_environment): Warn about defaulting HOME to C:\.
21191
638f053a
JB
211922011-04-28 Juanma Barranquero <lekktu@gmail.com>
21193
21194 * keyboard.c (Qdelayed_warnings_hook): Define.
21195 (command_loop_1): Run `delayed-warnings-hook'
21196 if Vdelayed_warnings_list is non-nil.
21197 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
21198 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
21199
d178f871
EZ
212002011-04-28 Eli Zaretskii <eliz@gnu.org>
21201
21202 * doprnt.c (doprnt): Don't return value smaller than the buffer
21203 size if the message was truncated. (Bug#8545).
21204
b124fd93
JB
212052011-04-28 Juanma Barranquero <lekktu@gmail.com>
21206
21207 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
21208 (Fx_window_property): #if-0 the whole functions, not just the bodies.
21209
e810457d
PE
212102011-04-27 Paul Eggert <eggert@cs.ucla.edu>
21211
21212 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
21213
ea51cceb
JB
212142011-04-27 Juanma Barranquero <lekktu@gmail.com>
21215
21216 * makefile.w32-in: Update dependencies.
21217
94dcfacf
EZ
212182011-04-27 Eli Zaretskii <eliz@gnu.org>
21219
21220 Improve `doprnt' and its usage. (Bug#8545)
21221 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
21222 `format_end'. Remove support for %l as a conversion specifier.
21223 Don't use xrealloc. Improve diagnostics when the %l size modifier
21224 is used. Update the commentary.
21225
21226 * eval.c (verror): Simplify calculation of size_t.
21227
21228 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
21229 messages.
21230
f61f41d7
PE
212312011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
21232
21233 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
21234 change.
21235
96fb4434
PE
212362011-04-27 Paul Eggert <eggert@cs.ucla.edu>
21237
21238 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
21239 This makes this file independent of the recent pseudovector change.
21240
671875da 212412011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 21242
69e9b5a3
PE
21243 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
21244
b5f869a7 21245 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 21246 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 21247 Remove unused local.
c8926152 21248 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 21249
841a1577 21250 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
21251 GCC 4.6.0 optimizes based on type-based alias analysis.
21252 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
21253 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
21254 != &v->size, and therefore "v->size = 1; b->size = 2; return
21255 v->size;" must therefore return 1. This assumption is incorrect
21256 for Emacs, since it type-puns struct Lisp_Vector * with many other
21257 types. To fix this problem, this patch adds a new type struct
f904488f 21258 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
21259 and pseudovectors, and helps optimizing compilers not get fooled
21260 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
21261 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
21262 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
21263 the size member.
eab3844f
PE
21264 (XSETPVECTYPE): Rewrite in terms of new macro.
21265 (XSETPVECTYPESIZE): New macro, specifying both type and size.
21266 This is a bit clearer, and further avoids the possibility of
21267 undesirable aliasing.
21268 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 21269 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
21270 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
21271 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
21272 (ASIZE): Now uses header.size rather than size.
21273 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
21274 to avoid the hassle of writing XVECTOR (foo)->header.size.
21275 (struct vectorlike_header): New type.
eab3844f
PE
21276 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
21277 object, to help avoid aliasing.
21278 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
21279 (SUBRP): Likewise, since Lisp_Subr is a special case.
21280 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
21281 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
21282 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 21283 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
21284 changed to be "header.size" and "header.next".
21285 * buffer.h (struct buffer): Likewise.
21286 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
21287 * frame.h (struct frame): Likewise.
21288 * process.h (struct Lisp_Process): Likewise.
21289 * termhooks.h (struct terminal): Likewise.
21290 * window.c (struct save_window_data, struct saved_window): Likewise.
21291 * window.h (struct window): Likewise.
21292 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
21293 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
21294 * buffer.c (init_buffer_once): Likewise.
21295 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
21296 special case.
21297 * process.c (Fformat_network_address): Use local var for size,
21298 for brevity.
21299
0df1eac5
PE
21300 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
21301
847ab9d1 21302 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
21303 * data.c (atof): Remove decl; no longer used or needed.
21304 (digit_to_number): Move to lread.c.
21305 (Fstring_to_number): Use new string_to_number function, to be
21306 consistent with how the Lisp reader treats infinities and NaNs.
21307 Do not assume that floating-point numbers represent EMACS_INT
21308 without losing information; this is not true on most 64-bit hosts.
21309 Avoid double-rounding errors, by insisting on integers when
21310 parsing non-base-10 numbers, as the documentation specifies.
21311 * lisp.h (string_to_number): New decl, replacing ...
21312 (isfloat_string): Remove.
bc0a5c13 21313 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 21314 (read1): Do not accept +. and -. as integers; this
452f4150
PE
21315 appears to have been a coding error. Similarly, do not accept
21316 strings like +-1e0 as floating point numbers. Do not report
21317 overflow for integer overflows unless the base is not 10 which
21318 means we have no simple and reliable way to continue.
21319 Break out the floating-point parsing into a new
21320 function string_to_number, so that Fstring_to_number parses
21321 floating point numbers consistently with the Lisp reader.
04f2d78b 21322 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
21323 (E_CHAR, EXP_INT): Remove, replacing with ...
21324 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
21325 (string_to_number): New function, replacing isfloat_string.
21326 This function checks for valid syntax and produces the resulting
21327 Lisp float number too. Rework it so that string-to-number
bc0a5c13 21328 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
21329 so that overflow for non-base-10 numbers is reported only when
21330 there's no portable and simple way to convert to floating point.
452f4150 21331
67769ffc
PE
21332 * textprop.c (set_text_properties_1): Rewrite for clarity,
21333 and to avoid GCC warning about integer overflow.
21334
c20db43f
PE
21335 * intervals.h (struct interval): Use EMACS_INT for members
21336 where EMACS_UINT might cause problems. See
21337 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
21338 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
21339 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
21340 All uses changed.
37aa2f85
PE
21341 (offset_intervals): Tell GCC not to worry about length overflow
21342 when negating a negative length.
c20db43f 21343
2538aa2f
PE
21344 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
21345 (overrun_check_free): Likewise.
21346
f2d3008d
PE
21347 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
21348 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
21349 word size.
21350
ec8df744
PE
21351 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
21352 (gnutls_make_error): Rename local to avoid shadowing.
21353 (gnutls_emacs_global_deinit): ifdef out; not used.
21354 (Fgnutls_boot): Use const for pointer to readonly storage.
21355 Comment out unused local. Fix pointer signedness problems.
21356
640ee02d
PE
21357 * lread.c (openp): Don't stuff size_t into an 'int'.
21358 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
21359 about possible signed overflow.
21360
6048fb2a
PE
21361 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
21362 (GDK_KEY_g): Don't define if already defined.
21363 (xg_prepare_tooltip): Avoid pointer signedness problem.
21364 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
21365
fa3c87e1
PE
21366 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
21367 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
21368
2172544b
PE
21369 * xfns.c (Fx_window_property): Simplify a bit,
21370 to make a bit faster and to avoid GCC 4.6.0 warning.
21371 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
21372
9b821a21
PE
21373 * fns.c (internal_equal): Don't assume size_t fits in int.
21374
3c616cfa
PE
21375 * alloc.c (compact_small_strings): Tighten assertion a little.
21376
c2982e87
PE
21377 Replace pEd with more-general pI, and fix some printf arg casts.
21378 * lisp.h (pI): New macro, generalizing old pEd macro to other
21379 conversion specifiers. For example, use "...%"pI"d..." rather
21380 than "...%"pEd"...".
21381 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 21382 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
21383 * alloc.c (check_pure_size): Don't overflow by converting size to int.
21384 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
21385 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
21386 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
21387 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
21388 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
21389 64-bit hosts.
21390 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
21391 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
21392 * print.c (safe_debug_print, print_object): Likewise.
21393 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
21394 to int.
6f04d126
PE
21395 Use pI instead of if-then-else-abort. Use %p to avoid casts,
21396 avoiding the 0 flag, which is not portable.
c2982e87
PE
21397 * process.c (Fmake_network_process): Use pI to avoid cast.
21398 * region-cache.c (pp_cache): Likewise.
21399 * xdisp.c (decode_mode_spec): Likewise.
21400 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
21401 behavior on 64-bit hosts with printf arg.
6f04d126 21402 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
21403 (x_stop_queuing_selection_requests): Likewise.
21404 (x_get_window_property): Don't truncate byte count to an 'int'
21405 when tracing.
0b432f21 21406
5e073ec7
PE
21407 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
21408 here, since it parses constructs like leading '-' and spaces,
21409 which are not wanted; and it overflows with large numbers.
21410 Instead, simply match F[0-9]+, which is what is wanted anyway.
21411
36372bf9
PE
21412 * alloc.c: Remove unportable assumptions about struct layout.
21413 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
21414 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
21415 (allocate_vectorlike, make_pure_vector): Use the new macros,
21416 plus offsetof, to remove unportable assumptions about struct layout.
21417 These assumptions hold on all porting targets that I know of, but
21418 they are not guaranteed, they're easy to remove, and removing them
21419 makes further changes easier.
21420
0b432f21
PE
21421 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
21422 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
21423 (string_overrun_cookie): Now const. Use initializers that
21424 don't formally overflow signed char, to avoid warnings.
000098c1
PE
21425 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
21426 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
21427 (allocate_buffer): Don't assume sizeof (struct buffer) is a
21428 multiple of sizeof (EMACS_INT); it need not be, if
21429 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 21430 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 21431
895009e1
JB
214322011-04-26 Juanma Barranquero <lekktu@gmail.com>
21433
21434 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
21435
6a7a1b0b
TZ
214362011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
21437
21438 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 21439 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
21440 Reported by Paul Eggert <eggert@cs.ucla.edu>.
21441
841a1577 214422011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
21443
21444 * lisp.h (Qdebug): List symbol.
895009e1 21445 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
21446 * keyboard.c (debug-on-event): New variable.
21447 (handle_user_signal): Break into debugger when debug-on-event
21448 matches the current signal symbol.
21449
f2d3ba6f
DN
214502011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
21451
21452 * alloc.c (check_sblock, check_string_bytes)
21453 (check_string_free_list): Convert to standard C.
21454
42ce4c63
TZ
214552011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
21456
21457 * w32.c (emacs_gnutls_push): Fix typo.
21458
825cd63c
EZ
214592011-04-25 Eli Zaretskii <eliz@gnu.org>
21460
fb11d64d
EZ
21461 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
21462 "cast to pointer from integer of different size".
21463
825cd63c
EZ
21464 Improve doprnt and its use in verror. (Bug#8545)
21465 * doprnt.c (doprnt): Document the set of format control sequences
21466 supported by the function. Use SAFE_ALLOCA instead of always
21467 using `alloca'.
21468
21469 * eval.c (verror): Don't limit the buffer size at size_max-1, that
21470 is one byte too soon. Don't use xrealloc; instead xfree and
21471 xmalloc anew.
21472
e061a11b
TZ
214732011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
21474
21475 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
21476 callbacks stage.
21477
21478 * gnutls.c: Renamed global_initialized to
21479 gnutls_global_initialized. Added internals for the
21480 :verify-hostname-error, :verify-error, and :verify-flags
21481 parameters of `gnutls-boot' and documented those parameters in the
21482 docstring. Start callback support.
9173deec
JB
21483 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
21484 unless a fatal error occurred. Call gnutls_alert_send_appropriate
21485 on error. Return error code.
e061a11b
TZ
21486 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
21487 (emacs_gnutls_read): Likewise.
21488 (Fgnutls_boot): Return handshake error code.
21489 (emacs_gnutls_handle_error): New function.
21490 (wsaerror_to_errno): Likewise.
21491
21492 * w32.h (emacs_gnutls_pull): Add prototype.
21493 (emacs_gnutls_push): Likewise.
21494
21495 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
21496 (emacs_gnutls_push): Likewise.
21497
214982011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
21499
21500 * process.c (wait_reading_process_output): Check if GnuTLS
21501 buffered some data internally if no FDs are set for TLS
21502 connections.
21503
21504 * makefile.w32-in (OBJ2): Add gnutls.$(O).
21505 (LIBS): Link to USER_LIBS.
21506 ($(BLD)/gnutls.$(0)): New target.
21507
fa6996bc
EZ
215082011-04-24 Eli Zaretskii <eliz@gnu.org>
21509
eb35682e
EZ
21510 * xdisp.c (handle_single_display_spec): Rename the
21511 display_replaced_before_p argument into display_replaced_p, to
21512 make it consistent with the commentary. Fix typos in the
21513 commentary.
21514
e2ad650c
EZ
21515 * textprop.c (syms_of_textprop): Remove dead code.
21516 (copy_text_properties): Delete obsolete commentary about an
21517 interface that was deleted long ago. Fix typos in the description
21518 of arguments.
21519
1b2de274
EZ
21520 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
21521 to changes in oldXMenu/XMenu.h from 2011-04-16.
21522 <menu_help_message, prev_menu_help_message>: Constify.
21523 (IT_menu_make_room): menu->help_text is now `const char **';
21524 adjust.
21525
21526 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
21527 to changes in oldXMenu/XMenu.h from 2011-04-16.
21528 (struct XMenu): Declare `help_text' `const char **'.
21529
21530 * xfaces.c <Qunspecified>: Make extern again.
21531
21532 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 21533 required by POSIX.
1b2de274 21534
762b15be
EZ
21535 * doc.c (get_doc_string): Improve the format passed to `error'.
21536
21537 * doprnt.c (doprnt): Improve commentary.
21538
21539 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
21540
21541 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
21542 them with etags.
21543
f1052e5d
EZ
21544 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
21545 changes in globals.h immediately force recompilation.
762b15be
EZ
21546 (TAGS): Depend on $(CURDIR)/m/intel386.h and
21547 $(CURDIR)/s/ms-w32.h.
21548 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 21549
fa6996bc
EZ
21550 * character.c (Fchar_direction): Function deleted.
21551 (syms_of_character): Don't defsubr it.
21552 <char-direction-table>: Deleted.
21553
e6c3da20
EZ
215542011-04-23 Eli Zaretskii <eliz@gnu.org>
21555
21556 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
21557 * doprnt.c: Include limits.h.
21558 (SIZE_MAX): New macro.
04f2d78b
CB
21559 (doprnt): Return a size_t value. 2nd arg is now size_t.
21560 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
21561 Improve overflow protection. Support `l' modifier for integer
21562 conversions. Support %l conversion. Don't assume an EMACS_INT
21563 argument for integer conversions and for %c.
21564
21565 * lisp.h (doprnt): Restore prototype.
21566
21567 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
21568 $(SRC)/character.h.
21569
21570 * Makefile.in (base_obj): Add back doprnt.o.
21571
21572 * deps.mk (doprnt.o): Add back prerequisites.
21573 (callint.o): Depend on character.h.
21574
21575 * eval.c (internal_lisp_condition_case): Include the handler
21576 representation in the error message.
21577 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
21578 when breaking from the loop.
21579
21580 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
21581
21582 * callint.c (Fcall_interactively): When displaying error message
21583 about invalid control letter, pass the character's codepoint, not
21584 a pointer to its multibyte form. Improve display of the character
21585 in octal and display also its hex code.
21586
21587 * character.c (char_string): Use %x to display the (unsigned)
21588 codepoint of an invalid character, to avoid displaying a bogus
21589 negative value.
21590
21591 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
21592 `error', not SYMBOL_NAME itself.
21593
21594 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
21595 character arguments to `error'.
21596
21597 * charset.c (check_iso_charset_parameter): Fix incorrect argument
21598 to `error' in error message about FINAL_CHAR argument. Make sure
21599 FINAL_CHAR is a character, and use %c when it is passed as
21600 argument to `error'.
21601
4ffd0d6b 216022011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
21603
21604 * s/ms-w32.h (localtime): Redirect to sys_localtime.
21605
21606 * w32.c: Include <time.h>.
21607 (sys_localtime): New function.
21608
4ffd0d6b 216092011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
21610
21611 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
21612
4ffd0d6b 21613 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 21614
4ffd0d6b 216152011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 21616
4ffd0d6b
GM
21617 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
21618 zombies (Bug#8467).
aac0c6e3 21619
04c56954
EZ
216202011-04-19 Eli Zaretskii <eliz@gnu.org>
21621
21622 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
21623 gl_state.e_property when gl_state.object is Qt.
21624
21625 * insdel.c (make_gap_larger): Remove limitation of buffer size
21626 to <= INT_MAX.
21627
16a43933
CY
216282011-04-18 Chong Yidong <cyd@stupidchicken.com>
21629
21630 * xdisp.c (lookup_glyphless_char_display)
21631 (produce_glyphless_glyph): Handle cons cell entry in
21632 glyphless-char-display.
21633 (Vglyphless_char_display): Document it.
21634
21635 * term.c (produce_glyphless_glyph): Handle cons cell entry in
21636 glyphless-char-display.
21637
4581706e
CY
216382011-04-17 Chong Yidong <cyd@stupidchicken.com>
21639
21640 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
21641
21642 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
21643
21644 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
21645 definition for no-X builds.
21646
4887c6e2 216472011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 21648
fd35b6f9
PE
21649 Static checks with GCC 4.6.0 and non-default toolkits.
21650
5c1ccb01
PE
21651 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
21652
006c5daa
PE
21653 * process.c (keyboard_bit_set): Define only if SIGIO.
21654 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
21655 (send_process): Repair possible setjmp clobbering.
21656
efc736d3
PE
21657 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
21658
4e2fe2e6
PE
21659 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
21660
f97334a2
PE
21661 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
21662
4e75f29d
PE
21663 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
21664 Define only if needed.
21665
90efadd1
PE
21666 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
21667 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 21668 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 21669
3c647824
PE
21670 * dispextern.h (struct redisplay_interface): Rename param
21671 to avoid shadowing.
e264f262 21672 * termhooks.h (struct terminal): Likewise.
761383f4 21673 * xterm.c (xembed_send_message): Likewise.
3c647824 21674
b58c5c4a
PE
21675 * insdel.c (make_gap_smaller): Define only if
21676 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
21677
cad59032
PE
21678 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
21679 it.
21680
c339dc2e
PE
21681 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
21682 so that we aren't warned about unused symbols.
21683
91a3e27b
PE
21684 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
21685
399c71d3 21686 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 21687
8ffc96f5
PE
21688 * xfns.c (x_real_positions): Mark locals as initialized.
21689
eef9bc79
PE
21690 * xmenu.c (xmenu_show): Don't use uninitialized vars.
21691
098db9dd
PE
21692 * xterm.c: Fix problems found by static analysis with other toolkits.
21693 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
21694 (x_dispatch_event): Declare static if USE_GTK, and
21695 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 21696 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 21697 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
21698 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
21699 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 21700
eb18f6cc
PE
21701 * xmenu.c (menu_help_callback): Pointer type fixes.
21702 Use const pointers when pointing at readonly data. Avoid pointer
21703 signedness clashes.
21704 (FALSE): Remove unused macro.
21705 (update_frame_menubar): Remove unused decl.
21706
1fe72bf8
PE
21707 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
21708
60d9e1db
PE
21709 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
21710 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
21711 (single_menu_item): Rename local to avoid shadowing.
21712
39261c26
PE
21713 * keyboard.c (make_lispy_event): Remove unused local var.
21714
018c5e19
PE
21715 * frame.c, frame.h (x_get_resource_string): Bring this back, but
21716 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
21717
63d2b86e
PE
21718 * bitmaps: Change bitmaps from unsigned char back to the X11
21719 compatible char. Avoid the old compiler warnings about
21720 out-of-range initializers by using, for example, '\xab' rather
21721 than 0xab.
21722
aefd87e1
PE
21723 * xgselect.c (xgselect_initialize): Check vs interface
21724 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
21725
bf501fb9
PE
21726 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
21727
e9829fdf
PE
21728 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
21729 to read-only memory.
21730
1086c095
PE
21731 * fns.c (vector): Remove; this old hack is no longer needed.
21732
2baccd04 21733 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 21734 Remove unused var.
dde42981 21735 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 21736
72391843 21737 * xrdb.c (x_load_resources): Omit unused local.
3565b346 21738
436c16df 21739 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 21740 (x_window): Rename locals to avoid shadowing.
dc5ddd85 21741 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 21742
92bb796d 21743 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 21744 (x_term_init): Remove local to avoid shadowing.
92bb796d 21745
764430a3 21746 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
21747
21748 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
21749 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
21750
d1dfb56c
EZ
217512011-04-16 Eli Zaretskii <eliz@gnu.org>
21752
c4354cb4
EZ
21753 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
21754
d1dfb56c
EZ
21755 Fix regex.c, syntax.c and friends for buffers > 2GB.
21756 * syntax.h (struct gl_state_s): Declare character position members
21757 EMACS_INT.
21758
21759 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
21760
04f2d78b
CB
21761 * textprop.c (verify_interval_modification, interval_of):
21762 Declare arguments EMACS_INT.
d1dfb56c
EZ
21763
21764 * intervals.c (adjust_intervals_for_insertion): Declare arguments
21765 EMACS_INT.
21766
21767 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
21768
21769 * indent.c (Fvertical_motion): Local variable it_start is now
21770 EMACS_INT.
21771
21772 * regex.c (re_match, re_match_2, re_match_2_internal)
21773 (bcmp_translate, regcomp, regexec, print_double_string)
21774 (group_in_compile_stack, re_search, re_search_2, regex_compile)
21775 (re_compile_pattern, re_exec): Declare arguments and local
21776 variables `size_t' and `ssize_t' and return values `regoff_t', as
21777 appropriate.
21778 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
21779 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
21780 <compile_stack_type>: `size' and `avail' are now `size_t'.
21781
21782 * regex.h <regoff_t>: Use ssize_t, not int.
21783 (re_search, re_search_2, re_match, re_match_2): Arguments that
21784 specify buffer/string position and length are now ssize_t and
21785 size_t. Return type is regoff_t.
21786
613052cd
BK
217872011-04-16 Ben Key <bkey76@gmail.com>
21788
21789 * nsfont.m: Fixed bugs in ns_get_family and
21790 ns_descriptor_to_entity that were caused by using free to
21791 deallocate memory blocks that were allocated by xmalloc (via
21792 xstrdup). This caused Emacs to crash when compiled with
21793 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
21794 --enable-checking=xmallocoverrun). xfree is now used to
21795 deallocate these memory blocks.
21796
4170f62f 217972011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 21798
71b41406
PE
21799 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
21800
9587a89d
PE
21801 emacs_write: Accept and return EMACS_INT for sizes.
21802 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
21803 et seq.
21804 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
21805 Accept and return EMACS_INT.
21806 (emacs_gnutls_write): Return the number of bytes written on
21807 partial writes.
21808 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
21809 (emacs_read, emacs_write): Remove check for negative size, as the
21810 Emacs source code has been audited now.
9587a89d
PE
21811 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
21812 (emacs_read, emacs_write): Use it.
273a5f82
PE
21813 * process.c (send_process): Adjust to the new signatures of
21814 emacs_write and emacs_gnutls_write. Do not attempt to store
21815 a byte offset into an 'int'; it might overflow.
9587a89d 21816 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 21817
3e047f51
PE
21818 * sound.c: Don't assume sizes fit in 'int'.
21819 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 21820 Return EMACS_INT, not int.
3e047f51 21821 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
21822 Accept EMACS_INT, not int.
21823 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
21824 record read return values.
21825
cc39a9db
BK
218262011-04-15 Ben Key <bkey76@gmail.com>
21827
c9d0ec6d
JB
21828 * keyboard.c (Qundefined): Don't declare static since it is used
21829 in nsfns.m.
21830 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
21831 static since they are used in nsfont.m.
cc39a9db 21832
6c60eb9f
SM
218332011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
21834
21835 * process.c (Qprocessp): Don't declare static.
21836 * lisp.h (Qprocessp): Declare again.
21837
7990b61a
JB
218382011-04-15 Juanma Barranquero <lekktu@gmail.com>
21839
21840 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
21841
5d4cb038
PE
218422011-04-14 Paul Eggert <eggert@cs.ucla.edu>
21843
8bd7b830 21844 Improve C-level modularity by making more things 'static'.
cd64ea1d 21845
e3b27b31
PE
21846 Don't publish debugger-only interfaces to other modules.
21847 * lisp.h (safe_debug_print, debug_output_compilation_hack):
21848 (verify_bytepos, count_markers): Move decls to the only modules
21849 that need them.
21850 * region-cache.h (pp_cache): Likewise.
21851 * window.h (check_all_windows): Likewise.
21852 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
21853
5d4cb038
PE
21854 * sysdep.c (croak): Now static, if
21855 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
21856 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
21857
21858 * alloc.c (refill_memory_reserve): Now static if
21859 !defined REL_ALLOC || defined SYSTEM_MALLOC.
21860 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 21861
e87b6180
PE
21862 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
21863 Define only if USE_LUCID.
21864
ac64929e
PE
21865 * xrdb.c (x_customization_string, x_rm_string): Now static.
21866
6f37259d
PE
21867 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
21868 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
21869
1683e3ab
PE
21870 * xdisp.c (draw_row_with_mouse_face): Now static.
21871 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
21872
de9c2632
PE
21873 * window.h (check_all_windows): Mark externally visible.
21874
2b96acb7
PE
21875 * window.c (window_deletion_count): Now static.
21876
21877 * undo.c: Make symbols static if they're not exported.
21878 (last_undo_buffer, last_boundary_position, pending_boundary):
21879 Now static.
21880
50436f33
PE
21881 * textprop.c (interval_insert_behind_hooks): Now static.
21882 (interval_insert_in_front_hooks): Likewise.
21883
64520e5c
PE
21884 * term.c: Make symbols static if they're not exported.
21885 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
21886 (max_frame_lines, tty_set_terminal_modes):
21887 (tty_reset_terminal_modes, tty_turn_off_highlight):
21888 (get_tty_terminal): Now static.
21889 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
21890 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 21891 HAVE_WINDOW_SYSTEM.
64520e5c
PE
21892 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
21893 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
21894
1fa53021
PE
21895 * sysdep.c: Make symbols static if they're not exported.
21896 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
21897 Now static.
21898 (sigprocmask_set, full_mask): Remove; unused.
21899 (wait_debugging): Mark as visible.
21900 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
21901 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
21902
d4b43b22
PE
21903 * syntax.c (syntax_temp): Define only if !__GNUC__.
21904
b7c513d0
PE
21905 * sound.c (current_sound_device, current_sound): Now static.
21906
989b29ad
PE
21907 * search.c (searchbufs, searchbuf_head): Now static.
21908
13a55a78
PE
21909 * scroll.c (scroll_cost): Remove; unused.
21910 * dispextern.h (scroll_cost): Remove decl.
21911
de68a1fc
PE
21912 * region-cache.h (pp_cache): Mark as externally visible.
21913
40ccffa6
PE
21914 * process.c: Make symbols static if they're not exported.
21915 (process_tick, update_tick, create_process, chan_process):
21916 (Vprocess_alist, proc_buffered_char, datagram_access):
21917 (fd_callback_data, send_process_frame, process_sent_to): Now static.
21918 (deactivate_process): Mark defn as static, as well as decl.
21919 * lisp.h (create_process): Remove decl.
21920 * process.h (chan_process, Vprocess_alist): Remove decls.
21921
ad64fc97
PE
21922 * print.c: Make symbols static if they're not exported.
21923 (print_depth, new_backquote_output, being_printed, print_buffer):
21924 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
21925 (print_interval, print_number_index, initial_stderr_stream):
21926 Now static.
21927 * lisp.h (Fprinc): Remove decl.
21928 (debug_output_compilation_hack): Mark as externally visible.
21929
adddb265
PE
21930 * sysdep.c (croak): Move decl from here to syssignal.h.
21931 * syssignal.h (croak): Put it here, so the API can be checked when
21932 'croak' is called from dissociate_if_controlling_tty.
21933
1717ede2
PE
21934 * minibuf.c: Make symbols static if they're not exported.
21935 (minibuf_save_list, choose_minibuf_frame): Now static.
21936 * lisp.h (choose_minibuf_frame): Remove decl.
21937
fa5fb2bc
PE
21938 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
21939
1e3890d1
PE
21940 * lread.c: Make symbols static if they're not exported.
21941 (read_objects, initial_obarray, oblookup_last_bucket_number):
21942 Now static.
21943 (make_symbol): Remove; unused.
21944 * lisp.h (initial_obarray, make_symbol): Remove decls.
21945
8a1414fa
PE
21946 * keyboard.c: Make symbols static if they're not exported.
21947 (single_kboard, recent_keys_index, total_keys, recent_keys):
21948 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
21949 (this_single_command_key_start, echoing, last_auto_save):
21950 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
21951 (command_loop, echo_now, keyboard_init_hook, help_char_p):
21952 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
21953 (Vlispy_mouse_stem, double_click_count):
21954 Now static.
21955 (force_auto_save_soon): Define only if SIGDANGER.
21956 (ignore_mouse_drag_p): Now static if
21957 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
21958 (print_help): Remove; unused.
21959 (stop_character, last_timer_event): Mark as externally visible.
21960 * keyboard.h (ignore_mouse_drag_p): Declare only if
21961 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
21962 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
21963 * lisp.h (echoing): Remove decl.
21964 (force_auto_save_soon): Declare only if SIGDANGER.
21965 * xdisp.c (redisplay_window): Simplify code, to make it more
21966 obvious that ignore_mouse_drag_p is not accessed if !defined
21967 USE_GTK && !defined HAVE_NS.
21968
93ea6e8f
PE
21969 * intervals.c: Make symbols static if they're not exported.
21970 (merge_properties_sticky, merge_interval_right, delete_interval):
21971 Now static.
21972 * intervals.h (merge_interval_right, delete_interval): Remove decls.
21973
77382fcc
PE
21974 * insdel.c: Make symbols static if they're not exported.
21975 However, leave prepare_to_modify_buffer alone. It's never
21976 called from outside this function, but that appears to be a bug.
21977 (combine_after_change_list, combine_after_change_buffer):
4889fc82 21978 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
21979 (adjust_after_replace_noundo): Remove; unused.
21980 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 21981 (signal_before_change): Remove decls.
77382fcc 21982
9306c32e
PE
21983 * indent.c (val_compute_motion, val_vmotion): Now static.
21984
cd44d2eb
PE
21985 * image.c: Make symbols static if they're not exported.
21986 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
21987 if USE_GTK.
21988 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
21989 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
21990
ad9a7a06
PE
21991 * fringe.c (standard_bitmaps): Now static.
21992 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
21993
81626931
PE
21994 * frame.c: Make symbols static if they're not exported.
21995 (x_report_frame_params, make_terminal_frame): Now static.
21996 (get_frame_param): Now static, unless HAVE_NS.
21997 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
21998 (x_get_resource_string): Remove; not used.
21999 * frame.h (make_terminal_frame, x_report_frame_params):
22000 (x_get_resource_string); Remove decls.
22001 (x_fullscreen_adjust): Declare only if WINDOWSNT.
22002 * lisp.h (get_frame_param): Declare only if HAVE_NS.
22003
239f9db9
PE
22004 * font.c, fontset.c: Make symbols static if they're not exported.
22005 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
22006 (FACE_SUITABLE_FOR_CHAR_P): Use it.
22007 * font.c (font_close_object): Now static.
22008 * font.h (font_close_object): Remove.
22009 * fontset.c (FONTSET_OBJLIST): Remove.
22010 (free_realized_fontset) #if-0 the body, which does nothing.
22011 (face_suitable_for_char_p): #if-0, as it's never called.
22012 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
22013 * xfaces.c (face_at_string_position):
22014 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
22015 since 0 is always ASCII.
22016
dfcf3579
PE
22017 * fns.c (weak_hash_tables): Now static.
22018
5045092b
PE
22019 * fileio.c: Make symbols static if they're not exported.
22020 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
22021 (Vwrite_region_annotation_buffers): Now static.
22022
57a96f5c
PE
22023 * eval.c: Make symbols static if they're not exported.
22024 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
22025 * lisp.h (backtrace_list): Remove decl.
22026
35f08c38
PE
22027 * emacs.c: Make symbols static if they're not exported.
22028 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
22029 (fatal_error_code, fatal_error_signal_hook, standard_args):
22030 Now static.
22031 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
22032 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
22033 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
22034 * lisp.h (fatal_error_signal_hook): Remove decl.
22035 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
22036
f44bd759
PE
22037 * editfns.c: Move a (normally-unused) function to its only use.
22038 * editfns.c, lisp.h (get_operating_system_release): Remove.
22039 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
22040 worth the hassle of breaking this out.
22041
b532497d
PE
22042 * xterm.c: Make symbols static if they're not exported.
22043 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
22044 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
22045 (x_destroy_window, x_delete_display):
22046 Now static.
22047 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
22048 (x_mouse_leave): Remove; unused.
22049 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
22050 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
22051 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
22052 Remove decls.
22053 (x_mouse_leave): Declare only if WINDOWSNT.
22054 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
22055 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
22056 USE_X_TOOLKIT.
22057
1675728f
PE
22058 * ftxfont.c: Make symbols static if they're not exported.
22059 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
22060 HAVE_FREETYPE.
22061 * font.h (ftxfont_driver): Likewise.
22062
e4cebfca
PE
22063 * xfns.c: Make symbols static if they're not exported.
22064 (x_last_font_name, x_display_info_for_name):
22065 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
22066 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
22067 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
22068 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
22069 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
22070 (last_show_tip_args): Now static.
22071 (xic_defaut_fontset, xic_create_fontsetname): Define only if
22072 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
22073 (x_screen_planes): Remove; unused.
22074 * dispextern.h (x_screen_planes): Remove decl.
22075
5bf46f05
PE
22076 * dispnew.c: Make symbols static if they're not exported.
22077 * dispextern.h (redraw_garbaged_frames, scrolling):
22078 (increment_row_positions): Remove.
22079 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
22080 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
22081 Now static.
22082 (redraw_garbaged_frames): Remove; unused.
22083
435f4c28
PE
22084 * xfaces.c: Make symbols static if they're not exported.
22085 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
22086 Remove decls.
22087 * xterm.h (defined_color): Remove decls.
22088 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
22089 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
22090 (menu_face_changed_default, defined_color, free_realized_face):
22091 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
22092 (ascii_face_of_lisp_face): Remove; unused.
22093
8524aef3
PE
22094 * xdisp.c: Make symbols static if they're not exported.
22095 * dispextern.h (scratch_glyph_row, window_box_edges):
22096 (glyph_to_pixel_coords, set_cursor_from_row):
22097 (get_next_display_element, set_iterator_to_next):
22098 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
22099 (show_mouse_face): Remove decls
22100 * frame.h (message_buf_print): Likewise.
22101 * lisp.h (pop_message, set_message, check_point_in_composition):
22102 Likewise.
22103 * xterm.h (set_vertical_scroll_bar): Likewise.
22104 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
22105 (message_buf_print, scratch_glyph_row, displayed_buffer):
22106 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
22107 (get_next_display_element, show_mouse_face, window_box_edges):
22108 (frame_to_window_pixel_xy, check_point_in_composition):
22109 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
22110 (glyph_to_pixel_coords): Remove; unused.
22111
16390cd2
PE
22112 * dired.c (file_name_completion): Now static.
22113
22114 * dbusbind.c (xd_in_read_queued_messages): Now static.
22115
a25f4dfa
PE
22116 * lisp.h (circular_list_error, FOREACH): Remove; unused.
22117 * data.c (circular_list_error): Remove.
22118
14a9c8df
PE
22119 * commands.h (last_point_position, last_point_position_buffer):
22120 (last_point_position_window): Remove decls.
22121 * keyboard.c: Make these variables static.
22122
04f2d78b
CB
22123 * coding.h (coding, code_convert_region, encode_coding_gap):
22124 Remove decls.
74ab6df5
PE
22125 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
22126 (iso_code_class, detect_coding, code_convert_region): Now static.
22127 (encode_coding_gap): Remove; unused.
22128
38dfbee1
PE
22129 * chartab.c (chartab_chars, chartab_bits): Now static.
22130
a2cb4e63
PE
22131 * charset.h (charset_iso_8859_1): Remove decl.
22132 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
22133 Now static.
22134
127198fd
PE
22135 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
22136 * ccl.c (Vccl_program_table): Now static.
22137 (check_ccl_update): Remove; unused.
22138
d85b608f
PE
22139 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
22140 * category.h: ... from here.
22141 * category.c (check_category_table, set_category_set): Now static.
22142
31cd66f3
PE
22143 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
22144 * lisp.h: Remove these decls.
22145
c358e587
PE
22146 * buffer.c (buffer_count): Remove unused var.
22147
e78aecca
PE
22148 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
22149 so that it's not optimized away.
22150 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
22151 * dispextern.h (bidi_dump_cached_states): Remove, since it's
22152 exported only to the debugger.
22153
e192d7d3 22154 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 22155 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 22156
92470028
PE
22157 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
22158 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
22159 was inaccessible from Lisp.
22160 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
22161 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
22162
244ed907
PE
22163 alloc.c: Import and export fewer symbols, and remove unused items.
22164 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
22165 is defined.
22166 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
22167 it's not optimized away by whole-program optimization.
22168 (message_enable_multibyte, free_misc): Remove.
22169 (catchlist, handlerlist, mark_backtrace):
22170 Declare only if BYTE_MARK_STACK.
22171 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
22172 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
22173 (message_enable_multibyte): Remove decl.
22174 (free_misc, interval_free_list, float_block, float_block_index):
22175 (n_float_blocks, float_free_list, cons_block, cons_block_index):
22176 (cons_free_list, last_marked_index):
22177 Now static.
22178 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
22179 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
22180 (mark_backtrace): Define only if BYTE_MARK_STACK.
22181 * xdisp.c (message_enable_multibyte): Now static.
22182
61c2b50e 22183 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
22184 This makes it easier for human readers (and static analyzers)
22185 to see whether these variables are used from other modules.
22186 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
22187 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
22188 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
22189 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
22190 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
22191 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
22192 * xmenu.c, xselect.c:
22193 Declare Q* vars static if they are not used in other modules.
22194 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
22195 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
22196 Remove decls of unexported vars.
22197 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
22198
95c82688
PE
22199 * lisp.h (DEFINE_FUNC): Make sname 'static'.
22200
16a97296
PE
22201 Make Emacs functions such as Fatom 'static' by default.
22202 This makes it easier for human readers (and static analyzers)
22203 to see whether these functions can be called from other modules.
22204 DEFUN now defines a static function. To make the function external
22205 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
22206 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
22207 (Finit_image_library):
16a97296
PE
22208 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
22209 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
22210 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
22211 Remove decls, since these functions are now static.
22212 (Funintern, Fget_internal_run_time): New decls, since these functions
22213 were already external.
95c82688 22214
16a97296
PE
22215 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
22216 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
22217 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
22218 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
22219 * keyboard.c, keymap.c, lread.c:
22220 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
22221 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
22222 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
22223 Mark functions with DEFUE instead of DEFUN,
22224 if they are used in other modules.
22225 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
22226 decls for now-static functions.
22227 * buffer.h (Fdelete_overlay): Remove decl.
22228 * callproc.c (Fgetenv_internal): Mark as internal.
22229 * composite.c (Fremove_list_of_text_properties): Remove decl.
22230 (Fcomposition_get_gstring): New forward static decl.
22231 * composite.h (Fcomposite_get_gstring): Remove decl.
22232 * dired.c (Ffile_attributes): New forward static decl.
22233 * doc.c (Fdocumntation_property): New forward static decl.
22234 * eval.c (Ffetch_bytecode): New forward static decl.
22235 (Funintern): Remove extern decl; now in .h file where it belongs.
22236 * fileio.c (Fmake_symbolic_link): New forward static decl.
22237 * image.c (Finit_image_library): New forward static decl.
22238 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
22239 * intervals.h (Fprevious_property_change):
22240 (Fremove_list_of_text_properties): Remove decls.
22241 * keyboard.c (Fthis_command_keys): Remove decl.
22242 (Fcommand_execute): New forward static decl.
22243 * keymap.c (Flookup_key): New forward static decl.
22244 (Fcopy_keymap): Now static.
22245 * keymap.h (Flookup_key): Remove decl.
22246 * process.c (Fget_process): New forward static decl.
22247 (Fprocess_datagram_address): Mark as internal.
22248 * syntax.c (Fsyntax_table_p): New forward static decl.
22249 (skip_chars): Remove duplicate decl.
22250 * textprop.c (Fprevious_property_change): New forward static decl.
22251 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
22252 Now internal.
22253 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
22254 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
22255
785bbd42
PE
22256 * editfns.c (Fformat): Remove unreachable code.
22257
8b913b57
AS
222582011-04-14 Andreas Schwab <schwab@linux-m68k.org>
22259
22260 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
22261 change. (Bug#8496)
22262
a6744a35
EZ
222632011-04-13 Eli Zaretskii <eliz@gnu.org>
22264
22265 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
22266 when at ZV. (Bug#8487)
22267
e7974947
AS
222682011-04-12 Andreas Schwab <schwab@linux-m68k.org>
22269
baad03f0
AS
22270 * charset.c (Fclear_charset_maps): Use xfree instead of free.
22271 (Bug#8437)
22272 * keyboard.c (parse_tool_bar_item): Likewise.
22273 * sound.c (sound_cleanup, alsa_close): Likewise.
22274 * termcap.c (tgetent): Likewise.
22275 * xfns.c (x_default_font_parameter): Likewise.
22276 * xsettings.c (read_and_apply_settings): Likewise.
22277
e7974947
AS
22278 * alloc.c (overrun_check_malloc, overrun_check_realloc)
22279 (overrun_check_free): Protoize.
22280
28272684
PE
222812011-04-12 Paul Eggert <eggert@cs.ucla.edu>
22282
22283 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
22284 since callers should never pass a negative size.
22285 Change the signature to match that of plain 'read' and 'write'; see
22286 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
22287 * lisp.h: Update prototypes of emacs_write and emacs_read.
22288
11997c76
EZ
222892011-04-11 Eli Zaretskii <eliz@gnu.org>
22290
22291 * xdisp.c (redisplay_window): Don't try to determine the character
22292 position of the scroll margin if the window start point w->startp
e896f03c 22293 is outside the buffer's accessible region. (Bug#8468)
11997c76 22294
8a2cbd72
EZ
222952011-04-10 Eli Zaretskii <eliz@gnu.org>
22296
22297 Fix write-region and its subroutines for buffers > 2GB.
22298 * fileio.c (a_write, e_write): Modify declaration of arguments and
22299 local variables to support buffers larger than 2GB.
22300 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
22301
22302 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
22303 argument, local variables, and return value.
22304
22305 * lisp.h: Update prototypes of emacs_write and emacs_read.
22306
22307 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
22308
4073e537 223092011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 22310
1ebfdcb6
PE
22311 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
22312
b2ded58d
PE
22313 Fix more problems found by GCC 4.6.0's static checks.
22314
7d66342c
PE
22315 * xdisp.c (vmessage): Use a better test for character truncation.
22316
bbf47d44
PE
22317 * charset.c (load_charset_map): <, not <=, for optimization,
22318 and to avoid potential problems with integer overflow.
9248994d 22319 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 22320 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 22321 * editfns.c (Fformat): Likewise.
1e69125e 22322 * syntax.c (skip_chars): Likewise.
3befa583 22323
e3019616
PE
22324 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
22325 This also lets GCC 4.6.0 generate slightly better loop code.
22326
becfa255
PE
22327 * callint.c (Fcall_interactively): <, not <=, for optimization.
22328 (Fcall_interactively): Count the number of arguments produced,
22329 not the number of arguments given. This is simpler and lets GCC
22330 4.6.0 generate slightly better code.
22331
dae0cd48
PE
22332 * ftfont.c: Distingish more carefully between FcChar8 and char.
22333 The previous code passed unsigned char * to a functions like
22334 strlen and xstrcasecmp that expect char *, which does not
22335 conform to the C standard.
22336 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
22337 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
22338 char * when the C standard requires it.
22339
76032d70
PE
22340 * keyboard.c (read_char): Remove unused var.
22341
eb3f1cc8
PE
22342 * eval.c: Port to Windows vsnprintf (Bug#8435).
22343 Include <limits.h>.
22344 (SIZE_MAX): Define if the headers do not.
22345 (verror): Do not give up if vsnprintf returns a negative count.
22346 Instead, grow the buffer. This ports to Windows vsnprintf, which
22347 does not conform to C99. Problem reported by Eli Zaretskii.
22348 Also, simplify the allocation scheme, by avoiding the need for
22349 calling realloc, and removing the ALLOCATED variable.
22350
70476b54
PE
22351 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
22352
12020a9e
PE
22353 Remove invocations of doprnt, as Emacs now uses vsnprintf.
22354 But keep the doprint source code for now, as we might revamp it
22355 and use it again (Bug#8435).
ea6c7ae6
PE
22356 * lisp.h (doprnt): Remove.
22357 * Makefile.in (base_obj): Remove doprnt.o.
22358 * deps.mk (doprnt.o): Remove.
22359
5fdb398c
PE
22360 error: Print 32- and 64-bit integers portably (Bug#8435).
22361 Without this change, on typical 64-bit hosts error ("...%d...", N)
22362 was used to print both 32- and 64-bit integers N, which relied on
22363 undefined behavior.
61bdb816 22364 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
22365 * lisp.h (error, verror): Mark as printf-like functions.
22366 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
22367 Report overflow in size calculations when allocating printf buffer.
22368 Do not truncate output string at its first null byte.
22369 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
22370 Truncate the output at a character boundary, since vsnprintf does not
22371 do that.
22372 * charset.c (check_iso_charset_parameter): Convert internal
22373 character to string before calling 'error', since %c now has the
22374 printf meaning.
22375 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
22376 overflow when computing char to be passed to 'error'. Do not
22377 pass Lisp_Object to 'error'; pass the integer instead.
22378 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
22379 formatted with plain %d.
22380
b189fa66
PE
22381 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
22382
bff87ef0
PE
22383 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
22384
7e2cac20
PE
22385 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
22386
ce4d90b5
PE
22387 * xterm.c (x_catch_errors): Remove duplicate declaration.
22388
266c9547
PE
22389 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
22390
79c49ad2
PE
22391 * xdisp.c, lisp.h (message_nolog): Remove; unused.
22392
368f4090
JM
223932011-04-10 Jim Meyering <meyering@redhat.com>
22394
22395 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
22396 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
22397 return ssize_t not "int", and use size_t as the buffer length.
22398 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
22399 * gnutls.h: Update declarations.
22400 * process.c (read_process_output): Use ssize_t, to match.
22401 (send_process): Likewise.
22402
a32d4040
CY
224032011-04-09 Chong Yidong <cyd@stupidchicken.com>
22404
22405 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
22406
8546720e 224072011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 22408
04f2d78b
CB
22409 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
22410 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 22411
8546720e
GM
22412 * xterm.c (handle_one_xevent):
22413 * xmenu.c (create_and_show_popup_menu):
22414 * xselect.c (x_decline_selection_request)
22415 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 22416
0a2f5c1a 224172011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
22418
22419 Fix some uses of `int' instead of EMACS_INT.
22420 * search.c (string_match_1, fast_string_match)
22421 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
22422 (scan_buffer, find_next_newline_no_quit)
22423 (find_before_next_newline, search_command, Freplace_match)
22424 (Fmatch_data): Make some `int' variables be EMACS_INT.
22425
22426 * xdisp.c (display_count_lines): 3rd argument and return value now
22427 EMACS_INT. All callers changed.
22428 (pint2hrstr): Last argument is now EMACS_INT.
22429
22430 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
22431 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
22432 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
22433 (decode_coding_utf_16, decode_coding_emacs_mule)
22434 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
22435 (decode_coding_ccl, decode_coding_charset)
22436 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
22437 (decode_coding_iso_2022, decode_coding_emacs_mule)
22438 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
22439 <char_offset, last_offset>: Declare EMACS_INT.
22440 (encode_coding_utf_8, encode_coding_utf_16)
22441 (encode_coding_emacs_mule, encode_invocation_designation)
22442 (encode_designation_at_bol, encode_coding_iso_2022)
22443 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
22444 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
22445 Declare EMACS_INT.
22446 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
22447 (encode_invocation_designation): Last argument P_NCHARS is now
22448 EMACS_INT.
22449 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
22450 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
22451
22452 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
22453 All users changed.
22454
22455 * ccl.c (Fccl_execute_on_string): Declare some variables
22456 EMACS_INT.
22457
8546720e 224582011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
22459
22460 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
22461
4e19a977
CS
224622011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
22463
22464 * process.c (Fformat_network_address): Doc fix.
22465
87302331
R
224662011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
22467
ee7683eb 22468 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 22469
cbb59342
CY
224702011-04-08 Chong Yidong <cyd@stupidchicken.com>
22471
22472 * keyboard.c (read_char): Call Lisp function help-form-show,
22473 instead of using internal_with_output_to_temp_buffer.
22474 (Qhelp_form_show): New var.
e0d38eeb 22475 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
22476
22477 * print.c (internal_with_output_to_temp_buffer): Function deleted.
22478
22479 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
22480
e67a13ab
CY
224812011-04-06 Chong Yidong <cyd@stupidchicken.com>
22482
04f2d78b
CB
22483 * process.c (Flist_processes): Remove to Lisp.
22484 (list_processes_1): Delete.
e67a13ab 22485
973f782d
EZ
224862011-04-06 Eli Zaretskii <eliz@gnu.org>
22487
7c106b1e
EZ
22488 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
22489
973f782d
EZ
22490 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
22491
41cf7d1a 224922011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 22493
ca23cc88
PE
22494 Fix more problems found by GCC 4.6.0's static checks.
22495
f390e2d5
PE
22496 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
22497
42eea0d0
PE
22498 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
22499
b69769da 22500 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 22501
f9541e84
PE
22502 * xdisp.c (vmessage): Mark as a printf-like function.
22503
13841b55
PE
22504 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
22505
c136c10f
PE
22506 * sound.c (sound_warning): Don't crash if arg contains a printf format.
22507
5e2d4a30
PE
22508 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
22509 printf-like functions.
22510 (tiff_load): Add casts to remove these marks before passing them
22511 to system-supplied API.
22512
583f48b9
PE
22513 * eval.c (Fsignal): Remove excess argument to 'fatal'.
22514
b25d760e
PE
22515 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
22516 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
22517 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
22518 directly, rather than having caller test rule sign. This avoids
22519 some unnecessary tests.
22520 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
22521 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
22522 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 22523
bc7b6697 22524 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 22525 (xfont_open): Avoid unnecessary tests.
bc7b6697 22526
27ccc379
PE
22527 * composite.c (composition_gstring_put_cache): Use unsigned integer.
22528
dcd5c89a
PE
22529 * composite.h, composite.c (composition_gstring_put_cache):
22530 Use EMACS_INT, not int, for length.
22531
b13a45c6
PE
22532 * composite.h (COMPOSITION_DECODE_REFS): New macro,
22533 breaking out part of COMPOSITION_DECODE_RULE.
22534 (COMPOSITION_DECODE_RULE): Use it.
22535 * composite.c (get_composition_id): Remove unused local vars,
22536 by using the new macro.
22537
1e792e4d
PE
22538 * textprop.c (set_text_properties_1): Change while to do-while,
22539 since the condition is always true at first.
22540
dc6c6455 22541 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
22542 (interval_deletion_adjustment): Return unsigned value.
22543 All uses changed.
dc6c6455 22544
aba7731a
PE
22545 * process.c (list_processes_1, create_pty, read_process_output):
22546 (exec_sentinel): Remove vars that were set but not used.
afd4052b 22547 (create_pty): Remove unnecessary "volatile"s.
bc57d757 22548 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 22549 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 22550 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 22551
fdfc4bf3
PE
22552 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
22553
fca8fe46 22554 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 22555 (update_syntax_table): Use unsigned instead of int.
fca8fe46 22556
06a0259a 22557 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 22558 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 22559 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 22560
e7b9e80f
PE
22561 * print.c (print_error_message): Avoid int overflow.
22562
56201685
PE
22563 * font.c (font_list_entities): Redo for clarity,
22564 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
22565
78834453 22566 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 22567 (font_score): Avoid potential overflow in diff calculation.
78834453 22568
0bc0b309 22569 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 22570 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 22571
e610eaca
PE
22572 * eval.c (funcall_lambda): Rename local to avoid shadowing.
22573
b895abce
PE
22574 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
22575 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
22576 can always succeed if overflow has undefined behavior.
22577
1f1d9321 22578 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 22579 (wordify): Omit three unnecessary tests.
1f1d9321 22580
c59478bc
PE
22581 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
22582 All callers changed. This avoids the need for an unused var.
22583
79b73827
PE
22584 * casefiddle.c (casify_region): Remove var that is set but not used.
22585
a4db5dfe
PE
22586 * dired.c (file_name_completion): Remove var that is set but not used.
22587
43aae36e
PE
22588 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
22589
2a47c44d 22590 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 22591 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 22592
a37c69bf
PE
22593 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
22594 Check for integer overflow on size calculations.
22595
328ab8e7
PE
22596 * buffer.c (Fprevious_overlay_change): Remove var that is set
22597 but not used.
22598
e5a2a5cb
PE
22599 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
22600 Remove vars that are set but not used.
8d84a6eb 22601 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 22602 (timer_check_2): Mark vars as initialized.
e5a2a5cb 22603
a60e5f68
PE
22604 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
22605
f661cb61 22606 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 22607 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 22608
f0397f5a
PE
22609 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
22610 that are set but not used.
22611
8664db06 22612 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 22613 if XCreateBitmapFromData fails (Bug#8410).
8664db06 22614
6abdaa4a
PE
22615 * xselect.c (x_get_local_selection, x_handle_property_notify):
22616 Remove vars that are set but not used.
22617
0ce7538d 22618 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 22619 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 22620
9ae848fc
PE
22621 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
22622 Remove var that is set but not used.
0b918413
PE
22623 (scroll_bar_windows_size): Now size_t, not int.
22624 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
22625 Check for overflow.
9ae848fc 22626
a5a62657
PE
22627 * xfaces.c (realize_named_face): Remove vars that are set but not used.
22628 (map_tty_color) [!defined MSDOS]: Likewise.
22629
5c5cdd39
PE
22630 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
22631
66ebf983
PE
22632 * coding.c: Remove vars that are set but not used.
22633 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
22634 All callers changed.
22635 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
22636 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
22637 (decode_coding_charset): Remove vars that are set but not used.
22638
1be4d761
PE
22639 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
22640 that is set but not used.
22641
47553fa8
PE
22642 * print.c (print_object): Remove var that is set but not used.
22643
1f7196bf 22644 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
22645 The gnulib version avoids calling malloc in the usual case,
22646 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
22647 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
22648 * filelock.c (current_lock_owner): Likewise.
22649 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
22650 * sysdep.c: Include allocator.h, careadlinkat.h.
22651 (emacs_no_realloc_allocator): New static constant.
22652 (emacs_readlink): New function.
fdb61804
PE
22653 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
22654 ../lib/careadlinkat.h.
d1fdcab7 22655
f84c17c7
SM
226562011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
22657
22658 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
22659 first non-nil return value).
22660
ef3862ad
JD
226612011-04-03 Jan Djärv <jan.h.d@swipnet.se>
22662
22663 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
22664 if not defined (Bug#8403).
22665
376a7006
JB
226662011-04-02 Juanma Barranquero <lekktu@gmail.com>
22667
22668 * xdisp.c (display_count_lines): Remove parameter `start',
22669 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
22670 (get_char_face_and_encoding): Remove parameter `multibyte_p',
22671 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
22672 (fill_stretch_glyph_string): Remove parameters `row' and `area',
22673 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
22674 and thereabouts. All callers changed.
22675 (get_per_char_metric): Remove parameter `f', unused since
22676 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
22677
6ca3801d
JM
226782011-04-02 Jim Meyering <meyering@redhat.com>
22679
22680 do not dereference NULL upon failed strdup
22681 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
22682 (ns_get_family): Likewise.
22683
d8e2b5ba
JB
226842011-04-02 Juanma Barranquero <lekktu@gmail.com>
22685
22686 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
22687
8c74fcbd
JD
226882011-04-02 Jan Djärv <jan.h.d@swipnet.se>
22689
22690 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
22691 later (Bug#8403).
22692
7200d79c
SM
226932011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
22694
03408648 22695 Add lexical binding.
7200d79c 22696
03408648
SM
22697 * window.c (Ftemp_output_buffer_show): New fun.
22698 (Fsave_window_excursion):
22699 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
22700
22701 * lread.c (lisp_file_lexically_bound_p): New function.
22702 (Fload): Bind Qlexical_binding.
22703 (readevalloop): Remove `evalfun' arg.
22704 Bind Qinternal_interpreter_environment.
22705 (Feval_buffer): Bind Qlexical_binding.
22706 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
22707 Mark as dynamic.
22708 (syms_of_lread): Declare `lexical-binding'.
22709
22710 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
22711
22712 * keyboard.c (eval_dyn): New fun.
22713 (menu_item_eval_property): Use it.
ca105506
SM
22714
22715 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 22716
03408648
SM
22717 * fns.c (concat, mapcar1): Accept byte-code-functions.
22718
22719 * eval.c (Fsetq): Handle lexical vars.
22720 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
22721 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
22722 (FletX, Flet): Obey lexical binding.
22723 (Fcommandp): Handle closures.
22724 (Feval): New `lexical' arg.
22725 (eval_sub): New function extracted from Feval. Use it almost
22726 everywhere where Feval was used. Look up vars in lexical env.
22727 Handle closures.
22728 (Ffunctionp): Move from subr.el.
22729 (Ffuncall): Handle closures.
22730 (apply_lambda): Remove `eval_flags'.
22731 (funcall_lambda): Handle closures and new byte-code-functions.
22732 (Fspecial_variable_p): New function.
22733 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
22734 but without exporting it to Lisp.
23aba0ea 22735
23aba0ea 22736 * doc.c (Fdocumentation, store_function_docstring):
03408648 22737 * data.c (Finteractive_form): Handle closures.
23aba0ea 22738
03408648
SM
22739 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
22740 interactive spec.
ba83908c 22741
04f2d78b
CB
22742 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
22743 New byte-codes.
03408648
SM
22744 (exec_byte_code): New function extracted from Fbyte_code to handle new
22745 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 22746
03408648 22747 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 22748
03408648 22749 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 22750
e2abce01
JB
227512011-03-31 Juanma Barranquero <lekktu@gmail.com>
22752
22753 * xdisp.c (redisplay_internal): Fix prototype.
22754
63696a73 227552011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 22756
63696a73 22757 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
22758 (try_scrolling): Use it when setting scroll_limit.
22759 Limit scrolling to 100 screen lines.
63696a73
EZ
22760 (redisplay_window): Even when falling back on "recentering",
22761 position point in the window according to scroll-conservatively,
22762 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
22763
22764 (try_scrolling): When point is above the window, allow searching
22765 as far as scroll_max, or one screenful, to compute vertical
22766 distance from PT to the scroll margin position. This prevents
22767 try_scrolling from unnecessarily failing when
22768 scroll-conservatively is set to a value slightly larger than the
22769 window height. Clean up the case of PT below the margin at bottom
22770 of window: scroll_max can no longer be INT_MAX. When aggressive
22771 scrolling is in use, don't let point enter the opposite scroll
22772 margin as result of the scroll.
22773 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
22774 threshold of 100 lines for never-recentering scrolling.
22775
e4cc2dfc
JB
227762011-03-31 Juanma Barranquero <lekktu@gmail.com>
22777
22778 * dispextern.h (move_it_by_lines):
22779 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
22780 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
22781 (message_log_check_duplicate): Remove parameters `prev_bol' and
22782 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
22783 (redisplay_internal): Remove parameter `preserve_echo_area',
22784 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
22785
22786 * indent.c (Fvertical_motion):
22787 * window.c (window_scroll_pixel_based, Frecenter):
22788 Don't pass `need_y_p' to `move_it_by_lines'.
22789
1c470562
SM
227902011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
22791
44f230aa
SM
22792 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
22793 steal a few bits to be more compact.
22794 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
22795 Remove unneeded casts.
22796
1c470562
SM
22797 * bytecode.c (Fbyte_code): CAR and CDR can GC.
22798
888adce9
ZK
227992011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
22800
22801 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
22802 binding" message (bug#7967).
22803
f838ed7b
PE
228042011-03-30 Paul Eggert <eggert@cs.ucla.edu>
22805
77861b95
PE
22806 Fix more problems found by GCC 4.6.0's static checks.
22807
de6dbc14
PE
22808 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
22809 Remove unused local var.
22810
f838ed7b
PE
22811 * editfns.c (Fmessage_box): Remove unused local var.
22812
792c7b2b
PE
22813 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
22814 (note_mode_line_or_margin_highlight, note_mouse_highlight):
22815 Omit unused local vars.
c499e557 22816 * window.c (shrink_windows): Omit unused local var.
b01a1c29 22817 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
22818 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
22819 Omit unused local var.
22820
ba0165e1
PE
22821 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
22822 Don't assume string length fits in int.
32ad8845 22823 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 22824 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 22825
3c59b4c9
PE
22826 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
22827 instead of alloca (Bug#8344).
22828
a3eed478 22829 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 22830 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 22831
eb4d412d
PE
22832 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
22833
1658b401
PE
22834 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
22835 concerns.
22836
22837 * term.c (produce_glyphless_glyph): Remove unnecessary test.
22838
22839 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 22840
9a2c6e05
PE
22841 * keyboard.c (syms_of_keyboard): Use the same style as later
22842 in this function when indexing through an array. This also
22843 works around GCC bug 48267.
22844
03d0a109
PE
22845 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
22846
44f730c8
PE
22847 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
22848
fe75f926
PE
22849 * chartab.c (sub_char_table_ref_and_range): Redo for slight
22850 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
22851
ffa8c828
PE
22852 * keyboard.c, keyboard.h (num_input_events): Now size_t.
22853 This avoids undefined behavior on integer overflow, and is a bit
22854 more convenient anyway since it is compared to a size_t variable.
22855
c5101a77
PE
22856 Variadic C functions now count arguments with size_t, not int.
22857 This avoids an unnecessary limitation on 64-bit machines, which
22858 caused (substring ...) to crash on large vectors (Bug#8344).
22859 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
22860 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 22861 All variadic functions and their callers changed accordingly.
c5101a77
PE
22862 (struct gcpro.nvars): Now size_t, not int. All uses changed.
22863 * data.c (arith_driver, float_arith_driver): Likewise.
22864 * editfns.c (general_insert_function): Likewise.
22865 * eval.c (struct backtrace.nargs, interactive_p)
22866 (internal_condition_case_n, run_hook_with_args, apply_lambda)
22867 (funcall_lambda, mark_backtrace): Likewise.
22868 * fns.c (concat): Likewise.
22869 * frame.c (x_set_frame_parameters): Likewise.
22870 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
22871 0 if not found, not -1. All callers changed.
22872
dd3f25f7
PE
22873 * alloc.c (garbage_collect): Don't assume stack size fits in int.
22874 (stack_copy_size): Now size_t, not int.
22875 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
22876
461c2ab9
JB
228772011-03-28 Juanma Barranquero <lekktu@gmail.com>
22878
22879 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
22880 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
22881 All callers changed.
22882
22883 * lisp.h (multibyte_char_to_unibyte):
22884 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
22885 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
22886 * character.h (CHAR_TO_BYTE8):
22887 * cmds.c (internal_self_insert):
22888 * editfns.c (general_insert_function):
22889 * keymap.c (push_key_description):
22890 * search.c (Freplace_match):
22891 * xdisp.c (message_dolog, set_message_1): All callers changed.
22892
f6d62986
SM
228932011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
22894
22895 * keyboard.c (safe_run_hook_funcall): New function.
22896 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
22897 don't set the hook to nil, but remove the offending function instead.
22898 (Qcommand_hook_internal): Remove, unused.
22899 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
22900 Vcommand_hook_internal.
22901
22902 * eval.c (enum run_hooks_condition): Remove.
22903 (funcall_nil, funcall_not): New functions.
22904 (run_hook_with_args): Call each function through a `funcall' argument.
22905 Remove `cond' argument, now redundant.
22906 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
22907 (Frun_hook_with_args_until_failure): Adjust accordingly.
22908 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
22909
1db5b1ad
JB
229102011-03-28 Juanma Barranquero <lekktu@gmail.com>
22911
22912 * dispextern.h (string_buffer_position): Remove declaration.
22913
22914 * print.c (strout): Remove parameter `multibyte', unused since
22915 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
22916
22917 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
22918 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
22919 All callers changed.
22920
22921 * w32.c (_wsa_errlist): Use braces for struct initializers.
22922
22923 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
22924 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
22925 All callers changed.
22926 (string_buffer_position): Likewise. Also, make static (it's never
22927 used outside xdisp.c).
22928 (cursor_row_p): Remove parameter `w', unused since
22929 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
22930 (decode_mode_spec): Remove parameter `precision', introduced during
22931 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
22932 All callers changed.
22933
5ffb62aa
JD
229342011-03-27 Jan Djärv <jan.h.d@swipnet.se>
22935
22936 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
22937
461c2ab9 229382011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
22939
22940 * nsterm.m (ns_menu_bar_is_hidden): New variable.
22941 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
22942 (ns_update_auto_hide_menu_bar): New functions.
22943 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
22944 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
22945 ns_constrain_all_frames.
22946 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
22947 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
22948
5c380ffb
JD
229492011-03-27 Jan Djärv <jan.h.d@swipnet.se>
22950
22951 * nsmenu.m (runDialogAt): Remove argument to timer_check.
22952
9af30bdf
GM
229532011-03-27 Glenn Morris <rgm@gnu.org>
22954
22955 * syssignal.h: Replace RETSIGTYPE with void.
22956 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
22957 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
22958 Replace SIGTYPE with void everywhere.
22959 * s/usg5-4-common.h (SIGTYPE): Remove definition.
22960 * s/template.h (SIGTYPE): Remove commented out definition.
22961
e2abce01
JB
229622011-03-26 Eli Zaretskii <eliz@gnu.org>
22963
22964 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
22965 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
22966
f868cd8a
JB
229672011-03-26 Juanma Barranquero <lekktu@gmail.com>
22968
59eb0929
JB
22969 * w32.c (read_unc_volume): Use parameter `henum', instead of
22970 global variable `wget_enum_handle'.
22971
22972 * keymap.c (describe_vector): Remove parameters `indices' and
22973 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
22974 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
22975
f868cd8a
JB
22976 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
22977
22978 * keyboard.c (timer_check): Remove parameter `do_it_now',
22979 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
22980 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
22981 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
22982
22983 * keyboard.c (read_char):
22984 * w32menu.c (w32_menu_display_help):
22985 * xmenu.c (show_help_event, menu_help_callback):
22986 Adjust calls to `show_help_echo'.
22987
22988 * gtkutil.c (xg_maybe_add_timer):
22989 * keyboard.c (readable_events):
22990 * process.c (wait_reading_process_output):
22991 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
22992
22993 * insdel.c (adjust_markers_gap_motion):
22994 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
22995 (gap_left, gap_right): Don't call it.
22996
2ecf6fdb
CY
229972011-03-25 Chong Yidong <cyd@stupidchicken.com>
22998
22999 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
23000 incurred during fontification.
23001
6b1f9ba4
JB
230022011-03-25 Juanma Barranquero <lekktu@gmail.com>
23003
23004 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
23005 (DEFVAR_PER_BUFFER): Don't pass it.
23006
23007 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
23008 (scrolling_window): Don't pass it.
23009
0f4a96b5
JB
230102011-03-25 Juanma Barranquero <lekktu@gmail.com>
23011
23012 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
23013
23014 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
23015 and `suffix'.
23016 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
23017 of variables specific to SELinux and computation of `encoded_absname'.
23018
23019 * image.c (XPutPixel): Remove unused variable `height'.
23020
23021 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
23022
23023 * unexw32.c (get_section_info): Remove unused variable `section'.
23024
23025 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
23026 (system_process_attributes): Remove unused variable `sess'.
23027 (sys_read): Remove unused variable `err'.
23028
23029 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
23030 (w32_wnd_proc): Remove unused variable `isdead'.
23031 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
23032 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
23033 (x_create_tip_frame): Remove unused variable `tem'.
23034
23035 * w32inevt.c (w32_console_read_socket):
23036 Remove unused variable `no_events'.
23037
23038 * w32term.c (x_draw_composite_glyph_string_foreground):
23039 Remove unused variable `width'.
23040
1149507c
JB
230412011-03-24 Juanma Barranquero <lekktu@gmail.com>
23042
23043 * w32term.c (x_set_glyph_string_clipping):
23044 Don't pass uninitialized region to CombineRgn.
23045
9c88f339
JB
230462011-03-23 Juanma Barranquero <lekktu@gmail.com>
23047
23048 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
23049 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
23050 (Fx_close_connection): Remove unused variable `i'.
23051
23052 * w32font.c (w32font_draw): Return number of glyphs.
23053 (w32font_open_internal): Remove unused variable `i'.
23054 (w32font_driver): Add missing initializer.
23055
23056 * w32menu.c (utf8to16): Remove unused variable `utf16'.
23057 (fill_in_menu): Remove unused variable `items_added'.
23058
23059 * w32term.c (last_mouse_press_frame): Remove static global variable.
23060 (w32_clip_to_row): Remove unused variable `f'.
23061 (x_delete_terminal): Remove unused variable `i'.
23062
23063 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
23064 (NOTHING): Remove unused static global variable.
23065 (uniscribe_check_otf): Remove unused variable `table'.
23066 (uniscribe_font_driver): Add missing initializers.
23067
dee091a3
JD
230682011-03-23 Julien Danjou <julien@danjou.info>
23069
23070 * term.c (Fsuspend_tty, Fresume_tty):
23071 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
23072 * window.c (temp_output_buffer_show):
23073 * insdel.c (signal_before_change):
23074 * frame.c (Fhandle_switch_frame):
23075 * fileio.c (Fdo_auto_save):
23076 * emacs.c (Fkill_emacs):
23077 * editfns.c (save_excursion_restore):
23078 * cmds.c (internal_self_insert):
23079 * callint.c (Fcall_interactively):
23080 * buffer.c (Fkill_all_local_variables):
23081 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
23082 Use Frun_hooks.
0f4a96b5 23083 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 23084 unconditionally since it does the check itself.
dee091a3 23085
2c520ab5 230862011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 23087
c9c49752
PE
23088 Fix more problems found by GCC 4.5.2's static checks.
23089
8abc3f12
PE
23090 * coding.c (encode_coding_raw_text): Avoid unnecessary test
23091 the first time through the loop, since we know p0 < p1 then.
23092 This also avoids a gcc -Wstrict-overflow warning.
23093
a2d26660
PE
23094 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
23095 leading to a memory leak, possible in functions like
23096 load_charset_map_from_file that can allocate an unbounded number
b12ef411 23097 of objects (Bug#8318).
a2d26660 23098
916c72e9
PE
23099 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
23100 that could (at least in theory) be that large.
23101
19ab8a18
PE
23102 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
23103 This is less likely to overflow, and avoids undefined behavior if
23104 overflow does occur. All callers changed. Use strtoul to scan
23105 for the unsigned long integer.
b7cbbd6f
PE
23106 (pint2hrstr): Simplify and tune code slightly.
23107 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 23108
f0641eff
PE
23109 * scroll.c (do_scrolling): Work around GCC bug 48228.
23110 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
23111
7f650bb9
PE
23112 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
23113 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
23114 (validate_x_resource_name): Simplify count usage.
23115 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 23116
37dd57d1
PE
23117 * fileio.c (Fcopy_file): Report error if fchown or fchmod
23118 fail (Bug#8306).
81e56e61 23119
699979fc 23120 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 23121
401bf9b4
PE
23122 * process.c (Fmake_network_process): Use socklen_t, not int,
23123 where POSIX says socklen_t is required in portable programs.
23124 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 23125 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
23126 (Fmake_network_process, server_accept_connection):
23127 (wait_reading_process_output, read_process_output):
23128 Likewise.
23129
b93aacde
PE
23130 * process.c: Rename or move locals to avoid shadowing.
23131 (list_processes_1, Fmake_network_process):
23132 (read_process_output_error_handler, exec_sentinel_error_handler):
23133 Rename or move locals.
4dc343ee 23134 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 23135 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 23136 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 23137 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 23138 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 23139
af8a867c 23140 Make tparam.h and terminfo.c consistent.
44f230aa
SM
23141 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
23142 Include tparam.h instead, since it declares them.
af8a867c
PE
23143 * cm.h (PC): Remove extern decl; tparam.h now does this.
23144 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
23145 * terminfo.c: Include tparam.h, to check interfaces.
23146 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
23147 (tparam): Adjust signature to match interface in tparam.h;
23148 this removes some undefined behavior. Check that outstring and len
23149 are zero, which they always are with Emacs.
23150 * tparam.h (PC, BC, UP): New extern decls.
23151
0248044d 23152 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 23153 (xftfont_open): Rename locals to avoid shadowing.
0248044d 23154
8ff096c1 23155 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
23156 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
23157 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 23158 (ftfont_list): Remove unused local.
49eaafba
PE
23159 (get_adstyle_property, ftfont_pattern_entity):
23160 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
23161 Rename locals to avoid shadowing.
8ff096c1 23162
e2be39f6
PE
23163 * xfont.c (xfont_list_family): Mark var as initialized.
23164
c9735e30
PE
23165 * xml.c (make_dom): Now static.
23166
8f5201ae
PE
23167 * composite.c (composition_compute_stop_pos): Rename local to
23168 avoid shadowing.
b246f932
PE
23169 (composition_reseat_it): Remove unused locals.
23170 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 23171 (composition_update_it): Mark var as initialized.
11b61122
PE
23172 (find_automatic_composition): Mark vars as initialized,
23173 with a FIXME (Bug#8290).
8f5201ae 23174
760fbc2c
PE
23175 character.h: Rename locals to avoid shadowing.
23176 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
23177 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
23178 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
23179 (BUF_DEC_POS): Be more systematic about renaming local temporaries
23180 to avoid shadowing.
23181
ff08eb85
PE
23182 * textprop.c (property_change_between_p): Remove; unused.
23183
fc7bf025
PE
23184 * intervals.c (interval_start_pos): Now static.
23185
235d7abc
PE
23186 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
23187
44f230aa
SM
23188 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
23189 Rename locals to avoid shadowing.
3e7d6594 23190
50060332
PE
23191 * sound.c (wav_play, au_play, Fplay_sound_internal):
23192 Fix pointer signedness.
d01f234b 23193 (alsa_choose_format): Remove unused local var.
c83b8872
PE
23194 (wav_play): Initialize a variable to 0, to prevent undefined
23195 behavior (Bug#8278).
50060332 23196
c4fc4e30
PE
23197 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
23198
918436ed
PE
23199 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
23200
c939f91b
PE
23201 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
23202 clobbering (Bug#8298).
b9c7f648
PE
23203 * sysdep.c (sys_subshell): Likewise.
23204 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 23205
6bd8c144
PE
23206 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
23207 This should get cleaned up, so that child_setup has the
23208 same signature on all platforms.
23209
7710357c 23210 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 23211 (relocate_fd): Rename locals to avoid shadowing.
7710357c 23212
c59da222
CY
232132011-03-22 Chong Yidong <cyd@stupidchicken.com>
23214
23215 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
23216 not to be necessary, and produces flickering.
23217
66b87493
GM
232182011-03-20 Glenn Morris <rgm@gnu.org>
23219
23220 * config.in: Remove file.
23221
45b6f6d5
JB
232222011-03-20 Juanma Barranquero <lekktu@gmail.com>
23223
23224 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
23225 are now in src/globals.h.
23226 (syms_of_minibuf): Remove spurious & from previous change.
23227
cd394be1 232282011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
23229
23230 * minibuf.c (completing-read-function): New variable.
23231 (completing-read-default): Rename from completing-read.
23232 (completing-read): Call completing-read-function.
23233
b14e3e21
CY
232342011-03-19 Juanma Barranquero <lekktu@gmail.com>
23235
23236 * xfaces.c (Fx_load_color_file):
23237 Read color file from absolute filename (bug#8250).
23238
f2b726e6
JB
232392011-03-19 Juanma Barranquero <lekktu@gmail.com>
23240
23241 * makefile.w32-in: Update dependencies.
23242
09f6ff02
EZ
232432011-03-17 Eli Zaretskii <eliz@gnu.org>
23244
23245 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
23246
29a6015a
PE
232472011-03-17 Paul Eggert <eggert@cs.ucla.edu>
23248
a3a6c54e
PE
23249 Fix more problems found by GCC 4.5.2's static checks.
23250
b766f867
PE
23251 * process.c (make_serial_process_unwind, send_process_trap):
23252 (sigchld_handler): Now static.
23253
be02381c
PE
23254 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
23255 That way, the code declares only the vars that it needs.
23256 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
23257 * s/cygwin.h (PTY_ITERATION): Likewise.
23258 * s/darwin.h (PTY_ITERATION): Likewise.
23259 * s/gnu-linux.h (PTY_ITERATION): Likewise.
23260
57048744
PE
23261 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
23262 * process.c (allocate_pty): Don't declare stb unless it's needed.
23263
7914961c 23264 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
23265 (CONSTANTLIM): Remove; unused.
23266 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
23267 Define only if needed.
7914961c 23268
b3967b18
PE
23269 * unexelf.c (unexec): Name an expression,
23270 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
23271 Use a different way to cause a compilation error if anyone uses
23272 n rather than nn, a way that does not involve shadowing.
73366a00 23273 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 23274
29a6015a
PE
23275 * deps.mk (unexalpha.o): Remove; unused.
23276
43cfc33e 23277 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 23278 * unexec.h: New file.
ce701a33
PE
23279 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
23280 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
23281 Depend on unexec.h.
23282 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
23283 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
23284 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 23285 Change as necessary to match prototype in unexec.h.
ce701a33 23286
01f44d5a
PE
23287 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
23288 shadowing.
4f63c6bb 23289 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 23290
a6670b0b
PE
23291 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
23292 Rename locals to avoid shadowing.
23293
cef2010d 23294 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 23295 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 23296
d4d7173a
PE
23297 * print.c (Fredirect_debugging_output): Fix pointer signedess.
23298
f08b802a
PE
23299 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
23300 warning when compiling print.c.
23301
3ddb0639
PE
23302 * font.c (font_unparse_fcname): Abort in an "impossible" situation
23303 instead of using an uninitialized var.
5ad03b97 23304 (font_sort_entities): Mark var as initialized.
3ddb0639 23305
170a2692
PE
23306 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
23307
e663c700
PE
23308 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
23309 pointers to constants.
89bc529a 23310 (font_parse_fcname): Remove unused vars.
7b81e2d0 23311 (font_delete_unmatched): Now static.
ea838e10 23312 (font_get_spec): Remove; unused.
13a547c6
PE
23313 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
23314 (font_update_drivers, Ffont_get_glyphs, font_add_log):
23315 Rename or move locals to avoid shadowing.
e663c700 23316
2a80c887 23317 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 23318 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 23319
1384fa33 23320 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 23321 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 23322
8b2c52e9
PE
23323 * alloc.c (mark_backtrace): Move decl from here ...
23324 * lisp.h: ... to here, so that it can be checked.
23325
475545b5 23326 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 23327 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
23328 (lisp_indirect_variable): Name an expression,
23329 to avoid gcc -Wbad-function-cast warning.
1faed8ae 23330 (Fdefvar): Rename locals to avoid shadowing.
475545b5 23331
b1349114 23332 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 23333 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 23334 Use const pointer when appropriate.
b1349114 23335
a2928364
PE
23336 * lisp.h (get_system_name, get_operating_system_release):
23337 Move decls here, to check interfaces.
23338 * process.c (get_operating_system_release): Move decl to lisp.h.
23339 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
23340 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
23341 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
23342 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
23343 (Fformat_time_string, Fencode_time, Finsert_char):
23344 (Ftranslate_region_internal, Fformat):
23345 Rename or remove local vars to avoid shadowing.
9710023e 23346 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 23347
a415e694
PE
23348 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
23349 avoid shadowing.
23350
8ef4622d
PE
23351 * lisp.h (eassert): Check that the argument compiles, even if
23352 ENABLE_CHECKING is not defined.
23353
946f9a5b
PE
23354 * data.c (Findirect_variable): Name an expression, to avoid
23355 gcc -Wbad-function-cast warning.
112396d6 23356 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 23357 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
23358 (Fmake_variable_buffer_local, Fmake_local_variable):
23359 Mark variables as initialized.
52746918 23360 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 23361
e5aab7e7 23362 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
23363 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
23364 Rename locals to avoid shadowing.
dff45157
PE
23365 (mark_stack): Move local variables into the #ifdef region where
23366 they're used.
7bc26fdb
PE
23367 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
23368 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
23369 needed otherwise.
23370 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
23371 (GC_STRING_CHARS): Remove; not used.
d40d4be1 23372 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 23373
e5aab7e7
PE
23374 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
23375 avoids undefined behavior in theory.
23376
4da60324
PE
23377 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
23378
88043301
PE
23379 Use functions, not macros, for up- and down-casing (Bug#8254).
23380 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
23381 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
23382 to use the following functions instead of these macros.
23383 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
23384 EMACS_INT, since callers assume the returned value fits in int.
23385 (upcase1): Likewise, for UPCASE_TABLE.
23386 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 23387 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 23388 the race-condition problem in the old DOWNCASE.
88043301 23389
19ed5445
PE
23390 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
23391 Rename locals to avoid shadowing.
23392 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
23393 (regex_compile, re_search_2, re_match_2_internal):
23394 Remove unused local vars.
952db0d7
PE
23395 (FREE_VAR): Rewrite so as not to use empty "else",
23396 which gcc can warn about.
da053e48 23397 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
23398 (RETALLOC_IF): Define only if needed.
23399 (WORDCHAR_P): Likewise. This one is never needed, but is used
23400 only in a comment talking about a compiler bug, so put inside
23401 the #if 0 of that comment.
23402 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
23403 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
23404 Remove; unused.
19ed5445 23405
1f3561e4 23406 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
23407 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
23408 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 23409
ded6f8f7
PE
23410 * search.c (simple_search): Remove unused var.
23411
dbd37a95
PE
23412 * dired.c (compile_pattern): Move decl from here ...
23413 * lisp.h: ... to here, so that it can be checked.
23414 (struct re_registers): New forward decl.
23415
7e47afad
PE
23416 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
23417
85f24f61
PE
23418 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
23419 All uses changed.
23420 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
23421 Rename locals to avoid shadowing.
5671df8f 23422 (Fvertical_motion): Mark locals as initialized.
85f24f61 23423
181aa2be 23424 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 23425 (casify_region): Mark local as initialized.
181aa2be 23426
930d429c
PE
23427 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
23428
7082eac6
PE
23429 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
23430 New macros, so that the caller can use some names other than
23431 gcpro1, gcpro2, etc.
23432 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
23433 of the new macros.
23434 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
23435 argument, for consistency with GCPRO2_VAR, etc: it is now the
23436 prefix of the variable, not the variable itself. All uses
23437 changed.
38b2c076
PE
23438 * dired.c (directory_files_internal, file_name_completion):
23439 Rename locals to avoid shadowing.
23440
15206ed9
PE
23441 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
23442 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
23443 dired.c's scmp function, had undefined behavior.
23444 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
23445 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
23446 * buffer.h: ... to here, because these macros use current_buffer,
23447 and the new implementation with inline functions needs to have
23448 current_buffer in scope now, rather than later when the macros
23449 are used.
23450 (downcase, upcase1): New static inline functions.
23451 (DOWNCASE, UPCASE1): Reimplement using these functions.
23452 This avoids undefined behavior in expressions like
23453 DOWNCASE (x) == DOWNCASE (y), which previously suffered
23454 from race conditions in accessing the global variables
23455 case_temp1 and case_temp2.
23456 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
23457 * lisp.h (case_temp1, case_temp2): Remove their decls.
23458 * character.h (ASCII_CHAR_P): Move from here ...
23459 * lisp.h: ... to here, so that the inline functions mentioned
23460 above can use them.
23461
4a6bea26
PE
23462 * dired.c (directory_files_internal_unwind): Now static.
23463
f14b7e14
PE
23464 * fileio.c (file_name_as_directory, directory_file_name):
23465 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
23466 Now static.
2893f146
PE
23467 (file_name_as_directory): Use const pointers when appropriate.
23468 (Fexpand_file_name): Likewise. In particular, newdir might
23469 point at constant storage, so make it a const pointer.
fd4ead52 23470 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
23471 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
23472 signedness issues.
f839df0c
PE
23473 (Fset_file_times, Finsert_file_contents, auto_save_error):
23474 Rename locals to avoid shadowing.
f14b7e14 23475
5716756e 23476 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
23477 (Ftry_completion, Fall_completions): Rename or remove locals
23478 to avoid shadowing.
5716756e 23479
b4c3046a
PE
23480 * marker.c (bytepos_to_charpos): Remove; unused.
23481
b45db522
PE
23482 * lisp.h (verify_bytepos, count_markers): New decls,
23483 so that gcc does not warn that these functions aren't declared.
23484
85876d07
PE
23485 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
23486 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 23487 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 23488 (copy_text): Remove unused local var.
85876d07 23489
03d78a21 23490 * filelock.c (within_one_second): Now static.
b3dd38ab 23491 (lock_file_1): Rename local to avoid shadowing.
03d78a21 23492
5df8f01b
PE
23493 * buffer.c (fix_overlays_before): Mark locals as initialized.
23494 (fix_start_end_in_overlays): Likewise. This function should be
23495 simplified by using pointers-to-pointers, but that's a different
23496 matter.
b1d876f1 23497 (switch_to_buffer_1): Now static.
8f54f30a
PE
23498 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
23499 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 23500
a70072c9 23501 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 23502 Fix pointer signedness issue.
edced198
PE
23503 (sys_subshell): Mark local as volatile if checking for lint,
23504 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 23505 (MAXPATHLEN): Define only if needed.
a70072c9 23506
a0977c44
PE
23507 * process.c (serial_open, serial_configure): Move decls from here ...
23508 * systty.h: ... to here, so that they can be checked.
23509
a884fdcc
PE
23510 * fns.c (get_random, seed_random): Move extern decls from here ...
23511 * lisp.h: ... to here, so that they can be checked.
23512
604efe86 23513 * sysdep.c (reset_io): Now static.
b8950c94 23514 (wait_for_termination_signal): Remove; unused.
604efe86 23515
38fc62d9
PE
23516 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
23517 (copy_keymap_item, append_key, push_text_char_description):
23518 Now static.
1004a21a 23519 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 23520 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
23521 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
23522 (describe_map_tree):
23523 Rename locals to avoid shadowing.
38fc62d9 23524
2f2650da
PE
23525 * keyboard.c: Declare functions static if they are not used elsewhere.
23526 (echo_char, echo_dash, cmd_error, top_level_2):
23527 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
23528 (read_char, kbd_buffer_get_event, make_lispy_position):
23529 (make_lispy_event, make_lispy_movement, apply_modifiers):
23530 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
23531 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
23532 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 23533 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 23534 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 23535
a053e86c 23536 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
23537 (mark_kboards): Move decl here ...
23538 * alloc.c (mark_kboards): ... from here.
a053e86c 23539
4752793e
PE
23540 * lisp.h (force_auto_save_soon): New decl.
23541
74f10ca7 23542 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
23543 (DEFINE_DUMMY_FUNCTION): New macro.
23544 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
23545 Use it.
c03cd23f
PE
23546 (main): Add casts to avoid warnings
23547 if GCC considers string literals to be constants.
74f10ca7 23548
022e70d4
PE
23549 * lisp.h (fatal_error_signal): Add decl, since it's exported.
23550
59d6fe83
PE
23551 * dbusbind.c: Pointer signedness fixes.
23552 (xd_signature, xd_append_arg, xd_initialize):
23553 (Fdbus_call_method, Fdbus_call_method_asynchronously):
23554 (Fdbus_method_return_internal, Fdbus_method_error_internal):
23555 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
23556 (Fdbus_register_signal): Use SSDATA when the context wants char *.
23557
78320123
PE
23558 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
23559 if GCC considers string literals to be constants.
49cebcca 23560 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 23561
35ac2a97
SM
235622011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
23563
fb103ca9
SM
23564 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
23565 (print_preprocess, print_object): New macro to fix last change.
23566
35ac2a97
SM
23567 * print.c (print_preprocess): Don't forget font objects.
23568
62973b41
JB
235692011-03-16 Juanma Barranquero <lekktu@gmail.com>
23570
23571 * emacs.c (USAGE3): Doc fixes.
23572
0e48bb22
AS
235732011-03-15 Andreas Schwab <schwab@linux-m68k.org>
23574
23575 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
23576 structure.
23577
7684e57b
JB
235782011-03-14 Juanma Barranquero <lekktu@gmail.com>
23579
23580 * lisp.h (VWindow_system, Qfile_name_history):
23581 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
23582 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
23583 (w32_system_caret_x, w32_system_caret_y): Declare extern.
23584
23585 * w32select.c: Don't #include "keyboard.h".
c96bbc66 23586 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
23587
23588 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
23589 * w32console.c (detect_input_pending, read_input_pending)
23590 (encode_terminal_code):
23591 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
23592 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
23593 (w32_system_caret_y, Qfile_name_history):
23594 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
23595 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
23596 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
23597 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
23598 * w32proc.c (Qlocal, report_file_error):
23599 * w32term.c (Vwindow_system, updating_frame):
23600 * w32uniscribe.c (initialized, uniscribe_font_driver):
23601 Remove unneeded extern declarations.
23602
2aa46d6c
CY
236032011-03-14 Chong Yidong <cyd@stupidchicken.com>
23604
c96bbc66 23605 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 23606
cffc6f3b
CY
236072011-03-13 Chong Yidong <cyd@stupidchicken.com>
23608
23609 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
23610 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
23611 These macros can no longer be used for assignment.
23612
44f230aa
SM
23613 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
23614 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
23615 (record_buffer_markers, fetch_buffer_markers): New functions for
23616 recording and fetching special buffer markers.
23617 (set_buffer_internal_1, set_buffer_temp): Use them.
23618
23619 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
23620
23621 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
23622
23623 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
23624 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
23625
23626 * xdisp.c (hscroll_window_tree):
23627 (reconsider_clip_changes): Use PT instead of BUF_PT.
23628
d251f04b
EZ
236292011-03-13 Eli Zaretskii <eliz@gnu.org>
23630
23631 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
23632 $(EMACS_ROOT)/lib/intprops.h.
23633
f0c77cd1
PE
236342011-03-13 Paul Eggert <eggert@cs.ucla.edu>
23635
3eca4629
PE
23636 Fix more problems found by GCC 4.5.2's static checks.
23637
7c86ee98
PE
23638 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
23639 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
23640 (xg_free_frame_widgets): Make it clear that a local variable is
23641 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
23642 (gdk_window_get_screen): Make it clear that this macro is needed
23643 only if USE_GTK_TOOLTIP.
1e5524e7
PE
23644 (int_gtk_range_get_value): New function, which avoids a diagnostic
23645 from gcc -Wbad-function-cast.
23646 (xg_set_toolkit_scroll_bar_thumb): Use it.
23647 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
23648 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
23649 (get_utf8_string, xg_get_file_with_chooser):
23650 Rename locals to avoid shadowing.
23651 (create_dialog): Move locals to avoid shadowing.
7c86ee98 23652
41729b81
PE
23653 * xgselect.c (xg_select): Remove unused var.
23654
f0c77cd1
PE
23655 * image.c (four_corners_best): Mark locals as initialized.
23656 (gif_load): Initialize transparent_p to zero (Bug#8238).
23657 Mark another local as initialized.
ec6cf4c6 23658 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 23659
ce0ad53d 23660 * image.c (clear_image_cache): Now static.
d5d5a617 23661 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 23662 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
23663 (x_edge_detection): Remove unnecessary cast that
23664 gcc -Wbad-function-cast diagnoses.
2037898d 23665 (gif_load): Fix pointer signedness.
6ae141d6
PE
23666 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
23667 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 23668
33383987 236692011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 23670
d32df629
PE
23671 Improve quality of tests for time stamp overflow.
23672 For example, without this patch (encode-time 0 0 0 1 1
23673 1152921504606846976) returns the obviously-bogus value (-948597
23674 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
23675 reports time overflow. See
23676 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
23677 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
23678 * editfns.c: Include limits.h and intprops.h.
23679 (TIME_T_MIN, TIME_T_MAX): New macros.
23680 (time_overflow): Move earlier, to before first use.
23681 (hi_time, lo_time): New functions, for an accurate test for
23682 out-of-range times.
23683 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
23684 (Fget_internal_run_time): Don't assume time_t fits in int.
23685 (make_time): Use list2 instead of Fcons twice.
23686 (Fdecode_time): More accurate test for out-of-range times.
23687 (check_tm_member): New function.
23688 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
23689 (lisp_time_argument): Don't rely on undefined left-shift and
23690 right-shift behavior when checking for time stamp overflow.
8be6f318 23691
fe31d94c
PE
23692 * editfns.c (time_overflow): New function, refactoring common code.
23693 (Fformat_time_string, Fdecode_time, Fencode_time):
23694 (Fcurrent_time_string): Use it.
23695
8be6f318
PE
23696 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
23697 * dired.c (make_time): Move to ...
23698 * editfns.c (make_time): ... here.
23699 * systime.h: Note the move.
23700
09d9db2c 237012011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 23702
126bc0dc
YM
23703 * fringe.c (update_window_fringes): Remove unused variables.
23704
c47cbdfd
YM
23705 * unexmacosx.c (copy_data_segment): Also copy __got section.
23706 (Bug#8223)
23707
7ac80be9
EZ
237082011-03-12 Eli Zaretskii <eliz@gnu.org>
23709
c96bbc66 23710 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
23711 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
23712 Constify `char *' arguments and their references according to
23713 prototypes in tparam.h.
23714
ecb0f94d 23715 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 23716
7ac80be9
EZ
23717 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
23718 Adapt all references accordingly.
23719
23720 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
23721
ef1fd07e
TT
237222011-03-11 Tom Tromey <tromey@redhat.com>
23723
23724 * buffer.c (syms_of_buffer): Remove obsolete comment.
23725
7ef4b50c
EZ
237262011-03-11 Eli Zaretskii <eliz@gnu.org>
23727
23728 * termhooks.h (encode_terminal_code): Declare prototype.
23729
23730 * msdos.c (encode_terminal_code): Don't declare prototype.
23731
23732 * term.c (encode_terminal_code): Now external again, used by
23733 w32console.c and msdos.c.
23734
44f230aa
SM
23735 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
23736 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 23737
4b1ec863 237382011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 23739
1714f52b 23740 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 23741
4b1ec863
PE
23742 * fringe.c (update_window_fringes): Mark locals as initialized
23743 (Bug#8227).
23744 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 23745
524c7aa6
PE
23746 * alloc.c (mark_fringe_data): Move decl from here ...
23747 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
23748 to check its interface.
23749 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
23750
a5c0af81 23751 * fontset.c (free_realized_fontset): Now static.
7519b8cd 23752 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 23753 (fontset_font): Mark local as initialized.
a9a06e0b 23754 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 23755
b4716021
PE
23756 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
23757
811e9bac 23758 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 23759 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
23760 (x_own_selection, Fx_disown_selection_internal): Rename locals
23761 to avoid shadowing.
23762 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 23763
7e3ab302
PE
23764 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
23765 so that the caller can use some name other than gcpro1.
23766 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
23767 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
23768 (Fx_backspace_delete_keys_p):
23769 Use them to avoid shadowing, and rename vars to avoid shadowing.
23770 (x_decode_color, x_set_name, x_window): Now static.
6b437900 23771 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 23772 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
23773 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
23774 Remove unused locals.
7e3ab302
PE
23775 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
23776 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
23777 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
23778 macros.
f78faa98 23779
e2b13473
PE
23780 * xterm.h (x_mouse_leave): New decl.
23781
77f23912
PE
23782 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
23783 Remove unused functions.
cdf4ba58
PE
23784 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
23785 (x_calc_absolute_position): Now static.
7411c686 23786 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 23787 Don't declare local "event" unless it's used.
ed7bf3a5
PE
23788 (x_iconify_frame, x_free_frame_resources): Don't declare locals
23789 unless they are used.
38d0b34a
PE
23790 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
23791 (x_fatal_error_signal): Remove; not used.
a6067996
PE
23792 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
23793 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
23794 (x_error_catcher, x_connection_closed, x_error_handler):
23795 (x_error_quitter, xembed_send_message, x_iconify_frame):
23796 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 23797 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 23798 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 23799
44f230aa
SM
23800 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
23801 Rename or move locals to avoid shadowing.
6b463e58 23802 (tty_defined_color, merge_face_heights): Now static.
5967d051 23803 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
23804 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
23805 does not deduce is never used uninitialized.
73719eba
PE
23806 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
23807 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 23808
426994c3 23809 * terminal.c (store_terminal_param): Now static.
5489860b 23810
032f1620 23811 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 23812 (set_frame_menubar): Remove unused local.
d4323972 23813 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
23814 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
23815 since they might point to immutable storage.
281585b0
PE
23816 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
23817 since it's unused otherwise.
032f1620 23818
367c19e5 23819 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 23820 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
23821 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
23822 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 23823 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
23824 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
23825 does not deduce are never used uninitialized.
70739cbe 23826
07b48fa9
PE
23827 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
23828
8868a238 23829 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
23830 * window.c (window_loop, size_window):
23831 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 23832
7e5cf297 23833 * window.c (display_buffer): Now static.
d6550a9f
PE
23834 (size_window): Mark variables that gcc -Wuninitialized
23835 does not deduce are never used uninitialized.
a586633d
PE
23836 * window.h (check_all_windows): New decl, to forestall
23837 gcc -Wmissing-prototypes diagnostic.
5b555da1 23838 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 23839
f6095868
PE
23840 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
23841 shadowing.
23842 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
23843 Include <limits.h>.
23844 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
23845 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
23846 (load_charset_map): Mark variables that gcc -Wuninitialized
23847 does not deduce are never used uninitialized.
53df7c11 23848 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 23849
f38b440c
PE
23850 * coding.c (coding_set_source, coding_set_destination):
23851 Use "else { /* comment */ }" rather than "else /* comment */;"
23852 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
23853 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
23854 a block, when the outer 'i' will do.
23855 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
23856 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
23857 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
23858 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
23859 (Fdecode_sjis_char, Fdefine_coding_system_internal):
23860 Rename locals to avoid shadowing.
23861 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
23862 * coding.c (emacs_mule_char, encode_invocation_designation):
23863 Now static, since they're not used elsewhere.
413bb2db 23864 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 23865 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
23866 (decode_coding_emacs_mule): Mark variables that gcc
23867 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
23868 (detect_coding_iso_2022): Initialize a local variable that might
23869 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 23870 this initialization is needed. (Bug#8211)
5f58e762
PE
23871 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
23872 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
23873 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
23874 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
23875 Remove unused macros.
f38b440c 23876
232b38b9 23877 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 23878 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 23879 * character.c (string_count_byte8): Likewise.
232b38b9 23880
fb90da1b
PE
23881 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
23882 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
23883
fb93dbc2
PE
23884 * chartab.c (copy_sub_char_table): Now static, since it's not used
23885 elsewhere.
5c156ace
PE
23886 (sub_char_table_ref_and_range, char_table_ref_and_range):
23887 Rename locals to avoid shadowing.
bbcd0949 23888 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 23889
7d3b3862 23890 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 23891 (BIDI_BOB): Remove unused macro.
7d3b3862 23892
6be7d3da
PE
23893 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
23894 deduce are never used uninitialized.
c2ed9c8b 23895 * term.c (encode_terminal_code): Likewise.
6be7d3da 23896
75f8807f 23897 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 23898
50938595
PE
23899 * tparam.h: New file.
23900 * term.c, tparam.h: Include it.
23901 * deps.mk (term.o, tparam.o): Depend on tparam.h.
23902 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
23903 Move these decls to tparam.h, and make them agree with what
23904 is actually in tparam.c. The previous trick of using incompatible
23905 decls in different modules does not conform to the C standard.
23906 All callers of tparam changed to use tparam's actual API.
23907 * tparam.c (tparam1, tparam, tgoto):
23908 Use const pointers where appropriate.
23909
fbceeba2
PE
23910 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
23911 * cm.h (struct cm): Likewise.
23912 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
23913 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
23914 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
23915 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
23916 (turn_on_face, init_tty): Likewise.
23917 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 23918
7f3f1250
PE
23919 * term.c (term_mouse_position): Rename local to avoid shadowing.
23920
e6ca6543
PE
23921 * alloc.c (mark_ttys): Move decl from here ...
23922 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
23923
c40f8d15
AS
239242011-03-11 Andreas Schwab <schwab@linux-m68k.org>
23925
23926 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
23927
cfe0661d
JB
239282011-03-09 Juanma Barranquero <lekktu@gmail.com>
23929
23930 * search.c (compile_pattern_1): Remove argument regp, unused since
23931 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
23932 (compile_pattern): Don't pass it.
23933
0afb4571
J
239342011-03-08 Jan Djärv <jan.h.d@swipnet.se>
23935
23936 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
23937 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
23938 for ! HAVE_GTK3.
23939 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
23940
23941 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
23942
23943 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
23944 gdk_window_get_screen, gdk_window_get_geometry,
23945 gdk_x11_window_lookup_for_display and GDK_KEY_g.
23946 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
23947 (xg_get_pixbuf_from_pixmap): New function.
23948 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
23949 to Pixmap, take frame as parameter, remove GdkColormap parameter.
23950 Call xg_get_pixbuf_from_pixmap instead of
23951 gdk_pixbuf_get_from_drawable.
23952 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
23953 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
23954 (xg_check_special_colors): Use GtkStyleContext and its functions
23955 for HAVE_GTK3.
23956 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
23957 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
23958 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
23959 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
23960 Call gtk_widget_get_preferred_size.
0afb4571
J
23961 (xg_frame_resized): gdk_window_get_geometry only takes 5
23962 parameters.
44f230aa
SM
23963 (xg_win_to_widget, xg_event_is_for_menubar):
23964 Call gdk_x11_window_lookup_for_display.
0afb4571
J
23965 (xg_set_widget_bg): New function.
23966 (delete_cb): New function.
895009e1 23967 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 23968 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
23969 (xg_set_background_color): Call xg_set_widget_bg.
23970 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
23971 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
23972 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
23973 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
23974 if ! HAVE_GTK3.
23975 (update_frame_tool_bar): Call gtk_widget_hide.
23976 (xg_initialize): Use GDK_KEY_g.
23977
23978 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
23979 if ! HAVE_GTK3
23980 (x_session_initialize): Call gdk_x11_set_sm_client_id.
23981
23982 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
23983 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
23984 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
23985
1c2cc4ef
JB
239862011-03-08 Juanma Barranquero <lekktu@gmail.com>
23987
23988 * w32xfns.c (select_palette): Check success of RealizePalette against
23989 GDI_ERROR, not zero.
23990
33383987 23991See ChangeLog.11 for earlier changes.
aac0c6e3
MR
23992
23993;; Local Variables:
23994;; coding: utf-8
aac0c6e3
MR
23995;; End:
23996
ab422c4d 23997 Copyright (C) 2011-2013 Free Software Foundation, Inc.
aac0c6e3
MR
23998
23999 This file is part of GNU Emacs.
24000
24001 GNU Emacs is free software: you can redistribute it and/or modify
24002 it under the terms of the GNU General Public License as published by
24003 the Free Software Foundation, either version 3 of the License, or
24004 (at your option) any later version.
24005
24006 GNU Emacs is distributed in the hope that it will be useful,
24007 but WITHOUT ANY WARRANTY; without even the implied warranty of
24008 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24009 GNU General Public License for more details.
24010
24011 You should have received a copy of the GNU General Public License
24012 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.