Fix bug #14408 with updating *Messages* display.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
df065a0b
EZ
12013-05-16 Eli Zaretskii <eliz@gnu.org>
2
5bb98290
EZ
3 * xdisp.c (message_dolog): If the *Messages* buffer is shown in
4 some window, increment windows_or_buffers_changed, so that
5 *Messages* display in that window is updated. (Bug#14408)
6
df065a0b
EZ
7 * w32.c: Include epaths.h.
8 (init_environment): Use cmdproxy.exe without leading directories.
9 Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that
10 case.
11 (gettimeofday): Adjust signature and return value to Posix
12 expectations.
13
14 * unexw32.c (open_output_file): Delete the existing emacs.exe
15 before creating it, to break the hard link to the versioned
16 executable.
17
18 * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK)
19 (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK)
20 (FIRSTFILE_OBJ): New variables.
21 (W32_RES): Rename to EMACSRES. All users changed.
22 (base_obj): Use $(CM_OBJ).
23 (ALLOBJS): Use $(FIRSTFILE_OBJ).
24 (emacs$(EXEEXT)): Depend on $(ADDSECTION).
25 (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move
26 $(W32_RES_LINK) before $(LIBES).
27 (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
28
1aa8d505
SM
292013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
30
6e911150
SM
31 * makefile.w32-in (DOC): Use just "DOC".
32
33 * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more.
34
1aa8d505
SM
35 * process.c: Export default filters and sentinels to Elisp.
36 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
37 New constants.
38 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
39 (Fset_process_sentinel, Fformat_network_address):
40 Default to them instead of nil.
41 (server_accept_connection): Sentinels can't be nil any more.
42 (read_and_dispose_of_process_output): New function, extracted from
43 read_process_output.
44 (read_process_output): Use it; filters can't be nil.
45 (Finternal_default_process_filter): New function, extracted from
46 read_process_output.
47 (exec_sentinel_unwind): Remove function.
48 (exec_sentinel): Don't zilch sentinel while running.
49 (status_notify): Sentinels can't be nil.
50 (Finternal_default_process_sentinel): New function extracted from
51 status_notify.
52 (setup_process_coding_systems): Default filter is not nil any more.
53 (syms_of_process): Export new Elisp functions and initialize
54 new constants.
55 * lisp.h (make_lisp_proc): New function.
56
5ac2eb34
SM
572013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
58
59 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
60
eda9c7d7
EZ
612013-05-14 Eli Zaretskii <eliz@gnu.org>
62
63 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
5ac2eb34
SM
64 unless we know that the window w is a leaf window.
65 Another attempt at solving bug#14062.
eda9c7d7 66
8fdeaad5
JD
672013-05-14 Jan Djärv <jan.h.d@swipnet.se>
68
69 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
70 fdesc (Bug#14375).
71
44aa9ee6
PE
722013-05-12 Paul Eggert <eggert@cs.ucla.edu>
73
74 * image.c (gif_load): Check that subimages fit (Bug#14345).
75
759fd763
SM
762013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
77
78 * lread.c (skip_dyn_eof): New function.
79 (read1): Use it to skip the end of a file in response to #@00.
80
81 * doc.c (get_doc_string): Slightly relax the sanity checking.
82
4465bfb4
JD
832013-05-09 Jan Djärv <jan.h.d@swipnet.se>
84
85 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
86 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
87 (MonitorInfo): New struct.
88 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
89 (Fns_display_monitor_attributes_list): New functions.
90 (display-usable-bounds): Remove.
91 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
92 Qsource.
93
7583e2a0
PE
942013-05-09 Paul Eggert <eggert@cs.ucla.edu>
95
96 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
97 (GTK_CHECK_VERSION): New macro, if not already defined.
98 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
99 replaced by GTK_CHECK_VERSION.
100
ad75d77e
PE
1012013-05-08 Paul Eggert <eggert@cs.ucla.edu>
102
103 * xterm.h (GTK_PREREQ): New macro.
104 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
105 to use this macro instead, for consistency and clarity.
106
07525f77
EZ
1072013-05-08 Eli Zaretskii <eliz@gnu.org>
108
109 * xdisp.c (row_for_charpos_p): New function, with code of
110 cursor_row_p, but accepts an additional argument CHARPOS instead
111 of using a hardcoded PT.
112 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
113 (row_containing_pos): Call row_for_charpos_p instead of partially
114 doing the same. Fixes cursor positioning under longlines-mode
115 when longlines-show-effect includes more than one newline, when
116 moving the cursor vertically up.
117
d901fc8d
JB
1182013-05-08 Juanma Barranquero <lekktu@gmail.com>
119
120 * makefile.w32-in (ACL_H): New macro.
121 ($(BLD)/fileio.$(O)): Update dependencies.
122
f269bc61
PE
1232013-05-07 Paul Eggert <eggert@cs.ucla.edu>
124
ffdc270a
PE
125 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
126 * Makefile.in (LIB_ACL): New macro.
127 (LIBACL_LIBS): Remove.
128 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
129 * fileio.c: Include <acl.h>.
130 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
131 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
132 !acl_errno_valid.
133 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
134 it ourselves.
135
f269bc61
PE
136 * unexelf.c: Don't assume ElfW (Half) fits in int.
137 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
138 when dealing with ElfW (Half) values, since they can exceed 2**31
139 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
140 (entry_address): Omit unused NUM arg. All uses changed.
141
a261c53e
JL
1422013-05-07 Juri Linkov <juri@jurta.org>
143
144 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
145 to the string converted from number with `Fnumber_to_string'.
146 (Bug#14254)
147
2b66427d
PE
1482013-05-07 Paul Eggert <eggert@cs.ucla.edu>
149
150 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
151 This fixes a problem introduced by my previous change.
152
15acfe41
GM
1532013-05-07 Glenn Morris <rgm@gnu.org>
154
155 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
156
5ea03bf5
JD
1572013-05-07 Jan Djärv <jan.h.d@swipnet.se>
158
159 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
160
e0c9d565
PE
1612013-05-07 Paul Eggert <eggert@cs.ucla.edu>
162
163 Static checking by GCC 4.8.0.
164 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
165 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
166 (x_get_monitor_attributes_fallback)
167 (x_get_monitor_attributes_xinerama)
168 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
169 Define only if USE_GTK.
170 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
171 (x_get_monitor_attributes_fallback): Omit unused locals.
172 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
173 Use double, not float, to avoid mixed-mode floating point arithmetic.
174
4e3f9230
YM
1752013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
176 Jan Djärv <jan.h.d@swipnet.se>
177
178 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
179 (XINERAMA_CFLAGS): New macros.
180 (ALL_CFLAGS, LIBES): Use them.
181
182 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
183 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
184 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
185 (syms_of_xfns): DEFSYM them.
186 (struct MonitorInfo): New struct.
187 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
188 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
189 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
190 (x_get_monitor_attributes_xinerama): New functions.
191 (Fx_display_monitor_attributes_list): New primitive.
192 (syms_of_xfns): Defsubr it.
193
194 * xterm.h (x_display_info): Add Xatom_net_workarea and
195 Xatom_net_current_desktop.
196
197 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
198 and dpyinfo->Xatom_net_current_desktop.
199
05839b6a
EZ
2002013-05-06 Eli Zaretskii <eliz@gnu.org>
201
202 * xdisp.c (pos_visible_p): Use the special code for finding the
203 beginning of a display property or overlay for any "replacing"
204 display property, not just for display strings. This solves
205 incorrect reporting of position by posn-at-point. (Bug#14241)
206
dc4a2ee0
PE
2072013-05-06 Paul Eggert <eggert@cs.ucla.edu>
208
5ee94506
PE
209 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
210 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
211 Verify that ElfW (Half) fits in int.
212 (fatal): Use same signature as lisp.h.
213 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
214 configure and build with -DUNEXELF_DEBUG without worrying about
215 other modules that use DEBUG.
216 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
217 possibly-wide integers now uses it instead of plain fprintf.
218 (entry_address): New function, which avoids problems with 32-bit
219 overflow on 64-bit hosts.
220 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
221 (round_up): Don't assume the remainder fits in int.
222 (find_section): Use bool for boolean. Simplify debug code.
223 (unexec): Don't assume file sizes fit in int or size_t.
224 Omit unnecessary trailing newline in 'fatal' format.
225 Use strerror rather than outputting decimal error number.
226 Remove unused code when emacs is not defined;
227 this file relies on Emacs now.
228 Don't assume e_phnum and e_shnum are positive.
229
dc4a2ee0
PE
230 * regex.c: Fix problems when DEBUG is defined.
231 (extract_number, extract_number_and_incr): Define regardless of
232 whether DEBUG is defined; that's simpler and makes the code less
233 likely to go stale in the normal case when DEBUG is not defined.
234 Return int rather than taking an int * arg. All callers changed.
235 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
236 Remove, replacing with ...
237 (DEBUG_PRINT): New macro. All callers changed.
238 (DEBUG_COMPILES_ARGUMENTS): New macro.
239 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
240 (print_compiled_pattern, print_double_string) [DEBUG]:
241 Use prototype rather than old-style definition.
242 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
243 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
244 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
245 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
246 Don't assume ptrdiff_t, size_t, and long are the same width as int.
247 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
248 This matters only when DEBUG is defined.
249
14c7ed05
EZ
2502013-05-05 Eli Zaretskii <eliz@gnu.org>
251
252 * xdisp.c (set_iterator_to_next): Set the
253 ignore_overlay_strings_at_pos_p flag only if we are _really_
254 iterating over an overlay string, as indicated by the
255 current.overlay_string_index member. (Bug#14306)
256
e6076b1b
JD
2572013-05-05 Jan Djärv <jan.h.d@swipnet.se>
258
259 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
260 to where it is used, to avoid autorelease issues (Bug#14050).
261
cbee2131
PE
2622013-05-05 Paul Eggert <eggert@cs.ucla.edu>
263
264 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
265 * fileio.c (syms_of_fileio): Implement this.
266 * filelock.c (create_lock_file): If symbolic links don't work, so
267 we use a regular file as a lock file, do not fsync the lock file;
268 it's not needed.
269
30c7e542
SM
2702013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
271
272 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
273 (syms_of_minibuf): Adjust accodingly.
274 * lread.c (Fread):
275 * callint.c (Fcall_interactively): Adjust calls accordingly.
276
5bebd186
EZ
2772013-05-04 Eli Zaretskii <eliz@gnu.org>
278
279 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
30c7e542
SM
280 w->contents is a buffer before computing everything else.
281 Use parentheses to disambiguate last part of the condition.
5bebd186
EZ
282
283 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
284 assertion violations. (Bug#14062)
285
0fb0a4f3
DR
2862013-05-01 David Reitter <david.reitter@gmail.com>
287
288 * nsfns.m (ns_tooltip): Initialize.
289
9e63b4a5
EZ
2902013-04-28 Eli Zaretskii <eliz@gnu.org>
291
292 * coding.c (decode_coding_gap): Don't remove the character before
293 a newline unless it's a CR character. (Bug#14287)
294
ad60824e
DN
2952013-04-28 Dan Nicolaescu <dann@gnu.org>
296
297 * dispextern.h (struct face): Move enum face_underline_type
298 earlier so that bitfields can be in the same word.
299
edbdcec0
JD
3002013-04-28 Jan Djärv <jan.h.d@swipnet.se>
301
302 * nsfns.m (handlePanelKeys): New function.
303 (EmacsOpenPanel:performKeyEquivalent:)
304 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
305 arrows/function/control and copy/paste keys (Bug#14296).
306
0208ede7
JL
3072013-04-27 Juri Linkov <juri@jurta.org>
308
309 * callint.c (Fcall_interactively): Call `Qread_number' for
310 interactive code letter `n' instead of using duplicate code.
311 (Bug#14254)
312
b8dd59f7
PE
3132013-04-27 Paul Eggert <eggert@cs.ucla.edu>
314
315 * systime.h (make_timeval): Declare as 'const'.
316
8bd722db
KH
3172013-04-27 Kenichi Handa <handa@gnu.org>
318
319 * font.c (font_open_entity): Always open a font of manageable
320 size.
321
13d0e56f 3222013-04-26 Paul Eggert <eggert@cs.ucla.edu>
cbee2131 323
f780d632
PE
324 Port better to AIX (Bug#14258).
325 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
326 to pacify AIX xlc.
327
ec509856
KH
3282013-04-24 Kenichi Handa <handa@gnu.org>
329
330 * coding.c (decode_coding_iso_2022): When an invalid escape
331 sequence is encountered, reset the invocation and designation
332 status to the safest one.
333
84fc48e5
PE
3342013-04-22 Paul Eggert <eggert@cs.ucla.edu>
335
336 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
337 Without this fix, "make distclean" leaves stamp-h1 behind.
338
806bda47
EC
3392013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
340
341 * w32fns.c (w32_fullscreen_rect): New function to compute the
342 window rectangle for the given fullscreen mode.
343 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
344 longer tunes the window size. This keeps the window's edges flush
345 with the screen and allows the taskbar to hide itself in fullboth.
346
347 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
348 window decorations and uses the entire screen.
349
350 * w32term.h (w32_fullscreen_rect) Add prototype.
351 (struct w32_output): Replace normal_width, normal_height,
352 normal_top, and normal_left members with a single normal_placement
353 struct.
354 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
355 Remove macros.
356 (FRAME_NORMAL_PLACEMENT): New macro.
357
9cc2810b
JB
3582013-04-16 Juanma Barranquero <lekktu@gmail.com>
359
360 * minibuf.c (Ftest_completion): Silence compiler warning.
361
fd16b54c
EZ
3622013-04-15 Eli Zaretskii <eliz@gnu.org>
363
364 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
5fbcd237 365 bug#14062.
fd16b54c
EZ
366
367 * frame.h (WINDOW_FRAME): Protect macro and its argument with
368 parentheses.
369
370 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
371 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
372 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
373 parentheses where appropriate.
374
9e3379a0
PE
3752013-04-14 Paul Eggert <eggert@cs.ucla.edu>
376
377 * keyboard.c (timer_start_idle): Remove no-longer-used local.
378
ddd6b685
EZ
3792013-04-14 Eli Zaretskii <eliz@gnu.org>
380
381 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
382 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
383 Mention in the doc string that setting these variables takes
384 effect only after a call to set-window-buffer. (Bug#14200)
385
29b79ba1
EZ
3862013-04-13 Eli Zaretskii <eliz@gnu.org>
387
388 * indent.c (Fvertical_motion): Don't consider display strings on
389 overlay strings as display strings on the buffer position we
390 started from. This prevents vertical cursor motion from jumping
391 more than one line when there's an overlay string with a display
392 property at end of line.
393 Reported by Karl Chen <Karl.Chen@quarl.org> in
394 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
395
562c6ee9
SM
3962013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
397
398 * window.c (select_window): `record_buffer' even if window is
399 already selected (bug#14191).
400
fcc1fe85
EZ
4012013-04-11 Eli Zaretskii <eliz@gnu.org>
402
403 * window.c (Fwindow_end): Test more flags, including the buffer's
404 last_overlay_modified flag, to determine whether the window's
405 display is really up-to-date. Prevents the function from
406 returning a stale value. (Bug#14170)
407 (Fwindow_line_height): Fix the test for up-to-date-ness of the
408 current matrix.
409
f009190a
EZ
4102013-04-10 Eli Zaretskii <eliz@gnu.org>
411
412 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
562c6ee9
SM
413 garbaged only if it is not already the top frame on its TTY.
414 This prevents flickering due to constant redrawing of TTY frames when
f009190a
EZ
415 there are GUI frames open in the same session. (Bug#13864)
416
78ce603d
SM
4172013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
418
419 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
420 of marking the idle timers directly.
421
a8036e40
SM
4222013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
423
424 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
425 tables (bug#14054).
426
7ffe7ef6
SM
4272013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
428
429 * window.c (select_window): Don't record_buffer while the invariant is
430 temporarily broken (bug#14161).
431
432 * fns.c (Fdelq): Don't assume !NILP => CONSP.
433
7d9f6883
EZ
4342013-04-07 Eli Zaretskii <eliz@gnu.org>
435
436 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
437
5406cfd9
RF
4382013-04-07 Romain Francoise <romain@orebokech.com>
439
440 Ignore additional platform-specific ACL errors (Bug#13702).
441 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
442 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
443
95c0e83b
JD
4442013-03-31 Jan Djärv <jan.h.d@swipnet.se>
445
446 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
447 f->output_data.ns.
448
876da980
PE
4492013-04-07 Paul Eggert <eggert@cs.ucla.edu>
450
451 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
452 This bug was introduced by my 2013-02-25 change that simplified
453 data_start configuration. Without this change, on GNU/Linux
454 an Emacs configured with --enable-profiling fails immediately
455 due to a profiler signal.
456 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
457 with these flags. On platforms where special flags are needed
458 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
459 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
460 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
461
7452b7bd
DA
4622013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
463
464 Get rid of some platform-specific functions examining window
465 system and its capabilities. This is a partial rework of the
466 2013-04-05 change.
467 * lisp.h (have_menus_p): Remove prototype. This function is
468 replaced with platform-independent window_system_available.
469 (check_window_system): Move to...
470 * frame.h (decode_window_system_frame, window_system_available):
471 ...here, add new prototypes.
472 * frame.c (window_system_available, decode_window_system_frame):
473 New functions.
474 (check_window_system): Platform-independent now.
475 * xterm.h (x_in_use): Remove declaration.
476 (check_x_frame):
477 * w32term.h (check_x_frame):
478 * nsterm.h (check_x_frame): Remove prototypes. This function
479 is replaced with platform-independent decode_window_system_frame.
480 * msdos.c (have_menus_p): Remove.
481 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
482 Remove platform-specific functions. Use check_window_system,
483 decode_window_system_frame and check_ns_display_info where
484 appropriate. Minor style and comment tweaks.
485 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
486 (check_x_frame): Likewise.
487 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
488 Likewise.
489 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
490 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
491 * xmenu.c, xselect.c: All related users changed.
492
251e9147
KH
4932013-04-03 Kenichi Handa <handa@gnu.org>
494
495 The following changes is to optimize the code for reading UTF-8
496 files.
497
562c6ee9 498 * coding.c (check_ascii): Rename from detect_ascii. Return value
251e9147
KH
499 changed. Check EOL format. Do not call adjust_coding_eol_type
500 here.
501 (check_utf_8): New function.
502 (adjust_coding_eol_type): Do nothing if already adjusted.
503 (detect_coding): Compare the return value of check_ascii with
504 coding->src_bytes. Call adjust_coding_eol_type if necessary.
505 (decode_coding_gap): Optimize for valid UTF-8.
506
8bc369d4
KH
5072013-03-21 Kenichi Handa <handa@gnu.org>
508
509 * coding.c (syms_of_coding): Cancel previous change.
510
511 * insdel.c (insert_from_gap): Fix previous change.
512
73931ad1
DA
5132013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
514
515 Consistently use platform-specific function to detect window system.
516 * lisp.h (check_window_system): New prototype. This function is
517 going to replace check_x, check_w32 and check_ns.
518 (have_menus_p): Mention msdos.c in comment.
519 * fontset.c (check_window_system_func): Remove. Adjust all users.
520 * fontset.h (check_window_system_func): Remove prototype.
521 * nsterm.h (check_ns):
522 * xterm.h (check_x):
523 * w32term.h (check_w32): Likewise.
524 * menu.c (Fx_popup_menu): Use check_window_system.
525 * msdos.c (check_window_system): Define for MS-DOS.
526 * nsfns.m (check_window_system): Define for NS. Adjust all users.
527 * w32fns.c (check_window_system): Likewise for MS-Windows.
528 * xfns.c (check_window_system): Likewise for X.
529 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
530 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
531
7216e43b
PE
5322013-04-02 Paul Eggert <eggert@cs.ucla.edu>
533
534 Prefer < to > in range checks such as 0 <= i && i < N.
535 This makes it easier to visualize quantities on a number line.
536 This patch doesn't apply to all such range checks,
537 only to the range checks affected by the 2013-03-24 change.
538 This patch reverts most of the 2013-03-24 change.
539 * alloc.c (xpalloc, Fgarbage_collect):
540 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
541 * character.c (string_escape_byte8):
542 * charset.c (read_hex):
543 * data.c (cons_to_unsigned):
544 * dispnew.c (update_frame_1):
545 * doc.c (Fsubstitute_command_keys):
546 * doprnt.c (doprnt):
547 * editfns.c (hi_time, decode_time_components):
548 * fileio.c (file_offset):
549 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
550 * font.c (font_intern_prop):
551 * frame.c (x_set_alpha):
552 * gtkutil.c (get_utf8_string):
553 * indent.c (check_display_width):
554 * keymap.c (Fkey_description):
555 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
556 * lread.c (read1):
557 * minibuf.c (read_minibuf_noninteractive):
558 * process.c (wait_reading_process_output):
559 * search.c (Freplace_match):
560 * window.c (get_phys_cursor_glyph):
561 * xdisp.c (redisplay_internal):
562 * xsmfns.c (smc_save_yourself_CB):
563 Prefer < to > for range checks.
564 * dispnew.c (sit_for): Don't mishandle NaNs.
565 This fixes a bug introduced in the 2013-03-24 change.
566 * editfns.c (decode_time_components): Don't hoist comparison.
567 This fixes another bug introduced in the 2013-03-24 change.
568
92759988
DA
5692013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
570
571 * frame.h (struct frame): Drop scroll_bottom_vpos
572 member becaue all real users are dead long ago.
573 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
574 * xdisp.c (redisplay_internal): Adjust user.
575
9a1971bb
GM
5762013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
577
f38ab167
JD
578 * nsmenu.m (showAtX:Y:for:): setLevel to
579 NSPopUpMenuWindowLevel (Bug#13998).
580
6d01f1fe
JD
5812013-03-30 Jan Djärv <jan.h.d@swipnet.se>
582
583 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
584 (ns_check_pending_open_menu): Declare.
585
586 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
587 (x_activate_menubar): Update the menu with title that matches
588 ns_get_pending_menu_title, and call
589 ns_check_pending_openmenu (Bug#12698).
590 (menuWillOpen:): New method.
591 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
592
593 * nsterm.m (menu_will_open_state, menu_mouse_point)
594 (menu_pending_title): New varaibles.
595 (ns_get_pending_menu_title, ns_check_menu_open)
596 (ns_check_pending_open_menu): New functions.
597
781f4782
DA
5982013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
599
600 * indent.c (current_column_bol_cache): Remove leftover which is not
601 used in Fmove_to_column any more.
602 (current_column, scan_for_column): Adjust users.
603 * keyboard.c (last_point_position_buffer, last_point_position_window):
604 Remove leftovers which are not used for recording undo any more.
605 (command_loop_1, syms_of_keyboard): Adjust users.
606 * xdisp.c (last_max_ascent): Remove leftover which is not used in
607 redisplay_window any more.
608 (move_it_to): Adjust user.
609
1921c31b
JB
6102013-03-29 Juanma Barranquero <lekktu@gmail.com>
611
612 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
613 Update dependencies.
614
717b8bcd
SM
6152013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
616
617 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
618 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
619 forward references.
620
e74aeda8
DA
6212013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
622
623 * window.h (struct window): Replace hchild, vchild and buffer slots
624 with the only contents slot. This is possible because each valid
625 window may have either the child window (in vertical or horizontal
626 combination) or buffer to display (for the leaf window). Using that,
627 a lof of operations to traverse and/or change window hierarchies may
628 be simplified. New member horizontal is used to distinguish between
629 horizontal and vertical combinations of internal windows.
630 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
631 (WINDOW_VERTICAL_COMBINATION_P): New macros.
632 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
633 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
634 Use contents slot, not buffer, where appropriate.
635 (wset_combination): New function.
636 (wset_buffer): Add eassert.
637 (Fframe_first_window): Simplify the loop reaching first window.
638 (Fwindow_buffer): Use WINDOW_LEAF_P.
639 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
640 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
641 (unshow_buffer): Convert initial debugging check to eassert.
642 (replace_window, recombine_windows, Fdelete_other_windows_internal)
643 (make_parent_window, window_resize_check, window_resize_apply)
644 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
645 (Fset_window_configuration, delete_all_child_windows, save_window_save):
646 Adjust to match struct window changes.
647 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
648 (mark_window_cursors_off, count_windows, get_leaf_windows)
649 (foreach_window_1): Simplify the loop.
650 * alloc.c (mark_object): Do not check for the leaf window because
651 internal windows has no glyph matrices anyway.
652 * dispnew.c (clear_window_matrices, showing_window_margins_p)
653 (allocate_matrices_for_window_redisplay, fake_current_matrices)
654 (allocate_matrices_for_frame_redisplay, free_window_matrices)
655 (build_frame_matrix_from_window_tree, mirror_make_current)
656 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
657 (update_window_tree, set_window_update_flags): Simplify the loop.
658 (sync_window_with_frame_matrix_rows): Enforce live window.
659 Use contents slot, not buffer, where appropriate.
660 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
661 and WINDOW_HORIZONTAL_COMBINATION_P.
662 (make_frame_visible_1): Simplify the loop.
663 Use contents slot, not buffer, where appropriate.
664 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
665 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
666 (expose_window_tree): Likewise.
667 Use contents slot, not buffer, where appropriate.
668 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
669 to avoid deleted windows. Use contents slot instead of buffer.
670 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
671 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
672 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
673 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
674
121ab1cd
EZ
6752013-03-28 Eli Zaretskii <eliz@gnu.org>
676
ef454cf7
EZ
677 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
678 identify the reasons for assertion violations in bug#14062 and
679 similar ones.
21e930f8
EZ
680 (Fx_show_tip): Fix compilation error under
681 "--enable-check-lisp-object-type". (Bug#14073)
ef454cf7 682
121ab1cd
EZ
683 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
684 Reported by <rzl24ozi@gmail.com>.
685
5c89ca24
DA
6862013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
687
688 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
689 start marker...
562c6ee9
SM
690 (unwind_with_echo_area_buffer): ...to restore it here.
691 This is needed to ensure that...
5c89ca24
DA
692 (redisplay_window): ...both window markers are valid here,
693 which is verified by eassert.
694 * editfns.c (save_excursion_save): Do not assume that
695 selected_window always displays the buffer.
c7f53895
DA
696 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
697 Fix comment.
5c89ca24 698
f557c1b1
SM
6992013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
700
701 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
702 the upcase table.
703
40693bba 7042013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
705
706 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
707
c86f791f
EZ
7082013-03-27 Eli Zaretskii <eliz@gnu.org>
709
710 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
711 since MinGW's w32api headers do. This avoids compiler warnings.
712
713 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
714 if already defined.
715
c6e72e17
EZ
7162013-03-26 Eli Zaretskii <eliz@gnu.org>
717
718 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
719
54e95010
JD
7202013-03-26 Jan Djärv <jan.h.d@swipnet.se>
721
722 * gtkutil.c (style_changed_cb): Check if frame is live and an
723 X frame (Bug#14038).
724
b88b62de
EZ
7252013-03-26 Eli Zaretskii <eliz@gnu.org>
726
a18d7de6
EZ
727 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
728 Define only for _WIN32_WINNT less than 0x0500.
da9dcbb8
EZ
729 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
730 MinGW64.
8f5e14c8
EZ
731 Move inclusion of time.h before sys/time.h, so that MinGW64 could
732 see its own definitions of 'struct timeval' and 'struct timezone'.
a18d7de6 733
b88b62de
EZ
734 Fix incompatibilities between MinGW.org and MinGW64 headers.
735 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
736
737 * w32.c (REPARSE_DATA_BUFFER): Guard with
738 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
739
c074e458
JD
7402013-03-25 Jan Djärv <jan.h.d@swipnet.se>
741
742 * xterm.c: Include X11/XKBlib.h
743 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
744
908589fd
AS
7452013-03-24 Andreas Schwab <schwab@linux-m68k.org>
746
747 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
748 written backwards.
749 * blockinput.h (input_blocked_p): Likewise.
750 * bytecode.c (exec_byte_code): Likewise.
751 * callproc.c (call_process_kill, call_process_cleanup)
752 (Fcall_process): Likewise.
753 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
754 (Fccl_execute_on_string): Likewise.
755 * character.c (string_escape_byte8): Likewise.
756 * charset.c (read_hex): Likewise.
757 * cm.c (calccost): Likewise.
758 * data.c (cons_to_unsigned): Likewise.
759 * dired.c (directory_files_internal, file_name_completion):
760 Likewise.
761 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
762 (sit_for): Likewise.
763 * doc.c (Fsubstitute_command_keys): Likewise.
764 * doprnt.c (doprnt): Likewise.
765 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
766 * emacsgtkfixed.c: Likewise.
767 * fileio.c (file_offset, Fwrite_region): Likewise.
768 * floatfns.c (Fexpt, fmod_float): Likewise.
769 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
770 Likewise.
771 * font.c (font_intern_prop): Likewise.
772 * frame.c (x_set_alpha): Likewise.
773 * gtkutil.c (get_utf8_string): Likewise.
774 * indent.c (check_display_width): Likewise.
775 * intervals.c (create_root_interval, rotate_right, rotate_left)
776 (split_interval_right, split_interval_left)
777 (adjust_intervals_for_insertion, delete_node)
778 (interval_deletion_adjustment, adjust_intervals_for_deletion)
779 (merge_interval_right, merge_interval_left, copy_intervals)
780 (set_intervals_multibyte_1): Likewise.
781 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
782 * keymap.c (Fkey_description): Likewise.
783 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
784 * lread.c (openp, read_integer, read1, string_to_number):
785 Likewise.
786 * menu.c (ensure_menu_items): Likewise.
787 * minibuf.c (read_minibuf_noninteractive): Likewise.
788 * print.c (printchar, strout): Likewise.
789 * process.c (create_process, Faccept_process_output)
790 (wait_reading_process_output, read_process_output, send_process)
791 (wait_reading_process_output): Likewise.
792 * profiler.c (make_log, handle_profiler_signal): Likewise.
793 * regex.c (re_exec): Likewise.
794 * regex.h: Likewise.
795 * search.c (looking_at_1, Freplace_match): Likewise.
796 * sysdep.c (get_child_status, procfs_ttyname)
797 (procfs_get_total_memory): Likewise.
798 * systime.h (EMACS_TIME_VALID_P): Likewise.
799 * term.c (dissociate_if_controlling_tty): Likewise.
800 * window.c (get_phys_cursor_glyph): Likewise.
801 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
802 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
803 Likewise.
804 * xfns.c (Fx_window_property): Likewise.
805 * xmenu.c (set_frame_menubar): Likewise.
806 * xselect.c (x_get_window_property, x_handle_dnd_message):
807 Likewise.
808 * xsmfns.c (smc_save_yourself_CB): Likewise.
809 * xterm.c (x_scroll_bar_set_handle): Likewise.
810
2bf7d27a
DA
8112013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
812
813 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
814 to be optional or nil. Adjust comment and convert it to docstring.
815 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
816 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
817
a9ebfa0b
PE
8182013-03-24 Paul Eggert <eggert@cs.ucla.edu>
819
820 Static checking by GCC 4.8-20130319.
821 * image.c (gif_load): Assume pass < 3 to pacify GCC.
822 * process.c (Fset_process_datagram_address)
823 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
824 * xdisp.c (get_char_face_and_encoding):
825 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
826 (get_glyph_face_and_encoding): Prepare face before possibly using it.
827 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
828
4f3576ee
KB
8292013-03-24 Ken Brown <kbrown@cornell.edu>
830
789b5e9a
KB
831 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
832 fix compilation on 64-bit Cygwin, where underscores are not
833 automatically prepended.
834
4f3576ee
KB
835 * w32term.c (w32_initialize): Silence compiler warning.
836
b5b7745f
EZ
8372013-03-23 Eli Zaretskii <eliz@gnu.org>
838
cdc0d0bd
EZ
839 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
840 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
562c6ee9
SM
841 variables, to save and restore frame dimensions.
842 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
843 after returning from a 'fullscreen' configuration.
844 use SendMessage instead of PostMessage to send the SC_RESTORE message,
cdc0d0bd
EZ
845 to avoid races between the main thread and the input thread.
846
847 * w32term.h (struct w32_output): New members normal_width,
848 normal_height, normal_top, normal_left, and prev_fsmode.
849 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
850 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
851 members of a frame.
852
b5b7745f
EZ
853 * w32term.c (w32fullscreen_hook): Record last value of the frame's
854 'fullscreen' parameter. Always record previous width and height
855 of the frame, except when switching out of maximized modes, so
856 that they could be restored correctly, instead of resetting to the
857 default frame dimensions. Send SC_RESTORE command to the frame,
858 unless we are going to send SC_MAXIMIZE, to restore the frame
859 resize hints in the mouse pointer shown by the window manager.
860 (Bug#14032)
861
862 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
863
864 * lisp.h (get_frame_param): Adjust conditions for prototype
865 declaration.
866
a3454eed
KB
8672013-03-22 Ken Brown <kbrown@cornell.edu>
868
869 * unexcw.c: Drop unneeded inclusion of w32common.h.
870 (report_sheap_usage): Declare.
871 (read_exe_header): Add magic numbers for x86_64.
872 (fixup_executable): Fix printf format specifier for unsigned long
873 argument.
874
5a49b79c
DA
8752013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
876
877 * frame.h (struct frame): Put menu_bar_window under #ifdef
878 because this member is not needed when X toolkit is in use.
879 (fset_menu_bar_window):
880 * dispnew.c (clear_current_matrices, clear_desired_matrices)
881 (free_glyphs, update_frame):
882 * xdisp.c (expose_frame): Likewise.
883 (display_menu_bar): Likewise. Remove redundant eassert.
884 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
885 toolkit is in use.
886
d6723bf7
PE
8872013-03-21 Paul Eggert <eggert@cs.ucla.edu>
888
7b1123d8
PE
889 Use functions and constants to manipulate Lisp_Save_Value objects.
890 This replaces code that used macros and strings and token-pasting.
891 The change makes the C source a bit easier to follow,
892 and shrinks the Emacs executable a bit.
893 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
894 (make_save_value): Change 1st arg from string to enum. All callers
895 changed.
896 (INTX): Remove.
897 (mark_object): Use if, not #if, for GC_MARK_STACK.
898 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
899 (XSAVE_OBJECT): Now functions, not macros.
900 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
901 the constant was never used.
902 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
903 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
904 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
905 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
906 New constants.
907 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
908 type3 with a single member save_type. All uses changed.
909 (save_type, set_save_pointer, set_save_integer): New functions.
910 * print.c (PRINTX): Remove.
911
d6723bf7
PE
912 * alloc.c: Remove redundant static declarations.
913
5f24fa51
DA
9142013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
915
916 * window.h (struct window): Convert left_col, top_line, total_lines
917 and total_cols from Lisp_Objects to integers. Adjust comments.
918 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
919 Remove.
920 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
921 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
922 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
923 Adjust users where appropriate.
924
42143acd
DA
9252013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
926
927 * frame.h (struct frame): Drop resx and resy because the same data is
928 available from window system-specific output context. Adjust users.
562c6ee9
SM
929 (default_pixels_per_inch_x, default_pixels_per_inch_y):
930 New functions to provide defaults when no window system available.
42143acd 931 (FRAME_RES_X, FRAME_RES_Y): New macros.
562c6ee9 932 (NUMVAL): Move from xdisp.c.
42143acd
DA
933 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
934 (Ffont_face_attributes, Fopen_font):
935 * image.c (gs_load):
936 * w32font.c (fill_in_logfont):
937 * xdisp.c (calc_pixel_width_or_height):
938 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
939 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
940
c0a17406
KH
9412013-03-20 Kenichi Handa <handa@gnu.org>
942
943 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
944 to 1 (temporary workaround until a bug related to ASCII
945 optimization is fixed).
946
095d384d
DA
9472013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
948
949 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
950 Signal error if window is not internal. Adjust docstring.
951 (delete_all_child_windows): Use combination_limit to save the buffer.
952 (Fset_window_configuration): Adjust accordingly.
cf4bb06d
DA
953 * print.c (syms_of_print): Initialize debugging output not here...
954 (init_print_once): ...but in a new function here.
955 * lisp.h (init_print_once): Add prototype.
956 * emacs.c (main): Add call to init_print_once. Adjust comments.
095d384d 957
748fa866
DA
9582013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
959
960 * window.c (window_resize_check, window_resize_apply)
961 (window_from_coordinates, recombine_windows, set_window_buffer)
962 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
963 (Fsplit_window_internal, Fdelete_window_internal)
964 (freeze_window_starts): Use bool for booleans.
965 * window.h (window_frame_coordinates, resize_frame_windows)
966 (freeze_window_starts, set_window_buffer): Adjust prototypes.
967
81519fd2
SM
9682013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
969
970 * dispnew.c (bitch_at_user): Use `user-error'.
971
6db423a9
KB
9722013-03-17 Ken Brown <kbrown@cornell.edu>
973
974 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
975 as return type of image_background. (Bug#13981)
976 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
977
8f2906f5
JD
9782013-03-16 Jan Djärv <jan.h.d@swipnet.se>
979
960ce480 980 * nsterm.m (updateFrameSize:): Change resize increments if needed.
6615748a 981 (ns_select): Don't return with result uninitialized.
960ce480 982
8f2906f5
JD
983 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
984 and getDirectory.
985
81519fd2
SM
986 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
987 New functions.
8f2906f5
JD
988 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
989 directories. If filename is nil, get directory name (Bug#13932).
990 Use getFilename and getDirectory.
991 (getFilename, getDirectory): New methods for EmacsSavePanel and
992 EmacsOpenPanel.
993 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
994
cded56c1
PE
9952013-03-15 Paul Eggert <eggert@cs.ucla.edu>
996
997 * coding.c (decode_coding_gap): Fix typo caught by static checking.
998
251e9147 9992013-03-15 Kenichi Handa <handa@gnu.org>
8a44e6d1
KH
1000
1001 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
1002 (adjust_after_replace): Make it back to static. Delete the third
1003 arg text_at_gap_tail. Cancel the code for handling it.
1004
1005 * coding.h (struct coding_system): New member eol_seen.
1006
1007 * coding.c (detect_ascii): New function.
1008 (detect_coding): Set coding->head_ascii and coding->eol_seen only
1009 when the source bytes are actually scanned. On detecting for
1010 coding_category_utf_8_auto, call detect_ascii instead of scanning
1011 source bytes directly.
1012 (produce_chars): Call insert_from_gap with the new arg 0.
1013 (encode_coding): Likewise.
1014 (decode_coding_gap): Control ASCII optimization by the variable
1015 disable_ascii_optimization instead of #ifndef .. #endif.
1016 Deccode EOL format according to coding->eol_seen.
1017 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
1018 variable.
1019
8a44e6d1
KH
1020 * lisp.h (adjust_after_replace): Cancel externing it.
1021 (insert_from_gap): Adjust prototype.
1022
5f795e34
EZ
10232013-03-15 Eli Zaretskii <eliz@gnu.org>
1024
1025 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
1026 FULLSCREEN_MAXIMIZED. (Bug#13935)
1027
f258b4be
DA
10282013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
1029
1030 * region-cache.c (find_cache_boundary, move_cache_gap)
1031 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
1032 Simplify debugging check and convert to eassert. Adjust comment.
1033 (pp_cache): Put under ENABLE_CHECKING.
1034
a5cc4dde
EZ
10352013-03-14 Eli Zaretskii <eliz@gnu.org>
1036
1037 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
1038 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
1039 and WM_ACTIVATEAPP.
1040 (w32fullscreen_hook): If the frame is visible, reset
1041 f->want_fullscreen flag after changing the frame size. If the
1042 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
1043 (Bug#13953)
1044
3fc5e44a
DC
10452013-03-13 Daniel Colascione <dancol@dancol.org>
1046
1047 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
1048 too so that these builds can use Cygwin's file conversion
1049 functions. (We've been building and linking cygw32.o all along
1050 and just not using it.)
1051
47d7532e
PE
10522013-03-13 Paul Eggert <eggert@cs.ucla.edu>
1053
1054 File synchronization fixes (Bug#13944).
1055 * Makefile.in (LIB_FDATASYNC): New macro.
1056 (LIBES): Use it.
1057 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
1058 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
1059 Don't worry about HAVE_FSYNC, since a substitute fsync is
1060 available if the system lacks one.
1061 (Fwrite_regin): Retry fsync if interrupted.
1062
c7ffccaf
EZ
10632013-03-13 Eli Zaretskii <eliz@gnu.org>
1064
4e2df81d 1065 * w32term.c (w32_read_socket): If the Emacs frame is being
c7ffccaf
EZ
1066 activated, call w32fullscreen_hook, to make sure the new frame
1067 dimensions are in effect. (Bug#13937)
1068
8a7debc1
DA
10692013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
1070
1071 * xdisp.c (init_iterator): Simplify because both character and byte
1072 positions are either specified or -1. Add eassert. Adjust comment.
ffcd945e
DA
1073 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
1074 character and byte positions can be obtained from marker.
8a7debc1 1075
7fd8c501
PE
10762013-03-13 Paul Eggert <eggert@cs.ucla.edu>
1077
d9df6f40
PE
1078 Static checking by Sun C 5.12.
1079 * alloc.c (buffer_memory_full) [REL_ALLOC]:
1080 * bytecode.c (exec_byte_code):
1081 * dispnew.c (init_display):
1082 * eval.c (error):
1083 * fileio.c (Fsubstitute_in_file_name):
1084 * keyboard.c (Fevent_convert_list):
1085 * keymap.c (Fsingle_key_description):
1086 * term.c (maybe_fatal, fatal):
1087 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
1088 * xsmfns.c (Fhandle_save_session):
1089 Omit unreachable code.
1090 * keymap.c (map_keymap_char_table_item): Cast void * to
1091 a function pointer type; the C Standard requires this.
1092
7fd8c501
PE
1093 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
1094 Include <sys/param.h> unconditionally, as that works elsewhere and
1095 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
1096 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
1097 and FreeBSD now.
1098
cb0290df
PE
10992013-03-11 Paul Eggert <eggert@cs.ucla.edu>
1100
1101 * insdel.c (adjust_after_replace): Use bool for boolean.
1102
cbae07d5
SM
11032013-03-11 Stefan Monnier <monnier@iro.umontreal.ca>
1104
1105 * keyboard.c: Move keyboard decoding to read_key_sequence.
1106 (decode_keyboard_code): Remove.
1107 (tty_read_avail_input): Don't try to decode input.
1108 (read_decoded_char): New function.
1109 (read_key_sequence): Use it.
1110
819e2da9
DC
11112013-03-10 Daniel Colascione <dancol@dancol.org>
1112
1113 * w32term.h (GUISTR, GUI_ENCODE_FILE, GUI_ENCODE_SYSTEM, GUI_FN)
1114 (GUI_SDATA, guichar_t): Macros to abstract out differences between
1115 NTGUI_UNICODE and !NTGUI_UNICODE builds, some moved out of
1116 w32fns.c.
1117
1118 * w32term.c (construct_drag_n_drop): Use the above macros to make
1119 drag-and-drop work for non-ASCII filenames in cygw32 builds.
1120
1121 * w32fns.c (x_set_name, x_set_title): Use the above macros to
1122 properly display non-ASCII frame titles in cygw32 builds.
1123
1124 * w32fns.c (Fw32_shell_execute): Use the above macros to properly
1125 call ShellExecute in cygw32 builds.
1126
1127 * w32fn.c (Fx_file_dialog): Use the above macros to simplify the
1128 common file dialog code.
1129
1130 * w32fns.c (Ffile_system_info): Remove from cygw32 builds, which
1131 can just use du like other systems.
1132
1133 * coding.c (from_unicode_buffer): Declare.
1134 * coding.c (from_unicode_buffer): Implement.
1135
99ec1647
SM
11362013-03-10 Stefan Monnier <monnier@iro.umontreal.ca>
1137
d2e24f92
SM
1138 * lread.c: Minor cleanup.
1139 (FROM_FILE_P): New macro.
1140 (skip_dyn_bytes, unreadchar, read1): Use it.
1141 (read_list): Consolidate duplicated code.
1142
99ec1647
SM
1143 * bytecode.c (struct byte_stack): Remove `constants' when unused.
1144
138c0ae8
EZ
11452013-03-10 Eli Zaretskii <eliz@gnu.org>
1146
1147 * xdisp.c (display_tool_bar_line, redisplay_tool_bar)
1148 (redisplay_internal, set_cursor_from_row, try_window)
1149 (try_window_id, dump_glyph_row, extend_face_to_end_of_line)
1150 (display_line, notice_overwritten_cursor)
99ec1647
SM
1151 (mouse_face_from_buffer_pos, note_mouse_highlight):
1152 Use MATRIX_ROW_DISPLAYS_TEXT_P.
138c0ae8 1153 (note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
99ec1647
SM
1154 (mouse_face_from_string_pos, fast_find_string_pos):
1155 Use MATRIX_ROW_VPOS.
138c0ae8
EZ
1156
1157 * xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
1158
1159 * w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
1160
1161 * xdisp.c (try_cursor_movement): Use MATRIX_ROW and
1162 MATRIX_MODE_LINE_ROW.
1163
1164 * dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
1165
c230dd7d
KH
11662013-03-10 handa <handa@gnu.org>
1167
1168 * lisp.h (adjust_after_replace): Extern it.
1169
1170 * coding.c (detect_coding): Cound the heading ASCII bytes in the
1171 case of detection for coding_category_utf_8_auto.
99ec1647
SM
1172 (decode_coding_gap) [not CODING_DISABLE_ASCII_OPTIMIZATION]:
1173 Skip decoding if all bytes are ASCII.
c230dd7d
KH
1174
1175 * insdel.c (adjust_after_replace): Make it public. New arg
1176 text_at_gap_tail.
1177 (adjust_after_insert): Call adjust_after_replace with the new arg
1178 value 0.
1179
27a98a62
SM
11802013-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
1181
1182 * keyboard.h (EVENT_START, EVENT_END, POSN_WINDOW, POSN_POSN)
1183 (POSN_WINDOW_POSN, POSN_TIMESTAMP): Be careful since events may come
1184 from Elisp via unread-command-events.
1185
1186 * keyboard.c (access_keymap_keyremap): Accept nil return value from
1187 functions to mean "no change".
1188
457882c2
PE
11892013-03-08 Paul Eggert <eggert@cs.ucla.edu>
1190
1191 region-cache.c, scroll.c, search.c: Use bool for booleans.
1192 * lisp.h (compile_pattern):
1193 * scroll.c (do_scrolling, do_direct_scrolling):
1194 * search.c (struct regexp_cache, compile_pattern_1)
1195 (compile_pattern, string_match_1, search_command)
1196 (trivial_regexp_p, search_buffer, Freplace_match, match_limit)
1197 (search_regs_saved, Fregexp_quote):
1198 Use bool for boolean.
1199 * region-cache.c (region_cache_forward, region_cache_backward):
1200 Fix comments to match code: these functions return int, not boolean.
1201
b5426561
DA
12022013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
1203
1204 * search.c (find_newline): Accept start and end byte positions
1205 as arguments and allow -1 if not known.
1206 (find_newline_no_quit): Likewise for start position.
1207 * lisp.h (find_newline, find_newline_no_quit): Adjust prototype.
1208 * bidi.c (bidi_find_paragraph_start): Pass byte position to
1209 find_newline_no_quit, thus eliminating CHAR_TO_BYTE.
27a98a62
SM
1210 * editfns.c (Fconstrain_to_field): Break long line.
1211 Adjust call to find_newline.
b5426561
DA
1212 * indent.c (vmotion): Adjust calls to find_newline_no_quit.
1213 Use DEC_BOTH to start next search from the previous buffer
1214 position, where appropriate.
1215 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
1216 (get_visually_first_element, move_it_vertically_backward): Likewise.
1217 Obtain byte position from the display iterator, where appropriate.
1218
0bce5d9e
PE
12192013-03-08 Paul Eggert <eggert@cs.ucla.edu>
1220
1221 print.c, process.c: Use bool for booleans.
1222 * lisp.h (wait_reading_process_output):
1223 * print.c (print_output_debug_flag, PRINTDECLARE, printchar)
1224 (strout, debug_output_compilation_hack, float_to_string, print)
1225 (print_object):
1226 * process.c (kbd_is_on_hold, inhibit_sentinels, process_output_skip)
1227 (decode_status, status_message, create_process, create_pty)
1228 (Fmake_network_process, Fnetwork_interface_info)
1229 (wait_reading_process_output, read_process_output)
1230 (write_queue_push, write_queue_pop, process_send_signal)
1231 (handle_child_signal, keyboard_bit_set, kbd_on_hold_p):
1232 * process.h (struct Lisp_Process, inhibit_sentinels, kbd_on_hold_p):
1233 Use bool for booleans.
1234 * process.c (Fnetwork_interface_list): Remove unused local.
1235 (connect_counter): Now EMACS_INT, not int.
1236
36075a19
DA
12372013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
1238
1239 * bidi.c (bidi_fetch_char): Swap first and second arguments
1240 to match other functions accepting character and byte positions.
1241 Adjust comment.
1242 (bidi_resolve_explicit_1, bidi_level_of_next_char): Adjust users.
1243 (bidi_paragraph_init): Likewise. Use DEC_BOTH which is faster
1244 when you need just to move to the previous buffer position.
1245 * xdisp.c (Fcurrent_bidi_paragraph_direction): Use DEC_BOTH.
1246
4aae1914
EZ
12472013-03-07 Eli Zaretskii <eliz@gnu.org>
1248
1249 * .gdbinit (prowlims): Display the enabled_p flag of the row.
1250
c54aa166
DA
12512013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
1252
1253 Avoid character to byte conversions in motion subroutines.
1254 * indent.h (compute_motion, vmotion): Add byte position argument.
1255 * indent.c (compute_motion): Use it and avoid CHAR_TO_BYTE.
1256 Add eassert.
1257 (Fcompute_motion): Break long line. Adjust call to compute_motion.
1258 Use list5 for return value.
1259 (vmotion): Use byte position argument and avoid call to CHAR_TO_BYTE.
1260 Adjust comments, style and calls to compute_motion.
1261 (Fvertical_motion): Adjust call to vmotion.
1262 * window.c (Fdelete_other_windows_internal): Record window start
1263 byte position and adjust call to vmotion.
1264 (window_scroll_line_based): Likewise with call to compute_motion.
1265 Use SET_PT_BOTH.
1266 (Frecenter): Adjust calls to vmotion.
1267
3de717bd
DA
12682013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
1269
1270 * lisp.h (list2i, list3i): New functions.
1271 (list4i): Move from window.c and make LISP_INLINE.
1272 * editfns.c (make_lisp_time):
1273 * fns.c (Flocale_info):
1274 * keyboard.c (parse_modifiers):
1275 * xterm.c (x_ewmh_activate_frame): Use list2i.
1276 * instel.c (signal_after_change):
1277 * nsfns.m (Fx_server_version, Fxw_color_values):
1278 * w32fns.c (Fxw_color_values, Fx_server_version):
1279 * xfns.c (Fxw_color_values, Fx_server_version): Use list3i.
1280 * fileio.c (Fvisited_file_modtime):
1281 * nsfns.m (Fns_display_usable_bounds):
1282 * w32.c (ltime): Use list4i.
1283
d26e478e
EZ
12842013-03-06 Eli Zaretskii <eliz@gnu.org>
1285
a611149e
EZ
1286 * search.c (find_newline_no_quit): Rename from find_next_newline.
1287 Add commentary.
1288
1289 * lisp.h (find_newline_no_quit): Rename prototype.
1290
1291 * xdisp.c (back_to_previous_line_start)
1292 (forward_to_next_line_start, get_visually_first_element)
1293 (move_it_vertically_backward): Callers of find_newline_no_quit changed.
1294 * indent.c (vmotion): Callers of find_newline_no_quit changed.
1295 * bidi.c (bidi_find_paragraph_start): Callers of
1296 find_newline_no_quit changed.
1297
d26e478e
EZ
1298 * msdos.c: Change encoding to cp850. (Bug#13879)
1299 (fr_keyboard, it_keyboard, dk_keyboard): Update keyboard layouts.
1300
1af1a51a
DA
13012013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
1302
1303 Coding system support cleanup and minor refactoring.
1304 * coding.h (enum coding_result_code): Remove
1305 CODING_RESULT_INCONSISTENT_EOL and CODING_RESULT_INSUFFICIENT_MEM.
1306 (toplevel): Remove unused CODING_MODE_INHIBIT_INCONSISTENT_EOL.
1307 (CODING_MODE_LAST_BLOCK, CODING_MODE_SELECTIVE_DISPLAY)
1308 (CODING_MODE_DIRECTION, CODING_MODE_FIXED_DESTINATION)
1309 (CODING_MODE_SAFE_ENCODING): Rearrange bit values.
1310 (decode_coding_region, encode_coding_region, decode_coding_string):
1311 Remove unused compatibility macros.
1312 * coding.c (Qinconsistent_eol, Qinsufficient_memory): Remove.
1313 (record_conversion_result): Adjust user.
1314 (syms_of_coding): Likewise.
1315 (ALLOC_CONVERSION_WORK_AREA): Use SAFE_ALLOCA.
1316 (decode_coding, encode_coding): Add USE_SAFE_ALLOCA and SAFE_FREE.
1317 (decode_coding_object): Simplify since xrealloc never returns NULL.
1318 Add eassert.
1319
0bafabe7 13202013-03-06 Paul Eggert <eggert@cs.ucla.edu>
725eb027 1321
9b1c3271 1322 Fix a build failure on OpenBSD 4.x and MirBSD (Bug#13881).
0845a75c
PE
1323 * sysdep.c (list_system_processes)
1324 [BSD_SYSTEM && !DARWIN_OS && !__FreeBSD__]:
9b1c3271 1325 Make it a stub in this case; otherwise the build might fail,
0845a75c 1326 and this code hasn't been tested on such hosts anyway.
725eb027 1327 Problem reported by Nelson H. F. Beebe in
9b1c3271
PE
1328 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00021.html>
1329 and analyzed by Jérémie Courrèges-Anglas in
1330 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00062.html>.
725eb027 1331
ffc65bee
DA
13322013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
1333
1334 * lisp.h (find_next_newline_no_quit): Rename to find_next_newline.
1335 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
1336 (get_visually_first_element, move_it_vertically_backward): Ajust users.
1337 * bidi.c (bidi_find_paragraph_start): Likewise.
1338 * indent.c (vmotion): Likewise.
1339
70743157
PE
13402013-03-05 Paul Eggert <eggert@cs.ucla.edu>
1341
1342 FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
1343 * filelock.c: Include <c-ctype.h>.
1344 (MAX_LFINFO): New top-level constant.
1345 (lock_info_type): Remove members pid, boot_time. Add members at,
1346 dot, colon. Change user member to be the entire buffer, not a
1347 pointer. This allows us to handle the case where a foreign
1348 pid or boot time exceeds the local range. All uses changed.
1349 (LINKS_MIGHT_NOT_WORK): New constant.
1350 (FREE_LOCK_INFO): Remove, as the pieces no longer need freeing.
1351 (defined_WINDOWSNT): Remove.
1352 (MAKE_LOCK_NAME, file_in_lock_file_name):
1353 Always use .#FILE (not .#-FILE) for the file lock,
1354 even if it is a regular file.
1355 (rename_lock_file): New function.
1356 (create_lock_file): Use it.
1357 (create_lock_file, read_lock_data):
1358 Prefer a symbolic link for the lock file, falling back on a
1359 regular file if symlinks don't work. Do not try to create
1360 symlinks on MS-Windows, due to security hassles. Stick with
1361 POSIXish functions (open, read, write, close, fchmod, readlink, symlink,
1362 link, rename, unlink, mkstemp) when creating locks, as a GNUish
1363 host may be using a Windowsish file system, and cannot use
1364 MS-Windows-only system calls. Fall back on mktemp if mkstemp
1365 doesn't work. Don't fail merely because of a symlink-contents
1366 length limit in the current file system; fall back on regular
1367 files. Increase the symlink contents length limit to 8 KiB, this
1368 should be big enough for any real use and doesn't crunch the
1369 stack.
1370 (create_lock_file, lock_file_1, read_lock_data):
1371 Simplify allocation of lock file buffers now that they fit in 8 KiB.
1372 (lock_file_1): Return error number, not bool. All callers changed.
1373 (ELOOP): New macro, if not already defined.
1374 (read_lock_data): Return size of lock file contents, not Lisp object.
1375 All callers changed. Handle a race condition if some other process
1376 replaces a regular-file lock with a symlink lock or vice versa,
1377 while we're trying to read the lock.
1378 (current_lock_owner): Parse contents more carefully, to help avoid
1379 confusing a regular-file lock with some other application's use
1380 of the file. Check for lock file contents being too long, or
1381 not parsing correctly.
1382 (current_lock_owner, lock_file):
1383 Allow foreign pid and boot times that exceed the local range.
1384 (current_lock_owner, lock_if_free, lock_file):
1385 Simplify allocation of lock file contents.
1386 * w32.c (sys_rename_replace): New function, containing most of
1387 the contents of the old sys_rename.
1388 (sys_rename): Use it.
1389 (fchmod): New dummy function.
1390 * w32.h (sys_rename_replace, fchmod): New decls.
1391
05e193f1
EZ
13922013-03-05 Eli Zaretskii <eliz@gnu.org>
1393
1394 * bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
1395 bidi_count_bytes, as the callers now arrange for bidi_it->charpos
1396 to be in sync with bidi_it->bytepos. Suggested by Dmitry Antipov
1397 <dmantipov@yandex.ru>.
1398
3bfc46eb
DA
13992013-03-05 Dmitry Antipov <dmantipov@yandex.ru>
1400
1401 * composite.c (get_composition_id, fill_gstring_header):
1402 Use make_uninit_vector where appropriate.
1403 * font.c (Ffont_get_glyphs, build_style_table): Likewise.
1404 * xselect.c (clean_local_selection_data): Likewise.
1405
84ac6f9d
PE
14062013-03-04 Paul Eggert <eggert@cs.ucla.edu>
1407
1408 Fix misuse of ImageMagick that caused core dump (Bug#13846).
1409 * image.c (imagemagick_load_image): Calculate height and width
1410 after flattening the image, not before.
1411
42926ec8
DA
14122013-03-04 Dmitry Antipov <dmantipov@yandex.ru>
1413
1414 * font.c (Ffont_get_glyphs): Use convenient LGLYPH_NEW.
1415 * ftfont.c (ftfont_shape_by_flt): Likewise.
1416 * w32uniscribe.c (uniscribe_shape): Likewise.
1417
b5029e23
PE
14182013-03-02 Paul Eggert <eggert@cs.ucla.edu>
1419
1420 The lock for FILE is now .#FILE or .#-FILE (Bug#13807).
1421 The old approach, which fell back on DIR/.#FILE.0 through
1422 DIR/.#FILE.9, had race conditions that could not be easily fixed.
1423 If DIR/.#FILE is a non-symlink file, Emacs now does not create a
1424 lock file for DIR/FILE; that is, DIR/FILE is no longer partly
1425 protected by a lock if DIR/.#FILE is a non-symlink file ("partly"
1426 because the locking mechanism was never reliable in that case).
1427 This patch fixes this and other bugs discovered by a code
1428 inspection that was prompted by
1429 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00531.html>.
1430 Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows,
1431 to avoid interoperability problems between the MS-Windows and
1432 non-MS-Windows implementations. MS-Windows and non-MS-Windows
1433 instances of Emacs now ignore each others' locks.
1434 * filelock.c (defined_WINDOWSNT): New constant.
1435 (MAKE_LOCK_NAME, fill_in_lock_file_name):
1436 Don't create DIR/.#FILE.0 through DIR/.#FILE.9. Instead, create
1437 DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE
1438 regular files on MS-Windows hosts.
1439 (MAKE_LOCK_NAME, unlock_file, Ffile_locked_p):
1440 Use SAFE_ALLOCA to avoid problems with long file names.
1441 (MAX_LFINFO): Now a local constant, not a global macro.
1442 (IS_LOCK_FILE): Remove.
1443 (lock_file_1): Don't inspect errno if symlink call succeeds;
1444 that's not portable.
1445 (lock_file): Document that this function can return if lock
1446 creation fails.
2db41375 1447 (lock_file): Don't access freed storage.
b5029e23 1448
b270d116
AS
14492013-03-02 Andreas Schwab <schwab@linux-m68k.org>
1450
1451 * lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren. (Bug#13734)
1452
81c23309
PE
14532013-03-02 Paul Eggert <eggert@cs.ucla.edu>
1454
1455 * textprop.c: Use bool for booleans.
1456 (validate_interval_range, Fadd_text_properties)
1457 (Fremove_text_properties): Prefer bool to int when either works.
1458
18f2ac09
EZ
14592013-03-02 Eli Zaretskii <eliz@gnu.org>
1460
27a98a62
SM
1461 * textprop.c (Fadd_text_properties, Fremove_text_properties):
1462 If the interval tree changes as a side effect of calling
18f2ac09
EZ
1463 modify_region, re-do processing starting from the call to
1464 validate_interval_range. (Bug#13743)
1465
929aeac6 14662013-02-28 Eli Zaretskii <eliz@gnu.org>
c49e2256
EZ
1467
1468 * w32.c (sys_open): Don't reset the flags for FD in fd_info[].
1469 (Bug#13546).
1470
531e70ec
EZ
14712013-02-27 Eli Zaretskii <eliz@gnu.org>
1472
1473 * filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with
1474 _SH_DENYRW flag, instead of emacs_open, to deny any other process
1475 access to the lock file until it is written and closed.
1476 (Bug#13807)
1477
6e65b9cc
PE
14782013-02-27 Paul Eggert <eggert@cs.ucla.edu>
1479
1480 * callint.c (Qcall_interactively):
1481 * macros.c (Qexecute_kbd_macro):
1482 Now static.
1483
3b166f09
BG
14842013-02-26 Bastien Guerry <bzg@gnu.org>
1485
1486 * window.c (Frecenter): Tiny docstring enhancement.
1487
ecc0fdd4
PE
14882013-02-26 Paul Eggert <eggert@cs.ucla.edu>
1489
1490 Minor textprop integer cleanup.
1491 * intervals.h, textprop.c (add_text_properties_from_list):
1492 Return void, not int, since nobody uses the return value.
1493 * textprop.c (validate_plist, add_properties, remove_properties)
1494 (Fadd_text_properties):
1495 Don't assume list length fits in int.
1496 (interval_has_all_properties, interval_has_some_properties)
1497 (interval_has_some_properties_list, add_properties, remove_properties)
1498 (Fadd_text_properties, Fremove_text_properties)
1499 (Fremove_list_of_text_properties, text_property_stickiness):
1500 Use bool for booleans.
1501 (Fadd_text_properties, Fremove_text_properties):
1502 (Fremove_list_of_text_properties):
1503 Reindent do-while as per GNU style.
1504
0248b0d7
EZ
15052013-02-25 Eli Zaretskii <eliz@gnu.org>
1506
343a2aef
EZ
1507 Implement CLASH_DETECTION for MS-Windows.
1508
1509 * filelock.c [WINDOWSNT]: Include w32.h.
1510 (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime
1511 function of that name. Up-case the macro arguments.
1512 (IS_LOCK_FILE): New macro.
1513 (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK.
1514 (create_lock_file): New function, with body extracted from
1515 lock_file_1.
1516 [WINDOWSNT]: Implement lock files by writing a regular file with
1517 the lock information as its contents.
1518 (read_lock_data): New function, on Posix platforms just calls
1519 emacs_readlinkat.
1520 [WINDOWSNT]: Read the lock info from the file.
1521 (current_lock_owner): Call read_lock_data instead of calling
1522 emacs_readlinkat directly.
1523 (lock_file) [WINDOWSNT]: Run the file name through
1524 dostounix_filename.
1525
1526 * w32proc.c (sys_kill): Support the case of SIG = 0, in which case
1527 just check if the process by that PID exists.
1528
1529 * w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is
1530 also present, as doing so will fail to error out if the file
1531 already exists.
1532
1533 * makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h.
1534
0248b0d7
EZ
1535 * textprop.c (Fadd_text_properties, Fremove_text_properties)
1536 (Fremove_list_of_text_properties): Skip all of the intervals in
1537 the region between START and END that already have resp. don't
27a98a62
SM
1538 have the requested properties, not just the first one.
1539 Add assertions that the loop afterwards always modifies the
0248b0d7
EZ
1540 properties. (Bug#13743)
1541
b5071fc7
SM
15422013-02-25 Stefan Monnier <monnier@iro.umontreal.ca>
1543
1544 * callint.c (Fcall_interactively): Use the right lexical environment
1545 for `interactive' specs (bug#13811).
1546 * eval.c (Feval): Accept a lexical environment.
1547
1ddc2bd6
PE
15482013-02-25 Paul Eggert <eggert@cs.ucla.edu>
1549
1550 Simplify data_start configuration (Bug#13783).
1551 This is a followon simplification to the fix for Bug#13650.
1552 * Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD)
1553 (START_FILES): Remove. All uses removed.
1554 (otherobj): Remove $(VMLIMIT_OBJ), as it's now first.
1555 (ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first.
1556 (buildobj.h): Use it.
1557 ($(ALLOBJS)): Depend on globals.h.
1558 (temacs$(EXEEXT)): Use $(ALLOBJS).
1559 * autodeps.mk (ALLOBJS): Move to Makefile.in.
1560 * deps.mk (vm-limit.o):
1561 * makefile.w32-in ($(BLD)/vm-limit.$(O)):
1562 Do not depend on mem-limits.h.
1563 * emacs.c (__do_global_ctors, __do_global_ctors_aux)
1564 (__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__)
1565 [__GNUC__ && !ORDINARY_LINK]: Remove.
1566 * mem-limits.h, pre-crt0.c: Remove.
1567 * unexaix.c, unexcoff.c: Don't include mem-limits.h.
1568 * unexcoff.c (etext): New decl.
1569 (make_hdr): Use DATA_START instead of start_of_data.
1570 * vm-limit.c: Move most of mem-limits.h's contents here.
1571 (data_start): New decl. It's OK if this is approximate,
1572 so simplify-away some unnecessary exactness.
1573 (POINTER): Remove; all uses removed.
1574 (data_space_start): Now char *, to avoid casts.
1575 (exceeds_lisp_ptr): New function, replacing the old
1576 EXCEEDS_LISP_PTR macro. All uses changed.
1577 (check_memory_limits): Simplify and remove casts.
1578 (start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove.
1579 (memory_warnings): Use data_start instead of start_of_data.
1580
51aa2a8b
AS
15812013-02-24 Andreas Schwab <schwab@linux-m68k.org>
1582
1583 * xdisp.c (set_message): Only check for debug-on-message if STRING
1584 is a string. (Bug#13797)
1585
1938d88c
PE
15862013-02-24 Paul Eggert <eggert@cs.ucla.edu>
1587
1588 Fix regression introduced by July 10 filelock.c patch.
1589 * filelock.c (fill_in_lock_file_name): Fix crash caused by the
1590 2012-07-10 patch to this file. Reported by Eli Zaretskii in
1591 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00533.html>
1592 and diagnosed by Andreas Schwab in
1593 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00534.html>.
1594
fcee5028
PE
15952013-02-22 Paul Eggert <eggert@cs.ucla.edu>
1596
1597 Assume C89 or better.
1598 * ralloc.c (SIZE, POINTER, NIL):
1599 * vm-limit.c (POINTER):
1600 Remove, replacing all uses with C89 equivalents. These old
1601 symbols were present only for porting to pre-C89 platforms.
1602
d78cf5ed
CB
16032013-02-22 Claudio Bley <claudio.bley@gmail.com>
1604
1605 * w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop.
1606 This avoids warning messages reported as part of Bug#13546.
1607
6bcd97a4
KB
16082013-02-21 Ken Brown <kbrown@cornell.edu>
1609
1610 * sheap.c (report_sheap_usage): Fix arguments of message1_no_log.
1611
b6c2bfff
SM
16122013-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
1613
e11dacb5
SM
1614 * sheap.c (report_sheap_usage): Prefer message1_nolog.
1615
b6c2bfff
SM
1616 * keyboard.c (Qcommand_execute): New var.
1617 (command_loop_1, read_char): Use it.
1618 (Fcommand_execute): Remove, replace by an Elisp implementation.
1619 (syms_of_keyboard): Adjust accordingly.
1620
f4ad7ea1 16212013-02-19 Daniel Colascione <dancol@dancol.org>
b6c2bfff 1622
d69f1120
DC
1623 * sheap.c (report_sheap_usage): Use message, not message1, so
1624 that we don't try to create a buffer while we're in the middle
1625 of dumping Emacs. Explain why.
b6c2bfff 1626
2a14a4f1 16272013-02-20 Dmitry Antipov <dmantipov@yandex.ru>
42926ec8 1628
2a14a4f1
DA
1629 * search.c (find_newline): Return byte position in bytepos.
1630 Adjust comment.
b6c2bfff
SM
1631 (find_next_newline_no_quit, find_before_next_newline):
1632 Add bytepos argument.
2a14a4f1
DA
1633 * lisp.h (find_newline, find_next_newline_no_quit)
1634 (find_before_next_newline): Adjust prototypes.
1635 * bidi.c (bidi_find_paragraph_start):
1636 * editfns.c (Fconstrain_to_field, Fline_end_position):
1637 * indent.c (compute_motion, vmotion):
1638 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start):
1639 (get_visually_first_element, move_it_vertically_backward):
1640 Adjust users and avoid calls to CHAR_TO_BYTE where appropriate.
1641
872faefb 16422013-02-19 Eli Zaretskii <eliz@gnu.org>
17ddfd15
EZ
1643
1644 * w32proc.c (new_child): Avoid leaking handles if the subprocess
1645 resources were not orderly released.
1646
fd80c659
EZ
16472013-02-17 Eli Zaretskii <eliz@gnu.org>
1648
1649 * xdisp.c (x_draw_vertical_border): For a window that is neither
1650 the leftmost nor the rightmost, redraw both the left and the right
1651 vertical borders. (Bug#13723)
1652
2f73da9c
SM
16532013-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
1654
1655 * xml.c (init_libxml2_functions):
1656 * sound.c (sound_warning):
1657 * sheap.c (report_sheap_usage):
1658 * process.c (wait_reading_process_output):
1659 * msdos.c (XMenuActivate):
1660 * macros.c (Fstart_kbd_macro, Fend_kbd_macro):
1661 * keyboard.c (top_level_1):
1662 * editfns.c (Fmessage, Fmessage_box):
1663 * callint.c (Fcall_interactively):
1664 * fns.c (Fyes_or_no_p): Prefer `message1' over `message'.
1665
fd9547e8
JD
16662013-02-17 Jan Djärv <jan.h.d@swipnet.se>
1667
1668 * xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ...
fd9547e8
JD
1669 * frame.c (syms_of_frame): ... to here.
1670
f277993b
EZ
16712013-02-16 Eli Zaretskii <eliz@gnu.org>
1672
c7939585
EZ
1673 * w32.c (sys_chown): Remove unused function.
1674
cd91fb4b
EZ
1675 * w32term.c <input_signal_count>: Declare 'volatile'
1676 unconditionally. (Bug#9066)
1677
f277993b
EZ
1678 * w32.c (set_errno): Reset h_errno and don't set it to any other
1679 value. Set errno instead.
1680 (check_errno): Reset h_errno.
1681 (sys_socket, socket_to_fd, sys_bind, sys_connect)
1682 (sys_gethostname, sys_getservbyname, sys_getpeername)
1683 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1684 (sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set
1685 h_errno.
1686 (sys_gethostbyname): Set h_errno only errors detected.
1687
e454145b
PE
16882013-02-15 Paul Eggert <eggert@cs.ucla.edu>
1689
1690 * process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl.
1691
bcf7fe2a
EZ
16922013-02-15 Eli Zaretskii <eliz@gnu.org>
1693
ef9c57e2
EZ
1694 * keyboard.c (read_char): Fix calculation of auto-save time out
1695 when auto-save-timeout is less than 4. (Bug#13720)
1696
ef862e20 1697 * w32proc.c (new_child): Free up to 2 slots of dead processes at a
b2af991a 1698 time. Improve diagnostics in DebPrint. (Bug#13546)
ef862e20 1699
bcf7fe2a
EZ
1700 * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname)
1701 (sys_gethostbyname, sys_getservbyname, sys_getpeername)
1702 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1703 (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure,
1704 make sure errno is set to an appropriate value. (Bug#13546)
1705 (socket_to_fd): Add assertion against indexing fd_info[] with a
1706 value that is out of bounds.
1707 (sys_accept): If fd is negative, do not set up the child_process
1708 structure for reading.
1709
0063fdb1
DA
17102013-02-15 Dmitry Antipov <dmantipov@yandex.ru>
1711
1712 * composite.c (fill_gstring_header): Remove useless prototype.
1713 Break long line.
1714 * lisp.h (message_dolog, compile_pattern): Adjust prototype.
1715 * print.c (PRINTDECLARE, print_object):
1716 * search.c (compile_pattern, fast_looking_at, search_buffer):
1717 (simple_search, boyer_moore, Freplace_match):
1718 * xdisp.c (c_string_pos, number_of_chars, message_dolog):
1719 (get_overlay_arrow_glyph_row, display_mode_element):
1720 (decode_mode_spec_coding, message3):
1721 * xfaces.c (face_at_string_position): Use bool for booleans.
1722 Adjust comments.
1723
648e5523 17242013-02-15 Paul Eggert <eggert@cs.ucla.edu>
974c7646 1725
35b3a27e
PE
1726 Fix AIX port (Bug#13650).
1727 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
1728 Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set,
1729 was #undeffed earlier, so it cannot be used as a macro here.
1730 Use the constant and not the macro.
35b3a27e 1731
648e5523 17322013-02-15 Eli Zaretskii <eliz@gnu.org>
6e432f0c 1733
0e4e7b74
EZ
1734 * w32proc.c (new_child): If no vacant slots are found in
1735 child_procs[], make another pass looking for slots whose process
1736 has exited or died. (Bug#13546)
1737
6e432f0c
EZ
1738 * w32.c (sys_pipe): When failing due to file descriptors above
1739 MAXDESC, set errno to EMFILE.
1740 (_sys_read_ahead): Update cp->status when failing to read serial
1741 communications input, so that the status doesn't stay at
1742 STATUS_READ_IN_PROGRESS. (Bug#13546)
1743
51b3a99c
JD
17442013-02-14 Jan Djärv <jan.h.d@swipnet.se>
1745
1746 * gtkutil.c (tb_size_cb): New function.
1747 (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512).
1748
e31560a7
SM
17492013-02-14 Stefan Monnier <monnier@iro.umontreal.ca>
1750
1751 * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not
1752 an event.
1753
fe336261
SM
17542013-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
1755
1756 * keyboard.c (syms_of_keyboard): Further tweaks of docstring.
1757
5a655b9f
DA
17582013-02-13 Dmitry Antipov <dmantipov@yandex.ru>
1759
1760 * font.c (font_range): Add pos_byte argument. Adjust comment
1761 and break long line.
1762 * font.h (font_range): Adjust prototype.
1763 * composite.c (autocmp_chars): Pass byte position to font_range.
1764 Break long line. Remove useless prototype and format comment.
1765
1a359750
GM
17662013-02-13 Glenn Morris <rgm@gnu.org>
1767
1768 * keyboard.c (input-decode-map, key-translation-map): Doc fixes.
1769
01fcc3a5 17702013-02-13 Paul Eggert <eggert@cs.ucla.edu>
4458c255 1771
f53f992a
PE
1772 Improve AIX port some more (Bug#13650).
1773 With this, it should be as good as it was in 23.3, though it's
1774 still pretty bad: the dumped emacs does not run. See Mark Fleishman in
1775 http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html
1776 * unexaix.c (start_of_text): Remove.
1777 (_data, _text): Declare as char[], not int, as AIX manual suggests.
1778 (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
1779 (orig_load_scnptr, orig_data_scnptr):
1780 Now off_t, not long, since they are file offsets.
1781 (make_hdr): Use _data, not start_of_data ().
1782 This is the key part of the fix.
1783 (make_hdr, unrelocate_symbols): Use off_t for file offsets.
1784 (unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
1785
4458c255
PE
1786 * pre-crt0.c (data_start): Initialize to 1.
1787 This ports to compilers that optimize the external declaration
1788 'int x = 0;' as if it were 'int x;' to shrink the executable.
1789
227be86d
PE
1790 Improve AIX port (Bug#13650).
1791 This doesn't fix the bug, but it makes progress: Emacs builds now.
1792 * unexaix.c: Include inttypes.h, stdarg.h.
1793 (report_error, report_error_1): Mark as _Noreturn.
1794 (report_error): Don't report the wrong errno.
1795 (report_error_1): Now varargs. All callers changed.
1796 (make_hdr): Use uintptr_t, not unsigned, when converting pointers
1797 to unsigned. Don't use ADDR_CORRECT, as it no longer exists.
1798 (write_ptr): Use %p to print address rather than %lx and a cast
1799 to unsigned long. Grow buffer a bit, to be safer.
1800
01fcc3a5 18012013-02-13 Eli Zaretskii <eliz@gnu.org>
713bfeaa
EZ
1802
1803 * bidi.c (bidi_resolve_neutral): After finding the next
1804 non-neutral character, accept NEUTRAL_ON type as well, because
1805 directional control characters, such as LRE and RLE, have their
1806 type converted to that by bidi_resolve_weak. This avoids aborts
1807 when LRE/RLE follows a run of neutrals.
1808 (bidi_move_to_visually_next): Assert that return value of
1809 bidi_peek_at_next_level is non-negative. Negative values will
1810 cause an infloop.
1811
83be8524
PE
18122013-02-13 Paul Eggert <eggert@cs.ucla.edu>
1813
1814 Minor getenv-related fixes.
1815 * callproc.c (Fcall_process_region) [!DOS_NT]:
1816 Avoid unnecessary duplicate call to getenv.
1817 * callproc.c (init_callproc):
1818 * dispnew.c (init_display):
1819 * sysdep.c (sys_subshell):
1820 Omit unnecessary cast of getenv or egetenv.
1821
45b2b768
JB
18222013-02-13 Juanma Barranquero <lekktu@gmail.com>
1823
1824 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)):
1825 Update dependencies.
1826
33b49d71
EZ
18272013-02-12 Eli Zaretskii <eliz@gnu.org>
1828
1829 * xdisp.c (redisplay_internal): Don't set w->region_showing to the
1830 marker's position.
1831 (display_line): Set w->region_showing to the value of
1832 it->region_beg_charpos, not to -1. This fixes redisplay
1833 optimization when cursor is moved up after M->. (Bug#13623)
1834 (Bug#13626)
c4131562
EZ
1835 (try_scrolling): Scroll text up more if point is too close to ZV
1836 and inside the scroll margin. This makes sure point is moved
1837 outside the scroll margin in these cases.
33b49d71
EZ
1838
1839 * window.h (struct window): region_showing can no longer be
1840 negative.
1841
b09a4810
PE
18422013-02-11 Paul Eggert <eggert@cs.ucla.edu>
1843
a84b7c53
PE
1844 Tune by using memchr and memrchr.
1845 * doc.c (Fsnarf_documentation):
1846 * fileio.c (Fsubstitute_in_file_name):
1847 * search.c (find_newline, scan_newline):
1848 * xdisp.c (pos_visible_p, display_count_lines):
1849 Use memchr and memrchr rather than scanning byte-by-byte.
1850 * search.c (find_newline): Rename from scan_buffer.
1851 Omit first arg TARGET, as it's always '\n'. All callers changed.
1852
b09a4810
PE
1853 Clean up read_key_sequence a tiny bit more.
1854 * keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]:
1855 (read_key_sequence): Remove unused locals.
1856
99d0d6dc
SM
18572013-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
1858
1859 Clean up read_key_sequence a bit; reread active keymaps after first event.
1860 * keyboard.c (read_char, read_char_x_menu_prompt)
1861 (read_char_minibuf_menu_prompt):
1862 Replace nmaps+maps with a single `map' arg.
1863 (follow_key): Operate on a single map.
1864 (active_maps): New function.
1865 (test_undefined): Also return true for nil bindings.
1866 (read_key_sequence): Use active_maps to replace the arrays of keymaps with
1867 a single (composed) keymap. Remember `first_event' to choose the right
1868 set of active keymaps. Recompute the set of keymaps after receiving
1869 the first event. Remove GOBBLE_FIRST_EVENT.
1870 (syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
1871 * keyboard.h (read_char): Update declaration.
1872 * lread.c (read_filtered_event): Adjust call to read_char.
1873
f5e1b680
EZ
18742013-02-11 Eli Zaretskii <eliz@gnu.org>
1875
99d0d6dc
SM
1876 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1877 Don't use the limitation on backwards movement when lines are truncated
f5e1b680
EZ
1878 in the window. (Bug#13675)
1879
f74de345
DA
18802013-02-11 Dmitry Antipov <dmantipov@yandex.ru>
1881
1882 * marker.c (set_marker_internal): If desired position is passed
1883 as a marker, avoid call to buf_charpos_to_bytepos.
1884 * window.c (Fset_window_point): Omit redundant type checking.
1885 (Fset_window_start): Likewise. Format comment.
1886 (window_scroll_pixel_based): Use set_marker_restricted_both
1887 with character and byte positions obtained from an iterator.
1888 (Fset_window_configuration): Use set_marker_restricted_both.
1889 * xdisp.c (message_dolog): Likewise.
1890
a4ba3963
EZ
18912013-02-10 Eli Zaretskii <eliz@gnu.org>
1892
99d0d6dc
SM
1893 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1894 When text lines are longer than window's screen lines, don't move back
a4ba3963
EZ
1895 too far. This speeds up some redisplay operations. (Bug#13675)
1896
68643cde
DA
18972013-02-10 Dmitry Antipov <dmantipov@yandex.ru>
1898
1899 * syntax.c (scan_sexps_forward): Fix byte position calculation
1900 Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change.
1901
7ba11bee
PE
19022013-02-10 Paul Eggert <eggert@cs.ucla.edu>
1903
1904 * fileio.c (Fexpand_file_name): Omit confusing pointer comparison
1905 that was not needed.
1906
eff1c190
PE
19072013-02-09 Paul Eggert <eggert@cs.ucla.edu>
1908
1909 Minor hashing refactoring.
1910 * fns.c (SXHASH_REDUCE): Move to lisp.h.
1911 (sxhash_float): Return EMACS_UINT, for consistency with the other
1912 hash functions.
1913 * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a
1914 non-static inline function and therefore can't use static vars.
1915 (SXHASH_REDUCE): Move here from fns.c, and make it inline.
1916 * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent
1917 with the other hash functions.
1918
6b48c831
EZ
19192013-02-09 Eli Zaretskii <eliz@gnu.org>
1920
4dde2087
EZ
1921 * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the
1922 XXXXXX part of the temporary file pattern is not downcased even
1923 when w32-downcase-file-names is non-nil. (Bug#13661)
74ba1583 1924
8549f9e8
EZ
1925 * xdisp.c (decode_mode_spec): Remove handling of %t.
1926
6b48c831
EZ
1927 * msdos.c (careadlinkatcwd): Remove.
1928
75a65c7e
SM
19292013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
1930
1931 * lread.c (skip_dyn_bytes): New function (bug#12598).
1932 (read1): Use it. Use getc instead of READCHAR to read bytes.
1933 (load_each_byte): Remove. Update users.
1934
8ca30920
DA
19352013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1936
1937 * search.c (scan_buffer): Calculate end byte position just once.
1938 (scan_newline): Do not recalculate start_byte.
1939 (search_command): Use eassert.
1940 * syntax.c (struct lisp_parse_state): New member location_byte.
1941 (scan_sexps_forward): Record from_byte and avoid redundant
1942 character to byte position calculation ...
1943 (Fparse_partial_sexp): ... here. Break too long line.
1944
25721f5b
DA
19452013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1946
1947 * lisp.h (make_uninit_vector): New function.
1948 * alloc.c (Fvector, Fmake_byte_code):
1949 * ccl.c (Fregister_ccl_program):
1950 * charset.c (Fdefine_charset_internal, define_charset_internal):
1951 * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
1952 * composite.c (syms_of_composite):
1953 * font.c (Fquery_font, Ffont_info, syms_of_font):
1954 * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
1955 * ftfont.c (ftfont_shape_by_flt):
1956 * indent.c (recompute_width_table):
1957 * nsselect.m (clean_local_selection_data):
1958 * syntax.c (init_syntax_once):
1959 * w32unsubscribe.c (uniscribe_shape):
1960 * window.c (Fcurrent_window_configuration):
1961 * xfaces.c (Fx_family_fonts):
1962 * xselect.c (selection_data_to_lisp_data): Use it.
1963
9a9d91d9
DA
19642013-02-07 Dmitry Antipov <dmantipov@yandex.ru>
1965
1966 * coding.c (Fdefine_coding_system_internal): Use AREF where
1967 argument is known to be a vector.
1968 * fns.c (Flocale_info): Likewise for ASET.
1969 * xselect.c (selection_data_to_lisp_data): Likewise for ASET.
1970 * w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
1971
6871e574
JD
19722013-02-05 Jan Djärv <jan.h.d@swipnet.se>
1973
1974 * nsmenu.m (update_frame_tool_bar): Check for negative tool bar
1975 height.
1976
1977 * nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
1978 (EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
1979 updateCollectionBehaviour.
1980
1981 * nsterm.m (NEW_STYLE_FS): Remove.
1982 (ns_last_use_native_fullscreen): New variable.
1983 (x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
1984 (x_set_window_size): Do not take title bar and tool bar into account
1985 if isFullscreen returns YES.
1986 (ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
1987 (check_native_fs): New function.
1988 (ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
1989 (ns_term_init): Remove NEW_STYLE_FS.
1990 (updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
1991 and tool bar if isFullscreen returns NO.
1992 (windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
1993 (initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
1994 with HAVE_NATIVE_FS.
1995 (window:willUseFullScreenPresentationOptions:): New method.
1996 (windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
1997 Hide toolbar if not enabled (Bug#13444).
1998 (windowDidExitFullScreen:): Call updateCollectionBehaviour.
1999 Restore tool bar if enabled, hide it otherwise (Bug#13444).
2000 (fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
2001 (toggleFullScreen:): If fs_is_native, call toggleFullScreen on
2002 window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
2003 Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
2004 FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
2005 (syms_of_nsterm): Add ns-use-native-fullscreen.
2006
3f011c7f
PE
20072013-02-04 Paul Eggert <eggert@cs.ucla.edu>
2008
2009 * fileio.c (Qchoose_write_coding_system): Now static.
2010
86f7c0fe
EZ
20112013-02-04 Eli Zaretskii <eliz@gnu.org>
2012
2013 * xdisp.c (window_buffer_changed): region_showing can be negative,
2014 which still means region is being displayed.
2015 (redisplay_internal): Resurrect code that forced redisplay of the
99d0d6dc
SM
2016 whole window when showing region and the mark has changed.
2017 Record the new mark position to allow redisplay optimizations.
86f7c0fe
EZ
2018 (display_line): If it->region_beg_charpos is non-zero, set the
2019 window's region_showing member to -1. (Bug#13623) (Bug#13626)
2020
2021 * window.h (struct window) <region_showing>: Declare ptrdiff_t,
2022 not bitfield of 1 bit.
2023
5257b701
DC
20242013-02-03 Daniel Colascione <dancol@dancol.org>
2025
2026 * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that
2027 daemon mode works on cygw32 when Emacs is installed and not just
2028 during development.
2029
8ea41ea9
PE
20302013-02-02 Paul Eggert <eggert@cs.ucla.edu>
2031
2032 Avoid file time stamp bug on MS-Windows (Bug#13149).
2033 * fileio.c (Fwrite_region): Don't use the heuristic on empty files,
2034 as FAT32 doesn't update time stamps when truncating them.
2035 Also, check that a file time stamp is not a multiple of 100 ns;
2036 this should catch all instances of the problem on MS-Windows,
2037 as its native file system resolution is 100 ns or worse, and
2038 checking for a non-multiple of 100 ns should impose only a small
2039 overhead on systems with ns resolution.
2040
94fbc901 20412013-02-02 Eli Zaretskii <eliz@gnu.org>
18a80473 2042
e7ac588e
EZ
2043 Avoid encoding file names on MS-Windows when they need to be run
2044 through dostounix_filename.
2045 * w32.c (normalize_filename): Accept an additional argument
2046 MULTIBYTE; if non-zero, traverse the file name by bytes and don't
2047 downcase it even if w32-downcase-file-names is non-nil.
2048 (dostounix_filename): Accept an additional argument MULTIBYTE and
2049 pass it to normalize_filename.
2050 (emacs_root_dir): Adjust.
2051
2052 * msdos.h (dostounix_filename): Adjust prototype.
2053
2054 * w32.h (dostounix_filename): Adjust prototype.
2055
2056 * msdos.c (dostounix_filename): Accept an additional argument and
2057 ignore it.
2058 (init_environment): Adjust callers of dostounix_filename.
2059
2060 * fileio.c (Ffile_name_directory, file_name_as_directory)
2061 (directory_file_name, Fexpand_file_name)
2062 (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
2063 dostounix_filename.
2064 [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
2065 non-nil.
2066 (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
2067 variables, as egetenv is case-insensitive for DOS_NT.
2068
2069 * dired.c (file_name_completion): Don't call Fdirectory_file_name
2070 with an encoded file name.
2071
99d0d6dc
SM
2072 * w32proc.c (Fw32_short_file_name, Fw32_long_file_name):
2073 Adjust calls to dostounix_filename.
e7ac588e
EZ
2074
2075 * w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
2076
2077 * unexw32.c (unexec): Adjust call to dostounix_filename.
2078
2079 * termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
2080
2081 * emacs.c (decode_env_path) [DOS_NT]: Adjust call to
2082 dostounix_filename.
2083
2084 * callproc.c (Fcall_process) [MSDOS]: Adjust call to
2085 dostounix_filename.
2086
e7c3fb06
EZ
2087 * callproc.c (Fcall_process): Make sure program name in PATH and
2088 new_argv[0] is encoded, if needed. Otherwise, un-encoded string
2089 is passed to exec/spawnve, which fails unless the file-name
2090 encoding is UTF-8.
2091
18a80473
EZ
2092 * w32proc.c (sys_spawnve): Make sure escape_char is initialized,
2093 even if w32-quote-process-args is nil.
2094
35e85499
PE
20952013-02-01 Paul Eggert <eggert@cs.ucla.edu>
2096
2097 Fix timestamp bug when write-region appends nothing (Bug#13149).
2098 * fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used,
2099 the file's time stamp doesn't change if Emacs happens to write nothing
2100 to the file, and on a buggy file system this could cause Emacs to
2101 incorrectly infer that the file system doesn't have the bug.
2102 Avoid this problem by inhibiting the inference in this case.
2103
422ff52b
DA
21042013-02-01 Dmitry Antipov <dmantipov@yandex.ru>
2105
2106 * window.h (struct window): Convert base_line_number, base_line_pos
2107 and column_number_displayed members from Lisp_Object to ptrdiff_t.
2108 Convert region_showing member from Lisp_Object to bitfield.
2109 Remove sequence_number member. Adjust comments.
2110 * window.c (sequence_number): Remove.
2111 (make_window): Initialize column_number_displayed.
2112 * print.c (print_object): Follow the printed representation of
2113 frames and print window pointer to distinguish between windows.
2114 (adjust_window_count): Invalidate base_line_pos. Adjust comment.
2115 * xdisp.c (wset_base_line_number, wset_base_line_pos)
2116 (wset_column_number_displayed, wset_region_showing): Remove.
2117 (window_buffer_changed, mode_line_update_needed, redisplay_internal)
2118 (try_scrolling, try_cursor_movement, redisplay_window)
2119 (try_window_reusing_current_matrix, try_window_id, display_line)
2120 (display_mode_lines, decode_mode_spec): Adjust users.
2121 * .gdbinit (pwinx): Do not print sequence_number.
2122
8654f9d7
PE
21232013-02-01 Paul Eggert <eggert@cs.ucla.edu>
2124
2125 Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539).
2126 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
2127 * dired.c: Include <fcntl.h>.
2128 (open_directory): New function, which uses open and fdopendir
2129 rather than opendir. DOS_NT platforms still use opendir, though.
2130 (directory_files_internal, file_name_completion): Use it.
2131 (file_attributes): New function, with most of the old Ffile_attributes.
2132 (directory_files_internal, Ffile_attributes): Use it.
2133 (file_attributes, file_name_completion_stat): First arg is now fd,
2134 not dir name. All uses changed. Use fstatat rather than lstat +
2135 stat.
2136 (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
2137 * fileio.c: Include <allocator.h>, <careadlinkat.h>.
2138 (emacs_readlinkat): New function, with much of the old
2139 Ffile_symlink_p, but with an fd argument for speed.
2140 It uses readlinkat rather than careadlinkatcwd, so that it
2141 need not assume the working directory.
2142 (Ffile_symlink_p): Use it.
2143 * filelock.c (current_lock_owner): Use emacs_readlinkat
2144 rather than emacs_readlink.
2145 * lisp.h (emacs_readlinkat): New decl.
2146 (READLINK_BUFSIZE, emacs_readlink): Remove.
2147 * sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
2148 (emacs_norealloc_allocator, emacs_readlink): Remove.
2149 This stuff is moved to fileio.c.
2150 * w32.c (fstatat, readlinkat): New functions.
2151 (careadlinkat): Don't check that fd == AT_FDCWD.
2152 (careadlinkatcwd): Remove; no longer needed.
2153
9dbda100
GM
21542013-01-31 Glenn Morris <rgm@gnu.org>
2155
2156 * fileio.c (choose_write_coding_system): Make it callable from Lisp.
20a8c477
GM
2157 (Fwrite_region): Update for new choose_write_coding_system args.
2158 Move the last piece of choose_write_coding_system here. (Bug#13522)
9dbda100
GM
2159 (syms_of_fileio): Add choose-write-coding-system.
2160
3f82a88a 21612013-01-30 Eli Zaretskii <eliz@gnu.org>
224f4ec1
EZ
2162
2163 * w32.c (sys_open): Zero out the flags for the new file descriptor.
2164 (sys_close): Zero out the flags for the file descriptor before
2165 closing it. (Bug#13546)
2166
806fed21 2167 * w32.c (parse_root, get_volume_info, readdir, read_unc_volume)
99d0d6dc
SM
2168 (logon_network_drive, stat_worker, symlink, chase_symlinks):
2169 Use CharNextExA and CharPrevExA to iterate over file names encoded in
806fed21
EZ
2170 DBCS. (Bug#13553)
2171
6ee4509a
EZ
2172 * w32.c (w32_get_long_filename, init_environment, readlink):
2173 Support file names encoded in DBCS codepages.
26854e9c
EZ
2174 (readlink): Use the current file-name-coding-system, not the ANSI
2175 codepage, to decode and handle targets of symlinks.
6ee4509a 2176
cf01a359
EZ
21772013-01-28 Eli Zaretskii <eliz@gnu.org>
2178
2179 * w32.c (opendir): Now accepts a 'const char *'.
2180
6fd326b7
DA
21812013-01-28 Dmitry Antipov <dmantipov@yandex.ru>
2182
2183 Remove obsolete redisplay code. See the discussion at
2184 http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00576.html.
2185 * dispnew.c (preemption_period, preemption_next_check): Remove.
2186 (Vredisplay_preemption_period): Likewise.
2187 (update_frame, update_single_window, update_window, update_frame_1):
2188 Adjust users. Always assume that PERIODIC_PREEMPTION_CHECKING is not
2189 used, following the 2012-06-22 change.
2190
d8cd7742
EZ
21912013-01-25 Eli Zaretskii <eliz@gnu.org>
2192
2193 * w32notify.c (Fw32notify_add_watch): Doc fix. (Bug#13540)
2194
266fee4f
DA
21952013-01-25 Dmitry Antipov <dmantipov@yandex.ru>
2196
2197 * font.c (num_fonts): Remove the leftover from old
2198 debugging code. Adjust comment style here and there.
59e624b3
DA
2199 * insdel.c (insert_1): Remove.
2200 * lisp.h (insert_1): Remove prototype.
2201 * xdisp.c (message_dolog): Adjust users to call insert_1_both.
266fee4f 2202
830e46e6 22032013-01-25 Eli Zaretskii <eliz@gnu.org>
6d2851de
EZ
2204
2205 * w32.c (max_filename_mbslen): New function.
2206 (normalize_filename, readdir): Use it to detect locales where ANSI
2207 encoding of file names uses a double-byte character set (DBCS).
2208 If a DBCS encoding is used, advance by characters using
99d0d6dc
SM
2209 CharNextExA, instead of incrementing a 'char *' pointer.
2210 Use _mbslwr instead of _strlwr. (Bug#13515)
6d2851de 2211
81abbb95
EZ
2212 * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial
2213 request of memory reservation to 1.7GB. (Bug#13065)
2214
830e46e6 22152013-01-25 Andreas Schwab <schwab@linux-m68k.org>
ba14c607
AS
2216
2217 * coding.c (detect_coding_iso_2022): Move back mis-reordered code
2218 at check_extra_latin label. (Bug#13505)
2219
fd3ceb09
DA
22202013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2221
2222 * nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script):
2223 Avoid redundant calls to strlen.
2224
edfa7fa0
DA
22252013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2226
2227 Drop async_visible and async_iconified fields of struct frame.
2228 This is possible because async input is gone; for details, see
2229 http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
2230 * frame.h (struct frame): Remove async_visible and async_iconified
2231 members, convert garbaged to unsigned bitfield. Adjust comments.
2232 (FRAME_SAMPLE_VISIBILITY): Remove. Adjust all users.
2233 (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
2234 * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
2235 Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
2236 FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
2237 * w32term.c: Ditto.
2238 (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
2239 properly. Likewise for obscured.
2240 * xterm.c: Ditto.
266fee4f 2241 (handle_one_xevent): Save visible state to generate ICONIFY_EVENT
edfa7fa0
DA
2242 properly.
2243 * nsterm.m: Ditto.
2244 (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
2245
5ad86e34
DA
22462013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2247
2248 * insdel.c (prepare_to_modify_buffer): Revert last change as suggested
2249 in http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00555.html.
2250
b09cca6a
SM
22512013-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
2252
2253 * xdisp.c (message2, message2_nolog): Remove functions.
2254 (message3, message3_nolog): Extract nbytes and multibyteness directly
2255 from the string. Change all callers.
2256 (message3_nolog): Don't set message_enable_multibyte since set_message
2257 will reset it anyway.
2258 (message1, message1_nolog): Use message3.
2259 (vmessage): Use a stack allocated buffer rather than f->message_buf.
2260 (with_echo_area_buffer): Remove last two arguments. Update all callers.
2261 (set_message): Drop all but the second arg, which has to be a string.
2262 (set_message_1): Simplify now that we know that a1 is NULL and the
2263 second arg is a string.
2264 * frame.h (struct frame): Remove `message_buf' field.
2265 Use glyphs_initialized_p instead.
2266 (FRAME_MESSAGE_BUF): Remove macro.
2267 * w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2.
2268 * lisp.h (message2, message2_nolog): Remove declarations.
2269 (message3, message3_nolog): Update declarations.
2270 * keyboard.c (read_char_minibuf_menu_text)
2271 (read_char_minibuf_menu_width): Remove vars.
2272 (read_char_minibuf_menu_prompt): Rewrite the menu's construction so as
2273 to correctly handle multibyte strings.
2274 * frame.c (delete_frame): Don't free message_buf any more.
2275 * editfns.c (message_text, message_length): Remove vars.
2276 (Fmessage_box): Don't copy the Lisp string's bytes any longer.
2277 * fileio.c (auto_save_error): Use message3 instead of message2.
2278 * dispnew.c (adjust_frame_message_buffer): Remove function.
2279
54ab1c5a
EZ
22802013-01-23 Eli Zaretskii <eliz@gnu.org>
2281
2282 * w32term.c (w32fullscreen_hook): Account correctly for the screen
2283 real estate used for the tool bar and the menu bar.
2284
6c27465b
DA
22852013-01-23 Dmitry Antipov <dmantipov@yandex.ru>
2286
2287 * insdel.c (prepare_to_modify_buffer): Force redisplay if
2288 hidden buffer is prepared to modification (Bug#13164).
2289
9d93ce29
DA
22902013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
2291
2292 * window.h (struct window): Change window_end_valid member from
2293 Lisp_Object to a bitfield. Adjust comments.
2294 (wset_window_end_valid): Remove.
2295 * window.c (adjust_window_count): Clear window_end_valid.
2296 (Fwindow_end): Adjust user. Remove ancient #if 0 code.
2297 (Fwindow_line_height, set_window_buffer, Frecenter)
2298 (Fsplit_window_internal, Fdelete_other_windows_internal)
2299 (Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
2300 * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
2301 * xdisp.c (check_window_end, reconsider_clip_changes)
2302 (redisplay_internal, mark_window_display_accurate_1, redisplay_window)
2303 (try_window, try_window_reusing_current_matrix, note_mouse_highlight)
2304 (find_first_unchanged_at_end_row, try_window_id): Likewise.
2305
1dcb8ea2
DA
23062013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
2307
2308 * xdisp.c (mark_window_display_accurate): Simplify the loop
2309 assuming that the only one of vchild, hchild or buffer window
2310 slots is non-nil. Call mark_window_display_accurate_1 for
2311 the leaf windows only.
2312 (mark_window_display_accurate_1): Always assume leaf window.
2313 Adjust comment.
2314
b41b8a7e
PE
23152013-01-22 Paul Eggert <eggert@cs.ucla.edu>
2316
593a5f2e
PE
2317 * emacs.c (Qkill_emacs_hook): Now static.
2318
b41b8a7e
PE
2319 * fileio.c (Finsert_file_contents): Simplify.
2320 Remove unnecessary assignments and tests.
2321
84e5ed96
EZ
23222013-01-21 Eli Zaretskii <eliz@gnu.org>
2323
2324 * w32.c (acl_set_file): Don't test for errors unless
2325 set_file_security returns FALSE. Avoids spurious errors when
2326 saving files.
2327
2ef88fd4
DA
23282013-01-21 Dmitry Antipov <dmantipov@yandex.ru>
2329
2330 * fileio.c (Finsert_file_contents): Revert code introduced at
2331 2013-01-18 in favor of the simpler and generally better fix.
2332 Save stack space by removing 'buffer' and reusing 'read_buf'
2333 where appropriate.
2334
d7a0a7c9
PE
23352013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2336
2337 * lisp.h (eabs): Define unconditionally (Bug#13419).
2338 The old "#if !defined (eabs)" was an unnecessary revenant of back
2339 when this macro was called "abs". Document 'eabs' better.
2340
795e7a5b 23412013-01-19 Glenn Morris <rgm@gnu.org>
085d34c4
GM
2342
2343 * fns.c (Frandom): Doc fix.
2344
59ac2d13
EZ
23452013-01-19 Eli Zaretskii <eliz@gnu.org>
2346
2347 * editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid
2348 segfault when there are lots of overlays.
2349
2350 * buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault
99d0d6dc
SM
2351 when there are lots of overlays.
2352 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00421.html
59ac2d13
EZ
2353 for the details and a way to reproduce.
2354
b3fbb395
PE
23552013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2356
3a955a1f
PE
2357 * fileio.c: Use O_APPEND to append.
2358 This corresponds better to the natural interpretation of "append",
2359 and avoids the need to open the output file twice, or to invoke
2360 lseek when APPEND is neither nil nor a number.
2361 This relies on POSIX 1003.1-1988 or later, which is OK nowadays.
2362 (Fwrite_region): Simplify. Use O_APPEND instead of opening the
2363 file possibly twice, and lseeking to its end; this avoids the
2364 need to lseek on non-regular files. Do not use O_EXCL and O_TRUNC
2365 at the same time: the combination is never needed and apparently
2366 it doesn't work with DOS_NT.
2367
21cd50b8
PE
2368 Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149).
2369 * fileio.c (Fwrite_region): Use O_BINARY in checking code, too.
2370
b3fbb395
PE
2371 Allow floating-point file offsets.
2372 Problem reported by Vitalie Spinu in
2373 <http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00411.html>.
2374 * fileio.c (emacs_lseek): Remove.
2375 (file_offset): New function.
2376 (Finsert_file_contents, Fwrite_region): Use it.
2377
73c14218
CY
23782013-01-19 Chong Yidong <cyd@gnu.org>
2379
2380 * emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid
2381 aborting on Fsignal (Bug#13289).
2382
6a9465f3
EZ
23832013-01-19 Eli Zaretskii <eliz@gnu.org>
2384
2385 * w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from
2386 set_file_security as failure due to insufficient privileges.
2387 Reported by Fabrice Popineau <fabrice.popineau@supelec.fr>.
76e9f7b9 2388 (fstat): Return owner and group like 'stat' and 'lstat' do.
6a9465f3 2389
fa705c99
PE
23902013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2391
9fe43ff6
PE
2392 Work around bug in CIFS and vboxsf file systems (Bug#13149).
2393 The bug was observed on Ubuntu operating inside a virtual machine,
2394 editing files mounted via CIFS or vboxsf from the MS Windows 7 host.
2395 The workaround introduces a race condition on non-buggy hosts,
2396 but it's an unlikely race and anyway there's a nearly identical
2397 nearby race that can't be fixed.
2398 * fileio.c (valid_timestamp_file_system, timestamp_file_system):
2399 New static vars.
2400 (Fwrite_region): Test for file system time stamp bug.
2401 (init_fileio): New function.
2402 * lisp.h (init_fileio): Declare it.
2403 * emacs.c (main): Call it.
2404
fa705c99
PE
2405 * fileio.c (Finsert_file_contents): Simplify new diagnostic
2406 and make it more consistent with other stat-failure diagnostics.
2407
e07469fa
DA
24082013-01-18 Dmitry Antipov <dmantipov@yandex.ru>
2409
99d0d6dc
SM
2410 Fix crash when inserting data from non-regular files.
2411 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00406.html
e07469fa
DA
2412 for the error description produced by valgrind.
2413 * fileio.c (read_non_regular): Rename to read_contents.
2414 Free Lisp_Save_Value object used to pass parameters.
2415 (read_non_regular_quit): Rename to read_contents_quit.
2416 (Finsert_file_contents): Redesign internal file reading loop to adjust
2417 gap and end positions after each read and so help make_gap to work
2418 properly. Do not signal an I/O error too early and so do not leave
2419 not yet decoded characters in a buffer, which was the reason of
2420 redisplay crash. Use list2 to build return value. Adjust comments.
2421
67722112
PE
24222013-01-17 Paul Eggert <eggert@cs.ucla.edu>
2423
2424 Close a race when statting and reading files (Bug#13149).
2425 * fileio.c (Finsert_file_contents): Use open+fstat, not stat+open.
2426 This avoids a race if the file is renamed between stat and open.
2427 This race is not the problem originally noted in Bug#13149;
2428 see <http://bugs.gnu.org/13149#73> and later messages in the thread.
2429
468afbac
DA
24302013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
2431
2432 * lisp.h (toplevel): Add comment about using Lisp_Save_Value
2433 objects, related functions and macros.
2434 (make_save_value): Adjust prototype.
2435 (make_save_pointer): New prototype.
2436 (SAFE_NALLOCA): Fix indentation. Use make_save_pointer.
2437 (SAFE_ALLOCA_LISP): Adjust make_save_value usage.
2438 * alloc.c (format_save_value): Rename to make_save_value.
2439 (make_save_pointer): New function.
2440 (record_xmalloc): Use make_save_pointer.
2441 * dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c:
2442 * nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c:
2443 Change users of make_save_value to make_save_pointer.
2444 Likewise for format_save_value and make_save_value.
2445
0e70695a
DA
24462013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
2447
2448 * buffer.h (NARROWED, BUF_NARROWED): Drop unused macros.
2449 (DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation.
2450 * buffer.c (toplevel, syms_of_buffer): Drop old commented-out
2451 debugging stubs.
2452
963ea40f
PE
24532013-01-15 Paul Eggert <eggert@cs.ucla.edu>
2454
2455 * alloc.c (free_save_value): Now static.
2456
3346c1d0
DA
24572013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2458
2459 * keymap.c (map_keymap_internal): Use format_save_value.
2460 (map_keymap_char_table_item): Adjust accordingly.
2461 * fileio.c (non_regular_fd, non_regular_inserted)
2462 (non_regular_nbytes): Remove.
99d0d6dc
SM
2463 (Finsert_file_contents): Convert trytry to ptrdiff_t.
2464 Use format_save_value to pass parameters to read_non_regular.
3346c1d0
DA
2465 (read_non_regular): Use XSAVE_ macros to extract parameters.
2466 Adjust comment.
2467 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
2468 format_save_value.
2469 (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
2470
2b30549c
DA
24712013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2472
2473 * lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
2474 extraction from any Lisp_Save_Value slot. Add type checking.
2475 * alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c:
2476 * keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c:
2477 * xselect.c: All users changed.
2478
1b971ac1
DA
24792013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2480
2481 Some convenient bits to deal with Lisp_Save_Values.
2482 * lisp.h (XSAVE_OBJECT): New macro to extract saved objects.
2483 (allocate_misc): Remove prototype.
2484 (format_save_value): New prototype.
2485 * alloc.c (allocate_misc): Revert back to static.
2486 (format_save_value): New function to build Lisp_Save_Value
2487 object with the specified internal structure.
2488 (make_save_value): Reimplement using format_save_value.
2489 * editfns.c (save_excursion_save): Use format_save_value.
2490 (save_excursion_restore): Use XSAVE_OBJECT.
2491
c50cf2ea
PE
24922013-01-14 Paul Eggert <eggert@cs.ucla.edu>
2493
2494 Avoid needless casts with XSAVE_POINTER.
2495 * alloc.c (mark_object) [GC_MARK_STACK]:
2496 * dired.c (directory_files_internal_unwind):
2497 * fileio.c (do_auto_save_unwind):
2498 * gtkutil.c (pop_down_dialog):
2499 * keymap.c (map_keymap_char_table_item):
2500 * lread.c (load_unwind):
2501 * nsmenu.m (pop_down_menu):
2502 * print.c (print_object) [GC_MARK_STACK]:
2503 * xfns.c (clean_up_file_dialog):
2504 * xmenu.c (cleanup_widget_value_tree):
2505 Omit casts between XSAVE_POINTER and a pointer type.
2506
9d5a1260
DA
25072013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
2508
2509 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
2510 * eval.c (eval_sub): Protect `form' from being GCed before its
2511 car and cdr becomes protected with the backtrace entry.
2512
73ebd38f
DA
25132013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
2514
2515 Make Lisp_Save_Value more versatile storage for up to four objects.
2516 * lisp.h (toplevel): Enumeration to describe types of saved objects.
2517 (struct Lisp_Save_Value): New layout. Adjust comments.
2518 (XSAVE_POINTER): New macro.
2519 (XSAVE_INTEGER): Likewise.
2520 (allocate_misc): Add prototype.
2521 (free_misc): Likewise.
2522 * alloc.c (allocate_misc): Now global.
2523 (free_misc): Likewise. Adjust comment.
2524 (make_save_value): Use new Lisp_Save_Value layout. Adjust comment.
2525 (free_save_value): Likewise.
2526 (mark_object): Likewise.
2527 * editfns.c (save_excursion_save): Pack everything within
2528 Lisp_Save_Value and so avoid xmalloc.
2529 (save_excursion_restore): Adjust to match new layout. Use free_misc
2530 because we do not allocate extra memory any more. Add eassert.
2531 * print.c (print_object): New code to print Lisp_Save_Value. Do not
2532 rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments.
2533 * dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
2534 * lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
2535 Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
2536
b826986f
JD
25372013-01-13 Jan Djärv <jan.h.d@swipnet.se>
2538
2539 * nsfont.m (LCD_SMOOTHING_MARGIN): New define.
2540 (nsfont_draw): Remove disabling of LCD smoothing.
2541 (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix
2e7a1892 2542 Bug#11484 with LCD smoothing on.
b826986f 2543
c0511b57 25442013-01-13 Paul Eggert <eggert@cs.ucla.edu>
45b7bfdd 2545
b6f960a0
PE
2546 Fix SIGDANGER handlers, for AIX (Bug#13408).
2547 * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]:
2548 Move handlers here from emacs.c; they were out of place.
2549
616763d5
JD
25502013-01-11 Jan Djärv <jan.h.d@swipnet.se>
2551
2552 * xterm.c (syms_of_xterm): Adjust documentation for
2553 scroll-bar-adjust-thumb-portion.
2554
0b59090b 25552012-12-31 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
ec782c5f
JD
2556
2557 * xterm.c (scroll-bar-adjust-thumb-portion): New variable to
2558 determine whether scroll bar thumb size should be adjusted or
2559 not. Use variable for MOTIF.
2560
2561 * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for
2562 GTK.
2563
7bc916b4
JD
25642013-01-13 Jan Djärv <jan.h.d@swipnet.se>
2565
eac4d08f
JD
2566 * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key
2567 event is generated.
2568 (doCommandBySelector:): Set processingCompose to NO.
2569
7bc916b4
JD
2570 * nsfont.m (ns_findfonts): Add block/unblock_input calls.
2571 Remove check for fkeys count > zero, block/unblock fixes the real bug.
2572 (nsfont_list_family): Add block/unblock_input calls.
2573 (nsfont_open): Move block_input earlier. Add unblock_input before early
2574 return.
2575 (nsfont_draw): Add block/unblock_input calls.
2576
bdc9b756
PE
25772013-01-12 Dmitry Antipov <dmantipov@yandex.ru>
2578
2579 * indent.c (Fvertical_motion): Remove now-incorrect GCPROs
2580 for old_charpos and old_bytepos.
2581
ee56a6dc
PE
25822013-01-12 Paul Eggert <eggert@cs.ucla.edu>
2583
2584 Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415).
2585 * editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
2586 Clear tzvalbuf_in_environ if this workaround is in effect.
2587 Problem and fix reported by Kazuhiro Ito.
2588
9fc9a531
AH
25892013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com>
2590
99d0d6dc
SM
2591 * insdel.c (Fcombine_after_change_execute, syms_of_insdel):
2592 Fix ambiguous doc string cross-reference(s).
9fc9a531
AH
2593
2594 * keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
2595 doc string cross-reference(s).
2596
2597 * window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
2598 string cross-reference(s).
2599
6020559a
DA
26002013-01-11 Dmitry Antipov <dmantipov@yandex.ru>
2601
2602 Avoid unnecessary byte position calculation for the gap movement.
2603 Since all users of move_gap do CHAR_TO_BYTE for other purposes
2604 anyway, all of them should use move_gap_both instead.
2605 * lisp.h (move_gap): Remove prototype.
2606 * insdel.c (move_gap): Remove.
2607 (move_gap_both): Add eassert.
2608 * editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
2609 * xml.c (parse_region): Likewise.
2610
b8956427
PE
26112013-01-11 Paul Eggert <eggert@cs.ucla.edu>
2612
2613 emacsclient -t should not suspend Emacs server (Bug#13387)
2614 * lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
2615 New functions.
2616 * term.c (init_tty): Use them instead of rolling our own code.
2617 * sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this
2618 switches from 'signal' to 'pthread_sigmask', which is safer in
2619 multithreaded applications.
2620 * term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
2621 which has already arranged for that.
2622 (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
2623 This is the main part of the bug fix.
2624
0b59090b 26252013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change)
48660ca5
JD
2626
2627 * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around
2628 x_last_font_name (Bug#13403).
2629
58cc0a01
DA
26302013-01-10 Dmitry Antipov <dmantipov@yandex.ru>
2631
2632 Omit buffer_slot_type_mismatch and use generic predicates to enforce
2633 the type of per-buffer values where appropriate.
2634 * lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
2635 predicate, which is how it's really used now. Adjust comment.
2636 * buffer.h (buffer_slot_type_mismatch): Remove prototype.
2637 * buffer.c (buffer_slot_type_mismatch): Remove.
2638 (DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
2639 predicate. Adjust comment.
2640 (syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for
2641 fill-column, left-margin, tab-width, buffer-saved-size,
2642 left-margin-width, right-margin-width, left-fringe-width,
2643 right-fringe-width, scroll-bar-width and buffer-display-count.
2644 Use Qstringp for default-directory, buffer-file-name,
2645 buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for
2646 scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for
2647 line-spacing.
2648 * data.c (store_symval_forwarding): Adjust to call the predicate.
2649
5104861e
JB
26502013-01-09 Juanma Barranquero <lekktu@gmail.com>
2651
2652 * w32.c (get_name_and_id, acl_set_file):
2653 * w32term.c (w32fullscreen_hook): Remove unused local variables.
2654
eefd7278
DA
26552013-01-09 Dmitry Antipov <dmantipov@yandex.ru>
2656
2657 * lisp.h (make_gap_1): New prototype.
2658 * buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
2659 gap size values.
2660 * editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
2661 naming convention.
2662 (syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code.
2eae9ccc 2663 * insdel.c (make_gap_larger): Use GAP_BYTES_DFL. Adjust comment.
eefd7278
DA
2664 (make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment.
2665 (make_gap_1): New function to adjust the gap of any buffer.
2666 * coding.c (coding_alloc_by_making_gap): Use it.
2667 * buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE,
2668 GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment.
2669
073ca75b
JL
26702013-01-08 Juri Linkov <juri@jurta.org>
2671
2672 * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
2673 of (supports :underline (:style wave)). (Bug#13000)
2674
3bace969
AH
26752013-01-08 Aaron S. Hawley <aaron.s.hawley@gmail.com>
2676
2677 * undo.c (Fprimitive_undo): Move to simple.el.
2678 (syms_of_undo): Remove declarations for Sprimitive_undo.
2679
63a63bd4
SM
26802013-01-08 Stefan Monnier <monnier@iro.umontreal.ca>
2681
2682 * keyboard.c (echo_add_key): Rename from echo_add_char.
2683
56ed110a
CY
26842013-01-06 Chong Yidong <cyd@gnu.org>
2685
2686 * keyboard.c (echo_add_char): New function, factored out from
2687 echo_char. Don't add a space if the previous echo string was
2688 empty (Bug#13255).
2689 (echo_char): Use it.
2690 (read_key_sequence): When echoing mock input, ensure that the
2691 trailing dash is properly added.
2692
b630991b
EZ
26932013-01-05 Eli Zaretskii <eliz@gnu.org>
2694
2695 * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead
2696 of a non-portable "t" to print ptrdiff_t values. Allow up to 9
63a63bd4
SM
2697 digits for buffer positions, before misalignment starts.
2698 Display "0" for integer "object" field.
b630991b
EZ
2699 (dump_glyph_row): Adapt the header line to changes in dump_glyph.
2700 Display the newline glyph more unambiguously.
2701
f032a318
YM
27022013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2703
2704 * nsterm.m (ns_draw_underwave):
2705 * w32term.c (w32_draw_underwave):
2706 * xterm.c (x_draw_underwave): Make underwave look more triangular
2707 and also degrade gracefully for small fonts. (Bug#13000)
2708
4240dd3c
YM
2709 * nsterm.m (ns_draw_text_decoration):
2710 * w32term.c (x_draw_glyph_string):
2711 * xterm.c (x_draw_glyph_string): Don't use previous underline
2712 thickness and position if previous underline type is underwave.
2713
553081a5
SM
27142013-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
2715
2716 * fileio.c (Ffile_acl): Undocument return format.
2717
9539d465 27182013-01-02 Glenn Morris <rgm@gnu.org>
08f59219
GM
2719
2720 * keymap.c (Fkey_description): Doc fix. (Bug#13323)
2721
71376d4b
PE
27222013-01-02 Paul Eggert <eggert@cs.ucla.edu>
2723
2724 Simplify via eabs.
2725 * dired.c (file_name_completion):
2726 * doc.c (get_doc_string):
2727 * floatfns.c (round2):
2728 * font.c (font_score, font_delete_unmatched):
2729 * fringe.c (compute_fringe_widths):
2730 * lread.c (read_list):
2731 * minibuf.c (Ftry_completion):
2732 * term.c (tty_ins_del_lines):
2733 * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
2734 Use eabs (x) rather than open-coding it as (x < 0 ? -x : x).
2735
a7f11948
EZ
27362012-12-31 Eli Zaretskii <eliz@gnu.org>
2737
2738 * w32.c (unsetenv): Set up the string passed to _putenv
63a63bd4
SM
2739 correctly.
2740 See http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00863.html
a7f11948
EZ
2741 for the bug this caused.
2742
84cc1ab6
PE
27432012-12-30 Paul Eggert <eggert@cs.ucla.edu>
2744
2745 * coding.c (Qmac): Now static.
2746
5a1d858b
JD
27472012-12-30 Jan Djärv <jan.h.d@swipnet.se>
2748
2749 * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
2750 (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
2751 handlebox_widget. Set toolbar_in_hbox to false/true, set
2752 toolbar_is_packed to true.
2753 (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
2754 (update_frame_tool_bar): Check toolbar_is_packed for packing.
2755 Show all on TOOLBAR_TOP_WIDGET.
2756 (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned
2757 by TOOLBAR_TOP_WIDGET.
2758 (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
2759 Check toolbar_is_packed.
8b745d92
JD
2760 (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
2761 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2762 (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
2763 false.
2764 (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2765 (xg_update_menubar): Update title only if
2766 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2767 (xg_update_submenu): Skip tearoff only if
2768 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2769 (xg_initialize): Initialize xg_detached_menus only if
2770 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
5a1d858b
JD
2771
2772 * xterm.h (struct x_output): Surround handlebox_widget with
2773 #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new,
2774 toolbar_in_hbox is bool.
2775
d5e5e7b4 27762012-12-30 Andreas Schwab <schwab@linux-m68k.org>
2550c6e4
AS
2777
2778 * src/Makefile.in (TEMACS_LDFLAGS2): Remove.
2779 (LIBS_GNUSTEP): Define.
2780 (LIBES): Add $(LIBS_GNUSTEP).
2781 (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
2782
d5e5e7b4 27832012-12-30 Eli Zaretskii <eliz@gnu.org>
7a3a7493
EZ
2784
2785 * xdisp.c (set_cursor_from_row): Don't confuse a truncation or
2786 continuation glyph on a TTY with an indication of an empty line.
2787 (Bug#13277)
2788
e7ae8039
EZ
27892012-12-29 Eli Zaretskii <eliz@gnu.org>
2790
ccad023b
EZ
2791 * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
2792 file's SELinux context or ACLs successfully set, nil otherwise.
2793 (Bug#13298)
8d23a331 2794 (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
ccad023b 2795
e7ae8039
EZ
2796 * w32proc.c (reader_thread): Avoid passing NULL handles to
2797 SetEvent and WaitForSingleObject.
2798
7456e13f
PE
27992012-12-28 Paul Eggert <eggert@cs.ucla.edu>
2800
2801 Port EXTERNALLY_VISIBLE to Clang 3.2.
2802 * conf_post.h (__has_attribute): New macro.
2803 (EXTERNALLY_VISIBLE): Use it. This ports to Clang 3.2.
2804
1ab0c851
GM
28052012-12-27 Glenn Morris <rgm@gnu.org>
2806
2807 * cygw32.c (Fcygwin_convert_file_name_to_windows)
2808 (Fcygwin_convert_file_name_from_windows): Doc fixes.
2809
82e2a1f0 28102012-12-27 Eli Zaretskii <eliz@gnu.org>
f5c81c80 2811
63a63bd4
SM
2812 * fileio.c (file_name_as_directory, directory_file_name):
2813 Accept an additional argument MULTIBYTE to indicate whether the input C
f5c81c80
EZ
2814 came from a multibyte or a unibyte Lisp string; all callers
2815 adjusted. Don't assume the input string is always multibyte.
2816 (Bug#13262)
2817 (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly:
2818 don't ENCODE_FILE them, and return a unibyte string if the input
2819 was unibyte.
2820 (Fexpand_file_name): Don't mix unibyte with multibyte strings, and
2821 don't assume the input strings will always be multibyte. If the
2822 input strings are multibyte, decode strings obtained from C
2823 library functions.
2824
8847a0de
DA
28252012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2826
2827 * lisp.h (toplevel): Add two notices to the comment about
2828 defining a new Lisp data type.
6cda572a
DA
2829 * print.c (print_object): If Lisp_Save_Value object's pointer
2830 is the address of a memory area containing Lisp_Objects, try
2831 to print them.
2832 * alloc.c (valid_lisp_object_p): Adjust comment.
8847a0de 2833
4b298d5a
DA
28342012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2835
2836 * keyboard.c (record_asynch_buffer_change): Initialize an event
2837 only if it's really needed.
2838 * frame.h (enum output_method): Remove output_mac member since
2839 it's a leftover from the deleted code.
2840 * frame.c (Fframep): Adjust user here ...
2841 * terminal.c (Fterminal_live_p): ... and here.
2842 * coding.c (Qmac): Now here because it's only used to denote
2843 end-of-line encoding type.
2844 (syms_of_coding): DEFSYM it.
2845 * frame.h (Qmac): Remove duplicated declaration.
2846
12384b01
PE
28472012-12-26 Paul Eggert <eggert@cs.ucla.edu>
2848
2849 * window.c (select_window_1): Now static, since it's used only here.
2850
f1665bdc
EZ
28512012-12-25 Eli Zaretskii <eliz@gnu.org>
2852
2853 * window.c (window_body_cols): Subtract display margins from the
2854 window body width on TTYs as well. See
2855 http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
2856 for the original report.
2857
9a0d4f34
DA
28582012-12-25 Dmitry Antipov <dmantipov@yandex.ru>
2859
2860 * xdisp.c (redisplay_window): Remove inner local variable
2861 because the outer shadowed one has the same meaning.
cd78d9b1
DA
2862 * xterm.h (struct x_output): Remove toolbar_detached member since it's
2863 set but never used.
2864 * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
2865 (xg_create_tool_bar): Adjust users.
9a0d4f34 2866
f9e7c67e
DA
28672012-12-24 Dmitry Antipov <dmantipov@yandex.ru>
2868
2869 * buffer.h (BUF_COMPACT): New macro to follow the common style.
2870 * buffer.c (Fget_buffer_create): Use it to set compact field of
2871 struct buffer_text to avoid accessing an uninitialized value
2872 when compact_buffer is called for the first time.
2873 (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
2944d406
DA
2874 (Fset_buffer_modified_p): Use buffer_window_count to check
2875 whether the buffer is displayed in some window.
2876 * xdisp.c (message_dolog): Likewise.
f9e7c67e 2877
299614f3
EZ
28782012-12-23 Eli Zaretskii <eliz@gnu.org>
2879
40ff07a5
EZ
2880 * w32.c (acl_set_file): If setting the file security descriptor
2881 fails, and the new DACL is identical to the existing one, silently
2882 return success. This fixes problems for users backing up their
2883 own files without having the necessary privileges for setting
2884 security descriptors.
2885
299614f3
EZ
2886 * w32proc.c (reader_thread): Do not index fd_info[] with negative
2887 values.
2888 (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
2889 after WaitForSingleObject returns normally. This expedites reader
2890 thread shutdown when delete_child triggers it.
2891 (reap_subprocess): More accurate commentary for why we call
2892 delete_child only when cp->fd is negative.
2893
2894 * w32.c (sys_close): Do not call delete_child on a subprocess
2895 whose handle is not yet closed. Instead, set its file descriptor
2896 to a negative value, so that reap_subprocess will call
63a63bd4
SM
2897 delete_child on that subprocess when its SIGCHLD arrives.
2898 This avoids closing handles used for communications between sys_select
299614f3
EZ
2899 and reader_thread, which doesn't give sys_select a chance to
2900 notice that the process exited and invoke the SIGCHLD handler for
2901 it.
2902
cf162aee
JD
29032012-12-23 Jan Djärv <jan.h.d@swipnet.se>
2904
2905 * nsfns.m (Fns_do_applescript): Run event loop until script has
2906 been executed (Bug#12969).
2907 (ns_run_ascript): Chech as_script for nil, set to nil after
2908 executing script.
2909
94900bfe
MR
29102012-12-22 Martin Rudalics <rudalics@gmx.at>
2911
2912 * window.c (Fselect_window): Reword doc-string (Bug#13248).
2913
b2faf49c
EZ
29142012-12-22 Eli Zaretskii <eliz@gnu.org>
2915
2916 * w32term.c (w32fullscreen_hook): New function.
2917 (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
2918
7efa3fb3
EZ
29192012-12-21 Eli Zaretskii <eliz@gnu.org>
2920
bb085aed
EZ
2921 * fileio.c (Finsert_file_contents): Doc fix.
2922
7efa3fb3
EZ
2923 * w32proc.c (new_child, delete_child, find_child_pid): For a
2924 subprocess, consider its slot being in use as long as its process
2925 handle (procinfo.hProcess) is not NULL. This avoids reusing the
2926 slot when a new process is started immediately after killing
2927 another one, without waiting enough time for the first process to
2928 be reaped and resources allocated for it be orderly freed.
2929 (Bug#13086)
2930 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2931
c1f02afa
CY
29322012-12-21 Chong Yidong <cyd@gnu.org>
2933
2934 * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
2935
5bec25eb
CY
2936 * fns.c (Fcompare_strings): Doc fix (Bug#13081).
2937
a4b0cca1 29382012-12-21 Eli Zaretskii <eliz@gnu.org>
92340ec7
EZ
2939
2940 * w32.c (get_name_and_id): Always pass NULL as the first argument
2941 of lookup_account_sid. Avoids crashes with UNC file names that
2942 refer to DFS domains, not to specific machine names. (Bug#12621)
2943 Remove now unused argument FNAME; all callers changed.
2944 (get_file_owner_and_group): Remove now unused argument FNAME; all
2945 callers changed.
2946
34b4b7eb
CY
29472012-12-21 Chong Yidong <cyd@gnu.org>
2948
2949 * editfns.c (Finsert_char): Since read-char-by-name now signals an
2950 error for invalid chars, don't check for a nil return value.
2951
13002885
DA
29522012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2953
2954 Avoid calls to CHAR_TO_BYTE if byte position is known.
2955 * editfns.c (make_buffer_string_both): Use move_gap_both.
2956 (Fbuffer_string): Use make_buffer_string_both.
2957 * marker.c (buf_charpos_to_bytepos): Convert to eassert.
2958 Adjust comment.
2959 (buf_bytepos_to_charpos): Likewise.
2960 (charpos_to_bytepos): Remove.
2961 * fileio.c (Finsert_file_contents): Use move_gap_both.
2962 * search.c (Freplace_match): Likewise.
9a0d4f34 2963 * process.c (process_send_region): Likewise. Use convenient
13002885
DA
2964 names for byte positions.
2965 * lisp.h (charpos_to_bytepos): Remove prototype.
2966 * indent.c (scan_for_column): Use CHAR_TO_BYTE.
2967 * insdel.c (move_gap): Likewise.
2968
99e9311c
PE
29692012-12-20 Paul Eggert <eggert@cs.ucla.edu>
2970
2971 * xdisp.c (redisplay_internal): Remove now-unused local.
2972
e02230bf
SM
29732012-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
2974
2975 * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
2976 (redisplay_internal): Don't bother selecting the frame to get the
4a74c818 2977 proper value of frame-local variables (bug#13225).
e02230bf 2978
1687fb14
DA
29792012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2980
2981 * textprop.c (set_text_properties_1): Do not allow NULL interval.
2982 Rename 4th argument since it may be buffer or string. Adjust comment.
2983 * intervals.c (graft_intervals_info_buffer): Find an interval here.
2984
a2f07cd2
DA
29852012-12-19 Dmitry Antipov <dmantipov@yandex.ru>
2986
2987 * coding.c (Fdetect_coding_region): Do not check start and end with
2988 CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
2989 (code_convert_region): Likewise.
2990
474d441e
EZ
29912012-12-18 Eli Zaretskii <eliz@gnu.org>
2992
2993 * w32.c (acl_get_file, acl_set_file): Run the file name through
2994 map_w32_filename, and resolve any symlinks in the file name, like
2995 Posix platforms do.
2996 (acl_set_file): Call revert_to_self, if any privileges were
2997 enabled.
2998
8725c076
JB
29992012-12-17 Juanma Barranquero <lekktu@gmail.com>
3000
3001 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
3002 ($(BLD)/w32.$(O)): Update dependencies.
3003
1e101a4b
SM
30042012-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
3005
3006 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
3007 propagate redisplay's scrolling (if any) to the right window.
3008 (redisplay_internal): Use ensure_selected_frame.
3009 (display_mode_lines): Complete last fix.
3010 * window.c (select_window_1): New func, extracted from select_window.
3011 (select_window): Use it.
3012 * window.h (select_window_1): Declare.
3013
66447e07
EZ
30142012-12-17 Eli Zaretskii <eliz@gnu.org>
3015
3016 Emulate Posix ACL APIs on MS-Windows.
3017 * w32.c: Include sddl.h and sys/acl.h.
3018 (SDDL_REVISION_1): Define if not already defined.
3019 (g_b_init_get_security_descriptor_dacl)
3020 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
3021 (g_b_init_is_valid_security_descriptor)
3022 (g_b_init_set_file_security): New static flags.
3023 (globals_of_w32): Initialize them to zero.
3024 (SetFileSecurity_Name): New string constant.
3025 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
3026 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
3027 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
3028 (IsValidSecurityDescriptor_Proc): New typedefs.
3029 (get_file_security, get_security_descriptor_owner)
3030 (get_security_descriptor_group): Set errno to ENOTSUP.
3031 (set_file_security, get_security_descriptor_dacl)
3032 (is_valid_security_descriptor, convert_sd_to_sddl)
3033 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
3034 (acl_free, acl_get_file, acl_set_file): New functions.
3035
3036 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
3037
207a7ef0
PE
30382012-12-17 Paul Eggert <eggert@cs.ucla.edu>
3039
3040 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
3041 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
3042 for some of that bug's symptoms can now cause Emacs to abort.
3043 Remove the workaround.
3044 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
3045 The bug that caused SIGCHLD to get lost has been fixed, and the
3046 workaround for it can now cause Emacs to abort.
3047
17fdfc15
PE
30482012-12-16 Paul Eggert <eggert@cs.ucla.edu>
3049
3050 * sysdep.c (emacs_abort): Bump backtrace size to 40.
3051 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
3052 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
3053
7c3d167f
RF
30542012-12-16 Romain Francoise <romain@orebokech.com>
3055
3056 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
3057 (Fcopy_file): Change last arg to `preserve_extended_attributes'
1e101a4b 3058 and copy ACL entries of file in addition to SELinux context if set.
7c3d167f
RF
3059 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
3060
3061 * Makefile.in (LIBACL_LIBS): New macro.
3062 (LIBES): Use it.
3063
7d80ea23
PE
30642012-12-15 Paul Eggert <eggert@cs.ucla.edu>
3065
3066 * fileio.c (internal_delete_file): Use bool for boolean.
3067
b0728617
EZ
30682012-12-15 Eli Zaretskii <eliz@gnu.org>
3069
3070 Fix bug #13079 on MS-Windows with temp files not being deleted.
3071 * w32.h (_child_process): New members input_file and
3072 pending_deletion.
3073 (register_child): First argument is now pid_t.
3074 (record_infile, record_pending_deletion): New prototypes.
3075
3076 * w32proc.c (new_child): Initialize input_file and
3077 pending_deletion members of the child.
3078 (delete_child): Delete the child's temporary input file, if any,
3079 that is pending deletion.
3080 (register_child): First argument is now pid_t.
3081 (record_infile, record_pending_deletion): New functions.
3082 (reap_subprocess): Fix a typo in DebPrint string.
3083 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
3084
3085 * fileio.c (internal_delete_file): Return an int again: non-zero
3086 if delete-file succeeds, zero otherwise.
3087
3088 * lisp.h (internal_delete_file): Adjust prototype.
3089
3090 * callproc.c (Fcall_process): Don't overwrite infile with result
3091 of DECODE_FILE.
3092 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
3093 asynchronous subprocess, record the name of the input file name,
3094 if any.
3095 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
3096 delete the file, record it as pending deletion when the subprocess
3097 exits.
3098
7e90af26
EZ
30992012-12-14 Eli Zaretskii <eliz@gnu.org>
3100
3101 * editfns.c [HAVE_PWD_H]: Include grp.h.
3102
3103 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
3104
97976f9f
PE
31052012-12-14 Paul Eggert <eggert@cs.ucla.edu>
3106
3107 Fix permissions bugs with setgid directories etc. (Bug#13125)
3108 * dired.c (Ffile_attributes): Return t as the 9th attribute,
3109 to mark it as a placeholder. The old value was often wrong.
3110 The only user of this attribute has been changed to use
3111 file-ownership-preserved-p instead, with its new group arg.
3112 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
3113
26ec1f49
SM
31142012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
3115
ad966fe7
SM
3116 * xdisp.c (select_frame_for_redisplay, display_mode_lines):
3117 Keep selected_window and selected_frame in sync.
26ec1f49 3118
5c207910
EZ
31192012-12-14 Eli Zaretskii <eliz@gnu.org>
3120
3121 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
3122 try to get accurate owner and group information from NT file
3123 security APIs. This is to make most callers of 'stat' and
3124 'lstat', which don't need that information, much faster.
3125
26ec1f49
SM
3126 * dired.c (Ffile_attributes) [WINDOWSNT]:
3127 Set w32_stat_get_owner_group to a non-zero value, to request accurate
5c207910
EZ
3128 owner and group information from 'lstat'.
3129
893f52d8
PE
31302012-12-13 Paul Eggert <eggert@cs.ucla.edu>
3131
4c95c9a5
PE
3132 * fileio.c (Finsert_file_contents): Don't put tail into head area,
3133 as that confuses set-auto-coding, so insist on the head-read
3134 returning the full 1024 bytes. Let lseek compute the tail offset;
3135 less work for us. Do not ignore I/O errors when reading the tail.
3136
893f52d8
PE
3137 * xdisp.c: Minor style fixes.
3138 (init_iterator): Hoist assignment out of if-expression.
3139 (markpos_of_region): Callers now test for sign, not for -1.
3140
40d1e434
DA
31412012-12-13 Dmitry Antipov <dmantipov@yandex.ru>
3142
3143 Minor redisplay optimization when the region length is zero.
3144 * xdisp.c (markpos_of_region): New function.
3145 (init_iterator): Do not highlight the region of zero length.
3146 (redisplay_window): Check whether the region is of non-zero length.
3147 (try_cursor_movement): Allow if the region length is zero.
3148 (try_window_reusing_current_matrix, try_window_id): Likewise.
3149
727f9739 31502012-12-13 Eli Zaretskii <eliz@gnu.org>
e8c6e965
EZ
3151
3152 * search.c (search_buffer): Check the inverse translations of each
3153 character in pattern when the buffer being searched is unibyte.
3154 (Bug#13084)
3155
727f9739 31562012-12-13 Paul Eggert <eggert@cs.ucla.edu>
184246df
PE
3157
3158 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
3159 files, fixing a regression from 24.2.
645c6a30 3160 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
184246df 3161
d20704ef
PE
31622012-12-13 Paul Eggert <eggert@cs.ucla.edu>
3163
3164 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
3165 fstat shouldn't fail, and if it does fail copy-file should not proceed.
3166 Remove unnecessary S_ISLNK test, as (contra the comments) this
3167 function can't copy symlinks. Improve quality of error message
3168 when attempting to copy files that are neither regular files nor
3169 directories.
3170
2dd61a9b
DA
31712012-12-12 Dmitry Antipov <dmantipov@yandex.ru>
3172
3173 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
3174 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
3175 * window.c (Frecenter):
3176 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
3177 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
3178
cc98b684
DC
31792012-12-12 Daniel Colascione <dancol@dancol.org>
3180
1e101a4b 3181 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
cc98b684
DC
3182 the dumped Emacs is not a sparse file, greatly improving Cygwin
3183 "make bootstrap" performance.
3184
38e791fd
MA
31852012-12-11 Michael Albinus <michael.albinus@gmx.de>
3186
3187 * inotify.c (inotify_callback): Generate an Emacs event for every
3188 incoming inotify event.
3189
f9d1448f
EZ
31902012-12-11 Eli Zaretskii <eliz@gnu.org>
3191
3192 * xdisp.c (handle_face_prop): Fix logic of computing
3193 it->start_of_box_run_p.
3194 (append_space_for_newline): If the glyph row is R2L, reset the
3195 iterator's end_of_box_run_p flag before prepending the space glyph.
3196 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
3197 iterator's start_of_box_run_p flag before prepending the stretch.
3198 (append_glyph, produce_image_glyph, append_composite_glyph)
3199 (append_stretch_glyph, append_glyphless_glyph): Reverse the
3200 left_box_line_p and right_box_line_p flags of the glyph for R2L
3201 glyph rows. (Bug#13011)
3202
c6afe371
DA
32032012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
3204
3205 * buffer.c (Fset_buffer_multibyte): Do not force redisplay
3206 if changed buffer is not shown in a window.
3207 * insdel.c (prepare_to_modify_buffer): Likewise.
3208 * window.c (replace_buffer_in_windows_safely): Do nothing
3209 if buffer is not shown in a window.
3210 (Fforce_window_update): Likewise if string or buffer argument
3211 is passed.
3212
1b47babd
EZ
32132012-12-11 Eli Zaretskii <eliz@gnu.org>
3214
3215 * inotify.c (Finotify_add_watch): Rename decoded_file_name to
3216 encoded_file_name, which is what it is.
3217
4c1acb95
DA
32182012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
3219
3220 Consistently use marker_position and marker_byte_position.
3221 * fringe.c (Ffringe_bitmaps_at_pos):
3222 * indent.c (Fvertical_motion):
3223 * insdel.c (prepare_to_modify_buffer):
3224 * keyboard.c (make_lispy_position):
3225 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
3226 (window_scroll_pixel_based, displayed_window_lines)
3227 (Fset_window_configuration):
3228 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
3229 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
3230 Replace direct access to marker fields with calls
3231 to marker_position and/or marker_byte_position.
3232
0eeb69fe
JB
32332012-12-11 Juanma Barranquero <lekktu@gmail.com>
3234
3235 * makefile.w32-in (SIG2STR_H): New macro.
3236 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
3237 ($(BLD)/w32notify.$(O)): Update dependencies.
3238
1cf1bbd5
DC
32392012-12-10 Daniel Colascione <dancol@dancol.org>
3240
8db4b52f
DC
3241 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
3242 Windows file notification functionality unless WINDOWSNT.
3243
1cf1bbd5
DC
3244 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
3245 declarations.
3246
3247 * w32fns.c (cache_system_info): Initialize the global hinst
3248 variable here so various initialization calls DTRT.
3249
1e101a4b 3250 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
1cf1bbd5
DC
3251 (hinst): Remove unneeded extern declaration.
3252 (_start): Remove initialization of above variables; remove
3253 initialization of hinst, as cache_system_info now does that.
3254
3255 * emacs.c (main): Call cache_system_info early in startup; we
3256 previously weren't calling it in Cygwin builds.
3257
26ec1f49
SM
3258 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
3259 Teach the autoconf build system how to compile a Windows resource file
1cf1bbd5
DC
3260 and link it to Emacs.
3261
98a07056
DA
32622012-12-10 Dmitry Antipov <dmantipov@yandex.ru>
3263
3264 Per-buffer window counters.
3265 * buffer.h (struct buffer): New member window_count.
3266 (buffer_window_count): New function.
3267 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
3268 Initialize window_count.
3269 (Fkill_buffer): Verify window_count for the buffer being killed.
3270 (modify_overlay): Do not force redisplay if buffer is not shown
3271 in any window.
3272 (init_buffer_once): Initialize window_count for buffer_defaults
3273 and buffer_local_symbols.
3274 * window.h (buffer_shared): Remove declaration.
3275 (wset_buffer): Convert from inline ...
3276 * window.c (wset_buffer): ... to an ordinary function.
3277 (adjust_window_count): New function.
3278 (make_parent_window): Use it.
3279 * xdisp.c (buffer_shared): Remove.
3280 (redisplay_internal, redisplay_window): Adjust users.
3281 (buffer_shared_and_changed): Use per-buffer window counter.
3282
2b8c9064
EZ
32832012-12-10 Eli Zaretskii <eliz@gnu.org>
3284
3285 Support for filesystem notifications on MS-Windows.
3286 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
3287 and this is a TTY frame, signal the caller that keyboard input is
3288 available.
3289
3290 * w32xfns.c (drain_message_queue): Now returns an int: an
3291 indication whether any WM_EMACS_FILENOTIFY messages were found in
3292 the queue.
3293
3294 * w32inevt.c (handle_file_notifications): New function.
3295 (w32_console_read_socket): Call it to process file notifications.
3296
3297 * w32console.c (initialize_w32_display): Record the main thread ID
3298 in dwMainThreadId.
3299
3300 * deps.mk (inotify.o): New dependency list.
3301
3302 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
3303
3304 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
3305 (WM_EMACS_END): Bump value by 1.
3306 (notification_buffer_in_use, file_notifications)
3307 (notifications_size, notifications_desc): Declare.
3308 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
3309 Add prototypes.
3310
3311 * w32term.c (lispy_file_action, queue_notifications): New functions.
3312 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
3313 <Qrenamed_to>: New symbols.
3314 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
3315
3316 * w32notify.c: New file, implements file event notifications for
3317 MS-Windows.
3318
3319 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
3320 by posting it to the w32_read_socket queue.
3321
1e101a4b 3322 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
2b8c9064
EZ
3323
3324 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
3325 (GLOBAL_SOURCES): Add w32notify.c
3326 ($(BLD)/w32notify.$(O)): New set of dependencies.
3327
3328 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
3329
1e101a4b
SM
3330 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
3331 Handle FILE_NOTIFY_EVENT.
2b8c9064
EZ
3332 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
3333 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
3334 w32notify-handle-event by default.
3335
3336 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
3337 syms_of_w32notify.
3338
81606b10
RS
33392012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
3340
2b8c9064 3341 Support for filesystem notifications on GNU/Linux via inotify.
1e101a4b 3342 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
81606b10
RS
3343
3344 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
3345
3346 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
3347 (syms_of_keyboard): DEFSYM it.
3348 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
3349 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
3350 Qfile_inotify events.
3351 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
3352 special-event-map to inotify-handle-event.
3353
3354 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
3355
3356 * Makefile.in (base_obj): Add inotify.o.
3357
3358 * inotify.c: New file.
3359
265c2fbf 33602012-12-10 Jan Djärv <jan.h.d@swipnet.se>
a06ae17d
JD
3361
3362 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
3363
265c2fbf 33642012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com>
cb576b5c
FP
3365
3366 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
3367 DWORD_PTR, for compatibility with 64-bit builds.
3368
a06ae17d 3369 * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
cb576b5c
FP
3370 (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
3371 (system_process_attributes): Use SIZE_T rather than DWORD, for
3372 compatibility with 64-bit builds.
3373
265c2fbf 33742012-12-10 Christopher Schmidt <christopher@ch.ristopher.com>
76b92fee
CS
3375
3376 * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
3377
265c2fbf 33782012-12-10 Eli Zaretskii <eliz@gnu.org>
81d8cc53
EZ
3379
3380 * indent.c (Fvertical_motion): If a display string will be
3381 displayed on the left or the right margin, don't consider it as a
3382 factor in cursor positioning. (Bug#13108)
3383
265c2fbf 33842012-12-10 Martin Rudalics <rudalics@gmx.at>
2cec368c
MR
3385
3386 * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
3387
5f460827
PE
33882012-12-10 Paul Eggert <eggert@cs.ucla.edu>
3389
3390 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
3391 for string length.
3392
a16e75cd
EZ
33932012-12-08 Eli Zaretskii <eliz@gnu.org>
3394
3395 * w32.c (unsetenv): Return 0 if the input string is too long.
3396
5745a7df
PE
33972012-12-08 Paul Eggert <eggert@cs.ucla.edu>
3398
3399 Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
3400 * alloc.c (xputenv): New function.
3401 * dbusbind.c (Fdbus_init_bus):
3402 * emacs.c (main):
3403 * xterm.c (x_term_init):
3404 Use xputenv instead of setenv or putenv, to detect memory exhaustion.
3405 * editfns.c (initial_tz): Move static var decl up.
3406 (tzvalbuf_in_environ): New static var.
3407 (init_editfns): Initialize these two static vars.
3408 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
3409 Save old TZ value on stack, if it's small.
3410 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
3411 instead, use xputenv+unsetenv to set and restore TZ.
3412 (environbuf): Remove static var. All uses removed.
3413 (Fset_time_zone_rule): Do not save TZ and environ;
3414 no longer needed here.
3415 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
3416 Move to inside set_time_zone_rule; they don't need file scope any more.
3417 (set_time_zone_rule): Maintain the TZ=value string separately.
3418 (syms_of_editfns): Don't initialize initial_tz;
3419 init_editfns now does it.
3420 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
3421 * lisp.h (xputenv): New decl.
3422
c56efa40
FP
34232012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
3424
3425 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
3426
75ceee05
EZ
34272012-12-08 Eli Zaretskii <eliz@gnu.org>
3428
3429 * w32.c (unsetenv, sys_putenv): New functions.
3430
1b6dbfeb
CY
34312012-12-08 Chong Yidong <cyd@gnu.org>
3432
3433 * editfns.c (Finsert_char): Make the error message more
3434 informative (Bug#12992).
3435
d983a10b
PE
34362012-12-08 Paul Eggert <eggert@cs.ucla.edu>
3437
7be78020
PE
3438 Simplify get_lim_data.
3439 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
3440 Remove USG and vlimit methods; no longer used these days.
3441 Add #error catchall just in case.
3442
d983a10b
PE
3443 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
3444 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
3445 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
3446 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
3447 (deleted_pid_list, Fdelete_process, create_process)
3448 (record_child_status_change, handle_child_signal, deliver_child_signal)
3449 (init_process_emacs, syms_of_process):
3450 Assume SIGCHLD is defined.
3451 (parse_signal): Remove. All uses removed.
3452 (abbr_to_signal): New static function.
3453 (Fsignal_process): Use it to convert signal names to ints.
3454 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
3455 kill (getpgrp (), ...).
3456 (emacs_sigaction_init): Assume SIGCHLD is defined.
3457 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
3458 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
3459 * syssignal.h (EMACS_KILLPG): Remove.
3460 All uses replaced by 'kill' with a negative pid.
3461 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
3462 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
3463
9cdde1e2
PE
34642012-12-07 Paul Eggert <eggert@cs.ucla.edu>
3465
3466 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
3467 This will cause a production Emacs to dump core instead of
3468 infinite-looping.
3469
822995f8
DA
34702012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
3471
3472 * frame.c (make_frame): Do not set window's buffer to t.
3473 * window.c (Fsplit_window_internal): Likewise. Previously it was
3474 used to indicate that the window is being set up. Now we use
3475 set_window_buffer for all new windows, so the condition in ...
3476 (Fset_window_buffer): ... is always true and can be removed.
3477
ed08365b
DA
34782012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
3479
3480 Convenient macro to check whether the buffer is hidden.
3481 * buffer.h (BUFFER_HIDDEN_P): New macro.
3482 * frame.c (make_frame): Use it. Adjust comment.
3483 * buffer.c (candidate_buffer): New function.
3484 (Fother_buffer, other_buffer_safely): Use it.
3485
e86f5134
EZ
34862012-12-06 Eli Zaretskii <eliz@gnu.org>
3487
3488 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
3489 if the child process is still running. Instead, exit the wait
3490 loop and return zero. (Bug#13086)
3491
1700db3c
DA
34922012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3493
3494 * frame.h (x_char_width, x_char_height): Remove prototypes.
3495 * w32term.h (x_char_width, x_char_height): Likewise.
3496 * xfns.c (x_char_width, x_char_height): Remove.
3497 * w32fns.c (x_char_width, x_char_height): Likewise.
3498 * nsfns.c (x_char_width, x_char_height): Likewise.
3499 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
3500 all window frames.
3501 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
3502 * keyboard.c (command_loop_1): Remove prototype.
3503 (command_loop_2, top_level_1): Add static to match prototype.
3504
35fb8050
PE
35052012-12-06 Paul Eggert <eggert@cs.ucla.edu>
3506
3507 Fix a recently-introduced delete-process race condition.
3508 * callproc.c, process.h (record_kill_process):
3509 New function, containing part of the old call_process_kill.
3510 (call_process_kill): Use it.
3511 This does not change call_process_kill's behavior.
3512 * process.c (Fdelete_process): Use record_kill_process to fix a
3513 race condition that could cause Emacs to lose track of a child.
3514
565212e5
DA
35152012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3516
3517 Avoid code duplication between prev_frame and next_frame.
3518 * frame.c (candidate_frame): New function. Add comment.
3519 (prev_frame, next_frame): Use it. Adjust comment.
3520
d8ad4d3f 35212012-12-06 Eli Zaretskii <eliz@gnu.org>
d3cefd13
EZ
3522
3523 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
3524 fails, signal an error instead of continuing with an empty
3525 string. (Bug#13079)
7c2fcf9b
EZ
3526 Encode expanded temp file pattern before passing it to mkstemp or
3527 mktemp.
d3cefd13 3528
2e7cddd3
EZ
3529 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
3530 Encode the file name before passing it to dostounix_filename, in
3531 case it will downcase it (under w32-downcase-file-names).
3532 (Bug#12933)
3533
644d3f0d
PE
35342012-12-05 Paul Eggert <eggert@cs.ucla.edu>
3535
3536 Minor call-process cleanups.
3537 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
3538 at the same time as other platforms, to simplify analysis.
3539 No need for fd0_volatile since we have synch_process_fd.
3540 Avoid needless emacs_close; arg is always negative.
3541
396376f1
AS
35422012-12-04 Andreas Schwab <schwab@linux-m68k.org>
3543
3544 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
3545 processes.
3546
350f51ad
DA
35472012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
3548
3549 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
3550 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
3551 and mouse_face_hidden members to a bitfields.
3552 * frame.h (struct frame): Remove set-but-not-used space_width member.
3553 (FRAME_SPACE_WIDTH): Remove.
3554 * nsterm.m, w32term.c, xterm.c: Adjust users.
3555 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
3556 member. Adjust users. Convert term_initted, delete_in_insert_mode,
3557 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
3558 members to a bitfields.
3559
bc9dbce6
PE
35602012-12-03 Paul Eggert <eggert@cs.ucla.edu>
3561
bb5f74ee
PE
3562 Don't let call-process be a zombie factory (Bug#12980).
3563 Fixing this bug required some cleanup of the signal-handling code.
3564 As a side effect, this change also fixes a longstanding rare race
3565 condition whereby Emacs could mistakenly kill unrelated processes,
3566 and it fixes a bug where a second C-g does not kill a recalcitrant
3567 synchronous process in GNU/Linux and similar platforms.
3568 The patch should also fix the last vestiges of Bug#9488,
3569 a bug which has mostly been fixed on the trunk by other changes.
3570 * callproc.c, process.h (synch_process_alive, synch_process_death)
3571 (synch_process_termsig, sync_process_retcode):
3572 Remove. All uses removed, to simplify analysis and so that
3573 less consing is done inside critical sections.
3574 * callproc.c (call_process_exited): Remove. All uses replaced
3575 with !synch_process_pid.
3576 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
3577 These take the role of what used to be in unwind-protect arg.
3578 All uses changed.
3579 (block_child_signal, unblock_child_signal):
3580 New functions, to avoid races that could kill innocent-victim processes.
3581 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
3582 (call_process_kill): Record killed processes as deleted, so that
3583 zombies do not clutter up the system. Do this inside a critical
3584 section, to avoid a race that would allow the clutter.
3585 (call_process_cleanup): Fix code so that the second C-g works again
3586 on common platforms such as GNU/Linux.
3587 (Fcall_process): Create the child process in a critical section,
3588 to fix a race condition. If creating an asynchronous process,
3589 record it as deleted so that zombies do not clutter up the system.
3590 Do unwind-protect for WINDOWSNT too, as that's simpler in the
3591 light of these changes. Omit unnecessary call to emacs_close
3592 before failure, as the unwind-protect code does that.
3593 * callproc.c (call_process_cleanup):
3594 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
3595 * process.c (record_deleted_pid): New function, containing
3596 code refactored out of Fdelete_process.
3597 (Fdelete_process): Use it.
3598 (process_status_retrieved): Remove. All callers changed to use
3599 child_status_change.
3600 (record_child_status_change): Remove, folding its contents into ...
3601 (handle_child_signal): ... this signal handler. Now, this
3602 function is purely a handler for SIGCHLD, and is not called after
3603 a synchronous waitpid returns; the synchronous code is moved to
3604 wait_for_termination. There is no need to worry about reaping
3605 more than one child now.
3606 * sysdep.c (get_child_status, child_status_changed): New functions.
3607 (wait_for_termination): Now takes int * status and bool
3608 interruptible arguments, too. Do not record child status change;
3609 that's now the caller's responsibility. All callers changed.
3610 Reimplement in terms of get_child_status.
3611 (wait_for_termination_1, interruptible_wait_for_termination):
3612 Remove. All callers changed to use wait_for_termination.
3613 * syswait.h: Include <stdbool.h>, for bool.
3614 (record_child_status_change, interruptible_wait_for_termination):
3615 Remove decls.
3616 (record_deleted_pid, child_status_changed): New decls.
3617 (wait_for_termination): Adjust to API changes noted above.
3618
bc9dbce6
PE
3619 * bytecode.c, lisp.h (Qbytecode): Remove.
3620 No longer needed after 2012-11-20 interactive-p changes.
3621
3cf3c607
EZ
36222012-12-03 Eli Zaretskii <eliz@gnu.org>
3623
3624 * xdisp.c (redisplay_window): If the cursor is visible, but inside
3625 the scroll margin, move point outside the margin. (Bug#13055)
3626
005c8d13
JD
36272012-12-03 Jan Djärv <jan.h.d@swipnet.se>
3628
3629 * gtkutil.c (my_log_handler): New function.
3630 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
3631
20edc1c9
DA
36322012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3633
3634 * lisp.h (modify_region): Rename to...
3635 (modify_region_1): ...new prototype.
3636 * textprop.c (modify_region): Now static. Adjust users.
3637 * insdel.c (modify_region): Rename to...
3638 (modify_region_1): ...new function to work with current buffer.
3639 Adjust comment and users. Use true and false for booleans.
3640
62c2e5ed
DA
36412012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3642
3643 * alloc.c (free_save_value): New function.
3644 (safe_alloca_unwind): Use it.
3645 * lisp.h (free_save_value): New prototype.
3646 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
3647 Add comment.
3648 (save_excursion_restore): Adjust to match saved data structure.
3649 Use free_save_value to offload some work from GC. Drop obsolete
3650 #if 0 code.
3651
c5bc2d1d 36522012-12-03 Chong Yidong <cyd@gnu.org>
a2458031
CY
3653
3654 * fileio.c (Vauto_save_list_file_name): Doc fix.
3655
c5bc2d1d 36562012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com>
c7b36b95
FP
3657
3658 * w32fns.c: Remove prototype of atof.
1e101a4b 3659 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
c7b36b95 3660 builds.
1e101a4b 3661 (file_dialog_callback): Make it UINT_PTR.
c7b36b95
FP
3662
3663 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
3664 with 64-bit builds.
3665
3666 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3667 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
3668 defined.
3669
c5bc2d1d 36702012-12-03 Glenn Morris <rgm@gnu.org>
14d27346 3671
a9de9f0c 3672 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
14d27346 3673
21e54a94
PE
36742012-12-02 Paul Eggert <eggert@cs.ucla.edu>
3675
2dd2e622
PE
3676 Fix xpalloc confusion after memory is exhausted.
3677 * alloc.c (xpalloc): Comment fix.
3678 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
3679 and signals an error, do not clear charset_table_size, as
3680 charset_table is still valid.
3681 * doprnt.c (evxprintf): Clear *BUF after freeing it.
3682
21e54a94
PE
3683 Use execve to avoid need to munge environ (Bug#13054).
3684 * callproc.c (Fcall_process):
3685 * process.c (create_process):
3686 Don't save and restore environ; no longer needed.
3687 * callproc.c (child_setup):
3688 Use execve, not execvp, to preserve environ.
3689
3e5490f7
PE
36902012-12-01 Paul Eggert <eggert@cs.ucla.edu>
3691
3692 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
3693
75b4f59c
YM
36942012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3695
3696 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
3697 display for sliced images (Bug#10500).
3698
3699 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
3700
f8aff4c6
JB
37012012-11-30 Juanma Barranquero <lekktu@gmail.com>
3702
3703 * doc.c (Fdocumentation): Re-add handling of function-documentation,
3704 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
3705
3940b924
DA
37062012-11-29 Dmitry Antipov <dmantipov@yandex.ru>
3707
3708 * xdisp.c (window_outdated): Remove eassert since it hits
3709 some suspicious corner cases (see Bug#13007 and Bug#13012).
3710 (mode_line_update_needed): New function.
3711 (redisplay_internal, redisplay_window): Use it.
3712 (ensure_selected_frame): New function.
3713 (redisplay_internal, unwind_redisplay): Use it.
3714 (redisplay_internal): Move comment about buffer_shared...
3715 (buffer_shared_and_changed): ...near to its real use.
3716
4a9204fe
PE
37172012-11-29 Paul Eggert <eggert@cs.ucla.edu>
3718
3719 * callproc.c (Fcall_process): Don't misreport vfork failure.
3720
60aeceb8
PE
37212012-11-28 Paul Eggert <eggert@cs.ucla.edu>
3722
3723 * callproc.c (Fcall_process): Fix vfork portability problems.
3724 Do not assume that fd[0], count, filefd, and save_environ survive
3725 vfork. Fix bug whereby wrong errno value could be reported for
3726 pipe failure. Some minor cleanups, too, as follows. Move buf and
3727 bufsize to the context where they're needed. Change new_argv to
3728 be of type char **, as this is more convenient and avoids casts.
3729 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
3730 Now local constants, not macros.
3731
00dc3ead
KH
37322012-11-18 Kenichi Handa <handa@gnu.org>
3733
3734 * font.c (font_unparse_xlfd): Fix previous change. Keep "const"
3735 for the variable "f".
3736
e1bf05c1
KH
37372012-11-13 Kenichi Handa <handa@gnu.org>
3738
3739 * font.c (font_unparse_xlfd): Exclude special characters from the
3740 generating XLFD name.
3741
22626a85
PE
37422012-11-27 Paul Eggert <eggert@cs.ucla.edu>
3743
350e0088
PE
3744 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
3745 * dired.c (stat_uname, stat_gname):
3746 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
3747
22626a85
PE
3748 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
3749 * dired.c (directory_files_internal, file_name_completion):
3750 Assume EAGAIN and EINTR are defined.
350e0088 3751
22626a85
PE
3752 * fileio.c (Fcopy_file): Assume EISDIR is defined.
3753 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
3754 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
3755 * lread.c (readbyte_from_file): Assume EINTR is defined.
3756 * process.c (wait_reading_process_output, send_process) [subprocesses]:
3757 Assume EIO and EAGAIN are defined.
3758 * unexcoff.c (write_segment): Assume EFAULT is defined.
3759
5c9cf0a3 37602012-11-27 Eli Zaretskii <eliz@gnu.org>
3fa1e84d
EZ
3761
3762 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
3763 (Bug#11964)
3764
22294a56
EZ
3765 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
3766 highlighting on the frame was cleared. Prevents assertion
3767 violations when repeatedly clicking on the "Top" link of the
3768 "bread-crumbs" in Info buffers.
3769
5fbab051
PE
37702012-11-25 Paul Eggert <eggert@cs.ucla.edu>
3771
3772 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
3773
bcd77a2b
KB
37742012-11-24 Ken Brown <kbrown@cornell.edu>
3775
3776 * keyboard.c (HAVE_MOUSE):
3777 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
3778 were always defined.
3779
d125ca15 37802012-11-24 Eli Zaretskii <eliz@gnu.org>
8654a41b 3781
24becea4
EZ
3782 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
3783 between bpos_covered and bpos_max. This fixes cursor display when
3784 several display strings follow each other.
3785
8654a41b
EZ
3786 * .gdbinit (pgx): If the glyph's object is a string, display the
3787 pointer to string data, rather than the value of the string object
3788 itself (which barfs under CHECK_LISP_OBJECT_TYPE).
3789
cb5867b1
EZ
3790 * indent.c (Fvertical_motion): If the starting position is covered
3791 by a display string, return to one position before that, to avoid
3792 overshooting it inside move_it_to. (Bug#12930)
3793
f418b22e
DA
37942012-11-23 Dmitry Antipov <dmantipov@yandex.ru>
3795
3796 * frame.h (struct frame): Remove display_preempted member
3797 since all users are dead long ago.
3798 * nsterm.h (struct x_output): Use the only dummy member.
3799 * w32menu.c (pending_menu_activation): Remove since not
3800 really used.
3801 (set_frame_menubar): Adjust user.
3802 * w32term.h (struct x_output): Drop outdated #if 0 code.
3803 (struct w32_output): Use bitfields for explicit_parent,
26ec1f49
SM
3804 asked_for_visible and menubar_active members.
3805 Drop unused pending_menu_activation member.
f418b22e
DA
3806 * xterm.h (struct x_output): Drop outdated #if 0 code.
3807 Use bitfields for explicit_parent, asked_for_visible,
3808 has_been_visible and net_wm_state_hidden_seen members.
3809
a879f0ea
EZ
38102012-11-23 Eli Zaretskii <eliz@gnu.org>
3811
3812 * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
3813 of a literal "/". (Bug#12955)
3814 (gl-stamp): Invoke fc.exe directly, not through cmd.
3815
95ef7787
PE
38162012-11-23 Paul Eggert <eggert@cs.ucla.edu>
3817
3818 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
3819 * dired.c: Assume HAVE_DIRENT_H.
3820 (NAMLEN): Remove, replacing with ...
3821 (dirent_namelen): New function. All uses changed. Use the GNU macro
3822 _D_EXACT_NAMELEN if available, as it's faster than strlen.
3823 (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
3824 (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero.
3825 * makefile.w32-in (DIR_H): Remove. All uses replaced with
3826 $(NT_INC)/dirent.h.
3827 ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
3828 * ndir.h: Rename to ../nt/inc/dirent.h.
3829 * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
3830 Do not include <dirent.h>; no longer needed.
3831 * w32.c: Include <dirent.h> rather than "ndir.h".
3832
12645ae6
CY
38332012-11-23 Chong Yidong <cyd@gnu.org>
3834
3835 * xftfont.c (xftfont_open): Remove duplicate assignment.
3836
5c747675
DA
38372012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
3838
3839 * alloc.c (Fgarbage_collect): Unblock input after clearing
3840 gc_in_progress to avoid note_mouse_highlight glitch with GC.
3841 * frame.h (FRAME_MOUSE_UPDATE): New macro.
3842 * msdos.c (IT_frame_up_to_date): Use it here...
3843 * w32term.c (w32_frame_up_to_date): ...here...
3844 * xterm.c (XTframe_up_to_date): ...and here...
3845 * nsterm.m (ns_frame_up_to_date): ...but not here.
3846 * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
3847 Adjust users.
3848 * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
3849 Do not check whether GC is in progress.
3850
6ceeb5f1
DA
38512012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
3852
3853 * xdisp.c (window_buffer_changed): New function.
3854 (update_menu_bar, update_tool_bar): Use it to
3855 simplify large 'if' statements.
3856 (redisplay_internal): Generalize commonly used
3857 'tail' and 'frame' local variables.
3858
ec84768f
EZ
38592012-11-22 Eli Zaretskii <eliz@gnu.org>
3860
3861 * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
3862 with Windows system header.
3863
9239d970
PE
38642012-11-21 Paul Eggert <eggert@cs.ucla.edu>
3865
3866 Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
3867 * alloc.c: Assume unistd.h exists.
3868 * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
3869 * sysdep.c (get_current_dir_name): Assume getcwd exists.
3870 (getwd) [USG]: Remove; no longer needed.
3871 (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
3872 * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
3873 * w32.h (getcwd): Remove decl.
3874
954bba56
SM
38752012-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
3876
3877 * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
3878 Make it set selected_window as well.
3879 (update_tool_bar): Use it.
3880
6ef2e5ef 38812012-11-21 Ken Brown <kbrown@cornell.edu>
4ffea447
KB
3882
3883 * emacs.c (main): Set the G_SLICE environment variable for all
3884 Cygwin builds, not just GTK builds. See
3885 https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
3886
6ef2e5ef 38872012-11-21 Eli Zaretskii <eliz@gnu.org>
88c4a13c
EZ
3888
3889 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3890 (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
3891 Define for the MSVC compiler.
3892
6ef2e5ef 3893 * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
273ac8d1
EZ
3894
3895 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
3896 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
3897 dostounix_filename. Prevents crashes down the road, because
26ec1f49
SM
3898 dostounix_filename assumes it gets a unibyte string.
3899 Reported by Michel de Ruiter <michel@sentient.nl>, see
273ac8d1
EZ
3900 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
3901
eadf1faa
SM
39022012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3903
3904 Conflate Qnil and Qunbound for `symbol-function'.
3905 * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
3906 * lread.c (init_obarray): Set `function' fields to Qnil.
3907 * eval.c (Fcommandp): Ignore Qunbound.
3908 (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
3909 * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
3910 Test NILP rather than Qunbound.
3911 (Ffmakunbound): Set to Qnil.
3912 (Fsymbol_function): Never signal an error.
3913 (Finteractive_form): Ignore Qunbound.
3914
b83fdfa9
PE
39152012-11-20 Paul Eggert <eggert@cs.ucla.edu>
3916
3917 * eval.c (interactive_p): Remove no-longer-used decl.
3918
952580c5
DA
39192012-11-20 Dmitry Antipov <dmantipov@yandex.ru>
3920
3921 * xdisp.c (buffer_shared): Adjust comment.
3922 (buffer_shared_and_changed): New function.
3923 (prepare_menu_bars, redisplay_internal): Use it to
3924 decide whether all windows or frames should be updated.
ea6de9b1
DA
3925 (window_outdated): New function.
3926 (text_outside_line_unchanged_p, redisplay_window): Use it.
3927 (redisplay_internal): Likewise. Fix indentation.
952580c5 3928
23ba2705
SM
39292012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3930
3931 * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
3932 (syms_of_eval): Remove corresponding defsubr.
3933 * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
3934
6e9f7997
DC
39352012-11-19 Daniel Colascione <dancol@dancol.org>
3936
3937 * w32fns.c (Fx_file_dialog):
3938 (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
3939 cygwin_convert_file_name*.
3940
3941 * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
3942 Rename cygwin_convert_path* to cygwin_convert_file_name*.
3943
552a1590
PE
39442012-11-18 Paul Eggert <eggert@cs.ucla.edu>
3945
3946 * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
3947
2ac9538d 39482012-11-18 Eli Zaretskii <eliz@gnu.org>
d8715cdf
EZ
3949
3950 * w32select.c: Include w32common.h before w32term.h, so that
3951 windows.h gets included before w32term.h uses some of its
3952 features, see below.
3953
23ba2705
SM
3954 * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
3955 New typedefs.
3956 (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
3957 New prototypes.
d8715cdf
EZ
3958 (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
3959
2ac9538d 39602012-11-18 Jan Djärv <jan.h.d@swipnet.se>
7436fc63
JD
3961
3962 * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
3963 (ns_select): Return at once if events are held (Bug#12834).
3964
2ac9538d 39652012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com>
86dcf21c 3966
3967 * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
3968 Needed following 2012-10-20 change. (Bug#12902)
3969
c1f7ba3a
JB
39702012-11-18 Juanma Barranquero <lekktu@gmail.com>
3971
3972 * w32proc.c (waitpid): Remove unused label get_result.
3973
a75ce9d3
JB
39742012-11-17 Juanma Barranquero <lekktu@gmail.com>
3975
3976 * makefile.w32-in (SYSWAIT_H): New macro.
3977 ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
3978 ($(BLD)/sysdep.$(O)): Update dependencies.
3979
49cdacda
PE
39802012-11-17 Paul Eggert <eggert@cs.ucla.edu>
3981
3982 Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
3983 * callproc.c (relocate_fd): Assume F_DUPFD.
3984 * emacs.c, term.c (O_RDWR): Remove.
3985 * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
3986 O_NDELAY, since O_NONBLOCK is the standard name for this flag.
3987 * nsterm.m: Assume <fcntl.h> exists.
3988 * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
3989 (create_pty, Fmake_network_process, server_accept_connection)
3990 (wait_reading_process_output, init_process_emacs):
3991 Assume O_NONBLOCK.
3992 (wait_reading_process_output): Put in a special case for WINDOWSNT
3993 to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
3994 It's not clear this is needed, but it's a more-conservative change.
3995 (create_process): Assume FD_CLOEXEC.
3996 (create_process, create_pty): Assume O_NOCTTY.
3997 * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
3998 (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
3999 Omit if not DOS_NT, since F_GETFL is not defined there.
4000 (serial_open): Assume O_NONBLOCK and O_NOCTTY.
4001 * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
4002 (O_NOCTTY): Remove.
4003 (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
4004 lack it, since gnulib guarantees this.
4005 * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
4006
22bae83f
EZ
40072012-11-17 Eli Zaretskii <eliz@gnu.org>
4008
6ad30855
EZ
4009 * w32.c (faccessat): Pretend that directories have the execute bit
4010 set. Emacs expects that, e.g., in files.el:cd-absolute.
4011
22bae83f
EZ
4012 * w32proc.c (create_child): Don't clip the PID of the child
4013 process to fit into an Emacs integer, as this is no longer a
4014 restriction.
4015 (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by
4016 reaping only the process specified by PID argument, if that is
4017 positive. Use PID instead of dead_child to know which process to
4018 reap. Wait for the child to die only if WNOHANG is not in
4019 OPTIONS.
4020 (sys_select): Don't set dead_child.
4021
4022 * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
4023 as it is no longer needed.
4024
4025 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
4026 no longer needed.
4027 (record_child_status_change): Remove the setting of
4028 record_at_most_one_child for the !WNOHANG case.
4029
a631d0e0
PE
40302012-11-17 Paul Eggert <eggert@cs.ucla.edu>
4031
4032 Fix problems in ns port found by static checking.
4033 * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
4034 (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
4035 not to process group.
4036 (ns_select): Use emacs_write, not write, as that's more robust
4037 in the presence of signals.
4038 (fd_handler:): Check for read errors.
4039
d56f2e49
GM
40402012-11-16 Glenn Morris <rgm@gnu.org>
4041
4042 * editfns.c (Fmessage): Mention message-log-max. (Bug#12849)
4043
96e05507 40442012-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
5c2a7148
SM
4045
4046 * eval.c (Finteractive_p): Revert lexbind-merge mishap.
4047
96e05507 40482012-11-16 Eli Zaretskii <eliz@gnu.org>
730b2d8f
EZ
4049
4050 * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
4051 use the same value of thread handle.
4052 (start_timer_thread): If the timer thread exited (due to error),
4053 clean up by closing the two handles it used. Duplicate the caller
4054 thread's handle here, so it gets duplicated only once, when
4055 launching the timer thread. Set priority of the timer thread, not
4056 the caller thread.
4057 (getitimer): Don't duplicate the caller thread's handle here.
4058 (Bug#12832)
4059
96e05507 40602012-11-16 Jan Djärv <jan.h.d@swipnet.se>
f99c65e5
JD
4061
4062 * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
4063 called (Bug#12834).
4064
3d082a26
PE
40652012-11-16 Paul Eggert <eggert@cs.ucla.edu>
4066
4067 Remove no-longer-used pty_max_bytes variable.
4068 * process.c (pty_max_bytes): Remove; unused.
4069 (send_process): Do not set it.
4070
b72c161c
JB
40712012-11-15 Juanma Barranquero <lekktu@gmail.com>
4072
4073 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
4074 Update dependencies.
4075
bf20ea80
PE
40762012-11-15 Paul Eggert <eggert@cs.ucla.edu>
4077
4078 * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
4079 This follows up on the 2012-09-29 patch that removed indirection
4080 for the 'function' field. Reported by Sergey Vinokurov in
4081 <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
4082
14f20728
EZ
40832012-11-14 Eli Zaretskii <eliz@gnu.org>
4084
4085 * w32.c (faccessat): Rename from sys_faccessat. (No need to use a
4086 different name, as the MS runtime does not have such a function,
4087 and probably never will.) All callers changed. Ignore DIRFD
4088 value if PATH is an absolute file name, to match Posix spec
4089 better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
4090 symlinks.
4091
77731919
DA
40922012-11-14 Dmitry Antipov <dmantipov@yandex.ru>
4093
4094 * xdisp.c (echo_area_display, redisplay_internal):
4095 Omit redundant check whether frame_garbaged is set.
4096
73dcdb9f
PE
40972012-11-14 Paul Eggert <eggert@cs.ucla.edu>
4098
4099 Use faccessat, not access, when checking file permissions (Bug#12632).
4100 This fixes a bug that has been present in Emacs since its creation.
4101 It was reported by Chris Torek in 1983 even before GNU Emacs existed,
4102 which must set some sort of record. (Torek's bug report was against
4103 a predecessor of GNU Emacs, but GNU Emacs happened to have the
4104 same common flaw.) See Torek's Usenet posting
4105 "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
4106 Posted: Fri Apr 8 14:18:56 1983.
4107 * Makefile.in (LIB_EACCESS): New macro.
4108 (LIBES): Use it.
4109 * callproc.c (init_callproc):
4110 * charset.c (init_charset):
4111 * fileio.c (check_existing, check_executable, check_writable)
4112 (Ffile_readable_p):
4113 * lread.c (openp, load_path_check):
4114 * process.c (allocate_pty):
4115 * xrdb.c (file_p):
4116 Use effective UID when checking permissions, not real UID.
4117 * callproc.c (init_callproc):
4118 * charset.c (init_charset):
4119 * lread.c (load_path_check, init_lread):
4120 Test whether directories are accessible, not merely whether they exist.
4121 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
4122 * fileio.c (check_existing, check_executable, check_writable)
4123 (Ffile_readable_p):
4124 Use symbolic names instead of integers for the flags, as they're
4125 portable now.
4126 (check_writable): New arg AMODE. All uses changed.
4127 Set errno on failure.
4128 (Ffile_readable_p): Use faccessat, not stat + open + close.
4129 (Ffile_writable_p): No need to call check_existing + check_writable.
4130 Just call check_writable and then look at errno. This saves a syscall.
4131 dir should never be nil; replace an unnecessary runtime check
4132 with an eassert. When checking the parent directory of a nonexistent
4133 file, check that the directory is searchable as well as writable, as
4134 we can't create files in unsearchable directories.
4135 (file_directory_p): New function, which uses 'stat' on most platforms
4136 but faccessat with D_OK (for efficiency) if WINDOWSNT.
4137 (Ffile_directory_p, Fset_file_times): Use it.
4138 (file_accessible_directory_p): New function, which uses a single
4139 syscall for efficiency.
4140 (Ffile_accessible_directory_p): Use it.
4141 * xrdb.c (file_p): Use file_directory_p.
4142 * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
4143 * lread.c (openp): When opening a file, use fstat rather than
4144 stat, as that avoids a permissions race. When not opening a file,
4145 use file_directory_p rather than stat.
4146 (dir_warning): First arg is now a usage string, not a format.
4147 Use errno. All uses changed.
4148 * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
4149 that merely introduced a race.
4150 * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
4151 changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
4152 and similarly for the other O_* flags.
4153 * w32.c (sys_faccessat): Rename from sys_access and switch to
4154 faccessat's API. All uses changed.
4155 * xrdb.c: Do not include <sys/stat.h>; no longer needed.
4156 (magic_db): Rename from magic_file_p.
4157 (magic_db, search_magic_path): Return an XrmDatabase rather than a
4158 char *, so that we don't have to test for file existence
4159 separately from opening the file for reading. This removes a race
4160 fixes a permission-checking problem, and simplifies the code.
4161 All uses changed.
4162 (file_p): Remove; no longer needed.
4163
2a14f83b
DA
41642012-11-13 Dmitry Antipov <dmantipov@yandex.ru>
4165
4166 Omit glyphs initialization at startup.
4167 * dispnew.c (glyphs_initialized_initially_p): Remove.
4168 (adjust_frame_glyphs_initially): Likewise. Adjust users.
4169 (Fredraw_frame): Move actual code from here...
c7085245 4170 (redraw_frame): ...to here. Add eassert. Adjust comment.
2a14f83b
DA
4171 (Fredraw_display): Use redraw_frame.
4172 * xdisp.c (clear_garbaged_frames): Likewise.
4173
f78ee6af 41742012-11-13 Eli Zaretskii <eliz@gnu.org>
32520273
EZ
4175
4176 * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
4177 passed to pint2str and pint2hrstr to be at most the size of the
4178 frame's decode_mode_spec_buffer. This avoids crashes with very
4179 large values of FIELD_WIDTH argument to decode_mode_spec.
4180 (Bug#12867)
4181
b95a9c0c
PE
41822012-11-13 Paul Eggert <eggert@cs.ucla.edu>
4183
4184 Fix a race with verify-visited-file-modtime (Bug#12863).
4185 Since at least 1991 Emacs has ignored an mtime difference of no
4186 more than one second, but my guess is that this was to work around
4187 file system bugs that were fixed long ago. Since the race is
4188 causing problems now, let's remove that code.
4189 * fileio.c (Fverify_visited_file_modtime): Do not accept a file
4190 whose time stamp is off by no more than a second. Insist that the
4191 file time stamps match exactly.
4192
be49ba74
DA
41932012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
4194
4195 * frame.h (struct frame): Convert external_tool_bar member to
4196 1-bit unsigned bitfield.
4197 * termhooks.h (struct terminal): Remove mouse_moved member since
4198 all users are long dead. Adjust comment on mouse_position_hook.
4199
5b04e9f9
DA
42002012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
4201
4202 Simplify by using FOR_EACH_FRAME here and there.
4203 * frame.c (next_frame, prev_frame, other_visible_frames)
4204 (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
4205 * w32term.c (x_window_to_scroll_bar): Likewise.
4206 * window.c (window_list): Likewise.
4207 * xdisp.c (x_consider_frame_title): Likewise.
4208 * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
4209 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4210 (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
4211 * xmenu.c (menubar_id_to_frame): Likewise.
4212 * xselect.c (frame_for_x_selection): Likewise.
4213 * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
4214 (x_window_to_menu_bar): Likewise.
4215 * w32fns.c (x_window_to_frame): Likewise. Adjust comment.
4216
76ae24d7
PE
42172012-11-12 Paul Eggert <eggert@cs.ucla.edu>
4218
12cc4337
PE
4219 * data.c (Qdefalias_fset_function): Now static.
4220
76ae24d7
PE
4221 Another tweak to vectorlike_header change.
4222 * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
4223 Remove, and replace all uses with ...
4224 (next_in_free_list, set_next_in_free_list):
4225 New functions, which respect C's aliasing rules better.
4226
1479c557
PE
42272012-11-11 Paul Eggert <eggert@cs.ucla.edu>
4228
4229 * window.c (list4i): Rename from 'quad'. All uses changed.
4230 Needed because <sys/types.h> defines 'quad' on Solaris 10.
4231
11235c03
JB
42322012-11-11 Juanma Barranquero <lekktu@gmail.com>
4233
4234 * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
4235 warning about mixing declarations and code in ISO C90.
4236
6baf66d5 42372012-11-10 Martin Rudalics <rudalics@gmx.at>
fdaf534a
MR
4238
4239 * window.c (Fsplit_window_internal): Set combination limit of
4240 new parent window to t iff Vwindow_combination_limit is t;
4241 fixing a regression introduced with the change from 2012-09-22.
6baf66d5 4242 (Fset_window_combination_limit): Fix doc-string.
fdaf534a 4243
6baf66d5 42442012-11-10 Eli Zaretskii <eliz@gnu.org>
acf93bcf
EZ
4245
4246 * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
4247 amount when the scroll margins are too large. When scrolling
4248 backwards in the buffer, give up if cannot reach point or the
23ba2705
SM
4249 scroll margin within a reasonable number of screen lines.
4250 Fixes point position in window under scroll-up/down-aggressively when
acf93bcf
EZ
4251 point is positioned many lines beyond the window top/bottom.
4252 (Bug#12811)
4253
508f51f5
EZ
4254 * ralloc.c (relinquish): If real_morecore fails to return memory
4255 to the system, don't crash; instead, leave the last heap
4256 unchanged and return. (Bug#12774)
4257
32e5c58c
SM
42582012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
4259
4260 * lisp.h (AUTOLOADP): New macro.
4261 * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
4262 * data.c (Ffset): Remove special ad-advice-info handling.
4263 (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
4264 (Fsubr_arity): CSE.
4265 (Finteractive_form): Simplify.
4266 (Fquo): Don't insist on having at least 2 arguments.
4267 (Qdefalias_fset_function): New var.
4268
719b0aa5
JD
42692012-11-09 Jan Djärv <jan.h.d@swipnet.se>
4270
4ab15c3e
JD
4271 * image.c (xpm_make_color_table_h): Change to hashtest_equal.
4272
719b0aa5
JD
4273 * nsfont.m (Qcondensed, Qexpanded): New variables.
4274 (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
4275 (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
4276
535cc8e9
DA
42772012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
4278
4279 Fix recently introduced crash on MS-Windows (Bug#12839).
4280 * w32term.h (struct scroll_bar): Use convenient header.
4281 (SCROLL_BAR_VEC_SIZE): Remove.
4282 * w32term.c (x_scroll_bar_create): Use VECSIZE.
4283
7d377c48
DA
42842012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
4285
4286 Tweak last vectorlike_header change.
4287 * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
4288 vectorlike object on the free list. This is introduced to avoid
4289 some (but not all) pointer casting and aliasing problems, see
4290 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
4291 * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
4292 objects.
4293 (xvectype, xvecsize): Use them to examine Lisp_Object values.
4294
7ad27466
JD
42952012-11-09 Jan Djärv <jan.h.d@swipnet.se>
4296
32e5c58c 4297 * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
7ad27466
JD
4298 been removed, so remove them here also.
4299
57618ecf
SM
43002012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
4301
4302 * doc.c (Fdocumentation): Handle new property
4303 dynamic-docstring-function to replace the old ad-advice-info.
4304
53371430
PE
43052012-11-09 Paul Eggert <eggert@cs.ucla.edu>
4306
4307 * fns.c (Qeql, hashtest_eq): Now static.
4308
61ddb1b9
SM
43092012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4310
4311 * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
4312 * fns.c (hashfn_eq, hashfn_eql, sxhash):
4313 * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
4314 * buffer.c (compare_overlays): Use XLI rather than XHASH.
4315
04a2d0d3
PE
43162012-11-08 Paul Eggert <eggert@cs.ucla.edu>
4317
4318 Use same hash function for hashfn_profiler as for hash_string etc.
4319 * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine.
4320 * lisp.h (sxhash_combine): New inline function, with the contents
4321 of the old SXHASH_COMBINE.
4322 * profiler.c (hashfn_profiler): Use it, instead of having a
4323 special hash function containing a comparison that always yields 1.
4324
de5ef41a
SM
43252012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4326
4327 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
4328 (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
4329 (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
4330 Remove unused vars.
4331
a23c4171
JD
43322012-11-08 Jan Djärv <jan.h.d@swipnet.se>
4333
4334 * image.c (xpm_make_color_table_h): Fix compiler error because
4335 make_hash_table changed.
4336
0b59090b 43372012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change)
074d7bb0
JD
4338
4339 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
4340
b7432bb2
SM
43412012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4342
4343 Use ad-hoc comparison function for the profiler's hash-tables.
4344 * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
4345 (make_log): Use them.
4346 (handle_profiler_signal): Don't inhibit quit any longer since we don't
4347 call Fequal any more.
4348 (Ffunction_equal): New function.
4349 (cmpfn_profiler, hashfn_profiler): New functions.
4350 (syms_of_profiler): Initialize them.
4351 * lisp.h (struct hash_table_test): New struct.
4352 (struct Lisp_Hash_Table): Use it.
4353 * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
4354 * fns.c (make_hash_table): Take a struct to describe the test.
4355 (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
4356 (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
4357 (hash_lookup, hash_remove_from_table): Move assertion checking of
4358 hashfn result here. Check hash-equality before calling cmpfn.
4359 (Fmake_hash_table): Adjust call to make_hash_table.
4360 (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
4361 (syms_of_fns): Initialize them.
4362 * emacs.c (main): Move syms_of_fns earlier.
4363 * xterm.c (syms_of_xterm):
4364 * category.c (hash_get_category_set): Adjust call to make_hash_table.
4365 * print.c (print_object): Adjust to new hash-table struct.
4366 * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
4367
88002743
EZ
43682012-11-08 Eli Zaretskii <eliz@gnu.org>
4369
4370 * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
4371 value of w32-scroll-lock-modifier is neither nil nor one of the
4372 known key modifiers. (Bug#12806)
4373
914adc42
DA
43742012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
4375
4376 Shrink struct vectorlike_header to the only size field.
4377 * lisp.h (enum pvec_type): Avoid explicit enum member values.
4378 Adjust comment.
4379 (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
4380 PVEC_TYPE_MASK to arrange new bitfield in the vector header.
4381 (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
4382 (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
4383 information from the vector header. Adjust comment.
4384 (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
4385 (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
4386 layout.
4387 (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
4388 (struct vectorlike_header): Remove next member. Adjust comment.
4389 (struct Lisp_Subr): Add convenient header. Adjust comment.
4390 (allocate_pseudovector): Adjust prototype.
4391 * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
4392 (sweep_string, lisp_malloc): Remove useless prototypes.
4393 (enum mem_type): Adjust comment.
4394 (NEXT_IN_FREE_LIST): New macro.
4395 (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
4396 (Fmake_bool_vector): Likewise.
4397 (struct large_vector): New type to represent allocation unit for
4398 the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
4399 (large_vectors): Change type to struct large_vector.
4400 (allocate_vector_from_block): Simplify.
4401 (PSEUDOVECTOR_NBYTES): Replace with...
4402 (vector_nbytes): ...new function. Adjust users.
4403 (sweep_vectors): Adjust processing of large vectors.
4404 (allocate_vectorlike): Likewise.
4405 (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
4406 Add easserts. Adjust XSETPVECTYPESIZE usage.
4407 (allocate_buffer): Use BUFFER_PVEC_INIT.
4408 (live_vector_p): Adjust to match large vector.
4409 * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
4410 * buffer.h (struct buffer): Add next member.
4411 (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
4412 New macros.
4413 (FOR_EACH_BUFFER): Adjust to match struct buffer change.
4414 * fns.c (internal_equal): Adjust to match enum pvec_type change.
4415 (copy_hash_table): Adjust to match vector header change.
4416 * lread.c (defsubr): Use XSETPVECTYPE.
4417 * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
4418 (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors.
4419 (xvecsize): New command.
4420
c66f21ea
DA
44212012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
4422
4423 * keyboard.c (event_to_kboard): Do not dereference
4424 frame_or_window field of SELECTION_REQUEST_EVENT
4425 and SELECTION_CLEAR_EVENT events (Bug#12814).
4426 * xterm.h (struct selection_input_event): Adjust comment.
4427
eb147960
EZ
44282012-11-07 Eli Zaretskii <eliz@gnu.org>
4429
dab72075
EZ
4430 * w32fns.c (modifier_set): Don't report modifiers from toggle key,
4431 such as Scroll Lock, if the respective keys are treated as
4432 function keys, not as modifiers. This avoids destroying non-ASCII
6b064c16 4433 keyboard input when Scroll Lock is toggled ON. (Bug#12806)
eb147960 4434
5890e400
DA
44352012-11-07 Dmitry Antipov <dmantipov@yandex.ru>
4436
4437 * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring.
4438
b6b3b294
PE
44392012-11-06 Paul Eggert <eggert@cs.ucla.edu>
4440
4441 Restore some duplicate definitions (Bug#12814).
4442 This undoes part of the 2012-11-03 changes. Some people build
4443 with plain -g rather than with -g3, and they need the duplicate
4444 definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
4445 * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
4446 Define as macros, as well as as enums or as constants.
4447
e770aad5
JD
44482012-11-06 Jan Djärv <jan.h.d@swipnet.se>
4449
4450 * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
4451 to keypad keys (Bug#12816).
4452
68f8f1c0
PE
44532012-11-06 Paul Eggert <eggert@cs.ucla.edu>
4454
4455 Minor adjustments of recently-changed frame functions.
4456 * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
4457 known to be a frame (we're in the FRAMEP branch).
4458 * lisp.h (Qframep): Remove decl. frame.h declares this.
4459 * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
4460 since they're meant for Lisp fixnum values.
4461
72f94d4b
DA
44622012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4463
4464 * window.c (Fwindow_combination_limit): Revert to the only
4465 required argument and adjust docstring as suggested in
4466 http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
4467 by Martin Rudalics <rudalics@gmx.at>.
4468
d9f07150
DA
44692012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4470
4471 Widely used frame validity and checking functions.
4472 * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
4473 * frame.c (decode_live_frame, decode_any_frame): New functions.
4474 (delete_frame, Fredirect_frame_focus, Fframe_parameters)
4475 (Fframe_parameter, Fframe_char_height, Fframe_char_width)
4476 (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
4477 (Fframe_pointer_visible_p): Use decode_any_frame.
4478 (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
4479 (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
4480 (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
4481 (Fframe_focus): Likewise. Allow zero number of arguments.
4482 Adjust docstring.
4483 (frame_buffer_list, frame_buffer_predicate): Remove.
4484 * lisp.h (frame_buffer_predicate): Remove prototype.
4485 * buffer.c (Fother_buffer): Use decode_any_frame.
4486 * xdisp.c (Ftool_bar_lines_needed): Likewise.
4487 * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
4488 * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
4489 (Fclose_font, Ffont_info): Use decode_live_frame.
4490 * fontset.c (check_fontset_name): Likewise.
4491 * terminal.c (Fframe_terminal): Likewise.
4492 * w32fns.c (check_x_frame): Likewise.
4493 * window.c (Fminibuffer_window, Fwindow_at)
4494 (Fcurrent_window_configuration): Likewise.
4495 (Frun_window_configuration_change_hook, Fwindow_resize_apply):
4496 Likewise. Allow zero number of arguments. Adjust docstring.
4497 * dispnew.c (Fredraw_frame): Likewise.
4498 * xfaces.c (frame_or_selected_frame): Remove.
4499 (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
4500 (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
4501 (Fframe_face_alist): Use decode_live_frame.
4502 * xfns.c (check_x_frame): Likewise.
4503
89bc0592
DA
45042012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4505
4506 * window.c (quad): New function.
4507 (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
4508 (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
4509 (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
4510 (Fwindow_line_height): Use it.
4511 (Fwindow_fringes): Use list3.
4512 (Fwindow_scroll_bars): Use list4.
4513 (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
4514 (Fwindow_combination_limit): Allow zero number of arguments.
4515
c8e3a9c3
EZ
45162012-11-05 Eli Zaretskii <eliz@gnu.org>
4517
4518 * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
4519
8e2417bf 4520 * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
c8e3a9c3 4521 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
ae600a8e 4522 file descriptor 2 for standard error. (Bug#12805)
c8e3a9c3 4523
209c6a58
CY
45242012-11-05 Chong Yidong <cyd@gnu.org>
4525
4526 * process.c (wait_reading_process_output): Revert previous change.
4527
8148369c
PE
45282012-11-05 Paul Eggert <eggert@cs.ucla.edu>
4529
dd0333b6
PE
4530 Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
4531 This removes code that has been obsolete since around 1990.
4532 * callproc.c (Fcall_process):
4533 * emacs.c (main):
4534 * process.c (create_process):
4535 * term.c (dissociate_if_controlling_tty):
4536 Assume setsid exists.
4537 * callproc.c (child_setup): Assume setpgid exists and behaves as
4538 per POSIX.1-1988 or later.
4539 * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
4540 * emacs.c (shut_down_emacs):
4541 * sysdep.c (sys_suspend, init_foreground_group):
4542 Assume getpgrp behaves as per POSIX.1-1998 or later.
4543 * msdos.c (setpgrp): Remove.
4544 (tcgetpgrp, setpgid, setsid): New functions.
4545 * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp.
4546 * term.c (no_controlling_tty): Remove; unused.
4547 * w32proc.c (setpgrp): Remove.
4548 (setsid, tcgetpgrp): New functions.
4549
8148369c
PE
4550 Simplify by assuming __fpending.
4551 * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
4552 (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
4553 Do not assume that __fpending's result fits in int.
4554
76abf5e5
PE
45552012-11-04 Paul Eggert <eggert@cs.ucla.edu>
4556
06b63c9b
PE
4557 Remove EMACS_OUTQSIZE+sleep hack.
4558 * dispnew.c (update_frame_1): Remove hack for terminals slower
de5ef41a
SM
4559 than 2400 bps, which throttled Emacs by having it sleep.
4560 This code hasn't worked since at least 2007, when the multi-tty stuff
06b63c9b
PE
4561 was added, and anyway those old terminals are long dead.
4562 * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even
4563 without the dispnew.c change, as dispnew.c doesn't include systty.h.
4564
76abf5e5
PE
4565 Fix data-loss with --version (Bug#9574).
4566 * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
4567 as we can't assume that emacs_strerror is initialized, and strerror
4568 is good enough here.
4569 (main): Invoke atexit earlier, to catch earlier instances of
4570 sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
4571
8f31e74b
MM
45722012-11-04 Michael Marchionna <tralfaz@pacbell.net>
4573
4574 * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
4575 (keyDown): Remap keypad keys to X11 virtual key codes.
4576
0d879dca
PE
45772012-11-03 Paul Eggert <eggert@cs.ucla.edu>
4578
7ccfb720
PE
4579 Fix data-loss with --batch (Bug#9574).
4580 * emacs.c: Include <close-stream.h>.
4581 (close_output_streams): New function.
4582 (main): Pass it to atexit, so that Emacs closes stdout and stderr
4583 and handles errors appropriately.
4584 (Fkill_emacs): Don't worry about flushing, as close_output_stream
4585 does that now.
4586
0b3d4a47
PE
4587 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
4588 The symptom is a diagnostic "GLib-WARNING **: In call to
4589 g_spawn_sync(), exit status of a child process was requested but
4590 SIGCHLD action was set to SIG_IGN and ECHILD was received by
4591 waitpid(), so exit status can't be returned." The diagnostic
4592 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
4593 The real bug is a race condition between Emacs and glib: Emacs
4594 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
4595 so that glib can't find it. Work around the bug by invoking
4596 waitpid only on subprocesses that Emacs itself creates.
4597 * process.c (create_process, record_child_status_change):
4598 Don't use special value -1 in pid field, as the caller now must
de5ef41a
SM
4599 know the pid rather than having the callee infer it.
4600 The inference was sometimes incorrect anyway, due to another race.
0b3d4a47
PE
4601 (create_process): Set new 'alive' member if child is created.
4602 (process_status_retrieved): New function.
4603 (record_child_status_change): Use it.
4604 Accept negative 1st argument, which means to wait for the
4605 processes that Emacs already knows about. Move special-case code
4606 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
4607 processes that have already been waited for, by testing and
4608 clearing new 'alive' member.
4609 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
4610 now does this internally.
4611 (handle_child_signal): Let record_child_status_change do all
4612 the work, since we do not want to reap all exited child processes,
4613 only the child processes that Emacs itself created.
4614 * process.h (Lisp_Process): New boolean member 'alive'.
4615
0d879dca
PE
4616 Omit duplicate definitions no longer needed with gcc -g3.
4617 * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
4618 (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
4619 Define only as macros. There's no longer any need to also define
4620 these symbols as enums or as constants, since we now assume
4621 gcc -g3 when debugging.
4622
3478f4b5
EZ
46232012-11-03 Eli Zaretskii <eliz@gnu.org>
4624
4625 * lisp.mk: Adjust comments to the fact that term/internal is now
4626 loaded from loadup.el.
4627
4628 * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
4629 (msdos_fatal_signal): New function.
4630 (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
4631 its argument list.
4632
4633 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
4634 for GCC versions before 4.
4635 (emacs_raise): Define to call msdos_fatal_signal.
4636
4637 * xdisp.c (init_from_display_pos): Fix initialization of the bidi
4638 iterator when starting in the middle of a display or overlay
4639 string. (Bug#12745)
4640
85fabcb7
CY
46412012-11-03 Chong Yidong <cyd@gnu.org>
4642
4643 * process.c (wait_reading_process_output): Clean up the last
4644 change.
4645
893cc455
CY
46462012-11-03 Jim Paris <jim@jtan.com> (tiny change)
4647
4648 * process.c (wait_reading_process_output): Avoid a race condition
4649 with SIGIO delivery (Bug#11536).
4650
0f7b074f
CY
46512012-11-03 Chong Yidong <cyd@gnu.org>
4652
4653 * buffer.c (cursor_type): Untabify docstring.
4654
3737fee7
DA
46552012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
4656
4657 * frame.h (struct frame): Drop can_have_scroll_bars member
4658 which is meaningless for a long time. Adjust comments.
4659 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
4660 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
4661
b6a9e8b1
DA
46622012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
4663
4664 * window.c (decode_next_window_args): Update window arg after
4665 calling decode_live_window and so fix crash reported at
4666 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
4667 by Juanma Barranquero <lekktu@gmail.com>.
4668 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
4669 * font.c (Ffont_at): Likewise.
4670
600d4768
JD
46712012-11-01 Jan Djärv <jan.h.d@swipnet.se>
4672
4673 * widget.c (resize_cb): New function.
4674 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
4675 (EmacsFrameResize): Check if all is up to date before changing frame
4676 size.
4677
1005b4b9
EZ
46782012-11-02 Eli Zaretskii <eliz@gnu.org>
4679
4680 Implement backtrace output for fatal errors on MS-Windows.
4681 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
4682 (BACKTRACE_LIMIT_MAX): New macro.
4683 (w32_backtrace): New function.
4684 (emacs_abort): Use w32_backtrace when the user chooses not to
4685 attach a debugger. Update the text of the abort dialog.
4686
b9e9df47
DA
46872012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
4688
4689 Window-related stuff cleanup here and there.
4690 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
4691 Use decode_any_window.
4692 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
4693 * xdisp.c (Fformat_mode_line): Likewise.
4694 * font.c (Ffont_at): Use decode_live_window.
4695 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
4696 * window.c (decode_next_window_args): Likewise.
4697 (decode_any_window): Remove static.
4698 * window.h (decode_any_window): Add prototype.
4699 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
4700 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
4701 respectively.
4702
2b371ff7
DA
47032012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
4704
4705 Remove pad from struct input_event.
4706 * termhooks.h (struct input_event): Remove padding field.
4707 Adjust comment.
4708 * keyboard.c (event_to_kboard): Simplify because frame_or_window
4709 member is never cons for a long time. Adjust comment.
4710 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
4711 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
4712 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
4713 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
4714
7e8b50d9
EZ
47152012-11-01 Eli Zaretskii <eliz@gnu.org>
4716
4717 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
4718
322aea6d
PE
47192012-10-31 Paul Eggert <eggert@cs.ucla.edu>
4720
4721 Fix crash when using Emacs as commit editor for git (Bug#12697).
4722 * callproc.c (setpgrp): Remove macro, as we now use setpgid
4723 and it is configured in conf_post.h.
4724 (Fcall_process): Don't invoke both setsid and setpgid; the former
4725 is enough, if it exists.
4726 * callproc.c (Fcall_process, child_setup):
4727 * process.c (create_process): Use setpgid.
4728 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
4729 for the real thing.
4730 * dispnew.c (init_display): Initialize the foreground group
4731 if we are running a tty display.
4732 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
4733 * lisp.h (init_foreground_group): New decl.
4734 * sysdep.c (inherited_pgroup): New static var.
4735 (init_foreground_group, tcsetpgrp_without_stopping)
4736 (narrow_foreground_group, widen_foreground_group): New functions.
4737 (init_sys_modes): Narrow foreground group.
4738 (reset_sys_modes): Widen foreground group.
4739
220cb2bd
MA
47402012-10-31 Michael Albinus <michael.albinus@gmx.de>
4741
4742 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE.
4743
218e997a
MR
47442012-10-31 Martin Rudalics <rudalics@gmx.at>
4745
4746 * minibuf.c (read_minibuf): Restore current buffer since
4747 choose_minibuf_frame calling Fset_frame_selected_window may
4748 change it (Bug#12766).
4749
02615da0
JD
47502012-10-30 Jan Djärv <jan.h.d@swipnet.se>
4751
4752 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
4753
aee5b18e
KH
47542012-10-30 Kenichi Handa <handa@gnu.org>
4755
4756 * font.c (Ffont_at): If WINDOW is specified and it is not
4757 displaying the current buffer, signal an error.
4758
ba116008
DC
47592012-10-29 Daniel Colascione <dancol@dancol.org>
4760
de5ef41a
SM
4761 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
4762 In preparation for fixing bug#12739, move these functions from
ba116008
DC
4763 here...
4764
4765 * coding.h, coding.c: ... to here, and compile them only when
53372c27
DC
4766 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper
4767 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
ba116008 4768
640bf8ad
EZ
47692012-10-28 Eli Zaretskii <eliz@gnu.org>
4770
4771 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
4772 (timer_loop, getitimer, setitimer): Use it instead of
4773 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
4774 'clock'.
4775 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
4776 literal 10000.
4777
64ccff5f
JD
47782012-10-28 Jan Djärv <jan.h.d@swipnet.se>
4779
4780 * nsterm.m (NO_APPDEFINED_DATA): New define.
4781 (last_appdefined_event_data): New variable
4782 (last_appdefined_event): Remove.
4783 (ns_select): Initialize t from last_appdefined_event_data instead
4784 of [last_appdefined_event data1].
4785 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
4786 remove last_appdefined_event (Bug#12698).
4787
e483264c
SM
47882012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
4789
4790 * frame.c (x_set_font): Catch internal error.
4791
6c16c13e
EZ
47922012-10-27 Eli Zaretskii <eliz@gnu.org>
4793
e483264c
SM
4794 Avoid overflow in w32 implementation of interval timers.
4795 When possible, for ITIMER_PROF count only times the main thread
6c16c13e
EZ
4796 actually executes.
4797 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
2e612797
EZ
4798 'volatile ULONGLONG' types. All the other data which was
4799 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'.
6c16c13e
EZ
4800 (GetThreadTimes_Proc): New typedef.
4801 (w32_get_timer_time): New function, returns a suitable time value
4802 for the timer.
4803 (timer_loop): Enter critical section when accessing ULONGLONG
4804 values of the itimer_data struct, as these accesses are no longer
e483264c
SM
4805 atomic. Call 'w32_get_timer_time' instead of 'clock'.
4806 Remove unused variable.
6c16c13e
EZ
4807 (init_timers): Initialize s_pfn_Get_Thread_Times.
4808 (start_timer_thread): Don't assign itimer->caller_thread here.
4809 (getitimer): Assign itimer->caller_thread here.
4810 (setitimer): Always call getitimer to get the value of ticks_now.
2f246cd3 4811 (sys_spawnve): Avoid compiler warning about format mismatch.
6c16c13e 4812
ccc83f50
EZ
48132012-10-26 Eli Zaretskii <eliz@gnu.org>
4814
4815 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
4816 mouse movement events if the menu bar is active. This avoids
4817 producing a busy "hour-glass" cursor by Windows if the mouse
4818 pointer is positioned over a tooltip shown for some menu item.
4819
69deda53
PE
48202012-10-25 Paul Eggert <eggert@cs.ucla.edu>
4821
4822 Don't assume process IDs fit in int.
4823 * emacs.c (shut_down_emacs) [!DOS_NT]:
4824 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
4825 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
4826 Use pid_t, not int, to store process IDs, as 'int'
4827 is not wide enough on a few platforms (e.g., AIX and IRIX).
4828
7e70a152
KH
48292012-10-23 Kenichi Handa <handa@gnu.org>
4830
4831 The following change is to make face-font-rescale-alist work
4832 correctly for non-ASCII fonts.
4833
4834 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
4835 (font_open_for_lface): Handle Vface_font_rescale_alist.
4836
49238e7f
CY
48372012-10-23 Chong Yidong <cyd@gnu.org>
4838
4839 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
4840
5ec86886
JD
48412012-10-21 Jan Djärv <jan.h.d@swipnet.se>
4842
ef446959
JD
4843 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
4844 for screen font.
4845 (nsfont_draw): Turn off LCD-smoothing (Bug#11484).
4846
5ec86886
JD
4847 * xterm.c (x_focus_changed): Check if daemonp when sending focus in
4848 event (Bug#12681).
4849
ee7a418d
GM
48502012-10-21 Glenn Morris <rgm@gnu.org>
4851
4852 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
4853
4973679b
PE
48542012-10-20 Paul Eggert <eggert@cs.ucla.edu>
4855
4856 Port to OpenBSD 5.1.
4857 * frame.c (Fmouse_position, Fmouse_pixel_position):
4858 * xdisp.c (produce_stretch_glyph):
4859 Declare local vars only when they're needed.
4860 This is clearer and avoids a warning on OpenBSD about unused vars.
4861 * frame.h (FRAME_WINDOW_P): Always evaluate its argument.
4862 This is safer, and avoids OpenBSD warnings about unused vars.
4863 * keyboard.c (record_menu_key): Remove unnecessary decl.
4864 (poll_timer): Define only if POLL_FOR_INPUT is defined.
4865 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
4866 as our definition clashes with OpenBSD's.
4867 * xfaces.c (load_face_colors, check_lface_attrs)
4868 (get_lface_attributes_no_remap, get_lface_attributes)
4869 (lface_fully_specified_p, x_supports_face_attributes_p)
4870 (tty_supports_face_attributes_p, face_fontset, realize_face)
4871 (realize_x_face, realize_tty_face):
4872 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
4873 merely Lisp_Object *. This is more informative and avoids
4874 a warning on OpenBSD about accessing beyond an object's size.
4875
c664f463
CY
48762012-10-20 Chong Yidong <cyd@gnu.org>
4877
4878 * lread.c (Fload): Doc fix (Bug#12592).
4879
6ec83f92 48802012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
a0d7415f
KH
4881
4882 * font.c (Ffont_at): Fix previous change.
4883
d2824928
EZ
48842012-10-19 Eli Zaretskii <eliz@gnu.org>
4885
e483264c
SM
4886 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
4887 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
c052c554
EZ
4888 for the reasons.
4889
d2824928
EZ
4890 * alloc.c (NSTATICS): Decrease to 0x800.
4891
f60d391f
SM
48922012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
4893
4a0e1924 4894 * fns.c (Fnreverse): Include the problem element when signaling an
f60d391f
SM
4895 error (bug#12677).
4896
1a9327d5
JD
48972012-10-18 Jan Djärv <jan.h.d@swipnet.se>
4898
4899 * nsterm.m (ns_select): Check writefds before call to
4900 FD_ISSET (Bug#12668).
4901
14145a1e
DC
49022012-10-18 Daniel Colascione <dancol@dancol.org>
4903
4904 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000
4905 (staticpro): If we run out of staticpro slots, die with an
4906 informative error instead of just calling emacs_abort.
4907
1f76f6f5
MR
49082012-10-18 Martin Rudalics <rudalics@gmx.at>
4909
4910 Fix two flaws reported by Dmitry Antipov.
4911 * window.c (Ftemp_output_buffer_show): Remove.
4912 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
4913 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
4914
fcf14875
EZ
49152012-10-17 Eli Zaretskii <eliz@gnu.org>
4916
1f76f6f5
MR
4917 * makefile.w32-in ($(BLD)/w32.$(O)):
4918 ($(BLD)/vm-limit.$(O)):
4919 ($(BLD)/term.$(O)):
4920 ($(BLD)/unexw32.$(O)):
4921 ($(BLD)/fileio.$(O)):
a68089e4
EZ
4922 ($(BLD)/dispnew.$(O)): Update dependencies.
4923
4924 * w32term.h (w32_initialize_display_info, initialize_w32_display):
4925 Add prototypes.
4926
4927 * w32proc.c: Include ctype.h.
4928
4929 * w32.h (init_environment, check_windows_init_file)
4930 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
4931 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
4932 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
4933 (sys_link): Add prototypes.
4934
4935 * w32.c: Include w32select.h.
4936 (sys_access, e_malloc, sys_select): Add prototypes.
4937 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
4938
4939 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
4940
4941 * unexw32.c: Include lisp.h and w32.h.
4942
4943 * term.c [WINDOWSNT]: Include w32term.h.
4944
4945 * process.c [WINDOWSNT]: Add prototype of sys_select.
4946
4947 * fileio.c [WINDOWSNT]: Include w32.h.
4948
4949 * dispnew.c [WINDOWSNT]: Include w32.h.
4950
fcf14875
EZ
4951 * cygw32.c (Fcygwin_convert_path_to_windows)
4952 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
4953 Lisp_Object values. (Bug#12661)
4954
4955 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
4956 to Lisp_Object. (Bug#12661)
4957
fe0b1ec4
KH
49582012-10-17 Kenichi Handa <handa@gnu.org>
4959
4960 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
4961 invalidate.
4962
d556ebf9
DA
49632012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
4964
4965 * buffer.c (Fkill_buffer): When unchaining the marker,
1f9f395d 4966 reset its buffer pointer to NULL (Bug#12652).
d556ebf9 4967
f0863a54
DA
49682012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
4969
4970 Do not verify indirection counters of killed buffers (Bug#12579).
4971 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
4972 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
4973
12fbe755
DA
49742012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
4975
4976 * alloc.c (Fmake_byte_code): Fix typo in comment.
4977 * print.c (print_interval): Define as static to match prototype.
4978 * indent.c (disptab_matches_widthtab, recompute_width_table):
4979 Convert to eassert.
4980
61655b89
DA
49812012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
4982
4983 * editfns.c (get_system_name): Remove.
4984 * lisp.h (get_system_name): Remove prototype.
4985 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
4986 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
4987
9520f2f2
DC
49882012-10-15 Daniel Colascione <dancol@dancol.org>
4989
4990 * dbusbind.c: Add comment explaining reason for previous change.
4991
dca778d5
MR
49922012-10-15 Martin Rudalics <rudalics@gmx.at>
4993
4994 * window.c (Fwindow_end): Rewrite check whether cached position
4995 can be used (Bug#12600).
4996 (resize_frame_windows, grow_mini_window, shrink_mini_window):
4997 Set windows_or_buffers_changed.
4998
3e0341b0
DC
49992012-10-15 Daniel Colascione <dancol@dancol.org>
5000
5001 * dbusbind.c: Fix cygw32 build break when compiling with dbus
5002 enabled by undefining the symbol "interface", which the platform
5003 headers define to something incompatible.
5004
33d4113c
DC
50052012-10-14 Daniel Colascione <dancol@dancol.org>
5006
5007 * image.c (init_tiff_functions, init_imagemagick_functions)
5008 (init_svg_functions): Fix cygw32 build break by using these
5009 functions only when WINDOWSNT _and_ HAVE_NTGUI.
5010
a36fb15e
JD
50112012-10-14 Jan Djärv <jan.h.d@swipnet.se>
5012
5013 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
5014
537f336d
JD
50152012-10-13 Jan Djärv <jan.h.d@swipnet.se>
5016
5017 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
5018
0ba06a77
KH
50192012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change)
5020
5021 * coding.c (detect_coding): Set coding->id before calling
5022 this->detector.
5023
ce2fe65a
AS
50242012-10-13 Andreas Schwab <schwab@linux-m68k.org>
5025
5026 * fileio.c: Formatting fixes.
5027
d6453ce4
PE
50282012-10-13 Paul Eggert <eggert@cs.ucla.edu>
5029
5030 Fix some stat-related races.
5031 * fileio.c (Fwrite_region): Avoid race condition if a file is
5032 removed or renamed by some other process immediately after Emacs
5033 writes it but before Emacs stats it. Do not assume that stat (or
5034 fstat) succeeds.
5035 * image.c (slurp_file): Resolve the file name with fopen + fstat
5036 rather than stat + fopen.
5037 (pbm_read_file) [0]: Remove unused code with stat race.
5038 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
5039 Remove ineffective code with stat race.
5040
06485aa8
SM
50412012-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
5042
5043 * doc.c (get_doc_string): Don't signal an error if the file is missing.
5044
167e3640
JD
50452012-10-12 Jan Djärv <jan.h.d@swipnet.se>
5046
5047 * nsterm.m (hold_event_q): New static variable.
5048 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
5049 ! q_event_ptr.
5050 (hold_event): New function.
5051 (ns_read_socket): If hold_event_q have events, store them and
5052 return (Bug#12384).
5053 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
5054 is zero (Bug#12384).
5055
c40239df
JB
50562012-10-12 Juanma Barranquero <lekktu@gmail.com>
5057
5058 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
5059
bb385a92
EZ
50602012-10-12 Eli Zaretskii <eliz@gnu.org>
5061
2a9f1099
EZ
5062 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
5063
bb385a92
EZ
5064 * fileio.c (check_existing): New function.
5065 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
5066 instead of calling 'stat', when what's needed is to check whether
5067 a file exists. This avoids expensive system calls on MS-Windows.
5068 (Bug#12587)
5069
8599b23a 5070 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
bb385a92
EZ
5071
5072 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
5073 determine whether a file exists and is not a directory.
5074
5075 * lisp.h (check_existing): Add prototype.
5076
2b9c2e68
JD
50772012-10-12 Jan Djärv <jan.h.d@swipnet.se>
5078
5079 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
5080
81749a23
GM
50812012-10-12 Glenn Morris <rgm@gnu.org>
5082
5083 * buffer.c (Fset_buffer): Doc fix. (Bug#12624)
5084
5253a5fd
SM
50852012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
5086
389a94a5
SM
5087 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
5088
5253a5fd
SM
5089 * eval.c (Fautoload): Remember previous autoload status in load-history.
5090
7cded46f
PE
50912012-10-11 Paul Eggert <eggert@cs.ucla.edu>
5092
5093 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
5094 * lread.c (load_each_byte, new_backquote_flag, readchar)
5095 (read_filtered_event, lisp_file_lexically_bound_p)
5096 (safe_to_load_version, Fload, complete_filename_p, openp)
5097 (build_load_history, readevalloop, read_escape, read1)
5098 (string_to_number, read_vector, read_list):
5099 * macros.c (Fstart_kbd_macro):
5100 * marker.c (CONSIDER):
5101 * menu.c (parse_single_submenu, digest_single_submenu)
5102 (find_and_return_menu_selection, Fx_popup_menu):
5103 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
5104 (Ftry_completion):
5105 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
5106 (ns_menu_show):
5107 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
5108 (xmenu_show, xdialog_show):
5109 Use bool for booleans.
5110 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
5111 as it's not a predicate. All uses changed. Omit unnecessary
5112 buffer termination.
5113
549c3414
DA
51142012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
5115
5116 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
5117 (save_excursion_restore): Do not restore mark if it was not saved.
5118
e85aafe7
PE
51192012-10-11 Paul Eggert <eggert@cs.ucla.edu>
5120
fd2f90cf
PE
5121 * marker.c (cached_modiff): EMACS_INT, not int.
5122
c1af190b
PE
5123 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
5124 instead of having a wrong decl.
e85aafe7
PE
5125 * nsmenu.m (waiting_for_input): Remove wrong decl.
5126
e738ca56
PE
51272012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5128
9fa1de30
PE
5129 keyboard.c, keymap.c: Use bool for booleans.
5130 * dispnew.c (sit_for): Distinguish between 3-way display_option
5131 and boolean do_display.
5132 * keyboard.c (single_kboard, this_command_key_count_reset)
5133 (waiting_for_input, echoing, immediate_quit, input_pending)
5134 (interrupt_input, interrupts_deferred, pop_kboard)
5135 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
5136 (command_loop_1, adjust_point_for_property)
5137 (safe_run_hooks_error, input_polling_used, read_char):
5138 (help_char_p, readable_events, kbd_buffer_events_waiting)
5139 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
5140 (lucid_event_type_list_p, get_input_pending):
5141 (gobble_input, menu_separator_name_p, menu_bar_item)
5142 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
5143 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
5144 (keyremap_step, test_undefined, read_key_sequence)
5145 (detect_input_pending, detect_input_pending_ignore_squeezables)
5146 (detect_input_pending_run_timers, requeued_events_pending_p)
5147 (quit_throw_to_read_char, Fset_input_interrupt_mode):
5148 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
5149 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
5150 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
5151 (accessible_keymaps_1, Fkey_description, push_key_description):
5152 (shadow_lookup, struct where_is_internal_data)
5153 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
5154 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
5155 (describe_map, describe_vector):
5156 * menu.c (single_menu_item):
5157 * nsmenu.m (ns_update_menubar):
5158 * process.c (wait_reading_process_output):
5159 * search.c (scan_buffer, scan_newline):
5160 Use bool for boolean.
5161 * keyboard.c (timers_run, swallow_events)
5162 (detect_input_pending_run_timers):
5163 * process.c (wait_reading_process_output):
5164 Use unsigned for counter where wraparound-on-overflow is desired,
5165 since unsigned is guaranteed to have that behavior and signed is not.
5166 (read_char): Use ptrdiff_t for string length.
5167 (get_input_pending): Remove first argument, since it was always
5168 the same pointer-to-int (now pointer-to-boolean) &input_pending,
5169 and behave as if it had that value. Return new value of
5170 input_pending. All callers changed.
5171 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
5172 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
5173 a string length.
5174 * keymap.c (push_key_description): Omit last arg, which was always 1.
5175 All callers changed.
5176
e738ca56
PE
5177 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
5178
29f21cdf
JB
51792012-10-10 Juanma Barranquero <lekktu@gmail.com>
5180
5181 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
5182 ($(BLD)/term.$(O)): Update dependencies.
5183
6aea7528
DA
51842012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
5185
5186 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
5187 * lisp.h (enum pvec_type): Adjust comments and omit explicit
5188 initializer for PVEC_NORMAL_VECTOR.
5189
5f3f57be
PE
51902012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5191
5192 Clean out old termopts cruft.
5193 * termopts.h (flow_control, meta_key): Remove unused decls.
5194 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
5195 Don't include termopts.h.
5196
3e98c68e
DA
51972012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
5198
5199 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
5200
77e344e5
PE
52012012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5202
5203 * commands.h (immediate_quit): Remove duplicate decl.
5204
5683d7cd
JD
52052012-10-09 Jan Djärv <jan.h.d@swipnet.se>
5206
5207 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
5208 caching.
5209 (nsfont_open): Remove setting of Vfonts_in_cache.
1f9f395d 5210 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
5683d7cd 5211
cf5fc6db
EZ
52122012-10-09 Eli Zaretskii <eliz@gnu.org>
5213
b15736e6
EZ
5214 * w32fns.c (w32_last_error): Change the return value to DWORD, to
5215 match what GetLastError returns. Explain why the function is
5216 needed.
5217
cf5fc6db
EZ
5218 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
5219 'is_tooltip_frame', to avoid confusion with its global namesake.
5220
f99714ce
DC
52212012-10-08 Daniel Colascione <dancol@dancol.org>
5222
5223 * xdisp.c (start_hourglass): Call w32_note_current_window when
2b1f11ed
EZ
5224 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
5225 build that caused Emacs to display the hourglass cursor forever.
f99714ce 5226
fd59cb29
GM
5227 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
5228 which is broken under remote desktop, calculate the number of
5229 colors available for a display based on the display's number of
5230 planes and number of bits per pixel per plane. (bug#10397).
5231
62c480c9 52322012-10-08 Jan Djärv <jan.h.d@swipnet.se>
fd59cb29 5233
62c480c9
JD
5234 * nsfont.m (Vfonts_in_cache): New variable.
5235 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
5236 are used. Add cached fonts to Vfonts_in_cache.
5237 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
5238
607446ba
JB
52392012-10-08 Juanma Barranquero <lekktu@gmail.com>
5240
fd5125ad
JB
5241 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
5242 in nt/config.nt.
46979e0b
JB
5243 (FONT_H): Define after FRAME_H.
5244 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
5245 Update dependencies.
fd5125ad 5246
607446ba
JB
5247 * w32term.c: Remove leftover declaration of keyboard_codepage.
5248
b6f4e300
EZ
52492012-10-08 Eli Zaretskii <eliz@gnu.org>
5250
c54ebba4
EZ
5251 * makefile.w32-in (FONT_H): Add $(FRAME_H).
5252 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
5253 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
5254 (GLOBAL_SOURCES): Add cygw32.c.
fd59cb29
GM
5255 ($(BLD)/unexw32.$(O)):
5256 ($(BLD)/w32.$(O)):
5257 ($(BLD)/w32console.$(O)):
5258 ($(BLD)/w32fns.$(O)):
5259 ($(BLD)/w32heap.$(O)):
5260 ($(BLD)/w32menu.$(O)):
15c720a3 5261 ($(BLD)/w32proc.$(O)): Add w32common.h.
c54ebba4 5262
b6f4e300
EZ
5263 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
5264 'const char *'.
5265 (x_to_w32_color): Don't modify the argument, modify a copy instead.
5266
501199a3
DC
52672012-10-08 Daniel Colascione <dancol@dancol.org>
5268
5269 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
5270 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
5271 accidental message numbering hole. Change other messages to
5272 match.
5273
5274 * w32select.h (HAVE_W32SELECT): Remove.
5275
5276 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
1f9f395d 5277 w32common.h instead of w32heap.h.
501199a3
DC
5278
5279 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
5280 (get_allocation_unit, get_processor_type, get_w32_major_version)
5281 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
5282 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
5283 (OS_NT, os_subtype, cache_system_info): Move declarations to
5284 w32common.
5285
5286 * w32heap.c: Include w32common.h.
5287 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
8599b23a
SM
5288 (w32_minor_version, w32_build_number, w32_subtype):
5289 Remove duplicate definitions.
501199a3
DC
5290
5291 * w32fns.c: Include w32common.h; include w32heap.h only in
5292 WINDOWSNT.
5293
5294 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
5295 Use `report_file_error' instead of `error' in order to better
5296 inform users of what went wrong. Increase NTGUI_UNICODE file
5297 dialog box file name length to 32k, the maximum allowed by the NT
5298 kernel.
5299
5300 * w32common.h: New file.
5301 (ROUND_UP, ROUND_DOWN, get_page_size)
5302 (get_allocation_unit, get_processor_type, get_w32_major_version)
5303 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
5304 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
5305 (OS_NT, os_subtype, cache_system_info): Move here.
5306
5307 * unexw32.c, unexcw.c: Include w32common.h.
5308
5309 * emacs.c (main): Use (defined (WINDOWSNT) || defined
5310 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
5311 to call syms_of_w32select.
5312
5313 * cygw32.h: Remove obsolete EXFUN declarations.
5314
5315 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
5316
5317 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
5318 of w32inevt.o from SOME_MACHINE_OBJECTS.
5319
93aa5c81
DC
53202012-10-08 Daniel Colascione <dancol@dancol.org>
5321
5322 * image.c: Permanent fix for JPEG compilation issue --- limit
5323 jpeglib `boolean' redefinition to Cygwin builds.
5324
d424f3d8
EZ
53252012-10-08 Eli Zaretskii <eliz@gnu.org>
5326
8ee4c6ce
EZ
5327 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
5328
d424f3d8
EZ
5329 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
5330 Cygwin.
5331
e08348a0
DC
53322012-10-08 Daniel Colascione <dancol@dancol.org>
5333
5334 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
5335 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
5336 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
5337 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
5338 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
5339 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
5340 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
5341 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
5342 now a supported configuration.
5343
5344 * Makefile.in: consolidate image variables into LIBIMAGE; add
8e2417bf 5345 W32_OBJ and W32_LIBS. Compile new files.
e08348a0
DC
5346
5347 * conf_post.h:
5348 (_DebPrint) declare tracing facility for W32 debugging. We need
5349 to unify tracing later.
5350
5351 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
5352 unconditional use of W32 Unicode functions. Cygwin runs only on
5353 100% Unicode operating systems.
5354
5355 * cygw32.c: New file. Define Cygwin-specific facilities.
5356 (Fcygwin_convert_path_to_windows)
5357 (Fcygwin_convert_path_from_windows): New user functions for
5358 accessing Cygwin path-munging routines.
5359
5360 * cygw32.h: New file.
5361 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
5362 UTF-16LE strings temporarily inside non-Lisp-visible string
5363 objects.
5364
5365 (w32_strerror): Just what it says on the tin.
5366
5367 * emacs.c: Make the NS fork-then-exec code for daemon-launching
5368 also run for Cygwin; both systems have the same problem with using
5369 GUI facilities in a forked child. Also call syms_of_cygw32,
5370 syms_of_w32select in correct places.
5371
5372 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
5373 needs fork-then-exec for daemon launching.
5374
5375 * font.h: Include frame.h.
5376
5377 * image.c: Use the image library cache machinery only when we're
5378 compiling for native WINDOWSNT; Cygwin can use shared libraries
5379 like any other Unixlike system.
5380
5381 * keyboard.c: Clarify a comment regarding the input loop.
5382
5383 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
5384 functions directly instead of trying to detect at runtime that our
5385 host operating system supports them. We make this change for two
5386 reasons: Cygwin lacks support for the multibyte character
5387 conversion functions used by the legacy menu code, and Cygwin
5388 never needs to rely on non-Unicode APIs.
5389
5390 * unexw32.c (hinst): Declare extern.
5391
5392 * w32.c: Change header order;
5393 (w32_strerror): Move to w32fns.c because we need it for
5394 non-WINDOWSNT builds.
5395
5396 * w32.h: Add #error macro to make sure we don't include w32.h for
5397 Cygwin builds. Remove w32select declarations.
5398
5399 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
1f9f395d 5400 w32fns.c. w32console.c is WINDOWSNT-only.
e08348a0
DC
5401
5402 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
5403 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
5404 POSIXy alternative.
5405 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
5406 (w32_major_version, w32_minor_version, w32_build_number)
5407 (os_subtype, sound_type): Define here
5408 (w32_defined_color): Make color parameter const for consistency
5409 with other _defined_color functions.
5410 (w32_createwindow): Unconditionally call w32_init_class instead of
5411 doing so only when hprevinst is non-NULL. Plumbing hprevinst
5412 through the code is complex and unnecessary because class
5413 registration is practically free.
5414 (w32_name_of_message): New EMACSDEBUG-only function.
5415 (Fset_message_beep): Move here
5416 (Fx_open_connection): Require that the display name for Windows be
5417 "w32" for consistency, emacsclient disambiguation, and maybe, one
5418 day, multi-window-system support.
5419 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
5420 Cygwin files for W32 GUI facilities, since these clearly don't
5421 expect Cygwin names.
5422 (_DebPrint): Define.
5423 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
5424 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
5425 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
5426 (w32_last_error): Remove.
5427
5428 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
5429
5430 * w32heap.c (syspage_mask): Declare here.
5431 (cache_system_info): Remove.
5432
5433 * w32inevt.c (faked_key): Define globally, not statically.
5434 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
5435 (w32_console_toggle_lock_key): Move to w32fns.c.
5436
5437 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
5438
5439 * w32proc.c (_DebPrint): Move to w32fns.c.
5440 * w32select.c: Include string.h, stdio.h for Cygwin.
5441 * w32select.h: New File.
5442
5443 * w32term.c: Include io.h for non-CYGWIN builds; needed for
5444 get_osfhandle.
5445 (w32_message_fd): New variable. Under Cygwin, holds the file
5446 descriptor the system used to tell us about pending thread
5447 messages.
5448
5449 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
5450 that prevented compilation under non-WINDOWSNT systems.
5451
5452 (w32_initialize): Open /dev/windows and assign it to
5453 w32_message_fd. Provide w32 feature.
5454
5455 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
5456 (WM_EMACS_INPUT_READY): add.
5457 (prepend_msg, w32_message_fd): Declare globally.
5458
5459 * w32xfns.c:
5460 (keyboard_handle): Use only when WINDOWSNT.
5461 (notify_msg_ready): New function. Posts a message to the main
5462 thread's message queue under CYGWIN, which wakes up the main
5463 thread from select(2) by making the /dev/windows file descriptor
5464 ready. Under WINDOWSNT, it sets an event the same way the old
5465 code did.
5466
5467 (post, prepend_msg): Actually call notify_msg_ready instead of
5468 setting the input event directly.
5469
98daa893
EZ
54702012-10-07 Eli Zaretskii <eliz@gnu.org>
5471
5472 * ralloc.c (relinquish): If a heap is ready to be relinquished,
5473 but it still has blocs in it, don't return it to the system,
5474 instead of aborting. (Bug#12402)
5475
3bc0a2f7
JD
54762012-10-07 Jan Djärv <jan.h.d@swipnet.se>
5477
8ad5b73b 5478 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
493b5b1c 5479
335f5ae4
JD
5480 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
5481 MAC_OS_X_VERSION_10_6.
8ad5b73b
JD
5482 (syms_of_nsterm): Remove comment about Panther and above for
5483 ns-antialias-text.
335f5ae4
JD
5484 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
5485 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
5486 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
5487
5488 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
5489 MAC_OS_X_VERSION_10_4.
5490
8ad5b73b
JD
5491 * nsmenu.m (fillWithWidgetValue:): Remove code for <
5492 MAC_OS_X_VERSION_10_2.
335f5ae4
JD
5493
5494 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
5495
5496 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
5497 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
5498
3bc0a2f7
JD
5499 * nsterm.m (ns_in_resize): Remove (Bug#12479).
5500 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
8599b23a
SM
5501 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
5502 Remove ns_in_resize check.
3bc0a2f7
JD
5503 (ns_clear_frame_area): Remove resize handle code.
5504
5505 * nsfns.m (ns_in_resize): Remove.
e483264c
SM
5506 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
5507 Remove ns_in_resize check.
3bc0a2f7 5508
c622b48f
PE
55092012-10-07 Paul Eggert <eggert@cs.ucla.edu>
5510
5511 Improve sys_siglist detection.
5512 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
5513 defined as a macro, as is done in Solaris.
5514 (sys_siglist_entries): New macro.
5515 (save_strsignal): Use it.
5516 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
5517 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
5518
04fafa46
JD
55192012-10-06 Jan Djärv <jan.h.d@swipnet.se>
5520
5521 * nsfns.m (Fx_create_frame): Call x_default_parameter with
5522 fullscreen/Fullscreen.
5523
5524 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
5525 tobar_height is new.
5526
5527 * nsterm.m (x_make_frame_visible): Check for fullscreen.
5528 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
5529 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
5530 (windowDidResize:): Check for correct window if old style fullscreen.
5531 Capitalize word in comment. Remove incorrect comment.
5532 (initFrameFromEmacs:): tbar_height renamed tibar_height.
5533 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
5534 error in drawing background.
1f9f395d 5535 (toggleFullScreen:): Remove comment. Rearrange calls.
04fafa46
JD
5536 Set toolbar values to zero, save old height in tobar_height.
5537 Restore tool bar height when leaving fullscreen.
5538 (canBecomeMainWindow): New function.
5539
c6e21c03
PE
55402012-10-06 Paul Eggert <eggert@cs.ucla.edu>
5541
5542 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
5543
0d9f584b
EZ
55442012-10-05 Eli Zaretskii <eliz@gnu.org>
5545
a65fbb5f
EZ
5546 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
5547
0d9f584b 5548 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
8599b23a
SM
5549 that time stamps of directories could also be changed.
5550 Don't request the too broad GENERIC_WRITE, only the more restrictive
0d9f584b
EZ
5551 FILE_WRITE_ATTRIBUTES access rights.
5552
5553 * fileio.c (Fset_file_times): Special-case ignoring errors for
5554 directories only on MSDOS, not on MS-Windows.
5555
e8757f09 55562012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
ca347e3d
IK
5557
5558 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
5559
7604f298
EZ
55602012-10-04 Eli Zaretskii <eliz@gnu.org>
5561
5562 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
5563 see whether CreateFile failed.
5564
88d69b7d
PE
55652012-10-04 Paul Eggert <eggert@cs.ucla.edu>
5566
5567 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
5568 to avoid similar races.
5569 * keyboard.c (pending_signals): Now bool, not int.
5570
7509f454
PE
5571 Port timers to OpenBSD, plus check for timer failures.
5572 OpenBSD problem reported by Han Boetes.
5573 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
5574 and/or setitimer.
5575 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
5576 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
5577 like OpenBSD, which has timer_settime but does not declare it.
5578 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
5579 whether to use itimerspec-related primitives. All uses of
5580 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
5581
a3c5c0c5
PE
55822012-10-02 Paul Eggert <eggert@cs.ucla.edu>
5583
5584 * profiler.c (handle_profiler_signal): Fix a malloc race
5585 that caused Emacs to hang on Fedora 17 when profiling Lisp.
5586
914e743b
JD
55872012-10-02 Jan Djärv <jan.h.d@swipnet.se>
5588
5589 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
5590
d8ab37a8
EZ
55912012-10-02 Eli Zaretskii <eliz@gnu.org>
5592
5593 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
5594 consistent with the change in return value of 'safe_strsignal'.
5595
b3ecad33
PE
55962012-10-02 Paul Eggert <eggert@cs.ucla.edu>
5597
0a99eee1
PE
5598 Prefer plain 'static' to 'static inline' (Bug#12541).
5599 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
5600 (bidi_set_sor_type, bidi_push_embedding_level)
5601 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
5602 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
5603 (bidi_cache_search, bidi_cache_ensure_space)
5604 (bidi_cache_iterator_state, bidi_cache_find)
5605 (bidi_peek_at_next_level, bidi_set_paragraph_end)
5606 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
5607 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
5608 Now 'static', not 'static inline'.
5609
b3ecad33
PE
5610 Count overruns when profiling; change units to ns.
5611 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
5612 Give extra weight to samples after overruns, to attempt to count
5613 the time more accurately.
5614 (setup_cpu_timer): Change sampling interval units from ms to ns, since
5615 the underlying primitives nominally do ns.
5616 (Fprofiler_cpu_start): Document the change. Mention that
5617 the sampling intervals are only approximate.
5618
090cf9db
SM
56192012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
5620
5621 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
5622
5623 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
5624 case for the special 0 coding-system.
5625
5626 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
5627 (Fmake_overlay): Remove redundant tests.
64edc777 5628 (fix_start_end_in_overlays): Remove redundant recentering.
090cf9db 5629
81550bf4
JB
56302012-10-02 Juanma Barranquero <lekktu@gmail.com>
5631
5632 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
5633 Update dependencies.
5634
aa1ba90e
PE
56352012-10-01 Paul Eggert <eggert@cs.ucla.edu>
5636
5637 Fix a malloc race condition involving strsignal.
5638 A signal can arrive in the middle of a malloc, and Emacs's signal
5639 handler can invoke strsignal, which can invoke malloc, which is
5640 not portable. This race condition bug makes Emacs hang on GNU/Linux.
5641 Fix it by altering the signal handler so that it does not invoke
5642 strsignal.
5643 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
5644 * process.c (status_message): Use const pointer, in case strsignal
5645 is #defined to safe_strsignal.
5646 * sysdep.c (sys_siglist, init_signals): Always define and
5647 initialize a substitute sys_siglist if the system does not define
5648 one, even if HAVE_STRSIGNAL.
5649 (safe_strsignal): Rename from strsignal. Always define,
5650 using sys_siglist. Return a const pointer.
5651 * syssignal.h (safe_strsignal): New decl.
5652 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
5653
ace917bd
EZ
56542012-10-01 Eli Zaretskii <eliz@gnu.org>
5655
5656 * w32proc.c (timer_loop): Fix code that waits for timer
5657 expiration, to avoid high CPU usage.
5658
9eb71b9c
SM
56592012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
5660
5661 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
5662 (sweep_weak_table): Remove redundant prototypes.
5663
b3317662
FP
56642012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
5665
5666 * emacs.c: Move the inclusion of TERM_HEADER after including
5667 windows.h on WINDOWSNT. This avoids compilation problems with
5668 MSVC.
5669
f0e5f225
EZ
56702012-10-01 Eli Zaretskii <eliz@gnu.org>
5671
2d7d1608
EZ
5672 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
5673 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
5674 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
5675 as the previous version used 'void *'.
5676
5677 * ralloc.c (ROUNDUP): Fix last change.
5678 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
5679 'size_t'.
5680
f0e5f225
EZ
5681 * w32proc.c <disable_itimers>: New static flag.
5682 (init_timers): Initialize it to zero, after creating the critical
5683 sections used by the timer threads.
5684 (term_timers): Set to 1 before deleting the critical sections.
5685 (getitimer, setitimer): If disable_itimers is non-zero, return an
5686 error indication without doing anything. Reported by Fabrice
5687 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
4cdfbb89
EZ
5688 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
5689 return results.
5690 [!HAVE_SETITIMER]: Behave as the previous version that didn't
5691 support timers.
f0e5f225
EZ
5692
5693 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
5694 term_ntproc after all the other bookkeeping, to get timers working
5695 as long as possible.
5696
82ef37c1
PE
56972012-10-01 Paul Eggert <eggert@cs.ucla.edu>
5698
b3a4c387
PE
5699 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
5700 Suggested by Juri Linkov in
5701 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
5702
b0ab8123
PE
5703 Prefer plain 'static' to 'static inline' (Bug#12541).
5704 With static functions, modern compilers inline pretty well by
5705 themselves; advice from programmers often hurts as much as it helps.
5706 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
5707 this change shrinks the text size of the Emacs executable by 1.1%
5708 without affecting CPU significantly in my benchmark.
5709 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
5710 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
5711 (mark_maybe_object, mark_maybe_pointer, bounded_number):
5712 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
5713 (bset_auto_fill_function, bset_auto_save_file_format)
5714 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
5715 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
5716 (bset_cache_long_line_scans, bset_case_fold_search)
5717 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
5718 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
5719 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
5720 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
5721 (bset_header_line_format, bset_indicate_buffer_boundaries)
5722 (bset_indicate_empty_lines, bset_invisibility_spec)
5723 (bset_left_fringe_width, bset_major_mode, bset_mark)
5724 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
5725 (bset_name, bset_overwrite_mode, bset_pt_marker)
5726 (bset_right_fringe_width, bset_save_length)
5727 (bset_scroll_bar_width, bset_scroll_down_aggressively)
5728 (bset_scroll_up_aggressively, bset_selective_display)
5729 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
5730 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
5731 (set_buffer_overlays_after):
5732 * category.c (bset_category_table):
5733 * charset.c (read_hex):
5734 * coding.c (produce_composition, produce_charset)
5735 (handle_composition_annotation, handle_charset_annotation)
5736 (char_encodable_p):
5737 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
5738 (assign_row, set_frame_matrix_frame, make_current)
5739 (add_row_entry):
5740 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
5741 * fns.c (maybe_resize_hash_table):
5742 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
5743 * gmalloc.c (register_heapinfo):
5744 * image.c (lookup_image_type):
5745 * intervals.c (set_interval_object, set_interval_left)
5746 (set_interval_right, copy_interval_parent, rotate_right)
5747 (rotate_left, balance_possible_root_interval):
5748 * keyboard.c (kset_echo_string, kset_kbd_queue)
5749 (kset_keyboard_translate_table, kset_last_prefix_arg)
5750 (kset_last_repeatable_command, kset_local_function_key_map)
5751 (kset_overriding_terminal_local_map, kset_real_last_command)
5752 (kset_system_key_syms, clear_event, set_prop):
5753 * lread.c (digit_to_number):
5754 * marker.c (attach_marker, live_buffer, set_marker_internal):
5755 * nsterm.m (ns_compute_glyph_string_overhangs):
5756 * process.c (pset_buffer, pset_command)
5757 (pset_decode_coding_system, pset_decoding_buf)
5758 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
5759 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
5760 (pset_status, pset_tty_name, pset_type, pset_write_queue):
5761 * syntax.c (bset_syntax_table, dec_bytepos):
5762 * terminal.c (tset_param_alist):
5763 * textprop.c (interval_has_some_properties)
5764 (interval_has_some_properties_list):
5765 * window.c (wset_combination_limit, wset_dedicated)
5766 (wset_display_table, wset_hchild, wset_left_fringe_width)
5767 (wset_left_margin_cols, wset_new_normal, wset_new_total)
5768 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
5769 (wset_right_fringe_width, wset_right_margin_cols)
5770 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
5771 (wset_vertical_scroll_bar_type, wset_window_parameters):
5772 * xdisp.c (wset_base_line_number, wset_base_line_pos)
5773 (wset_column_number_displayed, wset_region_showing)
5774 (window_box_edges, run_window_scroll_functions)
5775 (append_glyph_string_lists, prepend_glyph_string_lists)
5776 (append_glyph_string, set_glyph_string_background_width)
5777 (append_glyph, append_composite_glyph)
5778 (take_vertical_position_into_account):
5779 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
5780 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
5781 (lface_hash, lface_same_font_attributes_p, lookup_face):
5782 * xml.c (libxml2_loaded_p):
5783 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
5784 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
5785 Now 'static', not 'static inline'.
5786
05584c31
PE
5787 * bidi.c: Tune.
5788 (bidi_copy_it): Do the whole copy with a single memcpy.
5789 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
5790
86ec63ba
PE
5791 Revert the FOLLOW-SYMLINKS change for file-attributes.
5792 Doing it right would require several changes to Tramp, and there's
5793 not enough time to get that tested before the freeze today.
5794 * dired.c (directory_files_internal, Ffile_attributes):
5795 Undo last change.
5796
82ef37c1
PE
5797 * frame.c (x_report_frame_params): Port better to wider ints.
5798 Do not assume that EMACS_UINT is the same width as uprintmax_t,
5799 or that pointers can be printed in 15 decimal digits.
5800 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
5801
62aba0d4
FP
58022012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
5803
5804 Support x64 build on MS-Windows.
5805 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
5806 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
5807 compatibility with x64.
5e4daaf3 5808 (x_get_focus_frame): Add prototype.
62aba0d4
FP
5809
5810 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
5811 defining an XRectangle structure.
5812
5813 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
5814 arithmetics for compatibility with x64.
5815
5816 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
5817 compatibility with x64.
5818
5819 * w32heap.h: Adjust prototypes and declarations.
5820
5821 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
5822 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
5823 DWORD, long, and unsigned long, for compatibility with x64.
5824 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
5825 (sbrk): Argument is now of type ptrdiff_t.
5826
5827 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
5828 less than 0x0500.
5829 (w32_msg_pump): Use WPARAM type for 'result'.
5830
5831 * w32.c (init_environment, get_emacs_configuration): Support AMD64
5832 architecture.
5833 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
5834 compatibility with x64.
5835
5836 * vm-limit.c (lim_data): Now size_t.
5837 (check_memory_limits): Adjust prototypes of real_morecore and
5838 __morecore to receive argument of type ptrdiff_t. Use size_t for
5839 five_percent and data_size.
5840
5841 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
5842 variables, for compatibility with x64.
5843 (rva_to_section, offset_to_section, relocate_offset)
5844 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
5845 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
5846 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
5847 for compatibility with x64.
5848
5849 * sysdep.c (STDERR_FILENO): Define if not already defined.
5850
5851 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
5852 (__morecore): Argument type is now ptrdiff_t.
5853 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
5854 (relinquish): Use ptrdiff_t type for 'excess'.
5855 (r_alloc_sbrk): Argument type is now ptrdiff_t.
5856
5857 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
5858 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
5859 instead of a literal number.
5860
5861 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
5862 (min): Define only if not already defined.
5863
5864 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
5865 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
5866 hosts.
5867
5868 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
5869 'bitmaps' is a pointer.
5870
5871 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
5872
5873 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
5874
e7a2937b
PE
58752012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5876
5877 file-attributes has a new optional arg FOLLOW-SYMLINKS.
5878 * dired.c (directory_files_internal, Ffile_attributes):
5879 New arg follow_symlinks. All uses changed.
5880
b43d62ae
SM
58812012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
5882
5883 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
5884
c06c382a
EZ
58852012-09-30 Eli Zaretskii <eliz@gnu.org>
5886
5887 Support atimers and CPU profiler via profile.c on MS-Windows.
5888 * w32proc.c (sig_mask, crit_sig): New static variables.
5889 (sys_signal): Support SIGALRM and SIGPROF.
5890 (sigemptyset, sigaddset, sigfillset, sigprocmask)
b43d62ae 5891 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
c06c382a
EZ
5892 sigfillset, and sigprocmask are no longer no-ops.
5893 (sigismember): New function.
5894 (struct itimer_data): New definition.
5895 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
5896 (crit_prof): New static variables.
5897 (MAX_SINGLE_SLEEP): New definition.
5898 (timer_loop, stop_timer_thread, term_timers, init_timers)
5899 (start_timer_thread, getitimer, setitimer): New functions.
5900 (alarm): No longer a no-op, calls setitimer.
5901
5902 * w32.c (term_ntproc): Call term_timers.
5903 (init_ntproc): Make sure all signals are unblocked at startup, to
5904 erase any traces of dumping. Call init_timers.
5905
5906 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
5907 Windows-specific code to display the hourglass mouse pointer is no
5908 longer used.
5909 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
5910 to hourglass timer expiration.
5911 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
5912 Remove, no longer used.
b43d62ae
SM
5913 (w32_note_current_window, show_hourglass, hide_hourglass):
5914 New functions, in support of hourglass cursor display similar to other
c06c382a
EZ
5915 window systems.
5916 (syms_of_w32fns): Don't initialize hourglass_timer.
5917
5918 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
5919 WINDOWSNT as well.
5920 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
5921
5922 * w32.h (init_timers, term_timers): Add prototypes.
5923
95402d5f
KH
59242012-09-30 Kenichi Handa <handa@gnu.org>
5925
5926 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
5927 to the buffer relocation which may be caused by ccl_driver.
5928
dd946752
JD
59292012-09-30 Jan Djärv <jan.h.d@swipnet.se>
5930
d7e642cc
JD
5931 * xfns.c (Fx_file_dialog): Update comment.
5932
5933 * w32fns.c (Fx_file_dialog): Update comment.
5934
5935 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
5936 Initialize panel name field if OSX >= 10.6.
5937
5938 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
5939
dd946752
JD
5940 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
5941
5942 * nsterm.m (NEW_STYLE_FS): New define.
5943 (ns_fullscreen_hook, windowWillEnterFullScreen)
5944 (windowDidEnterFullScreen, windowWillExitFullScreen)
5945 (windowDidExitFullScreen, toggleFullScreen, handleFS)
5946 (setFSValue): New functions.
5947 (EmacsFSWindow): New implementation.
5948 (canBecomeKeyWindow): New function for EmacsFSWindow.
5949 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
5950 (dealloc): Release nonfs_window if in fullscreen.
5951 (updateFrameSize:): Call windowDidMove to update top/left.
5952 (windowWillResize:toSize:): Check if frame is still maximized.
5953 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
5954 next_maximized, maximized_width, maximized_height and nonfs_window.
5955 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
5956 tbar_height.
5957 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
1f9f395d 5958 fullscreen. Set maximized_width/height. Act on next_maximized.
dd946752
JD
5959
5960 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
5961 (EmacsView): Add variables for fullscreen.
5962 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
5963 (EmacsFSWindow): New interface for fullscreen.
5964
427730eb
JB
59652012-09-30 Juanma Barranquero <lekktu@gmail.com>
5966
5967 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
5968
48de8b12
CY
59692012-09-30 Chong Yidong <cyd@gnu.org>
5970
5971 * fns.c (Frandom): Doc fix.
5972
5938d519
MR
59732012-09-30 Martin Rudalics <rudalics@gmx.at>
5974
5975 * window.c (Vwindow_combination_limit): New default value.
5976 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
5977
cb5b0266
PE
59782012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5979
5980 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
5981 Suggested by Eli Zaretskii in
5982 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
5983
84f72efd
EZ
59842012-09-30 Eli Zaretskii <eliz@gnu.org>
5985
5986 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
5987 HAVE_TIMER_SETTIME is defined.
5988
9d4dcdc9
PE
59892012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5990
d89460ed
PE
5991 Profiler improvements: more-accurate timers, overflow checks.
5992 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
5993 signal.h, setjmp.h. Include systime.h instead.
5994 (saturated_add): New function.
5995 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
5996 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
5997 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
5998 New static vars.
84f72efd 5999 (enum profiler_cpu_running): New enum.
d89460ed
PE
6000 (profiler_cpu_running): Now of that enum type, not bool.
6001 All uses changed to store the new value.
6002 (handle_profiler_signal): Rename from sigprof_handler_1,
6003 for consistency with other handlers. Do not check whether
6004 cpu_log is a hash-table if garbage collecting, since it
6005 doesn't matter in that case.
6006 (deliver_profiler_signal): Rename from sigprof_handler,
6007 for consistency with other handlers.
6008 (setup_cpu_timer): New function, with much of what used to be in
6009 Fprofiler_cpu_start. Check for out-of-range argument.
6010 Prefer timer_settime if available, and prefer
6011 thread cputime clocks, then process cputime clocks, then
6012 monotonic clocks, to the old realtime clock. Use make_timeval
6013 to round more-correctly when falling back to setitimer.
6014 (Fprofiler_cpu_start): Use it.
6015 (Fprofiler_cpu_stop): Prefer timer_settime if available.
6016 Don't assume that passing NULL as the 2nd argument of setitimer
6017 is the same as passing a pointer to all-zero storage.
6018 Ignore SIGPROF afterwards.
6019 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
6020 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
6021 non-fatal signal handlers. Ignore SIGPROF on startup.
6022 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
6023 in profiler.c, since sysdep.c now uses it.
6024
9d4dcdc9
PE
6025 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
6026 Suggested by Eli Zaretskii in
6027 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
6028
8e5691a0
JB
60292012-09-29 Juanma Barranquero <lekktu@gmail.com>
6030
6031 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
6032
e7c1b6ef
SM
60332012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
6034
6035 * lisp.h (struct backtrace): Remove indirection for `function' field.
6036 * xdisp.c (redisplay_internal):
6037 * profiler.c (record_backtrace, sigprof_handler_1):
6038 * alloc.c (Fgarbage_collect):
6039 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
6040 (Fbacktrace_frame): Adjust accordingly.
6041
e61d39cd 60422012-09-28 Glenn Morris <rgm@gnu.org>
d393cefb
GM
6043
6044 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
6045 (Frun_hook_with_args_until_failure): Doc fixes.
6046
404043ea
EZ
60472012-09-28 Eli Zaretskii <eliz@gnu.org>
6048
6049 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
6050 Qautomatic_redisplay and change the symbol name. All users changed.
6051
704d3f45
TM
60522012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
6053
6054 * profiler.c (sigprof_handler): Fix race condition.
6055
757140ff
GM
60562012-09-28 Glenn Morris <rgm@gnu.org>
6057
6058 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
6059
a615a3ae
PE
60602012-09-27 Paul Eggert <eggert@cs.ucla.edu>
6061
6062 Check more robustly for timer_settime.
89d17fd0
PE
6063 * Makefile.in (LIB_TIMER_TIME): New macro.
6064 (LIBES): Add it.
a615a3ae
PE
6065 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
6066 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
6067 call timer_settime.
6068
3670daf7
TM
60692012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
6070
6071 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
6072
6a586b7f
JB
60732012-09-26 Juanma Barranquero <lekktu@gmail.com>
6074
6075 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
6076
41c8bfcf
PE
60772012-09-26 Paul Eggert <eggert@cs.ucla.edu>
6078
6079 * character.h (MAYBE_UNIFY_CHAR): Remove.
6080 * charset.c, charset.h (maybe_unify_char): Now static.
6081 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
6082 Since this stuff is now private to charset.c, there's no need for
6083 a public macro and no need to inline by hand.
6084
3a880af4 60852012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
908589fd
AS
6086 Stefan Monnier <monnier@iro.umontreal.ca>
6087 Juanma Barranquero <lekktu@gmail.com>
611b7507 6088
3a880af4
SM
6089 * profiler.c: New file.
6090 * Makefile.in (base_obj): Add profiler.o.
611b7507
JB
6091 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
6092 ($(BLD)/profiler.$(O)): New target.
3a880af4
SM
6093 * emacs.c (main): Call syms_of_profiler.
6094 * alloc.c (Qautomatic_gc): New constant.
6095 (MALLOC_PROBE): New macro.
6096 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
6097 (total_bytes_of_live_objects): New function.
6098 (Fgarbage_collect): Use it. Record itself in backtrace_list.
6099 Call malloc_probe for the memory profiler.
6100 (syms_of_alloc): Define Qautomatic_gc.
6101 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
6102 race condition.
6103 (struct backtrace): Move definition...
6104 * lisp.h (struct backtrace): ..here.
6105 (Qautomatic_gc, profiler_memory_running): Declare vars.
6106 (malloc_probe, syms_of_profiler): Declare functions.
6107 * xdisp.c (Qautomatic_redisplay): New constant.
6108 (redisplay_internal): Record itself in backtrace_list.
6109 (syms_of_xdisp): Define Qautomatic_redisplay.
611b7507 6110
5938d519 61112012-09-25 Eli Zaretskii <eliz@gnu.org>
b67238c2
JB
61122012-09-25 Juanma Barranquero <lekktu@gmail.com>
6113
6114 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
6115
e26fd2e4
PE
61162012-09-25 Paul Eggert <eggert@cs.ucla.edu>
6117
6118 Prefer POSIX timers if available.
6119 They avoid a race if the timer is too close to the current time.
6120 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
6121 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
9180598c 6122 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
e26fd2e4 6123
eedec3ee
EZ
61242012-09-25 Eli Zaretskii <eliz@gnu.org>
6125
6126 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
6127 CHAR_STRING_ADVANCE.
6128 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
6129 STRING_CHAR_ADVANCE.
6130
aa15c6bb
JB
61312012-09-25 Juanma Barranquero <lekktu@gmail.com>
6132
6133 Move Vlibrary_cache to emacs.c and reset before dumping.
6134
6135 * lisp.h (reset_image_types): Declare.
6136 [WINDOWSNT] (Vlibrary_cache): Declare.
6137
6138 * image.c (reset_image_types): New function.
6139
6140 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
6141 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
6142 (Fdump_emacs): Reset Vlibrary_cache and image_types.
6143
6144 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
6145 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
6146
6147 * w32.h (Vlibrary_cache): Do not declare.
6148
54d629be
EZ
61492012-09-25 Eli Zaretskii <eliz@gnu.org>
6150
16b22fef
EZ
6151 * w32proc.c (sys_signal): Handle all signals defined by the
6152 MS-Windows runtime, not just SIGCHLD. Actually install the signal
6153 handlers for signals supported by Windows. Don't override
6154 term_ntproc as the handler for SIGABRT.
6155 (sigaction): Rewrite to call sys_signal instead of duplicating its
6156 code.
6157 (sys_kill): Improve commentary.
6158
6159 * w32.c (term_ntproc): Accept (and ignore) one argument, for
6160 consistency with a signature of a signal handler. All callers
6161 changed.
6162 (init_ntproc): Accept an argument DUMPING. If dumping, don't
6163 install term_ntproc as a signal handler for SIGABRT, as that
6164 should be done by the dumped Emacs.
6165
6166 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
6167
6168 * w32select.c (term_w32select): Protect against repeated
6169 invocation by setting clipboard_owner to NULL after calling
6170 DestroyWindow.
6171
6172 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
6173 and term_ntproc to their modified signatures.
6174
54d629be
EZ
6175 * character.c (char_string, string_char): Remove calls to
6176 MAYBE_UNIFY_CHAR. See the discussion starting at
6177 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
6178 for the details.
6179
59f7af81
CY
61802012-09-25 Chong Yidong <cyd@gnu.org>
6181
6182 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
6183
22e8cf4a
SM
61842012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
6185
6186 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
6187 when encountering an unknown bytecode.
6188
578098f3
PE
61892012-09-24 Paul Eggert <eggert@cs.ucla.edu>
6190
6191 image.c, indent.c: Use bool for booleans.
6192 * dispextern.h (struct image_type): Members valid_p, load, init
6193 now return bool, not int. All uses changed.
6194 * image.c: Omit unnecessary static decls.
6195 (x_create_bitmap_mask, x_build_heuristic_mask):
6196 Return void, not int, since callers don't care about the return value.
6197 (x_create_bitmap_mask, define_image_type, valid_image_p)
6198 (struct image_keyword, parse_image_spec, image_spec_value)
6199 (check_image_size, image_background)
6200 (image_background_transparent, x_clear_image_1)
6201 (postprocess_image, lookup_image, x_check_image_size)
6202 (x_create_x_image_and_pixmap, xbm_image_p)
6203 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
6204 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
6205 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
6206 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
6207 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
6208 (png_image_p, init_png_functions, png_load_body, png_load)
6209 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
6210 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
6211 (init_gif_functions, gif_load, imagemagick_image_p)
6212 (imagemagick_load_image, imagemagick_load, svg_image_p)
6213 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
6214 (gs_load):
6215 * nsimage.m (ns_load_image):
6216 * nsterm.m (ns_defined_color):
6217 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
6218 * xfns.c (x_defined_color):
6219 * xterm.c (x_alloc_lighter_color_for_widget)
6220 (x_alloc_nearest_color_1, x_alloc_nearest_color)
6221 (x_alloc_lighter_color):
6222 * indent.c (disptab_matches_widthtab, current_column)
6223 (scan_for_column, string_display_width, indented_beyond_p)
6224 (compute_motion, vmotion, Fvertical_motion):
6225 Use bool for booleans.
6226
a5f2b6ec
CY
62272012-09-24 Chong Yidong <cyd@gnu.org>
6228
6229 * chartab.c (Fset_char_table_default): Obsolete function removed.
6230
18e27ea8
PE
62312012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6232
afea8a8a
PE
6233 Move pid_t related decls out of lisp.h.
6234 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
6235 (interruptible_wait_for_termination):
6236 Move these decls from lisp.h to syswait.h, since they use pid_t.
6237 Needed on FreeBSD; see Herbert J. Skuhra in
6238 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
6239 * callproc.c: Include syswait.h.
6240
18e27ea8
PE
6241 gnutls.c, gtkutil.c: Use bool for boolean.
6242 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
6243 (emacs_gnutls_handle_error):
6244 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
6245 (xg_hide_tooltip, xg_create_frame_widgets)
6246 (create_dialog, xg_uses_old_file_dialog)
6247 (xg_get_file_with_chooser, xg_get_file_with_selection)
6248 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
6249 (xg_item_label_same_p, xg_update_menubar)
6250 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
6251 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
6252 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
6253 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
6254 (update_frame_tool_bar, free_frame_tool_bar):
6255 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
6256 * nsmenu.m (ns_update_menubar):
6257 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
6258 * xfns.c (Fx_show_tip) [USE_GTK]:
6259 Use bool for boolean.
6260 * gtkutil.c (xg_update_frame_menubar):
6261 * xmenu.c (update_frame_menubar):
6262 Return void, not int, since caller ignores return value.
6263 * gtkutil.c (xg_change_toolbar_position):
6264 Return void, not 1.
6265
af0e9f75
JB
62662012-09-23 Juanma Barranquero <lekktu@gmail.com>
6267
6268 * makefile.w32-in (BLOCKINPUT_H): Remove.
6269 (SYSSIGNAL_H): New macro.
6270 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
6271 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
6272 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
6273 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
6274 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
6275 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
6276 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
6277 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
6278 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
6279 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
6280 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
6281 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
6282 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
6283 ($(BLD)/w32xfns.$(O)): Update dependencies.
6284
5101529e
EZ
62852012-09-23 Eli Zaretskii <eliz@gnu.org>
6286
6287 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
6288 fatal_error_backtrace.
6289
6290 * w32proc.c (sys_kill): Undo last change: don't do anything when
6291 invoked to deliver SIGABRT to our own process. This is now
6292 handled by emacs_raise.
6293
2c3ee0ad
JB
62942012-09-23 Juanma Barranquero <lekktu@gmail.com>
6295
6296 * w32term.c (w32_read_socket): Remove leftover reference to
6297 interrupt_input_pending.
6298
62a1d661
PE
62992012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6300
6301 Do not use SA_NODEFER.
6302 Problem reported by Dani Moncayo in
6303 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
6304 * alloc.c (die):
6305 * sysdep.c (emacs_abort): Do not reset signal handler.
6306 * emacs.c (terminate_due_to_signal): Reset signal handler here.
6307 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
6308 wanted even on POSIXish hosts, and it doesn't work on Windows.
6309
a0942b9a
JD
63102012-09-23 Jan Djärv <jan.h.d@swipnet.se>
6311
6312 * xterm.c (x_term_init): Call fixup_locale before and after calling
6313 gtk_init (Bug#12392).
6314
d07ff9db
CY
63152012-09-23 Chong Yidong <cyd@gnu.org>
6316
6317 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
6318 Vdynamic_library_alist.
6319
6320 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
6321 (Fgnutls_available_p): Caller changed.
6322
6323 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
6324 (Flibxml_parse_xml_region): Likewise.
6325
6326 * dispextern.h (struct image_type): Remove arg from init function.
6327
6328 * image.c (Finit_image_library, lookup_image_type)
6329 (define_image_type): Remove now-unneeded second arg.
6330 (init_xpm_functions, init_png_functions, init_jpeg_functions)
6331 (init_tiff_functions, init_gif_functions, init_svg_functions):
6332 Arglist and w32_delayed_load calling convention changed.
6333 (gs_type): Remove init_gs_functions; there is no such function.
641cfd14 6334 (valid_image_p, make_image): Fix caller to lookup_image_type.
d07ff9db 6335
4d7e6e51
PE
63362012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6337
6338 Simplify and avoid signal-handling races (Bug#12471).
6339 * alloc.c (die):
6340 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
6341 Avoid recursive loop if there's a fatal error in the function itself.
6342 * atimer.c (pending_atimers):
6343 * blockinput.h: Don't include "atimer.h"; no longer needed.
6344 (interrupt_input_pending): Remove. All uses removed.
6345 pending_signals now counts both atimers and ordinary interrupts.
6346 This is less racy than having three separate pending-signal flags.
6347 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
6348 (input_blocked_p):
6349 Rename from their upper-case counterparts BLOCK_INPUT,
6350 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
6351 INPUT_BLOCKED_P, and turn into functions. All uses changed.
6352 This makes it easier to access volatile variables more accurately.
6353 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
6354 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
6355 that's more reliable if the code is buggy and sets
6356 interrupt_input_blocked to a negative value. All uses changed.
6357 * atimer.c (deliver_alarm_signal):
6358 Remove. No need to deliver this to the parent; any thread can
6359 handle this signal now. All uses replaced by underlying handler.
6360 * atimer.c (turn_on_atimers):
6361 * dispnew.c (handle_window_change_signal):
6362 * emacs.c (handle_danger_signal):
6363 * keyboard.c (kbd_buffer_get_event):
6364 Don't reestablish signal handler; not needed with sigaction.
6365 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
6366 (UNBLOCK_INPUT_TO):
6367 Rework to avoid unnecessary accesses to volatile variables.
6368 (UNBLOCK_INPUT_TO): Now a function.
6369 (totally_unblock_input, unblock_input): New decls.
6370 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
6371 (init_data): Remove. Necessary stuff now done in init_signal.
6372 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
6373 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
6374 (fatal_error_code): Remove; no longer needed.
6375 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
6376 it doesn't always backtrace. All uses changed. No need to reset
6377 signal to default, since sigaction and/or die does that for us now.
6378 Use emacs_raise (FOO), not kill (getpid (), FOO).
6379 (main): Check more-accurately whether we're dumping.
6380 Move fatal-error setup to sysdep.c
6381 * floatfns.c: Do not include "syssignal.h"; no longer needed.
6382 * gtkutil.c (xg_get_file_name, xg_get_font):
6383 Remove no-longer-needed signal-mask manipulation.
6384 * keyboard.c, process.c (POLL_FOR_INPUT):
6385 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
6386 * keyboard.c (read_avail_input): Remove.
6387 All uses replaced by gobble_input.
6388 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
6389 (kbd_buffer_store_event_hold, gobble_input):
6390 (record_asynch_buffer_change) [USABLE_SIGIO]:
6391 (store_user_signal_events):
6392 No need to mess with signal mask.
6393 (gobble_input): If blocking input and there are terminals, simply
6394 set pending_signals to 1 and return. All hooks changed to not
6395 worry about whether input is blocked.
6396 (process_pending_signals): Clear pending_signals before processing
6397 them, in case a signal comes in while we're processing.
6398 By convention callers now test pending_signals before calling us.
6399 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
6400 New functions, to support changes to blockinput.h.
6401 (handle_input_available_signal): Now extern.
6402 (reinvoke_input_signal): Remove. All uses replaced by
6403 handle_async_input.
6404 (quit_count): Now volatile, since a signal handler uses it.
3a880af4
SM
6405 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
6406 All callers changed. Block SIGINT only if not already blocked.
4d7e6e51
PE
6407 Clear sigmask reliably, even if Fsignal returns, which it can.
6408 Omit unnecessary accesses to volatile var.
6409 (quit_throw_to_read_char): No need to restore sigmask.
6410 * keyboard.c (gobble_input, handle_user_signal):
6411 * process.c (wait_reading_process_output):
6412 Call signal-handling code rather than killing ourselves.
6413 * lisp.h: Include <float.h>, for...
6414 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
6415 (pending_signals): Now volatile.
6416 (syms_of_data): Now const if IEEE floating point.
6417 (handle_input_available_signal) [USABLE_SIGIO]:
6418 (terminate_due_to_signal, record_child_status_change): New decls.
6419 * process.c (create_process): Avoid disaster if memory is exhausted
6420 while we're processing a vfork, by tightening the critical section
6421 around the vfork.
6422 (send_process_frame, process_sent_to, handle_pipe_signal)
6423 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
6424 ignores SIGPIPE.
6425 (send_process): No need for setjmp/longjmp any more, since the
6426 SIGPIPE stuff is now gone. Instead, report an error if errno
6427 is EPIPE.
6428 (record_child_status_change): Now extern. PID and W are now args.
6429 Return void, not bool. All callers changed.
6430 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
6431 Remove. All uses removed. This bug should be fixed now in a
6432 different way.
6433 (wait_for_termination_1): Use waitpid rather than sigsuspend,
6434 and record the child status change directly. This avoids the
6435 need to futz with the signal mask.
6436 (process_fatal_action): Move here from emacs.c.
6437 (emacs_sigaction_flags): New function, containing
6438 much of what used to be in emacs_sigaction_init.
6439 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
6440 caught by emacs, to make races less likely.
6441 (deliver_process_signal): Rename from handle_on_main_thread.
6442 All uses changed.
6443 (BACKTRACE_LIMIT_MAX): Now at top level.
6444 (thread_backtrace_buffer, threadback_backtrace_pointers):
6445 New static vars.
6446 (deliver_thread_signal, deliver_fatal_thread_signal):
6447 New functions, for more-accurate delivery of thread-specific signals.
6448 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
6449 (deliver_arith_signal): Handle in this thread, not
6450 in the main thread, since it's triggered by this thread.
6451 (maybe_fatal_sig): New function.
6452 (init_signals): New arg DUMPING so that we can be more accurate
6453 about whether we're dumping. Caller changed.
6454 Treat thread-specific signals differently from process-general signals.
6455 Block all signals while handling fatal error; that's safer.
6456 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
6457 on IEEE hosts.
6458 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
6459 Ignore SIGPIPE unless batch.
6460 (emacs_backtrace): Output backtrace for the appropriate thread,
6461 which is not necessarily the main thread.
6462 * syssignal.h: Include <stdbool.h>.
6463 (emacs_raise): New macro.
6464 * xterm.c (x_connection_signal): Remove; no longer needed
6465 now that we use sigaction.
6466 (x_connection_closed): No need to mess with sigmask now.
6467 (x_initialize): No need to reset SIGPIPE handler here, since
6468 init_signals does this for us now.
6469
8f4635e9
JD
64702012-09-23 Jan Djärv <jan.h.d@swipnet.se>
6471
6472 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
fb39b937 6473 background rect may be larger (Bug#12245).
8f4635e9 6474
3296976d
CY
64752012-09-23 Chong Yidong <cyd@gnu.org>
6476
6477 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
6478
d41e491e
PE
64792012-09-22 Paul Eggert <eggert@cs.ucla.edu>
6480
6481 * .gdbinit: Just stop at fatal_error_backtrace.
6482 See Stefan Monnier's request in
6483 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
6484 Remove no-longer-used query of system type.
6485
c88b867f
CY
64862012-09-22 Chong Yidong <cyd@gnu.org>
6487
6488 * search.c (Freplace_match): Doc fix (Bug#12325).
6489
6490 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
6491
6492 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
6493 (Fline_end_position): Doc fix.
6494
6495 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
6496
bb4d86b4
CY
64972012-09-22 Chong Yidong <cyd@gnu.org>
6498
6499 * dispextern.h (struct image_type): Add new slot, storing a type
6500 initialization function.
6501
6502 * image.c (define_image_type): Call the image initializer function
6503 if it is defined. Arguments and return value changed.
6504 (valid_image_p, make_image): Callers changed.
6505 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
3a880af4
SM
6506 (gif_type, imagemagick_type, svg_type, gs_type):
6507 Add initialization functions.
bb4d86b4
CY
6508 (Finit_image_library): Call lookup_image_type.
6509 (CHECK_LIB_AVAILABLE): Macro deleted.
6510 (lookup_image_type): Call define_image_type here, rather than via
6511 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
6512 (syms_of_image): Move define_image_type calls for xbm_type and
6513 pbm_type to lookup_image_type.
6514
df9685f3
EZ
65152012-09-22 Eli Zaretskii <eliz@gnu.org>
6516
6517 * keyboard.c (timer_check_2): Move calculation of 'timers' and
6518 'idle_timers' from here ...
6519 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
6520 lists, to avoid infloops when the timer does something stupid,
6521 like reinvoke itself with the same or smaller time-out.
6522 (Bug#12447)
6523
8e17c9ba
MR
65242012-09-22 Martin Rudalics <rudalics@gmx.at>
6525
6526 * window.c (Fsplit_window_internal): Handle only Qt value of
6527 Vwindow_combination_limit separately.
6528 (Qtemp_buffer_resize): New symbol.
3a880af4
SM
6529 (Vwindow_combination_limit): New default value.
6530 Rewrite doc-string.
8e17c9ba 6531
589bd69b
EZ
65322012-09-22 Eli Zaretskii <eliz@gnu.org>
6533
6534 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
6535 the new overlay string. (Bug#10159)
6536
01108e3f
PE
65372012-09-22 Paul Eggert <eggert@cs.ucla.edu>
6538
6539 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
6540 or that fprintf is async-signal-safe. POSIX doesn't require
6541 either assumption.
6542
82f8cd94
CY
65432012-09-22 Chong Yidong <cyd@gnu.org>
6544
6545 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
6546 (Bug#8207).
6547
3cccbd87
KH
65482012-09-22 Kenichi Handa <handa@gnu.org>
6549
6550 * composite.c (composition_reseat_it): Handle the case that a
6551 grapheme cluster is not covered by a single font (Bug#12352).
6552
09c01941
CY
65532012-09-21 Chong Yidong <cyd@gnu.org>
6554
6555 * image.c (define_image_type): Avoid adding duplicate types to
6556 image_types (Bug#12463). Suggested by Jörg Walter.
6557
acfa068f 65582012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
e25c1a30
YM
6559
6560 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
6561 (print_load_command_name): Add case LC_DATA_IN_CODE.
6562 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
6563
acfa068f 65642012-09-21 Glenn Morris <rgm@gnu.org>
1e9bbf47
GM
6565
6566 * eval.c (Frun_hook_with_args_until_success)
6567 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
6568
acfa068f 65692012-09-21 Andreas Schwab <schwab@linux-m68k.org>
c6ba4138
AS
6570
6571 * fileio.c (Ffile_selinux_context): Only call freecon when
6572 lgetfilecon succeeded.
6573 (Fset_file_selinux_context): Likewise. (Bug#12444)
6574
acfa068f 65752012-09-21 Eli Zaretskii <eliz@gnu.org>
aa36e4d2
EZ
6576
6577 * xdisp.c (try_window_reusing_current_matrix): Under bidi
6578 reordering, locate the cursor by calling set_cursor_from_row; if
6579 that fails, clear the desired glyph matrix before returning a
6580 failure indication to the caller. Fixes leaving garbled display
6581 when fast scrolling with a down-key. (Bug#12403)
f2016bea
EZ
6582 (compute_stop_pos_backwards): Fix a typo that caused crashes while
6583 scrolling through multibyte text.
aa36e4d2 6584
e99f70c8
SM
65852012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
6586
6587 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
6588 calling mark_vectorlike since that's the one that marks the window.
6589 (mark_discard_killed_buffers): Mark the final cdr.
6590 * window.h (struct window): Move prev/next_buffers to the
6591 non-standard fields.
6592 * window.c (make_window): Initialize prev/next_buffers manually.
6593
f75beb47
PE
65942012-09-20 Paul Eggert <eggert@cs.ucla.edu>
6595
6596 Omit unused arg EXPECTED from socket hooks.
6597 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
6598 * nsterm.m (ns_term_init):
6599 * termhooks.h (struct terminal.read_socket_hook):
6600 * w32inevt.c (w32_console_read_socket):
6601 * w32term.c (w32_read_socket):
6602 * xterm.c (XTread_socket):
6603 Omit unused arg EXPECTED. All callers changed.
6604 (store_user_signal_events): Return void, not int, since callers no
6605 longer care about the return value. All uses changed.
6606
b019b76a
JB
66072012-09-20 Juanma Barranquero <lekktu@gmail.com>
6608
6609 * w32gui.h (XParseGeometry): Do not declare.
6610
05642592
PE
66112012-09-19 Paul Eggert <eggert@cs.ucla.edu>
6612
e4bce92a 6613 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
1f9f395d 6614 Ignore 'expected'. See Eli Zaretskii in
e4bce92a
PE
6615 <http://bugs.gnu.org/12471#8> (last line).
6616
05642592
PE
6617 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
6618 (XParseGeometry): Now static. Substitute extremal values for
6619 values that are out of range.
6620
e543ae91
JD
66212012-09-19 Jan Djärv <jan.h.d@swipnet.se>
6622
6623 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
6624
6625 * nsfns.m (XParseGeometry): Remove.
6626 (Fx_create_frame): Call x_set_offset to correctly interpret
6627 top_pos in geometry.
6628
3a880af4 6629 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
e543ae91
JD
6630 (Fx_parse_geometry): If there is a space in string, call
6631 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
6632
45ba16c7
EZ
66332012-09-17 Eli Zaretskii <eliz@gnu.org>
6634
c8b9f1bc
EZ
6635 * search.c (scan_buffer): Use character positions in calls to
6636 region_cache_forward and region_cache_backward, not byte
6637 positions. (Bug#12196)
6638
b4c932a2
EZ
6639 * w32term.c (w32_read_socket): Set pending_signals to 1, like
6640 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
6641
45ba16c7
EZ
6642 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
6643 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
6644 emacs_blocked_malloc, now deleted.
6645
eeceac93
PE
66462012-09-17 Paul Eggert <eggert@cs.ucla.edu>
6647
6648 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
6649 The workaround was for improving performance on Solaris 2.4, but
6650 is getting in the way now. Emacs will still work if someone is
6651 still running Solaris 2.4 in a museum somewhere; Sun dropped
6652 support for Solaris 2.4 in 2003.
6653 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
6654 * process.c (create_process) [HAVE_WORKING_VFORK]:
6655 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
6656 since Emacs no longer uses vfork on that platform.
6657
78f83752
GM
66582012-09-17 Glenn Morris <rgm@gnu.org>
6659
6660 * emacs.c: Use COPYRIGHT.
6661
634b8cac
PE
66622012-09-16 Paul Eggert <eggert@cs.ucla.edu>
6663
0caaedb1
PE
6664 Remove configure's --without-sync-input option (Bug#12450).
6665 When auditing signal-handling in preparation for cleaning it up,
6666 I found that SYNC_INPUT has race conditions and would be a real
6667 pain to fix. Since it's an undocumented and deprecated
6668 configure-time option, now seems like a good time to remove it.
6669 Also see <http://bugs.gnu.org/11080#16>.
6670 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
6671 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
6672 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
6673 (malloc_hysteresis):
6674 (check_depth) [XMALLOC_OVERRUN_CHECK]:
6675 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
6676 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
6677 (dont_register_blocks, bytes_used_when_reconsidered)
6678 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
6679 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
6680 [!SYSTEM_MALLOC && !SYNC_INPUT]:
1f9f395d 6681 Remove. All uses removed.
0caaedb1
PE
6682 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
6683 implementation, one that depends on whether the new macro
6684 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
6685 is defined.
6686 * atimer.c (run_timers, handle_alarm_signal):
6687 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
6688 (handle_async_input, process_pending_signals)
6689 (handle_input_available_signal, init_keyboard):
6690 * nsterm.m (ns_read_socket):
6691 * process.c (wait_reading_process_output):
6692 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
6693 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
6694 (emacs_write):
6695 * xterm.c (XTread_socket):
6696 Assume SYNC_INPUT.
6697 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
6698 * eval.c (handling_signal): Remove. All uses removed.
6699 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
6700 All uses replaced with the SYNC_INPUT version.
6701 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
6702 Remove decls.
6703 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
6704 Now static.
6705
634b8cac
PE
6706 * font.c (Ffont_shape_gstring): Remove unused local.
6707
83da1b55
GM
67082012-09-16 Glenn Morris <rgm@gnu.org>
6709
518650a5
GM
6710 * Makefile.in (clean): No longer run nextstep's clean.
6711
83da1b55
GM
6712 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
6713 (ns_frag): Remove.
6714 (ns-app): Move here from ns.mk, and simplify.
6715 (clean): Simplify nextstep entry.
6716 * ns.mk: Remove file.
6717
85a43e2e
KH
67182012-09-17 Kenichi Handa <handa@gnu.org>
6719
6720 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
6721 not covert the last few charactes.
6722
ba13e616 67232012-09-16 Kenichi Handa <handa@gnu.org>
ea964864
KH
6724
6725 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
6726 here, but just check the validity of glyphs in the glyph-string.
6727
a8c729af
MR
67282012-09-16 Martin Rudalics <rudalics@gmx.at>
6729
3a880af4
SM
6730 * window.c (Fwindow_parameter, Fset_window_parameter):
6731 Accept any window as argument (Bug#12452).
a8c729af 6732
c077c059
JD
67332012-09-16 Jan Djärv <jan.h.d@swipnet.se>
6734
6735 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
6736 to ns_term_init to avoid memory leak.
6737
6738 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
6739 explicit retain/release.
6740 (ns_term_init): Only allow one display. Initialize outerpool and
6741 ns_*_types.
6742
39a57ad0
PE
67432012-09-15 Paul Eggert <eggert@cs.ucla.edu>
6744
6745 Port _setjmp fix to POSIXish hosts as well as Microsoft.
6746 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
6747 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
6748 the Microsoft problem in a different way, by altering ../nt/config.nt.
6749
7105c8cb
EZ
67502012-09-15 Eli Zaretskii <eliz@gnu.org>
6751
6752 * w32xfns.c:
6753 * w32uniscribe.c:
6754 * w32term.c:
6755 * w32select.c:
6756 * w32reg.c:
6757 * w32proc.c:
6758 * w32menu.c:
6759 * w32inevt.c:
6760 * w32heap.c:
6761 * w32font.c:
6762 * w32fns.c:
6763 * w32console.c:
6764 * w32.c:
6765 * w16select.c: Remove inclusion of setjmp.h, as it is now included
6766 by lisp.h. This completes removal of setjmp.h inclusion
6767 erroneously announced in the previous commit. (Bug#12446)
6768
6769 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
6770 more accurate.
6771
6772 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
6773 not defined as a macro. The latter happens on MS-Windows.
6774 (Bug#12446)
6775
0328b6de
PE
67762012-09-15 Paul Eggert <eggert@cs.ucla.edu>
6777
6778 Port better to POSIX hosts lacking _setjmp (Bug#12446).
6779 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
7105c8cb 6780 Some instances of '#include <setjmp.h>' removed, if the
0328b6de
PE
6781 only reason for the instance was because "lisp.h" was included.
6782 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
6783 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
6784 and _longjmp with the new symbols. Emacs already uses _setjmp if
6785 available, so this change affects only POSIXish hosts that have
6786 sigsetjmp but not _setjmp, such as some versions of Solaris and
6787 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
6788 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
6789 (png_load_body) [HAVE_PNG]:
6790 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
6791 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
6792 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
6793 since PNG requires jmp_buf. This is the only exception to the
6794 general rule that we now use sys_setjmp and sys_longjmp.
6795 This exception is OK since this code does not change the signal
6796 mask or longjmp out of a signal handler.
6797
2af03429
PE
67982012-09-14 Paul Eggert <eggert@cs.ucla.edu>
6799
6800 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
6801 Include "syssignal.h", for 'main_thread'.
6802
2f294edf
DA
68032012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
6804
6805 Avoid out-of-range marker position (Bug#12426).
3a880af4
SM
6806 * insdel.c (replace_range, replace_range_2):
6807 Adjust markers before overlays, as suggested by comments.
2f294edf
DA
6808 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
6809 Remove redundant check before calling offset_intervals.
6810
6b533e9c
MR
68112012-09-14 Martin Rudalics <rudalics@gmx.at>
6812
6813 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
6814 current buffer (Bug#12387).
6815
2a7931e3
JB
68162012-09-14 Juanma Barranquero <lekktu@gmail.com>
6817
6818 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
6819
c18e885b
PE
68202012-09-13 Paul Eggert <eggert@cs.ucla.edu>
6821
6822 Use a more backwards-compatible timer format (Bug#12430).
6823 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
6824 vector element, not from the 4th, since PSECS is now at the end.
6825 (Fcurrent_idle_time): Doc fix.
6826
d59a1afb
DA
68272012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
6828
6829 Function to mark objects and remove killed buffers at once.
6830 * alloc.c (discard_killed_buffers): Rename to ...
6831 (mark_discard_killed buffers) ... new name. Add marking
6832 of remaining objects. Fix comment. Adjust users.
6833 (mark_object): Do not touch frame buffer lists here.
6834 * frame.c (delete_frame): Reset frame buffer lists here.
6835
5f0cb45a
PE
68362012-09-13 Paul Eggert <eggert@cs.ucla.edu>
6837
8ea47e3a
PE
6838 Better workaround for GNOME bug when --enable-gcc-warnings.
6839 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
6840 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
6841 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
6842
4a4bbad2
PE
6843 Simplify SIGIO usage (Bug#12408).
6844 The code that dealt with SIGIO was crufty and confusing, e.g., it
6845 played tricks like "#undef SIGIO" but these tricks were not used
6846 consistently. Simplify mostly by not #undeffing standard symbols,
6847 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
6848 or not as we please) rather than "defined SIGIO" (standard symbol
6849 that we probably shouldn't #undef).
6850 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
6851 Modules that need it can include it.
6852 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
6853 * dispextern.h (ignore_sigio): New decl.
6854 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
6855 unconditionally, since it's now a no-op if !USABLE_SIGIO.
6856 * emacs.c (shut_down_emacs):
6857 * keyboard.c (kbd_buffer_store_event_hold):
6858 Use ignore_sigio rather than invoking 'signal' directly.
6859 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
6860 for FIONREAD.
6861 (FIONREAD, SIGIO): Do not #undef.
6862 (tty_read_avail_input): Use #error rather than a syntax error.
6863 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
6864 for I_PIPE, used by SETUP_SLAVE_PTY.
6865 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
6866 * sysdep.c (croak): Remove; no longer needed. This bit of
6867 temporary code, with Fred N. Fish's comment that it's temporary,
6868 has been in Emacs since at least 1992!
6869 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
6870 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
6871 * syssignal.h (croak): Remove decl.
6872 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
6873 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
6874 now that we're termios-only.
6875 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
6876 * term.c (dissociate_if_controlling_tty): Use #error rather than
6877 a run-time error.
6878
5f0cb45a
PE
6879 Work around GCC and GNOME bugs when --enable-gcc-warnings.
6880 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
6881 to work around GNOME bug 683906.
6882 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
6883 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
6884 This works around GCC bug 54561.
6885
40bce90b
PE
68862012-09-12 Paul Eggert <eggert@cs.ucla.edu>
6887
6888 More fixes for 'volatile' and setjmp/longjmp.
6889 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
6890 * image.c (struct png_load_context) [HAVE_PNG]: New type.
6891 (png_load_body) [HAVE_PNG]:
6892 (jpeg_load_body) [HAVE_JPEG]:
6893 New function, with most of the old parent function's body.
6894 (png_load) [HAVE_PNG]:
6895 (jpeg_load) [HAVE_JPEG]:
6896 Invoke the new function, to avoid longjmp munging our locals.
6897 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
6898 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
6899 longjmp is passed 2, as the C standard doesn't guarantee this.
6900 Instead, store the failure code into mgr->failure_code.
6901
bfeae2cf
SM
69022012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6903
6904 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
6905 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
6906 (syms_of_keyboard): Remove support for unread-command-char.
6907
8099e36b
EZ
69082012-09-12 Eli Zaretskii <eliz@gnu.org>
6909
6910 * w32proc.c (sys_kill): If PID is our process ID and the signal is
6911 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
6912 violation. (Bug#12426)
6913
92547ff9
PE
69142012-09-12 Paul Eggert <eggert@cs.ucla.edu>
6915
6916 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
6917
45b82ad0
SM
69182012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6919
6920 * eval.c: Add `inhibit-debugger'.
6921 (Qinhibit_debugger): New symbol.
6922 (call_debugger): Bind it instead of Qdebug_on_error.
6923 (maybe_call_debugger): Test Vinhibit_debugger.
6924 (syms_of_eval): Define inhibit-debugger.
6925 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
6926 (syms_of_xdisp): Remove inhibit-debug-on-message.
6927
5779a1dc
PE
69282012-09-11 Paul Eggert <eggert@cs.ucla.edu>
6929
50f2e553
PE
6930 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
6931 If a nonvolatile local variable is written before a _longjmp to
6932 the frame containing the variable, and is read after the _longjmp,
6933 the value read is indeterminate. Some local variables of type
6934 'struct handler' and 'struct catchtag' are used in this way, so
6935 mark each of their slots as volatile if the slot can be set before
6936 _longjmp and read afterwards.
6937 * lisp.h (struct handler): var and chosen_clause are now volatile.
6938 (struct catchtag): val, next, and pdlcount are now volatile.
6939
ae1d87e2
PE
6940 * bidi.c (bidi_push_it, bidi_pop_it):
6941 * fns.c (copy_hash_table):
6942 * image.c (define_image_type):
6943 * keyboard.c (kbd_buffer_store_event_hold):
6944 * process.c (Fprocess_send_eof):
6945 * xfaces.c (x_create_gc) [HAVE_NS]:
6946 * xgselect.c (xg_select):
6947 Prefer assignment to memcpy when either will do.
6948
5779a1dc
PE
6949 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
6950 Use pointer-to-a-pointer to simplify and avoid a NILP check each
6951 time an item is removed. No need to mark this function 'inline';
6952 the compiler knows better than we do.
6953
c4c9756b
JD
69542012-09-11 Jan Djärv <jan.h.d@swipnet.se>
6955
6956 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
6957 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
6958 to change_frame_size (Bug#12388).
6959 (windowDidResize:): Pass YES to updateFrameSize.
6960
6961 * nsterm.h: Add delay parameter to updateFrameSize.
6962
d73e321c
DA
69632012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6964
6965 Discard killed buffers from deleted window and frame objects.
6966 This reduces an amount of references to killed buffers and
6967 helps GC to reclaim them faster.
6968 * alloc.c (discard_killed_buffers): New function.
6969 (mark_object): Use it for deleted windows and frames.
6970 (mark_object): If symbol's value is set up for a killed buffer
1f9f395d 6971 or deleted frame, restore its global binding.
d73e321c
DA
6972 * data.c (swap_in_global_binding): Add GC notice.
6973 (swap_in_symval_forwarding): Use convenient set_blv_where.
6974 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
6975 * window.h: ... to here.
6976
e578f381
DA
69772012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6978
6979 Convenient macro to check whether the buffer is live.
6980 * buffer.h (BUFFER_LIVE_P): New macro.
6981 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
6982 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
6983
3057e615
YM
69842012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6985
6986 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
6987 composition cases (Bug#12364).
6988
6989 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
6990 overhang of succeeding glyphs overlapping box cursor.
6991
6992 * w32term.c (x_draw_glyph_string): Likewise.
6993
6fda35f2
PE
69942012-09-11 Paul Eggert <eggert@cs.ucla.edu>
6995
c990426a
PE
6996 Simplify, document, and port floating-point (Bug#12381).
6997 The porting part of this patch fixes bugs on non-IEEE platforms
6998 with frexp, ldexp, logb.
6999 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
7000 Now static.
7001 * floatfns.c: Simplify discussion of functions that Emacs doesn't
7002 support, by removing commented-out code and briefly listing the
7003 C89 functions excluded. The commented-out stuff was confusing
7004 maintenance, e.g., we thought we needed cbrt but it was commented out.
7005 (logb): Remove decl; no longer needed.
7006 (isfinite): New macro, if not already supplied.
7007 (isnan): Don't replace any existing macro.
7008 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
7009 are present on all C89 platforms.
7010 (Ffrexp): Do not special-case zero, as frexp does the right thing
7011 for that case.
7012 (Flogb): Do not use logb, as it doesn't have the desired meaning
7013 on hosts that use non-base-2 floating point. Instead, stick with
7014 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
7015 frexp, to avoid getting an unspecified result.
7016
6fda35f2
PE
7017 * xdisp.c (Qinhibit_debug_on_message): Now static.
7018
16130a58
JD
70192012-09-10 Jan Djärv <jan.h.d@swipnet.se>
7020
7021 * nsterm.m (ns_update_begin): Set clip path to whole view by using
7022 NSBezierPath (Bug#12131).
7023
d105a573
CY
70242012-09-10 Chong Yidong <cyd@gnu.org>
7025
7026 * fns.c (Fdelq, Fdelete): Doc fix.
7027
ff55dfe8
PE
70282012-09-10 Paul Eggert <eggert@cs.ucla.edu>
7029
7030 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
7031 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
7032
e7032e7c
SM
70332012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
7034
7035 * lisp.h (make_lisp_ptr): New macro to replace XSET.
7036 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
7037 Use it.
7038
e9957956
EZ
70392012-09-09 Eli Zaretskii <eliz@gnu.org>
7040
aba05ce9
EZ
7041 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
7042 left fringe if the window has a left margin. This avoids leaving
7043 traces of the cursor because its leftmost pixel is not drawn over.
7044
e9957956
EZ
7045 * dispnew.c (update_window_line): When the left margin area of a
7046 screen line is updated, set the redraw_fringe_bitmaps_p flag of
7047 that screen line. (Bug#12277)
7048
f6196b87
PE
70492012-09-09 Paul Eggert <eggert@cs.ucla.edu>
7050
7051 Assume C89 or later for math functions (Bug#12381).
7052 This simplifies the code, and makes it a bit smaller and faster,
7053 and (most important) makes it easier to clean up signal handling
7054 since we can stop worring about floating-point exceptions in
7055 library code. That was a problem before C89, but the problem
7056 went away many years ago on all practical Emacs targets.
7057 * data.c, image.c, lread.c, print.c:
7058 Don't include <math.h>; no longer needed.
7059 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
7060 might be autoconfigured, as that never happens.
7061 * data.c (fmod):
7062 * doprnt.c (DBL_MAX_10_EXP):
7063 * print.c (DBL_DIG):
7064 Remove. C89 or later always defines these.
7065 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
7066 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
7067 (arith_error, domain_error, domain_error2):
7068 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
7069 no longer needed -- we simply return what C returns. All uses removed.
7070 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
7071 the wrapped code.
7072 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
7073 Remove. All uses expanded, as these macros are no longer used
7074 more than once and are now more trouble than they're worth.
7075 (Ftan): Use tan, not sin / cos.
7076 (Flogb): Assume C89 frexp.
7077 (fmod_float): Assume C89 fmod.
7078 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
7079 (init_floatfns): Remove. All uses removed.
7080
9d7f1863
JD
70812012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7082
7083 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
7084 compositeToPoint for OSX < 10.6 (Bug#12390).
7085
eabf0404
PE
70862012-09-08 Paul Eggert <eggert@cs.ucla.edu>
7087
7088 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
7089 This produces more-accurate results.
7090
0b3b1d23
JD
70912012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7092
7093 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
7094 changes (Bug#12088).
7095
6dcef6ec
CY
70962012-09-08 Chong Yidong <cyd@gnu.org>
7097
7098 * syntax.c (Fstring_to_syntax): Doc fix.
7099
aa7d57c5
JD
71002012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7101
7102 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
7103 in the internal border.
7104 (x_set_window_size): Remove static variables and their usage.
7105 (ns_redraw_scroll_bars): Fix NSTRACE arg.
3a880af4
SM
7106 (ns_after_update_window_line, ns_draw_fringe_bitmap):
7107 Remove fringe/internal border adjustment (Bug#11052).
aa7d57c5
JD
7108 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
7109 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
7110 (ns_fix_rect_ibw): Remove.
7111 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
7112 (ns_dumpglyphs_box_or_relief): Ditto.
7113 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
7114 adjustment.
7115 (ns_dumpglyphs_image): Ditto.
fc0c31f8 7116 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
aa7d57c5
JD
7117 border adjustment.
7118 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
7119 their usage. Add fringe_extended_p and its use as in other terms.
7120 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
7121 scroll bar was removed.
7122 (updateFrameSize): New function.
7123 (windowDidResize): Move code to updateFrameSize and call it.
7124
7125 * nsterm.h (EmacsView): Add updateFrameSize.
7126
1a5432bc
CY
71272012-09-07 Chong Yidong <cyd@gnu.org>
7128
b4f5313e
CY
7129 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
7130
1a5432bc
CY
7131 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
7132
1a4f1e9b
PE
71332012-09-07 Paul Eggert <eggert@cs.ucla.edu>
7134
7135 More signal-handler cleanup (Bug#12327).
eddb36a7
PE
7136 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
7137 Problem introduced when merging patches. Noted by Eli Zaretskii in
7138 <http://bugs.gnu.org/12327#67>.
1a4f1e9b
PE
7139 * floatfns.c: Comment fix.
7140 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
7141 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
7142 and anyway the declaration is harmless even if SIGDANGER is not defined.
7143 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
7144 defined BROKEN_FIONREAD). systty.h formerly did this, but other
7145 source files not surprisingly expected syssignal.h to define, or
7146 not define, SIGIO, and it's cleaner to do it that way, for consistency.
7147 Include <sys/ioctl.h>, for FIONREAD.
7148 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
7149 This eliminates a problem whereby other files mysteriously had
7150 to include "syssignal.h" before including "systty.h" if they
7151 wanted to use "#ifdef SIGIO".
7152
bc8000ff
EZ
71532012-09-07 Eli Zaretskii <eliz@gnu.org>
7154
3e6d6928
EZ
7155 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
7156
7157 * w32.c (sigemptyset): Empty the set.
7158 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
7159
bc8000ff
EZ
7160 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
7161
b4fa72f2
DA
71622012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
7163
7164 * alloc.c (mark_buffer): Revert unsafe marking optimization.
7165 (mark_object): Likewise for frame objects.
7166
30730c93
PE
71672012-09-07 Paul Eggert <eggert@cs.ucla.edu>
7168
7169 * syssignal.h (handle_on_main_thread): Always declare,
7170 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
7171 This ports to platforms without HAVE_PTHREAD.
7172
2fe28299
PE
71732012-09-06 Paul Eggert <eggert@cs.ucla.edu>
7174
7175 Signal-handler cleanup (Bug#12327).
7176 Emacs's signal handlers were written in the old 4.2BSD style with
7177 sigblock and sigmask and so forth, and this led to some
7178 inefficiencies and confusion. Rewrite these to use
7179 pthread_sigmask etc. without copying signal sets around. Also,
7180 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
7181 'signal', and instead use functions that do not attempt to take
7182 over the system name space. This patch causes Emacs's text
7183 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
7184 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
7185 Do not include <signal.h> or "syssignal.h", as these
7186 modules do not use signals.
7187 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
7188 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
7189 Do not include <signal.h>, as "syssignal.h" does that for us now.
7190 * atimer.c (sigmask_atimers): New function.
7191 (block_atimers, unblock_atimers): New functions,
7192 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
7193 All uses replaced.
7194 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
7195 no longer needed here.
7196 * emacs.c (main): Inspect existing signal handler with sigaction,
fc0c31f8 7197 so that there's no need to block and unblock SIGHUP.
2fe28299
PE
7198 * sysdep.c (struct save_signal): New member 'action', replacing
7199 old member 'handler'.
7200 (save_signal_handlers, restore_signal_handlers):
7201 Use sigaction instead of 'signal' to save and restore.
7202 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
7203 New function. All users of 'signal' modified to use set_sighandler
7204 if they're writeonly, and to use sys_signal if they're read+write.
7205 (emacs_sigaction_init, forwarded_signal): New functions.
7206 (sys_signal): Remove. All uses replaced by calls to sigaction
7207 and emacs_sigaction_init, or by direct calls to 'signal'.
7208 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
7209 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
7210 all uses replaced by pthread_sigmask etc. calls.
7211 * syssignal.h: Include <signal.h>.
7212 (emacs_sigaction_init, forwarded_signal): New decls.
7213 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
7214 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
7215 (sigmask, sys_sigmask): Remove; no longer needed.
7216 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
7217 (sigblock, sigunblock, sigfree):
7218 (sigsetmask) [!defined sigsetmask]:
7219 Remove. All uses replaced by pthread_sigmask.
7220 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
7221 no longer need to be replaced, and its typical old uses
7222 are now done via emacs_sigaction_init and sigaction.
7223 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
7224 (sys_sigdel): Remove; unused.
7225 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
7226
0216c128
EZ
72272012-09-06 Eli Zaretskii <eliz@gnu.org>
7228
7229 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
7230 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
7231
c752cfa9
DA
72322012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
7233
7234 Explicitly mark buffer_defaults and buffer_local_symbols.
7235 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
7236 mark_local_symbols here.
7237 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
7238 since special buffers aren't marked here any more.
7239 (allocate_buffer): Chain new buffer with all_buffers here...
7240 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
7241 not here.
7242 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
7243 (syms_of_buffer): Remove staticpro of the above.
7244 (init_buffer_once): Set names for buffer_defaults and
7245 buffer_local_symbols.
7246
a864ef14
PE
72472012-09-06 Paul Eggert <eggert@cs.ucla.edu>
7248
7249 Use bool for booleans in font-related modules.
7250 * font.c (font_intern_prop, font_style_to_value)
7251 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
7252 (generate_otf_features, font_check_otf_features, font_check_otf)
7253 (font_match_p, font_list_entities, font_at):
7254 * fontset.c (fontset_id_valid_p, reorder_font_vector
7255 (fontset_find_font, Fset_fontset_font)
7256 (face_suitable_for_char_p) [0]:
7257 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
7258 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
7259 (m17n_flt_initialized, ftfont_shape_by_flt):
7260 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
7261 * nsfont.m (nsfont_draw):
7262 * w32font.c (w32font_draw):
7263 * w32term.c (x_draw_glyphless_glyph_string_foreground):
7264 Use bool for booleans.
7265 * font.h: Adjust to above API changes.
7266 (struct font, struct font_driver, struct font_driver_list):
7267 Use bool for booleans.
7268 (struct font): Remove useless member encoding_type.
7269 All users removed.
7270 * fontset.c, xftfont.c: Omit unnecessary static decls.
7271
0699fc18
DA
72722012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
7273
7274 * alloc.c (mark_object): Revert window marking code
7275 since it's unsafe for the Fset_window_configuration.
7276
20ef56db
PE
72772012-09-05 Paul Eggert <eggert@cs.ucla.edu>
7278
2fe28299 7279 Fix race conditions with signal handlers and errno (Bug#12327).
20ef56db
PE
7280 Be more systematic about preserving errno whenever a signal
7281 handler returns, even if it's not in the main thread. Do this by
7282 renaming signal handlers to distinguish between signal delivery
7283 and signal handling. All uses changed.
7284 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
7285 * data.c (deliver_arith_signal): Rename from arith_error.
7286 * dispnew.c (deliver_window_change_signal): Rename from
7287 window_change_signal.
7288 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
7289 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
7290 * keyboard.c (deliver_input_available_signal): Rename from
7291 input_available_signal.
7292 (deliver_user_signal): Rename from handle_user_signal.
7293 (deliver_interrupt_signal): Rename from interrupt_signal.
7294 * process.c (deliver_pipe_signal): Rename from send_process_trap.
7295 (deliver_child_signal): Rename from sigchld_handler.
7296 * atimer.c (handle_alarm_signal):
7297 * data.c (handle_arith_signal):
7298 * dispnew.c (handle_window_change_signal):
7299 * emacs.c (handle_fatal_signal, handle_danger_signal):
7300 * keyboard.c (handle_input_available_signal):
7301 * keyboard.c (handle_user_signal, handle_interrupt_signal):
7302 * process.c (handle_pipe_signal, handle_child_signal):
7303 New functions, with the actual signal-handling code taken from the
7304 original respective signal handlers, sans the sporadic attempts to
7305 preserve errno, since that's now done by handle_on_main_thread.
7306 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
7307 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
7308 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7309 Move to sysdep.c.
7310 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7311 Move initialization of main_thread to sysdep.c's init_signals.
7312 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
7313 our usage, and simplifies the mainline code.
7314 (record_child_status_change): New static function, as a helper
7315 for handle_child_signal, and with most of the old child handler's
7316 contents.
7317 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
7318 (handle_child_signal): Use the above.
7319 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7320 Moved here from emacs.c.
7321 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
7322 code moved here from emacs.c's main function.
7323 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
3a880af4
SM
7324 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
7325 This lets callers save and restore errno properly.
20ef56db 7326
e3ccf108
DA
73272012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7328
7329 Remove redundant or unused things here and there.
7330 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
7331 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
7332 * editfns.c (Fcompare_buffer_substrings): Likewise.
7333 * frame.h (struct terminal, struct font_driver_list):
7334 Remove redundant declarations.
7335 * window.h (Qleft, Qright): Likewise.
7336
697e1e39
DA
73372012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7338
7339 Do not mark objects from deleted buffers, windows and frames.
7340 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
7341 (mark_object): Likewise for windows and frames.
7342
c1ca42ca
DA
73432012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7344
7345 * alloc.c (valid_lisp_object_p): Treat killed buffers,
7346 buffer_defaults and buffer_local_symbols as valid objects.
7347 Return special value to denote them.
7348
014d93be
PE
73492012-09-05 Paul Eggert <eggert@cs.ucla.edu>
7350
f75d7a91
PE
7351 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
7352 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
7353 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
7354 (file_name_absolute_p, Fsubstitute_in_file_name):
7355 (check_executable, check_writable, Ffile_accessible_directory_p)
7356 (Fset_file_selinux_context, Fdefault_file_modes)
7357 (Finsert_file_contents, choose_write_coding_system)
7358 (Fwrite_region, build_annotations, a_write, e_write)
7359 (Fdo_auto_save):
7360 * filelock.c (boot_time_initialized, get_boot_time)
7361 (get_boot_time_1, lock_file_1, within_one_second):
7362 * floatfns.c (in_float):
7363 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
7364 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
7365 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
7366 * lisp.h (struct Lisp_Hash_Table.cmpfn):
7367 * window.c (compare_window_configurations):
7368 Use bool for booleans.
7369 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
7370 (Fdefault_file_modes): Now mode_t, not int, for modes.
7371 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
7372 (internal_delete_file): Now returns void, not a (boolean) int,
7373 since nobody was looking at the return value.
7374 * lisp.h, window.h: Adjust to above API changes.
7375
014d93be
PE
7376 * xdisp.c (set_message): Simplify and reindent last change.
7377
776f29e1
JB
73782012-09-05 Juanma Barranquero <lekktu@gmail.com>
7379
7380 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
7381
7f7e0167
LI
73822012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
7383
7384 * eval.c (call_debugger): Make the function non-static so that we
7385 can call it from set_message.
7386
7387 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
7388 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
7389
cf29dd84
PE
73902012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7391
7392 Give more-useful info on a fatal error (Bug#12328).
7393 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
7394 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
7395 of doing the work ourselves.
7396 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
7397 do most of the work.
7398 (fatal_error_backtrace): New function, taken from the guts
7399 of the old fatal_error_signal, but with a new option to output
7400 a backtrace.
7401 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
7402 info about the signal than just its number.
7403 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
7404 * sysdep.c: Include <execinfo.h>
7405 (emacs_backtrace): New function, taken partly from the previous
7406 code of the 'die' function.
7407 (emacs_abort): Call fatal_error_backtrace rather than abort.
7408
972debf2
SM
74092012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
7410
7411 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
7412 eager (load-time) macro-expansion.
7413 * lisp.mk (lisp): Add macroexp.
7414
1088b922
PE
74152012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7416
7417 Simplify redefinition of 'abort' (Bug#12316).
7418 Do not try to redefine the 'abort' function. Instead, redo
7419 the code so that it calls 'emacs_abort' rather than 'abort'.
7420 This removes the need for the NO_ABORT configure-time macro
7421 and makes it easier to change the abort code to do a backtrace.
7422 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
7423 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
7424 Remove; sysdep.c's emacs_abort now takes its place.
7425 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
7426 'abort' changed to use 'emacs_abort'.
7427 * msdos.c (dos_abort) [defined abort]: Remove; not used.
7428 (abort) [!defined abort]: Rename to ...
7429 (emacs_abort): ... new name.
7430 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
7431 the place of the old 'abort' in emacs.c.
7432 * w32.c, w32fns.c (abort): Do not #undef.
7433 * w32.c (emacs_abort): Rename from w32_abort.
7434
30934d33
EZ
74352012-09-04 Eli Zaretskii <eliz@gnu.org>
7436
7437 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
7438 offsets[j].dv, since the y axis of the screen coordinates points
7439 down, while the y axis of the font definition coordinates points
7440 up. This fixes display of Arabic diacritics such as KASRA and
7441 KASRATAN. (Bug#11860)
7442
af26b72c
PE
74432012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7444
7445 Be more systematic about _setjmp vs setjmp.
7446 * alloc.c (test_setjmp, mark_stack):
7447 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
7448 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
7449 (png_load, my_error_exit, jpeg_load):
7450 * process.c (send_process_trap, send_process):
7451 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
7452 The underscored versions are up to 30x faster on some hosts.
7453 Formerly, the code used setjmp+longjmp sometimes and
7454 _setjmp+_longjmp at other times, with no particular reason to
7455 prefer setjmp+longjmp.
7456
26d4541d
PE
74572012-09-03 Paul Eggert <eggert@cs.ucla.edu>
7458
d42f4f0f 7459 Fix minor problem found by static checking.
26d4541d 7460 * buffer.c (Fdelete_all_overlays): Return nil.
26d4541d 7461
c5e28e39
MR
74622012-09-03 Martin Rudalics <rudalics@gmx.at>
7463
7464 * buffer.c (Fdelete_all_overlays): New function.
7465
3eab3ca9
CY
74662012-09-03 Chong Yidong <cyd@gnu.org>
7467
7468 * gtkutil.c: Add extern decl for Qxft.
7469
c04889f8
PE
74702012-09-02 Paul Eggert <eggert@cs.ucla.edu>
7471
1882aa38
PE
7472 * emacs.c, eval.c: Use bool for boolean.
7473 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
7474 (malloc_using_checking) [DOUG_LEA_MALLOC]:
7475 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
7476 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
7477 (main, decode_env_path, Fdaemon_initialized):
7478 * eval.c (call_debugger, Finteractive_p, interactive_p):
7479 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
7480 (maybe_call_debugger, Fbacktrace):
7481 * process.c (read_process_output, exec_sentinel):
7482 Use bool for booleans.
7483 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
7484 All callers changed.
7485 * eval.c (interactive_p): Omit always-true boolean argument
7486 EXCLUDE_SUBRS_P. All callers changed.
7487 * dispextern.h, lisp.h: Reflect above API changes.
7488 * firstfile.c (dummy): Use the address of 'main', whose signature
7489 won't change, instead of the address of 'initialize', whose
7490 signature just changed from int to bool.
7491 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
7492 * msdos.c (fatal_error_in_progress): ... from here.
7493 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
7494 of incrementing it.
7495 (redisplay_internal, unwind_redisplay): Simply clear
7496 REDISPLAYING_P when unwinding, instead of saving its previous,
7497 always-false value and then restoring it.
7498
a411ac43
PE
7499 Clean up some extern decls.
7500 Mostly, this hoists extern decls out of .c files and into .h files.
7501 That way, we're more likely to catch errors if the interfaces change.
7502 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
7503 declare xg_mark_data.
7504 * dispextern.h (x_frame_parm_handlers):
7505 * font.h (Qxft):
7506 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
7507 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
7508 (Qultra_bold, Qoblique, Qitalic):
7509 Move extern decl here from .c file.
7510 * alloc.c (xg_mark_data) [USE_GTK]:
7511 * doc.c (Qclosure):
7512 * eval.c (Qlexical_binding):
7513 * fns.c (time) [!HAVE_UNISTD_H]:
7514 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
7515 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
7516 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
7517 * lread.c (Qinternal_interpreter_environment):
7518 * minibuf.c (Qbuffer):
7519 * process.c (QCfamily, QCfilter):
7520 * widget.c (free_frame_faces):
7521 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
7522 * xfont.c (x_clear_errors):
7523 * xterm.c (x_frame_parm_handlers):
7524 Remove now-redundant extern decls.
7525 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
7526 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
7527 Now static.
7528 * xfaces.c: Remove unnecessary static decls.
7529 * xterm.c (updating_frame): Remove decl of nonexistent object.
7530
c04889f8
PE
7531 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
7532 when building globals.h, as the objects that are not built on
7533 this host are not needed to compile C files on this host.
7534
8b339673
JD
75352012-09-02 Jan Djärv <jan.h.d@swipnet.se>
7536
7537 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
7538
7539 * frame.h: Add missing prototype for x_wm_set_size_hint.
7540
a08d4ba7
PE
75412012-09-02 Paul Eggert <eggert@cs.ucla.edu>
7542
7543 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
7544 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
7545 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
7546 (Fsubstitute_command_keys):
7547 * editfns.c (region_limit, find_field, Fconstrain_to_field)
7548 (save_excursion_save, save_excursion_restore)
7549 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
7550 (format_time_string, general_insert_function)
7551 (make_buffer_string, make_buffer_string_both)
7552 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
7553 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
7554 (copy_text, insert_1, insert_1_both, insert_from_string)
7555 (insert_from_string_before_markers, insert_from_string_1)
7556 (insert_from_buffer, insert_from_buffer_1, replace_range)
7557 (replace_range_2, del_range_1, del_range_byte, del_range_both)
7558 (del_range_2, modify_region):
7559 * intervals.c (intervals_equal, balance_possible_root_interval)
7560 (adjust_intervals_for_insertion, merge_properties_sticky)
7561 (graft_intervals_into_buffer, lookup_char_property)
7562 (adjust_for_invis_intang, set_point_both)
7563 (get_property_and_range, compare_string_intervals)
7564 (set_intervals_multibyte_1, set_intervals_multibyte):
7565 * keyboard.c (decode_timer):
7566 Use bool for boolean.
7567 * intervals.h, lisp.h, systime.h: Reflect above API changes.
7568 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
7569
48c948de
CY
75702012-09-02 Chong Yidong <cyd@gnu.org>
7571
7572 * keymap.c (push_key_description): Print M-TAB as C-M-i
7573 (Bug#11758).
7574
6c49a40b
JB
75752012-09-02 Juanma Barranquero <lekktu@gmail.com>
7576
7577 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
7578 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
7579 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
7580 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
7581 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
7582 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
7583 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
7584
4dfbd238
EZ
75852012-09-01 Eli Zaretskii <eliz@gnu.org>
7586
7e510e28
EZ
7587 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
7588 more than one grapheme cluster passed to the shaper: compute the
7589 offset adjustment values separately for each cluster. (Bug#11860)
7590
4dfbd238
EZ
7591 * image.c: Restore mistakenly removed inclusion of w32.h. Without
7592 it, GCC doesn't see prototypes of w32_delayed_load, and complains
7593 about implicit conversions from integer to pointer.
7594
86571ae0
DC
75952012-09-01 Daniel Colascione <dancol@dancol.org>
7596
7597 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
7598 system used too early.
7599
0e23ef9d
PE
76002012-09-01 Paul Eggert <eggert@cs.ucla.edu>
7601
7602 Better seed support for (random).
7603 * emacs.c (main): Call init_random.
7604 * fns.c (Frandom): Set the seed from a string argument, if given.
7605 Remove long-obsolete Gentzel cruft.
7606 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
7607 (init_random): New function.
7608
17a2cbbd
DC
76092012-09-01 Daniel Colascione <dancol@dancol.org>
7610
7611 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
7612 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
7613 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
7614 x_wm_set_size_hint, x_query_colors, x_real_positions,
7615 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
7616 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
7617 all of which have been moved to common code.
7618
7619 * xfaces.c: Include TERM_HEADER instead of listing all possible
7620 window-system headers.
7621
7622 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
7623 to match header.
7624
7625 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
7626 directly accessing frame internals.
7627
f18cbb28 7628 * w32font.h: Include font.h. Define syms_of_w32font and
17a2cbbd
DC
7629 globals_of_w32font.
7630
7631 * process.c: Include TERM_HEADER instead of listing all possible
7632 window-system headers.
7633
3a880af4
SM
7634 * nsterm.h: Remove declarations now in frame.h.
7635 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
17a2cbbd
DC
7636
7637 * menu.c: Include TERM_HEADER instead of listing all possible
7638 window-system headers.
7639
7640 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
7641 window system.
7642
7643 * keyboard.c: Include TERM_HEADER instead of listing all possible
7644 window-system headers.
7645
7646 * image.c: Include TERM_HEADER instead of listing all possible
7647 window-system headers. Declare Vlibrary_cache when compiling for
7648 Windows.
7649
7650 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
7651 window system declarations.
7652
7653 * frame.h: Move common functions here: set_frame_menubar,
7654 x_set_window_size, x_sync, x_get_focus_frame,
7655 x_set_mouse_position, x_set_mouse_pixel_position,
7656 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
7657 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
7658 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
7659 x_activate_menubar, x_real_positions, x_bitmap_icon,
7660 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
7661 and x_query_colors.
7662
7663 * frame.c: Include TERM_HEADER instead of listing all possible
7664 window-system headers.
7665
7666 * font.c: Include TERM_HEADER instead of listing all possible
7667 window-system headers.
7668
7669 * emacs.c: Include TERM_HEADER.
7670
f18cbb28
EZ
7671 * dispnew.c: Include TERM_HEADER instead of listing all possible
7672 window-system headers.
17a2cbbd 7673
f18cbb28 7674 * ccl.h: Include character.h.
17a2cbbd
DC
7675
7676 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
7677 the current window system; include in list of objects to link into
7678 Emacs.
7679
c650a5de
DA
76802012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7681
7682 Remove mark_ttys function and fix tty_display_info initialization.
7683 * lisp.h (mark_ttys): Remove prototype.
7684 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
7685 to mark_ttys because all possible values of 'top_frame' slot are
7686 the frames which are reachable from Vframe_list.
7687 * term.c (mark_ttys): Remove.
7688 (init_tty): Safely initialize 'top_frame' slot with Qnil.
7689
4e0f6479
DA
76902012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7691
7692 Change struct frame bitfields from unsigned char to unsigned.
7693 * frame.h (struct frame): Change type of 'display_preempted',
7694 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
7695 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
7696 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
7697 bitfields from unsigned char to unsigned.
7698
8b96a52c
DA
76992012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7700
7701 Remove unused member of struct x_output and struct w32_output.
7702 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
7703 * w32term.h (struct w32_output): Likewise.
7704
b4444c8a
JD
77052012-08-30 Jan Djärv <jan.h.d@swipnet.se>
7706
7707 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
7708 does not become zero (Bug#12234).
7709
b98521db
PE
77102012-08-30 Paul Eggert <eggert@cs.ucla.edu>
7711
7712 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
7713 for GCC 4.7.1 x86-64.
7714
31d02438
GM
77152012-08-30 Glenn Morris <rgm@gnu.org>
7716
7717 * lread.c (init_lread): For out-of-tree builds, only add the
7718 source directory's site-lisp dir to the load-path if it exists,
7719 consistent with in-tree builds. (Bug#12302)
7720
7f8941d8
JD
77212012-08-28 Jan Djärv <jan.h.d@swipnet.se>
7722
7723 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
fc0c31f8 7724 button_values to NULL. Call setStykeMask so dialogs get a close button.
7f8941d8
JD
7725 (windowShouldClose:): Set window_closed.
7726 (dealloc): New member, free button_values.
fc0c31f8
JB
7727 (process_dialog:): Make member function. Remove window argument,
7728 replace window with self. Count buttons and allocate and store values
7f8941d8
JD
7729 in button_values.
7730 (addButton:value:row:): value is int with the name tag. Call setTag
fc0c31f8 7731 with tag. Remove return self, declare return value as void.
7f8941d8
JD
7732 (addString:row:): Remove return self, declare return value as void.
7733 (addSplit): Remove return self, declare return value as void.
7734 (clicked:): Remove return self, declare return value as void.
fc0c31f8 7735 Set dialog_return to button_values[seltag]. Code formatting change.
7f8941d8
JD
7736 (initFromContents:isQuestion:): Adjust call to process_dialog.
7737 Code formatting change.
7738 (timeout_handler:): Set timer_fired to YES.
7739 (runDialogAt:): Set timer_fired to NO.
7740 Handle click on close button as quit.
7741
7742 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
7743 Add window_closed and button_values. Add void as return value for
7744 add(Button|String|Split). addButton takes int instead of Lisp_Object.
7745 Add process_dialog as new member.
7746
eada0861 77472012-08-28 Eli Zaretskii <eliz@gnu.org>
19c17fc1 7748
eada0861
GM
7749 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
7750 is not one of the heaps we manage. (Bug#12242)
7751
77522012-08-28 Glenn Morris <rgm@gnu.org>
7753
7754 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
7755
457294dd
MR
77562012-08-28 Martin Rudalics <rudalics@gmx.at>
7757
7758 * window.c (Fset_window_configuration): Remove handling of
37b9743e
MR
7759 auto-buffer-name window parameter. Install revision of reverted
7760 fix.
457294dd 7761
4f2daf31
DA
77622012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7763
7764 Do not allow to set major mode for a dead buffer.
7765 * buffer.c (Fset_buffer_major_mode): Signal an error
7766 if the buffer is dead.
7767 (Fother_buffer, other_buffer_safely): Remove redundant
7768 nested declaration.
7769
66322887
DA
77702012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7771
7772 Always use set_buffer_if_live to restore original buffer at unwind.
7773 * buffer.h (record_unwind_current_buffer): New function.
7774 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
7775 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
7776 * undo.c, window.c: Adjust users.
7777 * buffer.c (set_buffer_if_live): Fix comment.
7778
a3d794a1
DA
77792012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7780
7781 Fix usage of set_buffer_internal.
7782 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
7783 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
7784 * coding.c (decode_coding): Omit redundant test.
7785 * fileio.c (decide_coding_unwind): Likewise.
7786 * fns.c (secure_hash): Likewise.
7787 * insdel.c (modify_region): Likewise.
7788 * keyboard.c (command_loop_1): Likewise.
7789 * print.c (PRINTFINISH): Likewise.
7790 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
7791
59ea14cd
PE
77922012-08-27 Paul Eggert <eggert@cs.ucla.edu>
7793
7794 * dispnew.c: Use bool for boolean.
7795 (frame_garbaged, display_completed, delayed_size_change)
7796 (fonts_changed_p, add_window_display_history)
7797 (add_frame_display_history, verify_row_hash)
7798 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
7799 (row_equal_p, realloc_glyph_pool)
7800 (allocate_matrices_for_frame_redisplay)
7801 (showing_window_margins_p)
7802 (adjust_frame_glyphs_for_frame_redisplay)
7803 (build_frame_matrix_from_leaf_window, make_current)
7804 (mirrored_line_dance, mirror_line_dance, update_frame)
7805 (update_window_tree, update_single_window)
7806 (check_current_matrix_flags, update_window, update_text_area)
7807 (update_window_line, set_window_update_flags, scrolling_window)
7808 (update_frame_1, scrolling, buffer_posn_from_coords)
7809 (do_pending_window_change, change_frame_size)
7810 (change_frame_size_1, sit_for):
7811 Use bool for boolean.
7812 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
7813 and remove last int (actually boolean) argument, which was always 0.
7814 All callers changed.
7815 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
7816 * dispextern.h (struct composition_it): Use bool for boolean.
7817 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
7818 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
7819 * dired.c (file_name_completion):
7820 Use bool for boolean. (This was missed in an earlier change.)
7821
95072a94
MR
78222012-08-27 Martin Rudalics <rudalics@gmx.at>
7823
7824 * window.c (Fset_window_configuration): Revert first part of
7825 last change.
7826
0f19feff
JD
78272012-08-27 Jan Djärv <jan.h.d@swipnet.se>
7828
7829 * nsterm.h (NSPanel): New class variable dialog_return.
7830
3a880af4
SM
7831 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
7832 Initialize dialog_return.
0f19feff
JD
7833 (windowShouldClose:): Use stop instead of stopModalWithCode.
7834 (clicked:): Ditto, and also set dialog_return (Bug#12258).
7835 (timeout_handler:): Use stop instead of abortModal. Send a dummy
7836 event.
7837 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
7838 modal loop returns.
7839
f10fe38f
PE
78402012-08-27 Paul Eggert <eggert@cs.ucla.edu>
7841
de1339b0
PE
7842 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
7843 * composite.c (find_composition, composition_gstring_p)
7844 (composition_reseat_it, find_automatic_composition):
7845 * data.c (let_shadows_buffer_binding_p)
7846 (let_shadows_global_binding_p, set_internal, make_blv)
7847 (Fmake_variable_buffer_local, Fmake_local_variable)
7848 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
7849 (cons_to_signed, arith_driver):
7850 * dbusbind.c (xd_in_read_queued_messages):
7851 * dired.c (directory_files_internal, file_name_completion):
7852 Use bool for booleans.
7853 * dired.c (file_name_completion):
7854 * process.h (fd_callback):
7855 Omit int (actually boolean) argument. It wasn't being used.
7856 All uses changed.
7857 * composite.h, lisp.h: Reflect above API changes.
7858
f10fe38f
PE
7859 * cmds.c, coding.c: Use bool for booleans.
7860 * cmds.c (move_point, Fself_insert_command):
7861 * coding.h (struct composition status, struct coding_system):
7862 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
7863 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
7864 (emacs_mule_char, decode_coding_emacs_mule)
7865 (encode_coding_emacs_mule, detect_coding_iso_2022)
7866 (decode_coding_iso_2022, encode_invocation_designation)
7867 (encode_designation_at_bol, encode_coding_iso_2022)
7868 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
7869 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
7870 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
7871 (encode_coding_raw_text, detect_coding_charset)
7872 (decode_coding_charset, encode_coding_charset, detect_eol)
7873 (detect_coding, get_translation_table, produce_chars)
7874 (consume_chars, reused_workbuf_in_use)
7875 (make_conversion_work_buffer, code_conversion_save)
7876 (decode_coding_object, encode_coding_object)
7877 (detect_coding_system, char_encodable_p)
7878 (Funencodable_char_position, code_convert_region)
7879 (code_convert_string, code_convert_string_norecord)
7880 (Fset_coding_system_priority):
7881 * fileio.c (Finsert_file_contents):
7882 Use bool for booleans.
7883 * coding.h, lisp.h: Reflect above API changes.
7884 * coding.c: Remove unnecessary static function decls.
7885 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
7886 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
7887 not a boolean 'int', since callers never look at the return value.
7888 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
7889 * coding.h (decoding_buffer_size, encoding_buffer_size)
7890 (emacs_mule_string_char): Remove unused extern decls.
7891 (struct iso_2022_spec, struct coding_system):
7892 Use 'unsigned int : 1' for boolean fields, since there's more than one.
7893 (struct emacs_mule_spec): Remove unused field 'full_support'.
7894 All initializations removed.
7895 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
7896
5474c384
DA
78972012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7898
f10fe38f 7899 Fix spare memory change (Bug#12286).
5474c384
DA
7900 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
7901 (valid_lisp_object_p): Likewise.
7902
c4b6914d
MR
79032012-08-27 Martin Rudalics <rudalics@gmx.at>
7904
7905 * window.c (Fset_window_configuration): Record any window's old
7906 buffer if it's replaced (see Bug#8789). If the new current
7907 buffer doesn't appear in the selected window, go to its old
7908 point (Bug#12208).
7909
35aaa1ea
DA
79102012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7911
7912 Special MEM_TYPE_SPARE to denote reserved memory.
7913 * alloc.c (enum mem_type): New memory type.
7914 (refill_memory_reserve): Use new type for spare memory.
7915 This prevents live_cons_p and live_string_p from incorrect
7916 detection of uninitialized objects from spare memory as live.
7917
6af64513
PE
79182012-08-26 Paul Eggert <eggert@cs.ucla.edu>
7919
8b2e00a3
PE
7920 Spelling fixes.
7921 * Makefile.in (.PHONY): versioclean -> versionclean.
7922
b52d6985
PE
7923 Remove unused external symbols.
7924 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
7925 * window.c (Qwindow_valid_p, decode_valid_window):
7926 Now static, not extern.
7927 * data.c (Qinterval): Remove; unused.
7928 (syms_of_data): Do not define 'interval'.
7929 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
7930 * window.h (decode_valid_window):
7931 Remove decls.
7932
d5172d4f
PE
7933 * character.c, charset.c, chartab.c: Use bool for booleans.
7934 * character.c (lisp_string_width, string_count_byte8)
7935 (string_escape_byte8):
7936 * charset.c (charset_map_loaded, load_charset_map, read_hex):
7937 (load_charset_map_from_file, map_charset_chars)
7938 (Fdefine_charset_internal, define_charset_internal)
7939 (Fdeclare_equiv_charset, find_charsets_in_text)
7940 (Ffind_charset_region, char_charset, Fiso_charset):
7941 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
7942 (sub_char_table_set, sub_char_table_set_range)
7943 (char_table_set_range, optimize_sub_char_table)
7944 (map_sub_char_table):
7945 Use bool for boolean.
7946 * character.c (str_to_unibyte): Omit last boolean argument; it was
7947 always 0. All callers changed.
7948 * character.h, charset.h: Adjust to match previous changes.
7949 * character.h (char_printable_p): Remove decl of nonexistent function.
7950 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
7951 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
7952 are all boolean, so make them single-bit bitfields.
7953
6af64513
PE
7954 * lisp.h (ASET): Remove attempt to detect side effects.
7955 It was meant to be temporary and it often doesn't work,
7956 because when IDX has side effects the behavior of IDX==IDX
7957 is undefined. See Stefan Monnier in
7958 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
7959
e1f29348
BR
79602012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
7961
7962 * lisp.h (functionp): New function (extracted from Ffunctionp).
7963 (FUNCTIONP): Use it.
7964 * eval.c (Ffunctionp): Use it.
7965
17c05d74
PE
79662012-08-25 Paul Eggert <eggert@cs.ucla.edu>
7967
0f46bc75
PE
7968 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
7969 as that's faster and simpler than static storage. Don't bother
7970 with the g_main_context_query overhead if g_main_context_pending
7971 says no events are pending.
7972 (gfds, gfds_size): Remove these static vars.
7973 (xgselect_initialize): Remove; no longer needed.
7974 All uses and decls removed.
7975
ee4c0f69
PE
7976 * emacs.c (fatal_error_signal_hook): Remove.
7977 All uses removed. This leftover from old code was always 0.
7978
17c05d74
PE
7979 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
7980 * casefiddle.c (casify_object, casify_region):
7981 * casetab.c (set_case_table):
7982 * category.c, category.h (word_boundary_p):
7983 * category.h (CHAR_HAS_CATEGORY):
7984 Use bool for booleans, instead of int.
7985
391ceac5
EZ
79862012-08-25 Eli Zaretskii <eliz@gnu.org>
7987
7988 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
7989
2f221583
PE
79902012-08-25 Paul Eggert <eggert@cs.ucla.edu>
7991
f4a681b0
PE
7992 On assertion failure, print backtrace if available.
7993 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
7994 (die) [ENABLE_CHECKING]: Print a backtrace if available.
7995 * Makefile.in (LIB_EXECINFO): New macro.
7996 (LIBES): Use it.
7997
2f221583
PE
7998 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
7999 * bytecode.c (exec_byte_code):
8000 * callint.c (check_mark, Fcall_interactively):
8001 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
8002 (getenv_internal, sync_process_alive, call_process_exited):
8003 * lisp.h (USE_SAFE_ALLOCA):
8004 Use bool for booleans, instead of int.
8005 * lisp.h, process.h: Adjust prototypes to match above changes.
8006 * callint.c (Fcall_interactively): Don't assume the mark's
8007 offset fits in 'int'.
8008
37ef52bb
PE
80092012-08-24 Paul Eggert <eggert@cs.ucla.edu>
8010
8011 * buffer.c, buffer.h: Use bool for boolean.
8012 * buffer.c (reset_buffer_local_variables)
8013 (buffer_lisp_local_variables, Fset_buffer_modified_p)
8014 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
8015 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
8016 (overlay_touches_p, overlay_strings, Foverlay_put)
8017 (report_overlay_modification, call_overlay_mod_hooks):
8018 (mmap_enlarge, mmap_set_vars):
8019 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
8020 Use bool for booleans, instead of int.
8021 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
8022 since the 1-or-0 return value is always ignored anyway.
8023 (mmap_initialized_p):
8024 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
8025 * buffer.h, lisp.h: Adjust prototypes to match above changes.
8026
2cc21167
PE
80272012-08-23 Paul Eggert <eggert@cs.ucla.edu>
8028
8029 * bidi.c: Use bool for boolean.
8030 This is a bit more readable, and makes the text segment of bidi.o
8031 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
8032 Presumably it's faster too.
8033 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
8034 Now bool.
8035 (bidi_cache_find_level_change, bidi_cache_iterator_state)
8036 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
8037 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
8038 (bidi_explicit_dir_char, bidi_level_of_next_char)
8039 (bidi_find_other_level_edge, bidi_move_to_visually_next):
8040 Use bool for booleans, instead of int.
8041 * dispextern.h (bidi_init_it, bidi_paragraph_init)
8042 (bidi_unshelve_cache): Adjust decls to match code.
8043
7db4ddf4
MR
80442012-08-23 Martin Rudalics <rudalics@gmx.at>
8045
8046 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
8047 argument.
8048
b1bb8011
PE
80492012-08-23 Paul Eggert <eggert@cs.ucla.edu>
8050
8051 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
8052 * atimer.h: Include <stdbool.h>.
8053
ff687885
DN
80542012-08-22 Dan Nicolaescu <dann@gnu.org>
8055
8056 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
8057 compile time tests instead of run time tests on systems that do
8058 not use them.
8059 (FRAME_MAC_P): Remove leftover from deleted code.
8060 * frame.c (syms_of_frame): Remove leftover from deleted code.
8061
4ce7a138
JD
80622012-08-22 Jan Djärv <jan.h.d@swipnet.se>
8063
8064 * nsterm.m (insertText:): Don't clear modifiers if code is space.
8065
d733ec6d
PE
80662012-08-22 Paul Eggert <eggert@cs.ucla.edu>
8067
8068 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
8069 Otherwise, the compiler complains about (A?B:C) where B is void
fc0c31f8 8070 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
d733ec6d
PE
8071 (fontset_add): Return void, for FONTSET_ADD.
8072
d0d2d26f
PE
80732012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8074
fce31d69
PE
8075 * alloc.c: Use bool for booleans.
8076 (gc_in_progress, abort_on_gc)
8077 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
8078 (dont_register_blocks) [GC_MALLOC_CHECK]:
8079 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
8080 (check_string_bytes, make_specified_string, memory_full)
8081 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
8082 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
8083 (mark_stack, valid_pointer_p, make_pure_string)
8084 (Fgarbage_collect, survives_gc_p, gc_sweep):
8085 Use bool for booleans, instead of int.
8086 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
8087 Remove unused local.
8088 * alloc.c (PURE_POINTER_P):
8089 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
8090 * editfns.c (Fformat):
8091 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
8092 (Fdo_auto_save):
8093 * fns.c (sweep_weak_table):
8094 * lisp.h (suppress_checking, push_message, survives_gc_p)
8095 (make_pure_string, gc_in_progress, abort_on_gc):
8096 * lread.c (readchar, read1):
8097 * print.c (Fprin1_to_string):
8098 * xdisp.c (push_message):
8099 Use bool for booleans affected directly or indirectly by
8100 alloc.c's changes.
8101
d0d2d26f
PE
8102 Make recently-introduced setters macros.
8103 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
8104 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
8105 (set_fontset_default, set_fontset_fallback): Rename from their
8106 upper-case counterparts, and make them functions rather than macros.
8107 This is more consistent with the other recently-introduced setters.
8108 These don't need to be inline, since they're local.
8109
d18e2bb6
JD
81102012-08-21 Jan Djärv <jan.h.d@swipnet.se>
8111
8112 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
8113 the loop (Bug#12247).
8114
1b9d9d16
PE
81152012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8116
8117 * lisp.h (vcopy): Use memcpy rather than our own loop.
8118 This fixes a performance regression introduced by the recent
8119 addition of vcopy. This means 'vcopy' will need to be modified
8120 for a copying collector, but that's OK. Also, tighten the
8121 checking in the assertion.
8122
b2f09701
EZ
81232012-08-21 Eli Zaretskii <eliz@gnu.org>
8124
8125 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
8126 components for RTL text (Bug#11860). Adjust X-OFFSET of each
8127 non-base glyph for the width of the base character, according to
e1f29348
BR
8128 what x_draw_composite_glyph_string_foreground expects.
8129 Generate WADJUST value according to composition_gstring_width's
b2f09701
EZ
8130 expectations, to produce correct width of the composed character.
8131 Reverse the sign of the DU offset produced by ScriptPlace.
8132
9b994fed
PE
81332012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8134
8135 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
8136
086ca913
DA
81372012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
8138
8139 Avoid direct writes to contents member of struct Lisp_Vector.
8140 * lisp.h (vcopy): New function to copy data into vector.
8141 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
8142 * fns.c (Ffillarray): Use ASET.
8143 * keyboard.c (timer_check_2): Use AREF and ASET.
8144 (append_tool_bar_item, Frecent_keys): Use vcopy.
8145 * lread.c (read_vector): Use ASET.
8146 * msdos.c (Frecent_doskeys): Use vcopy.
8147 * xface.c (Finternal_copy_lisp_face): Use vcopy.
8148 (Finternal_merge_in_global_face): Use ASET and vcopy.
8149 * xfont.c (xfont_list_pattern): Likewise.
8150
5481664a
MR
81512012-08-21 Martin Rudalics <rudalics@gmx.at>
8152
8153 * window.c (Fwindow_point): For the selected window always return
8154 the position of its buffer's point.
8155 (Fset_window_point): For the selected window always go in its
8156 buffer to the specified position.
8157
6d470bdd
DA
81582012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
8159
8160 Setter macros for fontsets.
8161 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
8162 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
8163 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
8164 Adjust users.
8165
24564fe1
GM
81662012-08-20 Glenn Morris <rgm@gnu.org>
8167
8168 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
8169 Don't assume that `ln -f' works.
8170
0a05a035
EZ
81712012-08-20 Eli Zaretskii <eliz@gnu.org>
8172
8173 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
8174 and later about non-assignments with no effect. See discussion at
8175 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
8176 details.
8177
e46f2325
DA
81782012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8179
8180 Inline setter functions for Lisp_Objects slots of struct specbinding.
8181 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
8182 Adjust users.
8183
734fbd86
MR
81842012-08-20 Martin Rudalics <rudalics@gmx.at>
8185
8186 * window.c (select_window): Always make selected window's buffer
8187 current.
8188
f1a95992
DA
81892012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8190
8191 Use AREF and ASET for docstrings of category tables.
8192 * category.h (CATEGORY_DOCSTRING): Use AREF.
8193 (SET_CATEGORY_DOCSTRING): Use ASET.
8194 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
8195
e83064be
DA
81962012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8197
8198 Inline setter functions for hash table members.
8199 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
8200 (set_hash_hash, set_hash_index): Rename with _slot suffix.
8201 (set_hash_key_and_value, set_hash_index, set_hash_next)
8202 (set_hash_hash): New functions.
8203 * charset.c, fns.c: Adjust users.
8204
4ce60d2e
DA
82052012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8206
8207 Inline getter and setter functions for per-buffer values.
8208 * buffer.h (per_buffer_default, set_per_buffer_default)
8209 (per_buffer_value, set_per_buffer_value): New functions.
8210 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
8211 * buffer.c, data.c: Adjust users.
8212
c06c9690
JB
82132012-08-20 Juanma Barranquero <lekktu@gmail.com>
8214
8215 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
8216
32bd4250
PE
82172012-08-19 Paul Eggert <eggert@cs.ucla.edu>
8218
bad03192 8219 Rely on <config.h> + <unistd.h> to declare 'environ',
b69a6d22
PE
8220 as gnulib does this if the system doesn't.
8221 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
72279493
EZ
8222 Remove declaration. MS-Windows declares it on stdlib.h which is
8223 included by conf_post.h.
b69a6d22
PE
8224 * emacs.c (environ) [DOUG_LEA_MALLOC]:
8225 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
8226 * vm-limit.c: Include <unistd.h>, for 'environ'.
8227
22d7feb2
PE
8228 * unexaix.c, unexcoff.c: Include "mem-limits.h".
8229 (start_of_data): Remove decl; mem-limits.h provides it.
8230
32bd4250
PE
8231 * xdisp.c (handle_invisible_prop): Make it a bit faster
8232 and avoid a gcc -Wmaybe-uninitialized diagnostic.
8233
450809af
CY
82342012-08-19 Chong Yidong <cyd@gnu.org>
8235
8236 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
8237 ends (Bug#3874).
8238
9e677988
AS
82392012-08-19 Andreas Schwab <schwab@linux-m68k.org>
8240
6b1319ce
AS
8241 * .gdbinit: Use call instead of set when calling a function in the
8242 inferior.
8243
9e677988
AS
8244 * data.c (set_internal): Don't use set_blv_found.
8245 (Fkill_local_variable): Likewise.
8246
d7191076
AA
82472012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
8248
8249 * nsfont.m (ns_ascii_average_width): Ensure the string
8250 ascii_printable is initialized with a null-terminated character
8251 array. Otherwise, it can contain undesired extra characters.
8252
e757f1c6
PE
82532012-08-18 Paul Eggert <eggert@cs.ucla.edu>
8254
8255 port new setting code to Sun C 5.8 2005/10/13
8256 * chartab.c, lisp.h (char_table_set, char_table_set_range):
8257 Return void, not Lisp_Object. Otherwise, the compiler
8258 complains about (A?B:C) where B is void and C is Lisp_Object
8259 when compiling CHAR_TABLE_SET, due to the recent change to
8260 the API of sub_char_table_set_contents.
8261
a999ce26
CY
82622012-08-18 Chong Yidong <cyd@gnu.org>
8263
8264 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
8265 for the string case (Bug#3874).
8266
3f22b86f
PE
82672012-08-18 Paul Eggert <eggert@cs.ucla.edu>
8268
39eb03f1
PE
8269 * buffer.h (BSET): Remove (Bug#12215).
8270 Replace all uses with calls to new setter functions.
8271 (bset_bidi_paragraph_direction, bset_case_canon_table)
8272 (bset_case_eqv_table, bset_directory, bset_display_count)
8273 (bset_display_time, bset_downcase_table)
8274 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
8275 (bset_last_selected_window, bset_local_var_alist)
8276 (bset_mark_active, bset_point_before_scroll, bset_read_only)
8277 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
8278 (bset_width_table):
8279 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
8280 (bset_auto_fill_function, bset_auto_save_file_format)
8281 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
8282 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
8283 (bset_cache_long_line_scans, bset_case_fold_search)
8284 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
8285 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
8286 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
8287 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
8288 (bset_header_line_format, bset_indicate_buffer_boundaries)
8289 (bset_indicate_empty_lines, bset_invisibility_spec)
8290 (bset_left_fringe_width, bset_major_mode, bset_mark)
8291 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
8292 (bset_name, bset_overwrite_mode, bset_pt_marker)
8293 (bset_right_fringe_width, bset_save_length)
8294 (bset_scroll_bar_width, bset_scroll_down_aggressively)
8295 (bset_scroll_up_aggressively, bset_selective_display)
8296 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
8297 (bset_word_wrap, bset_zv_marker):
8298 * category.c (bset_category_table):
8299 * syntax.c (bset_syntax_table):
8300 New setter functions.
8301
6a09a33b
PE
8302 * process.h (PSET): Remove (Bug#12215).
8303 Replace all uses with calls to new setter functions.
8304 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8305 (PROCESS_INLINE): New macro.
8306 (pset_childp): New setter function.
8307 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
8308 * process.c (PROCESS_INLINE):
8309 Define to EXTERN_INLINE, so that the corresponding functions
8310 are compiled into code.
8311 (pset_buffer, pset_command, pset_decode_coding_system)
8312 (pset_decoding_buf, pset_encode_coding_system)
8313 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
8314 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
8315 (pset_type, pset_write_queue): New setter functions.
8316
e8c17b81
PE
8317 * window.h (WSET): Remove (Bug#12215).
8318 Replace all uses with calls to new setter functions.
8319 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8320 (WINDOW_INLINE): New macro.
8321 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
8322 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
8323 (wset_total_lines, wset_vertical_scroll_bar)
8324 (wset_window_end_pos, wset_window_end_valid)
8325 (wset_window_end_vpos): New setter functions.
8326 * window.c (WINDOW_INLINE):
8327 Define to EXTERN_INLINE, so that the corresponding functions
8328 are compiled into code.
8329 (wset_combination_limit, wset_dedicated, wset_display_table)
8330 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
8331 (wset_new_normal, wset_new_total, wset_next_buffers)
8332 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
8333 (wset_prev_buffers, wset_right_fringe_width)
8334 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
8335 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
8336 (wset_window_parameters):
8337 * xdisp.c (wset_base_line_number, wset_base_line_pos)
8338 (wset_column_number_displayed, wset_region_showing):
8339 New setter functions.
8340
3f22b86f
PE
8341 * termhooks.h (TSET): Remove (Bug#12215).
8342 Replace all uses with calls to new setter functions.
8343 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8344 (TERMHOOKS_INLINE): New macro.
8345 (tset_charset_list, tset_selection_alist): New setter functions.
8346 * terminal.c (TERMHOOKS_INLINE):
8347 Define to EXTERN_INLINE, so that the corresponding functions
8348 are compiled into code.
8349 (tset_param_alist): New setter function.
8350
742af32f
PE
83512012-08-17 Paul Eggert <eggert@cs.ucla.edu>
8352
15dbb4d6
PE
8353 * keyboard.h (KSET): Remove (Bug#12215).
8354 Replace all uses with calls to new setter functions.
8355 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8356 (KEYBOARD_INLINE): New macro.
8357 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
8358 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
8359 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
8360 New setter functions.
8361 * keyboard.c (KEYBOARD_INLINE):
8362 Define to EXTERN_INLINE, so that the corresponding functions
8363 are compiled into code.
8364 (kset_echo_string, kset_kbd_queue)
8365 (kset_keyboard_translate_table, kset_last_prefix_arg)
8366 (kset_last_repeatable_command, kset_local_function_key_map)
8367 (kset_overriding_terminal_local_map, kset_real_last_command)
8368 (kset_system_key_syms): New setter functions.
8369
f00af5b1
PE
8370 * frame.h (FSET): Remove (Bug#12215).
8371 Replace all uses with calls to new setter functions.
8372 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8373 (FRAME_INLINE): New macro.
8374 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
8375 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
8376 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
8377 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
8378 (fset_param_alist, fset_root_window, fset_scroll_bars)
8379 (fset_selected_window, fset_title, fset_tool_bar_items)
8380 (fset_tool_bar_position, fset_tool_bar_window): New functions.
8381 * frame.c (FRAME_INLINE):
8382 Define to EXTERN_INLINE, so that the corresponding functions
8383 are compiled into code.
8384 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
8385
0c94c8d6
PE
8386 A few more naming-convention fixes for getters and setters.
8387 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
8388 and rename from buffer_overlays_set_before.
8389 (set_buffer_overlays_after): Move here from buffer.h, and rename
8390 from buffer_overlays_set_after.
8391 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
8392 All uses changed.
8393 (set_buffer_intervals): Rename from buffer_set_intervals.
8394 * intervals.c (set_interval_object): Move here from intervals.h,
8395 and rename from interval_set_object.
8396 (set_interval_left): Move here from intervals.h, and rename from
8397 interval_set_left.
8398 (set_interval_right): Move here from intervals.h, and rename from
8399 interval_set_right.
8400 (copy_interval_parent): Move here from intervals.h, and rename from
8401 interval_copy_parent.
8402 * intervals.h (set_interval_parent): Rename from interval_set_parent.
8403 (set_interval_plist): Rename from interval_set_plist.
8404 Return void, not Lisp_Object, since no caller uses the result.
8405 * lisp.h (string_intervals): Rename from string_get_intervals.
8406 (set_string_intervals): Rename from string_set_intervals.
8407
34dabdb7
PE
8408 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
8409 (set_char_table_contents): Rename from char_table_set_contents.
0b390a9d 8410 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
34dabdb7
PE
8411 All uses changed. See the end of
8412 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
8413
742af32f
PE
8414 * lisp.h (CSET): Remove (Bug#12215).
8415 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
8416 (set_char_table_purpose): New functions,
8417 replacing CSET. All uses changed. For example, replace
8418 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
c24eb18a 8419 "set_char_table_parent (char_table, parent);".
742af32f
PE
8420 The old version was confusing because it used the same name
8421 'parent' for two different things.
8422
a04e2c62
DA
84232012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
8424
8425 Functions to get and set Lisp_Object fields of buffer-local variables.
8426 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
8427 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
8428 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
8429 * data.c, eval.c, frame.c: Adjust users.
8430
383dcbf9
CY
84312012-08-17 Chong Yidong <cyd@gnu.org>
8432
8433 * xfaces.c (merge_face_vectors): If the target font specfies a
8434 font spec, make the font's attributes take precedence over
8435 directly-specified attributes.
8436 (merge_face_ref): Recognize :font.
8437
44386687
DA
84382012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
8439
8440 Do not use memcpy for copying intervals.
8441 * intervals.c (reproduce_interval): New function.
8442 (reproduce_tree, reproduce_tree_obj): Use it.
8443 (reproduce_tree_obj): Remove prototype.
8444
927c7216
PE
84452012-08-17 Paul Eggert <eggert@cs.ucla.edu>
8446
8447 * lisp.h (duration_to_sec_usec): Remove unused decl.
8448
93044f7b
AA
84492012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
8450
8451 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
8452 to an allocated instance of NSString, not to the class itself.
8453
9851e4a5
JB
84542012-08-17 Juanma Barranquero <lekktu@gmail.com>
8455
8456 * makefile.w32-in (C_CTYPE_H): New macro.
8457 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
8458 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
8459 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
8460
620f13b0
PE
84612012-08-16 Paul Eggert <eggert@cs.ucla.edu>
8462
8463 Use ASCII tests for character types.
8464 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
8465 * xfns.c, xterm.c:
8466 Don't include <ctype.h>; was not needed.
8467 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
8468 * sysdep.c, xfaces.c:
8469 Include <c-ctype.h> instead of <ctype.h>.
8470 * nsterm.m: Include <c-ctype.h>.
8471 * charset.c (read_hex):
8472 * doc.c (Fsnarf_documentation):
8473 * fileio.c (IS_DRIVE) [WINDOWSNT]:
8474 (DRIVE_LETTER) [DOS_NT]:
8475 (Ffile_name_directory, Fexpand_file_name)
8476 (Fsubstitute_in_file_name):
8477 * font.c (font_parse_xlfd, font_parse_fcname):
8478 * frame.c (x_set_font_backend):
8479 * gtkutil.c (xg_get_font):
8480 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
8481 * nsimage.m (hexchar):
8482 * nsterm.m (ns_xlfd_to_fontname):
8483 * sysdep.c (system_process_attributes):
8484 * xfaces.c (hash_string_case_insensitive):
8485 Use C-locale tests instead of locale-specific tests for character
8486 types, since we want the ASCII interpretation here, not the
8487 interpretation suitable for whatever happens to be the current locale.
8488
52162052
MR
84892012-08-16 Martin Rudalics <rudalics@gmx.at>
8490
8491 Consistently check windows for validity/liveness
8492 (Bug#11984, Bug#12025, Bug#12026).
8493 * lisp.h (CHECK_VALID_WINDOW): New macro.
8494 * window.c (decode_window): Rename to decode_live_window.
8495 (decode_valid_window, Fwindow_valid_p): New functions.
8496 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
8497 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
8498 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
8499 (Fwindow_prev_sibling, Fwindow_combination_limit)
8500 (Fset_window_combination_limit, Fwindow_use_time)
8501 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
8502 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
8503 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
8504 (Fwindow_hscroll, Fset_window_hscroll)
8505 (Fwindow_redisplay_end_trigger)
8506 (Fset_window_redisplay_end_trigger, Fwindow_edges)
8507 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
8508 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
8509 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
8510 (Fwindow_end, Fset_window_point, Fset_window_start)
8511 (Fpos_visible_in_window_p, Fwindow_line_height)
8512 (Fwindow_dedicated_p, Fset_window_dedicated_p)
8513 (Fwindow_prev_buffers, Fset_window_prev_buffers)
8514 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
8515 (Fset_window_parameter, Fwindow_display_table)
8516 (Fset_window_display_table, Fdelete_other_windows_internal)
8517 (Fset_window_buffer, Fset_window_new_total)
8518 (Fset_window_new_normal, Fdelete_window_internal)
8519 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
8520 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
8521 (Fwindow_scroll_bars): Check whether argument window is a valid or
8522 live window. Update doc-strings.
8523 (syms_of_window): New symbol Qwindow_valid_p.
8524 * keyboard.c (Fposn_at_x_y): Check whether argument
8525 frame_or_window denotes a valid window.
8526
2751c80f
DA
85272012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
8528
8529 Fix previous char table change.
8530 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
8531 * chartab.c (optimize_sub_char_table): Likewise.
8532
032a42c8
CY
85332012-08-16 Chong Yidong <cyd@gnu.org>
8534
a2d19368
CY
8535 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
8536
032a42c8
CY
8537 * xfont.c (xfont_open):
8538 * xftfont.c (xftfont_open): Set the font's max_width field.
8539
8540 * nsfont.m (nsfont_open): Similar to the Xft backend, set
8541 min_width to space_width and average_width to the average over
8542 printable ASCII characters.
8543 (ns_char_width): Code cleanup.
8544 (ns_ascii_average_width): New utility function.
8545
8546 * font.h (struct font): Update comments.
8547
a098c930
DA
85482012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
8549
032a42c8 8550 Simple interface to set Lisp_Object fields of character tables.
a098c930
DA
8551 * lisp.h (CSET): New macro.
8552 (char_table_set_extras, char_table_set_contents)
8553 (sub_char_table_set_contents): New function.
8554 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
8555 * syntax.c: Adjust users.
8556
8be3a09c
SM
85572012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
8558
8559 * eval.c (eval_sub): Bind lexical-binding.
8560 * lread.c (Qlexical_binding): Make non-static.
8561
ac4845a6
JD
85622012-08-15 Jan Djärv <jan.h.d@swipnet.se>
8563
ddee6515
JD
8564 * nsmenu.m (popupSession): Remove.
8565 (pop_down_menu): Remove endModalSession.
8566 (timeout_handler:): New method.
8567 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
8568 Call runModalForWindow. Check timer_fired when it returns.
8569 If not set, cancel timer and break out of loop.
8570 Otherwise loop again, with a new timeout.
8571
8572 * nsterm.m: Include fcntl.h if present.
8573 (fd_entry, t_readfds, inNsSelect): Remove.
8574 (select_writefds, select_valid, select_timeout, selfds)
8575 (select_mutex, apploopnr): Add.
8576 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
8577 Otherwise call kbd_buffer_store_event.
8578 (ns_send_appdefined): Remove release of fd_entry.
8579 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
8580 Increment and decrement apploopnr.
8581 (ns_select): If no file descriptors, just do a NSTimer.
8582 Otherwise copy read/write masks and start select thread (fd_handler).
8583 Start main loop and wait for application defined event.
8584 Inform select thread to stop selecting after main loop is exited.
8585 (ns_term_init): Create selfds pipe and set non-blocking.
fc0c31f8 8586 Initialize select_mutex. Start the select thread (fd_handler).
ddee6515
JD
8587 (fd_handler:): Loop forever, wait for info from the main thread
8588 to either start or stop selecting. When select returns, send
8589 and appdefined event.
8590 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
8591 If not call kbd_buffer_store_event.
8592
8593 * nsterm.h (EmacsApp): fd_handler takes id argument.
8594 (EmacsDialogPanel): Add timer_fired and timeout_handler.
8595
ac4845a6
JD
8596 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
8597
eb424fe3
EZ
85982012-08-15 Eli Zaretskii <eliz@gnu.org>
8599
8600 * region-cache.c (move_cache_gap): Update gap_len using the actual
8601 growth of the boundaries array. Do not change cache_len.
8602 (Bug#12196)
8603
4e6a86c6
DA
86042012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
8605
8606 Generalize and cleanup font subsystem checks.
8607 * font.h (FONT_DEBUG, font_assert): Remove.
8be3a09c
SM
8608 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
8609 Change font_assert to eassert. Use eassert where appropriate.
4e6a86c6 8610
5bf192ca
DA
86112012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
8612
8613 * gtkutil.c (xg_get_font): Use pango_units_to_double.
8614
f2045622
CY
86152012-08-15 Chong Yidong <cyd@gnu.org>
8616
8be3a09c
SM
8617 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
8618 When using the new font chooser, use gtk_font_chooser_get_font_desc to
8619 extract the font descriptor instead of just the font name.
8620 In that case, return a font spec instead of a string.
f2045622
CY
8621 (x_last_font_name): Move to this file from xfns.c.
8622
8623 * xfns.c (Fx_select_font): The return value can also be a font
8624 spec. Move x_last_font_name management to gtkutil.c.
8625
8626 * xfaces.c: Make font weight and style symbols non-static.
8627
7f6feb56
SM
86282012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
8629
8630 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
8631 (bug#12117).
8632
fecbd8ff
SM
86332012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
8634
8635 * alloc.c (Fgarbage_collect): Use plural form consistently.
8636
9b8d5165
EZ
86372012-08-14 Eli Zaretskii <eliz@gnu.org>
8638
8639 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
8640 iteration through the command loop. Fixes a problem whereby mouse
8641 movements are ignored until the first mouse click.
8642
f5d9e83a
PE
86432012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8644
8645 Use bool, not int, for Lisp booleans.
8646 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
8647 makes Emacs a bit smaller and presumably a bit faster.
8648 * lisp.h: Include <stdbool.h>.
8649 (struct Lisp_Boolfwd, defvar_bool):
8650 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
8651 * regex.c [!emacs]: Include <stdbool.h>.
8652 (false, true): Remove; <stdbool.h> does this for us now.
8653
55802e4a
CY
86542012-08-14 Chong Yidong <cyd@gnu.org>
8655
4abcdac8
CY
8656 * character.c (Fcharacterp): Doc fix (Bug#12076).
8657
8658 * data.c (Findirect_variable): Doc fix (Bug#11040).
8659
55802e4a
CY
8660 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
8661
8662 * editfns.c (Fformat): Doc fix (Bug#12059).
4abcdac8 8663 (Fsave_current_buffer): Doc fix (Bug#11542).
55802e4a 8664
8e99d072
BR
86652012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
8666
8667 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
8668 (bug#12022).
8669
08908aca
MR
86702012-08-14 Martin Rudalics <rudalics@gmx.at>
8671
8672 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
8673 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
8674 * minibuf.c (choose_minibuf_frame, read_minibuf):
8675 * w32fns.c (x_create_tip_frame):
8676 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
8677 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
8678
56120d6f
PE
86792012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8680
8681 * intervals.c (offset_intervals): Remove obsolete comment.
8682
67b77c0b
AS
86832012-08-14 Andreas Schwab <schwab@linux-m68k.org>
8684
8685 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
8686
f48b82fd
GR
86872012-08-14 Gergely Risko <gergely@risko.hu>
8688
8689 * coding.c (decode_coding): Record buffer modification before
8690 disabling undo_list (Bug#11773).
8691
fd318b54
DA
86922012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8693
8694 Revert and cleanup some recent overlay changes.
8695 * buffer.h (enum overlay_type): Remove.
8696 (buffer_get_overlays, buffer_set_overlays): Likewise.
8697 (buffer_set_overlays_before, buffer_set_overlays_after):
8698 New function. Adjust users.
8699 (unchain_both): Add eassert.
8700
41a62dd9
DA
87012012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8702
8703 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
8704
5884c324
PE
87052012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8706
8707 * gtkutil.c (xg_mark_data): Don't assume C99.
8708
ca06f160
JD
87092012-08-13 Jan Djärv <jan.h.d@swipnet.se>
8710
8711 * gtkutil.c (xg_frame_tb_info): New struct.
8712 (TB_INFO_KEY): New define.
8713 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
8714 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
8715 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
8716 if not present.
8717 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
fc0c31f8 8718 is up to date. Otherwise store new data.
ca06f160
JD
8719 (free_frame_tool_bar): Free xg_frame_tb_info if present.
8720
7864a3f7
DA
87212012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8722
8723 Use KSET for write access to Lisp_Object members of struct kboard.
8724 * keyboard.h (KSET): New macro.
8725 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
8726 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
8727 * xterm.c: Adjust users.
8728
4c31be61
DA
87292012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8730
8731 Use BSET for write access to Lisp_Object members of struct buffer.
8732 * buffer.h (BSET): New macro.
8733 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
8734 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
8735 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
8736 * window.c, xdisp.c, xfns.c: Adjust users.
8737
14ae4239
BT
87382012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
8739
8740 * lread.c (syms_of_lread): Initialize Vlexical_binding.
8741
32bcadb4
JD
87422012-08-11 Jan Djärv <jan.h.d@swipnet.se>
8743
3d29b2ce 8744 * nsterm.m (not_in_argv): New function.
fc0c31f8 8745 (application:openFile, application:openTempFile:):
3d29b2ce
JD
8746 (application:openFileWithoutUI:, application:openFiles:): Open file
8747 if not_in_argv returns non-zero (bug#12171).
8748
32bcadb4 8749 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
14ae4239
BT
8750 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
8751 Define for Gtk+ versions less than 3.2.
32bcadb4
JD
8752 (xg_get_font_name): Use those functions/macros here.
8753 Reported by Frans Oilinki <moilinki@gmail.com>.
8754
9ff9402d 87552012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8ccd072a
YM
8756
8757 * unexmacosx.c (copy_data_segment): Copy initialized data in
8758 statically linked libraries from input file rather than memory.
8759
db74a5fc
YM
8760 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
8761 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
8762 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
8763
25e65510
GM
87642012-08-10 Glenn Morris <rgm@gnu.org>
8765
8766 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
8767 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
8768
7961135c
DA
87692012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8770
8771 Fix last change to allow compilation with low optimization levels.
8772 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
8773 Reported by Jan Djärv <jan.h.d@swipnet.se>.
8774
42b3a444
DA
87752012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8776
8777 Use common inline syntax in intervals.h.
8778 * intervals.h (INTERVALS_INLINE): New macro.
8779 Change all users from LISP_INLINE.
8780
9fb0c957
DA
87812012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8782
8783 Define Qnone once for all platforms.
8784 * frame.c (Qnone): Define here.
8785 (syms_of_frame): DEFSYM it.
8786 * lisp.h (Qnone): New declaration.
8787 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
8788 * xfns.c: Remove duplication. Adjust users.
8789
65e8ee52
DA
87902012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8791
8792 Remove unused macros from intervals.h.
8793 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
8794 * intervals.c: Adjust comment.
8795
9b855fd6
EZ
87962012-08-10 Eli Zaretskii <eliz@gnu.org>
8797
8798 * w32fns.c <w32_unicode_gui>: New static variable.
8799 (globals_of_w32fns): Initialize it according to os_subtype.
8800 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
8801 testing os_subtype.
8802
39cb9e56 88032012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
d30be705
EZ
8804 Eli Zaretskii <eliz@gnu.org>
8805
8806 Fix bug #10299 with Unicode characters sent by customized
8807 keyboards created by MSKLC.
8808 * w32fns.c (INIT_WINDOW_CLASS): New macro.
8809 (w32_init_class): Use it to initialize the Emacs class with either
8810 ANSI or Unicode API calls.
8811 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
8812 later.
8813 (w32_wnd_proc): If the character code sent by WM_CHAR or
8814 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
8815 original message. Call DefWindowProcW on NT and later.
8816
9374581a
GM
88172012-08-10 Glenn Morris <rgm@gnu.org>
8818
4b94e8cf
GM
8819 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
8820
9374581a
GM
8821 * lisp.h (DIRECTORY_SEP): Let configure set it.
8822
a2752828
DA
88232012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
8824
8825 Use TSET for write access to Lisp_Object slots of struct terminal.
8826 * termhooks.h (TSET): New macro.
8827 * coding.c, terminal.c, xselect.c: Adjust users.
8828
cc92c454
SM
88292012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
8830
8831 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
8832 the failing expression, include them in the error message.
8833 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
8834 * lisp.h (internal_condition_case_n): Update declaration.
8835
4cb3e6b3
DA
88362012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8837
8838 Inline functions to examine and change buffer overlays.
8839 * buffer.c (unchain_both): New function.
8840 * buffer.h (buffer_get_overlays, buffer_set_overlays):
8841 (buffer_has_overlays): New function.
8842 (enum overlay_type): New enum.
8843 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
8844 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
8845
8707c1e5
DA
88462012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8847
8848 Inline functions to examine and change buffer intervals.
8849 * alloc.c (mark_interval_tree): Remove.
8850 (MARK_INTERVAL_TREE): Simplify.
8851 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
8852 * intervals.c (buffer_balance_intervals): New function.
8853 (graft_intervals_into_buffer): Adjust indentation.
8854 (set_intervals_multibyte): Simplify.
8855 * buffer.h (BUF_INTERVALS): Remove.
8856 (buffer_get_intervals, buffer_set_intervals): New function.
8857 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
8858 * intervals.c, textprop.c: Adjust users.
8859
ad8c997f
DA
88602012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8861
8862 Inline functions to examine and change string intervals.
8863 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
8864 (string_get_intervals, string_set_intervals): New function.
8865 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
8866 * lread.c, print.c, textprop.c: Adjust users.
8867
32ac3a6b
GM
88682012-08-08 Glenn Morris <rgm@gnu.org>
8869
8870 * lisp.mk (lisp): Remove language/persian.elc.
8871
77c7bcb1
DA
88722012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8873
8874 Cleanup intervals.
8875 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
8876 (NULL_INTERVAL_P): Likewise. Adjust users.
14ae4239
BT
8877 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
8878 Adjust comment. Move under #if 0.
77c7bcb1
DA
8879 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
8880 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
8881
9c08a8d4
DA
88822012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8883
8884 Check total length of intervals with eassert.
8885 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
8886 * intervals.c: Change all users to eassert.
8887
26d16b35
EZ
88882012-08-07 Eli Zaretskii <eliz@gnu.org>
8889
14ae4239
BT
8890 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
8891 Rename fields to match removal of FGET and WGET and disuse of
26d16b35
EZ
8892 INTERNAL_FIELD in Lisp_Cons.
8893
c644523b
DA
88942012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8895
8896 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
8897 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
8898 name since all xname users are fixed long time ago. Do not
8899 use INTERNAL_FIELD.
8900 (set_symbol_name, set_symbol_function, set_symbol_plist):
8901 (set_symbol_next, set_overlay_plist): New function.
8902 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
8903 (struct Lisp_Overlay): Likewise.
8904 (CVAR, MVAR, SVAR): Remove.
8905 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
8906 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
8907 * xterm.c: Adjust users.
8908 * .gdbinit: Change to use name field of struct Lisp_Symbol
8909 where appropriate.
8910
6a3d20cc
DA
89112012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8912
8913 Basic functions to set Lisp_Object and pointer slots of intervals.
8914 * intervals.h (interval_set_parent, interval_set_object):
8915 (interval_set_left, interval_set_right, interval_set_plist):
8916 (interval_copy_parent): New function.
8917 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
14ae4239
BT
8918 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
8919 Adjust indentation.
6a3d20cc
DA
8920 (INTERVAL_SIZE): Remove. Adjust users.
8921 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
8922
4d2b044c
DA
89232012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8924
8925 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
8926 * process.h (PGET): Remove.
8927 (struct Lisp_Process): Do not use INTERNAL_FIELD.
8928 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
8929
d3d50620
DA
89302012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8931
8932 Drop WGET and revert read access to Lisp_Objects slots of struct window.
8933 * window.h (WGET): Remove.
8934 (struct window): Do not use INTERNAL_FIELD.
8935 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
8936 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
8937 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
8938 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
8939 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
8940 Adjust users.
8941
d10a51dc
CY
89422012-08-07 Chong Yidong <cyd@gnu.org>
8943
8944 * window.c (Fwindow_edges, Fwindow_pixel_edges)
8945 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
8946 (Fdelete_window_internal): Signal an error if the window is not on
8947 a live frame (Bug#12025).
8948
e69b0960
DA
89492012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8950
8951 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
8952 * frame.h (FGET): Remove.
8953 (struct frame): Do not use INTERNAL_FIELD.
8954 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
8955 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
8956 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
8957 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
8958
25a20a3a
JB
89592012-08-06 Juanma Barranquero <lekktu@gmail.com>
8960
8961 * w32.c: Silence compiler warnings.
8962 (map_w32_filename): Remove unused variable `is_fat'.
8963 (chase_symlinks): Add parentheses around expression.
8964
1c6f11f4
GM
89652012-08-06 Glenn Morris <rgm@gnu.org>
8966
1db4583a
GM
8967 * sysdep.c: Respect BROKEN_GETWD.
8968
1c6f11f4
GM
8969 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
8970 Let configure handle it.
8971 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
8972
2b90362b
DA
89732012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8974
8975 Use GCALIGNMENT where appropriate.
8976 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
8977 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
8978 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
8979
5f50daf2
EZ
89802012-08-06 Eli Zaretskii <eliz@gnu.org>
8981
14ae4239
BT
8982 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
8983 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5f50daf2 8984
cbcc7007
SM
89852012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
8986
8987 * buffer.h (struct buffer): Revert `indirections' to a simple int;
8988 that should be sufficient for everyone.
8989
4d365fa4
JD
89902012-08-06 Jan Djärv <jan.h.d@swipnet.se>
8991
8992 * keyboard.c (timer_check_2): Add break so timer_check returns next
8993 timeout.
8994
dd86bd82
DA
89952012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8996
8997 Fix Windows build errors introduced after converting to WGET and WSET.
8998 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
8999 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
9000
054e1668
JD
90012012-08-06 Jan Djärv <jan.h.d@swipnet.se>
9002
9003 * nsterm.m (ns_frame_rehighlight): Use FSET.
9004
9005 * nsmenu.m (ns_update_menubar): Use FSET.
9006
21238f11
DA
90072012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9008
9009 Separate read and write access to Lisp_Object slots of Lisp_Process.
9010 * process.h (PGET, PSET): New macros similar to AREF and ASET.
9011 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
9012
077288cf
DA
90132012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9014
9015 Separate read and write access to Lisp_Object slots of struct window.
9016 * window.h (WGET, WSET): New macros similar to AREF and ASET.
9017 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
9018 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
9019 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
9020 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
9021 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
9022 Adjust users.
9023
71688bd7
DA
90242012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9025
9026 Fix Windows build errors introduced after converting to FGET and FSET.
9027 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
9028 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
9029 (w32_judge_scroll_bars): Change to use FSET.
9030 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
9031
f99bac93
DA
90322012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9033
9034 Fix replacement typo.
9035 * window.c (replace_window): Set root_window instead of
9036 selected_window. This fixes a total window subsystem
9037 malfunction reported by Bastien Guerry <bzg@gnu.org>.
9038
8c2a0f2d
GM
90392012-08-06 Glenn Morris <rgm@gnu.org>
9040
9041 * lisp.mk (lisp): Add language/persian.elc.
9042
edd74c35
DA
90432012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9044
9045 Separate read and write access to Lisp_Object slots of struct frame.
9046 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
9047 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
9048 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
9049 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
9050 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
9051
8671676c
AS
90522012-08-05 Andreas Schwab <schwab@linux-m68k.org>
9053
9054 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
9055
663e2b3f
DA
90562012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
9057
9058 Generalize common compile-time constants.
9059 * lisp.h (header_size, bool_header_size, word_size): Now here.
9060 (struct Lisp_Vector): Add comment.
9061 (struct Lisp_Bool_Vector): Move up to define handy constants.
9062 (VECSIZE, PSEUDOVECSIZE): Simplify.
9063 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
9064 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
9065 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
9066 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
9067 * xfont.c, xmenu.c: Use word_size where appropriate.
9068
d32e47af
LM
90692012-08-05 Lawrence Mitchell <wence@gmx.li>
9070
9071 * search.c (Freplace_match): Treat \? in the replacement text
9072 literally (Bug#8161).
9073
e5d9c0d1
CY
90742012-08-05 Chong Yidong <cyd@gnu.org>
9075
9076 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
9077 * frame.c (Vdelete_frame_functions):
9078 * emacs.c (Vkill_emacs_hook): Doc fix.
9079
8da0576b
EZ
90802012-08-04 Eli Zaretskii <eliz@gnu.org>
9081
9082 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
9083 --with-x-toolkit=no builds.
9084 Reported by Carsten Mattner <carstenmattner@gmail.com>.
9085
02676e5d
CY
90862012-08-04 Chong Yidong <cyd@gnu.org>
9087
9088 * syntax.c (Fmodify_syntax_entry): Doc fix.
9089
97147da9
EZ
90902012-08-04 Eli Zaretskii <eliz@gnu.org>
9091
76151e2c
EZ
9092 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
9093 * w32.c (init_environment): Change the default values of many
9094 environment variables in dflt_envvars[] to NULL, to avoid pushing
14ae4239
BT
9095 them into environment when they were not already defined.
9096 Remove the code that deletes site-lisp subdirectories from the default
76151e2c 9097 value of EMACSLOADPATH, as it is no longer needed.
14ae4239
BT
9098 (check_windows_init_file): Now external, not static.
9099 Use Vload_path as is, without adding anything, as this function is now
76151e2c
EZ
9100 called when Vload_path is already set up.
9101
9102 * w32.h (check_windows_init_file): Add prototype.
9103
9104 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
9105 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
9106 compatibility with Posix platforms.
9107 (main): Move the call to check_windows_init_file to here from
9108 w32.c.
9109 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
9110 any, in the DEFALT argument into the root of the Emacs build or
9111 installation tree, as appropriate.
9112
9113 * callproc.c (init_callproc_1): Call decode_env_path instead of
9114 doing its equivalent by hand.
9115 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
9116 the code that sets Vexec_path run on MS-Windows.
9117
9118 * lread.c (init_lread): Add comments to #ifdef's.
9119
97147da9
EZ
9120 * msdos.c (dos_set_window_size, IT_update_begin)
9121 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
9122 instead of direct references.
9123
185ee146
PE
91242012-08-04 Paul Eggert <eggert@cs.ucla.edu>
9125
9126 Export DEFAULT_REHASH_* to GDB.
9127 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
9128 Now constants, not macros.
9129
8834c57a
PE
91302012-08-03 Paul Eggert <eggert@cs.ucla.edu>
9131
98c6f1e3
PE
9132 Remove unnecessary casts involving pointers.
9133 These casts are no longer needed now that we assume C89 or later,
9134 since they involve casting to or from void *.
9135 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
9136 (make_pure_float, make_pure_vector):
9137 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
9138 * macros.c (Fstart_kbd_macro):
9139 * menu.c (find_and_return_menu_selection):
9140 * minibuf.c (read_minibuf_noninteractive):
9141 * sysdep.c (closedir):
9142 * xdisp.c (x_produce_glyphs):
9143 * xfaces.c (compare_fonts_by_sort_order):
9144 * xfns.c (x_real_positions, select_visual):
9145 * xselect.c (x_stop_queuing_selection_requests)
9146 (x_get_window_property, x_get_window_property_as_lisp_data):
9147 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
9148 Remove unnecessary pointer casts.
9149 * alloc.c (record_xmalloc): New function.
9150 * lisp.h (record_xmalloc): New decl.
9151 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
9152 more like a function. This is because the pointer cast is not
9153 needed. All uses changed.
9154 * print.c (print_string, print_error_message): Avoid length recalc.
9155
8834c57a
PE
9156 Improve fix for macroexp crash with debugging (Bug#12118).
9157 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
9158 ARRAY_MARK_FLAG when checking subscripts, because ASET is
9159 not supposed to be invoked from the garbage collector.
9160 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
9161 (gc_aset): New function, which is like ASET but can be
9162 used in the garbage collector.
9163 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
9164 (set_hash_index): Use it instead of ASET.
9165
6dad7178
EZ
91662012-08-03 Eli Zaretskii <eliz@gnu.org>
9167
9168 Support symlinks on latest versions of MS-Windows.
9169 * w32.c: Include winioctl.h and aclapi.h.
9170 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
9171 (revert_to_self): Forward declarations of static functions.
9172 <static BOOL g_b_init_get_security_info>:
9173 <g_b_init_create_symbolic_link>: New static flags.
9174 (globals_of_w32): Initialize them to zero.
9175 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
9176 (map_w32_filename): Improve commentary. Simplify switch.
9177 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
9178 headers (most versions of MinGW w32api don't).
9179 (get_security_info, create_symbolic_link)
9180 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
9181 New functions.
9182 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
9183 in the argument file name.
9184 (sys_access): Call unc_volume_file_attributes only if
9185 GetFileAttributes fails with network-related error codes.
9186 (sys_rename): Diagnose renaming of a symlink when the user doesn't
9187 have the required privileges.
14ae4239 9188 (get_file_security_desc_by_name): Rename from
6dad7178
EZ
9189 get_file_security_desc.
9190 (stat_worker): New function, with most of the guts of 'stat', and
14ae4239
BT
9191 with addition of handling of symlinks and support for 'lstat'.
9192 If possible, get file's attributes and security information by
6dad7178
EZ
9193 handle, not by name. Produce S_IFLNK bit for symlinks, when
9194 called from 'lstat'.
9195 (stat, lstat): New functions, call 'stat_worker'.
9196 (symlink, readlink, careadlinkat): Rewritten to create and resolve
9197 symlinks when the underlying filesystem supports them.
9198
f162bcc3
PE
91992012-08-02 Paul Eggert <eggert@cs.ucla.edu>
9200
79ea6c20
PE
9201 Fix macroexp crash on Windows with debugging (Bug#12118).
9202 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
9203 checking subscripts; problem introduced with the recent
9204 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
9205 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
9206 since it's used in non-static inline functions now.
9207
c0ce93fd
PE
9208 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
9209 Don't assume buffer size fits in 'int'. Remove unused local.
c71f5156 9210
f162bcc3
PE
9211 Use C99-style 'extern inline' if available.
9212 * buffer.h (BUFFER_INLINE):
9213 * category.h (CATEGORY_INLINE):
9214 * character.h (CHARACTER_INLINE):
9215 * charset.h (CHARSET_INLINE):
9216 * composite.h (COMPOSITE_INLINE):
9217 * dispextern.h (DISPEXTERN_INLINE):
9218 * lisp.h (LISP_INLINE):
9219 * systime.h (SYSTIME_INLINE):
9220 New macro, replacing 'static inline' in this header.
9221 * buffer.h, category.h, character.h, charset.h, composite.h:
9222 * dispextern.h, lisp.h, systime.h:
9223 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
9224 * alloc.c (LISP_INLINE):
9225 * buffer.c (BUFFER_INLINE):
9226 * category.c (CATEGORY_INLINE):
9227 * character.c (CHARACTER_INLINE):
9228 * charset.c (CHARSET_INLINE):
9229 * composite.c (COMPOSITE_INLINE):
9230 * dispnew.c (DISPEXTERN_INLINE):
9231 * sysdep.c (SYSTIME_INLINE):
9232 Define to EXTERN_INLINE, so that the corresponding functions
9233 are compiled into code.
9234 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
9235 (INLINE_HEADER_END): New macros.
9236 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
9237 since it's used in non-static inline functions now.
a8333d03 9238 (VALMASK) [!USE_LSB_TAG]: Likewise.
f162bcc3 9239
837b365b
GM
92402012-08-02 Glenn Morris <rgm@gnu.org>
9241
d66b744d
GM
9242 * s/: Remove empty directory.
9243
837b365b
GM
9244 * s/ms-w32.h: Move to ../nt/inc.
9245 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
9246 Update for new ms-w32.h location.
9247
13294f95
PE
92482012-08-02 Paul Eggert <eggert@cs.ucla.edu>
9249
9250 Port to Solaris 8.
9251 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
9252
90df0db3
GM
92532012-08-02 Glenn Morris <rgm@gnu.org>
9254
9255 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
9256 hard-coding the path separator.
9257
4939150c
PE
92582012-08-01 Paul Eggert <eggert@cs.ucla.edu>
9259
9260 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
9261 This how ASET and AREF are supposed to work, and makes
9262 it easier to think about future improvements. See
9263 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
9264 * charset.h (set_charset_attr): New function.
9265 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
9266 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
9267 (aref_addr): New function. All uses of &AREF(...) changed.
9268 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
9269 (set_hash_index): New functions. All lvalue-style uses of
9270 HASH_KEY etc. changed.
9271 * keyboard.c (set_prop): New function. All lvalue-style uses
9272 of PROP changed.
9273
947b2afd
AA
92742012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
9275
9276 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
9277 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
1f9f395d 9278 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
947b2afd
AA
9279 * nsfns.m (ns_set_name_as_filename): Likewise.
9280 * nsmenu.m (ns_update_menubar): Likewise.
9281 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
9282
4f5d0325
EZ
92832012-08-01 Eli Zaretskii <eliz@gnu.org>
9284
2008beae
EZ
9285 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
9286 Adapt to latest changes in field names of the corresponding Lisp
288479f6 9287 objects.
2008beae 9288
4f5d0325
EZ
9289 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
9290
fe3cc771
GM
92912012-08-01 Glenn Morris <rgm@gnu.org>
9292
9293 * s/msdos.h: Remove file.
9294 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
9295 * Makefile.in (S_FILE): Remove.
9296 (config_h): Remove S_FILE.
9297
c90acc54
JB
92982012-08-01 Juanma Barranquero <lekktu@gmail.com>
9299
9300 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
9301 Remove; moved to nt/config.nt.
9302
d8a05828
DA
93032012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9304
9305 Use INTERNAL_FIELD for conses and overlays.
9306 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
9307 Remove obsolete comment.
9308 (MVAR): New macro.
9309 (struct Lisp_Overlay): Use INTERNAL_FIELD.
9310 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
9311
8271d590
DA
93122012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9313
9314 Use INTERNAL_FIELD for symbols.
9315 * lisp.h (SVAR): New macro. Adjust users.
9316 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
9317 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
9318
3193acd2
DA
93192012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9320
9321 Use INTERNAL_FIELD for processes.
9322 * process.h (PVAR): New macro. Adjust style.
9323 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
9324 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
9325
3a45383a
DA
93262012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9327
9328 Use INTERNAL_FIELD for windows.
9329 * window.h (WVAR): New macro.
9330 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
9331 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
9332 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
9333 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
9334 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
9335 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
9336
c1dbc63c
PE
93372012-08-01 Paul Eggert <eggert@cs.ucla.edu>
9338
9339 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
9340
5c0c0e8a
GM
93412012-08-01 Glenn Morris <rgm@gnu.org>
9342
9343 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
9344 Move to configure.ac.
9345
552a99b4
JB
93462012-08-01 Juanma Barranquero <lekktu@gmail.com>
9347
9348 * makefile.w32-in (CONFIG_H): Update dependencies.
9349 (CONF_POST_H): New macro.
9350
9351 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
9352
8d8e2dfe
GM
93532012-07-31 Glenn Morris <rgm@gnu.org>
9354
bc96620a
GM
9355 * Makefile.in (S_FILE): No longer set by configure.
9356
476b1b2d
GM
9357 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
9358 is available.
9359 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
9360
b2c7a106
GM
9361 * process.h (NULL_DEVICE):
9362 * emacs.c (SEPCHAR):
9363 * editfns.c (USER_FULL_NAME): Let configure set them.
9364
d53d062a
GM
9365 * s/README, s/template.h: Remove files.
9366
4515017f
GM
9367 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
9368
8d8e2dfe
GM
9369 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
9370 Move to configure.ac.
9371
5b20b3cc
EZ
93722012-07-31 Eli Zaretskii <eliz@gnu.org>
9373
1e0afd9a
EZ
9374 * .gdbinit (xframe): Adapt to introduction of FVAR and the
9375 resulting renaming of 'struct frame' members.
9376
5b20b3cc
EZ
9377 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
9378
9379 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
9380 after introduction of FVAR.
9381
f1310128
JD
93822012-07-31 Jan Djärv <jan.h.d@swipnet.se>
9383
79e721e0
JD
9384 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
9385
9386 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
9387 instead of compositeToPoint.
9388 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
9389
8d7c7eed 9390 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
f1310128 9391
e34f7f79
DA
93922012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
9393
9394 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
9395 * lisp.h (INTERNAL_FIELD): New macro.
14ae4239 9396 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
e34f7f79
DA
9397 (BVAR): Change to use INTERNAL_FIELD.
9398 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
9399 (KVAR): Change to use INTERNAL_FIELD.
9400 * frame.h (FVAR): New macro.
9401 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
3a45383a
DA
9402 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
9403 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
9404 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
e34f7f79
DA
9405 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
9406
c09bfb2f
DA
94072012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
9408
9409 Miscellaneous fixes for non-default X toolkits.
9410 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
9411 * xterm.c (x_frame_of_widget): Remove redundant prototype.
9412 Move under #ifdef USE_LUCID.
9413 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
9414 definition and usage to avoid warnings.
9415
14c114ae
JD
94162012-07-31 Jan Djärv <jan.h.d@swipnet.se>
9417
9418 * nsterm.m (openFiles): Fix previous checkin.
9419
3bd21e82
PE
94202012-07-31 Paul Eggert <eggert@cs.ucla.edu>
9421
9422 * indent.c (compute_motion): Remove unused local.
9423
c1529ded
GM
94242012-07-31 Glenn Morris <rgm@gnu.org>
9425
400d5621
GM
9426 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
9427
268e2432
GM
9428 * conf_post.h [USG5_4]:
9429 Move remaining contents of s/usg5-4-common.h here.
9430 * s/usg5-4-common.h: Remove file.
9431
7552f3ee
GM
9432 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
9433 * s/irix6-5.h: Remove file.
9434
6a381852
GM
9435 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
9436 * s/darwin.h: Remove file.
9437
c1529ded
GM
9438 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
9439 * s/hpux10-20.h: Remove file, which is now empty.
9440
b429a4ee
GM
94412012-07-30 Glenn Morris <rgm@gnu.org>
9442
9443 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
9444 * Makefile.in (config_h): Add conf_post.h.
9445 * makefile.w32-in (CONFIG_H): Add conf_post.h.
9446
adff3182
JD
94472012-07-30 Jan Djärv <jan.h.d@swipnet.se>
9448
9449 * nsterm.m (ns_do_open_file): New variable.
b9031d69 9450 (ns_term_init): Set ns_do_open_file to YES after run returns.
14ae4239
BT
9451 (openFile, openTempFile, openFileWithoutUI, openFiles):
9452 Open files only if ns_do_open_file.
adff3182 9453
c32af1e4
PE
94542012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9455
7393bcbb
PE
9456 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
9457 This no-op macro hasn't been needed for many years.
9458 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
9459
c32af1e4
PE
9460 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
9461 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
9462 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
9463 gdb_make_enums_visible.
9464 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
9465 (DIRECTORY_SEP): Now a constant, not a macro.
9466
302fc036
EZ
94672012-07-30 Eli Zaretskii <eliz@gnu.org>
9468
9469 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
9470 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
9471
9472 * w32term.c <w32_keyboard_codepage>: Renamed from
9473 keyboard_codepage and now external. All users changed.
9474
9475 * w32term.h: Add declaration of w32_keyboard_codepage.
9476
9477 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
9478 the codepage to translate keys to Unicode. If this argument is
9479 -1, use the value returned by GetConsoleCP. All callers changed.
9480
88fb40b4
PE
94812012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9482
0aee6912
PE
9483 Update .PHONY listings in makefiles.
9484 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
9485 bootstrap-clean, distclean, maintainer-clean, versioclean,
9486 extraclean, frc.
9487
88fb40b4
PE
9488 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
9489 This is a bit clearer. Fix some commentary typos.
9490
0a763bd1
GM
94912012-07-30 Glenn Morris <rgm@gnu.org>
9492
32bac6d6
GM
9493 * s/netbsd.h: Let configure include signal.h if needed.
9494 Remove file, which is now empty.
9495
b65e7c46
GM
9496 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
9497 Let configure set them.
9498 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
9499 No more need to undefine.
0a763bd1 9500
169304bd
AS
95012012-07-30 Andreas Schwab <schwab@linux-m68k.org>
9502
9503 * keymap.c (Fkey_description): Don't remove 0x80 bit from
9504 non-single-byte char when adding meta modifier. (Bug#12090)
9505
6cd7a139
DA
95062012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
9507
9508 Convert safe_call to use variable number of arguments.
9509 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
9510 (safe_call2): Fix comment.
9511 * lisp.h (safe_call): Adjust prototype.
9512 * coding.c (encode_coding_object): Change to use safe_call2.
9513 * xfaces.c (merge_face_heights): Change to use safe_call1.
9514
d34d6ffc
GM
95152012-07-30 Glenn Morris <rgm@gnu.org>
9516
7b8a48e4 9517 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 9518 does that unconditionally. Remove file, which is now empty.
7b8a48e4 9519
d34d6ffc
GM
9520 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
9521 Remove empty files.
9522
03a660a6
PE
95232012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9524
9525 Export to GDB most of lisp.h's remaining object-like macros.
9526 * lisp.h (min, max): Move earlier, because they're used earlier now.
9527 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
9528 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
9529 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
9530 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
9531 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
9532 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
9533 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
9534 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
9535 Now constants, for GDB. They need not be macros.
9536 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
9537 Now constants, for GDB, as well as macros, for static initializers.
9538 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
9539 Move to after the definition of struct Lisp_Char_Table,
9540 since the former now needs that type defined.
9541 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
9542 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
9543 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
9544 New enums, for gdb_make_enums_visible.
9545 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 9546 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
9547 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
9548 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
9549 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
9550 enum maxargs, enum MAX_ALLOCA.
9551 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
9552 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
9553 no longer needed, now that they are done in lisp.h.
9554
e499d0ee
DA
95552012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
9556
9557 Cleanup string bytes checking.
9558 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
9559 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
9560 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
9561 (check_sblock, compact_small_strings): Simplify.
9562
d5040d2d
PE
95632012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9564
9565 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
9566 These macros are confusing and no longer need to be defined, as
9567 the enum values now suffice. All uses replaced with definiens.
9568 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
9569
7f259ae6
JB
95702012-07-29 Juanma Barranquero <lekktu@gmail.com>
9571
9572 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
9573 ($(BLD)/w32console.$(O)): Update dependencies.
9574
7e63e0c3
DA
95752012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9576
9577 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
9578 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
9579 time. Adjust users.
9580 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
9581
ffd817eb
JD
95822012-07-29 Jan Djärv <jan.h.d@swipnet.se>
9583
9584 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
9585 setting sitelisp (Bug#12010).
9586
417a7a0e
EZ
95872012-07-29 Eli Zaretskii <eliz@gnu.org>
9588
14ae4239 9589 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
417a7a0e
EZ
9590
9591 * w32heap.c (cache_system_info):
9592 * w32.c (sys_rename):
9593 * w32proc.c (find_child_console, sys_kill): All users changed.
9594
387d4d92
PE
95952012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9596
9597 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
9598
55a6cca6
EZ
95992012-07-29 Eli Zaretskii <eliz@gnu.org>
9600
9601 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
9602
dbcf001c
DA
96032012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9604
9605 Cleanup statistics calculation in Fgarbage_collect.
14ae4239
BT
9606 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
9607 Fix zombies percentage calculation. Simplify elapsed time calculation.
dbcf001c 9608
e2688e4a
DA
96092012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9610
9611 Generalize marker debugging code under MARKER_DEBUG and use eassert.
9612 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
9613 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
9614 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
9615 (replace_range, replace_range_2, del_range_2): Change to eassert.
9616 * marker.c (byte_char_debug_check): Adjust style.
9617
b46a6a83
PE
96182012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9619
9620 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
9621 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
9622 long-ago-commented-out code that talks about "WIN32".
9623 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
9624 All uses changed.
9625
e32a5799
PE
96262012-07-28 Paul Eggert <eggert@cs.ucla.edu>
9627
9628 Use Gnulib stdalign module (Bug#9772, Bug#9960).
9629 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
9630 Simplify by using alignof.
9631 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
9632 * lisp.h: Include <stdalign.h>.
9633 (GCALIGNMENT): New macro and constant.
9634 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
9635 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
9636 (stdalign): New macro, if not already defined.
9637
df81cd29
EZ
96382012-07-28 Eli Zaretskii <eliz@gnu.org>
9639
01bd1b0d
EZ
9640 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
9641 * w32inevt.c: Include w32inevt.h.
9642 (w32_read_console_input): New inline function, calls either
9643 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
9644 w32_console_unicode_input.
9645 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
9646 (w32_kbd_patch_key, key_event): Use the codepage returned by
9647 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
9648 (key_event): use uChar.UnicodeChar only if
9649 w32_console_unicode_input is non-zero.
9650
9651 * w32console.c: Include w32heap.h.
9652 <w32_console_unicode_input>: New global variable.
9653 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
9654 family of Windows, zero otherwise.
9655
9656 * w32inevt.h: Declare w32_console_unicode_input.
9657
df81cd29
EZ
9658 * xdisp.c (init_iterator): Don't reference tip_frame in a build
9659 --without-x. (Bug#11742)
9660
c20fdd9e
PE
96612012-07-27 Paul Eggert <eggert@cs.ucla.edu>
9662
9663 Adjust GDB to reflect pvec_type changes (Bug#12036).
9664 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
14ae4239
BT
9665 2012-07-04 changes to pseudovector representation.
9666 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
c20fdd9e 9667
32770973 96682012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
9669
9670 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
9671 bus address.
9672 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
9673
3438fe21
EZ
96742012-07-27 Eli Zaretskii <eliz@gnu.org>
9675
bcfbc9de
EZ
9676 * alloc.c (listn): Fix the order the arguments are consed onto the
9677 list.
9678
3438fe21
EZ
9679 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
9680 enumeration constants, as PURE and HEAP are too general, and clash
9681 with other headers and sources, such as gmalloc.c and the
9682 MS-Windows system headers. All users changed.
9683
eeaea515
DA
96842012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9685
9686 Revert last save_excursion_save and save_excursion_restore changes.
9687 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
9688 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
9689
073c88c2
DA
96902012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9691
9692 Fix recently-introduced typos in Windows port.
9693 Reported by Martin Rudalics <rudalics@gmx.at>.
9694 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 9695 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 9696
4706125e
PE
96972012-07-27 Paul Eggert <eggert@cs.ucla.edu>
9698
9699 Improve GDB symbol export (Bug#12036).
9700 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
9701 arms of an 'if', not using conditional expressions; otherwise GDB
9702 complains about the types in the unevaluated arm when the argument
9703 is an integer literal.
9704 (xgetint): Simplify expression.
9705 * alloc.c (gdb_make_enums_visible): New constant. This ports to
9706 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
9707 Zaretskii in <http://bugs.gnu.org/12036#13>.
9708 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
9709 needed now that we have gdb_make_enums_visible.
9710 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
9711 (enum enum_USE_LSB_TAG):
9712 New enum types, packaging up enums that need to be exported to GDB.
9713
694b6c97
DA
97142012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9715
9716 Utility function to make a list from specified amount of objects.
9717 * lisp.h (enum constype): New datatype.
9718 (listn): New prototype.
9719 * alloc.c (listn): New function.
9720 (Fmemory_use_count, syms_of_alloc): Use it.
9721 * buffer.c (syms_of_buffer): Likewise.
9722 * callint.c (syms_of_callint): Likewise.
9723 * charset.c (define_charset_internal): Likewise.
9724 * coding.c (syms_of_coding): Likewise.
9725 * keymap.c (syms_of_keymap): Likewise.
9726 * search.c (syms_of_search): Likewise.
9727 * syntax.c (syms_of_syntax): Likewise.
9728 * w32.c (init_environment): Likewise.
9729 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
9730 * xdisp.c (syms_of_xdisp): Likewise.
9731 * xfns.c (syms_of_xfns): Likewise.
9732
6195f384
DA
97332012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9734
9735 Fast save_excursion_save and save_excursion_restore.
9736 * lisp.h (struct Lisp_Excursion): New data type.
9737 (PVEC_EXCURSION): New pseudovector type.
9738 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
9739 to deal with it. Adjust comments.
9740 (init_marker, attach_marker): New prototype.
9741 (unchain_marker): Adjust prototype.
9742 * marker.c (attach_marker): Change to global.
9743 (init_marker): New function.
9744 * alloc.c (Fmake_marker, build_marker): Use it.
9745 (build_marker): More easserts.
9746 (mark_object): Handle struct Lisp_Excursion.
9747 * editfns.c (save_excursion_save, save_excursion_restore):
9748 Reimplement to use struct Lisp_Excursion. Add comments.
9749
5eceb8fb
PE
97502012-07-26 Paul Eggert <eggert@cs.ucla.edu>
9751
9752 Fix export of symbols to GDB (Bug#12036).
9753 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
9754 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
9755 emacs.c, as this is a more-suitable home. Had this been done earlier
9756 the fix for 12036 would have avoided some of the problems noted in
9757 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
9758 would have been more obvious.
562157c8
PE
9759 * emacs.c: Do not include <verify.h>; no longer needed.
9760 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
9761 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
9762 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
9763 Remove; now done in lisp.h.
9764 * lisp.h (PUBLISH_TO_GDB): New macro.
9765 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
9766 (DATA_SEG_BITS): Use it.
9767 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
9768 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
9769 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
9770 not be usable in #if. This simplifies things.
9771
d6749401
JB
97722012-07-26 Juanma Barranquero <lekktu@gmail.com>
9773
9774 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
9775
1781b9e9
PE
97762012-07-26 Paul Eggert <eggert@cs.ucla.edu>
9777
d89518db 9778 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
9779 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
9780 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
9781 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
9782 Adjust to changes in lisp.h and emacs.c, by using
9783 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
9784 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
9785 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
9786 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
9787 instead of gdb_valbits.
9788 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
9789 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
9790 instead of gdb_array_mark_flag.
9791 (xboolvector): Get size from $->size, not $->header.size.
9792 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
9793 (xreload, hook-run, hookpost-run): Remove.
9794 * emacs.c: Include <verify.h>.
9795 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
9796 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
9797 Remove.
9798 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
9799 (gdb_USE_LSB_TAG): New enum constants.
9800 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
9801 Also define these as enum constants, so they're visible to GDB.
9802 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
9803 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
9804 as constants, so they're visible to GDB.
9805 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
9806 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
9807 Now enum constants, not macros, so they're visible to GDB.
9808 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
9809 more convenient now. All uses changed.
9810 (VALMASK) [USE_LSB_TAG]: Also define in this case.
9811 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
9812
3628596a
DA
98132012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
9814
9815 Explicitly free restriction data that are not needed anymore.
9816 * editfns.c (save_restriction_restore): Free restriction data.
9817
7abaf5cc
SM
98182012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
9819
9820 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
9821 add argument, tune behavior, and adjust all callers.
9822
71f88e00
PE
98232012-07-25 Paul Eggert <eggert@cs.ucla.edu>
9824
9825 Use typedef for EMACS_INT, EMACS_UINT.
9826 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
9827 than macros. This simplifies debugging in the usual case, since
9828 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
9829 and it allows expressions involving EMACS_INT casts.
9830 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
9831
57ec3034
JD
98322012-07-25 Jan Djärv <jan.h.d@swipnet.se>
9833
9834 * nsterm.m (ns_read_socket): Return early if there is a modal
9835 window (Bug#12043).
9836
8137e7b3
MR
98372012-07-25 Martin Rudalics <rudalics@gmx.at>
9838
9839 * frame.c (Fredirect_frame_focus): In doc-string don't mention
9840 that FOCUS-FRAME can be omitted.
9841
04e9897c
DA
98422012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
9843
9844 Adjust buffer text indirection counters at the end of Fkill_buffer.
9845 * buffer.c (Fkill_buffer): Adjust indirection counters when the
9846 buffer is definitely dead. This should really fix an issue reported
9847 by Christoph Scholtes again. (Bug#12007).
9848 (init_buffer_once): Initialize indirection counters of
9849 buffer_defaults and buffer_local_symbols (for sanity and safety).
9850
8a0484e1
EZ
98512012-07-24 Eli Zaretskii <eliz@gnu.org>
9852
9853 * xdisp.c (init_iterator): Don't compute dimensions of truncation
9854 and continuation glyphs on tooltip frames, leave them at zero.
9855 Avoids continued lines in tooltips. (Bug#11832)
9856
fa691a83
DA
98572012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
9858
9859 Simplify copy_overlay.
04e9897c 9860 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
9861 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
9862
436bc8e0
EZ
98632012-07-23 Eli Zaretskii <eliz@gnu.org>
9864
9865 * print.c (print_object): Don't crash when a frame's name is nil
9866 or invalid. (Bug#12025)
9867
9868 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
9869 it signals an error when a tooltip frame is being created.
9870
d7a7fda3
DA
98712012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
9872
9873 Cleanup miscellaneous objects allocation and initialization.
9874 * alloc.c (allocate_misc): Change to static. Add argument to
9875 specify the subtype. Adjust comment and users.
9876 (build_overlay): New function.
9877 * buffer.c (copy_overlays, Fmake_overlay): Use it.
9878 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
9879 (allocate_misc): Remove prototype.
9880 (build_overlay): Add prototype.
9881
98822012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
9883
9884 Swap buffer text indirection counters in Fbuffer_swap_text.
9885 * buffer.c (Fbuffer_swap_text): Swap indirections too.
9886 This avoids crash reported by Christoph Scholtes at
9887 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
9888
9d7fa573
JD
98892012-07-22 Jan Djärv <jan.h.d@swipnet.se>
9890
9891 * nsmenu.m (Popdown_data): New struct.
9892 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
9893 free Popdown_data.
9894 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
9895 (initWithContentRect): Make imgView and contentView non-static
9896 and autorelease them. Also autorelease img and matrix (Bug#12005).
9897 (dealloc): Remove (Bug#12005).
9898
0dd6d66d
DA
98992012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
9900
9901 Adjust consing_since_gc when objects are explicitly freed.
9902 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
9903 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
9904 (free_cons, free_misc): Subtract object size from consing_since_gc.
9905
d36d71df
DA
99062012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
9907
9908 Simplify and cleanup markers positioning code.
9909 * marker.c (attach_marker): More useful eassert.
9910 (live_buffer, set_marker_internal): New function.
9911 (Fset_marker, set_marker_restricted): Use set_marker_internal.
9912 (set_marker_both, set_marker_restricted_both): Use live_buffer.
9913
fb9ea40f
PE
99142012-07-22 Paul Eggert <eggert@cs.ucla.edu>
9915
9916 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
9917 as it's limited by the amount of memory, not by INT_MAX.
9918
2d5c5f7d
EZ
99192012-07-21 Eli Zaretskii <eliz@gnu.org>
9920
07fb592e
EZ
9921 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
9922 in special-event-map. See the discussion at
9923 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
9924 for the reasons.
9925
37a9eac8 9926 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
14ae4239
BT
9927 info.dwItemData. Fixes crashes on 64-bit Windows.
9928 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2d5c5f7d 9929
c4328746
JD
99302012-07-21 Jan Djärv <jan.h.d@swipnet.se>
9931
fc0c31f8 9932 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 9933 (conversationIdentifier): Return value is NSInteger.
784051c4 9934 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 9935
6e5d1c12
CY
99362012-07-21 Chong Yidong <cyd@gnu.org>
9937
9938 * window.c (decode_any_window): Signal an error if the window is
9939 on a dead frame (Bug#11984).
9940
9928463d
DA
99412012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9942
9943 Add indirection counting to speed up Fkill_buffer.
9944 * buffer.h (struct buffer): New member.
9945 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
9946 (Fmake_indirect_buffer): Set indirection counter to -1, increment
9947 base buffer indirection counter.
9948 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
9949 (Fkill_buffer): Adjust indirection counters as needed, don't walk
9950 through buffer list if indirection counter is 0.
9951
f8643a6b
DA
99522012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9953
9954 Extend the value returned by Fgarbage_collect with heap statistics.
9955 * alloc.c (Qheap): New symbol.
9956 (syms_of_alloc): DEFSYM it.
9957 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
9958 (Fmemory_free): Remove.
9959 (syms_of_alloc): Don't defsubr it.
9960 * buffer.c (Fcompact_buffer): Remove.
9961 (syms_of_buffer): Don't defsubr it.
9962
dac616ff
DA
99632012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9964
9965 Make maybe_gc inline.
9966 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
9967 * lisp.h (consing_since_gc, gc_relative_threshold)
9968 (memory_full_cons_threshold): Revert declaration.
9969 (maybe_gc): Remove prototype, define as inline.
9970 * alloc.c: Remove old commented-out code.
9971 (consing_since_gc, gc_relative_threshold)
9972 (memory_full_cons_threshold): Revert to global.
9973 (maybe_gc): Remove.
9974
d7ea76b4
DA
99752012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9976
9977 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
9978 * lisp.h (build_unibyte_string): New function.
9979 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
9980 * sysdep.c, w32fns.c, xfns.c: Use it.
9981 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
9982 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
9983 Adjust users accordingly.
9984 * font.h (font_open_by_name): Adjust prototype.
9985
765e61e3
DA
99862012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9987
9988 Cleanup calls to Fgarbage_collect.
9989 * lisp.h (maybe_gc): New prototype.
9990 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
9991 Remove declarations.
9992 * alloc.c (maybe_gc): New function.
9993 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
9994 Make them static.
9995 * bytecode.c (MAYBE_GC): Use maybe_gc.
9996 * eval.c (eval_sub, Ffuncall): Likewise.
9997 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
9998 to avoid dependency from auto-save feature.
9999
52b852c7
PE
100002012-07-19 Paul Eggert <eggert@cs.ucla.edu>
10001
10002 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
10003 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
10004 'for_each_per_buffer_object_at'.
10005 All uses changed. It's better to use upper-case for macros that
10006 cannot be implemented as functions, to give the reader a clue
10007 that they're special.
10008
5db81e33
SM
100092012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
10010
10011 * alloc.c (Fgarbage_collect): Tweak docstring.
10012
5b835e1d
DA
100132012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
10014
10015 Tweak the value returned from Fgarbage_collect again.
10016 * alloc.c (Fgarbage_collect): New return value, as confirmed in
10017 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
10018 Adjust documentation.
10019 (total_vector_bytes): Rename to total_vector_slots, adjust
10020 accounting.
10021 (total_free_vector_bytes): Rename to total_free_vector_slots,
10022 adjust accounting.
10023 (Qstring_bytes, Qvector_slots): New symbols.
10024 (syms_of_alloc): DEFSYM them.
10025
9cd47b72
DA
100262012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
10027
10028 Buffer compaction primitive which may be used from Lisp.
10029 * buffer.c (compact_buffer, Fcompact_buffer): New function.
10030 (syms_of_buffer): Register Fcompact_buffer.
10031 * alloc.c (Fgarbage_collect): Use compact_buffer.
10032 * buffer.h (compact_buffer): New prototype.
10033 (struct buffer_text): New member.
10034
d17337e5
DA
100352012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
10036
10037 New macro to iterate over all buffers, miscellaneous cleanups.
10038 * lisp.h (all_buffers): Remove declaration.
10039 * buffer.h (all_buffers): Add declaration, with comment.
10040 (for_each_buffer): New macro.
10041 * alloc.c (Fgarbage_collect, mark_object): Use it.
10042 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
10043 (init_buffer): Likewise.
10044 * data.c (Fset_default): Likewise.
10045 * coding.c (code_conversion_restore): Remove redundant check
10046 for dead buffer.
10047 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
10048
60cfd278
AS
100492012-07-18 Andreas Schwab <schwab@linux-m68k.org>
10050
10051 Fix bug that created negative-length intervals.
10052 * intervals.c (merge_interval_right, merge_interval_left):
10053 Do not zero out this interval if it is absorbed by its children,
10054 as this interval's total length doesn't change in that case. See
10055 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
10056
d06714cb
PE
100572012-07-18 Paul Eggert <eggert@cs.ucla.edu>
10058
83713154
PE
10059 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
10060 when invoking (make-bool-vector N t) and N is a positive
10061 multiple of 8 -- the last 8 bits were mistakenly cleared.
10062
d06714cb
PE
10063 Remove some struct layout assumptions in bool vectors.
10064 * alloc.c (bool_header_size): New constant.
10065 (header_size, word_size): Move earlier, as they're now used earlier.
10066 Use 'word_size' in a few more places, where it's appropriate.
10067 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
10068 padding before the data member of a bool vector.
10069 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
10070 than doing the check by hand with an abort ().
10071
464d5a5e
SM
100722012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
10073
5fbc0409
SM
10074 * eval.c (Fdefvar): Don't check constants since we only set the var if
10075 it's not yet defined anyway (bug#11904).
10076
464d5a5e
SM
10077 * lisp.h (last_undo_boundary): Declare new var.
10078 * keyboard.c (command_loop_1): Set it.
10079 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
10080 were auto-added by the command loop (bug#11774).
10081
8dc2e44a
AS
100822012-07-18 Andreas Schwab <schwab@linux-m68k.org>
10083
10084 * w32font.c (Qsymbol): Remove local definition.
10085 (syms_of_w32font): Don't DEFSYM it.
10086
169925ec
DA
100872012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
10088
10089 Fix sweep_vectors to handle large bool vectors correctly.
10090 * alloc.c (sweep_vectors): Account total_vector_bytes for
10091 bool vectors larger than VBLOCK_BYTES_MAX.
10092
5fbfb018
CY
100932012-07-18 Chong Yidong <cyd@gnu.org>
10094
10095 * frame.c (x_set_frame_parameters): Revert bogus change introduced
10096 in 2012-05-25 commit by Paul Eggert (Bug#11738).
10097
3ab6e069
DA
100982012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
10099
10100 Return more descriptive data from Fgarbage_collect.
10101 Suggested by Stefan Monnier in
10102 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
10103 * alloc.c (bounded_number): New function.
10104 (total_buffers, total_vectors): New variable.
10105 (total_string_size): Rename to total_string_bytes, adjust users.
10106 (total_vector_size): Rename to total_vector_bytes, adjust users.
10107 (sweep_vectors): Account total_vectors and total_vector_bytes.
10108 (Fgarbage_collect): New return value. Adjust documentation.
10109 (gc_sweep): Account total_buffers.
10110 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
10111 (VECTOR_SIZE): Remove.
10112 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
10113 (Qinterval, Qmisc): New symbols.
10114 (syms_of_data): Initialize them.
10115 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
10116 (Qcons, Qbuffer): New declarations.
10117
6d02fe5b
PE
101182012-07-17 Paul Eggert <eggert@cs.ucla.edu>
10119
10120 * alloc.c (Fmemory_free): Account for memory-free's own storage.
10121 Round up, not down. Improve doc.
10122
b7ffe040
DA
101232012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10124
10125 Restore old code in allocate_string_data to avoid Faset breakage.
10126 Reported by Julien Danjou <julien@danjou.info> in
10127 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
10128 * alloc.c (allocate_string_data): Restore old code with minor
10129 adjustments, fix comment to explain this subtle issue.
10130
4dc7c8d5
SM
101312012-07-17 Eli Zaretskii <eliz@gnu.org>
10132
10133 Remove FILE_SYSTEM_CASE.
10134 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
10135
10136 * fileio.c (FILE_SYSTEM_CASE): Don't define.
10137 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
10138 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
10139 call-process-region passes it through expand-file-name.
10140
10141 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
10142
101432012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10144
10145 Fix crash when creating indirect buffer (Bug#11917)
10146 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
10147 Don't handle unbound variables specially if non-zero.
10148 (Fbuffer_local_variables): Pass zero.
10149 (clone_per_buffer_values): Pass non-zero.
10150
101512012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10152
10153 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
10154 to make the loop interruptible.
10155
101562012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10157
10158 * gnutls.c (emacs_gnutls_handshake): Only retry if
10159 GNUTLS_E_INTERRUPTED.
10160
cce7fefc
DA
101612012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10162
10163 Cleanup and convert miscellaneous checks to eassert.
10164 * alloc.c (mark_interval): Fix comment, partially rephrase
10165 old comment from intervals.h (see below).
10166 * intervals.c (find_interval, adjust_intervals_for_insertion)
10167 (delete_interval, adjust_intervals_for_deletion)
10168 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
10169 Convert to eassert.
10170 (adjust_intervals_for_insertion, make_new_interval):
10171 Remove obsolete and unused code.
10172 * intervals.h (struct interval): Remove obsolete comment.
10173 * textprotp.c (erase_properties): Remove unused code.
10174 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
10175 (Fremove_list_of_text_properties): Convert to eassert.
10176
9ea10cc3
CY
101772012-07-17 Chong Yidong <cyd@gnu.org>
10178
10179 * editfns.c (Finsert_char): Doc fix.
10180
3900d5de
DA
101812012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10182
10183 Fix previous change to make Fmemory_free always accurate.
10184 * alloc.c (make_interval): Update total_free_intervals.
10185 (make_float): Likewise for total_free_floats.
10186 (free_cons, Fcons): Likewise for total_free_conses.
10187 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
10188 Likewise for total_free_vector_bytes.
10189 (Fmake_symbol): Likewise for total_free_symbols.
10190 (bytes_free): Remove.
10191
7098646f
DA
101922012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10193
10194 Simple free memory accounting feature.
10195 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
10196 (sweep_vectors): Accumulate size of free vectors.
10197 (Fgarbage_collect): Setup bytes_free.
10198 (Fmemory_free): New function.
10199 (syms_of_alloc): Register it.
10200
22657b40
DA
102012012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10202
10203 Cleanup overlays checking.
10204 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
10205 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
10206 eassert and OVERLAYP.
10207 (sort_overlays): Change to use OVERLAYP.
10208
ddfc8813
RK
102092012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
10210
10211 * editfns.c (Finsert_char): Make it interactive, and make the
10212 second arg optional. Copy interactive spec and docstring from
10213 ucs-insert.
10214
7c26cf3c
PE
102152012-07-17 Paul Eggert <eggert@cs.ucla.edu>
10216
10217 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
10218 Unlike the other wrapped functions, fabs has an unspecified
10219 effect on errno.
10220
5d127af9
JD
102212012-07-16 Jan Djärv <jan.h.d@swipnet.se>
10222
10223 * nsterm.m (keyDown): Interpret flags without left/right bits
10224 as the left key (Bug#11670).
10225
6a0dd1d7
DA
102262012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
10227
10228 Remove empty and useless init functions.
10229 * lisp.h (init_character_once, init_fns, init_image)
10230 (init_filelock, init_sound): Remove prototype.
10231 * character.c (init_character_once): Remove.
10232 * filelock.c (init_filelock): Likewise.
10233 * fns.c (init_fns): Likewise.
10234 * image.c (init_image): Likewise.
10235 * sound.c (init_sound): Likewise.
10236 * emacs.c (main): Adjust accordingly.
10237
7a6136fd
DA
102382012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
10239
10240 * gtkutil.h: Tiny cleanups.
10241 (use_old_gtk_file_dialog): Remove useless declaration.
10242 (xg_uses_old_file_dialog): Add suggested const attribute.
10243
ce811ad9
EZ
102442012-07-15 Eli Zaretskii <eliz@gnu.org>
10245
10246 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
10247 (bidi_paragraph_init): Use it to limit search forward for a strong
10248 directional character in abnormally large paragraphs full of
10249 neutral or weak characters. (Bug#11943)
10250
c9adfeaa
SF
102512012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
10252
10253 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
10254 the toolbar (Bug#9451).
10255 (xg_make_tool_item): Give the widget event box a transparent
10256 background.
10257
fff62aa9
DA
102582012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
10259
10260 Cleanup basic allocation variables and functions.
10261 * alloc.c (ignore_warnings, init_intervals, init_float)
10262 (init_cons, init_symbol, init_marker): Remove.
10263 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
10264 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
10265 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
10266 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
10267 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
10268 (staticidx, init_alloc_once, init_strings, free_ablock):
10269 Remove redundant initialization.
10270 * fns.c (init_weak_hash_tables): Remove.
10271 * lisp.h (init_weak_hash_tables): Remove prototype.
10272
9730daca
DA
102732012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
10274
10275 Use zero_vector where appropriate.
10276 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
10277 accordingly.
10278 * lisp.h (zero_vector): New declaration.
10279 * font.c (null_vector): Remove.
10280 (syms_of_font): Remove initialization and staticpro.
10281 (font_list_entities, font_find_for_lface): Change to use zero_vector.
10282 * keymap.c (Faccessible_keymaps): Likewise.
10283
2e2d2a13
LL
102842012-07-15 Leo Liu <sdl.web@gmail.com>
10285
10286 * fringe.c: Fix typo in comments.
10287
cd276f6e
LL
102882012-07-14 Leo Liu <sdl.web@gmail.com>
10289
10290 * fringe.c: Add a new bitmap exclamation-mark.
10291
5a1131d9
EZ
102922012-07-14 Eli Zaretskii <eliz@gnu.org>
10293
10294 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
10295
10296 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
10297 (HAVE_MENUS): Don't define, defined by editing config.in with
10298 msdos/sed2v2.inp.
10299 (GMALLOC_INHIBIT_VALLOC): Don't define.
10300 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
10301
22e983b7
JB
103022012-07-14 Juanma Barranquero <lekktu@gmail.com>
10303
10304 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
10305
5b3f250f
GM
103062012-07-14 Glenn Morris <rgm@gnu.org>
10307
10308 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
10309 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
10310 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
10311
33d63ff4
GM
103122012-07-13 Glenn Morris <rgm@gnu.org>
10313
5b633342
GM
10314 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
10315
33d63ff4
GM
10316 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
10317 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
10318
b55b9f85
JD
103192012-07-13 Jan Djärv <jan.h.d@swipnet.se>
10320
0dc8cf50
JD
10321 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
10322 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
10323 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
10324 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
10325 where appropriate.
10326 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
10327 as boolean expression.
10328 (x_set_window_size): Remove unused variable toolbar.
10329 (ns_get_color_default, ns_mod_to_lisp): Remove.
10330 (ns_mouse_position): Remove unused variables xchar and ychar.
10331 (ns_compute_glyph_string_overhangs): Remove unused variable face.
10332 (ns_set_vertical_scroll_bar): Remove unused variable count.
10333 (ns_delete_terminal): Remove unused variable i.
10334 (ns_term_init): Remove unused variables r, g and b.
10335 (mouseDown): Remove unused variable window.
10336 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
10337 (initFrameFromEmacs): Remove unused variable vbextra.
10338 (mouseEntered): Remove unused variables p and dpyinfo.
10339 (mouseExited): Remove unused variables p and r.
10340 (ns_define_frame_cursor, ns_clear_frame_area)
10341 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
10342 (menuDown): Assign [sender tag] to variable and cast the variable.
10343
10344 * nsterm.h (menuDown): Add id as type to argument sender.
10345 (ns_display_info_for_name): Add Lisp_Object argument.
10346 (ns_term_init): Add Lisp_Object argument.
10347 (ns_map_event_to_object): Add void argument.
10348 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
10349 prototype with arguments and only declare if __OBJC__.
10350 (nxatoms_of_nsselect): Add void argument.
10351 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
10352 (ns_alloc_autorelease_pool): Add void argument.
10353 (ns_release_autorelease_pool): Add void* argument.
10354 (ns_get_defaults_value): Add const char* argument.
10355
10356 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
10357 (initFromContents): Use SSDATA where appropriate.
10358 (ns_update_menubar): Add braces to ambigous if-else.
10359 (initWithTitle): Put () around assignment in if statement.
10360 (ns_menu_show): Remove unused variables window and keymap.
10361 (update_frame_tool_bar): Remove unused variable selected_p.
10362 (initWithContentRect): Remove unused variable this_cmd_name.
10363
10364 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
10365 appropriate.
10366 (setXBMColor): Remove unused variable len.
10367 (setPixmapData): Put () around assignment in loop statement.
10368
10369 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
10370 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
10371 where appropriate.
10372 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
10373 around assignment in loop statement.
10374 (nsfont_open): Remove unused variable i.
10375 (nsfont_open): Remove unused variable len.
10376 (nsfont_draw): Remove unused variable cs.
10377
10378 * nsfns.m (x_set_icon_name, ns_set_name_internal)
10379 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
10380 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
10381 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
10382 (Fns_font_name, Fns_perform_service)
10383 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
10384 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
10385 (ns_set_name): Remove unused variable view.
10386 (x_set_menu_bar_lines): Remove unused variable olines.
10387 (x_set_tool_bar_lines): Remove unused variable root_window.
10388 (Fns_list_colors): Put () around assignment in while statement.
10389 (Fns_perform_service): Remove unused variable len.
10390 (Fns_display_usable_bounds): Remove unused variable top.
10391 (syms_of_nsfns): Remove unused variable i.
10392
b55b9f85
JD
10393 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
10394 memcpy (Bug#11907).
10395
ed9265fc 103962012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
10397
10398 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
10399 and free it with DestroyExceptionInfo (Bug#11558).
10400
ef099b57
JB
104012012-07-13 Juanma Barranquero <lekktu@gmail.com>
10402
10403 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
10404 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
10405 Set here, not in nt/config.nt.
10406
ea814a5d
EZ
104072012-07-13 Eli Zaretskii <eliz@gnu.org>
10408
10409 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
10410 cursor overflow into the last glyph on display line when the right
10411 fringe is off. (Bug#11832)
10412
1a952767
PE
104132012-07-13 Paul Eggert <eggert@cs.ucla.edu>
10414
10415 * xdisp.c (produce_special_glyphs): Now static.
10416 * dispextern.h (produce_special_glyphs): Remove decl.
10417
983188fd
GM
104182012-07-13 Glenn Morris <rgm@gnu.org>
10419
8d7c7eed 10420 * s/bsd-common.h, s/cygwin.h: Remove empty files.
32fb4bb6
GM
10421 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
10422
983188fd
GM
10423 * s/usg5-4-common.h (USG, USG5):
10424 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
10425 * s/sol2-6.h (SOLARIS2):
10426 * s/irix6-5.h (IRIX6_5):
10427 * s/hpux10-20.h (USG, USG5, HPUX):
10428 * s/gnu-linux.h (USG, GNU_LINUX):
10429 * s/freebsd.h (BSD_SYSTEM):
10430 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
10431 * s/cygwin.h (CYGWIN):
10432 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
10433 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
10434
d1e68667 104352012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
10436
10437 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 10438
6de0e799
GM
104392012-07-13 Glenn Morris <rgm@gnu.org>
10440
739ae010
GM
10441 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
10442
dbee5793
GM
10443 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
10444
6de0e799
GM
10445 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
10446 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
10447
b82da769
GM
104482012-07-12 Glenn Morris <rgm@gnu.org>
10449
4fae5a7a 10450 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
10451
10452 * process.c (init_process_emacs): Rename from init_process.
10453 The old name is also the name of a Mach system call.
10454 * lisp.h, emacs.c: Update for this name change.
10455 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
10456 longer needed.
10457
5a979817
EZ
104582012-07-12 Eli Zaretskii <eliz@gnu.org>
10459
10460 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
10461 memmove call that removes glyphs covered by the left truncation
10462 glyph. Improve commentary.
10463 (display_line): Fix display of continuation glyphs on GUI frames
10464 when the right fringe is turned off and variable-size fonts are
10465 used in the window. Move the code that appends a stretch glyph to
10466 produce_special_glyphs, so that it could be used for truncation
10467 and continuation glyphs alike.
10468 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
10469 glyph of a suitably computed width, to align the special glyphs at
10470 the window margin. Code moved from display_line. (Bug#11832)
10471
3e91a053
GM
104722012-07-12 Glenn Morris <rgm@gnu.org>
10473
ba9e4b84
GM
10474 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
10475
10476 * s/gnu-linux.h, s/hpux10-20.h:
10477 Do not unconditionally define HAVE_XRMSETDATABASE.
10478
3e91a053
GM
10479 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
10480
b300b1f4
PE
104812012-07-12 Paul Eggert <eggert@cs.ucla.edu>
10482
10483 Fix typos that broke OS X build.
10484 Reported by Randal L. Schwartz in
10485 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
10486 * nsterm.m (ns_timeout): Add missing local decl.
10487 (ns_get_color): snprintf -> sprintf, to fix typo.
10488
6e777848
GM
104892012-07-12 Glenn Morris <rgm@gnu.org>
10490
3f922c37
GM
10491 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
10492 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
10493 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
10494 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
10495
0ab7b23a
GM
10496 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
10497 Move PTY_OPEN to configure.
10498
6e777848
GM
10499 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10500 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
10501 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
10502
4a7edc24
DA
105032012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
10504
10505 Use empty_unibyte_string where applicable.
10506 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
10507 * lread.c (read1): Likewise.
10508 * xsettings.c (syms_of_xsettings): Likewise.
10509
308aab79
GM
105102012-07-12 Glenn Morris <rgm@gnu.org>
10511
42bd1719
GM
10512 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
10513 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
10514 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
10515 * s/hpux10-20.h (RUN_TIME_REMAP):
10516 * s/bsd-common.h (TABDLY): Move to configure.
10517
10518 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
10519
10520 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
10521
ea0bbd17 10522 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 10523 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
10524
10525 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 10526
308aab79
GM
10527 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
10528 * s/template.h: Move NARROWPROTO to configure.
10529
ee1cf5cf
GM
105302012-07-11 Glenn Morris <rgm@gnu.org>
10531
30fe9bf4
GM
10532 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
10533 unused since 2011-01-17 change to systty.h.
10534
ee1cf5cf
GM
10535 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
10536 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
10537 Move HAVE_PTYS and HAVE_SOCKETS to configure.
10538
63e47e07
PE
105392012-07-11 Paul Eggert <eggert@cs.ucla.edu>
10540
10541 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
10542
c43fb4c3
GM
105432012-07-11 Glenn Morris <rgm@gnu.org>
10544
10545 * s/darwin.h, s/gnu-linux.h, s/template.h:
10546 Move INTERRUPT_INPUT to configure.
10547
e8df9267
DA
105482012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10549
10550 Minor adjustments to interning code.
10551 * lisp.h (intern, intern_c_string): Redefine as static inline
10552 wrappers for intern_1 and intern_c_string_1, respectively.
10553 (intern_1, intern_c_string_1): Rename prototypes.
14ae4239
BT
10554 * lread.c (intern_1, intern_c_string_1, oblookup):
10555 Simplify Vobarray checking.
e8df9267
DA
10556 * font.c (font_intern_prop): Likewise. Adjust comment.
10557 * w32font.c (intern_font_name): Likewise.
10558
34348bd4
AS
105592012-07-11 Andreas Schwab <schwab@linux-m68k.org>
10560
d96a1e0c
AS
10561 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
10562
34348bd4
AS
10563 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
10564 of Fcar/Fcdr if possible.
10565 * font.c (check_otf_features): Likewise.
10566 * fontset.c (Fnew_fontset): Likewise.
10567 * gnutls.c (Fgnutls_boot): Likewise.
10568 * minibuf.c (read_minibuf): Likewise.
10569 * msdos.c (IT_set_frame_parameters): Likewise.
10570 * xmenu.c (Fx_popup_dialog): Likewise.
10571 * w32menu.c (Fx_popup_dialog): Likewise.
10572
c8add24e
GM
105732012-07-11 Glenn Morris <rgm@gnu.org>
10574
4b575b3c
GM
10575 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
10576 since nothing has defined it on these platforms.
10577
09f4e3b0
GM
10578 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
10579 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
10580
172bedef
GM
10581 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10582 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
10583 Move CLASH_DETECTION to configure.
10584
249685df
GM
10585 * s/gnu.h: Remove file, which is now empty.
10586
c8add24e
GM
10587 * s/gnu.h, s/gnu-linux.h:
10588 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
10589
b41253a3
JW
105902012-07-11 John Wiegley <johnw@newartisans.com>
10591
10592 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
10593 function attribute, so we only use it if it exists in the
10594 compiler.
10595
d923b542
DA
105962012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10597
10598 Avoid call to strlen in fast_c_string_match_ignore_case.
10599 * search.c (fast_c_string_match_ignore_case): Change to use
10600 length argument. Adjust users accordingly.
10601 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
10602
5ebbef1d
PE
106032012-07-11 Paul Eggert <eggert@cs.ucla.edu>
10604
bb352260
PE
10605 Assume mkdir, rmdir.
10606 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
10607 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
10608
57054ddd
PE
10609 Assume rename.
10610 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
10611
b747d3f7
PE
10612 Assume perror.
10613 * s/hpux10-20.h (HAVE_PERROR): Remove.
10614 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
10615 Remove dummy definition, as this problem was obsolete long ago.
10616
5ebbef1d
PE
10617 Assume strerror.
10618 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
10619
984e7f30
DA
106202012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10621
10622 Avoid calls to strlen in font processing functions.
10623 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
14ae4239
BT
10624 (font_open_by_name): Change to use length argument.
10625 Adjust users accordingly.
d923b542
DA
10626 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
10627 Adjust prototypes.
10628 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
10629 Change to return ptrdiff_t.
984e7f30
DA
10630 (xfont_list_pattern, xfont_match): Use length returned by
10631 xfont_decode_coding_xlfd.
10632 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
10633
20e94fdd
GM
106342012-07-11 Glenn Morris <rgm@gnu.org>
10635
9d596af3
GM
10636 * s/darwin.h, s/freebsd.h, s/netbsd.h:
10637 Move DONT_REOPEN_PTY to configure.
10638
20e94fdd
GM
10639 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
10640 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
10641
e99a530f
PE
106422012-07-10 Paul Eggert <eggert@cs.ucla.edu>
10643
22ffb973
PE
10644 Remove "#define unix" that is no longer needed (Bug#11905).
10645 * s/aix4-2.h (unix): Remove; no longer needed.
10646
e9a9ae03
PE
10647 EMACS_TIME simplification (Bug#11875).
10648 This replaces macros (which typically do not work in GDB)
10649 with functions, typedefs and enums, making the code easier to debug.
10650 The functional style also makes code easier to read and maintain.
10651 * systime.h: Include <sys/time.h> on all hosts, not just if
10652 WINDOWSNT, since 'struct timeval' is needed in general.
10653 (EMACS_TIME): Now a typedef, not a macro.
10654 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
10655 not macros.
10656 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
10657 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
10658 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
10659 (EMACS_TIME_LE): Now functions, not macros.
10660 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
10661 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
10662 which are not functions. All uses rewritten to use:
10663 (make_emacs_time): New function.
10664 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
10665 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
10666 not functions. All uses rewritten to use the following, respectively:
10667 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
10668 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 10669 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
10670 * fileio.c (Fcopy_file):
10671 * xterm.c (XTflash): Get the current time closer to when it's used.
10672 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
10673
ffacb126
PE
10674 * bytecode.c (targets): Suppress -Woverride-init warnings.
10675
e99a530f
PE
10676 Simplify by avoiding confusing use of strncpy etc.
10677 * doc.c (Fsnarf_documentation):
10678 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
10679 * frame.c (Fmake_terminal_frame):
10680 * gtkutil.c (get_utf8_string):
10681 * lread.c (openp):
10682 * nsmenu.m (ns_update_menubar):
10683 * regex.c (regerror):
10684 Prefer memcpy to strncpy and strncat when either will do.
10685 * fileio.c (Fsubstitute_in_file_name):
10686 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
10687 (menu_separator_name_p):
10688 * nsmenu.m (ns_update_menubar):
10689 Prefer memcmp to strncmp when either will do.
10690 * nsterm.m: Include <ftoastr.h>.
10691 (ns_get_color):
10692 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
10693 Prefer snprintf to strncpy.
10694 * nsterm.m (ns_term_init):
10695 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
10696 * nsterm.m (ns_term_init):
10697 Avoid the need for strncpy, by using build_string or
10698 make_unibyte_string directly. Use dtoastr, not snprintf.
10699 * process.c (Fmake_network_process): Diagnose service names that
10700 are too long, rather than silently truncating them or creating
10701 non-null-terminated names.
10702 (Fnetwork_interface_info): Likewise, for interface names.
10703 * sysdep.c (system_process_attributes) [GNU_LINUX]:
10704 Prefer sprintf to strncat.
10705 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
10706 Prefer vsnprintf to vsprintf + strncpy.
10707
c59592b3
GM
107082012-07-10 Glenn Morris <rgm@gnu.org>
10709
10710 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
10711 Clarify fallback case.
10712
7d7bbefd
DA
107132012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10714
10715 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
10716 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
10717 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 10718 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
10719 where argument type is known to be a Lisp_Cons.
10720
3a4c8000
TT
107212012-07-10 Tom Tromey <tromey@redhat.com>
10722
10723 * bytecode.c (BYTE_CODE_THREADED): New macro.
10724 (BYTE_CODES): New macro. Replaces all old byte-code defines.
10725 (enum byte_code_op): New type.
10726 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
10727 (exec_byte_code): Use them. Use token threading when applicable.
10728
2a0213a6
DA
107292012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10730
10731 Optimize pure C strings initialization.
10732 * lisp.h (make_pure_string): Fix prototype.
10733 (build_pure_c_string): New function, defined as static inline. This
10734 provides a better opportunity to optimize away calls to strlen when
10735 the function is called with compile-time constant argument.
10736 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
10737 argument, adjust users accordingly. Use build_pure_c_string where
10738 appropriate.
10739 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
10740 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
10741 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
10742
cb1caeaf
DA
107432012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10744
10745 Avoid calls to strlen in miscellaneous functions.
10746 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
10747 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
10748 * lread.c (openp): Likewise.
10749
c293e30c
DA
107502012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10751
10752 Avoid calls to strlen in path processing functions.
10753 * fileio.c (file_name_as_directory): Add comment. Change to add
10754 srclen argument and return the length of result. Adjust users
10755 accordingly.
10756 (directory_file_name): Fix comment. Change to add srclen argument,
14ae4239
BT
10757 swap 1st and 2nd arguments to obey the common convention.
10758 Adjust users accordingly.
c293e30c
DA
10759 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
10760
9e059e3f
GM
107612012-07-10 Glenn Morris <rgm@gnu.org>
10762
d02eb359
GM
10763 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
10764 Move PENDING_OUTPUT_COUNT definition to configure.
10765
882cf227
GM
10766 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
10767 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
10768 * s/gnu.h (DATA_START): Move definitions to configure.
10769
af6e839f
GM
10770 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
10771 We include usg5-4-common.h, which defines them both.
10772
40289a12
GM
10773 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
10774 O_RDONLY already includes it).
10775
9e059e3f
GM
10776 Stop ns builds setting the EMACSLOADPATH environment variable.
10777 * nsterm.m (ns_load_path): Rename from ns_init_paths.
10778 Now it does not set EMACSLOADPATH, just returns the load-path string.
10779 * nsterm.h: Update accordingly.
10780 * lread.c [HAVE_NS]: Include nsterm.h.
10781 (init_lread) [HAVE_NS]: Use ns_load_path.
10782 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
10783
7c4e8ec0
GM
107842012-07-09 Glenn Morris <rgm@gnu.org>
10785
d4f600ff
GM
10786 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
10787 since the included bsd-common.h does so.
10788
cbb31951
GM
10789 Stop ns builds setting the EMACSPATH environment variable.
10790 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
10791 (ns_init_paths): Do not set EMACSPATH.
10792 * nsterm.h (ns_exec_path): Add it.
10793 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
10794 Use ns_exec_path.
10795
7c4e8ec0
GM
10796 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
10797
26bccfae
PE
107982012-07-09 Paul Eggert <eggert@cs.ucla.edu>
10799
a0bee46f
PE
10800 * process.c (wait_reading_process_output): 'waitchannels' was unset
10801 when read_kbd || !NILP (wait_for_cell); fix this.
10802
5994c183
PE
10803 Add GCC-style 'const' attribute to functions that can use it.
10804 * character.h (char_resolve_modifier_mask):
10805 * keyboard.h (make_ctrl_char):
10806 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
10807 (init_character_once, next_almost_prime, init_fns, init_image)
10808 (flush_pending_output, init_sound):
10809 * mem-limits.h (start_of_data):
10810 * menu.h (finish_menu_items):
10811 Add ATTRIBUTE_CONST.
10812 * emacs.c (DEFINE_DUMMY_FUNCTION):
10813 Declare the dummy function with ATTRIBUTE_CONST.
10814 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
10815 Add decls with ATTRIBUTE_CONST.
10816
26bccfae
PE
10817 Minor improvements to make_formatted_string.
10818 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
10819 where int is good enough, as vsprintf returns an int.
10820 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
10821
a8290ec3
DA
108222012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
10823
10824 Use make_formatted_string to avoid double length calculation.
10825 * lisp.h (make_formatted_string): New prototype.
10826 * alloc.c (make_formatted_string): New function.
10827 * buffer.c (Fgenerate_new_buffer_name): Use it.
220cb2bd 10828 * dbusbind.c (syms_of_dbusbind): Likewise.
a8290ec3
DA
10829 * editfns.c (Fcurrent_time_zone): Likewise.
10830 * filelock.c (get_boot_time): Likewise.
10831 * frame.c (make_terminal_frame, set_term_frame_name)
10832 (x_report_frame_params): Likewise.
10833 * image.c (gs_load): Likewise.
10834 * minibuf.c (get_minibuffer): Likewise.
10835 * msdos.c (dos_set_window_size): Likewise.
10836 * process.c (make_process): Likewise.
10837 * xdisp.c (ensure_echo_area_buffers): Likewise.
10838 * xsettings.c (apply_xft_settings): Likewise.
10839
d01ba2f1
GM
108402012-07-09 Glenn Morris <rgm@gnu.org>
10841
10842 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
10843 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
10844 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
10845 * nsterm.h (ns_etc_directory): Add it.
10846 * callproc.c [HAVE_NS]: Include nsterm.h.
10847 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
10848
f1f924b6
DA
108492012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
10850
10851 Move marker debugging code under MARKER_DEBUG.
10852 * marker.c (MARKER_DEBUG): Move marker debugging code under
10853 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
10854 for bootstrap with --enable-checking (~3x slowdown reported
10855 by Juanma Barranquero <lekktu@gmail.com>).
10856 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
10857
ab531b66
PE
108582012-07-08 Paul Eggert <eggert@cs.ucla.edu>
10859
10860 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
10861 See <http://bugs.gnu.org/11825#29>.
10862
c4b3bc8a
EZ
108632012-07-08 Eli Zaretskii <eliz@gnu.org>
10864
10865 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
10866 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
10867 (display_line): Add commentary about displaying truncation glyphs
10868 on GUI frames.
10869 (produce_special_glyphs): Move here from term.c.
10870
10871 * term.c (produce_special_glyphs): Move to xdisp.c.
10872
10873 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
10874 section.
c4b3bc8a 10875
b676b881
AS
108762012-07-07 Andreas Schwab <schwab@linux-m68k.org>
10877
f17c5273
AS
10878 * xdisp.c (display_line): Avoid warning about implicit declaration
10879 of FRAME_FONT.
10880
298819b9
AS
10881 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
10882
b676b881
AS
10883 * lisp.h: Remove empty conditional.
10884
6045c4fd
PE
108852012-07-07 Paul Eggert <eggert@cs.ucla.edu>
10886
b3350bf9
PE
10887 * lread.c (load_path_check): Now static.
10888
6045c4fd
PE
10889 Fix some minor --with-ns problems found by static checking.
10890 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
10891 (x_set_font) [!HAVE_X_WINDOWS]:
10892 * image.c (xpm_load_image) [HAVE_NS]:
10893 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
10894 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
10895 Remove unused local.
10896 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
10897 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
10898 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
10899 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
10900 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
10901 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
10902 Fix pointer signedness problem.
10903 * xfaces.c (FRAME_X_FONT_TABLE):
10904 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
10905
929e7845
GM
109062012-07-07 Glenn Morris <rgm@gnu.org>
10907
10908 * lread.c (load_path_check): New function, split from init_lread.
10909 (init_lread): Reorganize. Motivation:
10910 If EMACSLOADPATH is set, check/warn about that rather than the
10911 defaults, which we are not going to use. Hence we can remove
10912 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
10913 Don't warn if site-lisp directories are missing.
10914 If not installed, start from a blank load-path, since
10915 PATH_LOADSEARCH refers to the eventual installation directories.
10916
58dd0aa4
EZ
109172012-07-07 Eli Zaretskii <eliz@gnu.org>
10918
10919 Support truncation and continuation glyphs on GUI frames, when
10920 fringes are disabled. (Bug#11832)
10921 * xdisp.c (init_iterator): Get dimensions of truncation and
14ae4239
BT
10922 continuation glyphs even if on GUI frames.
10923 Adjust it->last_visible_x on GUI frames when the left or right fringes,
58dd0aa4
EZ
10924 or both, are absent.
10925 (start_display, move_it_in_display_line_to): Handle the case of a
10926 GUI frame without a fringe to display continuation or truncation
10927 glyphs.
10928 (insert_left_trunc_glyphs): Support GUI frames: make sure
10929 truncation glyphs overwrite enough glyphs from the current line to
10930 have sufficient space in pixels.
10931 (display_line): Support truncation and continuation glyphs on GUI
10932 frames. If some spare pixels are left on the line after inserting
10933 the truncation glyphs, fill that space with a stretch glyph of a
10934 suitably computed width.
10935
10936 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
10937 produce_glyphs, to support GUI sessions.
10938
31571fd7
PE
109392012-07-07 Paul Eggert <eggert@cs.ucla.edu>
10940
5a16b9bc
PE
10941 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
10942
f3047c75
PE
10943 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
10944
31571fd7
PE
10945 Do not require float-time's arg to fit in time_t (Bug#11825).
10946 This works better on hosts where time_t is unsigned, and where
10947 float-time is applied to the (negative) difference between two times.
10948 * editfns.c (decode_time_components): Last arg is now double *,
10949 not int *, and means to store all the result as a double, without
10950 worrying about whether the seconds part fits in time_t.
10951 All callers changed.
10952 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
10953 All callers changed.
10954 (Ffloat_time): Do not fail merely because the specified time falls
10955 outside of time_t range.
10956
4516fbef
GM
109572012-07-07 Glenn Morris <rgm@gnu.org>
10958
10959 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
10960 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
10961 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
10962
07adc2c6
JB
109632012-07-07 Juanma Barranquero <lekktu@gmail.com>
10964
10965 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
10966 Update dependencies.
10967
10968 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
10969
fd573f31
PE
109702012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10971
fee5959d
PE
10972 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
10973 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
10974 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
10975 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
10976 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
10977 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
10978
fd573f31
PE
10979 * xfont.c (compare_font_names): Redo to omit the need for casts.
10980
ddadbc0e
AS
109812012-07-06 Andreas Schwab <schwab@linux-m68k.org>
10982
fca8d6b6
AS
10983 * xfns.c (Fx_change_window_property): Doc fix.
10984 * w32fns.c (Fx_change_window_property): Doc fix.
10985
ddadbc0e
AS
10986 * w32fns.c (Fx_window_property): Accept the same arguments as the
10987 X Windows version. Doc fix.
10988 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
10989
ed9265fc 109902012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
10991 Eli Zaretskii <eliz@gnu.org>
10992
10993 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
10994 Windows-specific code from nt/config.nt moved here.
10995 Obsolete settings removed.
10996
216ee680
PE
109972012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10998
10999 * process.c: Avoid unnecessary calls to gettime.
11000 (wait_reading_process_output): Don't get the time of day
11001 when gobbling data immediately and not waiting, as there's no need
11002 for it in that case. This removes a FIXME.
11003
bdd091e4
JD
110042012-07-06 Jan Djärv <jan.h.d@swipnet.se>
11005
11006 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
11007 is defined (Bug#11768).
11008
9d44f8ce
DA
110092012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11010
11011 Fix marker debugging code.
11012 * marker.c (byte_char_debug_check): Do not perform the check
11013 if buffer is not multibyte.
090bd7cb
JB
11014 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
11015 Call byte_char_debug_check with correct arguments.
9d44f8ce 11016
90fc4786
DA
110172012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11018
11019 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
11020 * marker.c (byte_char_debug_check, count_markers):
11021 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
11022 (byte_debug_flag): Remove.
11023 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
11024 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
11025
7b7ae965
DA
110262012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11027
4e57b342
DA
11028 Avoid code repetition in marker-related functions.
11029 * marker.c (attach_marker): New function.
11030 (Fset_marker, set_marker_restricted, set_marker_both)
11031 (set_marker_restricted_both): Use it.
11032 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
11033 Consistently rename charno to charpos.
11034 (marker_position): Add eassert.
11035 (marker_byte_position): Convert to eassert.
11036
110372012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11038
11039 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 11040 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 11041 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 11042
657924ff
DA
110432012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11044
11045 Introduce fast path for the widely used marker operation.
11046 * alloc.c (build_marker): New function.
11047 * lisp.h (build_marker): New prototype.
11048 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
11049 * composite.c (autocmp_chars): Likewise.
11050 * editfns.c (buildmark): Remove.
11051 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
11052 (save_restriction_save): Use build_marker.
11053 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
11054 * window.c (save_window_save): Likewise.
11055
041a49a6
DA
110562012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11057
11058 Do not use Fdelete_overlay in delete_all_overlays
11059 to avoid redundant calls to unchain_overlay.
11060 * buffer.c (drop_overlay): New function.
11061 (delete_all_overlays, Fdelete_overlay): Use it.
11062 * minibuf.c (get_minibuffer): Fix comment.
11063
7dca65a4
PE
110642012-07-06 Paul Eggert <eggert@cs.ucla.edu>
11065
11066 Port to OpenBSD 5.1 amd64.
11067 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
11068 This is needed for OpenBSD, and should be harmless on all BSD systems.
11069 Also, include <sys/sysctl.h>, as it should be available on all
11070 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
11071 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
11072 use p_pid member, not kp_proc.pid.
11073
8eb876e2
GM
110742012-07-06 Glenn Morris <rgm@gnu.org>
11075
11076 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
11077
38182d90
PE
110782012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11079
11080 More xmalloc and related cleanup.
11081 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
11082 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
11083 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
11084 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
11085 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
11086 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
11087 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
11088 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
11089 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
11090 * xterm.c:
11091 Omit needless casts involving void * pointers and allocation.
11092 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
11093 as the former is more robust if P's type is changed.
11094 Prefer xzalloc to xmalloc + memset 0.
11095 Simplify malloc-or-realloc to realloc.
11096 Don't worry about xmalloc returning a null pointer.
11097 Prefer xstrdup to xmalloc + strcpy.
11098 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
11099 growing it.
11100 * keyboard.c (apply_modifiers_uncached): Prefer local array to
11101 alloca of a constant.
11102
6dd5a677
EZ
111032012-07-05 Eli Zaretskii <eliz@gnu.org>
11104
11105 * xdisp.c (display_line): Fix horizontal pixel coordinates when
11106 hscroll is larger than the line width. Fixes long and futile
11107 looping inside extend_face_to_end_of_line (on a TTY) producing
11108 glyphs that are not needed and thrown away.
11109
6b312f0f
DA
111102012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
11111
11112 * marker.c (set_marker_restricted_both): Simplify by using
11113 clip_to_bounds.
11114
f520ef9b
PE
111152012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11116
11117 * editfns.c (region_limit): Simplify by using clip_to_bounds.
11118
383b7c95
JD
111192012-07-05 Jan Djärv <jan.h.d@swipnet.se>
11120
11121 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
11122 not defined (Bug#11768).
11123 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
11124 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
11125 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
11126 followed by gtk_box_set_homogeneous (Bug#11768).
11127 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
11128 (update_theme_scrollbar_width, xg_create_scroll_bar):
11129 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
11130 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
11131 (is_box_type): New function (Bug#11768).
11132 (xg_tool_item_stale_p): Call is_box_type.
5293d758 11133 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
11134 with default display (Bug#11768).
11135
d6e7bf45
EZ
111362012-07-05 Eli Zaretskii <eliz@gnu.org>
11137
11138 * xdisp.c (window_hscroll_limited): New function.
11139 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
11140 coordinates when window's hscroll is set to insanely large
11141 values. (Bug#11857)
11142
431391ec
JB
111432012-07-05 Juanma Barranquero <lekktu@gmail.com>
11144
11145 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
11146 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
11147
23f86fce
DA
111482012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
11149
11150 Cleanup xmalloc.
11151 * lisp.h (xzalloc): New prototype. Omit needless casts.
11152 * alloc.c (xzalloc): New function. Omit needless casts.
11153 * charset.c: Omit needless casts. Convert all calls to
11154 xmalloc with following memset to xzalloc.
11155 * dispnew.c: Likewise.
11156 * fringe.c: Likewise.
11157 * image.c: Likewise.
11158 * sound.c: Likewise.
11159 * term.c: Likewise.
11160 * w32fns.c: Likewise.
11161 * w32font.c: Likewise.
11162 * w32term.c: Likewise.
11163 * xfaces.c: Likewise.
11164 * xfns.c: Likewise.
11165 * xterm.c: Likewise.
11166 * atimer.c: Omit needless casts.
11167 * buffer.c: Likewise.
11168 * callproc.c: Likewise.
11169 * ccl.c: Likewise.
11170 * coding.c: Likewise.
11171 * composite.c: Likewise.
11172 * doc.c: Likewise.
11173 * doprnt.c: Likewise.
11174 * editfns.c: Likewise.
11175 * emacs.c: Likewise.
11176 * eval.c: Likewise.
11177 * filelock.c: Likewise.
11178 * fns.c: Likewise.
11179 * gtkutil.c: Likewise.
11180 * keyboard.c: Likewise.
11181 * lisp.h: Likewise.
11182 * lread.c: Likewise.
11183 * minibuf.c: Likewise.
11184 * msdos.c: Likewise.
11185 * print.c: Likewise.
11186 * process.c: Likewise.
11187 * region-cache.c: Likewise.
11188 * search.c: Likewise.
11189 * sysdep.c: Likewise.
11190 * termcap.c: Likewise.
11191 * terminal.c: Likewise.
11192 * tparam.c: Likewise.
11193 * w16select.c: Likewise.
11194 * w32.c: Likewise.
11195 * w32reg.c: Likewise.
11196 * w32select.c: Likewise.
11197 * w32uniscribe.c: Likewise.
11198 * widget.c: Likewise.
11199 * xdisp.c: Likewise.
11200 * xmenu.c: Likewise.
11201 * xrdb.c: Likewise.
11202 * xselect.c: Likewise.
11203
0497dc44
PE
112042012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11205
11206 * fileio.c (time_error_value): Check the right error number.
11207 Problem reported by Troels Nielsen in
11208 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
11209
356e7178
PE
112102012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11211
4e71fd89
PE
11212 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
11213 This should be fixed in a better way; see Eli Zaretskii in
11214 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
11215 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
11216
f0941253
PE
11217 * fileio.c (time_error_value): Rename from special_mtime.
11218 The old name's problems were noted by Eli Zaretskii in
11219 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
11220
065c9eb4
PE
11221 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
11222 This variable's comment says Emacs needs at least one GDB-visible
11223 symbol of type enum pvec_type, to work around GDB problems.
11224 The symbol's value doesn't matter.
11225
356e7178
PE
11226 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
11227 that causes compilation to fail on pre-C99 compilers.
11228
ed9265fc 112292012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
11230
11231 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
11232 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
11233
3884d954
DA
112342012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11235
d209e2fb 11236 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
11237 headers for buffer_defaults and buffer_local_symbols.
11238 Reported by Juanma Barranquero <lekktu@gmail.com>.
11239
ee28be33
SM
112402012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
11241
11242 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
11243 * lisp.h (enum pvec_type): Use fewer bits.
11244 (PSEUDOVECTOR_SIZE_BITS): New constant.
11245 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
11246 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
11247 change in pvec_type.
11248 (PSEUDOVECTOR_TYPEP): New macro.
11249 (TYPED_PSEUDOVECTORP): Use it.
11250 * fns.c (internal_equal): Adapt code to extract pvectype.
11251 * emacs.c (gdb_pvec_type): Update type.
11252 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
11253 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
11254 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
11255 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
11256 (sweep_vectors): Use it. Use local var `total_bytes' instead of
11257 abusing vector->header.next.nbytes.
11258 (live_vector_p): Use PVEC_TYPE.
11259 (mark_object): Adapt code to extract pvectype. Use switch.
11260
c7f2cd7f
PE
112612012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11262
11263 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
11264 Tighten new eassert a bit.
11265
8ce70ed2
DA
112662012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11267
11268 Fix compilation with --enable-gcc-warnings and -O1
11269 optimization level.
11270 * doprnt.c (doprnt): Change type of tem to int, initialize
11271 to avoid compiler warning. Add eassert.
11272 * search.c (simple_search): Initialize match_byte to avoid
11273 compiler warning. Add eassert.
11274
dea7f1e5
PE
112752012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11276
24a212eb
PE
11277 Avoid weird behavior with large horizontal scrolls.
11278 Without this change, for example, large hscroll values would
11279 mess up Emacs's display on Fedora 15 x86, presumably due to
11280 overflows in int calculations in the display code.
11281 Also, if buffers had long lines, Emacs would freeze.
11282 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
11283 (set_window_hscroll): New function, containing the old guts of
11284 Fset_window_hscroll. Return the clipped value.
11285 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
11286 This avoids the need to check against PTRDIFF_MAX.
11287
dea7f1e5
PE
11288 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
11289
76046526
DA
112902012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11291
11292 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
11293
39adff0d
PE
112942012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11295
63807d47
PE
11296 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
11297 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
11298 since GCC 4.4.6 issues a bogus warning for them.
11299
39adff0d
PE
11300 Fix bugs in file timestamp newness comparisons.
11301 * fileio.c (Ffile_newer_than_file_p):
11302 * lread.c (Fload): Use full timestamp resolution of files,
11303 not just the 1-second resolution, so that files that are only
11304 slightly newer still count as newer.
11305 * fileio.c (Ffile_newer_than_file_p): Don't assume file
11306 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
11307
dbeed9a6
PE
113082012-07-03 Paul Eggert <eggert@cs.ucla.edu>
11309
11310 * fileio.c: Improve handling of file time marker. (Bug#11852)
11311 (special_mtime): New function.
11312 (Finsert_file_contents, Fverify_visited_file_modtime):
11313 Use it to set special mtime values consistently.
11314
636334d6
AS
113152012-07-03 Andreas Schwab <schwab@linux-m68k.org>
11316
11317 * fileio.c (Finsert_file_contents): Properly handle st_mtime
11318 marker for non-existing file. (Bug#11852)
11319
e2017fe2
GM
113202012-07-03 Glenn Morris <rgm@gnu.org>
11321
11322 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
11323 and did not make it into globals.h).
11324
404dbd37
TT
113252012-07-03 Tom Tromey <tromey@redhat.com>
11326
11327 * window.c (Fset_window_margins, Fset_window_fringes)
11328 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
11329 * textprop.c (Fprevious_property_change): No longer static.
11330 * syntax.c (Fsyntax_table_p): No longer static.
11331 * process.c (Fget_process, Fprocess_datagram_address): No longer
11332 static.
11333 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
11334 * keyboard.c (Fcommand_execute): No longer static.
11335 Remove EXFUN.
11336 * insdel.c (Fcombine_after_change_execute): No longer static.
11337 * image.c (Finit_image_library): No longer static.
11338 * fileio.c (Fmake_symbolic_link): No longer static.
11339 * eval.c (Ffetch_bytecode): No longer static.
11340 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
11341 * doc.c (Fdocumentation_property, Fsnarf_documentation):
11342 No longer static.
404dbd37
TT
11343 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
11344 static.
11345 * dired.c (Ffile_attributes): No longer static.
11346 * composite.c (Fcomposition_get_gstring): No longer static.
11347 * callproc.c (Fgetenv_internal): No longer static.
11348
11349 * ccl.h: Remove EXFUNs.
11350 * buffer.h: Remove EXFUNs.
11351 * dispextern.h: Remove EXFUNs.
11352 * intervals.h: Remove EXFUNs.
11353 * fontset.h: Remove EXFUN.
11354 * font.h: Remove EXFUNs.
11355 * dosfns.c (system_process_attributes): Remove EXFUN.
11356 * keymap.h: Remove EXFUNs.
11357 * lisp.h: Remove EXFUNs.
11358 * w32term.h: Remove EXFUNs.
11359 * window.h: Remove EXFUNs.
11360 * xsettings.h: Remove EXFUN.
11361 * xterm.h: Remove EXFUN.
11362
8e4fd1e1
GM
113632012-07-03 Glenn Morris <rgm@gnu.org>
11364
11365 * lisp.h (Frandom): Make it visible to C.
11366 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
11367 buffer for invisible buffers. (Bug#1229)
11368
ca95b3eb
DA
113692012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11370
11371 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
11372 values which aren't power of 2.
14ae4239 11373 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
1f9f395d 11374 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
ca95b3eb
DA
11375 accordingly.
11376
7555c33f
SM
113772012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
11378
11379 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
11380
11381 * alloc.c (mark_object): Revert part of last patch to use `switch'.
11382
d12e8f5a
DA
113832012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11384
11385 * alloc.c (allocate_vector_block): Remove redundant
11386 calls to mallopt if DOUG_LEA_MALLOC is defined.
11387 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
11388 avoid calls to mallopt if zero_vector is returned.
11389
296094c3
DA
113902012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11391
11392 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
11393 is enabled, avoid dereferencing NULL current_sblock if
11394 running undumped.
11395
36429c89
DA
113962012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11397
11398 Cleanup basic buffer management.
11399 * buffer.h (struct buffer): Change layout to use generic vector
11400 marking code. Fix some comments. Change type of 'clip_changed'
11401 to bitfield. Remove unused #ifndef old.
11402 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
11403 (GET_OVERLAYS_AT): Fix indentation.
11404 (for_each_per_buffer_object_at): New macro.
11405 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
11406 (Fbuffer_local_variables): Use it.
11407 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
11408 * alloc.c (allocate_buffer): Adjust to match new layout of
11409 struct buffer. Fix comment.
11410 (mark_overlay): New function.
11411 (mark_buffer): Use it. Use mark_vectorlike to mark normal
11412 Lisp area of struct buffer.
11413 (mark_object): Use it. Adjust marking of misc objects
11414 and related comments.
11415
3b3e4cac
PE
114162012-07-02 Paul Eggert <eggert@cs.ucla.edu>
11417
11418 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
11419 wrapper that is not needed because the wrapped code is a no-op (zero
11420 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
11421 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
11422
cf5c0175
DA
114232012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
11424
11425 * alloc.c (mark_buffer): Simplify. Remove prototype.
11426 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 11427 objects. Use CHECK_LIVE for all vector-like objects except buffers
14ae4239
BT
11428 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
11429 Avoid redundant calls to mark_vectorlike for bool vectors.
cf5c0175 11430
ca26824c
GM
114312012-06-30 Glenn Morris <rgm@gnu.org>
11432
2e4c5312
GM
11433 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
11434
ca26824c
GM
11435 * epaths.in (PATH_SITELOADSEARCH): New.
11436 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
11437 This is rather than relying on --enable-locallisppath elements
11438 having "site-lisp" in their names. (Bug#10208#25, 11658)
11439
0d23c240
EZ
114402012-06-30 Eli Zaretskii <eliz@gnu.org>
11441
c9240d7a
EZ
11442 * w32proc.c (sys_select): Accept and ignore one more argument.
11443
11444 * w32.c (emacs_gnutls_pull): Call select with one more argument.
11445
0d23c240 11446 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 11447 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
11448
11449 * sysdep.c: Don't include dos.h and dosfns.h.
11450
11451 * process.c (sys_select):
11452 * msdos.c (sys_select): Accept one more argument and ignore it.
11453
11454 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
11455 adapt data types and code to that.
11456
11457 * dosfns.c:
11458 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
11459 which clashes with the gnulib function of the same name.
11460
af5a5a98
AS
114612012-06-30 Andreas Schwab <schwab@linux-m68k.org>
11462
c5e4379c
AS
11463 * font.c (font_style_to_value, font_style_symbolic)
11464 (font_prop_validate_style): Add type checks for values in
11465 font_style_table.
11466
af5a5a98
AS
11467 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
11468 argument.
11469 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
11470 uses.
11471
8d38f461
EZ
114722012-06-29 Eli Zaretskii <eliz@gnu.org>
11473
2e5a6631
EZ
11474 * xdisp.c (try_window_id): Undo last change.
11475
8d38f461
EZ
11476 * w32.c (getwd): Adjust commentary about startup_dir.
11477 (init_environment): Always call sys_access, even in non-MSVC
11478 builds. Don't chdir to the directory of the Emacs executable.
11479 This undoes code from 1997 which was justified by the need to
11480 "avoid conflicts when removing and renaming directories". But its
11481 downside was that every relative file name was being interpreted
11482 relative to the directory of the Emacs executable, which can never
11483 be TRT. In particular, it broke sys_access when called with
11484 relative file names.
11485 (sys_access): Map GetLastError to errno.
11486
2af3565e
DA
114872012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11488
11489 * window.h (struct window): Change type of 'fringes_outside_margins'
11490 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 11491 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
11492 Adjust comment.
11493 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
11494 to ptrdiff_t.
11495
c8d3a25c 114962012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 11497
c8d3a25c
GM
11498 * gnutls.c (emacs_gnutls_handshake):
11499 Add QUIT to make the loop interruptible.
57570cd3 11500
c8d3a25c 115012012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 11502
c8d3a25c
GM
11503 * charset.c (init_charset): Make lack of etc/charsets fatal.
11504
3e984ee8
DA
115052012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11506
11507 * editfns.c (region_limit): Fix type mismatch.
11508
ef884f23
DA
115092012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11510
11511 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
11512 undefined. Convert from xassert to eassert.
11513 * nsmenu.m: Convert from xassert to eassert.
11514 * nsterm.m: Likewise.
11515
7d7e0027
SM
115162012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
11517
11518 * editfns.c (region_limit): Clip to narrowing (bug#11770).
11519
aa754e6a
PE
115202012-06-28 Paul Eggert <eggert@cs.ucla.edu>
11521
11522 Avoid integer overflow on scroll-left and scroll-right.
11523 * window.c (HSCROLL_MAX): New macro.
11524 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
11525 overflow when requested scroll falls outside ptrdiff_t range.
11526
80b00b08
DA
115272012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11528
11529 * window.h (struct window): Change type of 'hscroll',
11530 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
11531 'last_modified' and 'last_overlay_modified' to EMACS_INT.
11532 Adjust users accordingly.
11533 * xdisp.c (try_cursor_movement): Replace type check with eassert.
11534 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
11535 from EMACS_INT to ptrdiff_t.
11536 (make_window): Omit redundant initialization.
11537
62b2bcf6
JB
115382012-06-28 Juanma Barranquero <lekktu@gmail.com>
11539
11540 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
11541
45942c7d
DA
115422012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11543
11544 * window.h (struct window): Change type of 'use_time' and
11545 'sequence_number' from Lisp_Object to int.
11546 * frame.c (make_frame): Adjust users accordingly.
11547 * print.c (print_object): Likewise.
11548 * window.c (select_window, Fwindow_use_time, make_parent_window)
11549 (make_window): Likewise.
11550
e509cfa6
DA
115512012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11552
11553 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
11554 enabled with --enable-checking=[all,glyphs] configure option.
11555 Fix GLYPH_DEBUG usage assuming that it may be undefined,
11556 adjust comments accordingly.
11557 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
11558 undefined, adjust comments accordingly.
11559 * image.c: Likewise.
11560 * scroll.c: Likewise.
11561 * w32fns.c: Likewise.
11562 * w32term.c: Likewise.
11563 * xdisp.c: Likewise.
11564 * xfaces.c: Likewise.
11565 * xfns.c: Likewise.
11566 * xterm.c: Likewise.
11567
a54e2c05
DA
115682012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11569
11570 Generalize run-time debugging checks.
11571 * dispextern.h (XASSERTS): Remove.
11572 * fontset.c (xassert): Remove.
11573 Convert from xassert to eassert.
11574 * alloc.c: Convert from xassert to eassert.
11575 * bidi.c: Likewise.
11576 * dispnew.c: Likewise.
11577 * fns.c: Likewise.
11578 * fringe.c: Likewise.
11579 * ftfont.c: Likewise.
11580 * gtkutil.c: Likewise.
11581 * image.c: Likewise.
11582 * keyboard.c: Likewise.
11583 * menu.c: Likewise.
11584 * process.c: Likewise.
11585 * scroll.c: Likewise.
11586 * sound.c: Likewise.
11587 * term.c: Likewise.
11588 * w32console.c: Likewise.
11589 * w32fns.c: Likewise.
11590 * w32term.c: Likewise.
11591 * window.c: Likewise.
11592 * xdisp.c: Likewise.
11593 * xfaces.c: Likewise.
11594 * xfns.c: Likewise.
11595 * xselect.c: Likewise.
11596 * xterm.c: Likewise.
11597
1ec4b7b2
SM
115982012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
11599
11600 * fns.c (maybe_resize_hash_table): Output message when growing the
11601 purify-hashtable.
11602
2014308a
DA
116032012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11604
11605 * alloc.c (allocate_string_data): Remove dead code.
11606 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
11607 avoid GCC warning about unused macro.
11608
246155eb
DA
116092012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11610
11611 * alloc.c (allocate_string): Omit intervals initialization.
11612 * alloc.c (make_uninit_multibyte_string): Initialize intervals
11613 as in make_pure_string and make_pure_c_string.
11614
43184b7b
DA
116152012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11616
d209e2fb 11617 * alloc.c (allocate_string): Fix last change.
43184b7b 11618
3fe6dd74
DA
116192012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11620
d209e2fb 11621 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
11622 to memset, add explicit initialization where appropriate.
11623
1ba6038a
GM
116242012-06-27 Glenn Morris <rgm@gnu.org>
11625
11626 * lisp.mk (lisp): Remove paths.elc.
11627
c89926a5
CY
116282012-06-27 Chong Yidong <cyd@gnu.org>
11629
11630 * doc.c (Fsubstitute_command_keys): Fix punctuation.
11631
ed6b3510
JW
116322012-06-26 John Wiegley <johnw@newartisans.com>
11633
1ec4b7b2 11634 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
11635 on Mac OS X Lion: __mod_init_func and __mod_term_func.
11636
ed6b3510
JW
11637 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
11638 when building with Clang.
11639
8edd4a2b
SM
116402012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
11641
11642 * eval.c (Fapply): Allow calling it with a single argument.
11643
f6f62d1b
EZ
116442012-06-26 Eli Zaretskii <eliz@gnu.org>
11645
11646 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
11647 _stricmp and _strnicmp.
11648 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
11649
62efea5e
DA
116502012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11651
11652 * alloc.c (allocate_window): Zero out non-Lisp part of newly
11653 allocated window.
11654 (allocate_process): Likewise for new process.
8edd4a2b 11655 (allocate_terminal): Change to use offsetof.
62efea5e
DA
11656 (allocate_frame): Likewise.
11657 * frame.c (make_frame): Omit redundant initialization.
11658 * window.c (make_parent_window): Use memset.
11659 (make_window): Omit redundant initialization.
11660 * process.c (make_process): Omit redundant initialization.
11661 * terminal.c (create_terminal): Likewise.
11662
42997f4d
DA
116632012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11664
11665 * term.c (delete_tty): Remove redundant call to memset.
11666
1130ecfc
DA
116672012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11668
11669 * alloc.c: Remove build_string.
11670 * lisp.h: Define build_string as static inline. This provides
11671 a better opportunity to optimize away calls to strlen when the
11672 function is called with compile-time constant argument.
11673 * image.c (imagemagick_error): Convert to build_string.
11674 * w32proc.c (sys_spawnve): Likewise.
11675 * xterm.c (x_term_init): Likewise.
11676
cf38a720
PE
116772012-06-26 Paul Eggert <eggert@cs.ucla.edu>
11678
99027bdd
PE
11679 Use sprintf return value instead of invoking strlen on result.
11680 In the old days this wasn't portable, since some sprintf
11681 implementations returned char *. But they died out years ago and
11682 Emacs already assumes sprintf returns int.
11683 Similarly for float_to_string.
11684 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
11685 * ccl.c (ccl_driver):
11686 * character.c (string_escape_byte8):
11687 * data.c (Fnumber_to_string):
11688 * doprnt.c (doprnt):
11689 * print.c (print_object):
11690 * xdisp.c (message_dolog):
11691 * xfns.c (syms_of_xfns):
11692 Use sprintf or float_to_string result to avoid need to call strlen.
11693 * data.c (Fnumber_to_string):
11694 Use make_unibyte_string, since the string must be ASCII.
11695 * lisp.h, print.c (float_to_string): Now returns int length.
11696 * term.c (produce_glyphless_glyph):
11697 Use sprintf result rather than recomputing it.
11698
cf38a720
PE
11699 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
11700 * Makefile.in (ALL_CFLAGS):
11701 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
11702 * gmalloc.c, regex.c: Include <config.h> unconditionally.
11703
3511c784
DA
117042012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11705
0a08eb21 11706 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
11707 strcasecmp if available.
11708 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
11709
fb7da12e
AS
117102012-06-25 Andreas Schwab <schwab@linux-m68k.org>
11711
11712 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
11713 Avoid comma operator.
11714 * menu.c (push_submenu_start, push_submenu_end)
11715 (push_left_right_boundary, push_menu_pane): Likewise.
11716 * msdos.c (dos_rawgetc): Likewise.
11717
afa2ffd8
DA
117182012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11719
11720 * xfns.c (xic_create_fontsetname): Remove redundant calls
11721 to memset.
11722
b3b4476b
PE
117232012-06-25 Paul Eggert <eggert@cs.ucla.edu>
11724
4495ff38
PE
11725 * gtkutil.c (get_utf8_string): Remove redundant assignment.
11726 sprintf already null-terminates its output.
11727
b3b4476b
PE
11728 * xfns.c (x_window): Remove redundant cast.
11729
b00876c9
DA
117302012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11731
11732 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
11733 `const char *' to `char *' to avoid compiler warning.
11734
d188e26b
PE
117352012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11736
885d1d74
PE
11737 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
11738 instead of truncating it to 63 (admittedly a generous limit).
11739
d188e26b
PE
11740 * process.c: Fix spelling and caps in comments.
11741
e2f560b1
DN
117422012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
11743
e86db54b 11744 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
11745 * sysdep.c (setpgrp): Remove definition, not used in this file.
11746
7583a3a1
JB
117472012-06-24 Juanma Barranquero <lekktu@gmail.com>
11748
11749 * makefile.w32-in: Update dependencies.
11750
696056c2
EZ
117512012-06-24 Eli Zaretskii <eliz@gnu.org>
11752
11753 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
11754 (SYSTIME_H): Add nt/inc/sys/time.h.
11755
11756 * systime.h [WINDOWSNT]: Include sys/time.h.
11757
11758 * s/ms-w32.h (struct timespec): Definition moved from
11759 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
11760
845ca893
PE
117612012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11762
11763 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
11764 * buffer.h (buffer_slot_type_mismatch):
11765 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
11766 * eval.c (unwind_to_catch):
11767 * image.c (my_png_error, my_error_exit):
11768 * keyboard.c (quit_throw_to_read_char, user_error)
11769 (Fexit_recursive_edit, Fabort_recursive_edit):
11770 * lisp.h (die, args_out_of_range, args_out_of_range_3)
11771 (wrong_type_argument, buffer_overflow, __executable_start)
11772 (memory_full, buffer_memory_full, string_overflow, Fthrow)
11773 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
11774 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
11775 (fatal):
11776 (child_setup) [!DOS_NT]:
11777 * lread.c (end_of_file_error, invalid_syntax):
11778 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
11779 * puresize.h (pure_write_error):
11780 * search.c (matcher_overflow):
11781 * sound.c (sound_perror, alsa_sound_perror):
11782 * sysdep.c, syssignal.h (croak):
11783 * term.c (maybe_fatal, vfatal):
11784 * textprop.c (text_read_only):
11785 * undo.c (user_error):
11786 * unexmacosx.c (unexec_error):
11787 * xterm.c (x_ins_del_lines, x_delete_glyphs):
11788 Use _Noreturn rather than NO_RETURN.
11789 No need for separate decl merely because of _Noreturn.
11790 * sound.c (sound_warning, parse_sound):
11791 Remove unnecessary forward decls.
11792
f1dd8073
PE
117932012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11794
11795 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
11796 * lisp.h (WAIT_READING_MAX): New macro.
11797 * dispnew.c (Fsleep_for, sit_for):
11798 * keyboard.c (kbd_buffer_get_event):
11799 * process.c (Faccept_process_output):
11800 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
11801 This improves on the previous patch, which introduced a bug
11802 when time_t is unsigned and as wide as intmax_t.
11803 See <http://bugs.gnu.org/9000#51>.
11804
b82c1755
EZ
118052012-06-23 Eli Zaretskii <eliz@gnu.org>
11806
11807 * dispnew.c (sit_for, Fsleep_for):
11808 * keyboard.c (kbd_buffer_get_event):
11809 * process.c (Faccept_process_output): Avoid compiler warnings when
11810 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
11811
ca300656
JB
118122012-06-23 Juanma Barranquero <lekktu@gmail.com>
11813
049ec95b
JB
11814 * makefile.w32-in: Update dependencies.
11815
ca300656
JB
11816 * w32.c (ltime): Add return type and declare static.
11817 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
11818
db7b8d06
PE
118192012-06-23 Paul Eggert <eggert@cs.ucla.edu>
11820
11821 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
11822 Privately reported by Herbert J. Skuhra.
11823 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
11824 All uses changed.
11825 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
11826 not make_lisp_timeval, when the argument is of type EMACS_TIME.
11827
0bd8297f
EZ
118282012-06-23 Eli Zaretskii <eliz@gnu.org>
11829
96512555
EZ
11830 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
11831 last argument of make_unibyte_string.
11832
0bd8297f
EZ
11833 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
11834 language ID in the event parameters.
11835
11836 * w32term.c (w32_read_socket): Put the new keyboard codepage into
11837 event.code, not the obscure "character set ID".
11838
63def6b6
CY
118392012-06-23 Chong Yidong <cyd@gnu.org>
11840
11841 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
11842
e8a02204
EZ
118432012-06-23 Eli Zaretskii <eliz@gnu.org>
11844
388cdec0
EZ
11845 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
11846 * w32.c (fdutimens): New function.
11847
11848 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
11849
11850 * s/ms-w32.h (pselect): Redirect to sys_select.
11851
11852 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
11853
e8a02204
EZ
11854 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
11855 in the logic of incrementing and decrementing the value of
11856 use_relocatable_buffers.
11857
d054f3fb
PE
118582012-06-23 Paul Eggert <eggert@cs.ucla.edu>
11859
11860 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
11861 Privately reported by Herbert J. Skuhra.
11862 [__FreeBSD__]: Remove "*/" typo after "#include".
11863 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
11864 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
11865 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
11866 Don't assume EMACS_TIME and struct timeval are the same type.
11867
d35af63c
PE
118682012-06-22 Paul Eggert <eggert@cs.ucla.edu>
11869
11870 Support higher-resolution time stamps (Bug#9000).
11871 The time stamps are only nanosecond-resolution at the C level,
11872 since that's the best that any real-world system supports now.
11873 But they are picosecond-resolution at the Lisp level, as that's
11874 easy, and leaves room for future OS improvements.
11875
11876 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
11877 (LIBES): Use it.
11878
11879 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
11880 Don't get current time unless it's needed.
11881
11882 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
11883 now provides it if it's absent.
11884 (start_atimer): Port to higher-res time stamps.
11885 Check for time stamp overflow. Don't get current time more
11886 often than is needed.
11887
11888 * buffer.h (struct buffer): Buffer modtime now has high resolution.
11889 Include systime.h, not time.h.
11890 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
11891
11892 * dired.c: Include stat-time.h.
11893 (Ffile-attributes): File times now have higher resolution.
11894
11895 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
11896 (struct image): Timestamp now has higher resolution.
11897
11898 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
11899 has at least microseconds now. All uses removed.
11900 (update_frame, update_single_window, update_window, update_frame_1)
11901 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
927c7216 11902 (duration_to_sec_usec): Remove; no longer needed.
d35af63c
PE
11903
11904 * editfns.c (time_overflow): Now extern.
11905 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
11906 (float-time, Fformat_time_string, Fcurrent_time_string)
11907 (Fcurrent_time_zone): Accept and generate higher-resolution
11908 time stamps.
11909 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
11910 (decode_time_components, lisp_seconds_argument): New functions.
11911 (make_time): Now static.
11912 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
11913 Report an error if the time is invalid, rather than having the caller
11914 do that.
11915
11916 * fileio.c: Include <stat-time.h>
11917 (Fcopy_file): Copy higher-resolution time stamps.
11918 Prefer to set the time stamp via a file descriptor if that works.
11919 (Fset_file_times, Finsert_file_contents, Fwrite_region)
11920 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
11921 (Fvisited_file_modtime, Fset_visited_file_modtime):
11922 Support higher-resolution time stamps.
11923
11924 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
11925
11926 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
11927
11928 * image.c (prepare_image_for_display, clear_image_cache)
11929 (lookup_image): Port to higer-resolution time stamps.
11930
11931 * keyboard.c (start_polling, bind_polling_period):
11932 Check for time stamp overflow.
11933 (read_char, kbd_buffer_get_event, timer_start_idle)
11934 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
11935 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
11936 Port to higher-resolution time stamps. Do not assume time_t is signed.
11937 (decode_timer): New function. Timers are now vectors of length 9,
11938 not 8, to accommodate the picosecond component.
11939 (timer_check_2): Use it.
11940
11941 * nsterm.m (select_timeout, timeval_subtract): Remove.
11942 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
11943 as they're a bit more accurate and handle overflow better.
11944 (ns_select): Change prototype to be compatible with pselect.
11945 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
11946 * nsterm.h (ns_select): Adjust prototype.
11947
11948 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
11949 us-resolution time stamps.
11950 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
11951
11952 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
11953
11954 * lisp.h (time_overflow): New decl.
11955 (wait_reading_process_output): First arg is now intmax_t, not int,
11956 to accommodate larger waits.
11957
11958 * process.h (struct Lisp_Process.read_output_delay):
11959 Now counts nanoseconds, not microseconds.
11960 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
11961 EMACS_HAS_USECS.
11962 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
11963 (wait_reading_process_output):
11964 Port to ns-resolution time stamps.
11965 (Faccept_process_output, wait_reading_process_output):
11966 Check for time stamp overflow. Do not assume time_t is signed.
11967 (select_wrapper): Remove; we now use pselect.
11968 (Fprocess_attributes): Now generates ns-resolution time stamps.
11969
11970 * sysdep.c: Include utimens.h. Don't include utime.h
11971 or worry about struct utimbuf; gnulib does that for us now.
11972 (gettimeofday): Remove; gnulib provides a substitute.
11973 (make_timeval): New function.
11974 (set_file_times): Now sets ns-resolution time stamps.
11975 New arg FD; all uses changed.
11976 (time_from_jiffies, ltime_from_jiffies, get_up_time)
11977 (system_process_attributes):
11978 Now returns ns-resolution time stamp. All uses changed.
11979 Check for time stamp overflow.
11980
11981 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
11982 provides a substitute now.
11983
11984 * systime.h: Include timespec.h rather than sys/time.h and time.h,
11985 since it guarantees struct timespec.
11986 (EMACS_TIME): Now struct timespec, so that we can support
11987 ns-resolution time stamps.
11988 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
11989 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
11990 (EMACS_USECS): Remove.
11991 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
11992 so multiply the arg by 1000 before storing it.
11993 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
11994 New macros.
11995 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
11996 Port to ns-resolution time stamps.
11997 (EMACS_TIME_NEG_P): Remove; replaced by....
11998 (EMACS_TIME_SIGN): New macro.
11999 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
12000 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
12001 (set_file_times, make_time, lisp_time_argument): Adjust signature.
12002 (make_timeval, make_lisp_time, decode_time_components): New decls.
12003 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
12004 that it mishandled time_t overflow. You can't compare by subtracting!
12005 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
12006 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
12007
12008 * term.c: Include <sys/time.h>.
12009 (timeval_to_Time): New function, for proper overflow wraparound.
12010 (term_mouse_position, term_mouse_click): Use it.
12011
12012 * undo.c (record_first_change): Support higher-resolution time stamps
12013 in the undo buffer.
12014 (Fprimitive_undo): Use them when restoring time stamps.
12015
12016 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
12017 (w32_get_internal_run_time):
12018 Port to higher-resolution Emacs time stamps.
12019 (ltime): Now accepts single 64-bit integer, as that's more convenient
12020 for callers.
12021
12022 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
12023
12024 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
12025 for compatibility with pselect. Support ns-resolution time stamps.
12026
12027 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
12028
12029 * xselect.c (wait_for_property_change, x_get_foreign_selection):
12030 Check for time stamp overflow, and support ns-resolution time stamps.
12031
12032 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
12033 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
12034 (timeval_subtract): Remove; no longer needed.
12035 (XTflash, XTring_bell, x_wait_for_event):
12036 Port to ns-resolution time stamps. Don't assume time_t is signed.
12037
b6a92dfe
CY
120382012-06-22 Chong Yidong <cyd@gnu.org>
12039
12040 * xdisp.c (x_consider_frame_title): Revert last change.
12041
d251c37c
EZ
120422012-06-22 Eli Zaretskii <eliz@gnu.org>
12043
12044 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
12045 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
12046 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
12047 staticidx goes up to 1597 out of 1600 = 0x640.)
12048
f10deafb
PE
120492012-06-20 Paul Eggert <eggert@cs.ucla.edu>
12050
12051 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
12052 Otherwise, the umask might be mistakenly 0 while handling input signals.
12053
ec6de1e2
SM
120542012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
12055
12056 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
12057
28be1ada
DA
120582012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
12059
12060 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
12061 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
12062 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
12063 access to `contents' member of Lisp_Vector objects with AREF and ASET
12064 where appropriate.
12065
c6bf3022
CY
120662012-06-19 Chong Yidong <cyd@gnu.org>
12067
12068 * frame.c (delete_frame): When selecting a frame on a different
12069 text terminal, do not alter the terminal's top-frame.
12070
12071 * xdisp.c (format_mode_line_unwind_data): Record the target
12072 frame's selected window and its terminal's top-frame.
12073 (unwind_format_mode_line): Restore them.
12074 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
12075 Callers changed.
12076 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
12077 since tty frames can be explicitly named.
12078 (prepare_menu_bars): Likewise.
12079
12080 * term.c (Ftty_top_frame): New function.
12081
defd4196
PE
120822012-06-18 Paul Eggert <eggert@cs.ucla.edu>
12083
12084 Port byte-code-meter to modern targets.
12085 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
12086 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 12087 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
12088 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
12089 (METER_1, METER_2): Simplify.
12090
1053a871
SM
120912012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
12092
12093 * data.c (Fdefalias): Return `symbol' (bug#11686).
12094
b7e8d081
MR
120952012-06-18 Martin Rudalics <rudalics@gmx.at>
12096
12097 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
12098 gets killed during executing of this function (Bug#11665).
12099 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
12100 (Vkill_buffer_query_functions): In doc-string say that functions
12101 run by this hook should not change the current buffer.
12102
7ea2b339
PE
121032012-06-18 Paul Eggert <eggert@cs.ucla.edu>
12104
12105 Fix recently-introduced process.c problems found by static checking.
12106 * process.c (write_queue_push, write_queue_pop, send_process):
12107 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
12108 (write_queue_pop): Fix pointer signedness problem.
12109 (send_process): Remove unused local.
12110
96a313a1
CY
121112012-06-17 Chong Yidong <cyd@gnu.org>
12112
12113 * xdisp.c (redisplay_internal): No need to redisplay terminal
12114 frames that are not on top.
12115
20ca2e94
TN
121162012-06-17 Troels Nielsen <bn.troels@gmail.com>
12117
12118 * process.c (make_process): Initialize write_queue.
12119 (write_queue_push, write_queue_pop): New functions.
12120 (send_process): Use them to maintain correct ordering of process
12121 writes (Bug#10815).
12122
9a900ca9
PE
121232012-06-17 Paul Eggert <eggert@cs.ucla.edu>
12124
310fbfa8
PE
12125 * lisp.h (eassert): Assume C89 or later.
12126 This removes the need for CHECK.
12127 (CHECK): Remove. Its comments about always evaluating its
12128 argument were confusing, as 'eassert' typically does not evaluate
12129 its argument.
12130
27bb1ca4
PE
12131 * coding.c (produce_chars): Use ptrdiff_t, not int.
12132
9a900ca9
PE
12133 * xterm.c (x_draw_underwave): Check for integer overflow.
12134 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
12135
41b7f8bc 121362012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
12137
12138 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
12139 referenced (Bug#11583).
12140
9b0e3eba
AA
121412012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
12142
12143 Implement wave-style variant of underlining.
12144 * dispextern.h (face_underline_type): New enum.
12145 (face): Add field for underline type.
12146 * nsterm.m (ns_draw_underwave): New function.
12147 (ns_draw_text_decoration): Use it.
12148 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
12149 New functions.
12150 (x_draw_glyph_string): Use them.
12151 * xfaces.c (Qline, Qwave): New Lisp objects.
12152 (check_lface_attrs, merge_face_ref)
1053a871
SM
12153 (Finternal_set_lisp_face_attribute, realize_x_face):
12154 Handle wave-style underline face attributes.
9b0e3eba
AA
12155 * xterm.c (x_draw_underwave): New function.
12156 (x_draw_glyph_string): Use it.
12157
0fb52f11
JB
121582012-06-16 Juanma Barranquero <lekktu@gmail.com>
12159
12160 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
12161 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
12162 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
12163 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
12164 ($(BLD)/w32select.$(O)): Update dependencies.
12165
e5560ff7
AS
121662012-06-16 Andreas Schwab <schwab@linux-m68k.org>
12167
12168 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
12169 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
12170 * character.c (_fetch_multibyte_char_p): Remove.
12171 * alloc.c: Include "character.h" before "buffer.h".
12172 * bidi.c: Likewise.
12173 * buffer.c: Likewise.
12174 * bytecode.c: Likewise.
12175 * callint.c: Likewise.
12176 * callproc.c: Likewise.
12177 * casefiddle.c: Likewise.
12178 * casetab.c: Likewise.
12179 * category.c: Likewise.
12180 * cmds.c: Likewise.
12181 * coding.c: Likewise.
12182 * composite.c: Likewise.
12183 * dired.c: Likewise.
12184 * dispnew.c: Likewise.
12185 * doc.c: Likewise.
12186 * dosfns.c: Likewise.
12187 * editfns.c: Likewise.
12188 * emacs.c: Likewise.
12189 * fileio.c: Likewise.
12190 * filelock.c: Likewise.
12191 * font.c: Likewise.
12192 * fontset.c: Likewise.
12193 * fringe.c: Likewise.
12194 * indent.c: Likewise.
12195 * insdel.c: Likewise.
12196 * intervals.c: Likewise.
12197 * keyboard.c: Likewise.
12198 * keymap.c: Likewise.
12199 * lread.c: Likewise.
12200 * macros.c: Likewise.
12201 * marker.c: Likewise.
12202 * minibuf.c: Likewise.
12203 * nsfns.m: Likewise.
12204 * nsmenu.m: Likewise.
12205 * print.c: Likewise.
12206 * process.c: Likewise.
12207 * regex.c: Likewise.
12208 * region-cache.c: Likewise.
12209 * search.c: Likewise.
12210 * syntax.c: Likewise.
12211 * term.c: Likewise.
12212 * textprop.c: Likewise.
12213 * undo.c: Likewise.
12214 * unexsol.c: Likewise.
12215 * w16select.c: Likewise.
12216 * w32fns.c: Likewise.
12217 * w32menu.c: Likewise.
12218 * window.c: Likewise.
12219 * xdisp.c: Likewise.
12220 * xfns.c: Likewise.
12221 * xmenu.c: Likewise.
12222 * xml.c: Likewise.
12223 * xselect.c: Likewise.
12224
2f07e6af
EZ
122252012-06-16 Eli Zaretskii <eliz@gnu.org>
12226
1053a871
SM
12227 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
12228 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 12229 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
12230 row.
12231 (handle_face_prop): Use chunk-relative overlay string index when
12232 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
12233 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
12234 the rightmost. (Bug#11720)
2f07e6af 12235
29b83cec
AS
122362012-06-16 Andreas Schwab <schwab@linux-m68k.org>
12237
12238 * category.h (CHAR_HAS_CATEGORY): Define as inline.
12239 (CATEGORY_MEMBER): Enforce 1/0 value.
12240 * category.c (_temp_category_set): Remove.
12241
4c5501e9
EZ
122422012-06-16 Eli Zaretskii <eliz@gnu.org>
12243
12244 * window.c (Fdelete_other_windows_internal)
12245 (Fdelete_window_internal): Don't access frame's mouse highlight
12246 info of the initial frame. (Bug#11677)
12247
2b570124
PE
122482012-06-14 Paul Eggert <eggert@cs.ucla.edu>
12249
e93864f9
PE
12250 * .gdbinit (xgetint): Fix recently-introduced paren typo.
12251 Assume USE_2_TAGS_FOR_INTS.
12252 (xreload): Adjust $tagmask width to match recent lisp.h change.
12253
2b570124
PE
12254 Simplify lisp.h in minor ways that should not affect code.
12255 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
12256 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
12257 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
12258 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
12259 (INTTYPEBITS): New macro, for clarity.
12260 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
12261 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
12262 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
12263 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
12264 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
12265
81755f69
JB
122662012-06-13 Juanma Barranquero <lekktu@gmail.com>
12267
12268 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
12269
16192a57
GM
122702012-06-13 Glenn Morris <rgm@gnu.org>
12271
12272 * s/bsd-common.h (BSD4_3):
12273 * s/usg5-4-common.h (USG5_4): No longer define; unused.
12274
646b5f55
AS
122752012-06-13 Andreas Schwab <schwab@linux-m68k.org>
12276
12277 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
12278 instead of union.
12279 (XLI, XIL): Define.
1053a871
SM
12280 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
12281 Use them.
12282 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 12283 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 12284 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
12285 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
12286 * frame.c (delete_frame): Remove outdated comment.
12287 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
12288 USE_LISP_UNION_TYPE.
12289 (Fw32_unregister_hot_key): Likewise.
12290 (Fw32_toggle_lock_key): Likewise.
12291 * w32menu.c (add_menu_item): Likewise.
12292 (w32_menu_display_help): Use XIL instead of checking
12293 USE_LISP_UNION_TYPE.
12294 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
12295 (init_heap): Likewise.
12296 * w32term.c (w32_read_socket): Update comment.
12297
1d3823c9
GM
122982012-06-13 Glenn Morris <rgm@gnu.org>
12299
c62ff706
GM
12300 * s/usg5-4-common.h, src/s/unixware.h:
12301 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
12302
1d3823c9
GM
12303 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
12304
bfe3e0a2
PE
123052012-06-13 Paul Eggert <eggert@cs.ucla.edu>
12306
12307 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
12308 * alloc.c (make_number) [!defined make_number]:
12309 Remove, as lisp.h always defines this now.
12310 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
12311 (roundup_size): Verify that it is a power of 2.
12312 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
12313 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
12314 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
12315 -DUSE_LSB_TAG=0, to override the automatically-selected default.
12316 USE_LSB_TAG now is always defined to be either 0 or 1.
12317 All uses changed.
12318 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
12319 code works fine either way, and efficiency is not a concern here,
12320 as the union type is for debugging, not for production.
12321 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
12322 Use an inline function on all platforms when using the union type,
12323 since this is simpler and 'static inline' can be used portably
12324 within Emacs now.
12325 (LISP_INITIALLY_ZERO): New macro.
12326 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
12327 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
12328
45fa9c0f
GM
123292012-06-12 Glenn Morris <rgm@gnu.org>
12330
b4492cba
GM
12331 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
12332
12333 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 12334
45fa9c0f
GM
12335 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
12336 Move BROKEN_SIGIO to configure.
12337
12338 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
12339 Move NO_TERMIO to configure.
12340
0e25d334
CY
123412012-06-12 Chong Yidong <cyd@gnu.org>
12342
12343 * image.c (imagemagick_load_image): Use MagickFlattenImage if
12344 MagickMergeImageLayers is undefined. Use pixel pusher loop if
12345 MagickExportImagePixels is undefined.
12346
43682bb6
PE
123472012-06-12 Paul Eggert <eggert@cs.ucla.edu>
12348
12349 * image.c (imagemagick_load_image): Remove unused label.
12350
a9be7d2b
GM
123512012-06-11 Glenn Morris <rgm@gnu.org>
12352
12353 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
12354 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
12355 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
12356 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
12357
3017f87f
SM
123582012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
12359
12360 * alloc.c (make_byte_code): New function.
12361 (Fmake_byte_code): Use it. Don't purify here.
12362 * lread.c (read1): Use it as well to avoid extra allocation.
12363
1b9b4cf4
CY
123642012-06-11 Chong Yidong <cyd@gnu.org>
12365
12366 * image.c (imagemagick_load_image): Implement transparency.
12367
95988fcf
AS
123682012-06-10 Andreas Schwab <schwab@linux-m68k.org>
12369
12370 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
12371 account for preceding backslashes. (Bug#11663)
12372
cd4eb164
CY
123732012-06-09 Chong Yidong <cyd@gnu.org>
12374
12375 * term.c: Support italics in capable terminals (Bug#9652).
12376 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
12377 (turn_on_face): Output using TS_enter_italic_mode if available.
12378 Don't handle unused blinking and alt-charset cases.
12379 (turn_off_face): Handle italic case; discard unused tty_blinking_p
12380 and tty_alt_charset_p cases.
12381 (tty_capable_p, init_tty): Support italics.
12382
12383 * termchar.h (struct tty_display_info): Add field for italics.
12384 Remove unused blink field.
12385
12386 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
12387 Handle slant.
12388
12389 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
12390 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
12391 tty_alt_charset_p. Add tty_italic_p.
12392
ff88beb8
MA
123932012-06-09 Michael Albinus <michael.albinus@gmx.de>
12394
12395 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
12396 dbus_type_is_basic if available.
12397 (xd_extract_signed, xd_extract_unsigned): Rename from
12398 extract_signed and extract_unsigned, respectively. Adapt callers.
12399
44286096
CY
124002012-06-09 Chong Yidong <cyd@gnu.org>
12401
1682701f
CY
12402 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
12403
44286096
CY
12404 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
12405 case (Bug#9752).
12406
d86feb17
PE
124072012-06-08 Paul Eggert <eggert@cs.ucla.edu>
12408
12409 * xdisp.c (vmessage): Treat frame message as multibyte.
12410 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
12411 would generate the diagnostic "Making \302\247 buffer-local while
12412 let-bound!".
12413
d5c20fe8
EZ
124142012-06-08 Eli Zaretskii <eliz@gnu.org>
12415
12416 * dispnew.c (showing_window_margins_p): Undo last change, which
12417 was done due to an inadvertent commit.
12418 (adjust_frame_glyphs_for_frame_redisplay): Do call
12419 showing_window_margins_p.
12420
513749ee
SM
124212012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
12422
12423 * eval.c (Fmake_var_non_special): New primitive.
12424 (syms_of_eval): Defsubr it.
12425 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
12426
d4a8f5c1
JB
124272012-06-08 Juanma Barranquero <lekktu@gmail.com>
12428
12429 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
12430 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
12431
8bbbc977
EZ
124322012-06-08 Eli Zaretskii <eliz@gnu.org>
12433
12434 * alloc.c (allocate_vectorlike): Fix last change.
12435
f3372c87
DA
124362012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
12437
12438 Block-based vector allocation of small vectors.
12439 * lisp.h (struct vectorlike_header): New field `nbytes',
12440 adjust comment accordingly.
12441 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
fc0c31f8 12442 to denote vector blocks. Adjust users (live_vector_p,
f3372c87
DA
12443 mark_maybe_pointer, valid_lisp_object_p) accordingly.
12444 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
f4ad7ea1
JB
12445 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES)
12446 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX)
12447 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST)
f3372c87
DA
12448 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
12449 (roundup_size): New constant.
12450 (struct vector_block): New data type.
12451 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 12452 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
12453 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
12454 (sweep_vectors): New functions.
12455 (allocate_vectorlike): Return `zero_vector' as the only vector of
fc0c31f8 12456 0 items. Allocate new vector from block if vector size is less than
f3372c87
DA
12457 or equal to VBLOCK_BYTES_MAX.
12458 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
12459 (init_alloc_once): Add call to init_vectors.
12460
4f18a4ed
SM
124612012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
12462
12463 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
12464
86f158bc
PE
124652012-06-07 Paul Eggert <eggert@cs.ucla.edu>
12466
12467 * doprnt.c (doprnt): Truncate multibyte char correctly.
12468 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
12469 would mishandle a string argument "Xc" if X was a multibyte
12470 character of length 2: it would truncate after X's first byte
12471 rather than including all of X.
12472
c5cfcbe0
CY
124732012-06-06 Chong Yidong <cyd@gnu.org>
12474
12475 * buffer.c (word_wrap): Doc fix.
12476
c05cf390
PE
124772012-06-04 Paul Eggert <eggert@cs.ucla.edu>
12478
12479 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
12480
0c3461de
GM
124812012-06-03 Glenn Morris <rgm@gnu.org>
12482
12483 * xdisp.c (tool-bar-style): Doc fix.
12484
c71232db
UM
124852012-06-03 Ulrich Müller <ulm@gentoo.org>
12486
12487 * Makefile.in (PAXCTL): Define.
12488 (temacs$(EXEEXT)): Disable memory randomization for the temacs
12489 binary via PaX flags if the paxctl utility is available.
12490 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
12491 Restore PaX flags to their default. (Bug#11398)
12492
383f7350
CY
124932012-06-03 Chong Yidong <cyd@gnu.org>
12494
12495 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
12496 buffer (Bug#11226).
12497
5f2c76c6
CY
124982012-06-03 Chong Yidong <cyd@gnu.org>
12499
12500 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
12501 (note_mode_line_or_margin_highlight): If there is no help echo,
12502 use mode-line-default-help-echo. Handle the case where the mouse
12503 position is past the end of the mode line string.
12504
12505 * buffer.c (buffer_local_value_1): New function, split from
12506 Fbuffer_local_value; can return Qunbound.
12507 (Fbuffer_local_value): Use it.
12508 (Vmode_line_format): Docstring tweaks.
12509
773d47f6
PE
125102012-06-02 Paul Eggert <eggert@cs.ucla.edu>
12511
12512 * sysdep.c (system_process_attributes): Improve comment.
12513
f2d6a3df
SM
125142012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
12515
12516 * keyboard.c: Export real-this-command to Elisp.
12517 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
12518 and DEFVAR it. Update all users.
12519
63810350
PE
125202012-06-02 Paul Eggert <eggert@cs.ucla.edu>
12521
7bd5c1f4
PE
12522 * minibuf.c (Fassoc_string): Remove duplicate declaration.
12523
63810350
PE
12524 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
12525 Convert pctcpu and pctmem to Lisp float properly.
12526 Let the compiler fold better, as 100.0/0x8000 is exact.
12527
a2821611
AS
125282012-06-02 Andreas Schwab <schwab@linux-m68k.org>
12529
12530 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
12531 cons_block.
12532
5fceba1d
PE
125332012-06-01 Paul Eggert <eggert@cs.ucla.edu>
12534
12535 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
12536
c98ff5dd
DA
125372012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
12538
12539 For a 'struct window', replace some Lisp_Object fields to
12540 bitfields where appropriate, remove unused fields.
12541 * window.h (struct window): Remove unused 'last_mark_x' and
12542 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1f9f395d 12543 change its type from Lisp_Object to bitfield.
c98ff5dd
DA
12544 Change type of 'force_start', 'optional_new_start',
12545 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
fc0c31f8 12546 fields from Lisp_Object to bitfield. Adjust users accordingly.
c98ff5dd 12547
ca34e0be
PE
125482012-05-31 Paul Eggert <eggert@cs.ucla.edu>
12549
12550 Pacify gcc -Wdouble-precision when using Xaw.
12551 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
12552 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
12553 Use 'float' consistently, rather than 'float' in most places
12554 and 'double' in a couple of places.
12555
efc00ab1 125562012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
12557
12558 * xdisp.c (handle_stop): Detect whether we have overlay strings
12559 loaded by testing it->current.overlay_string_index to be
12560 non-negative, instead of checking whether n_overlay_strings is
12561 positive. (Bug#11587)
12562
efc00ab1 125632012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
12564
12565 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
12566
12567 * doc.c (Fsubstitute_command_keys): Doc fix.
12568
efc00ab1 125692012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
12570
12571 * search.c (search_buffer): Remove calls to
12572 r_alloc_inhibit_buffer_relocation, as it is now called by
12573 maybe_unify_char, which was the cause of relocation of buffer text
12574 in bug#11519.
12575
efc00ab1 125762012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
12577
12578 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
12579 for the duration of call to load_charset, to avoid problems with
12580 callers of maybe_unify_char that access buffer text through C
12581 pointers.
12582
12583 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
12584 decrement the inhibition flag, instead of just setting or
12585 resetting it.
12586
ba93a187
PE
125872012-05-31 Paul Eggert <eggert@cs.ucla.edu>
12588
12589 Remove obsolete '#define static' cruft.
12590 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
12591 This #undef was "temporary" in 2000; it is no longer needed
12592 now that '#define static' has gone away.
12593 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
12594 (gray_bitmap_bits): Remove; no longer needed.
12595 All uses replaced with definiens.
12596 * xterm.c: Include "bitmaps/gray.xbm".
12597
9e4bf381
PE
125982012-05-30 Paul Eggert <eggert@cs.ucla.edu>
12599
12600 Clean up __executable_start, monstartup when --enable-profiling.
12601 The following changes affect the code only when profiling.
12602 * dispnew.c (__executable_start): Rename from safe_bcopy.
12603 Define only on platforms that need it.
12604 * emacs.c: Include <sys/gmon.h> when profiling.
12605 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
12606 (__executable_start): Remove decl, since lisp.h does it now.
12607 (safe_bcopy): Remove decl; no longer has that name.
12608 (main): Coalesce #if into single bit of code, for simplicity.
12609 Cast pointers to uintptr_t, since standard libraries want integers
12610 and not pointers.
12611 * lisp.h (__executable_start): New decl.
12612
32d72c2f
GM
126132012-05-31 Glenn Morris <rgm@gnu.org>
12614
12615 * image.c (Fimagemagick_types): Doc fix.
12616
baac5bc7
JM
126172012-05-30 Jim Meyering <meyering@redhat.com>
12618
12619 * callproc.c (Fcall_process_region): Include directory component
12620 in mkstemp error message (Bug#11586).
12621
72cb32cf
PE
126222012-05-30 Paul Eggert <eggert@cs.ucla.edu>
12623
12624 * alloc.c, lisp.h (make_pure_vector): Now static.
12625
61b108cc
SM
126262012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
12627
12628 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
12629 Move to byte-run.el.
12630 (Fautoload): Do the hash-doc more carefully.
12631 * data.c (Fdefalias): Purify definition, except for keymaps.
12632 (Qdefun): Move from eval.c.
12633 * lisp.h (Qdefun): Remove.
12634 * lread.c (read1): Tiny simplification.
12635
471fe23d
TN
126362012-05-29 Troels Nielsen <bn.troels@gmail.com>
12637
934f3f58 12638 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
12639 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
12640 Bug#9642, but explicitly check that the buffer the overlay would
12641 be moved to is live and rearrange lines to make sure that errors
12642 will not put the overlay in an inconsistent state.
12643 (Fdelete_overlay): Cosmetics.
12644
85d0efd1
EZ
126452012-05-28 Eli Zaretskii <eliz@gnu.org>
12646
12647 * w32term.c (my_bring_window_to_top): New function.
12648 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
12649 could be different from the original one.
12650 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
12651 (Bug#11513)
12652
12653 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
12654 by calling BringWindowToTop.
12655
12656 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
12657 (WM_EMACS_END): Increase by one.
12658
da92a98c
PE
126592012-05-28 Paul Eggert <eggert@cs.ucla.edu>
12660
12661 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
12662 This avoids undefined behavior that might cause the eassert
12663 to not catch an out-of-range value.
12664
74d1f848
JB
126652012-05-28 Juanma Barranquero <lekktu@gmail.com>
12666
12667 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
12668 Update dependencies.
12669
9e1a06fc
EZ
126702012-05-27 Eli Zaretskii <eliz@gnu.org>
12671
12672 * bidi.c (bidi_mirror_char): Fix last change.
12673
f3dd7312
AS
126742012-05-27 Andreas Schwab <schwab@linux-m68k.org>
12675
12676 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
12677 when referring to sectname field in printf format.
12678
81899c91
PE
126792012-05-27 Paul Eggert <eggert@cs.ucla.edu>
12680
57b81a9f
PE
12681 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
12682 Only r_alloc_inhibit_buffer_relocation needed to be added;
12683 the others were already declared.
12684
81899c91
PE
12685 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
12686 before checking whether it's out of range. Put the check inside
12687 eassert. See
12688 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
12689
33017faf 126902012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
12691
12692 * callproc.c (Fcall_process): Restore a line that was accidentally
12693 commented out in the 2011-02-13 change (bug#11547).
12694
33017faf 126952012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
12696
12697 * lisp.h [REL_ALLOC]: Add prototypes for external functions
12698 defined on ralloc.c.
12699
12700 * buffer.c [REL_ALLOC]: Remove prototypes of
12701 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
12702 they are now on lisp.h.
12703
12704 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
12705
12706 * search.c (search_buffer): Use it to inhibit relocation of buffer
12707 text while re_search_2 is doing its job, because re_search_2 is
12708 passed C pointers to buffer text. (Bug#11519)
12709
23415acf
EZ
12710 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
12711 Update value to 24.
12712
44e27368
EZ
12713 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
12714 state after an additional call to move_it_in_display_line_to, keep
12715 the values of it->max_ascent and it->max_descent found for the
12716 entire line.
12717 (pos_visible_p): Revert the comparison against bottom_y to what it
12718 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
12719 (Bug#11464)
12720
c1892f11
PE
127212012-05-26 Paul Eggert <eggert@cs.ucla.edu>
12722
12723 Fix coding-related core dumps with gcc -ftrapv.
12724 The code was computing A - B, where A and B are pointers, and B is
12725 random garbage. This can lead to core dumps on platforms that
12726 have special pointer registers, and it also leads to core dumps on
12727 x86-64 when compiled with gcc -ftrapv. The fix is to compute
12728 A - B only when B is initialized properly.
12729 * coding.c (coding_set_source, coding_set_destination): Return void.
12730 (coding_change_source, coding_change_destinations): New functions,
12731 with the old behaviors of coding_set_source and coding_set_destination.
12732 All callers that need an offset changed to use these new functions.
12733
eb7afdad
GM
127342012-05-26 Glenn Morris <rgm@gnu.org>
12735
12736 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
12737
f12fdf02
EZ
127382012-05-26 Eli Zaretskii <eliz@gnu.org>
12739
53a63be6 12740 Extend mouse support on W32 text-mode console.
61b108cc
SM
12741 * xdisp.c (draw_row_with_mouse_face):
12742 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 12743
eb3f6f01 12744 * w32console.c: Include window.h.
61b108cc
SM
12745 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
12746 New functions.
eb3f6f01
EZ
12747 (initialize_w32_display): Initialize mouse-highlight data.
12748
53a63be6
EZ
12749 * w32inevt.c: Include termchar.h and window.h.
12750 (do_mouse_event): Support mouse-autoselect-window. When the mouse
12751 moves, call note_mouse_highlight. If help_echo changed, call
12752 gen_help_event to produce help-echo message in the echo area.
12753 Call clear_mouse_face if mouse_face_hidden is set in the mouse
12754 highlight info.
12755
4cfd81f6
PE
127562012-05-26 Paul Eggert <eggert@cs.ucla.edu>
12757
12758 * lread.c (read1): Simplify slightly to avoid an overflow warning
12759 with GCC 4.7.0 on x86-64.
12760
4446092a
EZ
127612012-05-26 Eli Zaretskii <eliz@gnu.org>
12762
12763 * bidi.c (bidi_mirror_char): Revert last change: an int is
12764 definitely wide enough here.
12765
42b2a986 127662012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 12767
42b2a986 12768 Fix integer width and related bugs (Bug#9874).
eb106a49 12769 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
12770 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
12771 (string_bytes, check_sblock, allocate_string_data):
12772 (compact_small_strings, Fmake_bool_vector, make_string)
12773 (make_unibyte_string, make_multibyte_string)
12774 (make_string_from_bytes, make_specified_string)
12775 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
12776 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
12777 (mark_vectorlike):
12778 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12779 (allocate_pseudovector):
12780 Use int, not EMACS_INT, where int is wide enough.
12781 (inhibit_garbage_collection, Fgarbage_collect):
12782 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12783 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
12784 int might not be wide enough.
12785 (bidi_cache_search, bidi_cache_find, bidi_init_it)
12786 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
12787 (bidi_at_paragraph_end, bidi_find_paragraph_start)
12788 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
12789 (bidi_level_of_next_char, bidi_move_to_visually_next):
12790 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12791 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
12792 (Fkill_buffer, Fset_buffer_major_mode)
12793 (advance_to_char_boundary, Fbuffer_swap_text)
12794 (Fset_buffer_multibyte, overlays_at, overlays_in)
12795 (overlay_touches_p, struct sortvec, record_overlay_string)
12796 (overlay_strings, recenter_overlay_lists)
12797 (adjust_overlays_for_insert, adjust_overlays_for_delete)
12798 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
12799 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
12800 (Foverlay_recenter, last_overlay_modification_hooks_used)
12801 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
12802 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
12803 (validate_region): Omit unnecessary test for b <= e,
12804 since that's guaranteed by the previous test.
d311d28c
PE
12805 (adjust_overlays_for_delete): Avoid pos + length overflow.
12806 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
12807 (report_overlay_modification):
12808 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12809 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
12810 Omit pointer cast, which isn't needed anyway, and doesn't work
12811 after the EMACS_INT -> ptrdiff_t change.
02481186 12812 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
12813 * buffer.h: Adjust decls to match defn changes elsewhere.
12814 (struct buffer_text, struct buffer):
12815 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12816 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
12817 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
12818 not int, to avoid needless 32-bit limit on 64-bit hosts.
12819 (exec_byte_code): Use tighter memory-full test, one that checks
12820 for alloca overflow. Don't compute the address of the object just
12821 before an array, as that's not portable. Use EMACS_INT, not
12822 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
12823 * callint.c (Fcall_interactively):
12824 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12825 * callproc.c (call_process_kill, Fcall_process):
12826 Don't assume pid_t fits into an Emacs fixnum.
12827 (call_process_cleanup, Fcall_process, child_setup):
12828 Don't assume pid_t fits into int.
12829 (call_process_cleanup, Fcall_process, delete_temp_file)
12830 (Fcall_process_region):
12831 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12832 (Fcall_process): Simplify handling of volatile integers.
12833 Use int, not EMACS_INT, where int will do.
12834 * casefiddle.c (casify_object, casify_region, operate_on_word)
12835 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
12836 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12837 (casify_object): Avoid integer overflow when overallocating buffer.
12838 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 12839 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
12840 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
12841 * category.h (CATEGORYP): Don't assume arg is nonnegative.
12842 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
12843 integers are now checked earlier. All uses replaced with XINT.
12844 (ccl_driver):
12845 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12846 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
12847 (ccl_driver, Fregister_code_conversion_map):
12848 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
12849 (resolve_symbol_ccl_program): Check that vector header is in range.
12850 Always copy the vector, so that we can check its contents reliably
12851 now rather than having to recheck each instruction as it's being
12852 executed. Check that vector words fit in 'int'.
12853 (ccl_get_compiled_code, Fregister_ccl_program)
12854 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
12855 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
12856 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
12857 contents are in range.
12858 (Fccl_execute_on_string): Check that status is in range.
12859 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
12860 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
12861 Accept and return EMACS_INT, not int, because callers can pass values
12862 out of 'int' range.
12863 (c_string_width, strwidth, lisp_string_width, chars_in_text)
12864 (multibyte_chars_in_text, parse_str_as_multibyte)
12865 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
12866 (str_as_unibyte, str_to_unibyte, string_count_byte8)
12867 (string_escape_byte8, Fget_byte):
12868 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 12869 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
12870 avoid mishandling large integers.
12871 * character.h: Adjust decls to match defn changes elsewhere.
12872 * charset.c (load_charset_map_from_file, find_charsets_in_text)
12873 (Ffind_charset_region):
12874 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12875 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
12876 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 12877 Don't assume fixnum fits in int.
d311d28c
PE
12878 (load_charset_map_from_vector, Fmap_charset_chars):
12879 Remove now-unnecessary CHECK_NATNUMs.
12880 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
12881 Don't rely on undefined behavior with signed left shift overflow.
12882 Don't assume unsigned int fits into fixnum, or that fixnum fits
12883 into unsigned int. Don't require max_code to be a valid fixnum;
12884 that's not true for gb10830 4-byte on a 32-bit host. Allow
12885 invalid_code to be a cons, for the same reason. Require code_offset
12886 to be a character. Avoid int overflow if max_char is close
12887 to INT_MAX.
12888 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
12889 this is intended anyway and avoids some undefined behavior.
12890 (load_charset_map): Pass unsigned, not int, as 2nd arg of
12891 INDEX_TO_CODE_POINT, as that's what it expects.
12892 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
12893 * charset.h (DECODE_CHAR): Return int, not unsigned;
12894 this is what was intended anyway, and it avoids undefined behavior.
12895 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
12896 integer-overflow issues.
12897 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
12898 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
12899 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
12900 * chartab.c (Fmake_char_table, Fset_char_table_range)
12901 (uniprop_get_decoder, uniprop_get_encoder):
12902 Don't assume fixnum fits in int.
12903 * cmds.c (move_point): New function, that does the gist of
12904 Fforward_char and Fbackward_char, but does so while checking
12905 for integer overflow more accurately.
c96e5d6a 12906 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
12907 (Fforward_line, Fend_of_line, internal_self_insert)
12908 (internal_self_insert):
12909 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12910 Fix a FIXME, by checking for integer overflow when calculating
12911 target_clm and actual_clm.
12912 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 12913 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
12914 (ASSURE_DESTINATION, coding_alloc_by_realloc)
12915 (coding_alloc_by_making_gap, alloc_destination)
12916 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
12917 (encode_coding_utf_16, detect_coding_emacs_mule)
12918 (decode_coding_emacs_mule, encode_coding_emacs_mule)
12919 (detect_coding_iso_2022, decode_coding_iso_2022)
12920 (encode_invocation_designation, encode_designation_at_bol)
12921 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
12922 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
12923 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
12924 (encode_coding_ccl, encode_coding_raw_text)
12925 (detect_coding_charset, decode_coding_charset)
12926 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
12927 (produce_composition, produce_charset, produce_annotation)
12928 (decode_coding, handle_composition_annotation)
12929 (handle_charset_annotation, consume_chars, decode_coding_gap)
12930 (decode_coding_object, encode_coding_object, detect_coding_system)
12931 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
12932 (code_convert_region, code_convert_string)
8f50130c
PE
12933 (Fdefine_coding_system_internal)
12934 (coding_set_source, coding_set_destination):
d311d28c
PE
12935 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12936 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
12937 (Fdefine_coding_system_internal):
12938 Don't assume fixnums fit in int.
12939 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 12940 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
12941 (Funencodable_char_position, Fcheck_coding_systems_region)
12942 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 12943 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 12944 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 12945 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 12946 Don't access memory outside of the args array.
d311d28c 12947 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
12948 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
12949 result of ENCODE_CHAR.
d311d28c
PE
12950 * coding.h: Adjust decls to match defn changes elsewhere.
12951 (struct coding_system):
12952 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12953 * composite.c (get_composition_id, find_composition)
12954 (run_composition_function, update_compositions)
12955 (compose_text, composition_gstring_put_cache)
12956 (composition_gstring_p, composition_gstring_width)
12957 (fill_gstring_header, fill_gstring_body, autocmp_chars)
12958 (composition_compute_stop_pos, composition_reseat_it)
12959 (composition_update_it, struct position_record)
12960 (find_automatic_composition, composition_adjust_point)
12961 (Fcomposition_get_gstring, Ffind_composition_internal):
12962 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12963 (update_compositions):
12964 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12965 * composite.h: Adjust decls to match defn changes elsewhere.
12966 (struct composition):
12967 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12968 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
12969 Do not attempt to compute the address of the object just before a
12970 buffer; this is not portable.
12971 (Faref, Faset):
12972 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12973 (Faset): Use int, not EMACS_INT, where int is wide enough.
12974 (Fstring_to_number): Don't assume fixnums fit in int.
12975 (Frem): Don't assume arg is nonnegative.
12976 * dbusbind.c (xd_append_arg): Check for integers out of range.
12977 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 12978 (extract_signed, extract_unsigned): New functions.
243e0530
PE
12979 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
12980 (xd_get_connection_references): Return ptrdiff_t, not int.
12981 All uses changed.
12982 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
12983 (xd_read_message_1):
12984 Use int, not unsigned, where the dbus API uses int.
12985 (Fdbus_message_internal): Don't overflow mtype.
12986 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
12987 * dired.c (directory_files_internal, file_name_completion, scmp)
12988 (file_name_completion_stat):
12989 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12990 (file_name_completion): Don't overflow matchcount.
12991 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
12992 * dispextern.h: Adjust decls to match defn changes elsewhere.
12993 (struct text_pos, struct glyph, struct bidi_saved_info)
12994 (struct bidi_string_data, struct bidi_it, struct composition_it)
12995 (struct it):
12996 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12997 (struct display_pos, struct composition_it, struct it):
12998 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12999 * dispnew.c (increment_matrix_positions)
13000 (increment_row_positions, mode_line_string)
13001 (marginal_area_string):
13002 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 13003 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
13004 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13005 (duration_to_sec_usec): New function, to check for overflow better.
13006 (Fsleep_for, sit_for): Use it.
13007 * doc.c (get_doc_string, store_function_docstring):
13008 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13009 (get_doc_string, Fsnarf_documentation):
13010 Use int, not EMACS_INT, where int is wide enough.
13011 (get_doc_string):
13012 Use SAFE_ALLOCA, not alloca.
13013 Check for overflow when converting EMACS_INT to off_t.
13014 * doprnt.c (doprnt):
13015 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13016 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
13017 Don't assume uid_t fits into fixnum.
13018 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
13019 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
13020 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
13021 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
13022 (general_insert_function)
13023 (Finsert_char, make_buffer_string, make_buffer_string_both)
13024 (update_buffer_properties, Fbuffer_substring)
13025 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
13026 (Fsubst_char_in_region, check_translation)
13027 (Ftranslate_region_internal, save_restriction_restore, Fformat)
13028 (transpose_markers, Ftranspose_regions):
13029 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13030 (clip_to_bounds): Move to lisp.h as an inline function).
13031 (Fconstrain_to_field): Don't assume integers are nonnegative.
13032 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
13033 (Fsubst_char_in_region, Fsave_restriction):
13034 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13035 (Femacs_pid): Don't assume pid_t fits into fixnum.
13036 (lo_time): Use int, not EMACS_INT, when int suffices.
13037 (lisp_time_argument): Check for usec out of range.
13038 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
13039 (Fuser_login_name, Fuser_full_name): Signal an error
13040 if a uid argument is out of range, rather than relying on
13041 undefined behavior.
c8d5c857
PE
13042 (Fformat_time_string): Remove now-unnecessary check.
13043 lisp_time_argument checks for out-of-range usec now.
243e0530 13044 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
13045 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
13046 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
13047 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
13048 (init_cmdargs, Fdump_emacs):
13049 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13050 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
13051 the bottom (typically) 32 bits of the fixnum.
13052 * eval.c (specpdl_size, call_debugger):
13053 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13054 (when_entered_debugger, Fbacktrace_debug):
13055 Don't assume fixnum can fit in int.
13056 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
13057 the object just before a buffer; this is not portable.
13058 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
13059 (grow_specpdl, unbind_to):
13060 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13061 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
13062 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 13063 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
13064 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
13065 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
13066 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13067 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
13068 (a_write, e_write):
13069 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13070 (Fcopy_file, non_regular_nbytes, read_non_regular)
13071 (Finsert_file_contents):
13072 Use int, not EMACS_INT, where int is wide enough.
13073 (READ_BUF_SIZE): Verify that it fits in int.
13074 (Finsert_file_contents): Check that counts are in proper range,
13075 rather than assuming fixnums fit into ptrdiff_t etc.
13076 Don't assume fixnums fit into int.
125b3835 13077 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
13078 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
13079 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
13080 (string_char_to_byte, string_byte_to_char)
13081 (string_make_multibyte, string_to_multibyte)
13082 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
13083 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
13084 (substring_both, Fdelete, internal_equal, Ffillarray)
13085 (Fclear_string, mapcar1)
13086 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
13087 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
13088 (larger_vector, make_hash_table, maybe_resize_hash_table)
13089 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
13090 (Fmaphash, secure_hash):
13091 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13092 (concat): Check for string index and length overflow.
13093 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
13094 (Frequire):
13095 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13096 (larger_vector): New API (vec, incr_min, size_max) replaces old
13097 one (vec, new_size, init). This catches size overflow.
13098 INIT was removed because it was always Qnil.
13099 All callers changed.
13100 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
13101 the upper bound on a hash table index size.
13102 (make_hash_table, maybe_resize_hash_table): Use it.
13103 (secure_hash): Computer start_byte and end_byte only after
13104 they're known to be in ptrdiff_t range.
13105 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
13106 (Ffont_get_glyphs, Ffont_at):
13107 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13108 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
13109 (Flist_fonts, Fopen_font):
13110 Don't assume fixnum can fit in int.
13111 (check_gstring): Don't assume index can fit in int.
13112 (font_match_p): Check that fixnum is a character, not a nonnegative
13113 fixnum, since the later code needs to stuff it into an int.
13114 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
13115 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
13116 conversion overflow issues.
13117 (Fopen_font): Check for integer out of range.
13118 (Ffont_get_glyphs): Don't assume index can fit in int.
13119 * font.h: Adjust decls to match defn changes elsewhere.
13120 * fontset.c (reorder_font_vector): Redo score calculation to avoid
13121 integer overflow.
13122 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
13123 printmax_t, where ptrdiff_t is wide enough.
13124 (Finternal_char_font):
13125 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13126 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
13127 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
13128 (Fset_frame_position, x_set_frame_parameters)
13129 (x_set_line_spacing, x_set_border_width)
13130 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
13131 Check that fixnums are in proper range for system types.
13132 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
13133 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13134 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
13135 Use SAFE_ALLOCA_LISP, not alloca.
13136 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
13137 intptr_t is wide enough.
13138 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
13139 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
13140 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
13141 Check for fixnum out of range.
13142 * ftfont.c (ftfont_list): Don't assume index fits in int.
13143 Check that fixnums are in proper range for system types.
13144 (ftfont_shape_by_flt):
13145 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
13146 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
13147 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13148 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
13149 Check that fixnums are in proper range for system types.
13150 * gnutls.h: Adjust decls to match defn changes elsewhere.
13151 * gtkutil.c (xg_dialog_run):
13152 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13153 (update_frame_tool_bar):
13154 Check that fixnums are in proper range for system types.
13155 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 13156 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
13157 * indent.c (last_known_column, last_known_column_point):
13158 (current_column_bol_cache):
13159 (skip_invisible, current_column, check_display_width):
13160 (check_display_width, scan_for_column, current_column_1)
13161 (Findent_to, Fcurrent_indentation, position_indentation)
13162 (indented_beyond_p, Fmove_to_column, compute_motion):
13163 (Fcompute_motion, Fvertical_motion):
13164 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13165 (last_known_column_modified): Use EMACS_INT, not int.
13166 (check_display_width):
13167 (Fcompute_motion):
13168 Check that fixnums and floats are in proper range for system types.
13169 (compute_motion): Don't assume index or fixnum fits in int.
13170 (compute_motion, Fcompute_motion):
13171 Use int, not EMACS_INT, when it is wide enough.
13172 (vmotion): Omit local var start_hpos that is always 0; that way
13173 we don't need to worry about overflow in expressions involving it.
13174 * indent.h: Adjust decls to match defn changes elsewhere.
13175 (struct position):
13176 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13177 Use int, not EMACS_INT, where int is wide enough.
13178 Remove unused members ovstring_chars_done and tab_offset;
13179 all uses removed.
13180 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
13181 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
13182 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
13183 (make_gap, copy_text, insert, insert_and_inherit)
13184 (insert_before_markers, insert_before_markers_and_inherit)
13185 (insert_1, count_combining_before, count_combining_after)
13186 (insert_1_both, insert_from_string)
13187 (insert_from_string_before_markers, insert_from_string_1)
13188 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
13189 (adjust_after_replace, adjust_after_insert, replace_range)
13190 (replace_range_2, del_range, del_range_1, del_range_byte)
13191 (del_range_both, del_range_2, modify_region)
13192 (prepare_to_modify_buffer, signal_before_change)
13193 (signal_after_change, Fcombine_after_change_execute):
13194 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13195 * intervals.c (traverse_intervals, rotate_right, rotate_left)
13196 (balance_an_interval, split_interval_right, split_interval_left)
13197 (find_interval, next_interval, update_interval)
13198 (adjust_intervals_for_insertion, delete_node, delete_interval)
13199 (interval_deletion_adjustment, adjust_intervals_for_deletion)
13200 (static_offset_intervals, offset_intervals)
13201 (merge_interval_right, merge_interval_left, make_new_interval)
13202 (graft_intervals_into_buffer, temp_set_point_both)
13203 (temp_set_point, set_point, adjust_for_invis_intang)
13204 (set_point_both, move_if_not_intangible, get_property_and_range)
13205 (get_local_map, copy_intervals, copy_intervals_to_string)
13206 (compare_string_intervals, set_intervals_multibyte_1):
13207 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13208 * intervals.h: Adjust decls to match defn changes elsewhere.
13209 (struct interval):
13210 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13211 * keyboard.c (this_command_key_count, this_single_command_key_start)
13212 (before_command_key_count, before_command_echo_length, echo_now)
13213 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
13214 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
13215 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
13216 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
13217 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13218 (last_non_minibuf_size, last_point_position, echo_truncate)
13219 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
13220 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
13221 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
13222 (stuff_buffered_input):
13223 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13224 (last_auto_save, command_loop_1, read_char):
13225 Use EMACS_INT, not int, to avoid integer overflow.
13226 (record_char): Avoid overflow in total_keys computation.
13227 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
13228 * keyboard.h: Adjust decls to match defn changes elsewhere.
13229 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
13230 (Fkey_description, Fdescribe_vector, Flookup_key):
13231 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13232 (click_position): New function, to check that positions are in range.
13233 (Fcurrent_active_maps):
13234 (describe_command):
13235 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13236 (Faccessible_keymaps, Fkey_description):
13237 (preferred_sequence_p):
13238 Don't assume fixnum can fit into int.
13239 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
13240 Check for integer overflow in size calculations.
13241 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
13242 avoid mishandling large integers.
13243 * lisp.h: Adjust decls to match defn changes elsewhere.
13244 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
13245 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
13246 (struct Lisp_Marker):
13247 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13248 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
13249 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
13250 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
13251 All callers changed.
13252 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
13253 Assume the arg has valid form, since it always does.
13254 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
13255 unsigned integer system type.
13256 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
13257 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
13258 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13259 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
13260 (duration_to_sec_usec): New decl.
13261 * lread.c (read_from_string_index, read_from_string_index_byte)
13262 (read_from_string_limit, readchar, unreadchar, openp)
13263 (read_internal_start, read1, oblookup):
13264 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13265 (Fload, readevalloop, Feval_buffer, Feval_region):
13266 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13267 (openp): Check for out-of-range argument to 'access'.
13268 (read1): Use int, not EMACS_INT, where int is wide enough.
13269 Don't assume fixnum fits into int.
6efdadfd 13270 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
13271 (read_filtered_event): Use duration_to_sec_usec
13272 to do proper overflow checking on durations.
d311d28c
PE
13273 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
13274 in size calculation.
13275 (Fexecute_kbd_macro):
13276 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13277 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
13278 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
13279 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
13280 (set_marker_both, set_marker_restricted_both, marker_position)
13281 (marker_byte_position, Fbuffer_has_markers_at):
13282 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13283 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 13284 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
13285 It now merely ensures that the menu is large enough, without
13286 necessarily growing it, as this avoids some integer overflow issues.
13287 All callers changed.
13288 (keymap_panes, parse_single_submenu, Fx_popup_menu):
13289 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13290 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
13291 Use SAFE_ALLOCA_LISP, not alloca.
13292 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
13293 to EMACS_INT. Check that fixnums are in proper range for system types.
13294 * minibuf.c (minibuf_prompt_width, string_to_object)
13295 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
13296 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
13297 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13298 (get_minibuffer, read_minibuf_unwind):
13299 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13300 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
13301 this simplifies overflow checking. All callers changed.
13302 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
13303 (Ftest_completion):
13304 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13305 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
13306 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
13307 Check that fixnums are in proper range for system types.
13308 (Fx_create_frame, Fx_show_tip):
13309 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13310 * nsfont.m (ns_findfonts, nsfont_list_family):
13311 Don't assume fixnum fits in long.
13312 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
13313 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13314 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
13315 wide enough.
17fdb222 13316 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
13317 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13318 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
13319 (PRINTDECLARE, PRINTPREPARE):
13320 (strout, print_string):
13321 (print, print_preprocess, print_check_string_charset_prop)
13322 (print_object):
13323 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13324 (PRINTDECLARE):
13325 (temp_output_buffer_setup, Fprin1_to_string, print_object):
13326 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13327 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 13328 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 13329 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
13330 (print_error_message): Use SAFE_ALLOCA, not alloca.
13331 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
13332 (print_depth, new_backquote_output, print_number_index):
13333 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
13334 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
13335 (Fset_process_window_size, Fformat_network_address)
13336 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 13337 (sigchld_handler):
d311d28c 13338 Check that fixnums are in proper range for system types.
d44287d4 13339 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
13340 Check for process-ids out of pid_t range rather than relying on
13341 undefined behavior.
e4d81efc 13342 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
13343 (Fformat_network_address, read_process_output, send_process)
13344 (Fprocess_send_region, status_notify):
13345 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13346 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
13347 (wait_reading_process_output, read_process_output, exec_sentinel):
13348 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13349 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
13350 (Faccept_process_output): Use duration_to_sec_usec to do proper
13351 overflow checking on durations.
dde14581
PE
13352 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
13353 Don't assume pid_t fits in int.
02481186
PE
13354 * process.h (struct Lisp_Process): Members tick and update_tick
13355 are now of type EMACS_INT, not int.
b62b53e8
PE
13356 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
13357 configured --with-wide-int.
d311d28c
PE
13358 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
13359 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
13360 * search.c (looking_at_1, string_match_1):
13361 (fast_string_match, fast_c_string_match_ignore_case)
13362 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
13363 (scan_newline, find_before_next_newline, search_command)
13364 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
13365 (set_search_regs, wordify):
13366 (Freplace_match):
13367 (Fmatch_data):
13368 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13369 (string_match_1, search_buffer, set_search_regs):
13370 (Fmatch_data):
13371 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13372 (wordify): Check for overflow in size calculation.
13373 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
13374 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
13375 Check that fixnums are in proper range for system types.
13376 * sound.c (struct sound_device)
13377 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
13378 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13379 (Fplay_sound_internal):
13380 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 13381 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
13382 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
13383 (Fparse_partial_sexp):
13384 Don't assume fixnums can fit in int.
13385 (struct lisp_parse_state, find_start_pos, find_start_value)
13386 (find_start_value_byte, find_start_begv)
13387 (update_syntax_table, char_quoted, dec_bytepos)
13388 (find_defun_start, prev_char_comend_first, back_comment):
13389 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
13390 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
13391 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13392 (Finternal_describe_syntax_value): Check that match_lisp is a
13393 character, not an integer, since the code stuffs it into int.
13394 (scan_words, scan_sexps_forward):
13395 Check that fixnums are in proper range for system types.
13396 (Fforward_word):
13397 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13398 (scan_sexps_forward):
13399 Use CHARACTERP, not INTEGERP, since the value must fit into int.
13400 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
13401 * syntax.h: Adjust decls to match defn changes elsewhere.
13402 (struct gl_state_s):
13403 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
13404 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
13405 MOST_POSITIVE_FIXNUM.
d311d28c
PE
13406 * sysdep.c (wait_for_termination_1, wait_for_termination)
13407 (interruptible_wait_for_termination, mkdir):
13408 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
13409 (emacs_read, emacs_write):
13410 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
13411 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
13412 and double all fit in int.
d311d28c
PE
13413 * term.c (set_tty_color_mode):
13414 Check that fixnums are in proper range for system types.
13415 * termhooks.h (struct input_event):
13416 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13417 * textprop.c (validate_interval_range, interval_of)
13418 (Fadd_text_properties, set_text_properties_1)
13419 (Fremove_text_properties, Fremove_list_of_text_properties)
13420 (Ftext_property_any, Ftext_property_not_all)
13421 (copy_text_properties, text_property_list, extend_property_ranges)
13422 (verify_interval_modification):
13423 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13424 (Fnext_single_char_property_change)
13425 (Fprevious_single_char_property_change):
13426 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
13427 (copy_text_properties):
13428 Check for integer overflow in index calculation.
d311d28c
PE
13429 * undo.c (last_boundary_position, record_point, record_insert)
13430 (record_delete, record_marker_adjustment, record_change)
13431 (record_property_change):
13432 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13433 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
13434 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13435 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
13436 (Fx_hide_tip, Fx_file_dialog):
13437 * w32menu.c (set_frame_menubar):
13438 Use ptrdiff_t, not int, for consistency with rest of code.
13439 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
13440 (select_window, Fdelete_other_windows_internal)
13441 (window_scroll_pixel_based, window_scroll_line_based)
13442 (Frecenter, Fset_window_configuration):
13443 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13444 (Fset_window_hscroll, run_window_configuration_change_hook)
13445 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 13446 (Fscroll_other_window, Frecenter):
d311d28c
PE
13447 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13448 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
13449 Don't assume fixnum fits in int.
13450 (Fset_window_scroll_bars):
13451 Check that fixnums are in proper range for system types.
13452 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
13453 (string_pos, c_string_pos, number_of_chars, init_iterator)
13454 (in_ellipses_for_invisible_text_p, init_from_display_pos)
13455 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
13456 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
13457 (face_before_or_after_it_pos, handle_invisible_prop)
13458 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
13459 (display_prop_intangible_p, string_buffer_position_lim)
13460 (string_buffer_position, handle_composition_prop, load_overlay_strings)
13461 (get_overlay_strings_1, get_overlay_strings)
13462 (iterate_out_of_display_property, forward_to_next_line_start)
13463 (back_to_previous_visible_line_start, reseat, reseat_to_string)
13464 (get_next_display_element, set_iterator_to_next)
13465 (get_visually_first_element, compute_stop_pos_backwards)
13466 (handle_stop_backwards, next_element_from_buffer)
13467 (move_it_in_display_line_to, move_it_in_display_line)
13468 (move_it_to, move_it_vertically_backward, move_it_by_lines)
13469 (add_to_log, message_dolog, message_log_check_duplicate)
13470 (message2, message2_nolog, message3, message3_nolog
13471 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
13472 (current_message_1, truncate_echo_area, truncate_message_1)
13473 (set_message, set_message_1, store_mode_line_noprop)
13474 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
13475 (text_outside_line_unchanged_p, check_point_in_composition)
13476 (reconsider_clip_changes)
13477 (redisplay_internal, set_cursor_from_row, try_scrolling)
13478 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
13479 (redisplay_window, find_last_unchanged_at_beg_row)
13480 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
13481 (trailing_whitespace_p, find_row_edges, display_line)
13482 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
13483 (display_mode_element, store_mode_line_string)
13484 (pint2str, pint2hrstr, decode_mode_spec)
13485 (display_count_lines, display_string, draw_glyphs)
13486 (x_produce_glyphs, x_insert_glyphs)
13487 (rows_from_pos_range, mouse_face_from_buffer_pos)
13488 (fast_find_string_pos, mouse_face_from_string_pos)
13489 (note_mode_line_or_margin_highlight, note_mouse_highlight):
13490 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13491 (safe_call, init_from_display_pos, handle_fontified_prop)
13492 (handle_single_display_spec, load_overlay_strings)
13493 (with_echo_area_buffer, setup_echo_area_for_printing)
13494 (display_echo_area, echo_area_display)
13495 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
13496 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
13497 (redisplay_window, dump_glyph_row, display_mode_line)
13498 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 13499 (handle_display_spec, display_prop_string_p):
d311d28c
PE
13500 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13501 (handle_single_display_spec, build_desired_tool_bar_string)
13502 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
13503 (get_specified_cursor_type):
13504 Check that fixnums are in proper range for system types.
13505 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
13506 (Flookup_image_map):
13507 Don't assume fixnums fit in int.
13508 (compare_overlay_entries):
13509 Avoid mishandling comparisons due to subtraction overflow.
13510 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
13511 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
13512 (handle_tool_bar_click):
13513 Use int, not unsigned, since we prefer signed and the signedness
13514 doesn't matter here.
13515 (get_next_display_element, next_element_from_display_vector):
13516 Use int, not EMACS_INT, when int is wide enough.
13517 (start_hourglass): Use duration_to_sec_usec to do proper
13518 overflow checking on durations.
13519 * xfaces.c (Fbitmap_spec_p):
13520 Check that fixnums are in proper range for system types.
13521 (compare_fonts_by_sort_order):
13522 Avoid mishandling comparisons due to subtraction overflow.
13523 (Fx_family_fonts, realize_basic_faces):
13524 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13525 (Fx_family_fonts):
13526 Don't assume fixnum fits in int.
13527 Use SAFE_ALLOCA_LISP, not alloca.
13528 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
13529 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
13530 (face_at_buffer_position, face_for_overlay_string)
13531 (face_at_string_position):
13532 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13533 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
13534 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
13535 (Fx_show_tip):
13536 Check that fixnums are in proper range for system types.
13537 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
13538 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
13539 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13540 (Fx_change_window_property): Don't assume fixnums fit in int.
13541 * xfont.c (xfont_chars_supported):
13542 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13543 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
13544 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
13545 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13546 * xml.c (parse_region):
13547 * xrdb.c (magic_file_p):
13548 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13549 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
13550 (x_get_local_selection, x_reply_selection_request)
13551 (x_handle_selection_request, wait_for_property_change):
13552 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13553 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
13554 short is wide enough.
13555 (x_send_client_event): Don't assume fixnum fits in int.
13556 * xterm.c (x_x_to_emacs_modifiers):
13557 Don't assume EMACS_INT overflows nicely into int.
13558 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
13559 may come from Lisp.
13560 (handle_one_xevent): NATNUMP can eval its arg twice.
13561 (x_connection_closed):
13562 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13563 * xterm.h: Adjust decls to match defn changes elsewhere.
13564 (struct scroll_bar): Use struct vectorlike_header
13565 rather than rolling our own approximation.
13566 (SCROLL_BAR_VEC_SIZE): Remove; not used.
13567
c6574eb5
GM
135682012-05-25 Glenn Morris <rgm@gnu.org>
13569
13570 * lisp.mk (lisp): Update for more files being compiled now.
13571
e8d32c7e
SM
135722012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
13573
48def666
SM
13574 * lread.c: Remove `read_pure' which makes no difference.
13575 (read_pure): Remove var.
13576 (unreadpure): Remove function.
13577 (readevalloop): Don't call read_list with -1 flag.
13578 (read1, read_vector): Don't test read_pure any more.
13579 (read_list): Simplify.
13580
e8d32c7e
SM
13581 * fileio.c, character.h: Minor style tweaks.
13582
4b2addb7
DA
135832012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
13584
13585 * window.h (clip_changed): Remove useless declaration.
13586
584461b2
JB
135872012-05-22 Juanma Barranquero <lekktu@gmail.com>
13588
13589 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
13590 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
13591
34374650
PE
135922012-05-22 Paul Eggert <eggert@cs.ucla.edu>
13593
13594 Remove src/m/*.
13595 This directory predates autoconf and is no longer needed nowadays.
13596 Move its few remaining bits of functionality to where they're needed.
13597 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
13598 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
13599 * m/template.h: Remove.
13600 * Makefile.in (M_FILE): Remove. All uses removed.
13601 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
13602 * lisp.h (USE_LSB_TAG):
13603 * mem-limits.h (EXCEEDS_LISP_PTR):
13604 Use VAL_MAX, not VALBITS, in #if.
13605 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
13606 (EMACS_UINT): Define unconditionally now.
13607 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
13608 (BITS_PER_EMACS_INT): New constants, replacing
13609 what used to be in config.h, but not useful in #if.
13610 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
13611 define them any more.
13612 (VAL_MAX): New macro.
13613 (VALMASK): Use it.
13614 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
13615 BITS_PER_EMACS_INT, in #if.
13616 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
13617 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
13618 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
13619 * s/ms-w32.h (DATA_START):
13620 Move here from removed file m/intel386.h.
13621 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
13622 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
13623
261cb4bb
PE
136242012-05-21 Paul Eggert <eggert@cs.ucla.edu>
13625
13626 Assume C89 or later.
13627 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
13628 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
13629 (xrealloc):
13630 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
13631 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
13632 * textprop.c, tparam.c (NULL): Remove.
13633 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
13634 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
13635 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
13636 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
13637 * xterm.c (input_signal_count): Assume volatile works.
13638
ff23cd9f
KB
136392012-05-21 Ken Brown <kbrown@cornell.edu>
13640
13641 * xgselect.c (xg_select): Fix first argument in call to 'select'
13642 (bug#11508).
13643
1b170bc6
KB
136442012-05-20 Ken Brown <kbrown@cornell.edu>
13645
13646 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 13647 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 13648
b2f4d39f
KB
136492012-05-19 Ken Brown <kbrown@cornell.edu>
13650
13651 * xfns.c (x_in_use): Remove `static' qualifier.
13652 * xterm.h (x_in_use): Declare.
13653 * xgselect.c: Include xterm.h.
13654 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
13655 and `display_arg' (bug#9754).
13656
003fdae2
PE
136572012-05-19 Paul Eggert <eggert@cs.ucla.edu>
13658
9232a6d9
PE
13659 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
13660
003fdae2
PE
13661 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
13662 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
13663
784b56e2
EZ
136642012-05-18 Eli Zaretskii <eliz@gnu.org>
13665
13666 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
13667
13668 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 13669 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
13670
13671 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
13672 reference to image_cache->refcount.
13673 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
13674
a0a79cde
JL
136752012-05-17 Juri Linkov <juri@jurta.org>
13676
13677 * search.c (Fword_search_regexp, Fword_search_backward)
13678 (Fword_search_forward, Fword_search_backward_lax)
13679 (Fword_search_forward_lax): Move functions to isearch.el
13680 (bug#10145, bug#11381).
13681
b0572523
PE
136822012-05-16 Paul Eggert <eggert@cs.ucla.edu>
13683
13684 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
13685
9660f5fc
SM
136862012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
13687
13688 * lread.c (init_obarray): Declare Qt and Qnil as special.
13689
4374de83
GM
136902012-05-14 Glenn Morris <rgm@gnu.org>
13691
13692 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 13693 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 13694
dc44c39a
PE
136952012-05-14 Paul Eggert <eggert@cs.ucla.edu>
13696
078c97cb
PE
13697 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
13698
dc44c39a
PE
13699 * unexaix.c: Port to more-recent AIX compilers.
13700 (report_error, report_error_1, make_hdr, copy_sym)
13701 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
13702 Make arguments const char *, not char *, to avoid violations of C
13703 standard and to fix some AIX warnings reported by Gilles Pion.
13704
e18afed7 137052012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
13706
13707 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
13708 already have overlays loaded.
13709 (handle_single_display_spec): Before returning without displaying
13710 fringe bitmap, synchronize the bidi iterator with the main display
13711 iterator, by calling iterate_out_of_display_property.
13712 (iterate_out_of_display_property): Detect buffer iteration by
13713 testing that it->string is a Lisp string.
13714 (get_next_display_element): When the current object is exhausted,
13715 and there's something on it->stack, call set_iterator_to_next to
13716 proceed with what's on the stack, instead of returning zero.
13717 (set_iterator_to_next): If called at the end of a Lisp string,
13718 proceed to consider_string_end without incrementing string
13719 position. Don't increment display vector index past the end of
13720 the display vector. (Bug#11417)
c8fb9dc6
EZ
13721 (pos_visible_p): Don't report a position visible when move_it_to
13722 stopped at the last line of window, which happens to be scanned
13723 backwards by the bidi iteration. (Bug#11464)
ac268e67 13724
e18afed7 137252012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
13726
13727 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
13728 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
13729 are on a TTY, and thus unable to display on the fringes.
13730 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
13731 so we need to signal to the caller that this is a "replacing"
13732 display spec. This fixes display when the spec is invalid or we
13733 are on a TTY.
13734
e18afed7 137352012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
13736
13737 * unexaix.c (make_hdr): Fix typo in prototype.
13738 This bug broke the build on AIX. Problem reported by Gilles Pion.
13739
9d0a235a
MA
137402012-05-14 Michael Albinus <michael.albinus@gmx.de>
13741
13742 * keyboard.c (kbd_buffer_get_event): Read special events also in
13743 batch mode. (Bug#11415)
13744
9e6b06ed
GM
137452012-05-12 Glenn Morris <rgm@gnu.org>
13746
13747 * ns.mk: Update for ns_appbindir no longer having trailing "/".
13748
c1a1d7a3
EZ
137492012-05-12 Eli Zaretskii <eliz@gnu.org>
13750
13751 * lisp.mk (lisp): Add newcomment.elc.
13752
3fe7cdc8
GM
137532012-05-12 Glenn Morris <rgm@gnu.org>
13754
13755 * Makefile.in (MKDIR_P): New, set by configure.
13756 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
13757
53f7d2c0
PE
137582012-05-11 Paul Eggert <eggert@cs.ucla.edu>
13759
13760 Remove unused function hourglass_started.
13761 * dispextern.h (hourglass_started):
13762 * w32fns.c (hourglass_started):
13763 * xdisp.c (hourglass_started): Remove.
13764
75aafb17
JB
137652012-05-10 Juanma Barranquero <lekktu@gmail.com>
13766
13767 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
13768 Update dependencies.
13769
12959e8e
PE
137702012-05-10 Paul Eggert <eggert@cs.ucla.edu>
13771
97107e2e
PE
13772 * xgselect.c (xg_select): Put maxfds+1 into a var.
13773 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
13774
12959e8e
PE
13775 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
13776
836d29b3
DA
137772012-05-10 Dave Abrahams <dave@boostpro.com>
13778
13779 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
13780 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
13781
5cb67954
MA
137822012-05-09 Michael Albinus <michael.albinus@gmx.de>
13783
13784 * dbusbind.c (xd_registered_buses): New internal Lisp object.
cccaebd2 13785 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
5cb67954
MA
13786 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
13787 Initialize xd_registered_buses.
13788
3478ec45
PE
137892012-05-09 Paul Eggert <eggert@cs.ucla.edu>
13790
b263a6b0
PE
13791 Untag more efficiently if USE_LSB_TAG.
13792 This is based on a proposal by YAMAMOTO Mitsuharu in
13793 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
13794 For an admittedly artificial (nth 8000 longlist) benchmark on
13795 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
13796 Emacs's overall text size by 1%.
13797 * lisp.h (XUNTAG): New macro.
13798 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
13799 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
13800 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
13801 * eval.c (Fautoload):
13802 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
13803 * frame.h (XFRAME): Use XUNTAG.
13804
3478ec45
PE
13805 Port recent dbusbind.c changes to 32-bit --with-wide-int.
13806 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
13807 Remove unportable assumptions about print widths of types like
13808 dbus_uint32_t.
13809 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
13810 intptr_t when converting between pointer and integer, to avoid GCC
13811 warnings about wrong width.
13812
666b903b 138132012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
13814
13815 * w32proc.c (new_child): Force Windows to reserve only 64KB of
13816 stack for each reader_thread, instead of defaulting to 8MB
13817 determined by the linker. This avoids failures in creating
13818 subprocesses on Windows 7, see the discussion in this thread:
13819 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
13820
b120cc17
JC
138212012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
13822
13823 Fix up display of the *Minibuf-0* buffer in the mini window.
13824 * keyboard.c (read_char): Don't clear the echo area if there's no
13825 message to clear.
13826 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 13827 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 13828
9a4b36f8
MA
138292012-05-07 Michael Albinus <michael.albinus@gmx.de>
13830
13831 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
13832 batch mode.
13833
e5f9458f
CY
138342012-05-06 Chong Yidong <cyd@gnu.org>
13835
13836 * lisp.mk (lisp): Update.
13837
eceeb5fc 138382012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
13839
13840 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
13841
71873e2b
SM
138422012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
13843
13844 * data.c (PUT_ERROR): New macro.
13845 (syms_of_data): Use it. Add new error type `user-error'.
13846 * undo.c (user_error): New function.
13847 (Fprimitive_undo): Use it.
13848 * print.c (print_error_message): Adjust print style for `user-error'.
13849 * keyboard.c (user_error): New function.
13850 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
13851
ab0fa4e4
PE
138522012-05-03 Paul Eggert <eggert@cs.ucla.edu>
13853
13854 Do not limit current-time-string to years 1000..9999.
13855 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
13856 (Fcurrent_time_string): Support any year that is supported by the
13857 underlying localtime representation. Don't use asctime, as it
13858 has undefined behavior for years outside the range -999..9999.
13859
7ed806a7
PE
138602012-05-02 Paul Eggert <eggert@cs.ucla.edu>
13861
13862 Fix race conditions involving setenv, gmtime, localtime, asctime.
13863 Without this fix, interrupts could mess up code that uses these
13864 nonreentrant functions, since setting TZ invalidates existing
13865 tm_zone or tzname values, and since most of these functions return
13866 pointers to static storage.
13867 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
13868 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
13869 Grow the critical sections to include not just invoking
13870 localtime/gmtime, but also accessing these functions' results
13871 including their tm_zone values if any, and any related TZ setting.
13872 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
13873 so that the struct tm is saved in the critical section.
13874 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
13875 motivated by the fact that memory allocation needs to be outside
13876 the critical section.
13877
0c16dfed
DA
138782012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
13879
13880 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
13881 with RESET_INTERVAL.
13882
13883 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
13884 Remove duplicated buffer name initialization.
13885
3f83ace8
JM
138862012-05-02 Jim Meyering <jim@meyering.net>
13887
13888 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
13889
c7b8541e
JM
13890 * xfns.c (x_window): Use xstrdup (Bug#11375).
13891
90207a15 138922012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
13893
13894 * xdisp.c (pos_visible_p): If already at a newline from the
13895 display string before the 'while' loop, don't walk back the glyphs
13896 from it3.glyph_row. Solves assertion violation when the display
13897 string begins with a newline (egg.el). (Bug#11367)
13898
b593d6a9
AH
138992012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
13900
13901 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
13902 Move to simple.el.
13903
4737362e
GM
139042012-05-01 Glenn Morris <rgm@gnu.org>
13905
99cf43f9
GM
13906 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
13907 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
13908 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
13909 All were removed before 23.1.
13910
9311dcff
GM
13911 * dispnew.c: Remove HAVE_LIBNCURSES test;
13912 it is always true on relevant platforms.
13913
4d5c6349
GM
13914 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
13915 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
13916
4737362e
GM
13917 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
13918
74dd3a6b
AS
139192012-04-30 Andreas Schwab <schwab@linux-m68k.org>
13920
13921 * .gdbinit (xpr): Remove checks for no longer existing misc types.
13922 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
13923 Remove.
13924
13c379ee
PE
139252012-04-28 Paul Eggert <eggert@cs.ucla.edu>
13926
13927 Do not avoid creating empty evaporating overlays (Bug#9642).
13928 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
13929 That is, do not delete an evaporating overlay if it becomes
13930 empty after its bounds are adjusted to fit within its buffer.
13931 This fix caused other problems, and I'm reverting it until we get
13932 to the bottom of them.
13933
a8e7d6d7 139342012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
13935
13936 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
13937
a8e7d6d7 139382012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
13939
13940 * xdisp.c (pos_visible_p): If the window start position is beyond
13941 ZV, start the display from buffer beginning. Prevents assertion
13942 violation in init_iterator when the minibuffer window is scrolled
13943 via the scroll bar.
13944
13945 * window.c (window_scroll_pixel_based): Likewise.
13946
a8e7d6d7 139472012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
13948
13949 * keymap.c (where_is_internal): Doc fix (Bug#10872).
13950
a8e7d6d7 139512012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
13952
13953 * fileio.c (Fcopy_file, Fset_file_selinux_context):
13954 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
13955
a8e7d6d7 139562012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 13957
b593d6a9
AH
13958 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
13959 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 13960
1c6900d9
EZ
139612012-04-26 Eli Zaretskii <eliz@gnu.org>
13962
4c3fa1d9
EZ
13963 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
13964 display element, check also the underlying string or buffer
13965 character. (Bug#11341)
13966
1c6900d9
EZ
13967 * w32menu.c: Include w32heap.h.
13968 (add_menu_item): If the call to AppendMenuW (via
13969 unicode_append_menu) fails, disable Unicode menus only if we are
13970 running on Windows 9X/Me.
13971
42bf8205
AS
139722012-04-24 Andreas Schwab <schwab@linux-m68k.org>
13973
13974 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
13975 (xgetint): Add missing shift for LSB tags.
13976
b1bac16e
MR
139772012-04-24 Martin Rudalics <rudalics@gmx.at>
13978
13979 * keyboard.c (read_char): Don't wipe echo area for select window
13980 events: These might get delayed via `mouse-autoselect-window'
13981 (Bug#11304).
13982
d69621cc
JB
139832012-04-24 Juanma Barranquero <lekktu@gmail.com>
13984
13985 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
13986 manipulation of :loaded-from data.
13987
02fd101b
JB
139882012-04-23 Juanma Barranquero <lekktu@gmail.com>
13989
13990 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
13991 now a cons (bug#11311).
13992
888bec30
PE
139932012-04-23 Paul Eggert <eggert@cs.ucla.edu>
13994
89a438bd
PE
13995 Do not create empty overlays with the evaporate property (Bug#9642).
13996 * buffer.c (Fmove_overlay): Delete an evaporating overlay
13997 if it becomes empty after its bounds are adjusted to fit within
13998 its buffer. Without this fix, in a nonempty buffer (let ((o
13999 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
14000 yields an empty overlay that has the evaporate property, which is
14001 not supposed to happen.
14002
1068fe4d
PE
14003 Fix minor GTK3 problems found by static checking.
14004 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
14005 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
14006 (struct _EmacsFixedClass, emacs_fixed_get_type):
14007 Move decls here from emacsgtkfixed.h, since they needn't be public.
14008 (emacs_fixed_get_type): Now static.
14009 (emacs_fixed_class_init): Omit unused local.
14010 (emacs_fixed_child_type): Remove; unused.
14011 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
14012 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
14013 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
14014 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
14015 (EMACS_FIXED_GET_CLASS): Remove; unused.
14016 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
14017
888bec30
PE
14018 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
14019 Problem reported by Juanma Barranquero for Windows -Wunused-function.
14020
de85e130
PE
140212012-04-22 Paul Eggert <eggert@cs.ucla.edu>
14022
d0baac98 14023 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 14024 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
14025 (__malloc_size_t, __malloc_ptrdiff_t):
14026 Remove. All uses removed, replaced by the definiens if needed,
14027 since we can assume C89 or better now.
14028 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
14029 (protect_malloc_state, align, get_contiguous_space)
14030 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
14031 (malloc_atfork_handler_child, malloc_enable_thread)
14032 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
14033 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
14034 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
14035 (special_realloc, _realloc_internal_nolock, _realloc_internal)
14036 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
14037 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
14038 Define using prototypes, not old style.
14039 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
14040 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
14041 (align): Don't assume that signed integer overflow wraps around.
14042 Omit unused local var.
14043 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
14044 (_free_internal_nolock, memalign, mallochook, reallochook):
14045 Omit no-longer-needed casts.
14046 (valloc): Use getpagesize, not __getpagesize.
14047 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
14048 (struct hdr): The 'magic' member is now size_t, not unsigned long.
14049
de85e130
PE
14050 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
14051
dcbf5805
MA
140522012-04-22 Michael Albinus <michael.albinus@gmx.de>
14053
14054 Move functions from C to Lisp. Make non-blocking method calls
14055 the default. Implement further D-Bus standard interfaces.
14056
14057 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
14058 (QCdbus_request_name_allow_replacement)
14059 (QCdbus_request_name_replace_existing)
14060 (QCdbus_request_name_do_not_queue)
14061 (QCdbus_request_name_reply_primary_owner)
14062 (QCdbus_request_name_reply_in_queue)
14063 (QCdbus_request_name_reply_exists)
14064 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
14065 (QCdbus_registered_serial, QCdbus_registered_method)
14066 (QCdbus_registered_signal): New Lisp objects.
14067 (XD_DEBUG_MESSAGE): Use sizeof.
14068 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
14069 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
14070 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
14071 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
14072 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
14073 (xd_signature, xd_append_arg): Allow float for integer types.
14074 (xd_get_connection_references): New function.
b593d6a9
AH
14075 (xd_get_connection_address): Rename from xd_initialize.
14076 Return cached address.
dcbf5805
MA
14077 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
14078 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
14079 level.
14080 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 14081 Return number of refcounts.
dcbf5805
MA
14082 (Fdbus_get_unique_name): Make stronger parameter check.
14083 (Fdbus_message_internal): New defun.
14084 (Fdbus_call_method, Fdbus_call_method_asynchronously)
14085 (Fdbus_method_return_internal, Fdbus_method_error_internal)
14086 (Fdbus_send_signal, Fdbus_register_service)
14087 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
14088 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
14089 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
14090 (Vdbus_compiled_version, Vdbus_runtime_version)
14091 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
14092 (Vdbus_message_type_method_return, Vdbus_message_type_error)
14093 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
14094 (Vdbus_registered_buses, Vdbus_registered_objects_table):
14095 Adapt docstring.
dcbf5805 14096
52828e02
PE
140972012-04-22 Paul Eggert <eggert@cs.ucla.edu>
14098
da05bc4c
PE
14099 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
14100 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
14101 Do not assume ptrdiff_t is the same width as 'int'.
14102
52828e02
PE
14103 * alloc.c: Handle unusual debugging option combinations.
14104 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
14105 since the two debugging options are incompatible.
14106 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
14107 is defined.
14108 (mem_init, mem_insert, mem_insert_fixup):
14109 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
14110 (NEED_MEM_INSERT): Remove; no longer needed.
14111
f01769f9
LL
141122012-04-22 Leo Liu <sdl.web@gmail.com>
14113
14114 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
14115
5790543d
PE
141162012-04-22 Paul Eggert <eggert@cs.ucla.edu>
14117
14118 * sysdep.c [__FreeBSD__]: Minor cleanups.
14119 (list_system_processes, system_process_attributes) [__FreeBSD__]:
14120 Use Emacs indenting style more consistently. Avoid some casts.
14121 Use 'double' consistently rather than mixing 'float' and 'double'.
14122
b91b7e4d
EW
141232012-04-21 Eduard Wiebe <usenet@pusto.de>
14124
b593d6a9
AH
14125 * sysdep.c (list_system_processes, system_process_attributes):
14126 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 14127
6114eb15
AS
141282012-04-21 Andreas Schwab <schwab@linux-m68k.org>
14129
14130 * lisp.mk (lisp): Update.
14131
2f38dff7
PE
141322012-04-20 Paul Eggert <eggert@cs.ucla.edu>
14133
14134 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
14135 It is never used otherwise.
14136
4ae29f89
SM
141372012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
14138
14139 * print.c (print_preprocess): Only check print_depth if print-circle
14140 is nil.
14141 (print_object): Check for cycles even when print-circle is nil and
14142 print-gensym is t, but only check print_depth if print-circle is nil.
14143
f30d612a
CY
141442012-04-20 Chong Yidong <cyd@gnu.org>
14145
14146 * process.c (wait_reading_process_output): If EIO occurs on a pty,
14147 set the status to "failed" and ensure that sentinel is run.
14148
c07a4c0b 141492012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
14150
14151 * process.c (Fset_process_inherit_coding_system_flag)
14152 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 14153 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 14154
c07a4c0b 141552012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
14156
14157 * xdisp.c (string_buffer_position_lim): Limit starting position to
14158 BEGV.
14159 (set_cursor_from_row): If called for a mode-line or header-line
14160 row, return zero immediately.
14161 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
14162 farther than the first row after the header line, if any.
14163 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
14164 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
14165
c07a4c0b 141662012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 14167
4ae29f89
SM
14168 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
14169 (bug#11238).
ad3a2b41 14170
c07a4c0b 141712012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 141722012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
14173
14174 configure: new option --enable-gcc-warnings (Bug#11207)
14175 * Makefile.in (C_WARNINGS_SWITCH): Remove.
14176 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
14177 (ALL_CFLAGS): Use new macros rather than old.
14178 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
14179 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
14180 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
14181 -Wunused-result, -Wunused-variable. This should go away once
14182 the Emacs and Gnulib regex code is merged.
14183 (xmalloc, xrealloc): Now static.
14184
aba027e8
PE
141852012-04-17 Paul Eggert <eggert@cs.ucla.edu>
14186
14187 * dired.c (Fsystem_groups): Remove unused local.
14188
e5a36063
GM
141892012-04-17 Glenn Morris <rgm@gnu.org>
14190
14191 * dired.c (Fsystem_users): Doc fix.
14192
316411f0
DA
141932012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
14194
14195 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
14196 (syms_of_dired): Add them.
14197
9426aba4
PE
141982012-04-16 Paul Eggert <eggert@cs.ucla.edu>
14199
b62a57be
PE
14200 Fix minor alloc.c problems found by static checking.
14201 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
14202 New extern decls, to avoid calling undeclared functions.
14203 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
14204 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
14205 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
14206 (NEED_MEM_INSERT): New macro.
14207 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 14208 Remove one incorrect comment and fix another.
b62a57be 14209
3539f31f
PE
14210 Fix minor ralloc.c problems found by static checking.
14211 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
14212 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
14213 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
14214 (r_alloc_sbrk): Now static.
14215
a041960a
PE
14216 Improve ralloc.c interface checking.
14217 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
14218 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
14219 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
14220 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
14221 [REL_ALLOC]: ... to here, to check interface.
14222 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
14223 Remove decls. This fixes an "It stinks!".
14224
9426aba4
PE
14225 * alloc.c (which_symbols): Fix alignment issue / type clash.
14226
d55c12ed
AS
142272012-04-15 Andreas Schwab <schwab@linux-m68k.org>
14228
14229 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
14230 (struct Lisp_Misc_Any): Likewise.
14231 (struct Lisp_Free): Likewise.
14232 * alloc.c (union aligned_Lisp_Symbol): Define.
14233 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
14234 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
14235 (union aligned_Lisp_Misc): Define.
14236 (MARKER_BLOCK_SIZE, struct marker_block): Use union
14237 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 14238 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 14239
b948ce8b
PE
142402012-04-14 Paul Eggert <eggert@cs.ucla.edu>
14241
14242 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
14243 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
14244 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
14245 * s/netbsd.h, s/sol2-6.h:
14246 Remove definition of GC_MARK_STACK, since the default now works.
14247 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
14248 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
14249 no longer the default.
14250 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
14251
35dc09a1 142522012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 14253
35dc09a1
GM
14254 * lread.c (lisp_file_lexically_bound_p):
14255 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 14256
35dc09a1
GM
142572012-04-14 Eli Zaretskii <eliz@gnu.org>
14258
14259 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
14260 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
14261
142622012-04-14 Jan Djärv <jan.h.d@swipnet.se>
14263
14264 * nsterm.m (constrainFrameRect): Always constrain when there is only
14265 one screen (Bug#10962).
14266
bcd86815
KB
142672012-04-13 Ken Brown <kbrown@cornell.edu>
14268
14269 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
14270
c25df26e
RT
142712012-04-13 Reuben Thomas <rrt@sc3d.org>
14272
14273 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
14274
0fc59f1e
DC
142752012-04-11 Daniel Colascione <dancol@dancol.org>
14276
14277 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
14278 against is gone. It's better to use vfork now so that when Cygwin
14279 gains a new, working vfork, we use it automatically (bug#10398).
14280
de8c03dc
SM
142812012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
14282
14283 * window.c (save_window_save): Obey window-point-insertion-type.
14284
2f097256
GM
142852012-04-11 Glenn Morris <rgm@gnu.org>
14286
14287 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
14288
453b951e
SM
142892012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
14290
14291 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
14292
75f1671a 142932012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
14294
14295 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
14296 (force_quit_count): New var.
14297 (handle_interrupt): Use it.
14298
2a8ce227
JB
142992012-04-10 Juanma Barranquero <lekktu@gmail.com>
14300
14301 * w32.c (w32_delayed_load): Record the full path of the library
14302 being loaded (bug#10424).
14303
935396c0
GM
143042012-04-09 Glenn Morris <rgm@gnu.org>
14305
05920a43
GM
14306 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
14307 not just in the obarray, before snarfing them. (Bug#11036)
14308
935396c0
GM
14309 * Makefile.in ($(leimdir)/leim-list.el):
14310 Pass EMACS rather than BUILT_EMACS.
14311
a18ecafa
TZ
143122012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
14313
14314 * process.c (make_process):
14315 * process.h: Add integer `gnutls_handshakes_tried' member to
14316 process struct.
14317
6bbef4e5
JC
14318 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
14319 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
14320
14321 * gnutls.c (gnutls_log_function2i): Convenience log function.
14322 (emacs_gnutls_read): Use new log functions,
14323 `gnutls_handshakes_tried' process member, and
14324 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
14325 attempts per process (connection).
14326
b4d3bc10
CY
143272012-04-09 Chong Yidong <cyd@gnu.org>
14328
14329 * eval.c (Fuser_variable_p, user_variable_p_eh)
14330 (lisp_indirect_variable): Functions deleted.
14331 (Fdefvar): Caller changed.
14332
14333 * callint.c (Finteractive, Fcall_interactively):
14334 * minibuf.c (Fread_variable): Callers changed.
14335
70f4d973
EZ
143362012-04-09 Eli Zaretskii <eliz@gnu.org>
14337
14338 * xdisp.c (set_cursor_from_row): If the display string appears in
14339 the buffer at position that is closer to point than the position
14340 after the display string, display the cursor on the first glyph of
14341 the display string. Fixes cursor display when a 'display' text
14342 property immediately follows invisible text. (Bug#11094)
14343
cb3c2e3e
PE
143442012-04-09 Paul Eggert <eggert@cs.ucla.edu>
14345
14346 composite.c: use 'double' consistently
14347 * composite.c (get_composition_id): Use 'double' consistently
14348 instead of converting 'float' to 'double' and vice versa; this is
14349 easier to understand and avoids a GCC warning.
14350
fd06db5d
GM
143512012-04-09 Glenn Morris <rgm@gnu.org>
14352
50fe702a
GM
14353 * Makefile.in: Generate leim-list with bootstrap-emacs, in
14354 preparation for dumping it with emacs. (Bug#4789)
14355 (leimdir): New variable.
14356 ($(leimdir)/leim-list.el): New rule.
14357 (emacs$(EXEEXT)): Depend on leim-list.el.
14358
fd06db5d
GM
14359 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
14360 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
14361 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
14362
55c131ee
AS
143632012-04-08 Andreas Schwab <schwab@linux-m68k.org>
14364
14365 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
14366 proper alignment.
14367
9209588f
JB
143682012-04-07 Juanma Barranquero <lekktu@gmail.com>
14369
14370 * xml.c (init_libxml2_functions) [WINDOWSNT]:
14371 Remove unused local variable.
14372
e3fb2efb
PE
143732012-04-07 Paul Eggert <eggert@cs.ucla.edu>
14374
14375 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
14376 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
14377 (mark_memory): Mark Lisp_Objects only if pointers might hide in
14378 objects, as mark_maybe_pointer will catch them otherwise.
14379 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
14380 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
14381
b5385551
PE
143822012-04-07 Paul Eggert <eggert@cs.ucla.edu>
14383
14384 Fix typo that broke non-Windows builds.
14385 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
14386
9078ead6
EZ
143872012-04-07 Eli Zaretskii <eliz@gnu.org>
14388
14389 Support building on MS-Windows with libxml2.
14390
14391 * makefile.w32-in (OBJ2): Add xml.$(O).
14392 (GLOBAL_SOURCES): Add xml.c.
14393 ($(BLD)/xml.$(O)): New dependency list.
14394
14395 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
14396 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
14397 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
14398 [!WINDOWSNT]: New macros.
14399 (init_libxml2_functions, libxml2_loaded_p): New functions.
14400 (parse_region): Call fn_xmlCheckVersion instead of using the macro
14401 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
14402 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
14403 Calls xmlCleanupParser only if libxml2 was loaded (or statically
14404 linked in).
6bbef4e5
JC
14405 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
14406 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
14407 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
14408
14409 * emacs.c: Don't include libxml/parser.h.
14410 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
14411 xmlCleanupParser directly.
14412
14413 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
14414
3811fdf3
EZ
144152012-04-07 Eli Zaretskii <eliz@gnu.org>
14416
14417 * indent.c (Fvertical_motion): If there is a display string at
14418 point, use it.vpos to compute how many lines to backtrack after
14419 move_it_to point. (Bug#11133)
14420
2f8e16b2
EZ
144212012-04-06 Eli Zaretskii <eliz@gnu.org>
14422
14423 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
14424 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
14425 about subtle differences between FETCH_CHAR* and STRING_CHAR*
14426 macros related to unification of CJK characters. For the details,
14427 see the discussion following the message here:
14428 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
14429
3d439cd1
CY
144302012-04-04 Chong Yidong <cyd@gnu.org>
14431
14432 * keyboard.c (Vdelayed_warnings_list): Doc fix.
14433
8bc53d00
EZ
144342012-04-01 Eli Zaretskii <eliz@gnu.org>
14435
14436 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
14437 instead of alloca. (Bug#11138)
14438
3b0512a3
AS
144392012-04-01 Andreas Schwab <schwab@linux-m68k.org>
14440
14441 * w32menu.c (is_simple_dialog): Properly check lisp types.
14442 (Bug#11141)
14443
8427ddd2
EZ
144442012-03-31 Eli Zaretskii <eliz@gnu.org>
14445
979022ef
EZ
14446 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
14447 position we get to after a call to move_it_to fails the
14448 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
14449 only if we wind up in a string from display property. (Bug#11063)
14450
a6b1c7cc
EZ
14451 * window.c (Fdelete_other_windows_internal): Invalidate the row
14452 and column information about mouse highlight, so that redisplay
14453 restores it after reallocating the glyph matrices. (Bug#7464)
14454
8427ddd2
EZ
14455 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
14456 string comes from a `display' text property, use the buffer
14457 position of that property as if we actually saw that position in
14458 the row's glyphs.
697ba24b
EZ
14459 (move_it_by_lines): Remove the assertion that
14460 "it->current_x == 0 && it->hpos == 0" which can be legitimately
14461 violated when there's a before-string at the beginning of a line.
14462 (Bug#11063)
8427ddd2 14463
65a0a738
EZ
144642012-03-30 Eli Zaretskii <eliz@gnu.org>
14465
14466 * xdisp.c (append_space_for_newline): If the default face was
14467 remapped, use the remapped face for the appended newline.
14468 (extend_face_to_end_of_line): Use the remapped default face for
14469 extending the face to the end of the line.
14470 (display_line): Call extend_face_to_end_of_line when the default
14471 face was remapped. (Bug#11068)
14472
581355cc
EZ
144732012-03-29 Eli Zaretskii <eliz@gnu.org>
14474
14475 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
14476
e8fc049f
SM
144772012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
14478
14479 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
14480
4fb9a543
GM
144812012-03-27 Glenn Morris <rgm@gnu.org>
14482
14483 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
14484 Doc fixes.
14485
679910f1
KH
144862012-03-26 Kenichi Handa <handa@m17n.org>
14487
14488 * dispextern.h (struct glyph): Fix previous change. Change the
14489 bit length of glyphless.ch to 25 (Bug#11082).
14490
90d49b7f
CY
144912012-03-26 Chong Yidong <cyd@gnu.org>
14492
14493 * keyboard.c (Vselection_inhibit_update_commands): New variable.
14494 (command_loop_1): Use it; inhibit selection update for
14495 handle-select-window too (Bug#8996).
14496
f514f6f0
FP
144972012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
14498
e8fc049f 14499 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 14500
bf43fa51
KH
145012012-03-25 Kenichi Handa <handa@m17n.org>
14502
14503 * dispextern.h (struct glyph): Change the bit length of
14504 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
14505
8a0c01dd
EZ
145062012-03-24 Eli Zaretskii <eliz@gnu.org>
14507
14508 * s/ms-w32.h (tzname): Include time.h before redirecting to
14509 _tzname. Fixes the MSVC build. (Bug#9960)
14510
7d1c3a76
AS
145112012-03-24 Andreas Schwab <schwab@linux-m68k.org>
14512
8ed79523
AS
14513 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
14514 characters.
14515
7d1c3a76
AS
14516 * xterm.c (XTread_socket): Only modify handling_signal if
14517 !SYNC_INPUT. (Bug#11080)
14518
e99a9b8b
EZ
145192012-03-23 Eli Zaretskii <eliz@gnu.org>
14520
14521 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
14522 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
14523 when fetching a multibyte character consumes more bytes than
14524 CHAR_BYTES returns, due to unification of CJK characters in
14525 string_char. (Bug#11073)
14526
5063c0e1
TN
145272012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
14528
14529 * process.c (wait_reading_process_output): Handle pty disconnect
14530 by refraining from sending oneself a SIGCHLD (bug#10933).
14531
9f851fbd
CY
145322012-03-22 Chong Yidong <cyd@gnu.org>
14533
14534 * dispextern.h (struct it): New member string_from_prefix_prop_p.
14535
5063c0e1 14536 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
14537 Mark string as coming from a prefix property.
14538 (handle_face_prop): Use default face for prefix strings (Bug#4281).
14539 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
14540
fb5b8aca
CY
145412012-03-21 Chong Yidong <cyd@gnu.org>
14542
14543 * xfaces.c (Vface_remapping_alist): Doc fix.
14544
62356a1b
EZ
145452012-03-20 Eli Zaretskii <eliz@gnu.org>
14546
14547 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
14548 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
14549 Doc fixes.
62356a1b 14550
025de85b
CY
145512012-03-20 Chong Yidong <cyd@gnu.org>
14552
14553 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
14554 to reflect default non-nil value of redisplay-dont-pause.
14555
4827f94e
KH
145562012-03-19 Kenichi Handa <handa@m17n.org>
14557
14558 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
14559 it fit in a valid range (Bug#11003).
14560
e50a24a2
EZ
145612012-03-18 Eli Zaretskii <eliz@gnu.org>
14562
14563 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
14564 that is not from display property, accept the row as a "cursor
14565 row" if one of the string's character has a non-nil `cursor'
14566 property. Fixes cursor positioning when there are newlines in
14567 overlay strings, e.g. in icomplete.el. (Bug#11035)
14568
9af5ed87
PE
145692012-03-12 Paul Eggert <eggert@cs.ucla.edu>
14570
14571 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
14572
d1f55f16
CY
145732012-03-12 Chong Yidong <cyd@gnu.org>
14574
14575 * eval.c (inhibit_lisp_code): Rename from
14576 inhibit_window_configuration_change_hook; move from window.c.
14577
14578 * xfns.c (unwind_create_frame_1, Fx_create_frame):
14579 * window.c (run_window_configuration_change_hook)
14580 (syms_of_window): Callers changed.
14581
66c5eebd
CY
145822012-03-11 Chong Yidong <cyd@gnu.org>
14583
413df973
CY
14584 * keymap.c (Fkey_description): Doc fix (Bug#9700).
14585
66c5eebd
CY
14586 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
14587
1de11f56
CY
145882012-03-10 Chong Yidong <cyd@gnu.org>
14589
14590 * frame.c (other_visible_frames): Don't assume the selected frame
14591 is visible (Bug#10955).
14592
cae07000
SM
145932012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
14594
14595 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
14596
89c94350
JD
145972012-03-08 Jan Djärv <jan.h.d@swipnet.se>
14598
14599 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
14600 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
14601 zero (Bug#10954).
14602
999dd333
GM
146032012-03-03 Glenn Morris <rgm@gnu.org>
14604
01a6dcc8 14605 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 14606
de0100f2
EZ
146072012-03-02 Eli Zaretskii <eliz@gnu.org>
14608
14609 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
14610 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
14611 (redisplay_window, next_element_from_string): Fix typos in
14612 comments.
3e441275
EZ
14613 (redisplay_window): Pass to move_it_vertically the margin in
14614 pixels, not in screen lines.
de0100f2 14615
96a72ee9
GM
146162012-03-02 Glenn Morris <rgm@gnu.org>
14617
14618 * buffer.c (buffer-list-update-hook): Doc fix.
14619
312508d7
EZ
146202012-02-29 Eli Zaretskii <eliz@gnu.org>
14621
14622 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
14623 push_it before setting up the iterator for the first overlay
14624 string, even if we have an empty string loaded.
14625 (next_overlay_string): If there's an empty string on the iterator
14626 stack, pop the stack. (Bug#10903)
14627
27f3c637
PE
146282012-02-25 Paul Eggert <eggert@cs.ucla.edu>
14629
14630 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
14631 Suggested by Stefan Monnier in
14632 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
14633 * alloc.c (widen_to_Lisp_Object): New static function.
14634 (mark_memory): Also mark Lisp_Objects by fetching pointer words
14635 and widening them to Lisp_Objects. This would work even if
14636 USE_LSB_TAG is defined and wide integers are used, which might
14637 happen in a future version of Emacs.
14638
3c9dfce6
CY
146392012-02-25 Chong Yidong <cyd@gnu.org>
14640
fa74b241
CY
14641 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
14642 Doc fix.
14643
3c9dfce6
CY
14644 * xselect.c (Fx_selection_exists_p): Doc fix.
14645 (x_clipboard_manager_save_all): Print an informative message
14646 before saving to clipboard manager.
14647
9486df08
CY
146482012-02-24 Chong Yidong <cyd@gnu.org>
14649
14650 * keyboard.c (process_special_events): Handle all X selection
14651 requests in kbd_buffer, not just the next one (Bug#8869).
14652
f01d3321
CY
146532012-02-23 Chong Yidong <cyd@gnu.org>
14654
14655 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
14656 call when setting menu-bar-lines and tool-bar-lines parameters.
14657 (unwind_create_frame_1): New helper function.
14658
14659 * window.c (inhibit_window_configuration_change_hook): New var.
14660 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 14661 (syms_of_window): Initialize it.
f01d3321 14662
86b847b6
CY
146632012-02-22 Chong Yidong <cyd@gnu.org>
14664
14665 * xterm.c (x_draw_image_relief): Add missing type check for
14666 Vtool_bar_button_margin (Bug#10743).
14667
a59225b1
CY
146682012-02-21 Chong Yidong <cyd@gnu.org>
14669
14670 * fileio.c (Vfile_name_handler_alist): Doc fix.
14671
14672 * buffer.c (Fget_file_buffer): Protect against invalid file
14673 handler return value.
14674
310f5bd4
PE
146752012-02-20 Paul Eggert <eggert@cs.ucla.edu>
14676
cb3a28cc
PE
14677 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
14678 when computing $valmask.
14679
310f5bd4
PE
14680 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
14681 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
14682 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
14683 It's useless in that case, and it can cause problems on hosts
14684 that allocate halves of EMACS_INT values separately.
14685 Reported by Dan Horák. Diagnosed by Andreas Schwab in
14686 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
14687 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
14688 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
14689 it avoids undefined behavior on hosts where shifting right by more
14690 than the word width has undefined behavior.
14691
2375c96a
CY
146922012-02-19 Chong Yidong <cyd@gnu.org>
14693
14694 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
14695 (Funhandled_file_name_directory, Ffile_name_as_directory)
14696 (Fdirectory_file_name, Fexpand_file_name)
14697 (Fsubstitute_in_file_name): Protect against invalid file handler
14698 return values (Bug#10845).
14699
3eb49e71
EZ
147002012-02-18 Eli Zaretskii <eliz@gnu.org>
14701
14702 * .gdbinit (pitx): Fix incorrect references to fields of the
14703 iterator stack.
14704
7b926f3f
CY
147052012-02-17 Chong Yidong <cyd@gnu.org>
14706
14707 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
14708
11273115
PE
147092012-02-15 Paul Eggert <eggert@cs.ucla.edu>
14710
14711 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
14712 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
14713
c3a70e2b
CY
147142012-02-15 Chong Yidong <cyd@gnu.org>
14715
14716 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
14717 marked as special. Also, starting docstrings with * is obsolete.
14718
0ca43699
AS
147192012-02-13 Andreas Schwab <schwab@linux-m68k.org>
14720
14721 * gnutls.c (emacs_gnutls_write): Fix last change.
14722
2e8f3c56
LI
147232012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
14724
14725 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
14726 send_process.
14727
af70074f
SM
147282012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
14729
14730 * keymap.c (Fsingle_key_description): Handle char ranges.
14731
95986d52
CY
147322012-02-12 Chong Yidong <cyd@gnu.org>
14733
afd83bd1
CY
14734 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
14735 as that creates a dangerous corner case.
14736
95986d52
CY
14737 * window.c (Fdelete_window_internal): Invalidate the mouse
14738 highlight (Bug#9904).
14739
bd7da63e
GM
147402012-02-12 Glenn Morris <rgm@gnu.org>
14741
14742 * xselect.c (Fx_own_selection_internal)
14743 (Fx_get_selection_internal, Fx_disown_selection_internal)
14744 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
14745 * nsselect.m (Fx_own_selection_internal)
14746 (Fx_disown_selection_internal, Fx_selection_exists_p)
14747 (Fx_selection_owner_p, Fx_get_selection_internal):
14748 Sync docs and argument specs with the xselect.c versions.
14749
77abcbc2
LI
147502012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
14751
14752 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
14753
90b671e2
EZ
147542012-02-11 Eli Zaretskii <eliz@gnu.org>
14755
1c0ca0b7
EZ
14756 * w32select.c (Fx_selection_exists_p): Sync doc string and
14757 argument list with xselect.c. (Bug#10783)
14758
14759 * w16select.c (Fx_selection_exists_p): Sync doc string and
14760 argument list with xselect.c. (Bug#10783)
90b671e2 14761
49241268
GM
147622012-02-10 Glenn Morris <rgm@gnu.org>
14763
14764 * fns.c (Fsecure_hash): Doc fix.
14765
f998bbe7 147662012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
14767
14768 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
14769
0992bd9c
CY
147702012-02-07 Chong Yidong <cyd@gnu.org>
14771
14772 * buffer.c (Fbuffer_local_variables)
14773 (buffer_lisp_local_variables): Handle unbound vars correctly;
14774 don't let Qunbound leak into Lisp.
14775
af008560
GM
147762012-02-07 Glenn Morris <rgm@gnu.org>
14777
dd605cc4
GM
14778 * image.c (Fimagemagick_types): Doc fix.
14779
af008560
GM
14780 * image.c (imagemagick-render-type): Change it from a lisp object
14781 to an integer. Move the doc here from the lisp manual.
14782 Treat all values not equal to 0 the same.
14783
1449fa1d
CY
147842012-02-06 Chong Yidong <cyd@gnu.org>
14785
14786 * doc.c (store_function_docstring): Avoid applying docstring of
14787 alias to base function (Bug#2603).
14788
3723ec07
AS
147892012-02-04 Andreas Schwab <schwab@linux-m68k.org>
14790
14791 * .gdbinit (pp1, pv1): Remove redundant defines.
14792 (pr): Use pp.
14793
79c1cc1e
CY
147942012-02-04 Chong Yidong <cyd@gnu.org>
14795
14796 * nsterm.m: Declare a global (Bug#10694).
14797
d7f29f8e
EZ
147982012-02-04 Eli Zaretskii <eliz@gnu.org>
14799
cae07000
SM
14800 * w32.c (get_emacs_configuration_options):
14801 Include --enable-checking, if specified, in the return value.
d7f29f8e 14802
3b95a6f9
MR
148032012-02-04 Martin Rudalics <rudalics@gmx.at>
14804
14805 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
14806 after rounding frame sizes. (Bug#9723)
14807
d6fa96a6
EZ
148082012-02-04 Eli Zaretskii <eliz@gnu.org>
14809
14810 * keyboard.c (adjust_point_for_property): Don't position point
14811 before BEGV. (Bug#10696)
14812
df0b2940
PE
148132012-02-03 Paul Eggert <eggert@cs.ucla.edu>
14814
14815 Handle overflow when computing char display width (Bug#9496).
14816 * character.c (char_width): Return EMACS_INT, not int.
14817 (char_width, c_string_width): Check for overflow when
14818 computing the width; this is possible now that individual
14819 characters can have unbounded width. Problem introduced
14820 by merge from Emacs 23 on 2012-01-19.
14821
6bee44d6
MA
148222012-02-02 Michael Albinus <michael.albinus@gmx.de>
14823
14824 * dbusbind.c (Fdbus_register_method): Mention the return value
14825 :ignore in the docstring.
14826
44f92739
GM
148272012-02-02 Glenn Morris <rgm@gnu.org>
14828
1b9f60cc
GM
14829 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
14830
44f92739
GM
14831 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14832 Unconditionally set to t. (Bug#10673)
14833 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14834 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
14835 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
14836
c5d3843c
KH
148372012-02-02 Kenichi Handa <handa@m17n.org>
14838
14839 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
14840 0, do not call append_composite_glyph.
14841
159462d4 148422012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
14843
14844 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
14845 NULL (Bug#6988).
14846 (x_produce_glyphs): If the component of a composition is a null
14847 string, set it->pixel_width to 1 to avoid zero-width glyph.
14848
78cef877
EZ
148492012-02-01 Eli Zaretskii <eliz@gnu.org>
14850
14851 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
14852 first 2 arguments are identical. This makes inserting large
14853 output from a subprocess an order of magnitude faster on
14854 MS-Windows, where all sbrk'ed memory is always contiguous.
14855
97897668
GM
148562012-01-31 Glenn Morris <rgm@gnu.org>
14857
14858 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 14859 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
14860 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
14861
31fd3586
GM
148622012-01-29 Glenn Morris <rgm@gnu.org>
14863
14864 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
14865
0e24a8b2
CY
148662012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
14867
14868 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
14869
cc0adcb0
CY
148702012-01-28 Chong Yidong <cyd@gnu.org>
14871
14872 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
14873
acc28cb9
CY
148742012-01-26 Chong Yidong <cyd@gnu.org>
14875
9c69cfb7
CY
14876 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
14877
acc28cb9
CY
14878 * search.c (Fsearch_forward, Fsearch_backward): Document negative
14879 repeat counts (Bug#10507).
14880
48da7392
GM
148812012-01-26 Glenn Morris <rgm@gnu.org>
14882
14883 * lread.c (syms_of_lread): Doc fix.
14884
14af5f7f
CY
148852012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
14886
14887 * coding.c (encode_designation_at_bol): Change return value to
14888 EMACS_INT.
14889
0b21c100
CY
148902012-01-25 Chong Yidong <cyd@gnu.org>
14891
14892 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
14893
3c2907f7
CY
148942012-01-21 Chong Yidong <cyd@gnu.org>
14895
14896 * floatfns.c (Fcopysign): Make the second argument non-optional,
14897 since nil is not allowed anyway.
14898
959ad23f
AS
148992012-01-21 Andreas Schwab <schwab@linux-m68k.org>
14900
14901 * process.c (read_process_output): Use p instead of XPROCESS (proc).
14902 (send_process): Likewise.
14903
34a02f46
MR
149042012-01-19 Martin Rudalics <rudalics@gmx.at>
14905
14906 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
14907 (Vwindow_persistent_parameters): Do not use Qstate.
14908 Rewrite doc-strings.
34a02f46 14909
1259009a 149102012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
14911
14912 * character.c (char_width): New function.
70d4fdf6
GM
14913 (Fchar_width, c_string_width, lisp_string_width):
14914 Use char_width (Bug#9496).
25ed9e61 14915
6a6ee00d
MR
149162012-01-16 Martin Rudalics <rudalics@gmx.at>
14917
14918 * window.c (Vwindow_persistent_parameters): New variable.
14919 (Fset_window_configuration, save_window_save): Handle persistent
14920 window parameters.
14921
c85efaf7
EZ
149222012-01-14 Eli Zaretskii <eliz@gnu.org>
14923
14924 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
14925 thrashing the stack of the thread. (Bug#9087)
14926
5944709e
PE
149272012-01-12 Paul Eggert <eggert@cs.ucla.edu>
14928
14929 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
14930
e71f5d99
EZ
149312012-01-11 Eli Zaretskii <eliz@gnu.org>
14932
14933 * xdisp.c (rows_from_pos_range): Handle the case where the
14934 highlight ends on a newline. (Bug#10464)
14935 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
14936 he end column for display of highlight that ends on a newline
14937 before a R2L line.
14938
ce316182
GM
149392012-01-11 Glenn Morris <rgm@gnu.org>
14940
14941 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
14942 from load-path also when installation-directory is nil. (Bug#10208)
14943
5b43da69
GM
149442012-01-10 Glenn Morris <rgm@gnu.org>
14945
74cc8ff9
GM
14946 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
14947
7d8d6e4e
GM
14948 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
14949 Update template values to be closer to their typical values these days.
5b43da69 14950
a0db8d43
EZ
149512012-01-09 Eli Zaretskii <eliz@gnu.org>
14952
14953 * xdisp.c (rows_from_pos_range): Accept additional argument
14954 DISP_STRING, and accept any glyph in a row whose object is that
14955 string as eligible for mouse highlight. Fixes mouse highlight of
14956 display strings from overlays. (Bug#10464)
14957
9a0115ab 149582012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 14959
b9110d6a 14960 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
14961 * fileio.c (auto_saving_dir_umask): New static var.
14962 (Fmake_directory_internal): Use it.
14963 (do_auto_save_make_dir): Set it, instead of invoking chmod after
14964 creating the directory. The old code temporarily assigns
14965 too-generous permissions to the directory.
14966 (do_auto_save_eh): Clear it.
b9110d6a 14967 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
14968 that the var is always cleared.
14969
6c1bd3f3
EZ
149702012-01-07 Eli Zaretskii <eliz@gnu.org>
14971
14972 * search.c (scan_buffer): Pass character positions to
14973 know_region_cache, not byte positions. (Bug#6540)
14974
069d2b50
L
149752012-01-07 LynX <_LynX@bk.ru> (tiny change)
14976
14977 * w32.c (sys_rename): Report EXDEV when rename of a directory
14978 fails because the target is on another logical disk. (Bug#10284)
14979
75bf0d33
DB
149802012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
14981
14982 * xterm.c (x_embed_request_focus): New function.
14983
14984 * xterm.h: Add prototype.
14985
14986 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
14987
1c6e5a32
GM
149882012-01-05 Glenn Morris <rgm@gnu.org>
14989
14990 * emacs.c (emacs_copyright): Update short copyright year to 2012.
14991
651e947e
EZ
149922012-01-01 Eli Zaretskii <eliz@gnu.org>
14993
14994 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
14995 Load gnutls_transport_set_lowat only if GnuTLS version is below
14996 2.11.1.
14997 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
14998 GnuTLS versions below 2.11.1.
14999
3778cdd8
AL
150002011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
15001
15002 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
15003 to the doc string advising against its use for altering the way
15004 windows are scrolled.
15005
0e5317f7
KH
150062011-12-28 Kenichi Handa <handa@m17n.org>
15007
15008 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
15009 coding-system ASCII compatible only when it does not produce BOM
15010 on encoding (Bug#10383).
15011
93d5ca1f
JD
150122011-12-26 Jan Djärv <jan.h.d@swipnet.se>
15013
15014 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
15015 can scroll.
15016 (create_and_show_popup_menu): Always use menu_position_func for
15017 Gtk3 (Bug#10361).
15018
ca22b785
AS
150192011-12-24 Andreas Schwab <schwab@linux-m68k.org>
15020
15021 * callint.c (Fcall_interactively): Don't truncate prompt string.
15022
d048e1e6
EZ
150232011-12-23 Eli Zaretskii <eliz@gnu.org>
15024
15025 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
15026 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 15027 resumed from there (after widening). (Bug#10360)
d048e1e6 15028
5ccaba1f
JD
150292011-12-22 Jan Djärv <jan.h.d@swipnet.se>
15030
15031 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
15032
204ee57f
JD
150332011-12-21 Jan Djärv <jan.h.d@swipnet.se>
15034
b81d40f0
JB
15035 * nsterm.m (x_free_frame_resources):
15036 Release f->output_data.ns->miniimage.
204ee57f
JD
15037 (ns_index_color): Fix indentation. Do not retain
15038 color_table->colors[i].
15039
15040 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
15041 before returning.
15042
15043 * nsfns.m (x_set_background_color): Assign return value from
15044 ns_index_color to face-background instead of NSColor*.
15045 (ns_implicitly_set_icon_type): Fix indentation.
15046 Change assignment in for loop to comparison.
15047
15048 * emacs.c (ns_pool): New variable.
15049 (main): Assign ns_pool.
15050 (Fkill_emacs): Call ns_release_autorelease_pool.
15051
15052 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
15053 autorelease fdesc, release fdAttrs and tdict.
15054 (ns_get_covering_families): Release charset.
15055 (ns_findfonts): Release NSFontDescriptor created with new.
15056 (ns_uni_to_glyphs): Fix indentation.
15057 (setString): Release attrStr before assigning new value.
15058
c803b2b7
JD
150592011-12-18 Jan Djärv <jan.h.d@swipnet.se>
15060
678f4426
JD
15061 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
15062 and NS_IMPL_COCOA.
15063 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
15064 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
15065
cd394be1 150662011-12-18 David Reitter <reitter@cmu.edu>
678f4426 15067
5fecd5fc
JD
15068 * nsterm.m (ns_term_init): Subscribe for notifications
15069 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
15070 to method trackingNotification in EmacsMenu.
15071
15072 * nsmenu.m (trackingMenu): New variable.
3771cb17 15073 (trackingNotification): New method (from Aquamacs).
5fecd5fc 15074 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 15075 from Aquamacs (Bug#7030).
678f4426
JD
15076
150772011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 15078
c803b2b7
JD
15079 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
15080 (symbol_to_nsstring): Fix indentation.
15081 (ns_symbol_to_pb): New function.
cae07000
SM
15082 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
15083 (Fns_rotate_cut_buffers_internal): Remove.
15084 (Fns_store_selection_internal): Rename from
c803b2b7
JD
15085 Fns_store_cut_buffer_internal.
15086 (ns_get_foreign_selection, Fx_own_selection_internal)
15087 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
15088 (Fns_get_selection_internal, Fns_store_selection_internal):
15089 Use ns_symbol_to_pb and check if return value is nil.
15090 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
15091 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
15092 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
15093 renamed to Sns_store_selection_internal.
15094 (ns_handle_selection_request): Move code to Fx_own_selection_internal
15095 and remove this function.
15096 (ns_handle_selection_clear): Remove, never used.
15097 (Fx_own_selection_internal): Move code from ns_handle_selection_request
15098 here.
15099
e1b01a3a
KB
151002011-12-17 Ken Brown <kbrown@cornell.edu>
15101
15102 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
15103 GID is unknown (Bug#10257).
15104
2adb6e85
PE
151052011-12-17 Paul Eggert <eggert@cs.ucla.edu>
15106
15107 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
15108 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
15109 which caused a build failure on GNU/Linux IA-64. This problem was
15110 introduced by my 2011-10-07 patch.
15111
d1d7b339
JL
151122011-12-15 Juri Linkov <juri@jurta.org>
15113
15114 * image.c (imagemagick_error): New function. (Bug#10112)
15115 (imagemagick_load_image): Comment out `MagickSetResolution' call.
15116 Use `imagemagick_error' where ImageMagick functions return
15117 `MagickFalse'.
15118 (Fimagemagick_types): Add `Fnreverse' to return the list in the
15119 proper order.
15120
100d5755
KH
151212011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15122
15123 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
15124 fill background (Bug#8992).
15125
454592a6
MR
151262011-12-13 Martin Rudalics <rudalics@gmx.at>
15127
15128 * window.c (Vwindow_combination_resize)
15129 (Vwindow_combination_limit): Use t instead of non-nil in
15130 doc-strings.
61d4b438
MR
15131 (Vrecenter_redisplay): Add first sentence of doc-string on
15132 separate line.
53524d93 15133 (Frecenter): Fix doc-string typo.
454592a6 15134
3633e3aa
KH
151352011-12-11 Kenichi Handa <handa@m17n.org>
15136
15137 * coding.c (Funencodable_char_position): Pay attention to the
15138 buffer text relocation (Bug#9389).
15139
7b9d523a 151402011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 15141
7b9d523a
JD
15142 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
15143 gtk_init (Bug#10100).
15144
b73189c6
EZ
151452011-12-10 Eli Zaretskii <eliz@gnu.org>
15146
15147 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
15148 IT->string is nil. (Bug#10263)
15149
f7dfe5d6
JD
151502011-12-10 Jan Djärv <jan.h.d@swipnet.se>
15151
83faebb4
JD
15152 * nsterm.h (x_free_frame_resources): Declare.
15153
f7dfe5d6
JD
15154 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
15155 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
15156
15157 * nsterm.h (ns_get_defaults_value): Declare.
15158
15159 * nsterm.m (ns_default): Call ns_get_defaults_value.
15160
7cd4e72c
EZ
151612011-12-09 Eli Zaretskii <eliz@gnu.org>
15162
15163 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
15164 (Bug#10170)
15165
b34d7317
YM
151662011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15167
15168 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
15169 that where the value of an _OBJC_* symbol points to is in the .bss
15170 section (Bug#10240).
15171
76470ad1
KH
151722011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
15173
15174 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 15175 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 15176
745fff94
KH
151772011-12-08 Kenichi Handa <handa@m17n.org>
15178
15179 * ftfont.c (get_adstyle_property): Fix previous change
15180 (Bug#10233).
15181
6e44397c
JB
151822011-12-07 Juanma Barranquero <lekktu@gmail.com>
15183
15184 * w32.c (init_environment): If no_site_lisp, remove site-lisp
15185 dirs from the default value of EMACSLOADPATH (bug#10208).
15186
7efa6272
GM
151872011-12-07 Glenn Morris <rgm@gnu.org>
15188
15189 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
15190 installation and source directories as well. (Bug#10208)
15191
f6fc4d87
CY
151922011-12-06 Chong Yidong <cyd@gnu.org>
15193
15194 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
15195
2bf26180
GM
151962011-12-06 Glenn Morris <rgm@gnu.org>
15197
15198 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
15199 as an error, not just -1. (Bug#10217)
15200
3a6ad4f0
CY
152012011-12-05 Chong Yidong <cyd@gnu.org>
15202
15203 * keyboard.c (process_special_events): New function.
15204 (swallow_events, Finput_pending_p): Use it (Bug#10195).
15205
75a3b399
PE
152062011-12-05 Paul Eggert <eggert@cs.ucla.edu>
15207
15208 * coding.c (encode_designation_at_bol): Don't use uninitialized
15209 local variable (Bug#9318).
15210
c3c9e25e
KH
152112011-12-05 Kenichi Handa <handa@m17n.org>
15212
15213 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
15214 return Qnil (Bug#8046, Bug#10193).
15215
5eb05ea3
KH
152162011-12-05 Kenichi Handa <handa@m17n.org>
15217
15218 * coding.c (encode_designation_at_bol): New args charbuf_end and
15219 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
15220 (coding_set_source): Return how many bytes coding->source was
15221 relocated.
15222 (coding_set_destination): Return how many bytes
15223 coding->destination was relocated.
15224 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 15225 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
15226
152272011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
15228
15229 * coding.c (CODING_CHAR_CHARSET_P): New macro.
15230 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
15231 macro (Bug#9318).
15232
152332011-12-05 Andreas Schwab <schwab@linux-m68k.org>
15234
15235 The following changes are to fix Bug#9318.
15236
a79703f5 15237 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
15238 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
15239 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 15240 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 15241
7dbda6df
JB
152422011-12-05 Juanma Barranquero <lekktu@gmail.com>
15243
15244 * lisp.h (process_quit_flag): Fix external declaration.
15245
6d5eb5b0
SM
152462011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
15247
15248 Don't macro-inline non-performance-critical code.
15249 * eval.c (process_quit_flag): New function.
15250 * lisp.h (QUIT): Use it.
15251
a0c3fad0
JD
152522011-12-04 Jan Djärv <jan.h.d@swipnet.se>
15253
15254 * nsfns.m (get_geometry_from_preferences): New function.
15255 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
15256
6c07aac2
AS
152572011-12-04 Andreas Schwab <schwab@linux-m68k.org>
15258
15259 * emacs.c (Qkill_emacs): Define.
15260 (syms_of_emacs): Initialize it.
15261 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
15262 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
15263 (quit_throw_to_read_char): Add parameter `from_signal'.
15264 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
15265 * lisp.h (QUIT): Call Fkill_emacs if requested.
15266
c052ead4
JD
152672011-12-03 Jan Djärv <jan.h.d@swipnet.se>
15268
15269 * widget.c (update_wm_hints): Return if wmshell is null.
15270 (widget_update_wm_size_hints): New function.
15271
15272 * widget.h (widget_update_wm_size_hints): Declare.
15273
15274 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
15275 widget_update_wm_size_hints (Bug#10104).
15276
9e49252b
EZ
152772011-12-03 Eli Zaretskii <eliz@gnu.org>
15278
15279 * xdisp.c (handle_invisible_prop): If the invisible text ends just
15280 before a newline, prepare the bidi iterator for consuming the
15281 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 15282 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 15283
02b16839
JL
152842011-12-02 Juri Linkov <juri@jurta.org>
15285
15286 * search.c (Fword_search_regexp): New Lisp function created from
15287 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
15288 (Fword_search_backward, Fword_search_forward)
15289 (Fword_search_backward_lax, Fword_search_forward_lax):
15290 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
15291 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
15292
0068070e
SM
152932011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
15294
15295 * fileio.c (Finsert_file_contents): Move after-change-function call
15296 to before the "handled:" label, since all "goto handled" appear in
15297 cases where the *-change-functions have already been properly called
15298 (bug#10117).
15299
3360a3fc
AS
153002011-12-01 Andreas Schwab <schwab@linux-m68k.org>
15301
15302 * keyboard.c (interrupt_signal): Don't call kill-emacs when
15303 waiting for input. (Bug#10169)
15304
73d6c093
EZ
153052011-11-30 Eli Zaretskii <eliz@gnu.org>
15306
15307 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
15308 verifies glyph row's hash code--we have just reallocated the
15309 glyphs, so their contents can be complete garbage. (Bug#10164)
15310
febe6bea
JB
153112011-11-30 Juanma Barranquero <lekktu@gmail.com>
15312
15313 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
15314
801a4313
EZ
153152011-11-30 Eli Zaretskii <eliz@gnu.org>
15316
15317 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
15318 attributes are tested _before_ calling verify_row_hash, to protect
15319 against GCC re-ordering of the tests. (Bug#10164)
15320
2b56b87e
JD
153212011-11-29 Jan Djärv <jan.h.d@swipnet.se>
15322
15323 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
15324
15325 * xterm.c (handle_one_xevent): Only set async_visible and friends
15326 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 15327 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
15328 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
15329
dbf31225
PE
153302011-11-28 Paul Eggert <eggert@cs.ucla.edu>
15331
15332 Remove GCPRO-related macros that exist only to avoid shadowing locals.
15333 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
15334 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
15335 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
15336 All uses changed to use GCPRO1 etc.
15337 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
15338 Revert to old implementation (i.e., before 2011-03-11).
15339
1305621b
YM
153402011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15341
15342 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
15343 of scroll runs so as to avoid assigning disabled bogus rows and
15344 unnecessary graphics copy operations.
15345
8c9afb46
EZ
153462011-11-27 Eli Zaretskii <eliz@gnu.org>
15347
15348 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
15349 (snprintf) [_MSC_VER]: Redirect to _snprintf.
15350 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
15351 (malloc, free, realloc, calloc): Redirect to e_* only when
15352 compiling Emacs.
15353
15354 * lisp.h (GCTYPEBITS): Move before first use.
15355 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
15356 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
15357 this macro definition.
15358
15359 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
15360 _MSC_VER.
15361
54e9e3bf
JD
153622011-11-27 Jan Djärv <jan.h.d@swipnet.se>
15363
6d5eb5b0
SM
15364 * gtkutil.c (xg_create_frame_widgets):
15365 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
15366 present with Gtk+ 2.0.
15367
83aca1cb
PE
153682011-11-26 Paul Eggert <eggert@cs.ucla.edu>
15369
15370 * fileio.c (Finsert_file_contents): Undo previous change; see
15371 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
15372
5b76caa4
PE
153732011-11-26 Paul Eggert <eggert@cs.ucla.edu>
15374
15375 Rename locals to avoid shadowing.
15376 * fileio.c (Finsert_file_contents):
15377 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
15378 * process.c (wait_reading_process_output):
15379 Rename inner 'proc' to 'p' to avoid shadowing.
15380 Indent for consistency with usual Emacs style.
15381
8c535114
EZ
153822011-11-25 Eli Zaretskii <eliz@gnu.org>
15383
15384 * xdisp.c (redisplay_window): If cursor row is not fully visible
15385 after recentering, and scroll-conservatively is set to a large
15386 number, scroll window by a few more lines to make the cursor fully
15387 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
15388 (start_display): Don't move to the next line if the display should
15389 start at a newline that is part of a display vector or an overlay
15390 string. (Bug#10119)
8c535114 15391
fa4fdb5c
JL
153922011-11-24 Juri Linkov <juri@jurta.org>
15393
15394 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
15395 after the `MagickPingImage' call. (Bug#10112)
15396
90ec88df
CY
153972011-11-23 Chong Yidong <cyd@gnu.org>
15398
15399 * window.c (Fcoordinates_in_window_p): Accept only live windows.
15400
56e2e794
MR
154012011-11-23 Martin Rudalics <rudalics@gmx.at>
15402
15403 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
15404 making another buffer current. (Bug#10114)
15405
b6e64c41
GM
154062011-11-23 Glenn Morris <rgm@gnu.org>
15407
15408 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
15409
6b21de18
CY
154102011-11-23 Chong Yidong <cyd@gnu.org>
15411
15412 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
15413 using it (Bug#5984).
15414
b12cd789
EZ
154152011-11-22 Eli Zaretskii <eliz@gnu.org>
15416
15417 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
15418 and header-lines, as they don't have one computed for them.
15419 (Bug#10098)
15420
15421 * .gdbinit (prow): Make displayed values more self-explaining.
15422 Add row's hash code.
15423
261b6fd4
LMI
154242011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
15425
15426 * process.c (wait_reading_process_output): Fix asynchrounous
15427 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 15428 (wait_reading_process_output): Add comment and URL.
261b6fd4 15429
e7cfd277
JD
154302011-11-21 Jan Djärv <jan.h.d@swipnet.se>
15431
15432 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
15433
a9b9b7f5
CY
154342011-11-21 Chong Yidong <cyd@gnu.org>
15435
15436 * window.c (Fnext_window, Fprevious_window): Doc fix.
15437
b0d15b4f
SM
154382011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
15439
15440 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
15441
fe7a3057
JB
154422011-11-20 Juanma Barranquero <lekktu@gmail.com>
15443
15444 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
15445
d2999b1a
MR
154462011-11-20 Martin Rudalics <rudalics@gmx.at>
15447
15448 * window.c (Fset_window_combination_limit): Rename argument
15449 STATUS to LIMIT.
15450 (Vwindow_combination_limit): Remove "status" from doc-string.
15451
d5ff9cd0
AS
154522011-11-20 Andreas Schwab <schwab@linux-m68k.org>
15453
15454 * m/ibms390.h: Remove.
15455 * m/ibms390x.h: Don't include "ibms390.h".
15456
a5bb9bd3
SM
154572011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
15458
15459 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
15460 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
15461
cd1181db
JB
154622011-11-20 Juanma Barranquero <lekktu@gmail.com>
15463
15464 * casetab.c (Fset_case_table):
15465 * charset.c (Fcharset_after): Fix typos.
15466
615a3b8d 154672011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 15468
17e845af
PE
15469 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
15470 Otherwise, valgrind does not work on some platforms.
15471 Problem reported by Andreas Schwab in
6a0bf43d
PE
15472 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
15473 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
15474 is set, removing the need for VIRT_ADDRESS_VARIES.
15475 (PURE_P): Use a more-efficient implementation that needs just one
15476 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
15477 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
15478 to 4 (xorl, subq, cmpq, setbe).
15479 * alloc.c (pure): Always extern now, since that's the
15480 VIRT_ADDR_VARIES behavior.
15481 (PURE_POINTER_P): Use a single comparison, not two, for
15482 consistency with the new puresize.h.
15483 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
15484 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
15485 Remove VIRT_ADDR_VARIES no longer needed.
15486
f8fe6f96
EZ
154872011-11-19 Eli Zaretskii <eliz@gnu.org>
15488
15489 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
15490 (erase_phys_cursor, update_window_cursor, show_mouse_face)
15491 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
15492 behave as if the cursor position were at the window margin.
15493
15494 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
15495 and the cursor position is out of bounds, behave as if the cursor
15496 position were at the window margin. (Bug#10075)
15497
df05a53c
CY
154982011-11-18 Chong Yidong <cyd@gnu.org>
15499
15500 * window.c (Fwindow_combination_limit): Make first argument
15501 non-optional, since it is meaningless for live windows like the
15502 selected window.
61ccba97 15503
2071918e
DA
155042011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
15505
15506 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
15507
b50a28de
SM
155082011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
15509
15510 * intervals.c: Fix grafting over the whole buffer (bug#10071).
15511 (graft_intervals_into_buffer): Simplify.
15512
015137db
EZ
155132011-11-18 Eli Zaretskii <eliz@gnu.org>
15514
15515 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
15516 hash values of the two rows.
15517 (copy_row_except_pointers): Preserve the used[] arrays and the
15518 hash values of the two rows. (Bug#10035)
68c95424 15519 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
15520
15521 * xdisp.c (row_hash): New function, body extracted from
15522 compute_line_metrics.
15523 (compute_line_metrics): Call row_hash, instead of computing the
15524 hash code inline.
15525
15526 * dispnew.c (verify_row_hash): Call row_hash for computing the
15527 hash code of a row, instead of duplicating code from xdisp.c.
15528
15529 * dispextern.h (row_hash): Add prototype.
15530
a2addb04
TH
155312011-11-18 Tassilo Horn <tassilo@member.fsf.org>
15532
15533 * frame.c (delete_frame): Don't delete the terminal when the last
15534 X frame is closed if emacs is built with GTK toolkit.
15535
df85d315
JB
155362011-11-17 Juanma Barranquero <lekktu@gmail.com>
15537
15538 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
15539
a0c2d0ae
MR
155402011-11-17 Martin Rudalics <rudalics@gmx.at>
15541
15542 * window.c (Vwindow_splits): Rename to
15543 Vwindow_combination_resize. Suggested by Juri Linkov.
15544 (Fsplit_window_internal): Use Vwindow_combination_resize instead
15545 of Vwindow_splits.
15546
58179cce
JB
155472011-11-16 Juanma Barranquero <lekktu@gmail.com>
15548
7877f373
JB
15549 * nsfns.m (Fns_font_name):
15550 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 15551
b6f67890
MR
155522011-11-16 Martin Rudalics <rudalics@gmx.at>
15553
15554 * window.h (window): Rename slot "nest" to "combination_limit".
15555 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
15556 (Fset_window_nest): Rename to Fset_window_combination_limit.
15557 (Vwindow_nest): Rename to Vwindow_combination_limit.
15558 (recombine_windows, make_parent_window, make_window)
15559 (Fsplit_window_internal, saved_window)
15560 (Fset_window_configuration, save_window_save): Rename all
15561 occurrences of window_nest to window_combination_limit.
15562
c7015153
JB
155632011-11-15 Juanma Barranquero <lekktu@gmail.com>
15564
15565 * image.c (imagemagick_load_image): Fix typo.
15566
322ad6ec
EZ
155672011-11-14 Eli Zaretskii <eliz@gnu.org>
15568
15569 * xdisp.c (display_line): Move the call to
15570 highlight_trailing_whitespace before the call to
15571 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
15572 faces of all the glyphs to compute ROW's hash value.
15573 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 15574
f067b8ec
JB
155752011-11-14 Juanma Barranquero <lekktu@gmail.com>
15576
15577 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
15578 just return (bug#10044).
15579
1e5b2111
EZ
155802011-11-12 Eli Zaretskii <eliz@gnu.org>
15581
7ef3cbd5
EZ
15582 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
15583 with user-defined heap size. Bump the default size of the temacs
15584 heap to 27MB, to avoid memory warning when running temacs.
15585 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
15586
1e5b2111
EZ
15587 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
15588 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
15589 (verify_row_hash) [XASSERTS]: New function.
15590 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
15591 that the hash value of glyph rows is correct.
1e5b2111 15592
89d61221
MR
155932011-11-12 Martin Rudalics <rudalics@gmx.at>
15594
15595 * window.h (window): Remove splits slot.
15596 * window.c (Fwindow_splits, Fset_window_splits): Remove.
15597 (Fdelete_other_windows_internal, make_parent_window)
15598 (make_window, Fsplit_window_internal, Fdelete_window_internal)
15599 (Fset_window_configuration, save_window_save): Don't deal with
15600 split status of windows.
15601 (saved_window): Remove splits slot.
15602 (Vwindow_splits): Rewrite doc-string.
15603
97f18cc8
JD
156042011-11-11 Jan Djärv <jan.h.d@swipnet.se>
15605
15606 * xfns.c (unwind_create_frame):
15607 * nsfns.m (unwind_create_frame):
15608 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
15609 Vframe_list (Bug#9999).
15610
22a648b4
DA
156112011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
15612
0b381c7e 15613 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 15614
659afede
KH
156152011-11-11 Kenichi Handa <handa@m17n.org>
15616
15617 * callproc.c (Fcall_process): Set the member dst_multibyte of
15618 process_coding.
15619
9ac0394b
KH
156202011-11-11 Johan Bockgård <bojohan@gnu.org>
15621
15622 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
15623 avoid a crash (bug#9496).
15624
2fbdc249
CY
156252011-11-09 Chong Yidong <cyd@gnu.org>
15626
15627 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
15628 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
15629
ac6b1f81
PE
156302011-11-08 Paul Eggert <eggert@cs.ucla.edu>
15631
15632 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
15633
09db192c
PE
156342011-11-08 Paul Eggert <eggert@cs.ucla.edu>
15635
15636 Avoid some portability problems by eschewing 'extern inline' functions.
15637 The trivial performance wins aren't worth the portability hassles; see
15638 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
15639 et seq.
15640 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
15641 (window_box_width, window_box_left, window_box_left_offset)
15642 (window_box_right, window_box_right_offset): Undo previous change,
15643 by removing the "extern"s.
15644 * intervals.c (adjust_intervals_for_insertion)
15645 (adjust_intervals_for_deletion): Undo previous change,
15646 making these static again.
15647 (offset_intervals, temp_set_point_both, temp_set_point)
15648 (copy_intervals_to_string): No longer inline.
15649 * xdisp.c (window_text_bottom_y, window_box_width)
15650 (window_box_height, window_box_left_offset)
15651 (window_box_right_offset, window_box_left, window_box_right)
15652 (window_box): No longer inline.
15653
105216ed
CY
156542011-11-08 Chong Yidong <cyd@gnu.org>
15655
15656 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
15657 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
15658 Signal an error if not a live window.
105216ed
CY
15659 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
15660 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
15661
ae9e237f
JB
156622011-11-07 Juanma Barranquero <lekktu@gmail.com>
15663
15664 * lisp.h (syms_of_abbrev): Remove declaration.
15665 Reported by CHENG Gao <chenggao@royau.me>.
15666
c7aa8333
EZ
156672011-11-07 Eli Zaretskii <eliz@gnu.org>
15668
15669 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
15670 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
15671 of temacs in GUI mode.
15672
be7f5545
MR
156732011-11-07 Martin Rudalics <rudalics@gmx.at>
15674
15675 * window.h: Declare delete_all_child_windows instead of
15676 delete_all_subwindows.
15677 * window.c (Fwindow_nest, Fset_window_nest)
15678 (Fset_window_new_total, Fset_window_new_normal)
15679 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
15680 (delete_all_subwindows): Rename to delete_all_child_windows.
15681 (Fdelete_other_windows_internal, Fset_window_configuration):
15682 Call delete_all_child_windows instead of delete_all_subwindows.
15683 * frame.c (delete_frame): Call delete_all_child_windows instead
15684 of delete_all_subwindows.
15685
ca78dc43
PE
156862011-11-07 Paul Eggert <eggert@cs.ucla.edu>
15687
15688 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
15689 This is also needed for porting to any host where GC_MARK_STACK is
15690 not GC_MAKE_GCPROS_NOOPS.
15691 (which_symbols): Use it.
15692
a0241d01
KH
156932011-11-07 Kenichi Handa <handa@m17n.org>
15694
15695 * coding.c (coding_set_destination): Check coding->src_pos only
15696 when coding->src_object is a buffer (bug#9910).
15697
15698 * process.c (send_process): Set the member src_multibyte of coding
15699 to 0 (bug#9911) when sending a unibyte text.
15700
15701 * callproc.c (Fcall_process): Set the member src_multibyte of
15702 process_coding to 0 (bug#9912).
15703
a64bfdfa 157042011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
15705
15706 * xmenu.c (cleanup_widget_value_tree): New function.
15707 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
15708 calling free_menubar_widget_value_tree directly (Bug#9830).
15709
cb41b32a
PE
157102011-11-06 Paul Eggert <eggert@cs.ucla.edu>
15711
15712 Fix some portability problems with 'inline'.
15713 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
15714 (window_box_width, window_box_left, window_box_left_offset)
15715 (window_box_right, window_box_right_offset): Declare extern.
15716 Otherwise, these inline functions do not conform to C99 and
15717 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
15718 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
15719 * intervals.c (adjust_intervals_for_insertion)
15720 (adjust_intervals_for_deletion): Now extern, because otherwise the
15721 extern inline functions 'offset_intervals' couldn't refer to it.
15722 (static_offset_intervals): Remove.
15723 (offset_intervals): Rewrite using the old contents of
15724 static_offset_intervals. The old version didn't conform to C99
15725 because an extern inline function contained a reference to an
15726 identifier with static linkage.
15727
b7041366
AS
157282011-11-06 Andreas Schwab <schwab@linux-m68k.org>
15729
15730 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
15731 GC.
15732
88a37c4d
EZ
157332011-11-06 Eli Zaretskii <eliz@gnu.org>
15734
15735 * xdisp.c (init_iterator, reseat_to_string): Don't set the
15736 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
15737 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
15738 return Qleft_to_right.
15739
49745b39
CY
157402011-11-06 Chong Yidong <cyd@gnu.org>
15741
15742 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
15743 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
15744 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
15745 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
15746 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
15747 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
15748 (Fwindow_vscroll): Doc fix.
15749 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
15750 argument, since it makes no sense to pass a live window and for
15751 consistency with window-child.
15752
1f05cd82
CS
157532011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
15754
15755 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
15756 support MSVC.
15757
22610910
JR
157582011-11-05 Jason Rumney <jasonr@gnu.org>
15759
15760 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
15761 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
15762 fonts (Bug#6029).
15763 (add_font_entity_to_list): Fix logic errors in mixed boolean and
15764 bitwise arithmetic preventing use of unicode-sip and non-truetype
15765 opentype fonts.
15766
a06776b2
EZ
157672011-11-05 Eli Zaretskii <eliz@gnu.org>
15768
3ad924ba
EZ
15769 * s/ms-w32.h (fstat, stat, utime): Move redirections to
15770 "emacs"-only part.
15771
a06776b2
EZ
15772 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
15773 initialization code to keep similarity to xfns.c after changes
15774 from 2011-11-05.
15775
c9e7db78
JD
157762011-11-05 Jan Djärv <jan.h.d@swipnet.se>
15777
a97f8f3f
JD
15778 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
15779 (unwind_create_frame): New function (Bug#9943).
15780 (Fx_create_frame): Restructure code to be more similar to the one in
15781 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
15782 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
15783 Move terminal->reference_count++ just before making the frame official
15784 (Bug#9943).
15785
15786 * nsterm.m (x_free_frame_resources): New function.
15787 (x_destroy_window): Move code to x_free_frame_resources.
15788
c9e7db78 15789 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
15790 (Fx_create_frame, x_create_tip_frame):
15791 Move terminal->reference_count++ just before making the frame
75f1671a 15792 official. Move initialization of image_cache_refcount and
c9e7db78
JD
15793 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
15794
a6fc3b5c
EZ
157952011-11-05 Eli Zaretskii <eliz@gnu.org>
15796
15797 Support MSVC build with newer versions of Visual Studio.
15798 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
15799 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
15800 nt/gmake.defs.
15801
15802 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
15803 which are not supported by MSVC.
15804 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
15805 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
15806 bitfields.
15807 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
15808 types in bitfields.
15809 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
15810
15811 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
15812
58179cce 158132011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
15814
15815 Support MSVC build with newer versions of Visual Studio.
15816 * w32.c: Don't include w32api.h for MSVC.
15817 (init_environment) [_MSC_VER]: Call sys_access, not _access.
15818
15819 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
15820 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
15821 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
15822 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
15823 e_* cousins.
15824 (alloca) [_MSC_VER]: Define to _alloca.
15825
15826 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
15827
15828 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
15829
a58c13ed
EZ
158302011-11-04 Eli Zaretskii <eliz@gnu.org>
15831
15832 * xdisp.c (note_mouse_highlight): If either of
15833 previous/next-single-property-change returns nil, treat that as
15834 the beginning or the end of the buffer. (Bug#9955)
15835
fe0b6370
JD
158362011-11-04 Jan Djärv <jan.h.d@swipnet.se>
15837
a58c13ed 15838 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
15839 label is not null (Bug#9951).
15840 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
15841 may be NULL.
15842
89bd5ee1
EZ
158432011-11-04 Eli Zaretskii <eliz@gnu.org>
15844
15845 * window.c (Fwindow_body_size): Mention in the doc string that the
15846 return value is in frame's canonical units. (Bug#9949)
15847
84c3edb9
EZ
158482011-11-03 Eli Zaretskii <eliz@gnu.org>
15849
4e2fb5c7
EZ
15850 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
15851
84c3edb9 15852 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 15853 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 15854 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 15855
bc17a887
EZ
158562011-11-01 Eli Zaretskii <eliz@gnu.org>
15857
15858 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
15859 Don't stop backward scan on the continuation glyph, even though
15860 its CHARPOS is positive.
6d5eb5b0
SM
15861 (mouse_face_from_buffer_pos, note_mouse_highlight):
15862 Rename cover_string to disp_string.
bc17a887 15863
4ee88440
MR
158642011-11-01 Martin Rudalics <rudalics@gmx.at>
15865
15866 * window.c (temp_output_buffer_show): Don't use
15867 Vtemp_buffer_show_specifiers.
15868 (Vtemp_buffer_show_specifiers): Remove unused variable.
15869
c2ff3c02
EZ
158702011-10-30 Eli Zaretskii <eliz@gnu.org>
15871
15872 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
15873 past the beginning of the current glyph matrix.
15874
58179cce 158752011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
15876
15877 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
15878 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
15879 HAVE_GTK3 (Bug#9869).
b77a6a7f 15880
3b574623
JD
15881 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
15882 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
15883
b77a6a7f
JD
15884 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
15885
15886 * xterm.c: Declare x_handle_net_wm_state to return int.
15887 (handle_one_xevent): Check if we are iconified but don't have
15888 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
15889 (get_current_wm_state): Return non-zero if not hidden,
15890 check for _NET_WM_STATE_HIDDEN (Bug#9893).
15891 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
15892 (x_handle_net_wm_state): Return what get_current_wm_state returns.
15893 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
15894
196e41e4
PE
158952011-10-29 Paul Eggert <eggert@cs.ucla.edu>
15896
15897 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
15898 so that this new function doesn't get optimized away by a
15899 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
15900
021f2e1a
AS
159012011-10-29 Andreas Schwab <schwab@linux-m68k.org>
15902
15903 * frame.h (MOUSE_HL_INFO): Remove excess parens.
15904
8b058d44
EZ
159052011-10-29 Eli Zaretskii <eliz@gnu.org>
15906
15907 Fix the `xbytecode' command.
15908 * .gdbinit (xprintbytestr): New command.
b50a28de 15909 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
15910 (xbytecode): Print the byte-code string as well.
15911
4452fb80
EZ
159122011-10-29 Kim Storm <storm@cua.dk>
15913
8b058d44
EZ
15914 * alloc.c (which_symbols): New function.
15915
21b72067
AS
159162011-10-29 Andreas Schwab <schwab@linux-m68k.org>
15917
15918 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
15919 line. (Bug#9903)
15920
83ed7b5c
GM
159212011-10-29 Glenn Morris <rgm@gnu.org>
15922
15923 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
15924 Not clear what it was for, and it causes various bugs. (Bug#9839)
15925
5a7a728b
EZ
159262011-10-28 Eli Zaretskii <eliz@gnu.org>
15927
15928 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
15929 possible random value that matches one of those tested as
15930 condition to clear the mouse face.
15931
d3d0842f
CY
159322011-10-28 Chong Yidong <cyd@gnu.org>
15933
15934 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
15935
31b39d13
DN
159362011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
15937
15938 * window.c (make_window): Initialize phys_cursor_on_p.
15939
9aba6043
SM
159402011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
15941
15942 * lisp.h (struct Lisp_Symbol): Update comments.
15943
c20992f4
JB
159442011-10-28 Juanma Barranquero <lekktu@gmail.com>
15945
15946 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
15947
db4f02f2
EZ
159482011-10-28 Eli Zaretskii <eliz@gnu.org>
15949
15950 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
15951 <oslsachem@gmail.com> for helping to debug this.
15952
15953 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
15954 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
15955 (g_b_init_get_glyph_outline_w): New static variables.
15956 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
15957 (GetGlyphOutlineW_Proc): New typedefs.
15958 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
15959 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
15960 New functions.
15961 (w32font_open_internal, compute_metrics):
15962 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
15963 instead of calling the "wide" APIs directly.
15964
15965 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
15966
15967 * w32.h (syms_of_w32font): Add prototype.
15968
87e68db4
JB
159692011-10-27 Juanma Barranquero <lekktu@gmail.com>
15970
15971 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
15972 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
15973 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
15974 (Fmove_to_window_line): Doc fix.
15975
435c1d67
CY
159762011-10-27 Chong Yidong <cyd@gnu.org>
15977
15978 * process.c (make_process): Set gnutls_state to NULL.
15979
15980 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
15981 non-NULL, regardless of GNUTLS_INITSTAGE.
15982 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
15983 an error. Set process slots as soon as we allocate them.
15984
15985 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
15986
9c6c6f49
CY
159872011-10-27 Chong Yidong <cyd@gnu.org>
15988
9aba6043
SM
15989 * gnutls.c (emacs_gnutls_deinit): New function.
15990 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
15991 (Fgnutls_deinit, Fgnutls_boot): Use it.
15992
15993 * process.c (make_process): Initialize GnuTLS credentials to NULL.
15994 (deactivate_process): Call emacs_gnutls_deinit.
15995
657d08d3
JB
159962011-10-27 Juanma Barranquero <lekktu@gmail.com>
15997
15998 * image.c (x_create_x_image_and_pixmap):
15999 * w32.c (sys_rename, w32_delayed_load):
16000 * w32font.c (fill_in_logfont):
16001 * w32reg.c (x_get_string_resource): Silence compiler warnings.
16002
5430d399
JB
160032011-10-26 Juanma Barranquero <lekktu@gmail.com>
16004
16005 * w32fns.c (w32_default_color_map): New function,
16006 extracted from Fw32_default_color_map.
a7ef684b 16007 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 16008
fe0055fa
PE
160092011-10-25 Paul Eggert <eggert@cs.ucla.edu>
16010
16011 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
16012
e6346438
SM
160132011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
16014
16015 * keyboard.c (test_undefined): New function (bug#9751).
16016 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
16017
e112cc37
ET
160182011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
16019
16020 * sysdep.c (init_sys_modes): Fix the check for the controlling
16021 terminal (Bug#6649).
16022
7b5d6677
EZ
160232011-10-20 Eli Zaretskii <eliz@gnu.org>
16024
16025 * dispextern.h (struct bidi_it): New member next_en_type.
16026
16027 * bidi.c (bidi_line_init): Initialize the next_en_type member.
16028 (bidi_resolve_explicit_1): When next_en_pos is valid for the
16029 current character, check also for next_en_type being WEAK_EN.
16030 (bidi_resolve_weak): Don't enter the expensive loop if the current
16031 position is before next_en_pos. Record the bidi type of the first
16032 non-ET, non-BN character we find, in addition to its position.
16033 (bidi_level_of_next_char): Invalidate next_en_type when
16034 next_en_pos is over-stepped.
16035
7da0b018
PE
160362011-10-20 Paul Eggert <eggert@cs.ucla.edu>
16037
16038 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
16039 * editfns.c: Rewrite current-time-zone so that it invokes
16040 the equivalent of (format-time-string "%Z") to get the time zone name.
16041 This fixes a bug when the time zone name contains characters that
16042 need converting from the system time locale to Emacs internal format.
16043 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
16044 that patch fixed format-time-string to do the conversion, but
16045 I forgot to fix current-time-zone.
16046 (format_time_string): New function, containing most of
16047 what Fformat_time_string used to contain.
16048 (Fformat_time_string): Rewrite in terms of format_time_string.
16049 This doesn't change this function's behavior.
16050 (current-time-zone): Rewrite to use format_time_string.
16051 This fixes the bug reported by Michael Schierl in
16052 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
16053 Jason Rumney's 2007-06-07 change worked around this bug, but
16054 didn't fix it.
16055 * systime.h (tzname, timezone): Remove no-longer-used declarations.
16056
8547b010
EZ
160572011-10-19 Eli Zaretskii <eliz@gnu.org>
16058
16059 * xdisp.c (start_display): If the character at POS is displayed
16060 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
16061 (try_window_reusing_current_matrix): If a line ends in a display
16062 vector or the next line starts in a display vector, continue
16063 redrawing the window even though the character position of
16064 start_row was reached.
8547b010
EZ
16065 (Bug#9771, part 2)
16066
4e948d15
CY
160672011-10-18 Chong Yidong <cyd@gnu.org>
16068
16069 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
16070 with nobreak-char-display too.
16071
4787455f
EZ
160722011-10-18 Eli Zaretskii <eliz@gnu.org>
16073
16074 Fix part 3 of bug#9771.
16075 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
16076 (bidi_resolve_neutral): Don't enter the expensive loop looking for
16077 non-neutral characters if the current character is a paragraph
16078 separator (a.k.a. Newline). This avoids running the same
16079 expensive loop twice, once when we consume the preceding newline
16080 and the other time when the line actually needs to be displayed.
16081 Avoid the loop when we see neutrals on the base embedding level
16082 following a character whose directionality is the same as the
16083 paragraph's. This avoids running the expensive loop when a line
16084 ends in a long sequence of neutrals, like control characters.
16085 Add assertion against STRONG_AL type. Slightly rearrange code
16086 that determines the type of a neutral given the first non-neutral
16087 that follows it.
16088 (bidi_level_of_next_char): Set next_en_pos to zero when
16089 invalidating its info.
16090
2c91f553
EZ
160912011-10-17 Eli Zaretskii <eliz@gnu.org>
16092
16093 * xdisp.c (push_display_prop): Determine whether to record string
16094 or buffer position by IT->string, not by IT->method. Allow
16095 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
16096 (move_it_vertically_backward): Don't look for character position
16097 immediately after the newline when in a continuation line.
16098 (Bug#9771, part 1)
2c91f553 16099
c7b08b0d
MR
161002011-10-15 Martin Rudalics <rudalics@gmx.at>
16101
16102 * window.c (coordinates_in_window): Rewrite and delabelize
16103 vertical border check. (Bug#5357) (Bug#9618)
16104
6b02f655
SM
161052011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
16106
16107 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
16108 errors in XSetWindowBorder (bug#9310).
16109
81d40c92
DA
161102011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
16111
16112 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
16113 avoid crash when xmalloc overrun checking is enabled.
16114
d4172c3b
EZ
161152011-10-13 Eli Zaretskii <eliz@gnu.org>
16116
16117 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
16118 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
16119 cursor motion with <left> and <right> arrow keys.
16120
16121 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
16122 some callers set that themselves.
16123
b00eea75
EZ
161242011-10-12 Eli Zaretskii <eliz@gnu.org>
16125
16126 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
16127 display string and the previous row comes from the same string and
16128 is empty. (Bug#9739) (Bug#9738)
16129
8fe012c4
SM
161302011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
16131
16132 * doc.c (get_doc_string): Encode file name (bug#9735).
16133
0074aef2
EZ
161342011-10-12 Eli Zaretskii <eliz@gnu.org>
16135
79beb178
EZ
16136 * bidi.c (bidi_level_of_next_char):
16137 * xdisp.c (get_visually_first_element): Remove old incorrect
16138 comments regarding the Unicode Line Separator character.
16139
0074aef2
EZ
16140 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
16141
6e4b3fbe
DA
161422011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
16143
16144 * alloc.c (Fgc_status): Do not access beyond zombies array
16145 boundary if nzombies > MAX_ZOMBIES.
16146 * alloc.c (dump_zombies): Add missing format specifier.
16147
0324f3af
PE
161482011-10-12 Paul Eggert <eggert@cs.ucla.edu>
16149
b5525cac
PE
16150 * xdisp.c (set_cursor_from_row): Simplify conditionals,
16151 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
16152
0324f3af
PE
16153 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
16154 Some packages use them to denote characters with modifiers.
16155
e9b5f888
AS
161562011-10-11 Andreas Schwab <schwab@linux-m68k.org>
16157
16158 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
16159 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
16160 matching a pp-number. Rename parameter var to var1.
16161
127827c0
SM
161622011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
16163
16164 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
16165
c8fd3bd0
GM
161662011-10-08 Glenn Morris <rgm@gnu.org>
16167
16168 * callint.c (Fcall_interactively): Give a more explicit error for the
16169 'c' case with a non-character input. (Bug#8479)
16170
352ec8ff
EZ
161712011-10-08 Eli Zaretskii <eliz@gnu.org>
16172
03669ccb
EZ
16173 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
16174 lines.
7061c986
EZ
16175 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
16176 lines that are hscrolled on the left.
03669ccb 16177
352ec8ff
EZ
16178 * dispnew.c (buffer_posn_from_coords): Account for a possible
16179 presence of header-line. (Bug#4426)
16180
a66cfb1c
SM
161812011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
16182
6b02f655
SM
16183 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
16184 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 16185
7c5ee88e
PE
161862011-10-07 Paul Eggert <eggert@cs.ucla.edu>
16187
16188 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
16189 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
16190 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
16191 this makes Emacs dump core during garbage collection on rare
16192 occasions. sizeof is obviously inferior to offsetof here, so
16193 stick with offsetof.
16194 (GC_POINTER_ALIGNMENT): New macro.
16195 (mark_memory): Omit 3rd (offset) arg; caller changed.
16196 Don't assume EMACS_INT alignment is the same as pointer alignment.
16197
df1bbe5b
SM
161982011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
16199
16200 * keyboard.c (read_key_sequence_remapped): New var.
16201 (read_key_sequence): Compute remapping in the right buffer.
16202 (command_loop_1): Use read_key_sequence's remapping directly.
16203
51553db6
SM
162042011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
16205
32c1fffd
SM
16206 * dired.c (file_name_completion): Don't expand file name.
16207 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
16208 before checking file name handler.
16209
51553db6
SM
16210 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
16211 they've been requested explicitly (bug#9591).
16212
b6bd1599 162132011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
16214
16215 * keymap.c (Fsingle_key_description): Use make_specified_string
16216 instead of build_string to build string from push_key_description.
16217 (Bug#5193)
16218
f701dc2a
PE
162192011-09-30 Paul Eggert <eggert@cs.ucla.edu>
16220
4222c55d
PE
16221 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
16222 This fixes a Y2038 bug on 64-bit hosts.
16223 * buffer.c (reset_buffer):
16224 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
16225 (Fclear_buffer_auto_save_failure):
16226 Use 0, not -1, to represent an unset failure time, since time_t
16227 might not be signed.
16228
f701dc2a
PE
16229 Remove dependency on glibc malloc internals.
16230 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16231 Move back here from lisp.h, but with their new implementations.
16232 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16233 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
16234 * charset.c (charset_table_init): New static var.
16235 (syms_of_charset): Use it instead of xmalloc. This removes a
16236 dependency on glibc malloc internals. See Eli Zaretskii's comment in
16237 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
16238 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16239 Move back to alloc.c.
16240 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16241 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
16242
9ceebf39
JD
162432011-09-30 Jan Djärv <jan.h.d@swipnet.se>
16244
16245 * nsterm.m (windowDidResize): Call x_set_window_size only when
16246 ns_in_resize is true. Otherwise set pixelwidth/height and
16247 call change_frame_size (Bug#9628).
16248
cb993c58
PE
162492011-09-30 Paul Eggert <eggert@cs.ucla.edu>
16250
3930c88b
PE
16251 Port --enable-checking=all to Fedora 14 x86-64.
16252 * charset.c (syms_of_charset): Also account for glibc malloc's
16253 internal overhead when calculating the initial malloc maximum.
16254
cb993c58
PE
16255 Port --enable-checking=all to Fedora 14 x86.
16256 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16257 Move to lisp.h.
16258 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
16259 (overrun_check_realloc, overrun_check_free):
16260 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
16261 That way, xmalloc returns a properly-aligned pointer even if
16262 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
16263 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
16264 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
16265 into account when calculating the initial malloc maximum.
16266 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16267 Move here from alloc.c, so that charset.c can use it too.
16268 Properly align; the old code wasn't right for common 32-bit hosts
16269 when configured with --enable-checking=all.
16270 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16271 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
16272
31bed486
EZ
162732011-09-29 Eli Zaretskii <eliz@gnu.org>
16274
04c70788 16275 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
16276 use EDOM.
16277
fbcaa2f3
EZ
162782011-09-28 Eli Zaretskii <eliz@gnu.org>
16279
16280 * xdisp.c (compute_display_string_end): If there's no display
16281 string at CHARPOS, return -1.
16282
16283 * bidi.c (bidi_fetch_char): When compute_display_string_end
16284 returns a negative value, treat the character as a normal
16285 character not covered by a display string. (Bug#9624)
16286
a239d4e9
JB
162872011-09-28 Juanma Barranquero <lekktu@gmail.com>
16288
16289 * lread.c (Fread_from_string): Fix typo in docstring.
16290
88652fd5
EZ
162912011-09-27 Eli Zaretskii <eliz@gnu.org>
16292
16293 * xdisp.c (handle_invisible_prop): If invisible text ends on a
16294 newline, reseat the iterator instead of bidi-iterating there one
16295 character at a time. (Bug#9610)
32c1fffd
SM
16296 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
16297 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 16298
ed497dd4
AS
162992011-09-27 Andreas Schwab <schwab@linux-m68k.org>
16300
16301 * lread.c (readevalloop): Use correct code for NBSP.
16302 (read1): Likewise. (Bug#9608)
16303
b2bf61aa
MA
163042011-09-25 Michael Albinus <michael.albinus@gmx.de>
16305
16306 * dbusbind.c (Fdbus_register_signal): When service is not
16307 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
16308
32bbb17c
GM
163092011-09-25 Glenn Morris <rgm@gnu.org>
16310
16311 * buffer.c (truncate-lines): Doc fix.
16312
94e0933e
CY
163132011-09-24 Chong Yidong <cyd@stupidchicken.com>
16314
16315 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
16316 (Fset_window_next_buffers): Doc fix.
16317
cddde921
GM
163182011-09-24 Glenn Morris <rgm@gnu.org>
16319
16320 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
16321
1260aef1
PE
163222011-09-24 Paul Eggert <eggert@cs.ucla.edu>
16323
25b4bfa0
PE
16324 Fix minor problems found by static checking.
16325 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
16326 * indent.c (Fvertical_motion): Fix == vs = typo.
16327
e3cbd34b
EZ
163282011-09-24 Eli Zaretskii <eliz@gnu.org>
16329
a66cfb1c
SM
16330 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
16331 Default value is now t. Doc fix.
6bf7006f 16332
e3cbd34b 16333 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 16334 logic when moving up, not only when moving down. Fix the
e3cbd34b 16335 confusing name and values of the it_overshoot_expected variable;
32c1fffd 16336 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
16337
16338 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
16339 CHARPOS is covered by a display string which includes newlines.
16340 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
16341 is covered by a display string with embedded newlines.
16342
a3de0cbd
MA
163432011-09-24 Michael Albinus <michael.albinus@gmx.de>
16344
16345 * dbusbind.c (Fdbus_register_signal): Add match rule to
16346 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
16347 (Fdbus_register_method, Vdbus_registered_objects_table):
16348 Fix docstring.
a3de0cbd 16349
b260039d
JM
163502011-09-24 Jim Meyering <meyering@redhat.com>
16351
32c1fffd 16352 do not ignore write error for any output size
b260039d
JM
16353 The previous change was incomplete.
16354 While it makes emacs --batch detect the vast majority of stdout
16355 write failures, errors were still ignored whenever the output size is
16356 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
16357 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
16358 && echo FAIL: ignored write error
16359 FAIL: ignored write error
16360 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
16361 && echo FAIL: ignored write error
16362 FAIL: ignored write error
16363 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
16364
8eca8a7c
AS
163652011-09-23 Andreas Schwab <schwab@linux-m68k.org>
16366
16367 * emacs.c (Fkill_emacs): In noninteractive mode exit
16368 non-successfully if a write error occurred on stdout. (Bug#9574)
16369
3341db62
EZ
163702011-09-21 Eli Zaretskii <eliz@gnu.org>
16371
16372 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
16373 the xassert test.
16374
16375 * dispextern.h (struct it): Update the comment documenting what
16376 can it->OBJECT be.
16377
8c203dbf
EZ
163782011-09-20 Eli Zaretskii <eliz@gnu.org>
16379
16380 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
16381 a display string, extend search for cursor position to end of row.
16382 (find_row_edges): If the row ends in a newline from a display
16383 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
16384 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
16385 (Fcurrent_bidi_paragraph_direction): Fix search for previous
16386 non-empty line. Fixes confusing cursor motion with arrow keys at
16387 the beginning of a line that starts with whitespace.
8c203dbf 16388
a4824228
LMI
163892011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
16390
16391 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
16392 (bug#9493).
16393
33ed493b
CY
163942011-09-18 Chong Yidong <cyd@stupidchicken.com>
16395
16396 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
16397 boolean (Bug#9154).
16398
56cd55c8
EZ
163992011-09-18 Eli Zaretskii <eliz@gnu.org>
16400
16401 * xdisp.c (display_line): Record maximum and minimum buffer
16402 positions even if no glyphs were produced (e.g., by a zero-width
16403 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
16404 buffer positions that will be removed from the glyph row because
16405 they don't fit.
c02dcedf
EZ
16406 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
16407 column is beyond frame width: don't subtract 1 "pixel" when
16408 computing width of the stretch.
3e62b7e0
EZ
16409 (reseat_at_next_visible_line_start): Undo the change made on
16410 2011-09-17 that saved paragraph information and restored it after
16411 the call to `reseat'. (Bug#9545)
56cd55c8 16412
5ed99d36 164132011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
16414
16415 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
16416 and turn window cursor on if cleared (Bug#9415).
16417
5ed99d36 164182011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
16419
16420 * search.c (boyer_moore): Take unibyte characters from pattern
16421 literally. (Bug#9458)
16422
9bade7b2
EZ
164232011-09-18 Eli Zaretskii <eliz@gnu.org>
16424
16425 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
16426
e5e9d610
PE
164272011-09-18 Paul Eggert <eggert@cs.ucla.edu>
16428
87e4427a
PE
16429 Fix minor problem found by static checking.
16430 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
16431 initialized, to pacify gcc -Wuninitialized.
16432
e5e9d610
PE
16433 * fileio.c: Report proper errno when syscall falls.
16434 (Finsert_file_contents): Save and restore errno,
16435 so that report_file_error outputs the correct diagnostic.
16436 (Fwrite_region) [CLASH_DETECTION]: Likewise.
16437
a1674f0b
EZ
164382011-09-18 Eli Zaretskii <eliz@gnu.org>
16439
16440 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
16441
fbfb6dd4
EZ
164422011-09-17 Eli Zaretskii <eliz@gnu.org>
16443
16444 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
16445 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
16446
bb187662
EZ
164472011-09-17 Eli Zaretskii <eliz@gnu.org>
16448
1137e8b8 16449 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 16450 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
16451
16452 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
16453 (bidi_find_paragraph_start): Search back for paragraph beginning
16454 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
16455 (bidi_move_to_visually_next): Only trigger paragraph-related
16456 computations when the last character is a newline or at EOB, not
16457 just any NEUTRAL_B. (Bug#9470)
16458
bb187662
EZ
16459 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
16460 truncated lines if point is covered by a display string. (Bug#9524)
16461
2e621251
PE
164622011-09-16 Paul Eggert <eggert@cs.ucla.edu>
16463
16464 * xselect.c: Relax test for outgoing X longs (Bug#9498).
16465 (cons_to_x_long): New function.
16466 (lisp_data_to_selection_data): Use it. Correct the test for
16467 short-versus-long data; it was negated. Break out of vector
16468 loop, for efficiency, when a long datum is discovered.
16469
91a15bc6
SM
164702011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
16471
16472 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
16473
b41c3a35
EZ
164742011-09-16 Eli Zaretskii <eliz@gnu.org>
16475
16476 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
16477 GCC PR/17406) by declaring this function with external scope.
16478
7812ba2d
PE
164792011-09-15 Paul Eggert <eggert@cs.ucla.edu>
16480
16481 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
16482 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
16483
cf7edc2a
AS
164842011-09-15 Andreas Schwab <schwab@linux-m68k.org>
16485
16486 * editfns.c (Fformat): Correctly handle text properties on "%%".
16487
bd01620e
EZ
164882011-09-15 Eli Zaretskii <eliz@gnu.org>
16489
16490 * xterm.c (x_draw_composite_glyph_string_foreground):
16491 * w32term.c (x_draw_composite_glyph_string_foreground):
16492 * term.c (encode_terminal_code):
16493 * composite.c (composition_update_it, get_composition_id):
16494 * xdisp.c (get_next_display_element)
16495 (fill_composite_glyph_string): Add comments about special meaning
16496 of TAB characters in a composition.
16497
a02719a3
PE
164982011-09-15 Paul Eggert <eggert@cs.ucla.edu>
16499
16500 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
16501 This occurs when processing a multibyte format.
16502 Problem reported by Wolfgang Jenker.
a02719a3 16503
72589a3c
JB
165042011-09-15 Johan Bockgård <bojohan@gnu.org>
16505
16506 * xdisp.c (try_cursor_movement): Only check for exact match if
16507 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
16508
1c14176c
PE
165092011-09-14 Paul Eggert <eggert@cs.ucla.edu>
16510
16511 Remove unused external symbols.
16512 * dispextern.h (calc_pixel_width_or_height): Remove decl.
16513 * xdisp.c (calc_pixel_width_or_height): Now static.
16514 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
16515 * indent.c (check_display_width):
16516 * w32term.c: Fix comment to match code.
16517 * xterm.c, xterm.h (x_catching_errors): Remove.
16518
d2eea5b5
PE
165192011-09-14 Paul Eggert <eggert@cs.ucla.edu>
16520
16521 * xselect.c: Use signed conversions more consistently (Bug#9498).
16522 (selection_data_to_lisp_data): Assume incoming selection data are
16523 signed integers, not unsigned. This is to be consistent with
16524 outgoing selection data, which was modified to use signed integers
16525 in as part of the fix to Bug#9196 in response to Jan D.'s comment
16526 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
16527 expects long, not unsigned long.
16528
46888499
EZ
165292011-09-14 Eli Zaretskii <eliz@gnu.org>
16530
16531 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
16532 computation of loop end. Reported by Johan Bockgård
16533 <bojohan@gnu.org>.
16534
ef8ef9fb
CY
165352011-09-13 Chong Yidong <cyd@stupidchicken.com>
16536
16537 * frame.c (Fother_visible_frames_p): Function deleted.
16538
fa819fed
EZ
165392011-09-12 Eli Zaretskii <eliz@gnu.org>
16540
16541 * indent.c (compute_motion): Process display vector front to back
16542 rather than the other way around. (Bug#2496)
16543
2ba8e008
SM
165442011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
16545
16546 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
16547
20f53c69
CY
165482011-09-11 Chong Yidong <cyd@stupidchicken.com>
16549
16550 * minibuf.c (Fread_from_minibuffer): Doc fix.
16551
d562d7a4
EZ
165522011-09-11 Eli Zaretskii <eliz@gnu.org>
16553
16554 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
16555 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
16556
1c4d7f3d
LMI
165572011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
16558
16559 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
16560 value for non-existent files.
16561
b885bf36
EZ
165622011-09-11 Eli Zaretskii <eliz@gnu.org>
16563
16564 * fileio.c (Finsert_file_contents): If the file cannot be opened,
16565 set its "size" to -1. This will set the modtime_size field of
16566 the corresponding buffer to -1, which is what
16567 verify-visited-file-modtime expects for files that do not exist.
16568 (Bug#9139)
16569
6612f0bf
PE
165702011-09-11 Paul Eggert <eggert@cs.ucla.edu>
16571
16572 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
16573 here ...
16574 * lisp.h: ... from here. push_key_description is no longer
16575 defined in keyboard.c, so its declaration should not be in
16576 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
16577 logically belongs with push_key_description.
16578
dfb3f755
PE
165792011-09-10 Paul Eggert <eggert@cs.ucla.edu>
16580
16581 * buffer.h: Include <sys/types.h> instead of <time.h>.
16582 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
16583 Problem reported by Herbert J. Skuhra.
16584
3134906c
LMI
165852011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
16586
16587 * xml.c (parse_region): Make the parsing work for
16588 non-comment-starting XML files again (bug#9144).
16589
8d903f4e
AS
165902011-09-10 Andreas Schwab <schwab@linux-m68k.org>
16591
16592 * image.c (gif_load): Fix calculation of bottom and right corner.
16593 (Bug#9468)
16594
80ad64f4
EZ
165952011-09-10 Eli Zaretskii <eliz@gnu.org>
16596
16597 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
16598 redisplay in small windows.
16599
208a048d
EZ
166002011-09-09 Eli Zaretskii <eliz@gnu.org>
16601
16602 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
16603
9b1c252e
MR
166042011-09-08 Martin Rudalics <rudalics@gmx.at>
16605
16606 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
16607 Operate on live windows only.
16608
2949f33b
JB
166092011-09-08 Juanma Barranquero <lekktu@gmail.com>
16610
16611 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
16612
e08dcafd
EZ
166132011-09-07 Eli Zaretskii <eliz@gnu.org>
16614
16615 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
16616 only under bidi iteration.
16617
115b96bd
JD
166182011-09-07 Jan Djärv <jan.h.d@swipnet.se>
16619
16620 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
16621
c8199d0f
PE
166222011-09-06 Paul Eggert <eggert@cs.ucla.edu>
16623
16624 isnan: Fix porting problem to Solaris 10 with bundled gcc.
16625 Without this fix, the command to link temacs failed due to an
16626 undefined symbol __builtin_isnan. This is because
16627 /usr/include/iso/math_c99.h #defines isnan(x) to
16628 __builtin_isnan(x), but the bundled gcc, which identifies itself
16629 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
16630 a __builtin_isnan.
16631 * floatfns.c (isnan): #undef, and then #define to a clone of
16632 what's in data.c.
16633 (Fisnan): Always define, since it's always available now.
16634 (syms_of_floatfns): Always define isnan at the Lisp level.
16635
e39b275c 166362011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
16637
16638 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
16639
b2db44d9 166402011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 16641
f4af5137 16642 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
16643 The previous code assumed that file offsets (off_t values) fit in
16644 EMACS_INT variables, which is not true on typical 32-bit hosts.
16645 The code messed up by falsely reporting buffer overflow in cases
16646 such as (insert-file-contents "big" nil 1 2) into an empty buffer
16647 when "big" contains more than 2**29 bytes, even though this
16648 inserts just one byte and does not overflow the buffer.
16649 (Finsert_file_contents): Store file offsets as off_t
16650 values, not as EMACS_INT values. Check for overflow when
16651 converting between EMACS_INT and off_t. When checking for
16652 buffer overflow or for overlap, take the offsets into account.
16653 Don't use EMACS_INT for small values where int suffices.
16654 When checking for overlap, fix a typo: ZV was used where
16655 ZV_BYTE was intended.
16656 (Fwrite_region): Don't assume off_t fits into 'long'.
16657 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
16658
ecfc0a49
MA
166592011-09-05 Michael Albinus <michael.albinus@gmx.de>
16660
16661 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
16662
6511acf2 166632011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 16664
0999621a 16665 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
16666
16667 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 16668 (esprintf, exprintf, evxprintf): New functions.
62f19c19 16669 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 16670 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
16671 (modify_event_symbol): Do not assume that the length of
16672 name_alist_or_stem is safe to alloca and fits in int.
16673 (Fexecute_extended_command): Likewise for function name and binding.
16674 (Frecursion_depth): Wrap around reliably on integer overflow.
16675 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
16676 since some callers pass EMACS_INT values.
16677 (Fsingle_key_description): Don't crash if symbol name contains more
16678 than MAX_ALLOCA bytes.
16679 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
16680 (get_minibuffer): Arg is now EMACS_INT, not int.
16681 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 16682 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
16683 * window.h (command_loop_level, minibuf_level): Reflect API changes.
16684
2be7d702
PE
16685 * dbusbind.c (signature_cat): New function.
16686 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
16687 Do not overrun buffer; instead, report string overflow.
16688
9d1df220
PE
16689 * dispnew.c (add_window_display_history): Don't overrun buffer.
16690 Truncate instead; this is OK since it's just a log.
16691
33ef5c64
PE
16692 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
16693 even if the time zone offset is outlandishly large.
16694 Don't mishandle offset == INT_MIN.
16695
66c6fdd5
PE
16696 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
16697 when creating daemon; the previous buffer-overflow check was incorrect.
16698
d749b01b
PE
16699 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
16700 which has the guts of the old verror function.
16701
b5cd1905
PE
16702 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
16703 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
16704
6e1a67fb
PE
16705 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
16706 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 16707 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 16708 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
16709 length of string rather than counting it via multiple sprintfs;
16710 that's simpler and more reliable.
c21721cc
PE
16711 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
16712 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
16713 sprintf, in case result does not fit in int.
16714
c57b67fc
PE
16715 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
16716 (fontset_from_font): Print it.
16717
8a401434
PE
16718 * frame.c (tty_frame_count): Now printmax_t, not int.
16719 (make_terminal_frame, set_term_frame_name): Print it.
16720 (x_report_frame_params): In X, window IDs are unsigned long,
16721 not signed long, so print them as unsigned.
16722 (validate_x_resource_name): Check for implausibly long names,
16723 and don't assume name length fits in 'int'.
16724 (x_get_resource_string): Don't blindly alloca invocation name;
16725 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
16726 not fit in int.
16727
6e1a67fb
PE
16728 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
16729 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
16730 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
16731
0df02bf3
PE
16732 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
16733 Use esprintf, not sprintf, in case result does not fit in int.
16734
48e30793
PE
16735 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
16736 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
16737 it as a large positive number.
16738 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
16739 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
16740
a66ff6d8
PE
16741 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
16742 in case result does not fit in int.
16743
aca216ff
PE
16744 * print.c (float_to_string): Detect width overflow more reliably.
16745 (print_object): Make sprintf buffer a bit bigger, to avoid potential
16746 buffer overrun. Don't assume list length fits in 'int'. Treat
16747 print length of 0 as 0, not as infinity; to be consistent with other
16748 uses of print length in this function. Don't overflow print length
16749 index. Don't assume hash table size fits in 'long', or that
16750 vectorlike size fits in 'unsigned long'.
16751
31c286f7
PE
16752 * process.c (make_process): Use printmax_t, not int, to format
16753 process-name gensyms.
16754
55e5faa1
PE
16755 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
16756
80f2e268
PE
16757 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
16758 to avoid potential buffer overrun.
16759
670741ab
PE
16760 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
16761 if X resource line is longer than 512 bytes.
16762
b7163a50
PE
16763 * xfns.c (x_window): Make sprintf buffer a bit bigger
16764 to avoid potential buffer overrun.
16765
ae58ff1f
PE
16766 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
16767
c43c8a6a
PE
16768 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
16769
3f8236f4
PE
167702011-09-04 Paul Eggert <eggert@cs.ucla.edu>
16771
53e9fe90 16772 Integer overflow fixes for scrolling, etc.
6511acf2
PE
16773 Without these, Emacs silently mishandles large integers sometimes.
16774 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
16775 it were "C-u 1 M-x recenter" on a typical 64-bit host.
16776
6511acf2
PE
16777 * xdisp.c (try_window_id): Check Emacs fixnum range before
16778 converting to 'int'.
806add1d 16779
6511acf2 16780 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
16781 Check that an Emacs fixnum is in range before assigning it to 'int'.
16782 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
16783 values converted from Emacs fixnums.
16784 (Frecenter): Don't wrap around a line count if it is out of 'int'
16785 range; instead, treat it as an extreme value.
16786 (Fset_window_configuration, compare_window_configurations):
16787 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
16788
6511acf2
PE
16789 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
16790 that can exceed INT_MAX. Check that EMACS_INT value is in range
16791 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
16792 (match_limit): Don't assume that a fixnum can fit in 'int'.
16793
6511acf2 16794 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
16795 exceed INT_MAX.
16796
6511acf2 16797 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
16798 (Fvertical_motion): Don't wrap around LINES values that don't fit
16799 in 'int'. Instead, treat them as extreme values. This is good
16800 enough for windows, which can't have more than INT_MAX lines anyway.
16801
fcb901a7
LMI
168022011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
16803
0f2f6b6d
LMI
16804 * Require libxml/parser.h to avoid compilation warning.
16805
fcb901a7
LMI
16806 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
16807
16808 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
16809 since this reportedly can destroy thread storage.
16810
6e20a0d4
CY
168112011-08-30 Chong Yidong <cyd@stupidchicken.com>
16812
16813 * syntax.c (find_defun_start): Update all cache variables if
16814 exiting early (Bug#9401).
16815
148ae00e
EZ
168162011-08-30 Eli Zaretskii <eliz@gnu.org>
16817
f6cfbd8f
EZ
16818 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
16819
148ae00e
EZ
16820 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
16821 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
16822 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
16823
16824 * term.c (tty_append_glyph): New function.
16825 (produce_stretch_glyph): Static function and its prototype deleted.
16826
a66cfb1c
SM
16827 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
16828 Add prototypes.
148ae00e 16829
c4a07a4c
PE
168302011-08-29 Paul Eggert <eggert@cs.ucla.edu>
16831
16832 * image.c (parse_image_spec): Check for nonnegative, not for positive,
16833 when checking :margin (Bug#9390).
16834 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 16835 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
16836 so that the name doesn't mislead. All uses changed.
16837
6bc8cd65
JB
168382011-08-28 Johan Bockgård <bojohan@gnu.org>
16839
16840 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
16841 set_tty_hooks.
16842
dca4927e
EZ
168432011-08-27 Eli Zaretskii <eliz@gnu.org>
16844
16845 * xdisp.c (move_it_to): Don't bail out early when reaching
16846 position beyond to_charpos, if we are scanning backwards.
16847 (move_it_vertically_backward): When DY == 0, make sure we get to
16848 the first character in the line after the newline.
16849
f2cad773
PE
168502011-08-27 Paul Eggert <eggert@cs.ucla.edu>
16851
16852 * ccl.c: Improve and simplify overflow checking (Bug#9196).
16853 (ccl_driver): Do not generate an out-of-range pointer.
16854 (Fccl_execute_on_string): Remove unnecessary check for
16855 integer overflow, noted by Stefan Monnier in
16856 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
16857 Remove a FIXME that didn't need fixing.
16858 Simplify the newly-introduced buffer reallocation code.
16859
0cae2cdb
JB
168602011-08-27 Juanma Barranquero <lekktu@gmail.com>
16861
16862 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
16863
5fc295a4 168642011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 16865
70c60eb2 16866 Integer and memory overflow issues (Bug#9196).
726e0ab1 16867
d31850da
PE
16868 * doc.c (get_doc_string): Rework so that
16869 get_doc_string_buffer_size is the actual buffer size, rather than
16870 being 1 less than the actual buffer size; this makes xpalloc more
16871 convenient.
16872
a69fbedb
PE
16873 * image.c (x_allocate_bitmap_record, cache_image):
16874 * xselect.c (Fx_register_dnd_atom):
16875 Simplify previous changes by using xpalloc.
16876
fe5c5d37
PE
16877 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
16878 since either will do and ptrdiff_t is convenient with xpalloc.
16879
0065d054
PE
16880 * charset.c (charset_table_size)
16881 (struct charset_sort_data.priority): Now ptrdiff_t.
16882 (charset_compare): Don't overflow if priorities differ greatly.
16883 (Fsort_charsets): Don't assume list length fits in int.
16884 Check for size-calculation overflow when allocating sort data.
16885 (syms_of_charset): Allocate an initial charset table that is
16886 just under 64 KiB, to avoid problems with glibc malloc and mmap.
16887
16888 * cmds.c (internal_self_insert): Check for size-calculation overflow.
16889
16890 * composite.h (struct composition.glyph_len): Now int, not unsigned.
16891 The actual value is always <= INT_MAX, and leaving it unsigned made
16892 overflow checking harder.
16893
16894 * dispextern.h (struct glyph_matrix.rows_allocated)
16895 (struct face_cache.size): Now ptrdiff_t, for convenience in use
16896 with xpalloc. The values are still always <= INT_MAX.
16897
16898 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
16899
16900 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
16901 (SAFE_NALLOCA): New macro.
16902
16903 * region-cache.c (struct boundary.pos, find_cache_boundary)
16904 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
16905 (set_cache_region, invalidate_region_cache)
16906 (revalidate_region_cache, know_region_cache, region_cache_forward)
16907 (region_cache_backward, pp_cache):
16908 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
16909 so that ptrdiff_t * can be passed to xpalloc.
16910 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
16911 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
16912 (pp_cache): Don't assume cache_len fits in int.
16913 * region-cache.h: Adjust extern decls to match.
16914
16915 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
16916 EMACS_INT, since either will do, for xpalloc.
16917
16918 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
16919 (xnmalloc, xnrealloc, xpalloc): New functions.
16920
726e0ab1
PE
16921 * bidi.c (bidi_shelve_header_size): New constant.
16922 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
16923 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
16924
51f30bc5 16925 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
16926 * buffer.c (overlays_at, overlays_in, record_overlay_string)
16927 (overlay_strings):
16928 Don't update size of array until after memory allocation succeeds,
16929 because xmalloc/xrealloc may not return.
0065d054
PE
16930 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
16931 now that we have proper integer overflow checking.
16932 (record_overlay_string, overlay_strings): Catch overflows when
16933 calculating size of overlay_str_buf.
726e0ab1 16934
0065d054
PE
16935 * callproc.c (Fcall_process): Check for size overflow when
16936 calculating size of args2.
16937 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
16938 Normally we prefer signed values, but sticking with ptrdiff_t would
16939 require adding more-complicated checks.
726e0ab1
PE
16940
16941 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
16942 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
16943 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 16944 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
16945
16946 * character.c (Fstring): Check for size-calculation overflow.
16947
16948 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
16949 unnecessary integer overflow. Check for size overflow.
16950 (encode_coding_object): Don't update size until xmalloc succeeds.
16951
16952 * composite.c (get_composition_id): Check for overflow in glyph
16953 length calculations.
16954
16955 Integer and memory overflow fixes for display code.
16956 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
16957 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
16958 (scrolling_window): Check for overflow in size calculations.
16959 (line_draw_cost, realloc_glyph_pool, add_row_entry):
16960 Don't assume glyph table len fits in int.
16961 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
16962 (row_table_size): Now ptrdiff_t, not int.
16963 (scrolling_window): Avoid overflow in size calculations.
16964 Don't update size until allocation succeeds.
16965 * fns.c (concat): Check for overflow in size calculations.
16966 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
16967 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
16968 (NEXT_ALMOST_PRIME_LIMIT): New constant.
16969
16970 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
16971 (get_doc_string): Check for size calculation overflow.
16972 Don't update size until allocation succeeds.
16973 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
16974 EMACS_INT, where ptrdiff_t will do.
16975 (Fsubstitute_command_keys): Check for string overflow.
16976
16977 * editfns.c (set_time_zone_rule): Don't assume environment length
16978 fits in int.
16979 (message_length): Now ptrdiff_t, not int.
16980 (Fmessage_box): Don't update size until allocation succeeds.
16981 Don't assume message length fits in int.
16982 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
16983
0065d054
PE
16984 * emacs.c (main): Do not reallocate argv, since there is a null at
16985 the end that can be overwritten, and this way there's no need to
16986 worry about size-calculation overflow.
16987 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
16988
16989 * eval.c (init_eval_once, grow_specpdl): Don't update size until
16990 alloc succeeds.
16991 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
16992
16993 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
16994 (x_set_scroll_bar_width, x_figure_window_size):
16995 Check for integer overflow.
16996 (x_set_alpha): Do not assume XINT fits in int.
16997
16998 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
16999 This is for the members text_lines, text_cols, total_lines, total_cols,
17000 where the system imposes an 'int' limit.
17001
17002 * fringe.c (Fdefine_fringe_bitmap):
17003 Don't update size until alloc works.
17004
17005 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
17006 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
17007
17008 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
17009 Check for size-calculation overflow.
17010 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
17011 do, as we prefer signed integers.
17012 (id_to_widget.max_size, id_to_widget.used)
17013 (xg_store_widget_in_map, xg_remove_widget_from_map)
17014 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
17015 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
17016 Use and return ptrdiff_t, not int.
17017 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
17018 * gtkutil.h: Change prototypes to match the above.
17019
17020 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
17021 are duplicate now that they've been promoted to lisp.h.
17022 (x_allocate_bitmap_record, x_alloc_image_color)
17023 (make_image_cache, cache_image, xpm_load):
17024 Don't update size until alloc is done.
17025 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
17026 (x_detect_edges):
3256efce 17027 Check for size calculation overflow.
726e0ab1
PE
17028 (ct_colors_allocated_max): New constant.
17029 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
17030 overflow.
3256efce 17031
726e0ab1
PE
17032 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
17033 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
17034 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
17035 Use ptrdiff_t, not int, to count maps.
17036 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
17037 calculations. Don't update size until allocation succeeds.
17038 Redo calculations to avoid overflow.
726e0ab1
PE
17039 * keyboard.h: Change prototypes to match the above.
17040
17041 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
17042 to count maps.
17043 (current_minor_maps): Check for size calculation overflow.
17044 * keymap.h: Change prototypes to match the above.
17045
17046 * lread.c (read1, init_obarray): Don't update size until alloc done.
17047
17048 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
17049 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
17050
726e0ab1
PE
17051 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
17052 Now ptrdiff_t, not int.
17053 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
17054 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
17055
17056 * process.c (Fnetwork_interface_list): Check for overflow
17057 in size calculation.
17058
17059 * region-cache.c (move_cache_gap): Check for size calculation overflow.
17060
17061 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
17062 overflow. Don't bother calling xmalloc when xrealloc will do.
17063
17064 * search.c (Freplace_match): Check for size calculation overflow.
17065 (Fset_match_data): Don't assume list lengths fit in 'int'.
17066
17067 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
17068 for command line length. Do not attempt to address one before the
17069 beginning of an array, as that's not portable.
17070
17071 * term.c (max_frame_lines): Remove; unused.
17072 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
17073 not int.
17074 (encode_terminal_code, calculate_costs): Check for size
17075 calculation overflow.
17076 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
17077 table lengths and related sizes. Don't update size until alloc
17078 done. Redo calculations to avoid overflow.
17079 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
17080
17081 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
17082 subtracting pointers.
17083 (gobble_line): Check for overflow more carefully. Don't update size
17084 until alloc done.
17085
17086 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
17087 Don't update size until alloc done.
17088 Redo size calculations to avoid overflow.
17089 Check for size calculation overflow.
0065d054 17090 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
17091
17092 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
17093 Use ptrdiff_t, not int, for sizes.
17094 (store_mode_line_noprop_char): Don't update size until alloc done.
17095
0065d054
PE
17096 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
17097 Use ptrdiff_t, not int, for sizes.
17098 (Finternal_make_lisp_face, cache_face):
17099 Check for size calculation overflow.
17100 (cache_face): Treat size calculation overflows as if they were
17101 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
17102
17103 * xfns.c (x_encode_text, x_set_name_internal)
17104 (Fx_change_window_property): Use ptrdiff_t, not int, to count
17105 sizes, since they can exceed INT_MAX in size. Check for size
17106 calculation overflow.
17107
0065d054
PE
17108 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
17109 (xg_select): Check for size calculation overflow.
726e0ab1
PE
17110 Don't update size until alloc done.
17111
0065d054 17112 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 17113 as sprintf is limited to int lengths.
1d526e2f 17114
252c5ee1
PE
17115 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
17116 (X_LONG_MIN): New macros.
864d7ce7
PE
17117 Use them to make the following changes clearer.
17118 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
17119 This change doesn't affect the value now, but it may help remind
17120 future maintainers not to raise the value too much later.
17121 (SELECTION_QUANTUM): Remove, replacing with ...
17122 (selection_quantum): ... new function, which avoids overflow.
17123 All uses changed.
17124 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
17125 assumption that selection length fits in 'int'.
17126 (x_reply_selection_request, x_handle_selection_request)
17127 (x_get_window_property, receive_incremental_selection)
17128 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
17129 (lisp_data_to_selection_data, clean_local_selection_data):
17130 Use ptrdiff_t, not int, to record length of selection.
17131 (x_reply_selection_request, x_get_window_property)
17132 (receive_incremental_selection, x_property_data_to_lisp):
17133 Redo calculations to avoid overflow.
17134 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 17135 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
17136 something.
17137 (x_get_window_property, receive_incremental_selection)
17138 (lisp_data_to_selection_data, x_property_data_to_lisp):
17139 Check for size-calculation overflow.
17140 (x_get_window_property, receive_incremental_selection)
17141 (lisp_data_to_selection_data, Fx_register_dnd_atom):
17142 Don't store size until memory allocation succeeds.
17143 (x_get_window_property): Plug memory leak on memory exhaustion.
17144 Don't double-block input; malloc is safe here. Don't assume 2**34
17145 - 4 fits in unsigned long. Add an xassert to check
17146 XGetWindowProperty overflow. Be more careful about overflow
17147 calculations, and distinguish size from memory overflow better.
17148 (receive_incremental_selection): When tracing, don't assume
17149 unsigned int is less than INT_MAX.
17150 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
17151 harmful) conversions of unsigned short to int.
17152 (lisp_data_to_selection_data): Don't assume that integers
17153 in the range -65535 through -1 fit in an X unsigned short.
17154 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
17155 result parameters unless successful. Rely on cons_to_unsigned
17156 to report problems with elements; the old code wasn't right anyway.
17157 (x_check_property_data): Check for int overflow; we cannot use
17158 a wider type due to X limits.
17159 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
17160
726e0ab1 17161 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 17162
0065d054
PE
17163 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
17164 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
17165 (x_color_cells): Don't store size until memory allocation succeeds.
17166 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 17167 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
17168 (x_term_init): Don't assume length fits in int (sprintf is limited
17169 to int size).
bc18e09d 17170
ebfa62c0
PE
17171 Use ptrdiff_t for composition IDs.
17172 * character.c (lisp_string_width):
17173 * composite.c (composition_table_size, n_compositions)
17174 (get_composition_id, composition_gstring_from_id):
17175 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
17176 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
17177 * window.c (Frecenter):
17178 Use ptrdiff_t, not int, for composition IDs.
17179 * composite.c (get_composition_id): Check for integer overflow.
17180 * composite.h: Adjust prototypes to match the above changes.
17181
d3411f89
PE
17182 Use ptrdiff_t for hash table indexes.
17183 * category.c (hash_get_category_set):
17184 * ccl.c (ccl_driver):
17185 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
17186 * coding.c (coding_system_charset_list, detect_coding_system):
17187 * coding.h (struct coding_system.id):
17188 * composite.c (get_composition_id, gstring_lookup_cache):
17189 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
17190 * image.c (xpm_get_color_table_h):
17191 * lisp.h (hash_lookup, hash_put):
17192 * minibuf.c (Ftest_completion):
17193 Use ptrdiff_t for hash table indexes, not int (which is too
17194 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
17195 32-bit --with-wide-int hosts).
17196
e097a6fa
PE
17197 * charset.c (Fdefine_charset_internal): Check for integer overflow.
17198 Add a FIXME comment about memory leaks.
17199 (syms_of_charset): Don't assume xmalloc returns.
17200
5637687f
PE
17201 Don't assume that stated character widths fit in int.
17202 * character.c (Fchar_width, c_string_width, lisp_string_width):
17203 * character.h (CHAR_WIDTH):
17204 * indent.c (MULTIBYTE_BYTES_WIDTH):
17205 Use sanitize_char_width to avoid undefined and/or bad behavior
17206 with outlandish widths.
a66cfb1c 17207 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
17208 now that we have two such functions. All uses changed.
17209 (sanitize_char_width): New inline function.
17210
a2271ba2
PE
17211 Don't assume that tab-width fits in int.
17212 * character.h (sanitize_width): New inline function.
17213 (SANE_TAB_WIDTH): New macro.
17214 (ASCII_CHAR_WIDTH): Use it.
17215 * indent.c (sane_tab_width): Remove. All uses replaced by
17216 SANE_TAB_WIDTH (current_buffer).
17217 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
17218
18c52557
PE
17219 * fileio.c: Integer overflow issues with file modes.
17220 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
17221
caeeedc1
PE
17222 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
17223 Remove unreachable code.
17224 (read_hex, load_charset_map_from_file): Check for integer overflow.
17225
6df6ae42 17226 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
17227 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
17228 (x_send_scroll_bar_event): Likewise. Check that the size does not
17229 exceed limits imposed by XClientMessageEvent, as well as the usual
17230 ptrdiff_t and size_t limits.
17231
b13995db
PE
17232 * keyboard.c: Overflow, signedness and related fixes.
17233 (make_lispy_movement): Use same integer type in forward decl
17234 that is used in the definition.
17235 (read_key_sequence, keyremap_step):
17236 Change bufsize argument back to int, undoing my 2011-03-30 change.
17237 We prefer signed types, and int is wide enough here.
17238 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
17239 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
17240 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
17241 length, not size_t. Use ptrdiff_t for index, not int.
17242 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
17243 possibility of integer overflow.
17244
13464394
PE
17245 Overflow, signedness and related fixes for images.
17246
17247 * dispextern.h (struct it.stack[0].u.image.image_id)
17248 (struct_it.image_id, struct image.id, struct image_cache.size)
17249 (struct image_cache.used, struct image_cache.ref_count):
17250 * gtkutil.c (update_frame_tool_bar):
17251 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
17252 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
17253 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
17254 * nsmenu.m (update_frame_tool_bar):
17255 * xdisp.c (calc_pixel_width_or_height):
17256 * xfns.c (image_cache_refcount):
17257 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
17258 on typical 64-bit hosts.
17259
17260 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
17261 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
17262 Omit unnecessary casts to int.
17263 (parse_image_spec): Check that integers fall into 'int' range
17264 when the callers expect that.
17265 (image_ascent): Redo ascent calculation to avoid int overflow.
17266 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
17267 (lookup_image): Remove unnecessary tests.
17268 (xbm_image_p): Locals are now of int, not EMACS_INT,
17269 since parse_image_check makes sure they fit into int.
17270 (png_load, gif_load, svg_load_image):
17271 Prefer int to unsigned where either will do.
17272 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
17273 old tiff_error_handler and tiff_warning_handler.
17274 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
17275 stack buffer overflows. It uses only the features of vsnprintf
17276 that are common to both POSIX and native Microsoft.
17277 (tiff_error_handler, tiff_warning_handler): Use it.
17278 (tiff_load, gif_load, imagemagick_load_image):
17279 Don't assume :index value fits in 'int'.
17280 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
17281 (imagemagick_load_image): Check that crop parameters fit into
17282 the integer types that MagickCropImage accepts. Don't assume
17283 Vimagemagick_render_type has a nonnegative value. Don't assume
17284 size_t fits in 'long'.
17285 (gs_load): Use printmax_t to print the widest integers possible.
17286 Check for integer overflow when computing image height and width.
17287
c11821d4
EZ
172882011-08-26 Eli Zaretskii <eliz@gnu.org>
17289
17290 * xdisp.c (redisplay_window): Don't force window start if point
17291 will be invisible in the resulting window. (Bug#9324)
17292
0c95fcf7
EZ
172932011-08-25 Eli Zaretskii <eliz@gnu.org>
17294
17295 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
17296 the display spec is of the form `(space ...)'.
17297 (handle_display_spec): Return the value returned by
17298 handle_single_display_spec, not just 1 or zero.
17299 (handle_single_display_spec): If the display spec is of the form
17300 `(space ...)', and specifies display in the text area, return 2
17301 rather than 1.
fee65a97 17302 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
17303 accurately, and prefer exact match for point under bidi.
17304 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
17305
17306 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
17307 into disp_prop; all users changed.
17308
17309 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
17310 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
17311 for the text covered by the display property.
17312
e4ed06f1
CY
173132011-08-25 Chong Yidong <cyd@stupidchicken.com>
17314
17315 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
17316 Change return value to nil.
17317 (Frecord_buffer): Delete unused function.
17318
f67cdd7f
EZ
173192011-08-24 Eli Zaretskii <eliz@gnu.org>
17320
5980d4c6
EZ
17321 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
17322 buffers, return left-to-right.
8610fe8b
EZ
17323 (set_cursor_from_row): Consider candidate row a win if its glyph
17324 represents a newline and point is on that newline. Fixes cursor
17325 positioning on the newline at EOL of R2L text within L2R
17326 paragraph, and vice versa.
17327 (try_cursor_movement): Check continued rows, in addition to
17328 continuation rows. Fixes unwarranted scroll when point enters a
17329 continued line of R2L text within an L2R paragraph, or vice versa.
17330 (cursor_row_p): Consider the case of point being equal to
17331 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
17332 from the end of a short line to the beginning of a continued line
17333 of R2L text within L2R paragraph.
17334 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
17335 composed characters.
5980d4c6 17336
f67cdd7f
EZ
17337 * bidi.c (bidi_check_type): Use xassert.
17338 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
17339 members.
17340
bca633fb
EZ
173412011-08-23 Eli Zaretskii <eliz@gnu.org>
17342
17343 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
17344 a character.
17345
4a5885a7
CY
173462011-08-23 Chong Yidong <cyd@stupidchicken.com>
17347
17348 * nsfont.m (ns_otf_to_script): Fix typo.
17349
0902a04e
KH
173502011-08-22 Kenichi Handa <handa@m17n.org>
17351
17352 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
17353 extra slot even if the purpose is char-code-property-table.
17354
1a2e6670
EZ
173552011-08-23 Eli Zaretskii <eliz@gnu.org>
17356
8ddde651
EZ
17357 * xdisp.c (redisplay_window): When computing centering_position,
17358 account for the height of the header line. (Bug#8874)
17359
425cc014
EZ
17360 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
17361 instead of CHAR_TO_BYTE. Fixes a crash when a completion
17362 candidate is selected by the mouse, and that candidate has a
17363 composed character under the mouse.
17364
1a2e6670
EZ
17365 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
17366 coordinates reported by pos-visible-in-window-p for a composed
17367 character in column zero.
17368
8b76d6f8
SM
173692011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
17370
17371 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
17372
dac347dd
EZ
173732011-08-22 Eli Zaretskii <eliz@gnu.org>
17374
17375 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
17376 consider it a hit if to_charpos is anywhere in the range of the
17377 composed buffer positions.
17378
e013fb34
CY
173792011-08-22 Chong Yidong <cyd@stupidchicken.com>
17380
17381 * image.c (gif_load): Don't assume that each subimage has the same
17382 dimensions as the base image. Handle disposal method that is
17383 "undefined" by the gif spec (Bug#9335).
17384
bd1ba3e8
CY
173852011-08-20 Chong Yidong <cyd@stupidchicken.com>
17386
17387 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 17388 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 17389
54a1215b
EZ
173902011-08-19 Eli Zaretskii <eliz@gnu.org>
17391
823564e5
EZ
17392 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
17393 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
17394 from an Org mode buffer to a Speedbar frame.
17395
54a1215b
EZ
17396 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
17397 a composition, take its buffer position from IT->cmp_it.charpos.
17398 Fixes cursor positioning at the beginning of a line that begins
17399 with a composed character.
17400
9778ebcc
EZ
174012011-08-18 Eli Zaretskii <eliz@gnu.org>
17402
0be6ee06
EZ
17403 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
17404 character bidirectional type, use STRONG_L instead. Fixes crashes
17405 in a buffer produced by `describe-categories'.
17406
9778ebcc
EZ
17407 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
17408 members before the level stack, so they would be saved and
17409 restored when copying iterator state. Fixes incorrect reordering
17410 around TABs covered by display properties.
17411
156bffbe
AS
174122011-08-18 Andreas Schwab <schwab@linux-m68k.org>
17413
6b02f655 17414 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 17415
72ad093b
CY
174162011-08-17 Chong Yidong <cyd@stupidchicken.com>
17417
17418 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
17419 (internal_condition_case_2, internal_condition_case_n):
17420 Remove unnecessary aborts (Bug#9081).
72ad093b 17421
35774242
EZ
174222011-08-17 Eli Zaretskii <eliz@gnu.org>
17423
17424 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
17425 has no `load' handler, try opening the file locally. (Bug#9311)
17426
db76dd85
KB
174272011-08-16 Ken Brown <kbrown@cornell.edu>
17428
17429 * gmalloc.c: Expand comment.
17430
b215eee5
EZ
174312011-08-16 Eli Zaretskii <eliz@gnu.org>
17432
17433 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
17434 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
17435
a4579d33
KB
174362011-08-16 Ken Brown <kbrown@cornell.edu>
17437
17438 Fix memory allocation problems in Cygwin build (Bug#9273).
17439
17440 * unexcw.c ( __malloc_initialized): Declare external variable.
17441 (fixup_executable): Force the dumped emacs to reinitialize malloc.
17442
8b76d6f8
SM
17443 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
17444 New variables.
a4579d33
KB
17445 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
17446 dumped emacs.
17447 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
17448 in the static heap.
17449 [CYGWIN] (special_realloc): New function.
17450 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
17451 requests to realloc storage in the static heap.
17452
3ebec551
PE
174532011-08-15 Paul Eggert <eggert@cs.ucla.edu>
17454
17455 * bidi.c (bidi_initialize): Remove unused local.
17456
9fd8be00
EZ
174572011-08-15 Eli Zaretskii <eliz@gnu.org>
17458
6b02f655
SM
17459 * bidimirror.h:
17460 * biditype.h: Remove file.
17461 * makefile.w32-in ($(BLD)/bidi.$(O)):
17462 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
17463
17464 * dispextern.h: Fix a typo in the comment to bidi_type_t.
17465
17466 * chartab.c: Improve commentary for the uniprop_table API.
17467
32413314
EZ
17468 * bidi.c (bidi_paragraph_init): Support zero value of
17469 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
17470 (bidi_initialize): Use uniprop_table instead of including
17471 biditype.h and bidimirror.h.
32413314 17472
9fd8be00
EZ
17473 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
17474 coordinates of the iterator when restoring from ppos_it.
17475 (Bug#9296)
17476
5cf2b69b
KH
174772011-08-14 Kenichi Handa <handa@m17n.org>
17478
17479 * process.c (create_process): Call setup_process_coding_systems
72ad093b 17480 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 17481
daf17d00
EZ
174822011-08-14 Eli Zaretskii <eliz@gnu.org>
17483
17484 * xdisp.c (move_it_in_display_line_to): Don't invoke
17485 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
17486 ppos_it. Fixes vertical cursor motion when line beginning is
17487 covered by an image. (Bug#9296)
17488
08e3161a
JD
174892011-08-14 Jan Djärv <jan.h.d@swipnet.se>
17490
17491 * nsterm.h (ns_run_ascript): Declare.
17492 (NSAPP_DATA2_RUNASSCRIPT): Define.
17493
17494 * nsfns.m (as_script, as_result, as_status): New static variables.
17495 (ns_run_ascript): New function.
5e617bc2 17496 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
17497 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
17498 the event loop. Get status from as_status (Bug#7276).
17499
17500 * nsterm.m (sendEvent): If event is NSApplicationDefined and
17501 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
17502 the event loop (Bug#7276).
17503
a3720aa2
AS
175042011-08-14 Andreas Schwab <schwab@linux-m68k.org>
17505
17506 * gnutls.c (QCgnutls_bootprop_priority)
17507 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
17508 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
17509 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
17510 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
17511 (QCgnutls_bootprop_verify_hostname_error)
17512 (QCgnutls_bootprop_callbacks_verify): Rename from
17513 Qgnutls_bootprop_..., all uses changed.
17514
17515 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
17516 uses changed.
17517
0a0d27fb
PE
175182011-08-14 Paul Eggert <eggert@cs.ucla.edu>
17519
19d5c50c
PE
17520 * xfaces.c (Qframe_set_background_mode): Now static.
17521 * dispextern.h (Qframe_set_background_mode): Remove decl.
17522
0a0d27fb
PE
17523 * process.c (Fnetwork_interface_info): Declare local only if needed.
17524
377538cb
JD
175252011-08-13 Jan Djärv <jan.h.d@swipnet.se>
17526
17527 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
17528 (Fnetwork_interface_list): Allocate in increments of bytes instead
17529 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
17530 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
17531 sockaddr.
17532 (struct ifflag_def): notrailers is smart on OSX.
17533 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
17534 Get hardware address with getifaddrs if available.
17535
08fff70c
EZ
175362011-08-12 Eli Zaretskii <eliz@gnu.org>
17537
17538 * xdisp.c (iterate_out_of_display_property): xassert that
17539 IT->position is set to within IT->object's boundaries. Break from
17540 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
17541 when IT->position is set up wrongly due to some bug.
17542 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
17543 (push_display_prop): Allow GET_FROM_STRING as IT->method on
17544 entry. Force push_it to save on the stack the current
17545 buffer/string position, to be restored by pop_it. Fix flags in
17546 the iterator structure wrt the object coming from a display
17547 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
17548 properties. (Bug#9284)
17549
7be1c708 175502011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 17551
7be1c708
CY
17552 * fontset.c (fontset_get_font_group): Add proper type checks.
17553 (Bug#9172)
aac0c6e3 17554
7be1c708 175552011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 17556
7be1c708
CY
17557 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
17558 and LC_VERSION_MIN_MACOSX.
17559 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
17560 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 17561
97bb72a6
EZ
175622011-08-08 Eli Zaretskii <eliz@gnu.org>
17563
17564 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
17565 no-display-properties-and-no-overlays under bidi display.
17566 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 17567 properties and overlays.
97bb72a6 17568
d5617611
CY
175692011-08-08 Chong Yidong <cyd@stupidchicken.com>
17570
37e11a63
CY
17571 * editfns.c (Fset_time_zone_rule): Document relationship with the
17572 setenv function.
17573
d5617611
CY
17574 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
17575 the font entity extracted from the cache (Bug#8109).
17576
58872834
CY
175772011-08-07 Chong Yidong <cyd@stupidchicken.com>
17578
17579 * composite.c (autocmp_chars): Don't reset point. That is done by
17580 restore_point_unwind (Bug#5984).
17581
75bfc667
JL
175822011-08-07 Juri Linkov <juri@jurta.org>
17583
17584 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
17585 to show the arg `TIME' instead of `TIMEVAL'.
17586
d1410150
EZ
175872011-08-06 Eli Zaretskii <eliz@gnu.org>
17588
17589 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
17590 display property strides EOL and includes a newline, as in
17591 longlines-mode. (Bug#9254)
75b771e4
EZ
17592 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
17593 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
17594
17595 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
17596 is non-zero, even if the data buffer is NULL. Fixes a crash in
17597 vertical-motion with longlines-mode. (Bug#9254)
17598
35928349
EZ
175992011-08-05 Eli Zaretskii <eliz@gnu.org>
17600
ec7cc85b
EZ
17601 * bidi.c <bidi_cache_total_alloc>: Now static.
17602 (bidi_initialize): Initialize bidi_cache_total_alloc.
17603
8b76d6f8 17604 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
17605 cache. (Bug#9221)
17606
17607 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
17608 amount allocated this far in `bidi_cache_total_alloc'.
17609 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
17610 non-zero, only free the data buffer without restoring the cache
17611 contents. All callers changed.
17612
17613 * dispextern.h (bidi_unshelve_cache): Update prototype.
17614
17615 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
17616 (move_it_in_display_line, move_it_to)
17617 (move_it_vertically_backward, move_it_by_lines): Replace the call
17618 to xfree to an equivalent call to bidi_unshelve_cache.
17619 (move_it_in_display_line_to): Fix logic of returning
412b6358 17620 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 17621
e2e2423b
EZ
176222011-08-05 Eli Zaretskii <eliz@gnu.org>
17623
17624 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
17625 came from a string character with a `cursor' property. (Bug#9229)
17626
ae9e757a
JD
176272011-08-04 Jan Djärv <jan.h.d@swipnet.se>
17628
17629 * Makefile.in (LIB_PTHREAD): New variable.
17630 (LIBES): Add LIB_PTHREAD (Bug#9216).
17631
17632 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
17633 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
17634
213bd7f2
AS
176352011-08-04 Andreas Schwab <schwab@linux-m68k.org>
17636
6b02f655 17637 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 17638
99aaf75f
JD
176392011-08-04 Jan Djärv <jan.h.d@swipnet.se>
17640
17641 * xterm.c (x_find_topmost_parent): New function.
17642 (x_set_frame_alpha): Find topmost parent window with
17643 x_find_topmost_parent and set the property there also (bug#9181).
17644 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
17645
c74e9d86
PE
176462011-08-04 Paul Eggert <eggert@cs.ucla.edu>
17647
17648 * callproc.c (Fcall_process): Avoid vfork clobbering
17649 the local vars buffer, coding_systems, current_dir.
17650
640c8776
SM
176512011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
17652
17653 * keymap.c (Fmake_composed_keymap): Move to subr.el.
17654
f26d0e4c
PE
176552011-08-03 Paul Eggert <eggert@cs.ucla.edu>
17656
8a10d76c
PE
17657 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
17658 so that it is not optimized away.
17659
f26d0e4c
PE
17660 * xdisp.c (compute_display_string_pos): Remove unused local.
17661
55439c61
EZ
176622011-08-02 Eli Zaretskii <eliz@gnu.org>
17663
17664 Fix slow cursor motion and scrolling in large buffers with
17665 selective display, like Org Mode buffers. (Bug#9218)
17666
17667 * dispextern.h (struct bidi_it): New member disp_prop_p.
17668
17669 * xdisp.c: Remove one-slot cache of display string positions.
17670 (compute_display_string_pos): Accept an additional argument
5e617bc2 17671 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
17672 for a display string or property. If found, set DISP_PROP_P
17673 non-zero.
17674
17675 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
17676 DISP_PROP_P, and pass it to compute_display_string_pos.
17677 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
17678 non-zero. All callers of bidi_fetch_char changed.
17679
fb33fa43
SM
176802011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
17681
17682 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
17683
b099e063
DM
176842010-12-03 Don March <don@ohspite.net>
17685
17686 * keymap.c (Fdefine_key): Fix non-prefix key error message when
17687 last character M-[char] is translated to ESC [char] (bug#7541).
17688
5cc7f7af
KH
176892011-08-02 Kenichi Handa <handa@m17n.org>
17690
d0fffa3f 17691 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
17692
17693 * chartab.c (uniprop_table): Make it non-static.
17694
525d5e6e
EZ
176952011-08-01 Eli Zaretskii <eliz@gnu.org>
17696
17697 * xdisp.c (forward_to_next_line_start): Accept additional argument
17698 BIDI_IT_PREV, and store into it the state of the bidi iterator had
17699 on the newline.
17700 (reseat_at_next_visible_line_start): Use the bidi iterator state
17701 returned by forward_to_next_line_start to restore the state of
17702 it->bidi_it after backing up to previous newline. (Bug#9212)
17703
31011111
AS
177042011-07-30 Andreas Schwab <schwab@linux-m68k.org>
17705
17706 * regex.c (re_comp): Protoize.
17707 (re_exec): Fix return type.
17708 (regexec): Fix type of `ret'. (Bug#9203)
17709
476371c4
PE
177102011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17711
e5d76069
PE
17712 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
17713 This is needed if max-image-size is a floating-point number.
17714
9a79b20c
AS
177152011-07-28 Andreas Schwab <schwab@linux-m68k.org>
17716
17717 * print.c (print_object): Print empty symbol as ##.
17718
17719 * lread.c (read1): Read ## as empty symbol.
17720
d8c2fa78
AA
177212011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
17722
17723 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
17724 setting frame foreground color (Bug#9175).
17725 (x_set_background_color): Likewise.
17726
ffe57a7a
AA
17727 * nsmenu.m (-setText): Size tooltip dimensions precisely to
17728 contents (Bug#9176).
17729 (EmacsTooltip -init): Remove bezels and add shadows to
17730 tooltip windows.
17731
bf3492a5
AA
17732 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
17733 or scroll bar (Bug#8470).
17734
d55e9c53
AA
17735 * nsfont.m (nsfont_open): Remove assignment to voffset and
17736 unnecessary vars hshink, expand, hd, full_height, min_height.
17737 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
17738
17739 * nsterm.h (nsfont_info): Remove voffset field.
17740
d8c2fa78 177412011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
17742
17743 Implement strike-through and overline on NextStep (Bug#8863).
17744
17745 * nsfont.m (nsfont_open): Use underline position provided by font,
17746 instead of hard-coded value of 2.
17747 (nsfont_draw): Call ns_draw_text_decoration instead.
17748
17749 * nsterm.h: Add declaration for ns_draw_text_decoration.
17750
17751 * nsterm.m (ns_draw_text_decoration): New function for drawing
17752 underline, overline, and strike-through.
17753 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
17754 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 17755 accommodate underlining, etc.
4843aac3 17756
4cc60b9b
EZ
177572011-07-28 Eli Zaretskii <eliz@gnu.org>
17758
bc7ece87
EZ
17759 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
17760 default.
4cc60b9b 17761
476371c4
PE
177622011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17763
66606eea
PE
17764 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
17765 Without this fix, if a signal arrives just after memory fills up,
17766 'malloc' might be invoked reentrantly.
17767
476371c4
PE
17768 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
17769 In other words, assume that every image size is allowed, on non-X
17770 hosts. This assumption is probably wrong, but it lets Emacs compile.
17771
f3fcc40d
AS
177722011-07-28 Andreas Schwab <schwab@linux-m68k.org>
17773
17774 * regex.c (re_iswctype): Convert return values to boolean.
17775
350c992f
EZ
177762011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
17777
17778 * xdisp.c (compute_display_string_pos): Don't use cached display
17779 string position if the buffer had its restriction changed.
17780 (Bug#9184)
17781
5266b4bb
PE
177822011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17783
17784 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
17785
2573a837 177862011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 17787
41f55ccd 17788 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 17789
39e378da
PE
17790 * bidi.c: Integer size and overflow fixes.
17791 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
17792 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
17793 (bidi_cache_find_level_change, bidi_cache_ensure_space)
17794 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
17795 (bidi_find_other_level_edge):
17796 Use ptrdiff_t instead of EMACS_INT where either will do.
17797 This works better on 32-bit hosts configured --with-wide-int.
17798 (bidi_cache_ensure_space): Check for size-calculation overflow.
17799 Use % rather than repeated addition, for better worst-case speed.
17800 Don't set bidi_cache_size until after xrealloc returns, because it
17801 might not return.
17802 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
17803 (bidi_cache_ensure_space): Also check that the bidi cache size
17804 does not exceed that of the largest Lisp string or buffer. See Eli
17805 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 17806
5e927815
PE
17807 * alloc.c (__malloc_size_t): Remove.
17808 All uses replaced by size_t. See Andreas Schwab's note
17809 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
17810
ca4aa935
PE
17811 * image.c: Improve checking for integer overflow.
17812 (check_image_size): Assume that f is nonnull, since
17813 it is always nonnull in practice. This is one less thing to
17814 worry about when checking for integer overflow later.
17815 (x_check_image_size): New function, which checks for integer
17816 overflow issues inside X.
17817 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
17818 This removes the need for a memory_full check.
17819 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
17820 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
17821 (xbm_read_bitmap_data): Change locals back to 'int', since
17822 their values must fit in 'int'.
17823 (xpm_load_image, png_load, tiff_load):
17824 Invoke x_create_x_image_and_pixmap earlier,
17825 to avoid much needless work if the image is too large.
17826 (tiff_load): Treat overly large images as if
17827 x_create_x_image_and_pixmap failed, not as malloc failures.
17828 (gs_load): Use x_check_image_size.
17829
5f8f9cc2
PE
17830 * gtkutil.c: Omit integer casts.
17831 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
17832 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
17833
5adf60bc
PE
17834 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
17835
c8907a93
PE
17836 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
17837 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
17838 would wrongly return t on a 64-bit host.
17839
e3c25c68
PE
17840 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
17841 The plain *_OVERFLOW macros run afoul of GCC bug 49705
17842 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
17843 and therefore cause GCC to emit a bogus diagnostic in some cases.
17844
3f791afe
PE
17845 * image.c: Integer signedness and overflow and related fixes.
17846 This is not an exhaustive set of fixes, but it's time to
17847 record what I've got.
17848 (lookup_pixel_color, check_image_size): Remove redundant decls.
17849 (check_image_size): Don't assume that arbitrary EMACS_INT values
17850 fit in 'int', or that arbitrary 'double' values fit in 'int'.
17851 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
17852 (tiff_load, imagemagick_load_image):
17853 Check for overflow in size calculations.
17854 (x_create_x_image_and_pixmap): Remove unnecessary test for
17855 xmalloc returning NULL; that can't happen.
17856 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
17857 (xpm_color_bucket): Use better integer hashing function.
17858 (xpm_cache_color): Don't possibly over-allocate memory.
17859 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
17860 (gif_memory_source):
17861 Use ptrdiff_t, not int or size_t, to record sizes.
17862 (png_load): Don't assume values greater than 2**31 fit in 'int'.
17863 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
17864 either works, as we prefer signed integers.
17865 (tiff_read_from_memory, tiff_write_from_memory):
17866 Return tsize_t, not size_t, since that's what the TIFF API wants.
17867 (tiff_read_from_memory): Don't fail simply because the read would
17868 go past EOF; instead, return a short read.
17869 (tiff_load): Omit no-longer-needed casts.
17870 (Fimagemagick_types): Don't assume size fits into 'int'.
17871
3cc5a532
PE
17872 Improve hashing quality when configured --with-wide-int.
17873 * fns.c (hash_string): New function, taken from sxhash_string.
17874 Do not discard information about ASCII character case; this
17875 discarding is no longer needed.
17876 (sxhash-string): Use it. Change sig to match it. Caller changed.
17877 * lisp.h: Declare it.
17878 * lread.c (hash_string): Remove, since we now use fns.c's version.
17879 The fns.c version returns a wider integer if --with-wide-int is
17880 specified, so this should help the quality of the hashing a bit.
17881
b312a492
PE
17882 * emacs.c: Integer overflow minor fix.
17883 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
17884 Define only if GNU_LINUX.
17885 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
17886
dfd153ae
PE
17887 * dispnew.c: Integer signedness and overflow fixes.
17888 Remove unnecessary forward decls, that were a maintenance hassle.
17889 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
17890 All uses changed.
17891 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
17892 (scrolling_window): Use ptrdiff_t, not int, for byte count.
17893 (prepare_desired_row, line_draw_cost):
17894 Use int, not unsigned, where either works.
17895 (save_current_matrix, restore_current_matrix):
17896 Use ptrdiff_t, not size_t, where either works.
17897 (init_display): Check for overflow more accurately, and without
17898 relying on undefined behavior.
17899
a81d11a3
PE
17900 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
17901 Remove, replacing with the new symbols in lisp.h. All uses changed.
17902 * fileio.c (make_temp_name):
17903 * filelock.c (lock_file_1, lock_file):
17904 * xdisp.c (message_dolog):
17905 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
17906 Use pMd etc. instead.
17907 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
17908 replacing the pWIDE etc. symbols removed from editfns.c.
17909
3300e6fd
PE
17910 * keyboard.h (num_input_events): Now uintmax_t.
17911 This is (very slightly) less likely to mess up due to wraparound.
17912 All uses changed.
17913
fd05c7e9
PE
17914 * buffer.c: Integer signedness fixes.
17915 (alloc_buffer_text, enlarge_buffer_text):
17916 Use ptrdiff_t rather than size_t when either will do, as we prefer
17917 signed integers.
17918
903fe15d
PE
17919 * alloc.c: Integer signedness and overflow fixes.
17920 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
17921 (__malloc_size_t): Default to size_t, not to int.
17922 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
17923 (Fgarbage_collect, mark_object_loop_halt, mark_object):
17924 Prefer ptrdiff_t to size_t when either would do, as we prefer
17925 signed integers.
17926 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
17927 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
17928 Now const. Initialize with values that are in range even if char
17929 is signed.
17930 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
17931 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
17932 These functions do the right thing with sizes > 2**32.
17933 (check_depth): Now ptrdiff_t, not int.
17934 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
17935 Adjust to new way of storing sizes. Check for size overflow bugs
17936 in rest of code.
17937 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
17938 slightly wrong anyway, as it missed one instance of
17939 XMALLOC_OVERRUN_CHECK_OVERHEAD.
17940 (refill_memory_reserve): Omit needless cast to size_t.
17941 (mark_object_loop_halt): Mark as externally visible.
17942
ac82cc6a
PE
17943 * xselect.c: Integer signedness and overflow fixes.
17944 (Fx_register_dnd_atom, x_handle_dnd_message):
17945 Use ptrdiff_t, not size_t, since we prefer signed.
17946 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
17947 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
17948 x_dnd_atoms_size and x_dnd_atoms_length.
17949
c2d1e36d
PE
17950 * doprnt.c: Prefer signed to unsigned when either works.
17951 * eval.c (verror):
17952 * doprnt.c (doprnt):
17953 * lisp.h (doprnt):
17954 * xdisp.c (vmessage):
17955 Use ptrdiff_t, not size_t, when using or implementing doprnt,
17956 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
17957 prefer signed arithmetic to avoid comparison confusion.
17958 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
17959 but is a bit tricky.
17960
0e926e56
PE
17961 Assume freestanding C89 headers, string.h, stdlib.h.
17962 * data.c, doprnt.c, floatfns.c, print.c:
17963 Include float.h unconditionally.
17964 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
17965 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
17966 * regex.c: Likewise for stddef.h, string.h.
17967 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
17968 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
17969 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
17970 (STDC_HEADERS): Remove obsolete defines.
17971 * sysdep.c: Include limits.h unconditionally.
17972
9cfdb3ec
PE
17973 Assume support for memcmp, memcpy, memmove, memset.
17974 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
17975 * regex.c (memcmp, memcpy):
17976 Remove; we assume C89 now.
17977
17978 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
17979 (__malloc_safe_bcopy): Remove; no longer needed.
17980
cf950e6b 17981 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
17982 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
17983 well either way, and we prefer signed to unsigned.
17984
dbf38e02
LMI
179852011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
17986
17987 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
17988 closes the connection while we're reading (bug#9182).
17989
d6f0886c 179902011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 17991
d6f0886c
JD
17992 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
17993 are specified (Bug#9168).
24e0f6b1 17994
2eb1f9e6
PE
179952011-07-25 Paul Eggert <eggert@cs.ucla.edu>
17996
17997 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
17998 Found by GCC static checking and --with-wide-int on a 32-bit host.
17999
22381272 180002011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
18001
18002 * xdisp.c (compute_display_string_pos): Fix logic of caching
18003 previous display string position. Initialize cached_prev_pos to
18004 -1. Fixes slow-down at the beginning of a buffer.
18005
f25e39b4
EZ
180062011-07-24 Eli Zaretskii <eliz@gnu.org>
18007
18008 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
18009 for attrs[LFACE_FONTSET_INDEX].
18010
04c4b52e
PE
180112011-07-23 Paul Eggert <eggert@cs.ucla.edu>
18012
18013 * xml.c (parse_region): Remove unused local
18014 that was recently introduced.
18015
c1734fbd
EZ
180162011-07-23 Eli Zaretskii <eliz@gnu.org>
18017
be18c5a5
EZ
18018 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
18019 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
18020
c1734fbd
EZ
18021 * xdisp.c (move_it_in_display_line_to): Record the best matching
18022 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
18023 exit if none of the characters scanned was an exact match.
18024 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
18025 when exact match is impossible due to invisible text, and the
18026 lines are truncated.
18027
a258d627
JD
180282011-07-23 Jan Djärv <jan.h.d@swipnet.se>
18029
18030 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
18031 for OSX >= 10.7.
18032
b6d5a689
EZ
180332011-07-22 Eli Zaretskii <eliz@gnu.org>
18034
0f74f785
EZ
18035 Fix a significant slow-down of cursor motion with C-n, C-p,
18036 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
18037 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 18038 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
18039 (next_element_from_buffer): Call compute_stop_pos_backwards to
18040 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
18041 base_level_stop.
18042 (reseat): Don't look for prev_stop, as that could mean a very long
18043 run.
18044 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
18045 <cached_disp_overlay_modiff>: Cache for last found display string
18046 position.
551918c1 18047 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
18048 about the same buffer in the same area of character positions, and
18049 the buffer wasn't changed since the time the display string
18050 position was cached.
551918c1 18051
b2d0c91a
EZ
180522011-07-22 Eli Zaretskii <eliz@gnu.org>
18053
18054 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
18055 is an integer, which is important for empty lines. (Bug#9149)
18056
043604ee
CY
180572011-07-22 Chong Yidong <cyd@stupidchicken.com>
18058
18059 * frame.c (Fmodify_frame_parameters): In tty case, update the
18060 default face if necessary (Bug#4238).
18061
da4adb04
CY
180622011-07-21 Chong Yidong <cyd@stupidchicken.com>
18063
18064 * editfns.c (Fstring_to_char): No need to explain what a character
18065 is in the docstring (Bug#6576).
18066
9abd0532
LMI
180672011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
18068
18069 * xml.c (parse_region): Make sure we always return a tree.
18070
36881d16
HK
180712011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
18072
18073 * xml.c (parse_region): If a document contains only comments,
18074 return that, too.
18075
1e98674d
LMI
180762011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
18077
18078 * xml.c (make_dom): Return comments, too.
18079
590bd467
PE
180802011-07-19 Paul Eggert <eggert@cs.ucla.edu>
18081
18082 Port to OpenBSD.
18083 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
18084 and the surrounding thread.
18085 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
18086 rather than fgets, and retry after EINTR. Otherwise, 'emacs
18087 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
18088 timer goes off.
18089 * s/openbsd.h (BROKEN_SIGIO): Define.
18090 * unexelf.c (unexec) [__OpenBSD__]:
18091 Don't update the .mdebug section of the Alpha COFF symbol table.
18092
f41628b2
LMI
180932011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
18094
18095 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
18096 (bug#8460).
18097
b59b67c5
PE
180982011-07-18 Paul Eggert <eggert@cs.ucla.edu>
18099
15e3a074
PE
18100 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
18101 This fixes some race conditions on the permissions of any newly
18102 created file.
18103
41bed37d
PE
18104 * alloc.c (valid_pointer_p): Use pipe, not open.
18105 This fixes some permissions issues when debugging.
18106
b59b67c5
PE
18107 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
18108 If fchown fails to set both uid and gid, try to set just gid,
18109 as that is sometimes allowed. Adjust the file's mode to eliminate
18110 setuid or setgid bits that are inappropriate if fchown fails.
18111
925a6be7
SM
181122011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
18113
18114 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
18115 to compare Lisp_Objects.
18116 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
18117 global_gnutls_log_level, don't mistake it for a Lisp_Object.
18118 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
18119
52968808
AS
181202011-07-17 Andreas Schwab <schwab@linux-m68k.org>
18121
0a6a104b
AS
18122 * lread.c (read_integer): Unread even EOF character.
18123 (read1): Likewise. Properly record start position of symbol.
18124
52968808
AS
18125 * lread.c (read1): Read `#:' as empty uninterned symbol if no
18126 symbol character follows.
18127
9e381cdd
PE
181282011-07-17 Paul Eggert <eggert@cs.ucla.edu>
18129
18130 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
18131 This works around a problem with the previous change to Fcopy_file.
18132 Recent glibc declares fchown with __attribute__((warn_unused_result)),
18133 and without this change, GCC might complain about discarding
18134 fchown's return value.
18135
b5641435
JB
181362011-07-16 Juanma Barranquero <lekktu@gmail.com>
18137
18138 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
18139
a8031457
PE
181402011-07-16 Paul Eggert <eggert@cs.ucla.edu>
18141
18142 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
18143
dd889327
LMI
181442011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
18145
750c33f7
LMI
18146 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
18147 it's used from the C level.
18148
dd889327
LMI
18149 * process.c: Use the same condition for POLL_FOR_INPUT in both
18150 keyboard.c and process.c (bug#1858).
18151
87e86684
LM
181522011-07-09 Lawrence Mitchell <wence@gmx.li>
18153
18154 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
18155 (Fgnutls_boot): Use it.
18156
64348f40
AS
181572011-07-15 Andreas Schwab <schwab@linux-m68k.org>
18158
18159 * doc.c (Fsubstitute_command_keys): Revert last change.
18160
1d698799
LMI
181612011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
18162
f863868c
LMI
18163 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
18164 quotes the next character, and doesn't affect other longer
18165 sequences (bug#8935).
18166
1d698799
LMI
18167 * lread.c (syms_of_lread): Clarify that is isn't only
18168 `eval-buffer' and `eval-defun' that's affected by
18169 `lexical-binding' (bug#8460).
18170
aa4b6df6
EZ
181712011-07-15 Eli Zaretskii <eliz@gnu.org>
18172
18173 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 18174 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 18175
5d856da6
PE
181762011-07-14 Paul Eggert <eggert@cs.ucla.edu>
18177
ad6042bb
PE
18178 Fix minor problems found by static checking.
18179 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
18180 (elsz): Now a signed constant, not a size_t var. We prefer signed
18181 types to unsigned, to avoid integer comparison confusion. Without
18182 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
18183 "cannot optimize loop, the loop counter may overflow", a symptom
18184 of the confusion.
f00bbb22 18185 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
18186 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
18187
6468f31c
LMI
181882011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
18189
49080b10
LMI
18190 * search.c (Fre_search_backward): Mention `case-fold-search' in
18191 all the re_search_* functions (bug#8138).
18192
6468f31c
LMI
18193 * keyboard.c (Fopen_dribble_file): Document when the file is
18194 closed (bug#8056).
18195
c965adc5
EZ
181962011-07-14 Eli Zaretskii <eliz@gnu.org>
18197
df9733bf
EZ
18198 * bidi.c (bidi_dump_cached_states): Fix format of displaying
18199 bidi_cache_idx.
18200
0bb23927
EZ
18201 Support bidi reordering of display and overlay strings.
18202 * xdisp.c (compute_display_string_pos)
18203 (compute_display_string_end): Accept additional argument STRING.
18204 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
18205 (reseat_to_string): Initialize bidi_it->string.s and
18206 bidi_it->string.schars.
18207 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
18208 NULL (avoids a crash in bidi_paragraph_init).
18209 Initialize itb.string.lstring.
0bb23927
EZ
18210 (init_iterator): Call bidi_init_it only of a valid
18211 buffer position was specified. Initialize paragraph_embedding to
18212 L2R.
18213 (reseat_to_string): Initialize the bidi iterator.
18214 (display_string): If we need to ignore text properties of
18215 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
18216 original value of -1 will not work with bidi.)
18217 (compute_display_string_pos): First arg is now struct
18218 `text_pos *'; all callers changed. Support display properties on
18219 Lisp strings.
18220 (compute_display_string_end): Support display properties on Lisp
18221 strings.
18222 (init_iterator, reseat_1, reseat_to_string): Initialize the
18223 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
18224 when iterating on a string not from display properties).
640c8776
SM
18225 (compute_display_string_pos, compute_display_string_end):
18226 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
18227 arrow keys.
18228 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
18229 base_level_stop; instead, set base_level_stop to BEGV.
18230 Fixes crashes in vertical-motion.
0bb23927
EZ
18231 (next_element_from_buffer): Improve commentary for when
18232 the iterator is before prev_stop.
18233 (init_iterator): Initialize bidi_p from the default value of
18234 bidi-display-reordering, not from buffer-local value. Use the
18235 buffer-local value only if initializing for buffer iteration.
18236 (handle_invisible_prop): Support invisible properties on strings
18237 that are being bidi-reordered.
18238 (set_iterator_to_next): Support bidi reordering of C strings and
18239 Lisp strings.
18240 (next_element_from_string): Support bidi reordering of Lisp
18241 strings.
18242 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
18243 (display_string): Support display of R2L glyph rows.
18244 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
18245 (init_iterator): Don't initialize it->bidi_p for strings
18246 here.
18247 (reseat_to_string): Initialize it->bidi_p for strings here.
18248 (next_element_from_string, next_element_from_c_string)
18249 (next_element_from_buffer): Add xassert's for correspondence
18250 between IT's object being iterated and it->bidi_it.string
18251 structure.
18252 (face_before_or_after_it_pos): Support bidi iteration.
18253 (next_element_from_c_string): Handle the case of the first string
18254 character that is not the first one in the visual order.
18255 (get_visually_first_element): New function, refactored from common
18256 parts of next_element_from_buffer, next_element_from_string, and
18257 next_element_from_c_string.
18258 (tool_bar_lines_needed, redisplay_tool_bar)
18259 (display_menu_bar): Force left-to-right direction. Add a FIXME
18260 comment for making that be controlled by a user option.
18261 (push_it, pop_it): Save and restore the state of the
18262 bidi iterator. Save and restore the bidi_p flag.
18263 (pop_it): Iterate out of display property for string iteration as
18264 well.
18265 (iterate_out_of_display_property): Support iteration over strings.
18266 (handle_single_display_spec): Set up it->bidi_it for iteration
18267 over a display string, and call bidi_init_it.
18268 (handle_single_display_spec, next_overlay_string)
18269 (get_overlay_strings_1, push_display_prop): Set up the bidi
18270 iterator for displaying display or overlay strings.
18271 (forward_to_next_line_start): Don't use the shortcut if
18272 bidi-iterating.
18273 (back_to_previous_visible_line_start): If handle_display_prop
18274 pushed the iterator stack, restore the internal state of the bidi
18275 iterator by calling bidi_pop_it same number of times.
18276 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
18277 and we are bidi-iterating, don't decrement the iterator position;
18278 instead, set the first_elt flag in the bidi iterator, to produce
18279 the same effect.
18280 (reseat_1): Remove redundant setting of string_from_display_prop_p.
18281 (push_display_prop): xassert that we are iterating a buffer.
18282 (push_it, pop_it): Save and restore paragraph_embedding member.
18283 (handle_single_display_spec, next_overlay_string)
18284 (get_overlay_strings_1, reseat_1, reseat_to_string)
18285 (push_display_prop): Set up the `unibyte' member of bidi_it.string
18286 correctly. Don't assume unibyte strings are not bidi-reordered.
18287 (compute_display_string_pos)
18288 (compute_display_string_end): Fix handling the case of C string.
18289 (push_it, pop_it): Save and restore from_disp_prop_p.
18290 (handle_single_display_spec, push_display_prop): Set the
18291 from_disp_prop_p flag.
18292 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
18293 (pop_it): Call iterate_out_of_display_property only if we are
18294 popping after iteration over a string that came from a display
18295 property. Fix a typo in popping stretch info. Add an assertion
18296 for verifying that the iterator position is in sync with the bidi
18297 iterator.
18298 (handle_single_display_spec, get_overlay_strings_1)
18299 (push_display_prop): Fix initialization of paragraph direction for
18300 string when that of the parent object is not yet determined.
18301 (reseat_1): Call bidi_init_it to resync the bidi
18302 iterator with IT's position. (Bug#7616)
18303 (find_row_edges): If ROW->start.pos gives position
18304 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
18305 (handle_stop, back_to_previous_visible_line_start, reseat_1):
18306 Reset the from_disp_prop_p flag.
18307 (SAVE_IT, RESTORE_IT): New macros.
18308 (pos_visible_p, face_before_or_after_it_pos)
18309 (back_to_previous_visible_line_start)
18310 (move_it_in_display_line_to, move_it_in_display_line)
18311 (move_it_to, move_it_vertically_backward, move_it_by_lines)
18312 (try_scrolling, redisplay_window, display_line): Use them when
18313 saving a temporary copy of the iterator and restoring it back.
18314 (back_to_previous_visible_line_start, reseat_1)
18315 (init_iterator): Empty the bidi cache "stack".
18316 (move_it_in_display_line_to): If iterator ended up at
18317 EOL, but we never saw any buffer positions smaller than
18318 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
18319 motion in bidi-reordered lines.
18320 (move_it_in_display_line_to): Record prev_method and prev_pos
18321 immediately before the call to set_iterator_to_next. Fixes cursor
18322 motion in bidi-reordered lines with stretch glyphs and strings
18323 displayed in margins. (Bug#8133) (Bug#8867)
18324 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
18325 TO_CHARPOS.
640c8776
SM
18326 (pos_visible_p): Support positions in bidi-reordered lines.
18327 Save and restore bidi cache.
0bb23927
EZ
18328
18329 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
18330 (bidi_paragraph_info): Delete unused struct.
18331 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
18332 (bidi_cache_start): New variable.
18333 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
18334 to zero.
18335 (bidi_cache_fetch_state, bidi_cache_search)
18336 (bidi_cache_find_level_change, bidi_cache_iterator_state)
18337 (bidi_cache_find, bidi_peek_at_next_level)
18338 (bidi_level_of_next_char, bidi_find_other_level_edge)
18339 (bidi_move_to_visually_next): Compare cache index with
18340 bidi_cache_start rather than with zero.
18341 (bidi_fetch_char): Accept new argument STRING; all callers
18342 changed. Support iteration over a string. Support strings with
18343 display properties. Support unibyte strings. Fix the type of
18344 `len' according to what STRING_CHAR_AND_LENGTH expects.
18345 (bidi_paragraph_init, bidi_resolve_explicit_1)
18346 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
18347 (bidi_level_of_next_char, bidi_move_to_visually_next):
18348 Support iteration over a string.
0bb23927
EZ
18349 (bidi_set_sor_type, bidi_resolve_explicit_1)
18350 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
18351 can now be zero (for strings); special values 0 and -1 were
18352 changed to -1 and -2, respectively.
18353 (bidi_char_at_pos): New function.
18354 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
18355 Call it instead of FETCH_MULTIBYTE_CHAR.
18356 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
18357 initialized to valid values.
18358 (bidi_init_it): Don't initialize charpos and bytepos with invalid
18359 values.
18360 (bidi_level_of_next_char): Allow the sentinel "position" to pass
18361 the test for valid cached positions. Fix the logic for looking up
18362 the sentinel state in the cache. GCPRO the Lisp string we are
18363 iterating.
18364 (bidi_push_it, bidi_pop_it): New functions.
18365 (bidi_initialize): Initialize the bidi cache start stack pointer.
18366 (bidi_cache_ensure_space): New function, refactored from part of
18367 bidi_cache_iterator_state. Don't assume the required size is just
18368 one BIDI_CACHE_CHUNK away.
18369 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
18370 (bidi_count_bytes, bidi_char_at_pos): New functions.
18371 (bidi_cache_search): Don't assume bidi_cache_last_idx is
18372 always valid if bidi_cache_idx is valid.
18373 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
18374 is valid if it's going to be used.
18375 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
18376 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
18377 (bidi_cache_find_level_change, bidi_cache_ensure_space)
18378 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
18379 (bidi_find_other_level_edge, bidi_cache_start_stack):
18380 All variables related to cache indices are now EMACS_INT.
c965adc5 18381
0bb23927
EZ
18382 * dispextern.h (struct bidi_string_data): New structure.
18383 (struct bidi_it): New member `string'. Make flag members be 1-bit
18384 fields, and put them last in the struct.
640c8776
SM
18385 (compute_display_string_pos, compute_display_string_end):
18386 Update prototypes.
0bb23927
EZ
18387 (bidi_push_it, bidi_pop_it): Add prototypes.
18388 (struct iterator_stack_entry): New members bidi_p,
18389 paragraph_embedding, and from_disp_prop_p.
18390 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
18391 (bidi_shelve_cache, bidi_unshelve_cache):
18392 Declare prototypes.
0bb23927
EZ
18393
18394 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
18395 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
18396 and vector-like objects.
18397
18398 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
18399 cache around display iteration.
18400
18401 * window.c (Fwindow_end, window_scroll_pixel_based)
18402 (displayed_window_lines, Frecenter): Save and restore the bidi
18403 cache around display iteration.
18404
3bbd2265
LMI
184052011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
18406
18407 * editfns.c (Fdelete_region): Clarify the use of the named
18408 parameters (bug#6788).
18409
adc47434
MR
184102011-07-14 Martin Rudalics <rudalics@gmx.at>
18411
18412 * indent.c (Fvertical_motion): Set and restore w->pointm when
18413 saving and restoring the window's buffer (Bug#9006).
18414
837c31f8
LMI
184152011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
18416
18417 * editfns.c (Fstring_to_char): Clarify just what is returned
18418 (bug#6576). Text by Eli Zaretskii.
18419
ac389d0c
JB
184202011-07-13 Juanma Barranquero <lekktu@gmail.com>
18421
18422 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
18423
0be0ce47
EZ
184242011-07-13 Eli Zaretskii <eliz@gnu.org>
18425
18426 * buffer.c (mmap_find): Fix a typo.
18427
cd18e7e3
JB
184282011-07-13 Johan Bockgård <bojohan@gnu.org>
18429
18430 Fix execution of x selection hooks.
18431 * xselect.c (Qx_lost_selection_functions)
18432 (Qx_sent_selection_functions): New vars.
18433 (syms_of_xselect): DEFSYM them.
18434 (x_handle_selection_request): Pass Qx_sent_selection_functions
18435 rather than Vx_sent_selection_functions to Frun_hook_with_args.
18436 (x_handle_selection_clear,x_clear_frame_selections):
18437 Pass Qx_lost_selection_functions rather than
18438 Vx_lost_selection_functions to Frun_hook_with_args.
18439
47ea7f44
PE
184402011-07-13 Paul Eggert <eggert@cs.ucla.edu>
18441
ac389d0c 18442 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
18443 The old code sometimes used this field without initializing it.
18444
47ea7f44
PE
18445 * alloc.c (gc_sweep): Don't read past end of array.
18446 In theory, the old code could also have corrupted Emacs internals,
18447 though it'd be very unlikely.
18448
bc985c87
AS
184492011-07-12 Andreas Schwab <schwab@linux-m68k.org>
18450
18451 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 18452 argument. (Bug#4026)
bc985c87 18453
0cf34688
LMI
184542011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
18455
b3dadd76
LMI
18456 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
18457 key" (bug#4257).
18458
0cf34688
LMI
18459 * window.c (Fset_window_start): Doc fix (bug#4199).
18460 (Fset_window_hscroll): Ditto.
18461
270768cd
PE
184622011-07-12 Paul Eggert <eggert@cs.ucla.edu>
18463
077e3dda 18464 Fix minor new problems caught by GCC 4.6.1.
270768cd 18465 * term.c (init_tty): Remove unused local.
490011a6 18466 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 18467 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 18468 not used otherwise.
270768cd 18469
b1f58454
CY
184702011-07-12 Chong Yidong <cyd@stupidchicken.com>
18471
18472 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
18473
22b9578d
LMI
184742011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
18475
6e70ab07
LMI
18476 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
18477 are the mini-buffer and the echo area (bug#3320).
18478
22b9578d
LMI
18479 * term.c (init_tty): Remove support for supdup, c10 and perq
18480 terminals, which are no longer supported (bug#1482).
18481
8974cc9f
JB
184822011-07-10 Johan Bockgård <bojohan@gnu.org>
18483
18484 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
18485
a560d974
JD
184862011-07-10 Jan Djärv <jan.h.d@swipnet.se>
18487
18488 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
18489 for non-popups (Bug#3642).
18490
1dae0f0a
AS
184912011-07-10 Andreas Schwab <schwab@linux-m68k.org>
18492
268c2c36 18493 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 18494 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
18495 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
18496 * cm.c (losecursor): Likewise.
1dae0f0a
AS
18497 * data.c (fmod): Likewise.
18498 * dispnew.c (swap_glyphs_in_rows): Likewise.
18499 * emacs.c (memory_warning_signal): Likewise.
18500 * floatfns.c (float_error): Likewise.
18501 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
18502 (otf_open, font_otf_capability, generate_otf_features)
18503 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
18504 Likewise.
18505 * image.c (pbm_read_file): Likewise.
18506 * indent.c (string_display_width): Likewise.
18507 * intervals.c (check_for_interval, search_for_interval)
18508 (inc_interval_count, count_intervals, root_interval)
18509 (adjust_intervals_for_insertion, make_new_interval): Likewise.
18510 * lread.c (defalias): Likewise.
268c2c36 18511 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
18512 * regex.c (set_image_of_range_1, set_image_of_range)
18513 (regex_grow_registers): Likewise.
18514 * sysdep.c (strerror): Likewise.
18515 * termcap.c (valid_filename_p, tprint, main): Likewise.
18516 * tparam.c (main): Likewise.
18517 * unexhp9k800.c (run_time_remap, save_data_space)
18518 (update_file_ptrs, read_header, write_header, calculate_checksum)
18519 (copy_file, copy_rest, display_header): Likewise.
18520 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
18521 Likewise.
18522 * xdisp.c (check_it): Likewise.
18523 * xfaces.c (register_color, unregister_color, unregister_colors):
18524 Likewise.
18525 * xfns.c (print_fontset_result): Likewise.
18526 * xrdb.c (member, fatal, main): Likewise.
18527
99033785
PE
185282011-07-10 Paul Eggert <eggert@cs.ucla.edu>
18529
18530 Fix minor problems found by static checking (Bug#9031).
18531 * chartab.c (char_table_set_range, map_sub_char_table):
18532 Remove unused locals.
18533 (uniprop_table): Now static.
18534 * composite.c (_work_char): Remove unused static var.
18535
9cb2ac56
JB
185362011-07-09 Juanma Barranquero <lekktu@gmail.com>
18537
18538 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
18539
f25661f0
JD
185402011-07-09 Jan Djärv <jan.h.d@swipnet.se>
18541
18542 * gtkutil.c (qttip_cb): Remove code without function.
18543
8278c4fe
EZ
185442011-07-09 Eli Zaretskii <eliz@gnu.org>
18545
18546 * w32.c (pthread_sigmask): New stub.
18547
1692ae2d 185482011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 18549
8a6ebd58 18550 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
18551 sigprocmask is portable only for single-threaded applications, and
18552 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
18553 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
18554 (LIBES): Use it.
18555 * callproc.c (Fcall_process):
18556 * process.c (create_process):
18557 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
18558 Use pthread_sigmask, not sigprocmask.
123403e4 18559
1b854618
JD
185602011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18561
18562 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
18563 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
18564 wrong (Bug#8591).
18565
3fe4b549
JD
185662011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18567
0ce7e563
JD
18568 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
18569 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
18570 (xg_hide_tooltip): Fix comment.
18571
3fe4b549
JD
18572 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
18573 in registerServicesMenuSendTypes.
18574 (validRequestorForSendType): Don't check ns_return_types.
18575
18576 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
18577 ns_return_type.
18578
5df75e47
JR
185792011-07-08 Jason Rumney <jasonr@gnu.org>
18580
22610910
JR
18581 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
18582 SH_SHOW for hidden windows (Bug#5482).
18583
5df75e47
JR
18584 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
18585 frame struct members of non-existent frames (Bug#6284).
18586
699c10bd
JD
185872011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18588
4393663b
JD
18589 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
18590 variable firstTime not needed on OSX >= 10.6.
18591 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
18592 >= 10.5. Use setKnobProportion, setDoubleValue.
18593
18594 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
18595 (MAC_OS_X_VERSION_10_5): Define if not defined.
18596 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
18597 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
18598 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
18599
18600 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 18601 cString and lossyCString on OSX >= 10.4.
4393663b 18602
58179cce 18603 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
18604 sizeToFit on OSX >= 10.2.
18605
18606 * nsimage.m (allocInitFromFile): Don't use deprecated method
18607 bestRepresentationForDevice on OSX >= 10.6.
18608
18609 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
18610 to avoid warning.
18611
18612 * emacs.c: Declare unexec_init_emacs_zone.
18613
a63e0781
JD
18614 * nsgui.h: Fix compiler warning about gnulib redefining verify.
18615
699c10bd
JD
18616 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
18617
18618 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
18619 on svcsMenu (Bug#8842).
18620
18621 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
18622 ns_return_types.
18623 (Fns_list_services): Just return Qnil on 10.6, code not working there.
18624
18625 * nsterm.m (QUTF8_STRING): Declare.
18626 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
18627 (validRequestorForSendType): Return type is (id).
18628 Change indexOfObjectIdenticalTo to indexOfObject.
18629 Check if we have local selection before returning self (Bug#8842).
18630 (writeSelectionToPasteboard): Put local selection into paste board
18631 if we have a local selection (Bug#8842).
18632 (syms_of_nsterm): DEFSYM QUTF8_STRING.
18633
18634 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
18635 (ns_get_local_selection): Declare.
18636
54e10184
LMI
186372011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18638
9888ff71
LMI
18639 * keymap.c (describe_map_tree): Don't insert a double newline at
18640 the end of the buffer (bug#1169) and return whether we inserted
18641 something.
18642
54e10184
LMI
18643 * callint.c (Fcall_interactively): Change "reading args" to
18644 "providing args" to try to clarify what it does (bug#1010).
18645
15fa4783
KH
186462011-07-07 Kenichi Handa <handa@m17n.org>
18647
18648 * composite.c (composition_compute_stop_pos): Ignore a static
18649 composition starting before CHARPOS (Bug#8915).
18650
18651 * xdisp.c (handle_composition_prop): Likewise.
18652
a8815b00
EZ
186532011-07-07 Eli Zaretskii <eliz@gnu.org>
18654
18655 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
18656 (Bug#9015)
18657
ef7b981d 186582011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
18659
18660 * character.h (unicode_category_t): New enum type.
18661
18662 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
18663 (Qchar_code_property_table): New variable.
18664 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
18665 (UNIPROP_COMPRESSED_FORM_P): New macros.
18666 (char_table_ascii): Uncompress the compressed values.
18667 (sub_char_table_ref): New arg is_uniprop. Callers changed.
18668 Uncompress the compressed values.
ac389d0c 18669 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
18670 (char_table_ref_and_range): Uncompress the compressed values.
18671 (sub_char_table_set): New arg is_uniprop. Callers changed.
18672 Uncompress the compressed values.
18673 (sub_char_table_set_range): Args changed. Callers changed.
18674 (char_table_set_range): Adjuted for the above change.
18675 (map_sub_char_table): Delete args default_val and parent. Add arg
18676 top. Give decoded values to a Lisp function.
640c8776 18677 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
18678 values to a Lisp function. Gcpro more variables.
18679 (uniprop_table_uncompress)
18680 (uniprop_decode_value_run_length): New functions.
18681 (uniprop_decoder, uniprop_decoder_count): New variables.
18682 (uniprop_get_decoder, uniprop_encode_value_character)
18683 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
18684 New functions.
18685 (uniprop_encoder, uniprop_encoder_count): New variables.
18686 (uniprop_get_encoder, uniprop_table)
18687 (Funicode_property_table_internal, Fget_unicode_property_internal)
18688 (Fput_unicode_property_internal): New functions.
18689 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
18690 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 18691 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
18692 char-code-property-alist.
18693
640c8776 18694 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
18695 Vunicode_category_table.
18696
640c8776 18697 * font.c (font_range): Adjust for the change of
c805dec0
KH
18698 Vunicode_category_table.
18699
76b397fb
DN
187002011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
18701
18702 * m/iris4d.h: Remove file, move contents ...
18703 * s/irix6-5.h: ... here.
18704
22b4128e
PE
187052011-07-06 Paul Eggert <eggert@cs.ucla.edu>
18706
18707 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
18708 * alloc.c (mark_buffer):
18709 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
18710 (clone_per_buffer_values): Don't assume that
22b4128e
PE
18711 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
18712 This isn't true in general, and it's particularly not true
18713 if Emacs is configured with --with-wide-int.
18714 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
18715 New macros, used in the buffer.c change.
18716
869795d6
JD
187172011-07-05 Jan Djärv <jan.h.d@swipnet.se>
18718
18719 * xsettings.c: Use both GConf and GSettings if both are available.
18720 (store_config_changed_event): Add comment.
18721 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
18722 (store_tool_bar_style_changed): New functions.
5e617bc2 18723 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
18724 (struct xsettings): Move font inside HAVE_XFT.
18725 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 18726 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 18727 Move inside HAVE_XFT.
640c8776 18728 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
18729 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
18730 also.
18731 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 18732 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 18733 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
18734 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
18735 (parse_settings): Move check for font inside HAVE_XFT.
18736 (read_settings, apply_xft_settings): Add comment.
18737 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
18738 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
18739 call store_font_name_changed.
18740 (xft_settings_event): Add comment.
18741 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
18742 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
18743 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
18744 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
18745 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
18746 (xsettings_get_system_font, xsettings_get_system_normal_font):
18747 Add comment.
869795d6 18748
d8ed26bd
PE
187492011-07-05 Paul Eggert <eggert@cs.ucla.edu>
18750
18751 Random fixes. E.g., (random) never returned negative values.
18752 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
18753 subseconds part to the entropy, as that's a bit more random.
18754 Prefer signed to unsigned, since the signedness doesn't matter and
18755 in general we prefer signed. When given a limit, use a
18756 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
18757 latter isn't right if USE_2_TAGS_FOR_INTS.
18758 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
18759 not 0..VALMASK. Don't discard "excess" bits that random () returns.
18760
cabf1cac
SM
187612011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
18762
18763 * textprop.c (text_property_stickiness):
18764 Obey Vtext_property_default_nonsticky.
18765 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
18766 * w32fns.c (syms_of_w32fns):
18767 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
18768
6e9b2be9
PE
187692011-07-04 Paul Eggert <eggert@cs.ucla.edu>
18770
18771 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
18772 This is more efficient than Ffile_directory_p and avoids a minor race.
18773
90186c68
LMI
187742011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
18775
7c301272
LMI
18776 * buffer.c (Foverlay_put): Say what the return value is
18777 (bug#7835).
18778
c4f2d8d4
LMI
18779 * fileio.c (barf_or_query_if_file_exists): Check first if the file
18780 is a directory before asking whether to use the file name
18781 (bug#7564).
ad637907
LMI
18782 (barf_or_query_if_file_exists): Make the "File is a directory"
18783 error be more correct.
c4f2d8d4 18784
90186c68
LMI
18785 * fns.c (Frequire): Remove the mention of the .gz files, since
18786 that's installation-specific, but keep the mention of
18787 `get-load-suffixes'.
18788
da64016e
PE
187892011-07-04 Paul Eggert <eggert@cs.ucla.edu>
18790
18791 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
18792 Report string overflow if the output is too long.
18793
7d47b580
JB
187942011-07-04 Juanma Barranquero <lekktu@gmail.com>
18795
a555cb87
JB
18796 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
18797 (syms_of_gnutls): Remove duplicate DEFSYM for
18798 Qgnutls_bootprop_verify_hostname_error, an error for
18799 Qgnutls_bootprop_verify_error (which is no longer used).
18800
7d47b580
JB
18801 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
18802 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
18803 Also (re)move comments that are misplaced or no longer relevant.
18804
1e49bfab
LMI
188052011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
18806
18807 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
18808
1485f4c0
CY
188092011-07-03 Chong Yidong <cyd@stupidchicken.com>
18810
18811 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
18812 and background color parameters if they have been changed.
18813
a9ab721e
LMI
188142011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
18815
18816 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
18817
cf7cff57
PE
188182011-07-03 Paul Eggert <eggert@cs.ucla.edu>
18819
2e13213d
PE
18820 * xsettings.c (SYSTEM_FONT): Define only when used.
18821 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
18822
cf7cff57
PE
18823 * keymap.c (access_keymap_1): Now static.
18824
7a8e04f7
CY
188252011-07-02 Chong Yidong <cyd@stupidchicken.com>
18826
18827 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
18828 leave any prefix arg for the up event (Bug#1586).
18829
61352f62
LMI
188302011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
18831
69bb1ef7
LMI
18832 * lread.c (syms_of_lread): Mention single symbols defined by
18833 `defvar' or `defconst' (bug#7154).
18834
61352f62 18835 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 18836 (Frequire): Mention get-load-suffixes.
61352f62 18837
28545e04
MR
188382011-07-02 Martin Rudalics <rudalics@gmx.at>
18839
18840 * window.h (window): Remove clone_number slot.
18841 * window.c (Fwindow_clone_number, Fset_window_clone_number):
18842 Remove.
18843 (make_parent_window, make_window, saved_window)
18844 (Fset_window_configuration, save_window_save): Don't deal with
18845 clone numbers.
18846 * buffer.c (Qclone_number): Remove declaration.
18847 (sort_overlays, overlay_strings): Don't deal with clone numbers.
18848
3349e122
SM
188492011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
18850
18851 Add multiple inheritance to keymaps.
18852 * keymap.c (Fmake_composed_keymap): New function.
18853 (Fset_keymap_parent): Simplify.
18854 (fix_submap_inheritance): Remove.
18855 (access_keymap_1): New function extracted from access_keymap to handle
18856 embedded parents and handle lists of maps.
18857 (access_keymap): Use it.
18858 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
18859 (Fcopy_keymap): Handle embedded parents.
18860 (Fcommand_remapping, define_as_prefix): Simplify.
18861 (Fkey_binding): Simplify.
18862 (syms_of_keymap): Move minibuffer-local-completion-map,
18863 minibuffer-local-filename-completion-map,
18864 minibuffer-local-must-match-map, and
18865 minibuffer-local-filename-must-match-map to Elisp.
18866 (syms_of_keymap): Defsubr make-composed-keymap.
18867 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
18868 (parse_menu_item): Trivial simplification.
18869
3279eb87
GM
188702011-07-01 Glenn Morris <rgm@gnu.org>
18871
18872 * Makefile.in (SETTINGS_LIBS): Fix typo.
18873
39cb9e56 188742011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4550efdf
KI
18875
18876 * coding.c (Fencode_coding_string): Record the last coding system
18877 used, as the function doc string says (bug#8738).
18878
0949d2b6
JD
188792011-07-01 Jan Djärv <jan.h.d@swipnet.se>
18880
18881 * xsettings.c (store_monospaced_changed): Take new font as arg and
18882 check for change against current_mono_font.
18883 (EMACS_TYPE_SETTINGS): Remove this and related defines.
18884 (emacs_settings_constructor, emacs_settings_get_property)
18885 (emacs_settings_set_property, emacs_settings_class_init)
18886 (emacs_settings_init, gsettings_obj): Remove.
18887 (something_changedCB): New function for HAVE_GSETTINGS.
18888 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
18889 with value as argument.
18890 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
18891 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 18892 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
18893 "changed".
18894
18895 * xgselect.c: Add defined (HAVE_GSETTINGS).
18896 (xgselect_initialize): Ditto.
18897
18898 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
18899 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
18900 xg_select.
18901
bbc6b304
PE
189022011-07-01 Paul Eggert <eggert@cs.ucla.edu>
18903
18904 * eval.c (struct backtrace): Simplify and port the data structure.
18905 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
18906 signed bit field, as this assumption is not portable and it makes
18907 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
18908 "char debug_on_exit : 1" as this is not portable either; instead,
18909 use the portable "unsigned int debug_on_exit : 1". Remove unused
18910 member evalargs. Remove obsolete comments about cc bombing out.
18911
9851bfc5
JD
189122011-06-30 Jan Djärv <jan.h.d@swipnet.se>
18913
51bb811f 18914 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
18915 Let HAVE_GSETTINGS override HAVE_GCONF.
18916 (store_monospaced_changed): New function.
18917 (EMACS_SETTINGS): A new type derived from GObject to handle
18918 GSettings notifications.
18919 (emacs_settings_constructor, emacs_settings_get_property)
18920 (emacs_settings_set_property, emacs_settings_class_init):
18921 New functions.
18922 (gsettings_client, gsettings_obj): New variables.
18923 (GSETTINGS_SCHEMA): New define.
18924 (something_changedCB): Call store_monospaced_changed.
18925 (init_gsettings): New function.
18926 (xsettings_initialize): Call init_gsettings.
18927 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
18928 to NULL.
18929
640c8776 18930 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
18931 GCONF_CFLAGS/LIBS.
18932
5386012d
MR
189332011-06-29 Martin Rudalics <rudalics@gmx.at>
18934
18935 * window.c (resize_root_window, grow_mini_window)
18936 (shrink_mini_window): Rename Qresize_root_window to
18937 Qwindow_resize_root_window and Qresize_root_window_vertically to
18938 Qwindow_resize_root_window_vertically.
18939
f13e0b08
PE
189402011-06-28 Paul Eggert <eggert@cs.ucla.edu>
18941
18942 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
18943
94515237
JB
189442011-06-27 Juanma Barranquero <lekktu@gmail.com>
18945
18946 * makefile.w32-in: Redesign dependencies so they reflect more
18947 clearly which files are directly included by each source file,
18948 and not through other includes.
18949
e43b6e43
MR
189502011-06-27 Martin Rudalics <rudalics@gmx.at>
18951
18952 * buffer.c (Qclone_number): Declare static and DEFSYM it.
18953 (sort_overlays, overlay_strings): When an overlay's clone number
18954 matches the window's clone number process the overlay even if
18955 the overlay's window property doesn't match the current window.
18956
d68443dc
MR
18957 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
18958 (Fwindow_hchild): Rename to Fwindow_left_child.
18959 (Fwindow_next): Rename to Fwindow_next_sibling.
18960 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
18961 (resize_window_check): Rename to window_resize_check.
18962 (resize_window_apply): Rename to window_resize_apply.
18963 (Fresize_window_apply): Rename to Fwindow_resize_apply.
18964 (Fdelete_other_windows_internal, resize_frame_windows)
18965 (Fsplit_window_internal, Fdelete_window_internal)
18966 (grow_mini_window, shrink_mini_window)
18967 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 18968
c7e73be5
JD
189692011-06-26 Jan Djärv <jan.h.d@swipnet.se>
18970
18971 * emacsgtkfixed.h: State that this is only used with Gtk+3.
18972 (emacs_fixed_set_min_size): Remove.
18973 (emacs_fixed_new): Take frame as argument.
18974
18975 * emacsgtkfixed.c: State that this is only used with Gtk+3.
18976 (_EmacsFixedPrivate): Remove minwidth/height.
18977 Add struct frame *f.
18978 (emacs_fixed_init): Initialize priv->f.
18979 (get_parent_class, emacs_fixed_set_min_size): Remove.
18980 (emacs_fixed_new): Set priv->f to argument.
18981 (emacs_fixed_get_preferred_width)
18982 (emacs_fixed_get_preferred_height): Use min_width/height from
18983 frames size_hint to set minimum and natural (Bug#8919).
18984 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
18985 and use min_width/height from frames size_hint to set
18986 min_width/height (Bug#8919).
18987
18988 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
18989 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
18990 Fix indentation.
c7e73be5 18991
cf99dcf8
EZ
189922011-06-26 Eli Zaretskii <eliz@gnu.org>
18993
18994 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
18995 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
18996 called at ZV.
18997
029529ac
CY
189982011-06-26 Chong Yidong <cyd@stupidchicken.com>
18999
19000 * process.c (wait_reading_process_output): Bypass select if
19001 waiting for a cell while ignoring keyboard input, and input is
19002 pending. Suggested by Jan Djärv (Bug#8869).
19003
7a7ef429
PE
190042011-06-25 Paul Eggert <eggert@cs.ucla.edu>
19005
19006 Use gnulib's dup2 module instead of rolling our own.
19007 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
19008
11fdef7d 190092011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
19010
19011 * dispnew.c (scrolling_window): Before scrolling, turn off a
19012 mouse-highlight in the window being scrolled.
19013
cd3520a4
JB
190142011-06-24 Juanma Barranquero <lekktu@gmail.com>
19015
19016 Move DEFSYM to lisp.h and use everywhere.
19017
19018 * character.h (DEFSYM): Move declaration...
19019 * lisp.h (DEFSYM): ...here.
19020
19021 * gnutls.c:
19022 * minibuf.c:
19023 * w32menu.c:
19024 * w32proc.c:
19025 * w32select.c: Don't include character.h.
19026
19027 * alloc.c (syms_of_alloc):
19028 * buffer.c (syms_of_buffer):
19029 * bytecode.c (syms_of_bytecode):
19030 * callint.c (syms_of_callint):
19031 * casefiddle.c (syms_of_casefiddle):
19032 * casetab.c (init_casetab_once):
19033 * category.c (init_category_once, syms_of_category):
19034 * ccl.c (syms_of_ccl):
19035 * cmds.c (syms_of_cmds):
19036 * composite.c (syms_of_composite):
19037 * dbusbind.c (syms_of_dbusbind):
19038 * dired.c (syms_of_dired):
19039 * dispnew.c (syms_of_display):
19040 * doc.c (syms_of_doc):
19041 * editfns.c (syms_of_editfns):
19042 * emacs.c (syms_of_emacs):
19043 * eval.c (syms_of_eval):
19044 * fileio.c (syms_of_fileio):
19045 * fns.c (syms_of_fns):
19046 * frame.c (syms_of_frame):
19047 * fringe.c (syms_of_fringe):
19048 * insdel.c (syms_of_insdel):
19049 * keymap.c (syms_of_keymap):
19050 * lread.c (init_obarray, syms_of_lread):
19051 * macros.c (syms_of_macros):
19052 * msdos.c (syms_of_msdos):
19053 * print.c (syms_of_print):
19054 * process.c (syms_of_process):
19055 * search.c (syms_of_search):
19056 * sound.c (syms_of_sound):
19057 * syntax.c (init_syntax_once, syms_of_syntax):
19058 * terminal.c (syms_of_terminal):
19059 * textprop.c (syms_of_textprop):
19060 * undo.c (syms_of_undo):
19061 * w32.c (globals_of_w32):
19062 * window.c (syms_of_window):
19063 * xdisp.c (syms_of_xdisp):
19064 * xfaces.c (syms_of_xfaces):
19065 * xfns.c (syms_of_xfns):
19066 * xmenu.c (syms_of_xmenu):
19067 * xsettings.c (syms_of_xsettings):
19068 * xterm.c (syms_of_xterm): Use DEFSYM.
19069
4228cf16
TZ
190702011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
19071
cd3520a4 19072 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 19073
7fcccf1e
PE
190742011-06-23 Paul Eggert <eggert@cs.ucla.edu>
19075
7efb4e0e
PE
19076 Integer and buffer overflow fixes (Bug#8873).
19077
ff5844ad
PE
19078 * print.c (printchar, strout): Check for string overflow.
19079 (PRINTPREPARE, printchar, strout):
19080 Don't set size unless allocation succeeds.
19081
90532f02
PE
19082 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
19083 for sizes. Check for string overflow more accurately.
19084 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
19085
6d84508d
PE
19086 * macros.c: Integer and buffer overflow fixes.
19087 * keyboard.h (struct keyboard.kbd_macro_bufsize):
19088 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
19089 Use ptrdiff_t, not int, for sizes.
19090 Don't increment bufsize until after realloc succeeds.
19091 Check for size-calculation overflow.
19092 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
19093
437b2cb4
PE
19094 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
19095
8b9ac8b4
PE
19096 * lread.c: Integer overflow fixes.
19097 (read_integer): Radix is now EMACS_INT, not int,
19098 to improve quality of diagnostics for out-of-range radices.
19099 Calculate buffer size correctly for out-of-range radices.
19100 (read1): Check for integer overflow in radices, and in
19101 read-circle numbers.
82cb60d3
PE
19102 (read_escape): Avoid int overflow.
19103 (Fload, openp, read_buffer_size, read1)
19104 (substitute_object_recurse, read_vector, read_list, map_obarray):
19105 Use ptrdiff_t, not int, for sizes.
19106 (read1): Use EMACS_INT, not int, for sizes.
20270765 19107 Check for size overflow.
8b9ac8b4 19108
7fcccf1e
PE
19109 * image.c (cache_image): Check for size arithmetic overflow.
19110
bfbbd7e7
PE
19111 * lread.c: Integer overflow issues.
19112 (saved_doc_string_size, saved_doc_string_length)
19113 (prev_saved_doc_string_size, prev_saved_doc_string_length):
19114 Now ptrdiff_t, not int.
19115 (read1): Don't assume doc string length fits in int. Check for
19116 out-of-range doc string lengths.
19117 (read_list): Don't assume file position fits in int.
39019e54 19118 (read_escape): Check for hex character overflow.
bfbbd7e7 19119
4e323265
LL
191202011-06-22 Leo Liu <sdl.web@gmail.com>
19121
19122 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
19123 Move to minibuffer.el.
19124
85fece3e
PE
191252011-06-22 Paul Eggert <eggert@cs.ucla.edu>
19126
20b84ce9 19127 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
19128 The following patches are for when GLYPH_DEBUG && !XASSERT.
19129 * dispextern.h (trace_redisplay_p, dump_glyph_string):
19130 * dispnew.c (flush_stdout):
19131 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
19132 Mark as externally visible.
19133 * dispnew.c (check_window_matrix_pointers): Now static.
19134 * dispnew.c (window_to_frame_vpos):
19135 * xfns.c (unwind_create_frame):
19136 * xterm.c (x_check_font): Remove unused local.
19137 * scroll.c (CHECK_BOUNDS):
19138 * xfaces.c (cache_fache): Rename local to avoid shadowing.
19139 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
19140 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
19141 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
19142 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
19143 Now static.
19144 (debug_method_add): Use va_list and vsprintf rather than relying
19145 on undefined behavior with wrong number of arguments.
19146 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
19147 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
19148 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
19149 since we're not interested in debugging glyphs with old libraries.
19150 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
19151 GCC 4.6.0's static checking.
19152
0766b489
PE
191532011-06-22 Paul Eggert <eggert@cs.ucla.edu>
19154
31fd4b32
PE
19155 Integer overflow and signedness fixes (Bug#8873).
19156 A few related buffer overrun fixes, too.
19157
b79e8648
PE
19158 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
19159
0766b489
PE
19160 * dispextern.h (struct face.stipple):
19161 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
19162 (x_bitmap_mask, x_allocate_bitmap_record)
19163 (x_create_bitmap_from_data, x_create_bitmap_from_file)
19164 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
19165 (x_create_bitmap_from_xpm_data):
19166 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
19167 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
19168 (.bitmaps_last):
19169 * xfaces.c (load_pixmap):
19170 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
19171 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
19172 (.bitmaps_last, struct x_output.icon_bitmap):
19173 Use ptrdiff_t, not int, for bitmap indexes.
19174 (x_allocate_bitmap_record): Check for size overflow.
19175 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
19176
b081724f
PE
19177 Use ptrdiff_t, not int, for overlay counts.
19178 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
19179 * editfns.c (overlays_around, get_pos_property):
19180 * textprop.c (get_char_property_and_overlay):
19181 * xdisp.c (next_overlay_change, note_mouse_highlight):
19182 * xfaces.c (face_at_buffer_position):
21514da7
PE
19183 * buffer.c (OVERLAY_COUNT_MAX): New macro.
19184 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
19185 (Fnext_overlay_change, Fprevious_overlay_change)
19186 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 19187 Use ptrdiff_t, not int, for sizes.
21514da7 19188 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 19189
3de73e5e
PE
19190 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
19191
2606c57b
PE
19192 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
19193 (x_session_initialize): Do not assume string length fits in int.
19194
aaafe47a
PE
19195 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
19196 This is unlikely, but can occur if DPI is outlandish.
19197
2674ddc8 19198 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
19199 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
19200
28154962
PE
19201 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
19202 * xrdb.c (magic_file_p, search_magic_path):
19203 Omit last arg SUFFIX; it was always 0. All callers changed.
19204 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
19205
7de51af5
PE
19206 * xfont.c (xfont_match): Avoid need for strlen.
19207
25ed6cc3
PE
19208 * xfns.c: Don't assume strlen fits in int.
19209 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
19210
4eab31dd
PE
19211 * xdisp.c (message_log_check_duplicate): Return intmax_t,
19212 not unsigned long, as we prefer signed integers. All callers changed.
19213 Detect integer overflow in repeat count.
19214 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 19215 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 19216
171e2a58
PE
19217 * termcap.c: Don't assume sizes fit in int and never overflow.
19218 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
19219 (gobble_line): Check for size-calculation overflow.
19220
ad39faca 19221 * minibuf.c (Fread_buffer):
6e5bb2dc 19222 * lread.c (intern, intern_c_string):
74ca2eb3
PE
19223 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
19224 Don't assume string length fits in int.
19225
52c61c22 19226 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
19227 * gtkutil.c (style_changed_cb): Avoid need for strlen.
19228
b5b8c9e5
PE
19229 * font.c: Don't assume string length fits in int.
19230 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
19231 Use ptrdiff_t, not int.
ccd6111c
PE
19232 (font_intern_prop): Don't assume string length fits in int.
19233 Don't assume integer property fits in fixnum.
19234 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 19235
882f0d81 19236 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 19237 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
19238 Reformulate so as not to need the command string.
19239 Invoke gzip -cd rather than gunzip, as it's more portable.
19240 (lock_info_type, lock_file_1, lock_file):
19241 Don't assume pid_t and time_t fit in unsigned long.
19242 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
19243 (current_lock_owner): Prefer signed type for sizes.
19244 Use memcpy, not strncpy, where memcpy is what is really wanted.
19245 Don't assume (via atoi) that time_t and pid_t fit in int.
19246 Check for time_t and/or pid_t out of range, e.g., via a network share.
19247 Don't alloca where an auto var works fine.
19248
93f4cf88
PE
19249 * fileio.c: Fix some integer overflow issues.
19250 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
19251 Don't assume string length fits in int.
19252 (directory_file_name): Don't assume string length fits in long.
19253 (make_temp_name): Don't assume pid fits in int, or that its print
19254 length is less than 20.
19255
f3e92b69
PE
19256 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
19257
1bfdaf10
PE
19258 * coding.c (make_subsidiaries): Don't assume string length fits in int.
19259
35016e9a
PE
19260 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
19261
3d1e65a1
PE
19262 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
19263 We prefer signed integers, even for size calculations.
19264
0b963a93
PE
19265 * emacs.c: Don't assume string length fits in 'int'.
19266 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
19267 (main): Don't invoke strlen when not needed.
19268
573f4b54
PE
19269 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
19270 (XD_DEBUG_MESSAGE): Don't waste a byte.
19271
989f33ba
PE
19272 * callproc.c (getenv_internal_1, getenv_internal)
19273 (Fgetenv_internal):
965d34eb
PE
19274 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
19275
e4d29b33
PE
19276 * lread.c (invalid_syntax): Omit length argument.
19277 All uses changed. This doesn't fix a bug, but it simplifies the
19278 code away from its former Hollerith-constant appearance, and it's
19279 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 19280 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 19281
eb49b136
PE
19282 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
19283 This didn't break anything, but it didn't help either.
19284 It's confusing to put a bogus integer in a place where the actual
19285 value does not matter.
9f62aeb1 19286 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 19287 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 19288
15375a22
PE
19289 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
19290 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
19291 implementation.
b61cc01c
PE
19292 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
19293 We prefer signed types, and the value cannot exceed the EMACS_INT
19294 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
19295 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
19296 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
19297 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 19298
53b2623d
PE
19299 * indent.c (sane_tab_width): New function.
19300 (current_column, scan_for_column, Findent_to, position_indentation)
19301 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 19302 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 19303
51cab52b 19304 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 19305
f2ed8a70
PE
19306 * lisp.h (lint_assume): New macro.
19307 * composite.c (composition_gstring_put_cache):
19308 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
19309
abe80cc6
PE
19310 * editfns.c, insdel.c:
19311 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 19312
b02c740e
PE
19313 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
19314
ebc96716
PE
19315 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
19316
b4e50fa0 19317 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 19318 Use much-faster test for byte-length change.
311d5d7c 19319 Don't assume string byte-length fits in 'int'.
a4cf38e4 19320 Check that character arg fits in 'int'.
85461888 19321 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 19322
c0c1ee9f
PE
19323 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
19324
a498d7f4
PE
19325 * fns.c (concat): Catch string overflow earlier.
19326 Do not rely on integer wraparound.
19327
51cab52b
PE
19328 * dispextern.h (struct it.overlay_strings_charpos)
19329 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
19330 * xdisp.c (forward_to_next_line_start)
19331 (back_to_previous_visible_line_start)
19332 (reseat_at_next_visible_line_start, next_element_from_buffer):
19333 Don't arbitrarily truncate the value of 'selective' to int.
19334
76031fad
PE
19335 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
19336
5eb55db9
PE
19337 * composite.c: Don't truncate sizes to 'int'.
19338 (composition_gstring_p, composition_reseat_it)
19339 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
19340 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
19341 not EMACS_UINT, for indexes.
5eb55db9 19342
0703a717
PE
19343 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
19344
d6202519
PE
19345 * buffer.c: Include <verify.h>.
19346 (struct sortvec.priority, struct sortstr.priority):
8961a454 19347 Now EMACS_INT, not int.
c20998a7 19348 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
19349 (struct sortstr.size, record_overlay_string)
19350 (struct sortstrlist.size, struct sortlist.used):
19351 Don't truncate size to int.
19352 (record_overlay_string): Check for size-calculation overflow.
d6202519 19353 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 19354
d5a19415
JM
193552011-06-22 Jim Meyering <meyering@redhat.com>
19356
029529ac 19357 Don't leak an XBM-image-sized buffer
d5a19415
JM
19358 * image.c (xbm_load): Free the image buffer after using it.
19359
a9041e6c
PE
193602011-06-21 Paul Eggert <eggert@cs.ucla.edu>
19361
19362 Port to Sun C.
19363 * composite.c (find_automatic_composition): Omit needless 'return 0;'
19364 that Sun C diagnosed.
19365 * fns.c (secure_hash): Fix pointer signedness issue.
19366 * intervals.c (static_offset_intervals): New function.
19367 (offset_intervals): Use it.
19368
7f3f739f
LL
193692011-06-21 Leo Liu <sdl.web@gmail.com>
19370
19371 * deps.mk (fns.o):
19372 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
19373 sha512.h.
19374
19375 * fns.c (secure_hash): Rename from crypto_hash_function and change
19376 the first arg to accept symbols.
5b66d427 19377 (Fsecure_hash): New primitive.
7f3f739f
LL
19378 (syms_of_fns): New symbols.
19379
76147d94
DD
193802011-06-20 Deniz Dogan <deniz@dogan.se>
19381
19382 * process.c (Fset_process_buffer): Clarify return value in
19383 docstring.
19384
7d7d0045
CY
193852011-06-18 Chong Yidong <cyd@stupidchicken.com>
19386
19387 * dispnew.c (add_window_display_history): Use BVAR.
19388
19389 * xdisp.c (debug_method_add): Use BVAR.
19390 (check_window_end, dump_glyph_matrix, dump_glyph)
19391 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
19392
19393 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
19394 Likewise.
19395
19396 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
19397 check till after the cache is created in init_frame_faces.
19398
ff2bc410
SM
193992011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
19400
19401 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
19402
28177add
PE
194032011-06-16 Paul Eggert <eggert@cs.ucla.edu>
19404
dd3482fe
PE
19405 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
19406 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
19407 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
19408
393d71f3 19409 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
19410 * fileio.c (Finsert_file_contents):
19411 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
19412 Remove the old (too-loose) buffer overflow checks.
19413 They weren't needed, since make_gap checks for buffer overflow.
19414 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
19415 The old code merely checked for Emacs fixnum overflow, and relied
19416 on undefined (wraparound) behavior. The new code avoids undefined
19417 behavior, and also checks for ptrdiff_t and/or size_t overflow.
19418
2e6813b0 19419 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
19420 Tune. Don't use wider integers than needed. Don't use alloca.
19421 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 19422
599a9e4f
PE
19423 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
19424
99561444
PE
19425 * insdel.c, lisp.h (buffer_overflow): New function.
19426 (insert_from_buffer_1, replace_range, replace_range_2):
19427 * insdel.c (make_gap_larger):
19428 * editfns.c (Finsert_char):
19429 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
19430
28177add
PE
19431 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
19432
e69dafad
PE
194332011-06-15 Paul Eggert <eggert@cs.ucla.edu>
19434
4baa020d 19435 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 19436
b1c46f02
PE
19437 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
19438 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
19439
e69dafad
PE
19440 * fileio.c: Don't assume EMACS_INT fits in off_t.
19441 (emacs_lseek): New static function.
19442 (Finsert_file_contents, Fwrite_region): Use it.
19443 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
19444
566684ea
PE
19445 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
19446
e6966cd6
PE
19447 * fns.c: Don't overflow int when computing a list length.
19448 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
19449 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
19450 truncation on 64-bit hosts. Check for QUIT every
19451 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
19452 faster and is responsive enough.
19453 (Flength): Report an error instead of overflowing an integer.
19454 (Fsafe_length): Return a float if the value is not representable
19455 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 19456 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 19457 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 19458
dd0b0efb
PE
19459 * alloc.c: Check that resized vectors' lengths fit in fixnums.
19460 (header_size, word_size): New constants.
19461 (allocate_vectorlike): Don't check size overflow here.
19462 (allocate_vector): Check it here instead, since this is the only
19463 caller of allocate_vectorlike that could cause overflow.
19464 Check that the new vector's length is representable as a fixnum.
19465
86fe5cfe
PE
19466 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
19467 The previous code was bogus. For example, next_almost_prime (32)
19468 returned 39, which is undesirable as it is a multiple of 3; and
19469 next_almost_prime (24) returned 25, which is a multiple of 5 so
19470 why was the code bothering to check for multiples of 7?
19471
80e88859
PE
19472 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
19473
4a2f0ad6
PE
19474 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
19475
f66c7cf8
PE
19476 Variadic C functions now count arguments with ptrdiff_t.
19477 This partly undoes my 2011-03-30 change, which replaced int with size_t.
19478 Back then I didn't know that the Emacs coding style prefers signed int.
19479 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
19480 were being counted with int, which may truncate counts on 64-bit
19481 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
19482 * lisp.h (struct Lisp_Subr.function.aMANY)
19483 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
19484 Arg counts are now ptrdiff_t, not size_t.
19485 All variadic functions and their callers changed accordingly.
19486 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
19487 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
19488 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
19489 * callint.c (Fcall_interactively): Check arg count for overflow,
19490 to avoid potential buffer overrun. Use signed char, not 'int',
19491 for 'varies' array, so that we needn't bother to check its size
19492 calculation for overflow.
19493 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
19494 * eval.c (apply_lambda):
19495 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
19496 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
19497 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
19498
a1759b76
PE
19499 * callint.c (Fcall_interactively): Don't use index var as event count.
19500
d96be9fc
PE
19501 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
19502 * mem-limits.h (SIZE): Remove; no longer used.
19503
a690a978 19504 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 19505
578c21e6
PE
19506 Remove unnecessary casts.
19507 * xterm.c (x_term_init):
19508 * xfns.c (x_set_border_pixel):
19509 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
19510 These aren't needed now that we assume ANSI C.
19511
96f53c6c
PE
19512 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
19513 It's more likely to cause problems (due to unsigned overflow)
19514 than to cure them.
19515
83c77d31
PE
19516 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
19517
ee2079f1
PE
19518 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
19519
6da65536
PE
19520 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
19521
7147c4a4
PE
19522 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
19523
193e32d9
PE
19524 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
19525
e5533da6
PE
19526 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
19527
9910e595
PE
19528 GLYPH_CODE_FACE returns EMACS_INT, not int.
19529 * dispextern.h (merge_faces):
19530 * xfaces.c (merge_faces):
01103c44
PE
19531 * xdisp.c (get_next_display_element, next_element_from_display_vector):
19532 Don't assume EMACS_INT fits in int.
9910e595 19533
2638320e
PE
19534 * character.h (CHAR_VALID_P): Remove unused parameter.
19535 * fontset.c, lisp.h, xdisp.c: All uses changed.
19536
045eb8d9
PE
19537 * editfns.c (Ftranslate_region_internal): Omit redundant test.
19538
c1f134b5
PE
19539 * fns.c (concat): Minor tuning based on overflow analysis.
19540 This doesn't fix any bugs. Use int to hold character, instead
19541 of constantly refetching from Emacs object. Use XFASTINT, not
19542 XINT, for value known to be a character. Don't bother comparing
19543 a single byte to 0400, as it's always less.
19544
395fcb93 19545 * floatfns.c (Fexpt):
327eeec8
PE
19546 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
19547
abbd3d23
PE
19548 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
19549 for characters.
19550
684a03ef
PE
19551 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
19552
0fed43f3
PE
19553 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
19554 Without this fix, on a 64-bit host (aset S 0 4294967386) would
19555 incorrectly succeed when S was a string, because 4294967386 was
19556 truncated before it was used.
19557
8fd02eb7
PE
19558 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
19559 Otherwise, an out-of-range integer could cause undefined behavior
19560 on a 64-bit host.
19561
f8c86b69
PE
19562 * composite.c: Use int, not EMACS_INT, for characters.
19563 (fill_gstring_body, composition_compute_stop_pos): Use int, not
19564 EMACS_INT, for values that are known to be in character range.
19565 This doesn't fix any bugs but is the usual style inside Emacs and
19566 may generate better code on 32-bit machines.
19567
34206dd2
PE
19568 Make sure a 64-bit char is never passed to ENCODE_CHAR.
19569 This is for reasons similar to the recent CHAR_STRING fix.
19570 * charset.c (Fencode_char): Check that character arg is actually
19571 a character. Pass an int to ENCODE_CHAR.
19572 * charset.h (ENCODE_CHAR): Verify that the character argument is no
19573 wider than 'int', as a compile-time check to prevent future regressions
19574 in this area.
19575
c5958d4c 19576 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
19577
19578 Make sure a 64-bit char is never passed to CHAR_STRING.
19579 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
19580 by silently ignoring the top 32 bits, allowing some values
19581 that were far too large to be valid characters.
19582 * character.h: Include <verify.h>.
19583 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
19584 arguments are no wider than unsigned, as a compile-time check
19585 to prevent future regressions in this area.
19586 * data.c (Faset):
01103c44 19587 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
19588 (Fsubst_char_in_region):
19589 * fns.c (concat):
19590 * xdisp.c (decode_mode_spec_coding):
19591 Adjust to CHAR_STRING's new requirement.
19592 * editfns.c (Finsert_char, Fsubst_char_in_region):
19593 * fns.c (concat): Check that character args are actually
19594 characters. Without this test, these functions did the wrong
19595 thing with wildly out-of-range values on 64-bit hosts.
19596
d37ca623
PE
19597 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
19598 These casts should not be needed on 32-bit hosts, either.
19599 * keyboard.c (read_char):
19600 * lread.c (Fload): Remove casts to unsigned.
19601
ea204efb
PE
19602 * lisp.h (UNSIGNED_CMP): New macro.
19603 This fixes comparison bugs on 64-bit hosts.
19604 (ASCII_CHAR_P): Use it.
19605 * casefiddle.c (casify_object):
01103c44 19606 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
19607 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
19608 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
19609 * dispextern.h (FACE_FROM_ID):
19610 * keyboard.c (read_char): Use UNSIGNED_CMP.
19611
41cb286c
PE
19612 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
19613 not to EMACS_INT, to avoid GCC warning.
19614
4a1b9832
PE
19615 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
19616
55daad71
PE
19617 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
19618 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
19619 isn't needed on 32-bit machines.
8f95c75c 19620
01103c44
PE
19621 * buffer.c (Fgenerate_new_buffer_name):
19622 Use EMACS_INT for count, not int.
0ceccced 19623 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
19624
19625 * data.c (Qcompiled_function): Now static.
19626
c6f072e7
PE
19627 * window.c (window_body_lines): Now static.
19628
20ce5912
PE
19629 * image.c (gif_load): Rename local to avoid shadowing.
19630
9c4c5f81
PE
19631 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
19632 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
19633 * alloc.c (make_save_value): Integer argument is now of type
19634 ptrdiff_t, not int.
19635 (mark_object): Use ptrdiff_t, not int.
19636 * lisp.h (pD): New macro.
19637 * print.c (print_object): Use it.
19638
c0c5c8ae
PE
19639 * alloc.c: Use EMACS_INT, not int, to count objects.
19640 (total_conses, total_markers, total_symbols, total_vector_size)
19641 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
19642 (total_free_floats, total_floats, total_free_intervals)
19643 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
19644 Now EMACS_INT, not int. All uses changed.
19645 (Fgarbage_collect): Compute overall total using a double, so that
19646 integer overflow is less likely to be a problem. Check for overflow
19647 when converting back to an integer.
5a25e253
PE
19648 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
19649 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
19650 These were 'int' variables that could overflow on 64-bit hosts;
19651 they were never used, so remove them instead of repairing them.
211a0b2a 19652 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
19653 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
19654 Previously, this ceilinged at INT_MAX, but that doesn't work on
19655 64-bit machines.
e46bb31a 19656 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 19657
c78baabf 19658 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 19659 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
19660 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
19661 when a (possibly-narrower) signed value would do just as well.
19662 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 19663
c9d624c6
PE
19664 * alloc.c: Catch some string size overflows that we were missing.
19665 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
19666 for convenience in STRING_BYTES_MAX.
19667 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
19668 The definition here is exact; the one in lisp.h was approximate.
19669 (allocate_string_data): Check for string overflow. This catches
19670 some instances we weren't catching before. Also, it catches
19671 size_t overflow on (unusual) hosts where SIZE_MAX <= min
19672 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
19673 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 19674
c9d624c6
PE
19675 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
19676 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 19677 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 19678
353032ce
PE
19679 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
19680
2bccce07
PE
19681 * alloc.c (Fmake_string): Check for out-of-range init.
19682
0ac30604
SM
196832011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
19684
19685 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
19686
c195f2de
JD
196872011-06-14 Jan Djärv <jan.h.d@swipnet.se>
19688
19689 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
19690 xg_get_default_scrollbar_width.
19691
19692 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
19693 (int_gtk_range_get_value): Move to the scroll bar part of the file.
19694 (style_changed_cb): Call update_theme_scrollbar_width and call
19695 x_set_scroll_bar_default_width and xg_frame_set_char_size for
19696 all frames (Bug#8505).
19697 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
19698 Call gtk_window_set_resizable if HAVE_GTK3.
19699 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
19700 and height if HAVE_GTK3 (Bug#8505).
19701 (scroll_bar_width_for_theme): New variable.
19702 (update_theme_scrollbar_width): New function.
19703 (xg_get_default_scrollbar_width): Move code to
19704 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
19705 (xg_initialize): Call update_theme_scrollbar_width.
19706
19707 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
19708
19709 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
19710
e10ac9f1
MR
197112011-06-12 Martin Rudalics <rudalics@gmx.at>
19712
19713 * frame.c (make_frame): Call other_buffer_safely instead of
19714 other_buffer.
19715
19716 * window.c (temp_output_buffer_show): Call display_buffer with
19717 second argument Vtemp_buffer_show_specifiers and reset latter
19718 immediately after the call.
19719 (Vtemp_buffer_show_specifiers): New variable.
19720 (auto_window_vscroll_p, next_screen_context_lines)
19721 (Vscroll_preserve_screen_position): Remove leading asterisks from
19722 doc-strings.
19723
2d3c217e 197242011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 19725
7b7f97e8 19726 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
19727 * buffer.c (Qclone_number): Remove for now, as it's unused.
19728 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
19729 (record_buffer): Remove unused local.
19730 * frame.c (other_visible_frames, frame_buffer_list): Now static.
19731 (set_frame_buffer_list): Remove; unused.
19732 * frame.h (other_visible_frames): Remove decl.
19733 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
19734 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
19735 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
19736 if HAVE_GPM.
19737 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
19738 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
19739 Define only if HAVE_GPM.
19740 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
19741 (update_hints_inhibit): Remove; never set. All uses removed.
19742 * widgetprv.h (emacsFrameClassRec): Remove decl.
19743 * window.c (delete_deletable_window): Now returns void, since it
19744 wasn't returning anything.
19745 (compare_window_configurations): Remove unused locals.
19746 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
19747 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
19748 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
19749 the same widths as pointers. This follows up on the 2011-05-06 patch.
19750 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
19751 * xterm.h: Likewise.
19752 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
19753
1384b89e
JB
197542011-06-12 Juanma Barranquero <lekktu@gmail.com>
19755
19756 * makefile.w32-in: Update dependencies.
19757 (LISP_H): Add lib/intprops.h.
19758
1100a63c
CY
197592011-06-11 Chong Yidong <cyd@stupidchicken.com>
19760
19761 * image.c (gif_load): Add animation frame delay to the metadata.
19762 (syms_of_image): Use DEFSYM. New symbol `delay'.
19763
6198ccd0
MR
197642011-06-11 Martin Rudalics <rudalics@gmx.at>
19765
19766 * window.c (delete_deletable_window): Re-add.
19767 (Fset_window_configuration): Rewrite to handle dead buffers and
19768 consequently deletable windows.
19769 (window_tree, Fwindow_tree): Remove. Supply functionality in
19770 window.el.
19771 (compare_window_configurations): Simplify code.
19772
b6e3633c
AS
197732011-06-11 Andreas Schwab <schwab@linux-m68k.org>
19774
1ab0dee5
AS
19775 * image.c (imagemagick_load_image): Fix type mismatch.
19776 (Fimagemagick_types): Likewise.
19777
b6e3633c
AS
19778 * window.h (replace_buffer_in_windows): Declare.
19779
9397e56f
MR
197802011-06-11 Martin Rudalics <rudalics@gmx.at>
19781
19782 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
19783 Qclone_number. Remove external declaration of Qdelete_window.
19784 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
19785 code.
640c8776
SM
19786 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
19787 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
19788 (Fother_buffer): Rewrite doc-string. Major rewrite for new
19789 buffer list implementation.
19790 (other_buffer_safely): New function.
19791 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
19792 calls to replace_buffer_in_windows and
19793 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
19794 if allowed.
19795 (record_buffer): Inhibit quitting and rewrite using quittable
19796 functions. Run Qbuffer_list_update_hook if allowed.
19797 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
19798 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
19799 Move switch-to-buffer to window.el.
9397e56f
MR
19800 (bury-buffer): Move to window.el.
19801 (Vbuffer_list_update_hook): New variable.
19802
19803 * lisp.h (other_buffer_safely): Add prototype in buffer.c
19804 section.
19805
19806 * window.h (resize_frame_windows): Move up in code.
19807 (Fwindow_frame): Remove EXFUN.
19808 (replace_buffer_in_all_windows): Remove prototype.
19809 (replace_buffer_in_windows_safely): Add prototype.
19810
19811 * window.c: Declare Qdelete_window static again. Move down
19812 declaration of select_count.
19813 (Fnext_window, Fprevious_window): Rewrite doc-strings.
19814 (Fother_window): Move to window.el.
19815 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
19816 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
19817 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
19818 window.el.
19819 (replace_buffer_in_windows): Implement by calling
19820 Qreplace_buffer_in_windows.
19821 (replace_buffer_in_all_windows): Remove with some functionality
19822 moved into replace_buffer_in_windows_safely.
19823 (replace_buffer_in_windows_safely): New function.
19824 (select_window_norecord, select_frame_norecord): Move in front
19825 of run_window_configuration_change_hook. Remove now obsolete
19826 declarations.
640c8776
SM
19827 (Fset_window_buffer): Rewrite doc-string.
19828 Call Qrecord_window_buffer.
9397e56f
MR
19829 (keys_of_window): Move binding for other-window to window.el.
19830
b50691aa
CY
198312011-06-11 Chong Yidong <cyd@stupidchicken.com>
19832
19833 * dispextern.h (struct image): Replace data member, whose int_val
19834 and ptr_val fields were not used by anything, with a single
19835 lisp_val object.
19836
19837 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
19838 (gif_clear_image, gif_load, imagemagick_load_image)
19839 (gs_clear_image, gs_load): Callers changed.
19840
3f754b86
PE
198412011-06-10 Paul Eggert <eggert@cs.ucla.edu>
19842
cca69397
PE
19843 * buffer.h: Include <time.h>, for time_t.
19844 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
19845
109e28d0
PE
19846 Fix minor problems found by static checking.
19847
60737f02
PE
19848 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
19849
4b66faf3
PE
19850 Make identifiers static if they are not used in other modules.
19851 * data.c (Qcompiled_function, Qframe, Qvector):
19852 * image.c (QimageMagick, Qsvg):
19853 * minibuf.c (Qmetadata):
19854 * window.c (resize_window_check, resize_root_window): Now static.
19855 * window.h (resize_window_check, resize_root_window): Remove decls.
19856
109e28d0
PE
19857 * window.c (window_deletion_count, delete_deletable_window):
19858 Remove; unused.
46a4ce9e
PE
19859 (window_body_lines): Now static.
19860 (Fdelete_other_windows_internal): Mark vars as initialized.
19861 Make sure 'resize_failed' is initialized.
19862 (run_window_configuration_change_hook): Rename local to avoid shadowing.
19863 (resize_window_apply): Remove unused local.
19864 * window.h (delete_deletable_window): Remove decl.
19865
109e28d0 19866 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
19867 (imagemagick_load_image): Fix pointer signedness problem by changing
19868 last arg from unsigned char * to char *. All uses changed.
19869 Also, fix a local for similar reasons.
19870 Remove unused locals. Remove locals to avoid shadowing.
19871 (fn_rsvg_handle_free): Remove; unused.
19872 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 19873 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 19874
3f754b86
PE
19875 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
19876
2547adb1
CY
198772011-06-10 Chong Yidong <cyd@stupidchicken.com>
19878
19879 * image.c (gif_load): Fix omitted cast error introduced by
19880 2011-06-06 change.
19881
2c8e37d4
MR
198822011-06-10 Martin Rudalics <rudalics@gmx.at>
19883
19884 * window.h (resize_proportionally, orig_total_lines)
19885 (orig_top_line): Remove from window structure.
19886 (set_window_height, set_window_width, change_window_heights)
19887 (Fdelete_window): Remove prototypes.
19888 (resize_frame_windows): Remove duplicate declaration.
19889
440a42e3
EZ
198902011-06-10 Eli Zaretskii <eliz@gnu.org>
19891
19892 * window.h (resize_frame_windows, resize_window_check)
19893 (delete_deletable_window, resize_root_window)
19894 (resize_frame_windows): Declare prototypes.
19895
19896 * window.c (resize_window_apply): Make definition be "static" to
19897 match the prototype.
19898
562dd5e9
MR
198992011-06-10 Martin Rudalics <rudalics@gmx.at>
19900
19901 * window.c: Remove declarations of Qwindow_size_fixed,
19902 window_min_size_1, window_min_size_2, window_min_size,
19903 size_window, window_fixed_size_p, enlarge_window, delete_window.
19904 Remove static from declaration of Qdelete_window, it's
19905 temporarily needed by Fbury_buffer.
19906 (replace_window): Don't assign orig_top_line and
19907 orig_total_lines.
19908 (Fdelete_window, delete_window): Remove. Window deletion is
19909 handled by window.el.
640c8776
SM
19910 (window_loop): Remove DELETE_OTHER_WINDOWS case.
19911 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
19912 (Fdelete_other_windows): Remove. Deleting other windows is
19913 handled by window.el.
19914 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
19915 handled in window.el.
19916 (window_min_size_2, window_min_size_1, window_min_size): Remove.
19917 Window minimum sizes are handled in window.el.
19918 (shrink_windows, size_window, set_window_height)
19919 (set_window_width, change_window_heights, window_height)
19920 (window_width, CURBEG, CURSIZE, enlarge_window)
19921 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
19922 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
19923 handled in window.el.
19924 (make_dummy_parent): Rename to make_parent_window and give it a
19925 second argument horflag.
19926 (make_window): Don't set resize_proportionally any more.
19927 (Fsplit_window): Remove. Windows are split in window.el.
19928 (save_restore_action, save_restore_orig_size)
19929 (shrink_window_lowest_first, save_restore_orig_size): Remove.
19930 Resize mini windows in window.el.
19931 (grow_mini_window, shrink_mini_window): Implement by calling
19932 Qresize_root_window_vertically, resize_window_check and
19933 resize_window_apply.
640c8776
SM
19934 (saved_window, Fset_window_configuration, save_window_save):
19935 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
19936 resize_proportionally.
19937 (window_min_height, window_min_width): Move to window.el.
19938 (keys_of_window): Move bindings for delete-other-windows,
19939 split-window, delete-window and enlarge-window to window.el.
19940
19941 * buffer.c: Temporarily extern Qdelete_window.
19942 (Fbury_buffer): Temporarily call Qdelete_window instead of
19943 Fdelete_window (Fbury_buffer will move to window.el soon).
19944
19945 * frame.c (set_menu_bar_lines_1): Remove code handling
19946 orig_top_line and orig_total_lines.
19947
19948 * dispnew.c (adjust_frame_glyphs_initially): Don't use
19949 set_window_height but set heights directly.
19950 (change_frame_size_1): Use resize_frame_windows.
19951
19952 * xdisp.c (init_xdisp): Don't use set_window_height but set
19953 heights directly.
19954
640c8776
SM
19955 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
19956 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
19957 run_window_configuration_change_hook.
19958
19959 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
19960 instead of change_window_heights and run
19961 run_window_configuration_change_hook.
19962
1a13852e
MR
199632011-06-09 Martin Rudalics <rudalics@gmx.at>
19964
19965 * window.c (replace_window): Rename second argument REPLACEMENT to
19966 NEW. New third argument SETFLAG. Rewrite.
19967 (delete_window, make_dummy_parent): Call replace_window with
19968 third argument 1.
19969 (window_list_1): Move down in code.
19970 (run_window_configuration_change_hook): Move set_buffer part
19971 before select_frame_norecord part in order to unwind correctly.
19972 Rename count1 to count.
19973 (recombine_windows, delete_deletable_window, resize_root_window)
19974 (Fdelete_other_windows_internal)
19975 (Frun_window_configuration_change_hook, make_parent_window)
19976 (resize_window_check, resize_window_apply, Fresize_window_apply)
19977 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
19978 (Fdelete_window_internal, Fresize_mini_window_internal):
19979 New functions.
1a13852e
MR
19980 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
19981
f3d1777e
MR
199822011-06-08 Martin Rudalics <rudalics@gmx.at>
19983
496e208e
MR
19984 * window.h (window): Add some new members to window structure -
19985 normal_lines, normal_cols, new_total, new_normal, clone_number,
19986 splits, nest, prev_buffers, next_buffers.
19987 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 19988 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 19989
f3d1777e
MR
19990 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
19991 Remove.
496e208e
MR
19992 (make_dummy_parent): Set new members of windows structure.
19993 (make_window): Move down in code. Handle new members of window
19994 structure.
19995 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
19996 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
19997 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
19998 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
19999 (Fset_window_next_buffers, Fset_window_clone_number):
20000 New functions.
496e208e
MR
20001 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
20002 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
20003 Doc-string fixes.
20004 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
20005 Argument WINDOW can be now internal window too.
20006 (Fwindow_use_time): Move up in code.
20007 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
20008 Rewrite doc-string.
20009 (Fset_window_configuration, saved_window)
20010 (Fcurrent_window_configuration, save_window_save): Handle new
20011 members of window structure.
b9e809c2
MR
20012 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
20013 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
20014 (syms_of_window): New Lisp objects Qrecord_window_buffer,
20015 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
20016 Qget_mru_window, Qresize_root_window,
20017 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
20018 Qauto_buffer_name; staticpro them.
f3d1777e 20019
abde8f8c
MR
200202011-06-07 Martin Rudalics <rudalics@gmx.at>
20021
20022 * window.c (Fwindow_total_size, Fwindow_left_column)
20023 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
20024 (Fwindow_list_1): New functions.
20025 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
20026 (Fwindow_width, Fscroll_left, Fscroll_right):
20027 Use window_body_cols instead of window_box_text_cols.
20028 (delete_window, Fset_window_configuration):
20029 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
20030 (delete_all_subwindows): Take a window as argument and not a
20031 structure. Rewrite.
190b47e6
MR
20032 (window_loop): Remove handling of GET_LRU_WINDOW and
20033 GET_LARGEST_WINDOW.
20034 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
20035
20036 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
20037 window_box_text_cols. delete_all_subwindows now takes a
20038 Lisp_Object as argument.
abde8f8c 20039
640c8776
SM
20040 * indent.c (compute_motion, Fcompute_motion):
20041 Use window_body_cols instead of window_box_text_cols.
abde8f8c 20042
fa8a67e6
MR
20043 * frame.c (delete_frame): Call delete_all_subwindows with root
20044 window as argument.
20045
a54e3482
DC
200462011-06-07 Daniel Colascione <dan.colascione@gmail.com>
20047
20048 * fns.c (Fputhash): Document return value.
20049
60002bf5
CY
200502011-06-06 Chong Yidong <cyd@stupidchicken.com>
20051
20052 * image.c (gif_load): Implement gif89a spec "no disposal" method.
20053
0c671da6 200542011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 20055
b862a52a 20056 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 20057
be44ca6c
PE
20058 Check for overflow when converting integer to cons and back.
20059 * charset.c (Fdefine_charset_internal, Fdecode_char):
20060 Use cons_to_unsigned to catch overflow.
20061 (Fencode_char): Use INTEGER_TO_CONS.
20062 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
20063 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
20064 * data.c (long_to_cons, cons_to_long): Remove.
20065 (cons_to_unsigned, cons_to_signed): New functions.
20066 These signal an error for invalid or out-of-range values.
20067 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
20068 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
20069 * font.c (Ffont_variation_glyphs):
20070 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
20071 * lisp.h: Include <intprops.h>.
20072 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
20073 (cons_to_signed, cons_to_unsigned): New decls.
20074 (long_to_cons, cons_to_long): Remove decls.
20075 * undo.c (record_first_change): Use INTEGER_TO_CONS.
20076 (Fprimitive_undo): Use CONS_TO_INTEGER.
20077 * xfns.c (Fx_window_property): Likewise.
20078 * xselect.c: Include <limits.h>.
20079 (x_own_selection, selection_data_to_lisp_data):
20080 Use INTEGER_TO_CONS.
20081 (x_handle_selection_request, x_handle_selection_clear)
20082 (x_get_foreign_selection, Fx_disown_selection_internal)
20083 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
20084 (lisp_data_to_selection_data): Use cons_to_unsigned.
20085 (x_fill_property_data): Use cons_to_signed.
20086 Report values out of range.
20087
d1f3d2af
PE
20088 Check for buffer and string overflow more precisely.
20089 * buffer.h (BUF_BYTES_MAX): New macro.
20090 * lisp.h (STRING_BYTES_MAX): New macro.
20091 * alloc.c (Fmake_string):
20092 * character.c (string_escape_byte8):
20093 * coding.c (coding_alloc_by_realloc):
20094 * doprnt.c (doprnt):
20095 * editfns.c (Fformat):
20096 * eval.c (verror):
20097 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
20098 since they may not be the same number.
20099 * editfns.c (Finsert_char):
20100 * fileio.c (Finsert_file_contents):
20101 Likewise for BUF_BYTES_MAX.
20102
dd52fcea
PE
20103 * image.c: Use ptrdiff_t, not int, for sizes.
20104 (slurp_file): Switch from int to ptrdiff_t.
20105 All uses changed.
20106 (slurp_file): Check that file size fits in both size_t (for
20107 malloc) and ptrdiff_t (for sanity and safety).
20108
7f9bbdbb
PE
20109 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
20110 if b->modtime has its maximal value.
20111
dfe18f82
PE
20112 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
20113
84acfcf0
PE
20114 Don't assume time_t can fit into int.
20115 * buffer.h (struct buffer.modtime): Now time_t, not int.
20116 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
20117 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
20118
ccd9a01a
PE
20119 Minor fixes for signed vs unsigned integers.
20120 * character.h (MAYBE_UNIFY_CHAR):
20121 * charset.c (maybe_unify_char):
20122 * keyboard.c (read_char, reorder_modifiers):
20123 XINT -> XFASTINT, since the integer must be nonnegative.
20124 * ftfont.c (ftfont_spec_pattern):
20125 * keymap.c (access_keymap, silly_event_symbol_error):
20126 XUINT -> XFASTINT, since the integer must be nonnegative.
20127 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
20128 since it makes no difference and we prefer signed.
20129 * keyboard.c (record_char): Use XUINT when all the neighbors do.
20130 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
20131 nonnegative.
20132
d6d100dd
SM
201332011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
20134
20135 * window.h (Fwindow_frame): Declare.
20136
2b6148e4
PE
201372011-06-06 Paul Eggert <eggert@cs.ucla.edu>
20138
20139 * alloc.c: Simplify handling of large-request failures (Bug#8800).
20140 (SPARE_MEMORY): Always define.
20141 (LARGE_REQUEST): Remove.
20142 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
20143
f230ecc9
MR
201442011-06-06 Martin Rudalics <rudalics@gmx.at>
20145
727e958e
MR
20146 * lisp.h: Move EXFUNS for Fframe_root_window,
20147 Fframe_first_window and Fset_frame_selected_window to window.h.
20148
20149 * window.h: Move EXFUNS for Fframe_root_window,
20150 Fframe_first_window and Fset_frame_selected_window here from
20151 lisp.h.
20152
20153 * frame.c (Fwindow_frame, Fframe_first_window)
20154 (Fframe_root_window, Fframe_selected_window)
20155 (Fset_frame_selected_window): Move to window.c.
20156 (Factive_minibuffer_window): Move to minibuf.c.
20157 (Fother_visible_frames_p): New function.
20158
20159 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
20160
f230ecc9
MR
20161 * window.c (decode_window, decode_any_window): Move up in code.
20162 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
20163 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
20164 (Fwindow_buffer): Move up and rewrite doc-string.
20165 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
20166 (Fwindow_prev): New functions.
727e958e
MR
20167 (Fwindow_frame): Move here from frame.c. Accept any window as
20168 argument.
20169 (Fframe_root_window, Fframe_first_window)
20170 (Fframe_selected_window): Move here from frame.c. Accept frame
20171 or arbitrary window as argument. Update doc-strings.
20172 (Fminibuffer_window): Move up in code.
20173 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
20174 (Fset_frame_selected_window): Move here from frame.c.
20175 Marginal rewrite.
727e958e
MR
20176 (Fselected_window, select_window, Fselect_window): Move up in
20177 code. Minor doc-string fixes.
f230ecc9 20178
4d09bcf6
PE
201792011-06-06 Paul Eggert <eggert@cs.ucla.edu>
20180
20181 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
20182 Do not assume that spare memory exists; that assumption is valid
20183 only if SYSTEM_MALLOC.
20184 (LARGE_REQUEST): New macro, so that the issue of large requests
20185 is separated from the issue of spare memory.
20186
810928a2
AS
201872011-06-05 Andreas Schwab <schwab@linux-m68k.org>
20188
172418ad
AS
20189 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
20190 format. (Bug#8806)
20191
43f862f7
AS
20192 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
20193
810928a2
AS
20194 * xfns.c (x_set_scroll_bar_default_width): Move declarations
20195 before statements.
20196
a059fe24
JD
201972011-06-05 Jan Djärv <jan.h.d@swipnet.se>
20198
20199 * gtkutil.c (xg_get_default_scrollbar_width): New function.
20200
20201 * gtkutil.h: Declare xg_get_default_scrollbar_width.
20202
20203 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
20204 min width by calling x_set_scroll_bar_default_width (Bug#8505).
20205
989bf368
JB
202062011-06-05 Juanma Barranquero <lekktu@gmail.com>
20207
20208 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
20209
4b80f674
CY
202102011-06-04 Chong Yidong <cyd@stupidchicken.com>
20211
20212 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
20213 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
20214 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
20215 New error handlers.
4b80f674
CY
20216 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
20217 Obey Vx_select_enable_clipboard_manager. Catch errors in
20218 x_clipboard_manager_save (Bug#8779).
20219 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 20220 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 20221
99a33b77 202222011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
20223
20224 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
20225
99a33b77 202262011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
20227
20228 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
20229 in the current matrix if keep_current_p is non-zero.
20230
8264569d
EZ
202312011-06-04 Eli Zaretskii <eliz@gnu.org>
20232
20233 * bidi.c (bidi_level_of_next_char): Fix last change.
20234
57f97249
EZ
202352011-06-03 Eli Zaretskii <eliz@gnu.org>
20236
fec2107c 20237 Support bidi reordering of text covered by display properties.
57f97249 20238
fec2107c
EZ
20239 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
20240 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
20241 (bidi_cache_search, bidi_cache_iterator_state)
20242 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
20243 (bidi_level_of_next_char, bidi_move_to_visually_next):
20244 Support character positions inside a run of characters covered by a
fec2107c
EZ
20245 display string.
20246 (bidi_paragraph_init, bidi_resolve_explicit_1)
20247 (bidi_level_of_next_char): Call bidi_fetch_char and
20248 bidi_fetch_char_advance instead of FETCH_CHAR and
20249 FETCH_CHAR_ADVANCE.
20250 (bidi_init_it): Initialize new members.
20251 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
20252 definitions.
20253 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
20254 instead of using explicit *_CHAR codes.
d6d100dd
SM
20255 (bidi_resolve_explicit, bidi_resolve_weak):
20256 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
20257 bidirectional text is supported only in multibyte buffers.
20258 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
20259 it to initialize the frame_window_p member of struct bidi_it.
20260 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
20261 (bidi_resolve_explicit, bidi_resolve_weak)
20262 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
20263 bidi_it->nchars is non-positive.
20264 (bidi_level_of_next_char): Don't try to lookup the cache for the
20265 next/previous character if nothing is cached there yet, or if we
20266 were just reseat()'ed to a new position.
c40e2fb2 20267
0e14fe90
EZ
20268 * xdisp.c (set_cursor_from_row): Set start and stop points
20269 according to the row's direction when priming the loop that looks
20270 for the glyph on which to display cursor.
20271 (single_display_spec_intangible_p): Function deleted.
20272 (display_prop_intangible_p): Reimplement to call
20273 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
20274 Accept 3 additional arguments needed by handle_display_spec.
20275 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
20276 values: lists, `(when COND...)' forms, etc.
20277 (single_display_spec_string_p): Support property values that are
20278 lists with the argument STRING its top-level element.
20279 (display_prop_string_p): Fix the condition for processing a
20280 property that is a list to be consistent with handle_display_spec.
fec2107c 20281 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
20282 last portion of handle_display_prop.
20283 (compute_display_string_pos): Accept additional argument
20284 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
20285 value of a `display' property is a "replacing spec".
20286 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
20287 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
20288 the display property, but just return a value indicating whether
20289 the display property will replace the characters it covers.
20290 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
20291 frame_window_p members of struct bidi_it.
d6d100dd
SM
20292 (compute_display_string_pos, compute_display_string_end):
20293 New functions.
fec2107c
EZ
20294 (push_it): Accept second argument POSITION, where pop_it should
20295 jump to continue iteration.
20296 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 20297
fec2107c
EZ
20298 * keyboard.c (adjust_point_for_property): Adjust the call to
20299 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
20300
20301 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
20302 (bidi_init_it): Update prototypes.
20303 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
20304 (compute_display_string_pos, compute_display_string_end):
20305 Declare prototypes.
fec2107c
EZ
20306 (struct bidi_it): New members nchars and disp_pos. ch_len is now
20307 EMACS_INT.
fc6f18ce 20308
40087514 203092011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 20310
57f53182
PE
20311 Malloc failure behavior now depends on size of allocation.
20312 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
20313 * lisp.h: Change signatures accordingly.
20314 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
20315 All callers changed. (Bug#8762)
20316
20317 * gnutls.c: Use Emacs's memory allocators.
20318 Without this change, the gnutls library would invoke malloc etc.
20319 directly, which causes problems on non-SYNC_INPUT hosts, and which
20320 runs afoul of improving memory_full behavior. (Bug#8761)
20321 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
20322 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
20323 xfree instead of the default malloc, realloc, free.
20324 (Fgnutls_boot): No need to check for memory allocation failure,
20325 since xmalloc does that for us.
20326
ac32cd99 20327 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
20328 * category.c (hash_get_category_set):
20329 * ccl.c (ccl_driver):
20330 * charset.c (Fdefine_charset_internal):
20331 * charset.h (struct charset.hash_index):
20332 * composite.c (get_composition_id, gstring_lookup_cache)
20333 (composition_gstring_put_cache):
20334 * composite.h (struct composition.hash_index):
20335 * dispextern.h (struct image.hash):
20336 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
20337 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
20338 (hashfn_equal, hashfn_user_defined, make_hash_table)
20339 (maybe_resize_hash_table, hash_lookup, hash_put)
20340 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
20341 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
20342 (Fsxhash, Fgethash, Fputhash, Fmaphash):
20343 * image.c (make_image, search_image_cache, lookup_image)
20344 (xpm_put_color_table_h):
20345 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 20346 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 20347 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 20348 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
20349 * alloc.c (allocate_vectorlike):
20350 Check for overflow in vector size calculations.
20351 * ccl.c (ccl_driver):
20352 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
20353 * fns.c, image.c: Remove unnecessary static decls that would otherwise
20354 need to be updated by these changes.
40087514
PE
20355 * fns.c (make_hash_table, maybe_resize_hash_table):
20356 Check for integer overflow with large hash tables.
0de4bb68
PE
20357 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
20358 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
20359 (SXHASH_REDUCE): New macro.
20360 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
20361 Use it instead of discarding useful hash info with large hash values.
20362 (sxhash_float): New function.
20363 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
20364 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
20365 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
20366 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
20367 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
20368 Adjust signatures to match updated version of code.
20369 (consing_since_gc): Now EMACS_INT, since a single hash table can
20370 use more than INT_MAX bytes.
20371
698d32e2
DN
203722011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
20373
20374 Make it possible to build with GCC-4.6+ -O2 -flto.
20375
20376 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
20377
fd6fa53f
SM
203782011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
20379
20380 * minibuf.c (get_minibuffer, read_minibuf_unwind):
20381 Call minibuffer-inactive-mode.
20382
864db017
JB
203832011-05-31 Juanma Barranquero <lekktu@gmail.com>
20384
20385 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
20386 Update dependencies.
20387
2ad0baf4
DN
203882011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20389
20390 * data.c (init_data): Remove code for UTS, this system is not
20391 supported anymore.
20392
4fcc2638
DN
203932011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20394
20395 Don't force ./temacs to start in terminal mode.
20396
20397 * frame.c (make_initial_frame): Initialize faces in all cases, not
20398 only when CANNOT_DUMP is defined.
20399 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
20400
c56e0fd5
DN
204012011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20402
20403 * dispnew.c (add_window_display_history): Use const for the string
20404 pointer. Remove declaration, not needed.
20405
333d54da 204062011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 20407
55d4c1b2 20408 Use 'inline', not 'INLINE'.
333d54da 20409 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
20410 * alloc.c, fontset.c (INLINE): Remove.
20411 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
20412 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
20413 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
20414 * gmalloc.c (register_heapinfo): Use inline unconditionally.
20415 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
20416
738db178
DN
204172011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20418
20419 Make it possible to run ./temacs.
20420
20421 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
20422 syms_of_callproc does the same thing. Remove test for
20423 "initialized", do it in the caller.
20424 * emacs.c (main): Avoid calling set_initial_environment when dumping.
20425
620c53a6
SM
204262011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
20427
20428 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
20429 (read_minibuf): Use get_minibuffer.
20430 (syms_of_minibuf): Use DEFSYM.
20431 (Qmetadata): New var.
20432 * data.c (Qbuffer): Don't make it static.
20433 (syms_of_data): Use DEFSYM.
20434
e003a292
PE
204352011-05-31 Paul Eggert <eggert@cs.ucla.edu>
20436
20437 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
20438 (CCL_CODE_MIN): New macro.
20439
ed008a6d
PE
204402011-05-30 Paul Eggert <eggert@cs.ucla.edu>
20441
3687c2ef
PE
20442 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
20443
ed008a6d
PE
20444 * eval.c (Qdebug): Now static.
20445 * lisp.h (Qdebug): Remove decl. This reverts a part of the
20446 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
20447 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
20448
d66c4c7c
CY
204492011-05-29 Chong Yidong <cyd@stupidchicken.com>
20450
20451 * image.c: Various fixes to ImageMagick code comments.
20452 (Fimagemagick_types): Doc fix.
20453
5fbc2025
PE
204542011-05-29 Paul Eggert <eggert@cs.ucla.edu>
20455
0196f88a
PE
20456 Minor fixes prompted by GCC 4.6.0 warnings.
20457
20458 * xselect.c (converted_selections, conversion_fail_tag): Now static.
20459
5fbc2025
PE
20460 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
20461 (x_clipboard_manager_save_all): Move extern decl to ...
20462 * xterm.h: ... here, so that it can be checked for consistency.
20463
1dd3c2d9
CY
204642011-05-29 Chong Yidong <cyd@stupidchicken.com>
20465
20466 * xselect.c (x_clipboard_manager_save_frame)
20467 (x_clipboard_manager_save_all): New functions.
20468 (Fx_clipboard_manager_save): Lisp function deleted.
20469
20470 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
20471 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
20472
20473 * xterm.h: Update prototype.
20474
5ba6571d
WX
204752011-05-28 William Xu <william.xwl@gmail.com>
20476
20477 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
20478 exiting (Bug#8239).
20479
3eaff834
JM
204802011-05-28 Jim Meyering <meyering@redhat.com>
20481
e1900994 20482 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
20483 * fns.c (to_uchar): Define.
20484 (crypto_hash_function): Use it to convert some newly-signed
20485 variables to unsigned, to avoid sign-extension bugs. For example,
20486 without this change, (md5 "truc") would evaluate to
20487 45723a2aff78ff4fff7fff1114760e62 rather than the expected
20488 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 20489 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 20490
0f6990a7
PE
204912011-05-27 Paul Eggert <eggert@cs.ucla.edu>
20492
20493 Integer overflow fixes.
c8a9ca5a 20494
08686060
PE
20495 * dbusbind.c: Serial number integer overflow fixes.
20496 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
20497 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
20498 to hold a serial number that is too large for a fixnum.
20499 (Fdbus_method_return_internal, Fdbus_method_error_internal):
20500 Check for serial numbers out of range. Decode any serial number
59568bf0 20501 that was so large that it became a float. (Bug#8722)
08686060 20502
2d1fc3c7
PE
20503 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
20504 (Fdbus_call_method, Fdbus_call_method_asynchronously):
20505 Use XFASTINT rather than XUINT when numbers are nonnegative.
20506 (xd_append_arg, Fdbus_method_return_internal):
20507 (Fdbus_method_error_internal): Likewise. Also, for unsigned
20508 arguments, check that Lisp number is nonnegative, rather than
59568bf0 20509 silently wrapping negative numbers around. (Bug#8722)
30217ff0 20510 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 20511 (Bug#8722)
2d1fc3c7 20512
c8a9ca5a
PE
20513 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
20514
519e1d69
PE
20515 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
20516
6df6ae42 20517 ccl: Add integer overflow checks.
30569699
PE
20518 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
20519 (IN_INT_RANGE): New macros.
20520 (ccl_driver): Use them to check for integer overflow when
20521 decoding a CCL program. Many of the new checks are whether XINT (x)
20522 fits in int; it doesn't always, on 64-bit hosts. The new version
20523 doesn't catch all possible integer overflows, but it's an
847044ea 20524 improvement. (Bug#8719)
30569699 20525
c11285dc
PE
20526 * alloc.c (make_event_array): Use XINT, not XUINT.
20527 There's no need for unsigned here.
20528
fdccd48e
PE
20529 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
20530 This follows up to the 2011-05-06 change that substituted uintptr_t
20531 for EMACS_INT. This case wasn't caught back then.
20532
37910ab2
PE
20533 Rework Fformat to avoid integer overflow issues.
20534 * editfns.c: Include <float.h> unconditionally, as it's everywhere
20535 now (part of C89). Include <verify.h>.
20536 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
20537 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
20538 (Fformat): Avoid the prepass trying to compute sizes; it was only
20539 approximate and thus did not catch overflow reliably. Instead, walk
20540 through the format just once, formatting and computing sizes as we go,
20541 checking for integer overflow at every step, and allocating a larger
20542 buffer as needed. Keep track separately whether the format is
20543 multibyte. Keep only the most-recently calculated precision, rather
20544 than them all. Record whether each argument has been converted to
20545 string. Use EMACS_INT, not int, for byte and char and arg counts.
20546 Support field widths and precisions larger than INT_MAX. Avoid
20547 sprintf's undefined behavior with conversion specifications such as %#d
20548 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
20549 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
20550 formatting out-of-range floating point numbers with int
9173deec 20551 formats. (Bug#8668)
37910ab2 20552
2e6578fb
PE
20553 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
20554
0ae6bdee
PE
20555 * data.c: Avoid integer truncation in expressions involving floats.
20556 * data.c: Include <intprops.h>.
20557 (arith_driver): When there's an integer overflow in an expression
20558 involving floating point, convert the integers to floating point
20559 so that the resulting value does not suffer from catastrophic
20560 integer truncation. For example, on a 64-bit host (* 4
20561 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
20562 Do not rely on undefined behavior after integer overflow.
20563
de883a70
PE
20564 merge count_size_as_multibyte, parse_str_to_multibyte
20565 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 20566 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
20567 Check for integer overflow.
20568 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
20569 since it's now a duplicate of the other. This is more of
20570 a character than a buffer op, so better that it's in character.c.
20571 * fns.c, print.c: Adjust to above changes.
20572
2ff916cb
PE
205732011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
20574
20575 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
20576
f1b54466
PE
205772011-05-27 Paul Eggert <eggert@cs.ucla.edu>
20578
fb1ac845
PE
20579 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
20580 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
20581 (x_clipboard_manager_save): Now static.
20582 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
20583
f1b54466
PE
20584 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
20585 (crypto_hash_function): Now static.
20586 Fix pointer signedness problems. Avoid unnecessary initializations.
20587
a9f737ee
CY
205882011-05-27 Chong Yidong <cyd@stupidchicken.com>
20589
20590 * termhooks.h (Vselection_alist): Make it terminal-local.
20591
20592 * terminal.c (create_terminal): Initialize it.
20593
20594 * xselect.c: Support for clipboard managers.
20595 (Vselection_alist): Move to termhooks.h as terminal-local var.
20596 (LOCAL_SELECTION): New macro.
20597 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
20598 (symbol_to_x_atom): Remove gratuitous arg.
20599 (x_handle_selection_request, lisp_data_to_selection_data)
20600 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
20601 (x_own_selection, x_get_local_selection, x_convert_selection):
20602 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
20603 (some_frame_on_display): Delete unused function.
20604 (Fx_own_selection_internal, Fx_get_selection_internal)
20605 (Fx_disown_selection_internal, Fx_selection_owner_p)
20606 (Fx_selection_exists_p): New optional frame arg.
20607 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
20608 (x_handle_selection_clear): Don't treat other terminals with the
20609 same keyboard specially. Use the terminal-local Vselection_alist.
20610 (x_clear_frame_selections): Use Frun_hook_with_args.
20611
20612 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
20613
20614 * xterm.h: Add support for those atoms.
20615
e067f0c1
CY
206162011-05-26 Chong Yidong <cyd@stupidchicken.com>
20617
20618 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
20619 (converted_selections, conversion_fail_tag): New global variables.
20620 (x_selection_request_lisp_error): Free the above.
20621 (x_get_local_selection): Remove unnecessary code.
20622 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
20623 of converted selections stored in converted_selections.
20624 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
20625 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
20626 (x_convert_selection): New function.
20627 (x_handle_selection_event): Simplify.
20628 (x_get_foreign_selection): Don't ignore incoming requests while
20629 waiting for an answer; this will fail when we implement
20630 SAVE_TARGETS, and seems unnecessary anyway.
20631 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
20632 (Vx_sent_selection_functions): Doc fix.
20633
0f4aebc0
LL
206342011-05-26 Leo Liu <sdl.web@gmail.com>
20635
20636 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
20637
e61124cd
YM
206382011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20639
20640 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
20641
20642 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
20643 for fringe update if it has periodic bitmap.
ac389d0c 20644 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
20645 and fringe_bitmap_periodic_p.
20646
20647 * fringe.c (get_fringe_bitmap_data): New function.
20648 (draw_fringe_bitmap_1, update_window_fringes): Use it.
20649 (update_window_fringes): Record periodicity of fringe bitmap in glyph
20650 row. Mark glyph row for fringe update if periodicity changed.
20651
20652 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
20653 for fringe update unless it has periodic bitmap.
20654
f16d9837
KH
206552011-05-25 Kenichi Handa <handa@m17n.org>
20656
20657 * xdisp.c (get_next_display_element): Set correct it->face_id for
20658 a static composition.
20659
e1b90ef6
LL
206602011-05-24 Leo Liu <sdl.web@gmail.com>
20661
20662 * deps.mk (fns.o):
20663 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
20664
20665 * fns.c (crypto_hash_function, Fsha1): New function.
20666 (Fmd5): Use crypto_hash_function.
20667 (syms_of_fns): Add Ssha1.
20668
7400048f
PE
206692011-05-22 Paul Eggert <eggert@cs.ucla.edu>
20670
20671 * gnutls.c: Remove unused macros.
20672 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
20673 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
20674 Remove macros that are defined and never used.
20675 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
20676
abb71cf4
CY
206772011-05-22 Chong Yidong <cyd@stupidchicken.com>
20678
20679 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
20680 (Fx_get_selection_internal): Minor cleanup.
20681 (Fx_own_selection_internal): Rename arguments for consistency with
20682 select.el.
20683
6307db39
PE
206842011-05-22 Paul Eggert <eggert@cs.ucla.edu>
20685
20686 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
20687
f3d4e0a4
CY
206882011-05-22 Chong Yidong <cyd@stupidchicken.com>
20689
20690 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
20691
4d8ade89
YM
206922011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20693
20694 * dispnew.c (scrolling_window): Don't exclude the case that the
20695 last enabled row in the desired matrix touches the bottom boundary.
20696
32078c8d
GM
206972011-05-21 Glenn Morris <rgm@gnu.org>
20698
20699 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
20700 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
20701 and add some more files.
32078c8d 20702
7285dc67
EZ
207032011-05-20 Eli Zaretskii <eliz@gnu.org>
20704
20705 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
20706 report_file_error introduced by the change from 2011-05-07.
20707
89d1bd22
PE
207082011-05-20 Paul Eggert <eggert@cs.ucla.edu>
20709
20710 * systime.h (Time): Define only if emacs is defined.
20711 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
20712 where the include path doesn't have X11/X.h by default. See
20713 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
20714
cd394be1 207152011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
20716
20717 * composite.c (find_automatic_composition): Fix previous change.
20718
b9704ad9
GM
207192011-05-20 Glenn Morris <rgm@gnu.org>
20720
20721 * lisp.mk: New file, split from Makefile.in.
20722 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
20723 (shortlisp): Remove.
20724 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
20725
4a720484
GM
207262011-05-19 Glenn Morris <rgm@gnu.org>
20727
20728 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
20729 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
20730 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
20731 (lisp): Set the order to that of loadup.el.
20732 (shortlisp): Make it a copy of $lisp.
20733 (SOME_MACHINE_LISP): Remove.
20734 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
20735 Use just $shortlisp, not $SOME_MACHINE_LISP too.
20736
a28d4396
KH
207372011-05-18 Kenichi Handa <handa@m17n.org>
20738
20739 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
20740 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
20741 (find_automatic_composition): Mostly rewrite for efficiency.
20742
a2b1fa8e
JB
207432011-05-18 Juanma Barranquero <lekktu@gmail.com>
20744
20745 * makefile.w32-in: Update dependencies.
20746
8e1f5610
CS
207472011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
20748
20749 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 20750 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 20751
7025ee00 207522011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 20753
cdfa6eab
PE
20754 Fix some integer overflow issues, such as string length overflow.
20755
06d6db33
PE
20756 * insdel.c (count_size_as_multibyte): Check for string overflow.
20757
2b4560a8
PE
20758 * character.c (lisp_string_width): Check for string overflow.
20759 Use EMACS_INT, not int, for string indexes and lengths; in
20760 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
20761 the resulting string length overflows an EMACS_INT; instead,
20762 report a string overflow if no precision given. When checking for
20763 precision exhaustion, use a check that cannot possibly have
20764 integer overflow. (Bug#8675)
20765 * character.h (lisp_string_width): Adjust to new signature.
20766
cb93f9be
PE
20767 * alloc.c (string_overflow): New function.
20768 (Fmake_string): Use it. This doesn't change behavior, but saves
20769 a few bytes and will simplify future changes.
20770 * character.c (string_escape_byte8): Likewise.
20771 * lisp.h (string_overflow): New decl.
20772
1a1f3366
PE
20773 Fixups, following up to the user-interface timestamp change.
20774 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
20775 for UI timestamps, instead of unsigned long.
9fbd6841
PE
20776 * msdos.c (mouse_get_pos): Likewise.
20777 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
20778 * w32gui.h (Time): Define by including "systime.h" rather than by
20779 declaring it ourselves. (Bug#8664)
20780
d4e3e4d3
PE
20781 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
20782 * image.c (clear_image_cache): Likewise.
20783
f6a24d19
PE
20784 * term.c (term_mouse_position): Don't assume time_t wraparound.
20785
08dc5ae6
PE
20786 Be more systematic about user-interface timestamps.
20787 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
20788 and sometimes 'EMACS_UINT', to represent these timestamps.
20789 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
20790 This makes the code easier to follow, and makes it easier to catch
20791 integer overflow bugs such as Bug#8664.
20792 * frame.c (Fmouse_position, Fmouse_pixel_position):
20793 Use Time, not unsigned long, for user-interface timestamps.
20794 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
20795 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
20796 * keyboard.h (last_event_timestamp): Likewise.
20797 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
20798 * menu.h (xmenu_show): Likewise.
20799 * term.c (term_mouse_position): Likewise.
20800 * termhooks.h (struct input_event.timestamp): Likewise.
20801 (struct terminal.mouse_position_hook): Likewise.
20802 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
20803 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
20804 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
20805 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
20806 what it was before.
20807 * menu.h, termhooks.h: Include "systime.h", for Time.
20808
8e55734a
PE
20809 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
20810 Don't assume that the difference between two unsigned long values
20811 can fit into an integer. At this point, we know button_down_time
20812 <= event->timestamp, so the difference must be nonnegative, so
20813 there's no need to cast the result if double-click-time is
20814 nonnegative, as it should be; check that it's nonnegative, just in
20815 case. This bug is triggered when events are more than 2**31 ms
86db42d2 20816 apart (about 25 days). (Bug#8664)
8e55734a 20817
841f1b75 20818 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 20819 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 20820
3e26f69c
PE
20821 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
20822 that always fit in int. Use a sentinel instead of a counter, to
20823 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
20824 * frame.h (struct frame): Use int for menu_bar_items_used
20825 instead of EMACS_INT, since it always fits in int.
3e26f69c 20826
5cc152c0
PE
20827 * menu.c (grow_menu_items): Check for int overflow.
20828
d89eb65e
PE
20829 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
20830
5235bd3e
PE
20831 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
20832 Before, the code was not consistent. These values cannot exceed
20833 2**31 - 1 so there's no need to make them unsigned.
20834 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
20835 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
20836 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
20837 as modifiers.
20838 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
20839
bc827e23
PE
20840 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
20841 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
20842 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
20843 presumably because the widths might not match.
20844
78eb494e
PE
20845 * window.c (size_window): Avoid needless test at loop start.
20846
04f2d78b
CB
208472011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
20848
20849 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
20850
d2fc7e3d 208512011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
20852
20853 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
20854
d2fc7e3d 208552011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
20856
20857 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
20858 `width' to `bar_area_x' and `bar_area_width', respectively.
20859 (x_scroll_run): Take account of fringe background extension.
20860
04f2d78b
CB
20861 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
20862 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
20863 `bar_area_width', respectively.
20864 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
20865 background extension.
20866
79b70037
GM
208672011-05-10 Jim Meyering <meyering@redhat.com>
20868
20869 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
20870
2f142cc5
JB
208712011-05-10 Juanma Barranquero <lekktu@gmail.com>
20872
20873 * image.c (Finit_image_library): Return t for built-in image types,
20874 like pbm and xbm. (Bug#8640)
20875
57679c86
AS
208762011-05-09 Andreas Schwab <schwab@linux-m68k.org>
20877
20878 * w32menu.c (set_frame_menubar): Fix submenu allocation.
20879
888c9e86
EZ
208802011-05-07 Eli Zaretskii <eliz@gnu.org>
20881
b0512a1d
EZ
20882 * w32console.c (Fset_screen_color): Doc fix.
20883 (Fget_screen_color): New function.
20884 (syms_of_ntterm): Defsubr it.
20885
7285dc67
EZ
20886 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
20887 unlink the temporary file if Fcall_process didn't create it in the
20888 first place.
20889 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
20890 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
20891 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
20892 cue to call_process_cleanup not to close that handle.
20893
4d3fcc8e
BK
208942011-05-07 Ben Key <bkey76@gmail.com>
20895
20896 * makefile.w32-in: The bootstrap-temacs rule now makes use of
20897 one of two shell specific rules, either bootstrap-temacs-CMD or
20898 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
20899 to the previous implementation of the bootstrap-temacs rule.
20900 The bootstrap-temacs-CMD rule is similar to the previous
20901 implementation of the bootstrap-temacs rule except that it
20902 makes use of the ESC_CFLAGS variable instead of the CFLAGS
20903 variable.
20904
20905 These changes, along with some changes to nt/configure.bat,
20906 nt/gmake.defs, and nt/nmake.defs, are required to extend my
20907 earlier fix to add support for --cflags and --ldflags options
20908 that include quotes so that it works whether make uses cmd or
20909 sh as the shell.
20910
b4289b64
MA
209112011-05-06 Michael Albinus <michael.albinus@gmx.de>
20912
20913 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
20914 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
20915 is a constant.
20916 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
20917 a string. Handle both cases.
20918 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
20919 (Fdbus_register_method): Use Qinvalid_function.
20920
af4c0e28
JB
209212011-05-06 Juanma Barranquero <lekktu@gmail.com>
20922
20923 * makefile.w32-in: Update dependencies.
20924 (LISP_H): Add inttypes.h and stdin.h.
20925 (PROCESS_H): Add unistd.h.
20926
c51453d9
EZ
209272011-05-06 Eli Zaretskii <eliz@gnu.org>
20928
20929 * lread.c: Include limits.h (fixes the MS-Windows build broken by
20930 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
20931
8ff0ac3c 209322011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 20933
4c4b566b
PE
20934 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
20935
aab2b9b5
PE
20936 * term.c (vfatal): Remove stray call to va_end.
20937 It's not needed and the C Standard doesn't allow it here anyway.
20938
c378da0b
PE
20939 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
20940 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
20941
288b08c7
PE
20942 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
20943 bytes.
20944
e3601888
PE
20945 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
20946
db6c0e74
PE
20947 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
20948
dd5963ea
PE
20949 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
20950
88c9450f
PE
20951 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
20952
2f9442b8
PE
20953 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
20954
c032b5f8
PE
20955 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
20956 * charset.c (Fdefine_charset_internal): Don't initialize
20957 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 20958 32-bit int (Bug#8600).
a108c10b
PE
20959
20960 * lread.c (read_integer): Be more consistent with string-to-number.
20961 Use string_to_number to do the actual conversion; this avoids
20962 rounding errors and fixes some other screwups. Without this fix,
20963 for example, #x1fffffffffffffff was misread as -2305843009213693952.
20964 (digit_to_number): Move earlier, for benefit of read_integer.
20965 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 20966 not a digit in any supported base. (Bug#8602)
a108c10b 20967
ad5f9eea
PE
20968 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
20969
aec1708a
PE
20970 * dispnew.c (scrolling_window): Return 1 if we scrolled,
20971 to match comment at start of function. This also removes a
20972 GCC warning about overflow in a 32+64-bit port.
20973
47be4ab5
PE
20974 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
20975
371cac43
PE
20976 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
20977 Reported by Stefan Monnier in
20978 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
20979 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
20980 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 20981
d01a7826
PE
20982 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
20983 (EMACS_UINTPTR): Likewise, with uintptr_t.
20984
7fd47d5c
PE
20985 * lisp.h: Prefer 64-bit EMACS_INT if available.
20986 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
20987 on 32-bit hosts that have 64-bit int, so that they can access
20988 large files.
122b0c86
PE
20989 However, temporarily disable this change unless the temporary
20990 symbol WIDE_EMACS_INT is defined.
7fd47d5c 20991
8727937b
PE
20992 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
20993
8ac068ac
PE
20994 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
20995 This removes an assumption that EMACS_INT and long are the same
20996 width as pointers. The assumption is true for Emacs porting targets
20997 now, but we want to make other targets possible.
20998 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
20999 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
21000 In the rest of the code, change types of integers that hold casted
21001 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
21002 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
21003 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
21004 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
21005 No need to cast type when ORing.
21006 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
21007 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
21008 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
21009 assume EMACS_INT is the same width as char *.
21010 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
21011 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
21012 Remove no-longer-needed casts.
21013 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
21014 (xg_tool_bar_help_callback, xg_make_tool_item):
21015 Use EMACS_INTPTR to hold an integer
21016 that will be cast to void *; this can avoid a GCC warning
21017 if EMACS_INT is not the same width as void *.
21018 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
21019 * xdisp.c (display_echo_area_1, resize_mini_window_1):
21020 (current_message_1, set_message_1):
21021 Use a local to convert to proper width without a cast.
21022 * xmenu.c (dialog_selection_callback): Likewise.
21023
ede49d71
PE
21024 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
21025 Also, don't assume VALBITS / RAND_BITS is less than 5,
21026 and don't rely on undefined behavior when shifting a 1 left into
21027 the sign bit.
21028 * lisp.h (get_random): Change signature to match.
21029
2f30ecd0
PE
21030 * lread.c (hash_string): Use size_t, not int, for hash computation.
21031 Normally we prefer signed values; but hashing is special, because
21032 it's better to use unsigned division on hash table sizes so that
21033 the remainder is nonnegative. Also, size_t is the natural width
21034 for hashing into memory. The previous code used 'int', which doesn't
21035 retain enough info to hash well into very large tables.
21036 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
21037
2a866e7b
PE
21038 * dbusbind.c: Don't possibly lose pointer info when converting.
21039 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
21040 Use XPNTR rather than XHASH, so that the high-order bits of
21041 the pointer aren't lost when converting through void *.
21042
51639eac
PE
21043 * eval.c (Fautoload): Don't double-shift a pointer.
21044
92394119
PE
21045 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
21046
dbdb9a7c
JB
210472011-05-06 Juanma Barranquero <lekktu@gmail.com>
21048
21049 * gnutls.c (DEF_GNUTLS_FN):
21050 * image.c (DEF_IMGLIB_FN): Make function pointers static.
21051
db7a0b4f
AS
210522011-05-05 Andreas Schwab <schwab@linux-m68k.org>
21053
21054 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
21055 marker. (Bug#8610)
21056
cd394be1 210572011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
21058
21059 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
21060 New version that can reserve upto 2GB of heap space.
21061
f7ff1b0f 210622011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
21063
21064 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
21065
639c109b
TZ
210662011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
21067
21068 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
21069 `gnutls_certificate_set_x509_key_file'.
21070
d2127135
JB
210712011-05-05 Juanma Barranquero <lekktu@gmail.com>
21072
21073 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
21074 Update dependencies.
21075
e968f4f3
JB
210762011-05-04 Juanma Barranquero <lekktu@gmail.com>
21077
21078 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
21079 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
21080 Remove unused parameter `fildes'.
21081 * process.c (read_process_output, send_process): Don't pass it.
21082
84d358f0
JB
210832011-05-04 Juanma Barranquero <lekktu@gmail.com>
21084
21085 Fix previous change: the library cache is defined in w32.c.
21086 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
21087 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
21088
0898ca10
JB
210892011-05-04 Juanma Barranquero <lekktu@gmail.com>
21090
21091 Implement dynamic loading of GnuTLS on Windows.
21092
21093 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
21094 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
21095 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
21096 Declare.
21097
21098 * gnutls.c (Qgnutls_dll): Define.
21099 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
21100 (gnutls_*): Declare function pointers.
21101 (init_gnutls_functions): New function to initialize function pointers.
21102 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
21103 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
21104 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
21105 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
21106 (emacs_gnutls_write, emacs_gnutls_read)
21107 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
21108 (Fgnutls_available_p): New function.
21109 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
21110 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
21111 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
21112
21113 * image.c: Include w32.h.
21114 (Vimage_type_cache): Delete.
21115 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
21116 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
21117 (w32_delayed_load): Move to w32.c.
21118
21119 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
21120
21121 * w32.c (QCloaded_from, Vlibrary_cache): Define.
21122 (w32_delayed_load): Move from image.c. When loading a library, record
21123 its filename in the :loaded-from property of the library id.
21124 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
21125 Initialize and staticpro them.
21126 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
21127
21128 * process.c: Include lisp.h before w32.h, not after.
21129 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
21130 instead of gnutls_record_check_pending.
21131
21132 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
21133
ff4de4aa
TZ
211342011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
21135
21136 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
21137 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
21138 as passed in.
21139
abe95abb
JD
211402011-05-03 Jan Djärv <jan.h.d@swipnet.se>
21141
21142 * xterm.c (x_set_frame_alpha): Do not set property on anything
21143 else than FRAME_X_OUTER_WINDOW (Bug#8608).
21144
e16e55d4
JB
211452011-05-02 Juanma Barranquero <lekktu@gmail.com>
21146
21147 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
21148
bafcf6a5
JB
211492011-05-02 Juanma Barranquero <lekktu@gmail.com>
21150
21151 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
21152 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
21153 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
21154 (gnutls_global_initialized, Qgnutls_bootprop_priority)
21155 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
21156 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
21157 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
21158 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
21159 (Qgnutls_bootprop_callbacks_verify): Make static.
21160
e7a6747f
AS
211612011-05-01 Andreas Schwab <schwab@linux-m68k.org>
21162
19ed11ba
AS
21163 * callproc.c: Indentation fixup.
21164
e7a6747f 21165 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
21166 (wait_for_termination, interruptible_wait_for_termination):
21167 Move after wait_for_termination_1.
e7a6747f 21168
1ef14cb4
LMI
211692011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
21170
21171 * sysdep.c (interruptible_wait_for_termination): New function
21172 which is like wait_for_termination, but allows keyboard
21173 interruptions.
21174
21175 * callproc.c (Fcall_process): Add (:file "file") as an option for
21176 the STDOUT buffer.
21177 (Fcall_process_region): Ditto.
21178
330d880c
EZ
211792011-04-30 Eli Zaretskii <eliz@gnu.org>
21180
8db90b73
EZ
21181 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
21182 rather than `XVECTOR (FOO)->size'.
21183
330d880c
EZ
21184 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
21185 inttypes.h, as a gnulib replacement is used if it not available in
21186 system headers.
21187
15cbd324
EZ
211882011-04-21 Eli Zaretskii <eliz@gnu.org>
21189
21190 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
21191 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
21192 of MOST_POSITIVE_FIXNUM. (Bug#8528)
21193
21194 * coding.c (coding_alloc_by_realloc): Error out if destination
21195 will grow beyond MOST_POSITIVE_FIXNUM.
21196 (decode_coding_emacs_mule): Abort if there isn't enough place in
21197 charbuf for the composition carryover bytes. Reserve an extra
21198 space for up to 2 characters produced in a loop.
21199 (decode_coding_iso_2022): Abort if there isn't enough place in
21200 charbuf for the composition carryover bytes.
21201
212022011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 21203
ae940cca
EZ
21204 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
21205 aborting when %lld or %lll format is passed.
21206 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
21207 %llo or %llx format is passed. (Bug#8545)
21208
03ab8921
EZ
21209 * window.c (window_scroll_line_based): Use a marker instead of
21210 simple variables to record original value of point. (Bug#7952)
21211
afda1437
EZ
21212 * doprnt.c (doprnt): Fix the case where a multibyte sequence
21213 produced by %s or %c overflows available buffer space. (Bug#8545)
21214
f76dee0c
PE
212152011-04-28 Paul Eggert <eggert@cs.ucla.edu>
21216
21217 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 21218 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 21219
fdc5744d
JB
212202011-04-28 Juanma Barranquero <lekktu@gmail.com>
21221
21222 * w32.c (init_environment): Warn about defaulting HOME to C:\.
21223
638f053a
JB
212242011-04-28 Juanma Barranquero <lekktu@gmail.com>
21225
21226 * keyboard.c (Qdelayed_warnings_hook): Define.
21227 (command_loop_1): Run `delayed-warnings-hook'
21228 if Vdelayed_warnings_list is non-nil.
21229 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
21230 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
21231
d178f871
EZ
212322011-04-28 Eli Zaretskii <eliz@gnu.org>
21233
21234 * doprnt.c (doprnt): Don't return value smaller than the buffer
21235 size if the message was truncated. (Bug#8545).
21236
b124fd93
JB
212372011-04-28 Juanma Barranquero <lekktu@gmail.com>
21238
21239 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
21240 (Fx_window_property): #if-0 the whole functions, not just the bodies.
21241
e810457d
PE
212422011-04-27 Paul Eggert <eggert@cs.ucla.edu>
21243
21244 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
21245
ea51cceb
JB
212462011-04-27 Juanma Barranquero <lekktu@gmail.com>
21247
21248 * makefile.w32-in: Update dependencies.
21249
94dcfacf
EZ
212502011-04-27 Eli Zaretskii <eliz@gnu.org>
21251
21252 Improve `doprnt' and its usage. (Bug#8545)
21253 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
21254 `format_end'. Remove support for %l as a conversion specifier.
21255 Don't use xrealloc. Improve diagnostics when the %l size modifier
21256 is used. Update the commentary.
21257
21258 * eval.c (verror): Simplify calculation of size_t.
21259
21260 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
21261 messages.
21262
f61f41d7
PE
212632011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
21264
21265 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
21266 change.
21267
96fb4434
PE
212682011-04-27 Paul Eggert <eggert@cs.ucla.edu>
21269
21270 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
21271 This makes this file independent of the recent pseudovector change.
21272
671875da 212732011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 21274
69e9b5a3
PE
21275 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
21276
b5f869a7 21277 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 21278 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 21279 Remove unused local.
c8926152 21280 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 21281
841a1577 21282 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
21283 GCC 4.6.0 optimizes based on type-based alias analysis.
21284 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
21285 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
21286 != &v->size, and therefore "v->size = 1; b->size = 2; return
21287 v->size;" must therefore return 1. This assumption is incorrect
21288 for Emacs, since it type-puns struct Lisp_Vector * with many other
21289 types. To fix this problem, this patch adds a new type struct
f904488f 21290 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
21291 and pseudovectors, and helps optimizing compilers not get fooled
21292 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
21293 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
21294 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
21295 the size member.
eab3844f
PE
21296 (XSETPVECTYPE): Rewrite in terms of new macro.
21297 (XSETPVECTYPESIZE): New macro, specifying both type and size.
21298 This is a bit clearer, and further avoids the possibility of
21299 undesirable aliasing.
21300 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 21301 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
21302 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
21303 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
21304 (ASIZE): Now uses header.size rather than size.
21305 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
21306 to avoid the hassle of writing XVECTOR (foo)->header.size.
21307 (struct vectorlike_header): New type.
eab3844f
PE
21308 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
21309 object, to help avoid aliasing.
21310 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
21311 (SUBRP): Likewise, since Lisp_Subr is a special case.
21312 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
21313 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
21314 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 21315 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
21316 changed to be "header.size" and "header.next".
21317 * buffer.h (struct buffer): Likewise.
21318 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
21319 * frame.h (struct frame): Likewise.
21320 * process.h (struct Lisp_Process): Likewise.
21321 * termhooks.h (struct terminal): Likewise.
21322 * window.c (struct save_window_data, struct saved_window): Likewise.
21323 * window.h (struct window): Likewise.
21324 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
21325 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
21326 * buffer.c (init_buffer_once): Likewise.
21327 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
21328 special case.
21329 * process.c (Fformat_network_address): Use local var for size,
21330 for brevity.
21331
0df1eac5
PE
21332 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
21333
847ab9d1 21334 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
21335 * data.c (atof): Remove decl; no longer used or needed.
21336 (digit_to_number): Move to lread.c.
21337 (Fstring_to_number): Use new string_to_number function, to be
21338 consistent with how the Lisp reader treats infinities and NaNs.
21339 Do not assume that floating-point numbers represent EMACS_INT
21340 without losing information; this is not true on most 64-bit hosts.
21341 Avoid double-rounding errors, by insisting on integers when
21342 parsing non-base-10 numbers, as the documentation specifies.
21343 * lisp.h (string_to_number): New decl, replacing ...
21344 (isfloat_string): Remove.
bc0a5c13 21345 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 21346 (read1): Do not accept +. and -. as integers; this
452f4150
PE
21347 appears to have been a coding error. Similarly, do not accept
21348 strings like +-1e0 as floating point numbers. Do not report
21349 overflow for integer overflows unless the base is not 10 which
21350 means we have no simple and reliable way to continue.
21351 Break out the floating-point parsing into a new
21352 function string_to_number, so that Fstring_to_number parses
21353 floating point numbers consistently with the Lisp reader.
04f2d78b 21354 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
21355 (E_CHAR, EXP_INT): Remove, replacing with ...
21356 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
21357 (string_to_number): New function, replacing isfloat_string.
21358 This function checks for valid syntax and produces the resulting
21359 Lisp float number too. Rework it so that string-to-number
bc0a5c13 21360 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
21361 so that overflow for non-base-10 numbers is reported only when
21362 there's no portable and simple way to convert to floating point.
452f4150 21363
67769ffc
PE
21364 * textprop.c (set_text_properties_1): Rewrite for clarity,
21365 and to avoid GCC warning about integer overflow.
21366
c20db43f
PE
21367 * intervals.h (struct interval): Use EMACS_INT for members
21368 where EMACS_UINT might cause problems. See
21369 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
21370 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
21371 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
21372 All uses changed.
37aa2f85
PE
21373 (offset_intervals): Tell GCC not to worry about length overflow
21374 when negating a negative length.
c20db43f 21375
2538aa2f
PE
21376 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
21377 (overrun_check_free): Likewise.
21378
f2d3008d
PE
21379 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
21380 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
21381 word size.
21382
ec8df744
PE
21383 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
21384 (gnutls_make_error): Rename local to avoid shadowing.
21385 (gnutls_emacs_global_deinit): ifdef out; not used.
21386 (Fgnutls_boot): Use const for pointer to readonly storage.
21387 Comment out unused local. Fix pointer signedness problems.
21388
640ee02d
PE
21389 * lread.c (openp): Don't stuff size_t into an 'int'.
21390 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
21391 about possible signed overflow.
21392
6048fb2a
PE
21393 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
21394 (GDK_KEY_g): Don't define if already defined.
21395 (xg_prepare_tooltip): Avoid pointer signedness problem.
21396 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
21397
fa3c87e1
PE
21398 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
21399 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
21400
2172544b
PE
21401 * xfns.c (Fx_window_property): Simplify a bit,
21402 to make a bit faster and to avoid GCC 4.6.0 warning.
21403 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
21404
9b821a21
PE
21405 * fns.c (internal_equal): Don't assume size_t fits in int.
21406
3c616cfa
PE
21407 * alloc.c (compact_small_strings): Tighten assertion a little.
21408
c2982e87
PE
21409 Replace pEd with more-general pI, and fix some printf arg casts.
21410 * lisp.h (pI): New macro, generalizing old pEd macro to other
21411 conversion specifiers. For example, use "...%"pI"d..." rather
21412 than "...%"pEd"...".
21413 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 21414 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
21415 * alloc.c (check_pure_size): Don't overflow by converting size to int.
21416 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
21417 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
21418 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
21419 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
21420 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
21421 64-bit hosts.
21422 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
21423 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
21424 * print.c (safe_debug_print, print_object): Likewise.
21425 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
21426 to int.
6f04d126
PE
21427 Use pI instead of if-then-else-abort. Use %p to avoid casts,
21428 avoiding the 0 flag, which is not portable.
c2982e87
PE
21429 * process.c (Fmake_network_process): Use pI to avoid cast.
21430 * region-cache.c (pp_cache): Likewise.
21431 * xdisp.c (decode_mode_spec): Likewise.
21432 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
21433 behavior on 64-bit hosts with printf arg.
6f04d126 21434 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
21435 (x_stop_queuing_selection_requests): Likewise.
21436 (x_get_window_property): Don't truncate byte count to an 'int'
21437 when tracing.
0b432f21 21438
5e073ec7
PE
21439 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
21440 here, since it parses constructs like leading '-' and spaces,
21441 which are not wanted; and it overflows with large numbers.
21442 Instead, simply match F[0-9]+, which is what is wanted anyway.
21443
36372bf9
PE
21444 * alloc.c: Remove unportable assumptions about struct layout.
21445 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
21446 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
21447 (allocate_vectorlike, make_pure_vector): Use the new macros,
21448 plus offsetof, to remove unportable assumptions about struct layout.
21449 These assumptions hold on all porting targets that I know of, but
21450 they are not guaranteed, they're easy to remove, and removing them
21451 makes further changes easier.
21452
0b432f21
PE
21453 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
21454 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
21455 (string_overrun_cookie): Now const. Use initializers that
21456 don't formally overflow signed char, to avoid warnings.
000098c1
PE
21457 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
21458 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
21459 (allocate_buffer): Don't assume sizeof (struct buffer) is a
21460 multiple of sizeof (EMACS_INT); it need not be, if
21461 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 21462 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 21463
895009e1
JB
214642011-04-26 Juanma Barranquero <lekktu@gmail.com>
21465
21466 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
21467
6a7a1b0b
TZ
214682011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
21469
21470 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 21471 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
21472 Reported by Paul Eggert <eggert@cs.ucla.edu>.
21473
841a1577 214742011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
21475
21476 * lisp.h (Qdebug): List symbol.
895009e1 21477 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
21478 * keyboard.c (debug-on-event): New variable.
21479 (handle_user_signal): Break into debugger when debug-on-event
21480 matches the current signal symbol.
21481
f2d3ba6f
DN
214822011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
21483
21484 * alloc.c (check_sblock, check_string_bytes)
21485 (check_string_free_list): Convert to standard C.
21486
42ce4c63
TZ
214872011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
21488
21489 * w32.c (emacs_gnutls_push): Fix typo.
21490
825cd63c
EZ
214912011-04-25 Eli Zaretskii <eliz@gnu.org>
21492
fb11d64d
EZ
21493 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
21494 "cast to pointer from integer of different size".
21495
825cd63c
EZ
21496 Improve doprnt and its use in verror. (Bug#8545)
21497 * doprnt.c (doprnt): Document the set of format control sequences
21498 supported by the function. Use SAFE_ALLOCA instead of always
21499 using `alloca'.
21500
21501 * eval.c (verror): Don't limit the buffer size at size_max-1, that
21502 is one byte too soon. Don't use xrealloc; instead xfree and
21503 xmalloc anew.
21504
e061a11b
TZ
215052011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
21506
21507 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
21508 callbacks stage.
21509
21510 * gnutls.c: Renamed global_initialized to
21511 gnutls_global_initialized. Added internals for the
21512 :verify-hostname-error, :verify-error, and :verify-flags
21513 parameters of `gnutls-boot' and documented those parameters in the
21514 docstring. Start callback support.
9173deec
JB
21515 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
21516 unless a fatal error occurred. Call gnutls_alert_send_appropriate
21517 on error. Return error code.
e061a11b
TZ
21518 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
21519 (emacs_gnutls_read): Likewise.
21520 (Fgnutls_boot): Return handshake error code.
21521 (emacs_gnutls_handle_error): New function.
21522 (wsaerror_to_errno): Likewise.
21523
21524 * w32.h (emacs_gnutls_pull): Add prototype.
21525 (emacs_gnutls_push): Likewise.
21526
21527 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
21528 (emacs_gnutls_push): Likewise.
21529
215302011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
21531
21532 * process.c (wait_reading_process_output): Check if GnuTLS
21533 buffered some data internally if no FDs are set for TLS
21534 connections.
21535
21536 * makefile.w32-in (OBJ2): Add gnutls.$(O).
21537 (LIBS): Link to USER_LIBS.
21538 ($(BLD)/gnutls.$(0)): New target.
21539
fa6996bc
EZ
215402011-04-24 Eli Zaretskii <eliz@gnu.org>
21541
eb35682e
EZ
21542 * xdisp.c (handle_single_display_spec): Rename the
21543 display_replaced_before_p argument into display_replaced_p, to
21544 make it consistent with the commentary. Fix typos in the
21545 commentary.
21546
e2ad650c
EZ
21547 * textprop.c (syms_of_textprop): Remove dead code.
21548 (copy_text_properties): Delete obsolete commentary about an
21549 interface that was deleted long ago. Fix typos in the description
21550 of arguments.
21551
1b2de274
EZ
21552 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
21553 to changes in oldXMenu/XMenu.h from 2011-04-16.
21554 <menu_help_message, prev_menu_help_message>: Constify.
21555 (IT_menu_make_room): menu->help_text is now `const char **';
21556 adjust.
21557
21558 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
21559 to changes in oldXMenu/XMenu.h from 2011-04-16.
21560 (struct XMenu): Declare `help_text' `const char **'.
21561
21562 * xfaces.c <Qunspecified>: Make extern again.
21563
21564 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 21565 required by POSIX.
1b2de274 21566
762b15be
EZ
21567 * doc.c (get_doc_string): Improve the format passed to `error'.
21568
21569 * doprnt.c (doprnt): Improve commentary.
21570
21571 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
21572
21573 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
21574 them with etags.
21575
f1052e5d
EZ
21576 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
21577 changes in globals.h immediately force recompilation.
762b15be
EZ
21578 (TAGS): Depend on $(CURDIR)/m/intel386.h and
21579 $(CURDIR)/s/ms-w32.h.
21580 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 21581
fa6996bc
EZ
21582 * character.c (Fchar_direction): Function deleted.
21583 (syms_of_character): Don't defsubr it.
21584 <char-direction-table>: Deleted.
21585
e6c3da20
EZ
215862011-04-23 Eli Zaretskii <eliz@gnu.org>
21587
21588 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
21589 * doprnt.c: Include limits.h.
21590 (SIZE_MAX): New macro.
04f2d78b
CB
21591 (doprnt): Return a size_t value. 2nd arg is now size_t.
21592 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
21593 Improve overflow protection. Support `l' modifier for integer
21594 conversions. Support %l conversion. Don't assume an EMACS_INT
21595 argument for integer conversions and for %c.
21596
21597 * lisp.h (doprnt): Restore prototype.
21598
21599 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
21600 $(SRC)/character.h.
21601
21602 * Makefile.in (base_obj): Add back doprnt.o.
21603
21604 * deps.mk (doprnt.o): Add back prerequisites.
21605 (callint.o): Depend on character.h.
21606
21607 * eval.c (internal_lisp_condition_case): Include the handler
21608 representation in the error message.
21609 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
21610 when breaking from the loop.
21611
21612 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
21613
21614 * callint.c (Fcall_interactively): When displaying error message
21615 about invalid control letter, pass the character's codepoint, not
21616 a pointer to its multibyte form. Improve display of the character
21617 in octal and display also its hex code.
21618
21619 * character.c (char_string): Use %x to display the (unsigned)
21620 codepoint of an invalid character, to avoid displaying a bogus
21621 negative value.
21622
21623 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
21624 `error', not SYMBOL_NAME itself.
21625
21626 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
21627 character arguments to `error'.
21628
21629 * charset.c (check_iso_charset_parameter): Fix incorrect argument
21630 to `error' in error message about FINAL_CHAR argument. Make sure
21631 FINAL_CHAR is a character, and use %c when it is passed as
21632 argument to `error'.
21633
4ffd0d6b 216342011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
21635
21636 * s/ms-w32.h (localtime): Redirect to sys_localtime.
21637
21638 * w32.c: Include <time.h>.
21639 (sys_localtime): New function.
21640
4ffd0d6b 216412011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
21642
21643 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
21644
4ffd0d6b 21645 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 21646
4ffd0d6b 216472011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 21648
4ffd0d6b
GM
21649 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
21650 zombies (Bug#8467).
aac0c6e3 21651
04c56954
EZ
216522011-04-19 Eli Zaretskii <eliz@gnu.org>
21653
21654 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
21655 gl_state.e_property when gl_state.object is Qt.
21656
21657 * insdel.c (make_gap_larger): Remove limitation of buffer size
21658 to <= INT_MAX.
21659
16a43933
CY
216602011-04-18 Chong Yidong <cyd@stupidchicken.com>
21661
21662 * xdisp.c (lookup_glyphless_char_display)
21663 (produce_glyphless_glyph): Handle cons cell entry in
21664 glyphless-char-display.
21665 (Vglyphless_char_display): Document it.
21666
21667 * term.c (produce_glyphless_glyph): Handle cons cell entry in
21668 glyphless-char-display.
21669
4581706e
CY
216702011-04-17 Chong Yidong <cyd@stupidchicken.com>
21671
21672 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
21673
21674 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
21675
21676 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
21677 definition for no-X builds.
21678
4887c6e2 216792011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 21680
fd35b6f9
PE
21681 Static checks with GCC 4.6.0 and non-default toolkits.
21682
5c1ccb01
PE
21683 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
21684
006c5daa
PE
21685 * process.c (keyboard_bit_set): Define only if SIGIO.
21686 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
21687 (send_process): Repair possible setjmp clobbering.
21688
efc736d3
PE
21689 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
21690
4e2fe2e6
PE
21691 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
21692
f97334a2
PE
21693 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
21694
4e75f29d
PE
21695 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
21696 Define only if needed.
21697
90efadd1
PE
21698 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
21699 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 21700 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 21701
3c647824
PE
21702 * dispextern.h (struct redisplay_interface): Rename param
21703 to avoid shadowing.
e264f262 21704 * termhooks.h (struct terminal): Likewise.
761383f4 21705 * xterm.c (xembed_send_message): Likewise.
3c647824 21706
b58c5c4a
PE
21707 * insdel.c (make_gap_smaller): Define only if
21708 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
21709
cad59032
PE
21710 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
21711 it.
21712
c339dc2e
PE
21713 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
21714 so that we aren't warned about unused symbols.
21715
91a3e27b
PE
21716 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
21717
399c71d3 21718 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 21719
8ffc96f5
PE
21720 * xfns.c (x_real_positions): Mark locals as initialized.
21721
eef9bc79
PE
21722 * xmenu.c (xmenu_show): Don't use uninitialized vars.
21723
098db9dd
PE
21724 * xterm.c: Fix problems found by static analysis with other toolkits.
21725 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
21726 (x_dispatch_event): Declare static if USE_GTK, and
21727 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 21728 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 21729 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
21730 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
21731 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 21732
eb18f6cc
PE
21733 * xmenu.c (menu_help_callback): Pointer type fixes.
21734 Use const pointers when pointing at readonly data. Avoid pointer
21735 signedness clashes.
21736 (FALSE): Remove unused macro.
21737 (update_frame_menubar): Remove unused decl.
21738
1fe72bf8
PE
21739 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
21740
60d9e1db
PE
21741 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
21742 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
21743 (single_menu_item): Rename local to avoid shadowing.
21744
39261c26
PE
21745 * keyboard.c (make_lispy_event): Remove unused local var.
21746
018c5e19
PE
21747 * frame.c, frame.h (x_get_resource_string): Bring this back, but
21748 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
21749
63d2b86e
PE
21750 * bitmaps: Change bitmaps from unsigned char back to the X11
21751 compatible char. Avoid the old compiler warnings about
21752 out-of-range initializers by using, for example, '\xab' rather
21753 than 0xab.
21754
aefd87e1
PE
21755 * xgselect.c (xgselect_initialize): Check vs interface
21756 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
21757
bf501fb9
PE
21758 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
21759
e9829fdf
PE
21760 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
21761 to read-only memory.
21762
1086c095
PE
21763 * fns.c (vector): Remove; this old hack is no longer needed.
21764
2baccd04 21765 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 21766 Remove unused var.
dde42981 21767 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 21768
72391843 21769 * xrdb.c (x_load_resources): Omit unused local.
3565b346 21770
436c16df 21771 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 21772 (x_window): Rename locals to avoid shadowing.
dc5ddd85 21773 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 21774
92bb796d 21775 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 21776 (x_term_init): Remove local to avoid shadowing.
92bb796d 21777
764430a3 21778 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
21779
21780 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
21781 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
21782
d1dfb56c
EZ
217832011-04-16 Eli Zaretskii <eliz@gnu.org>
21784
c4354cb4
EZ
21785 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
21786
d1dfb56c
EZ
21787 Fix regex.c, syntax.c and friends for buffers > 2GB.
21788 * syntax.h (struct gl_state_s): Declare character position members
21789 EMACS_INT.
21790
21791 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
21792
04f2d78b
CB
21793 * textprop.c (verify_interval_modification, interval_of):
21794 Declare arguments EMACS_INT.
d1dfb56c
EZ
21795
21796 * intervals.c (adjust_intervals_for_insertion): Declare arguments
21797 EMACS_INT.
21798
21799 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
21800
21801 * indent.c (Fvertical_motion): Local variable it_start is now
21802 EMACS_INT.
21803
21804 * regex.c (re_match, re_match_2, re_match_2_internal)
21805 (bcmp_translate, regcomp, regexec, print_double_string)
21806 (group_in_compile_stack, re_search, re_search_2, regex_compile)
21807 (re_compile_pattern, re_exec): Declare arguments and local
21808 variables `size_t' and `ssize_t' and return values `regoff_t', as
21809 appropriate.
21810 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
21811 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
21812 <compile_stack_type>: `size' and `avail' are now `size_t'.
21813
21814 * regex.h <regoff_t>: Use ssize_t, not int.
21815 (re_search, re_search_2, re_match, re_match_2): Arguments that
21816 specify buffer/string position and length are now ssize_t and
21817 size_t. Return type is regoff_t.
21818
613052cd
BK
218192011-04-16 Ben Key <bkey76@gmail.com>
21820
21821 * nsfont.m: Fixed bugs in ns_get_family and
21822 ns_descriptor_to_entity that were caused by using free to
21823 deallocate memory blocks that were allocated by xmalloc (via
21824 xstrdup). This caused Emacs to crash when compiled with
21825 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
21826 --enable-checking=xmallocoverrun). xfree is now used to
21827 deallocate these memory blocks.
21828
4170f62f 218292011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 21830
71b41406
PE
21831 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
21832
9587a89d
PE
21833 emacs_write: Accept and return EMACS_INT for sizes.
21834 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
21835 et seq.
21836 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
21837 Accept and return EMACS_INT.
21838 (emacs_gnutls_write): Return the number of bytes written on
21839 partial writes.
21840 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
21841 (emacs_read, emacs_write): Remove check for negative size, as the
21842 Emacs source code has been audited now.
9587a89d
PE
21843 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
21844 (emacs_read, emacs_write): Use it.
273a5f82
PE
21845 * process.c (send_process): Adjust to the new signatures of
21846 emacs_write and emacs_gnutls_write. Do not attempt to store
21847 a byte offset into an 'int'; it might overflow.
9587a89d 21848 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 21849
3e047f51
PE
21850 * sound.c: Don't assume sizes fit in 'int'.
21851 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 21852 Return EMACS_INT, not int.
3e047f51 21853 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
21854 Accept EMACS_INT, not int.
21855 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
21856 record read return values.
21857
cc39a9db
BK
218582011-04-15 Ben Key <bkey76@gmail.com>
21859
c9d0ec6d
JB
21860 * keyboard.c (Qundefined): Don't declare static since it is used
21861 in nsfns.m.
21862 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
21863 static since they are used in nsfont.m.
cc39a9db 21864
6c60eb9f
SM
218652011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
21866
21867 * process.c (Qprocessp): Don't declare static.
21868 * lisp.h (Qprocessp): Declare again.
21869
7990b61a
JB
218702011-04-15 Juanma Barranquero <lekktu@gmail.com>
21871
21872 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
21873
5d4cb038
PE
218742011-04-14 Paul Eggert <eggert@cs.ucla.edu>
21875
8bd7b830 21876 Improve C-level modularity by making more things 'static'.
cd64ea1d 21877
e3b27b31
PE
21878 Don't publish debugger-only interfaces to other modules.
21879 * lisp.h (safe_debug_print, debug_output_compilation_hack):
21880 (verify_bytepos, count_markers): Move decls to the only modules
21881 that need them.
21882 * region-cache.h (pp_cache): Likewise.
21883 * window.h (check_all_windows): Likewise.
21884 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
21885
5d4cb038
PE
21886 * sysdep.c (croak): Now static, if
21887 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
21888 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
21889
21890 * alloc.c (refill_memory_reserve): Now static if
21891 !defined REL_ALLOC || defined SYSTEM_MALLOC.
21892 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 21893
e87b6180
PE
21894 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
21895 Define only if USE_LUCID.
21896
ac64929e
PE
21897 * xrdb.c (x_customization_string, x_rm_string): Now static.
21898
6f37259d
PE
21899 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
21900 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
21901
1683e3ab
PE
21902 * xdisp.c (draw_row_with_mouse_face): Now static.
21903 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
21904
de9c2632
PE
21905 * window.h (check_all_windows): Mark externally visible.
21906
2b96acb7
PE
21907 * window.c (window_deletion_count): Now static.
21908
21909 * undo.c: Make symbols static if they're not exported.
21910 (last_undo_buffer, last_boundary_position, pending_boundary):
21911 Now static.
21912
50436f33
PE
21913 * textprop.c (interval_insert_behind_hooks): Now static.
21914 (interval_insert_in_front_hooks): Likewise.
21915
64520e5c
PE
21916 * term.c: Make symbols static if they're not exported.
21917 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
21918 (max_frame_lines, tty_set_terminal_modes):
21919 (tty_reset_terminal_modes, tty_turn_off_highlight):
21920 (get_tty_terminal): Now static.
21921 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
21922 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 21923 HAVE_WINDOW_SYSTEM.
64520e5c
PE
21924 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
21925 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
21926
1fa53021
PE
21927 * sysdep.c: Make symbols static if they're not exported.
21928 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
21929 Now static.
21930 (sigprocmask_set, full_mask): Remove; unused.
21931 (wait_debugging): Mark as visible.
21932 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
21933 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
21934
d4b43b22
PE
21935 * syntax.c (syntax_temp): Define only if !__GNUC__.
21936
b7c513d0
PE
21937 * sound.c (current_sound_device, current_sound): Now static.
21938
989b29ad
PE
21939 * search.c (searchbufs, searchbuf_head): Now static.
21940
13a55a78
PE
21941 * scroll.c (scroll_cost): Remove; unused.
21942 * dispextern.h (scroll_cost): Remove decl.
21943
de68a1fc
PE
21944 * region-cache.h (pp_cache): Mark as externally visible.
21945
40ccffa6
PE
21946 * process.c: Make symbols static if they're not exported.
21947 (process_tick, update_tick, create_process, chan_process):
21948 (Vprocess_alist, proc_buffered_char, datagram_access):
21949 (fd_callback_data, send_process_frame, process_sent_to): Now static.
21950 (deactivate_process): Mark defn as static, as well as decl.
21951 * lisp.h (create_process): Remove decl.
21952 * process.h (chan_process, Vprocess_alist): Remove decls.
21953
ad64fc97
PE
21954 * print.c: Make symbols static if they're not exported.
21955 (print_depth, new_backquote_output, being_printed, print_buffer):
21956 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
21957 (print_interval, print_number_index, initial_stderr_stream):
21958 Now static.
21959 * lisp.h (Fprinc): Remove decl.
21960 (debug_output_compilation_hack): Mark as externally visible.
21961
adddb265
PE
21962 * sysdep.c (croak): Move decl from here to syssignal.h.
21963 * syssignal.h (croak): Put it here, so the API can be checked when
21964 'croak' is called from dissociate_if_controlling_tty.
21965
1717ede2
PE
21966 * minibuf.c: Make symbols static if they're not exported.
21967 (minibuf_save_list, choose_minibuf_frame): Now static.
21968 * lisp.h (choose_minibuf_frame): Remove decl.
21969
fa5fb2bc
PE
21970 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
21971
1e3890d1
PE
21972 * lread.c: Make symbols static if they're not exported.
21973 (read_objects, initial_obarray, oblookup_last_bucket_number):
21974 Now static.
21975 (make_symbol): Remove; unused.
21976 * lisp.h (initial_obarray, make_symbol): Remove decls.
21977
8a1414fa
PE
21978 * keyboard.c: Make symbols static if they're not exported.
21979 (single_kboard, recent_keys_index, total_keys, recent_keys):
21980 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
21981 (this_single_command_key_start, echoing, last_auto_save):
21982 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
21983 (command_loop, echo_now, keyboard_init_hook, help_char_p):
21984 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
21985 (Vlispy_mouse_stem, double_click_count):
21986 Now static.
21987 (force_auto_save_soon): Define only if SIGDANGER.
21988 (ignore_mouse_drag_p): Now static if
21989 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
21990 (print_help): Remove; unused.
21991 (stop_character, last_timer_event): Mark as externally visible.
21992 * keyboard.h (ignore_mouse_drag_p): Declare only if
21993 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
21994 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
21995 * lisp.h (echoing): Remove decl.
21996 (force_auto_save_soon): Declare only if SIGDANGER.
21997 * xdisp.c (redisplay_window): Simplify code, to make it more
21998 obvious that ignore_mouse_drag_p is not accessed if !defined
21999 USE_GTK && !defined HAVE_NS.
22000
93ea6e8f
PE
22001 * intervals.c: Make symbols static if they're not exported.
22002 (merge_properties_sticky, merge_interval_right, delete_interval):
22003 Now static.
22004 * intervals.h (merge_interval_right, delete_interval): Remove decls.
22005
77382fcc
PE
22006 * insdel.c: Make symbols static if they're not exported.
22007 However, leave prepare_to_modify_buffer alone. It's never
22008 called from outside this function, but that appears to be a bug.
22009 (combine_after_change_list, combine_after_change_buffer):
4889fc82 22010 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
22011 (adjust_after_replace_noundo): Remove; unused.
22012 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 22013 (signal_before_change): Remove decls.
77382fcc 22014
9306c32e
PE
22015 * indent.c (val_compute_motion, val_vmotion): Now static.
22016
cd44d2eb
PE
22017 * image.c: Make symbols static if they're not exported.
22018 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
22019 if USE_GTK.
22020 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
22021 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
22022
ad9a7a06
PE
22023 * fringe.c (standard_bitmaps): Now static.
22024 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
22025
81626931
PE
22026 * frame.c: Make symbols static if they're not exported.
22027 (x_report_frame_params, make_terminal_frame): Now static.
22028 (get_frame_param): Now static, unless HAVE_NS.
22029 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
22030 (x_get_resource_string): Remove; not used.
22031 * frame.h (make_terminal_frame, x_report_frame_params):
22032 (x_get_resource_string); Remove decls.
22033 (x_fullscreen_adjust): Declare only if WINDOWSNT.
22034 * lisp.h (get_frame_param): Declare only if HAVE_NS.
22035
239f9db9
PE
22036 * font.c, fontset.c: Make symbols static if they're not exported.
22037 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
22038 (FACE_SUITABLE_FOR_CHAR_P): Use it.
22039 * font.c (font_close_object): Now static.
22040 * font.h (font_close_object): Remove.
22041 * fontset.c (FONTSET_OBJLIST): Remove.
22042 (free_realized_fontset) #if-0 the body, which does nothing.
22043 (face_suitable_for_char_p): #if-0, as it's never called.
22044 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
22045 * xfaces.c (face_at_string_position):
22046 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
22047 since 0 is always ASCII.
22048
dfcf3579
PE
22049 * fns.c (weak_hash_tables): Now static.
22050
5045092b
PE
22051 * fileio.c: Make symbols static if they're not exported.
22052 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
22053 (Vwrite_region_annotation_buffers): Now static.
22054
57a96f5c
PE
22055 * eval.c: Make symbols static if they're not exported.
22056 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
22057 * lisp.h (backtrace_list): Remove decl.
22058
35f08c38
PE
22059 * emacs.c: Make symbols static if they're not exported.
22060 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
22061 (fatal_error_code, fatal_error_signal_hook, standard_args):
22062 Now static.
22063 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
22064 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
22065 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
22066 * lisp.h (fatal_error_signal_hook): Remove decl.
22067 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
22068
f44bd759
PE
22069 * editfns.c: Move a (normally-unused) function to its only use.
22070 * editfns.c, lisp.h (get_operating_system_release): Remove.
22071 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
22072 worth the hassle of breaking this out.
22073
b532497d
PE
22074 * xterm.c: Make symbols static if they're not exported.
22075 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
22076 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
22077 (x_destroy_window, x_delete_display):
22078 Now static.
22079 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
22080 (x_mouse_leave): Remove; unused.
22081 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
22082 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
22083 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
22084 Remove decls.
22085 (x_mouse_leave): Declare only if WINDOWSNT.
22086 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
22087 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
22088 USE_X_TOOLKIT.
22089
1675728f
PE
22090 * ftxfont.c: Make symbols static if they're not exported.
22091 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
22092 HAVE_FREETYPE.
22093 * font.h (ftxfont_driver): Likewise.
22094
e4cebfca
PE
22095 * xfns.c: Make symbols static if they're not exported.
22096 (x_last_font_name, x_display_info_for_name):
22097 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
22098 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
22099 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
22100 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
22101 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
22102 (last_show_tip_args): Now static.
22103 (xic_defaut_fontset, xic_create_fontsetname): Define only if
22104 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
22105 (x_screen_planes): Remove; unused.
22106 * dispextern.h (x_screen_planes): Remove decl.
22107
5bf46f05
PE
22108 * dispnew.c: Make symbols static if they're not exported.
22109 * dispextern.h (redraw_garbaged_frames, scrolling):
22110 (increment_row_positions): Remove.
22111 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
22112 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
22113 Now static.
22114 (redraw_garbaged_frames): Remove; unused.
22115
435f4c28
PE
22116 * xfaces.c: Make symbols static if they're not exported.
22117 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
22118 Remove decls.
22119 * xterm.h (defined_color): Remove decls.
22120 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
22121 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
22122 (menu_face_changed_default, defined_color, free_realized_face):
22123 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
22124 (ascii_face_of_lisp_face): Remove; unused.
22125
8524aef3
PE
22126 * xdisp.c: Make symbols static if they're not exported.
22127 * dispextern.h (scratch_glyph_row, window_box_edges):
22128 (glyph_to_pixel_coords, set_cursor_from_row):
22129 (get_next_display_element, set_iterator_to_next):
22130 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
22131 (show_mouse_face): Remove decls
22132 * frame.h (message_buf_print): Likewise.
22133 * lisp.h (pop_message, set_message, check_point_in_composition):
22134 Likewise.
22135 * xterm.h (set_vertical_scroll_bar): Likewise.
22136 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
22137 (message_buf_print, scratch_glyph_row, displayed_buffer):
22138 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
22139 (get_next_display_element, show_mouse_face, window_box_edges):
22140 (frame_to_window_pixel_xy, check_point_in_composition):
22141 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
22142 (glyph_to_pixel_coords): Remove; unused.
22143
16390cd2
PE
22144 * dired.c (file_name_completion): Now static.
22145
22146 * dbusbind.c (xd_in_read_queued_messages): Now static.
22147
a25f4dfa
PE
22148 * lisp.h (circular_list_error, FOREACH): Remove; unused.
22149 * data.c (circular_list_error): Remove.
22150
14a9c8df
PE
22151 * commands.h (last_point_position, last_point_position_buffer):
22152 (last_point_position_window): Remove decls.
22153 * keyboard.c: Make these variables static.
22154
04f2d78b
CB
22155 * coding.h (coding, code_convert_region, encode_coding_gap):
22156 Remove decls.
74ab6df5
PE
22157 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
22158 (iso_code_class, detect_coding, code_convert_region): Now static.
22159 (encode_coding_gap): Remove; unused.
22160
38dfbee1
PE
22161 * chartab.c (chartab_chars, chartab_bits): Now static.
22162
a2cb4e63
PE
22163 * charset.h (charset_iso_8859_1): Remove decl.
22164 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
22165 Now static.
22166
127198fd
PE
22167 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
22168 * ccl.c (Vccl_program_table): Now static.
22169 (check_ccl_update): Remove; unused.
22170
d85b608f
PE
22171 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
22172 * category.h: ... from here.
22173 * category.c (check_category_table, set_category_set): Now static.
22174
31cd66f3
PE
22175 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
22176 * lisp.h: Remove these decls.
22177
c358e587
PE
22178 * buffer.c (buffer_count): Remove unused var.
22179
e78aecca
PE
22180 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
22181 so that it's not optimized away.
22182 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
22183 * dispextern.h (bidi_dump_cached_states): Remove, since it's
22184 exported only to the debugger.
22185
e192d7d3 22186 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 22187 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 22188
92470028
PE
22189 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
22190 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
22191 was inaccessible from Lisp.
22192 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
22193 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
22194
244ed907
PE
22195 alloc.c: Import and export fewer symbols, and remove unused items.
22196 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
22197 is defined.
22198 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
22199 it's not optimized away by whole-program optimization.
22200 (message_enable_multibyte, free_misc): Remove.
22201 (catchlist, handlerlist, mark_backtrace):
22202 Declare only if BYTE_MARK_STACK.
22203 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
22204 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
22205 (message_enable_multibyte): Remove decl.
22206 (free_misc, interval_free_list, float_block, float_block_index):
22207 (n_float_blocks, float_free_list, cons_block, cons_block_index):
22208 (cons_free_list, last_marked_index):
22209 Now static.
22210 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
22211 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
22212 (mark_backtrace): Define only if BYTE_MARK_STACK.
22213 * xdisp.c (message_enable_multibyte): Now static.
22214
61c2b50e 22215 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
22216 This makes it easier for human readers (and static analyzers)
22217 to see whether these variables are used from other modules.
22218 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
22219 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
22220 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
22221 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
22222 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
22223 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
22224 * xmenu.c, xselect.c:
22225 Declare Q* vars static if they are not used in other modules.
22226 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
22227 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
22228 Remove decls of unexported vars.
22229 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
22230
95c82688
PE
22231 * lisp.h (DEFINE_FUNC): Make sname 'static'.
22232
16a97296
PE
22233 Make Emacs functions such as Fatom 'static' by default.
22234 This makes it easier for human readers (and static analyzers)
22235 to see whether these functions can be called from other modules.
22236 DEFUN now defines a static function. To make the function external
22237 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
22238 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
22239 (Finit_image_library):
16a97296
PE
22240 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
22241 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
22242 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
22243 Remove decls, since these functions are now static.
22244 (Funintern, Fget_internal_run_time): New decls, since these functions
22245 were already external.
95c82688 22246
16a97296
PE
22247 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
22248 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
22249 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
22250 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
22251 * keyboard.c, keymap.c, lread.c:
22252 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
22253 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
22254 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
22255 Mark functions with DEFUE instead of DEFUN,
22256 if they are used in other modules.
22257 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
22258 decls for now-static functions.
22259 * buffer.h (Fdelete_overlay): Remove decl.
22260 * callproc.c (Fgetenv_internal): Mark as internal.
22261 * composite.c (Fremove_list_of_text_properties): Remove decl.
22262 (Fcomposition_get_gstring): New forward static decl.
22263 * composite.h (Fcomposite_get_gstring): Remove decl.
22264 * dired.c (Ffile_attributes): New forward static decl.
22265 * doc.c (Fdocumntation_property): New forward static decl.
22266 * eval.c (Ffetch_bytecode): New forward static decl.
22267 (Funintern): Remove extern decl; now in .h file where it belongs.
22268 * fileio.c (Fmake_symbolic_link): New forward static decl.
22269 * image.c (Finit_image_library): New forward static decl.
22270 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
22271 * intervals.h (Fprevious_property_change):
22272 (Fremove_list_of_text_properties): Remove decls.
22273 * keyboard.c (Fthis_command_keys): Remove decl.
22274 (Fcommand_execute): New forward static decl.
22275 * keymap.c (Flookup_key): New forward static decl.
22276 (Fcopy_keymap): Now static.
22277 * keymap.h (Flookup_key): Remove decl.
22278 * process.c (Fget_process): New forward static decl.
22279 (Fprocess_datagram_address): Mark as internal.
22280 * syntax.c (Fsyntax_table_p): New forward static decl.
22281 (skip_chars): Remove duplicate decl.
22282 * textprop.c (Fprevious_property_change): New forward static decl.
22283 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
22284 Now internal.
22285 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
22286 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
22287
785bbd42
PE
22288 * editfns.c (Fformat): Remove unreachable code.
22289
8b913b57
AS
222902011-04-14 Andreas Schwab <schwab@linux-m68k.org>
22291
22292 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
22293 change. (Bug#8496)
22294
a6744a35
EZ
222952011-04-13 Eli Zaretskii <eliz@gnu.org>
22296
22297 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
22298 when at ZV. (Bug#8487)
22299
e7974947
AS
223002011-04-12 Andreas Schwab <schwab@linux-m68k.org>
22301
baad03f0
AS
22302 * charset.c (Fclear_charset_maps): Use xfree instead of free.
22303 (Bug#8437)
22304 * keyboard.c (parse_tool_bar_item): Likewise.
22305 * sound.c (sound_cleanup, alsa_close): Likewise.
22306 * termcap.c (tgetent): Likewise.
22307 * xfns.c (x_default_font_parameter): Likewise.
22308 * xsettings.c (read_and_apply_settings): Likewise.
22309
e7974947
AS
22310 * alloc.c (overrun_check_malloc, overrun_check_realloc)
22311 (overrun_check_free): Protoize.
22312
28272684
PE
223132011-04-12 Paul Eggert <eggert@cs.ucla.edu>
22314
22315 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
22316 since callers should never pass a negative size.
22317 Change the signature to match that of plain 'read' and 'write'; see
22318 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
22319 * lisp.h: Update prototypes of emacs_write and emacs_read.
22320
11997c76
EZ
223212011-04-11 Eli Zaretskii <eliz@gnu.org>
22322
22323 * xdisp.c (redisplay_window): Don't try to determine the character
22324 position of the scroll margin if the window start point w->startp
e896f03c 22325 is outside the buffer's accessible region. (Bug#8468)
11997c76 22326
8a2cbd72
EZ
223272011-04-10 Eli Zaretskii <eliz@gnu.org>
22328
22329 Fix write-region and its subroutines for buffers > 2GB.
22330 * fileio.c (a_write, e_write): Modify declaration of arguments and
22331 local variables to support buffers larger than 2GB.
22332 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
22333
22334 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
22335 argument, local variables, and return value.
22336
22337 * lisp.h: Update prototypes of emacs_write and emacs_read.
22338
22339 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
22340
4073e537 223412011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 22342
1ebfdcb6
PE
22343 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
22344
b2ded58d
PE
22345 Fix more problems found by GCC 4.6.0's static checks.
22346
7d66342c
PE
22347 * xdisp.c (vmessage): Use a better test for character truncation.
22348
bbf47d44
PE
22349 * charset.c (load_charset_map): <, not <=, for optimization,
22350 and to avoid potential problems with integer overflow.
9248994d 22351 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 22352 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 22353 * editfns.c (Fformat): Likewise.
1e69125e 22354 * syntax.c (skip_chars): Likewise.
3befa583 22355
e3019616
PE
22356 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
22357 This also lets GCC 4.6.0 generate slightly better loop code.
22358
becfa255
PE
22359 * callint.c (Fcall_interactively): <, not <=, for optimization.
22360 (Fcall_interactively): Count the number of arguments produced,
22361 not the number of arguments given. This is simpler and lets GCC
22362 4.6.0 generate slightly better code.
22363
dae0cd48
PE
22364 * ftfont.c: Distingish more carefully between FcChar8 and char.
22365 The previous code passed unsigned char * to a functions like
22366 strlen and xstrcasecmp that expect char *, which does not
22367 conform to the C standard.
22368 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
22369 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
22370 char * when the C standard requires it.
22371
76032d70
PE
22372 * keyboard.c (read_char): Remove unused var.
22373
eb3f1cc8
PE
22374 * eval.c: Port to Windows vsnprintf (Bug#8435).
22375 Include <limits.h>.
22376 (SIZE_MAX): Define if the headers do not.
22377 (verror): Do not give up if vsnprintf returns a negative count.
22378 Instead, grow the buffer. This ports to Windows vsnprintf, which
22379 does not conform to C99. Problem reported by Eli Zaretskii.
22380 Also, simplify the allocation scheme, by avoiding the need for
22381 calling realloc, and removing the ALLOCATED variable.
22382
70476b54
PE
22383 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
22384
12020a9e
PE
22385 Remove invocations of doprnt, as Emacs now uses vsnprintf.
22386 But keep the doprint source code for now, as we might revamp it
22387 and use it again (Bug#8435).
ea6c7ae6
PE
22388 * lisp.h (doprnt): Remove.
22389 * Makefile.in (base_obj): Remove doprnt.o.
22390 * deps.mk (doprnt.o): Remove.
22391
5fdb398c
PE
22392 error: Print 32- and 64-bit integers portably (Bug#8435).
22393 Without this change, on typical 64-bit hosts error ("...%d...", N)
22394 was used to print both 32- and 64-bit integers N, which relied on
22395 undefined behavior.
61bdb816 22396 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
22397 * lisp.h (error, verror): Mark as printf-like functions.
22398 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
22399 Report overflow in size calculations when allocating printf buffer.
22400 Do not truncate output string at its first null byte.
22401 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
22402 Truncate the output at a character boundary, since vsnprintf does not
22403 do that.
22404 * charset.c (check_iso_charset_parameter): Convert internal
22405 character to string before calling 'error', since %c now has the
22406 printf meaning.
22407 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
22408 overflow when computing char to be passed to 'error'. Do not
22409 pass Lisp_Object to 'error'; pass the integer instead.
22410 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
22411 formatted with plain %d.
22412
b189fa66
PE
22413 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
22414
bff87ef0
PE
22415 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
22416
7e2cac20
PE
22417 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
22418
ce4d90b5
PE
22419 * xterm.c (x_catch_errors): Remove duplicate declaration.
22420
266c9547
PE
22421 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
22422
79c49ad2
PE
22423 * xdisp.c, lisp.h (message_nolog): Remove; unused.
22424
368f4090
JM
224252011-04-10 Jim Meyering <meyering@redhat.com>
22426
22427 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
22428 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
22429 return ssize_t not "int", and use size_t as the buffer length.
22430 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
22431 * gnutls.h: Update declarations.
22432 * process.c (read_process_output): Use ssize_t, to match.
22433 (send_process): Likewise.
22434
a32d4040
CY
224352011-04-09 Chong Yidong <cyd@stupidchicken.com>
22436
22437 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
22438
8546720e 224392011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 22440
04f2d78b
CB
22441 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
22442 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 22443
8546720e
GM
22444 * xterm.c (handle_one_xevent):
22445 * xmenu.c (create_and_show_popup_menu):
22446 * xselect.c (x_decline_selection_request)
22447 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 22448
0a2f5c1a 224492011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
22450
22451 Fix some uses of `int' instead of EMACS_INT.
22452 * search.c (string_match_1, fast_string_match)
22453 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
22454 (scan_buffer, find_next_newline_no_quit)
22455 (find_before_next_newline, search_command, Freplace_match)
22456 (Fmatch_data): Make some `int' variables be EMACS_INT.
22457
22458 * xdisp.c (display_count_lines): 3rd argument and return value now
22459 EMACS_INT. All callers changed.
22460 (pint2hrstr): Last argument is now EMACS_INT.
22461
22462 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
22463 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
22464 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
22465 (decode_coding_utf_16, decode_coding_emacs_mule)
22466 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
22467 (decode_coding_ccl, decode_coding_charset)
22468 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
22469 (decode_coding_iso_2022, decode_coding_emacs_mule)
22470 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
22471 <char_offset, last_offset>: Declare EMACS_INT.
22472 (encode_coding_utf_8, encode_coding_utf_16)
22473 (encode_coding_emacs_mule, encode_invocation_designation)
22474 (encode_designation_at_bol, encode_coding_iso_2022)
22475 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
22476 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
22477 Declare EMACS_INT.
22478 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
22479 (encode_invocation_designation): Last argument P_NCHARS is now
22480 EMACS_INT.
22481 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
22482 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
22483
22484 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
22485 All users changed.
22486
22487 * ccl.c (Fccl_execute_on_string): Declare some variables
22488 EMACS_INT.
22489
8546720e 224902011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
22491
22492 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
22493
4e19a977
CS
224942011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
22495
22496 * process.c (Fformat_network_address): Doc fix.
22497
87302331
R
224982011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
22499
ee7683eb 22500 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 22501
cbb59342
CY
225022011-04-08 Chong Yidong <cyd@stupidchicken.com>
22503
22504 * keyboard.c (read_char): Call Lisp function help-form-show,
22505 instead of using internal_with_output_to_temp_buffer.
22506 (Qhelp_form_show): New var.
e0d38eeb 22507 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
22508
22509 * print.c (internal_with_output_to_temp_buffer): Function deleted.
22510
22511 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
22512
e67a13ab
CY
225132011-04-06 Chong Yidong <cyd@stupidchicken.com>
22514
04f2d78b
CB
22515 * process.c (Flist_processes): Remove to Lisp.
22516 (list_processes_1): Delete.
e67a13ab 22517
973f782d
EZ
225182011-04-06 Eli Zaretskii <eliz@gnu.org>
22519
7c106b1e
EZ
22520 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
22521
973f782d
EZ
22522 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
22523
41cf7d1a 225242011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 22525
ca23cc88
PE
22526 Fix more problems found by GCC 4.6.0's static checks.
22527
f390e2d5
PE
22528 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
22529
42eea0d0
PE
22530 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
22531
b69769da 22532 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 22533
f9541e84
PE
22534 * xdisp.c (vmessage): Mark as a printf-like function.
22535
13841b55
PE
22536 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
22537
c136c10f
PE
22538 * sound.c (sound_warning): Don't crash if arg contains a printf format.
22539
5e2d4a30
PE
22540 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
22541 printf-like functions.
22542 (tiff_load): Add casts to remove these marks before passing them
22543 to system-supplied API.
22544
583f48b9
PE
22545 * eval.c (Fsignal): Remove excess argument to 'fatal'.
22546
b25d760e
PE
22547 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
22548 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
22549 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
22550 directly, rather than having caller test rule sign. This avoids
22551 some unnecessary tests.
22552 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
22553 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
22554 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 22555
bc7b6697 22556 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 22557 (xfont_open): Avoid unnecessary tests.
bc7b6697 22558
27ccc379
PE
22559 * composite.c (composition_gstring_put_cache): Use unsigned integer.
22560
dcd5c89a
PE
22561 * composite.h, composite.c (composition_gstring_put_cache):
22562 Use EMACS_INT, not int, for length.
22563
b13a45c6
PE
22564 * composite.h (COMPOSITION_DECODE_REFS): New macro,
22565 breaking out part of COMPOSITION_DECODE_RULE.
22566 (COMPOSITION_DECODE_RULE): Use it.
22567 * composite.c (get_composition_id): Remove unused local vars,
22568 by using the new macro.
22569
1e792e4d
PE
22570 * textprop.c (set_text_properties_1): Change while to do-while,
22571 since the condition is always true at first.
22572
dc6c6455 22573 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
22574 (interval_deletion_adjustment): Return unsigned value.
22575 All uses changed.
dc6c6455 22576
aba7731a
PE
22577 * process.c (list_processes_1, create_pty, read_process_output):
22578 (exec_sentinel): Remove vars that were set but not used.
afd4052b 22579 (create_pty): Remove unnecessary "volatile"s.
bc57d757 22580 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 22581 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 22582 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 22583
fdfc4bf3
PE
22584 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
22585
fca8fe46 22586 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 22587 (update_syntax_table): Use unsigned instead of int.
fca8fe46 22588
06a0259a 22589 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 22590 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 22591 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 22592
e7b9e80f
PE
22593 * print.c (print_error_message): Avoid int overflow.
22594
56201685
PE
22595 * font.c (font_list_entities): Redo for clarity,
22596 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
22597
78834453 22598 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 22599 (font_score): Avoid potential overflow in diff calculation.
78834453 22600
0bc0b309 22601 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 22602 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 22603
e610eaca
PE
22604 * eval.c (funcall_lambda): Rename local to avoid shadowing.
22605
b895abce
PE
22606 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
22607 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
22608 can always succeed if overflow has undefined behavior.
22609
1f1d9321 22610 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 22611 (wordify): Omit three unnecessary tests.
1f1d9321 22612
c59478bc
PE
22613 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
22614 All callers changed. This avoids the need for an unused var.
22615
79b73827
PE
22616 * casefiddle.c (casify_region): Remove var that is set but not used.
22617
a4db5dfe
PE
22618 * dired.c (file_name_completion): Remove var that is set but not used.
22619
43aae36e
PE
22620 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
22621
2a47c44d 22622 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 22623 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 22624
a37c69bf
PE
22625 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
22626 Check for integer overflow on size calculations.
22627
328ab8e7
PE
22628 * buffer.c (Fprevious_overlay_change): Remove var that is set
22629 but not used.
22630
e5a2a5cb
PE
22631 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
22632 Remove vars that are set but not used.
8d84a6eb 22633 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 22634 (timer_check_2): Mark vars as initialized.
e5a2a5cb 22635
a60e5f68
PE
22636 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
22637
f661cb61 22638 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 22639 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 22640
f0397f5a
PE
22641 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
22642 that are set but not used.
22643
8664db06 22644 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 22645 if XCreateBitmapFromData fails (Bug#8410).
8664db06 22646
6abdaa4a
PE
22647 * xselect.c (x_get_local_selection, x_handle_property_notify):
22648 Remove vars that are set but not used.
22649
0ce7538d 22650 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 22651 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 22652
9ae848fc
PE
22653 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
22654 Remove var that is set but not used.
0b918413
PE
22655 (scroll_bar_windows_size): Now size_t, not int.
22656 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
22657 Check for overflow.
9ae848fc 22658
a5a62657
PE
22659 * xfaces.c (realize_named_face): Remove vars that are set but not used.
22660 (map_tty_color) [!defined MSDOS]: Likewise.
22661
5c5cdd39
PE
22662 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
22663
66ebf983
PE
22664 * coding.c: Remove vars that are set but not used.
22665 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
22666 All callers changed.
22667 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
22668 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
22669 (decode_coding_charset): Remove vars that are set but not used.
22670
1be4d761
PE
22671 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
22672 that is set but not used.
22673
47553fa8
PE
22674 * print.c (print_object): Remove var that is set but not used.
22675
1f7196bf 22676 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
22677 The gnulib version avoids calling malloc in the usual case,
22678 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
22679 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
22680 * filelock.c (current_lock_owner): Likewise.
22681 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
22682 * sysdep.c: Include allocator.h, careadlinkat.h.
22683 (emacs_no_realloc_allocator): New static constant.
22684 (emacs_readlink): New function.
fdb61804
PE
22685 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
22686 ../lib/careadlinkat.h.
d1fdcab7 22687
f84c17c7
SM
226882011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
22689
22690 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
22691 first non-nil return value).
22692
ef3862ad
JD
226932011-04-03 Jan Djärv <jan.h.d@swipnet.se>
22694
22695 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
22696 if not defined (Bug#8403).
22697
376a7006
JB
226982011-04-02 Juanma Barranquero <lekktu@gmail.com>
22699
22700 * xdisp.c (display_count_lines): Remove parameter `start',
22701 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
22702 (get_char_face_and_encoding): Remove parameter `multibyte_p',
22703 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
22704 (fill_stretch_glyph_string): Remove parameters `row' and `area',
22705 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
22706 and thereabouts. All callers changed.
22707 (get_per_char_metric): Remove parameter `f', unused since
22708 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
22709
6ca3801d
JM
227102011-04-02 Jim Meyering <meyering@redhat.com>
22711
22712 do not dereference NULL upon failed strdup
22713 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
22714 (ns_get_family): Likewise.
22715
d8e2b5ba
JB
227162011-04-02 Juanma Barranquero <lekktu@gmail.com>
22717
22718 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
22719
8c74fcbd
JD
227202011-04-02 Jan Djärv <jan.h.d@swipnet.se>
22721
22722 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
22723 later (Bug#8403).
22724
7200d79c
SM
227252011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
22726
03408648 22727 Add lexical binding.
7200d79c 22728
03408648
SM
22729 * window.c (Ftemp_output_buffer_show): New fun.
22730 (Fsave_window_excursion):
22731 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
22732
22733 * lread.c (lisp_file_lexically_bound_p): New function.
22734 (Fload): Bind Qlexical_binding.
22735 (readevalloop): Remove `evalfun' arg.
22736 Bind Qinternal_interpreter_environment.
22737 (Feval_buffer): Bind Qlexical_binding.
22738 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
22739 Mark as dynamic.
22740 (syms_of_lread): Declare `lexical-binding'.
22741
22742 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
22743
22744 * keyboard.c (eval_dyn): New fun.
22745 (menu_item_eval_property): Use it.
ca105506
SM
22746
22747 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 22748
03408648
SM
22749 * fns.c (concat, mapcar1): Accept byte-code-functions.
22750
22751 * eval.c (Fsetq): Handle lexical vars.
22752 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
22753 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
22754 (FletX, Flet): Obey lexical binding.
22755 (Fcommandp): Handle closures.
22756 (Feval): New `lexical' arg.
22757 (eval_sub): New function extracted from Feval. Use it almost
22758 everywhere where Feval was used. Look up vars in lexical env.
22759 Handle closures.
22760 (Ffunctionp): Move from subr.el.
22761 (Ffuncall): Handle closures.
22762 (apply_lambda): Remove `eval_flags'.
22763 (funcall_lambda): Handle closures and new byte-code-functions.
22764 (Fspecial_variable_p): New function.
22765 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
22766 but without exporting it to Lisp.
23aba0ea 22767
23aba0ea 22768 * doc.c (Fdocumentation, store_function_docstring):
03408648 22769 * data.c (Finteractive_form): Handle closures.
23aba0ea 22770
03408648
SM
22771 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
22772 interactive spec.
ba83908c 22773
04f2d78b
CB
22774 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
22775 New byte-codes.
03408648
SM
22776 (exec_byte_code): New function extracted from Fbyte_code to handle new
22777 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 22778
03408648 22779 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 22780
03408648 22781 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 22782
e2abce01
JB
227832011-03-31 Juanma Barranquero <lekktu@gmail.com>
22784
22785 * xdisp.c (redisplay_internal): Fix prototype.
22786
63696a73 227872011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 22788
63696a73 22789 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
22790 (try_scrolling): Use it when setting scroll_limit.
22791 Limit scrolling to 100 screen lines.
63696a73
EZ
22792 (redisplay_window): Even when falling back on "recentering",
22793 position point in the window according to scroll-conservatively,
22794 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
22795
22796 (try_scrolling): When point is above the window, allow searching
22797 as far as scroll_max, or one screenful, to compute vertical
22798 distance from PT to the scroll margin position. This prevents
22799 try_scrolling from unnecessarily failing when
22800 scroll-conservatively is set to a value slightly larger than the
22801 window height. Clean up the case of PT below the margin at bottom
22802 of window: scroll_max can no longer be INT_MAX. When aggressive
22803 scrolling is in use, don't let point enter the opposite scroll
22804 margin as result of the scroll.
22805 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
22806 threshold of 100 lines for never-recentering scrolling.
22807
e4cc2dfc
JB
228082011-03-31 Juanma Barranquero <lekktu@gmail.com>
22809
22810 * dispextern.h (move_it_by_lines):
22811 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
22812 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
22813 (message_log_check_duplicate): Remove parameters `prev_bol' and
22814 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
22815 (redisplay_internal): Remove parameter `preserve_echo_area',
22816 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
22817
22818 * indent.c (Fvertical_motion):
22819 * window.c (window_scroll_pixel_based, Frecenter):
22820 Don't pass `need_y_p' to `move_it_by_lines'.
22821
1c470562
SM
228222011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
22823
44f230aa
SM
22824 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
22825 steal a few bits to be more compact.
22826 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
22827 Remove unneeded casts.
22828
1c470562
SM
22829 * bytecode.c (Fbyte_code): CAR and CDR can GC.
22830
888adce9
ZK
228312011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
22832
22833 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
22834 binding" message (bug#7967).
22835
f838ed7b
PE
228362011-03-30 Paul Eggert <eggert@cs.ucla.edu>
22837
77861b95
PE
22838 Fix more problems found by GCC 4.6.0's static checks.
22839
de6dbc14
PE
22840 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
22841 Remove unused local var.
22842
f838ed7b
PE
22843 * editfns.c (Fmessage_box): Remove unused local var.
22844
792c7b2b
PE
22845 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
22846 (note_mode_line_or_margin_highlight, note_mouse_highlight):
22847 Omit unused local vars.
c499e557 22848 * window.c (shrink_windows): Omit unused local var.
b01a1c29 22849 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
22850 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
22851 Omit unused local var.
22852
ba0165e1
PE
22853 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
22854 Don't assume string length fits in int.
32ad8845 22855 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 22856 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 22857
3c59b4c9
PE
22858 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
22859 instead of alloca (Bug#8344).
22860
a3eed478 22861 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 22862 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 22863
eb4d412d
PE
22864 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
22865
1658b401
PE
22866 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
22867 concerns.
22868
22869 * term.c (produce_glyphless_glyph): Remove unnecessary test.
22870
22871 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 22872
9a2c6e05
PE
22873 * keyboard.c (syms_of_keyboard): Use the same style as later
22874 in this function when indexing through an array. This also
22875 works around GCC bug 48267.
22876
03d0a109
PE
22877 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
22878
44f730c8
PE
22879 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
22880
fe75f926
PE
22881 * chartab.c (sub_char_table_ref_and_range): Redo for slight
22882 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
22883
ffa8c828
PE
22884 * keyboard.c, keyboard.h (num_input_events): Now size_t.
22885 This avoids undefined behavior on integer overflow, and is a bit
22886 more convenient anyway since it is compared to a size_t variable.
22887
c5101a77
PE
22888 Variadic C functions now count arguments with size_t, not int.
22889 This avoids an unnecessary limitation on 64-bit machines, which
22890 caused (substring ...) to crash on large vectors (Bug#8344).
22891 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
22892 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 22893 All variadic functions and their callers changed accordingly.
c5101a77
PE
22894 (struct gcpro.nvars): Now size_t, not int. All uses changed.
22895 * data.c (arith_driver, float_arith_driver): Likewise.
22896 * editfns.c (general_insert_function): Likewise.
22897 * eval.c (struct backtrace.nargs, interactive_p)
22898 (internal_condition_case_n, run_hook_with_args, apply_lambda)
22899 (funcall_lambda, mark_backtrace): Likewise.
22900 * fns.c (concat): Likewise.
22901 * frame.c (x_set_frame_parameters): Likewise.
22902 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
22903 0 if not found, not -1. All callers changed.
22904
dd3f25f7
PE
22905 * alloc.c (garbage_collect): Don't assume stack size fits in int.
22906 (stack_copy_size): Now size_t, not int.
22907 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
22908
461c2ab9
JB
229092011-03-28 Juanma Barranquero <lekktu@gmail.com>
22910
22911 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
22912 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
22913 All callers changed.
22914
22915 * lisp.h (multibyte_char_to_unibyte):
22916 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
22917 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
22918 * character.h (CHAR_TO_BYTE8):
22919 * cmds.c (internal_self_insert):
22920 * editfns.c (general_insert_function):
22921 * keymap.c (push_key_description):
22922 * search.c (Freplace_match):
22923 * xdisp.c (message_dolog, set_message_1): All callers changed.
22924
f6d62986
SM
229252011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
22926
22927 * keyboard.c (safe_run_hook_funcall): New function.
22928 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
22929 don't set the hook to nil, but remove the offending function instead.
22930 (Qcommand_hook_internal): Remove, unused.
22931 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
22932 Vcommand_hook_internal.
22933
22934 * eval.c (enum run_hooks_condition): Remove.
22935 (funcall_nil, funcall_not): New functions.
22936 (run_hook_with_args): Call each function through a `funcall' argument.
22937 Remove `cond' argument, now redundant.
22938 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
22939 (Frun_hook_with_args_until_failure): Adjust accordingly.
22940 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
22941
1db5b1ad
JB
229422011-03-28 Juanma Barranquero <lekktu@gmail.com>
22943
22944 * dispextern.h (string_buffer_position): Remove declaration.
22945
22946 * print.c (strout): Remove parameter `multibyte', unused since
22947 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
22948
22949 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
22950 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
22951 All callers changed.
22952
22953 * w32.c (_wsa_errlist): Use braces for struct initializers.
22954
22955 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
22956 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
22957 All callers changed.
22958 (string_buffer_position): Likewise. Also, make static (it's never
22959 used outside xdisp.c).
22960 (cursor_row_p): Remove parameter `w', unused since
22961 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
22962 (decode_mode_spec): Remove parameter `precision', introduced during
22963 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
22964 All callers changed.
22965
5ffb62aa
JD
229662011-03-27 Jan Djärv <jan.h.d@swipnet.se>
22967
22968 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
22969
461c2ab9 229702011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
22971
22972 * nsterm.m (ns_menu_bar_is_hidden): New variable.
22973 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
22974 (ns_update_auto_hide_menu_bar): New functions.
22975 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
22976 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
22977 ns_constrain_all_frames.
22978 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
22979 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
22980
5c380ffb
JD
229812011-03-27 Jan Djärv <jan.h.d@swipnet.se>
22982
22983 * nsmenu.m (runDialogAt): Remove argument to timer_check.
22984
9af30bdf
GM
229852011-03-27 Glenn Morris <rgm@gnu.org>
22986
22987 * syssignal.h: Replace RETSIGTYPE with void.
22988 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
22989 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
22990 Replace SIGTYPE with void everywhere.
22991 * s/usg5-4-common.h (SIGTYPE): Remove definition.
22992 * s/template.h (SIGTYPE): Remove commented out definition.
22993
e2abce01
JB
229942011-03-26 Eli Zaretskii <eliz@gnu.org>
22995
22996 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
22997 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
22998
f868cd8a
JB
229992011-03-26 Juanma Barranquero <lekktu@gmail.com>
23000
59eb0929
JB
23001 * w32.c (read_unc_volume): Use parameter `henum', instead of
23002 global variable `wget_enum_handle'.
23003
23004 * keymap.c (describe_vector): Remove parameters `indices' and
23005 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
23006 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
23007
f868cd8a
JB
23008 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
23009
23010 * keyboard.c (timer_check): Remove parameter `do_it_now',
23011 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
23012 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
23013 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
23014
23015 * keyboard.c (read_char):
23016 * w32menu.c (w32_menu_display_help):
23017 * xmenu.c (show_help_event, menu_help_callback):
23018 Adjust calls to `show_help_echo'.
23019
23020 * gtkutil.c (xg_maybe_add_timer):
23021 * keyboard.c (readable_events):
23022 * process.c (wait_reading_process_output):
23023 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
23024
23025 * insdel.c (adjust_markers_gap_motion):
23026 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
23027 (gap_left, gap_right): Don't call it.
23028
2ecf6fdb
CY
230292011-03-25 Chong Yidong <cyd@stupidchicken.com>
23030
23031 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
23032 incurred during fontification.
23033
6b1f9ba4
JB
230342011-03-25 Juanma Barranquero <lekktu@gmail.com>
23035
23036 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
23037 (DEFVAR_PER_BUFFER): Don't pass it.
23038
23039 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
23040 (scrolling_window): Don't pass it.
23041
0f4a96b5
JB
230422011-03-25 Juanma Barranquero <lekktu@gmail.com>
23043
23044 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
23045
23046 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
23047 and `suffix'.
23048 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
23049 of variables specific to SELinux and computation of `encoded_absname'.
23050
23051 * image.c (XPutPixel): Remove unused variable `height'.
23052
23053 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
23054
23055 * unexw32.c (get_section_info): Remove unused variable `section'.
23056
23057 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
23058 (system_process_attributes): Remove unused variable `sess'.
23059 (sys_read): Remove unused variable `err'.
23060
23061 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
23062 (w32_wnd_proc): Remove unused variable `isdead'.
23063 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
23064 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
23065 (x_create_tip_frame): Remove unused variable `tem'.
23066
23067 * w32inevt.c (w32_console_read_socket):
23068 Remove unused variable `no_events'.
23069
23070 * w32term.c (x_draw_composite_glyph_string_foreground):
23071 Remove unused variable `width'.
23072
1149507c
JB
230732011-03-24 Juanma Barranquero <lekktu@gmail.com>
23074
23075 * w32term.c (x_set_glyph_string_clipping):
23076 Don't pass uninitialized region to CombineRgn.
23077
9c88f339
JB
230782011-03-23 Juanma Barranquero <lekktu@gmail.com>
23079
23080 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
23081 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
23082 (Fx_close_connection): Remove unused variable `i'.
23083
23084 * w32font.c (w32font_draw): Return number of glyphs.
23085 (w32font_open_internal): Remove unused variable `i'.
23086 (w32font_driver): Add missing initializer.
23087
23088 * w32menu.c (utf8to16): Remove unused variable `utf16'.
23089 (fill_in_menu): Remove unused variable `items_added'.
23090
23091 * w32term.c (last_mouse_press_frame): Remove static global variable.
23092 (w32_clip_to_row): Remove unused variable `f'.
23093 (x_delete_terminal): Remove unused variable `i'.
23094
23095 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
23096 (NOTHING): Remove unused static global variable.
23097 (uniscribe_check_otf): Remove unused variable `table'.
23098 (uniscribe_font_driver): Add missing initializers.
23099
dee091a3
JD
231002011-03-23 Julien Danjou <julien@danjou.info>
23101
23102 * term.c (Fsuspend_tty, Fresume_tty):
23103 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
23104 * window.c (temp_output_buffer_show):
23105 * insdel.c (signal_before_change):
23106 * frame.c (Fhandle_switch_frame):
23107 * fileio.c (Fdo_auto_save):
23108 * emacs.c (Fkill_emacs):
23109 * editfns.c (save_excursion_restore):
23110 * cmds.c (internal_self_insert):
23111 * callint.c (Fcall_interactively):
23112 * buffer.c (Fkill_all_local_variables):
23113 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
23114 Use Frun_hooks.
0f4a96b5 23115 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 23116 unconditionally since it does the check itself.
dee091a3 23117
2c520ab5 231182011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 23119
c9c49752
PE
23120 Fix more problems found by GCC 4.5.2's static checks.
23121
8abc3f12
PE
23122 * coding.c (encode_coding_raw_text): Avoid unnecessary test
23123 the first time through the loop, since we know p0 < p1 then.
23124 This also avoids a gcc -Wstrict-overflow warning.
23125
a2d26660
PE
23126 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
23127 leading to a memory leak, possible in functions like
23128 load_charset_map_from_file that can allocate an unbounded number
b12ef411 23129 of objects (Bug#8318).
a2d26660 23130
916c72e9
PE
23131 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
23132 that could (at least in theory) be that large.
23133
19ab8a18
PE
23134 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
23135 This is less likely to overflow, and avoids undefined behavior if
23136 overflow does occur. All callers changed. Use strtoul to scan
23137 for the unsigned long integer.
b7cbbd6f
PE
23138 (pint2hrstr): Simplify and tune code slightly.
23139 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 23140
f0641eff
PE
23141 * scroll.c (do_scrolling): Work around GCC bug 48228.
23142 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
23143
7f650bb9
PE
23144 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
23145 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
23146 (validate_x_resource_name): Simplify count usage.
23147 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 23148
37dd57d1
PE
23149 * fileio.c (Fcopy_file): Report error if fchown or fchmod
23150 fail (Bug#8306).
81e56e61 23151
699979fc 23152 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 23153
401bf9b4
PE
23154 * process.c (Fmake_network_process): Use socklen_t, not int,
23155 where POSIX says socklen_t is required in portable programs.
23156 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 23157 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
23158 (Fmake_network_process, server_accept_connection):
23159 (wait_reading_process_output, read_process_output):
23160 Likewise.
23161
b93aacde
PE
23162 * process.c: Rename or move locals to avoid shadowing.
23163 (list_processes_1, Fmake_network_process):
23164 (read_process_output_error_handler, exec_sentinel_error_handler):
23165 Rename or move locals.
4dc343ee 23166 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 23167 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 23168 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 23169 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 23170 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 23171
af8a867c 23172 Make tparam.h and terminfo.c consistent.
44f230aa
SM
23173 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
23174 Include tparam.h instead, since it declares them.
af8a867c
PE
23175 * cm.h (PC): Remove extern decl; tparam.h now does this.
23176 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
23177 * terminfo.c: Include tparam.h, to check interfaces.
23178 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
23179 (tparam): Adjust signature to match interface in tparam.h;
23180 this removes some undefined behavior. Check that outstring and len
23181 are zero, which they always are with Emacs.
23182 * tparam.h (PC, BC, UP): New extern decls.
23183
0248044d 23184 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 23185 (xftfont_open): Rename locals to avoid shadowing.
0248044d 23186
8ff096c1 23187 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
23188 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
23189 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 23190 (ftfont_list): Remove unused local.
49eaafba
PE
23191 (get_adstyle_property, ftfont_pattern_entity):
23192 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
23193 Rename locals to avoid shadowing.
8ff096c1 23194
e2be39f6
PE
23195 * xfont.c (xfont_list_family): Mark var as initialized.
23196
c9735e30
PE
23197 * xml.c (make_dom): Now static.
23198
8f5201ae
PE
23199 * composite.c (composition_compute_stop_pos): Rename local to
23200 avoid shadowing.
b246f932
PE
23201 (composition_reseat_it): Remove unused locals.
23202 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 23203 (composition_update_it): Mark var as initialized.
11b61122
PE
23204 (find_automatic_composition): Mark vars as initialized,
23205 with a FIXME (Bug#8290).
8f5201ae 23206
760fbc2c
PE
23207 character.h: Rename locals to avoid shadowing.
23208 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
23209 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
23210 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
23211 (BUF_DEC_POS): Be more systematic about renaming local temporaries
23212 to avoid shadowing.
23213
ff08eb85
PE
23214 * textprop.c (property_change_between_p): Remove; unused.
23215
fc7bf025
PE
23216 * intervals.c (interval_start_pos): Now static.
23217
235d7abc
PE
23218 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
23219
44f230aa
SM
23220 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
23221 Rename locals to avoid shadowing.
3e7d6594 23222
50060332
PE
23223 * sound.c (wav_play, au_play, Fplay_sound_internal):
23224 Fix pointer signedness.
d01f234b 23225 (alsa_choose_format): Remove unused local var.
c83b8872
PE
23226 (wav_play): Initialize a variable to 0, to prevent undefined
23227 behavior (Bug#8278).
50060332 23228
c4fc4e30
PE
23229 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
23230
918436ed
PE
23231 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
23232
c939f91b
PE
23233 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
23234 clobbering (Bug#8298).
b9c7f648
PE
23235 * sysdep.c (sys_subshell): Likewise.
23236 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 23237
6bd8c144
PE
23238 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
23239 This should get cleaned up, so that child_setup has the
23240 same signature on all platforms.
23241
7710357c 23242 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 23243 (relocate_fd): Rename locals to avoid shadowing.
7710357c 23244
c59da222
CY
232452011-03-22 Chong Yidong <cyd@stupidchicken.com>
23246
23247 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
23248 not to be necessary, and produces flickering.
23249
66b87493
GM
232502011-03-20 Glenn Morris <rgm@gnu.org>
23251
23252 * config.in: Remove file.
23253
45b6f6d5
JB
232542011-03-20 Juanma Barranquero <lekktu@gmail.com>
23255
23256 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
23257 are now in src/globals.h.
23258 (syms_of_minibuf): Remove spurious & from previous change.
23259
cd394be1 232602011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
23261
23262 * minibuf.c (completing-read-function): New variable.
23263 (completing-read-default): Rename from completing-read.
23264 (completing-read): Call completing-read-function.
23265
b14e3e21
CY
232662011-03-19 Juanma Barranquero <lekktu@gmail.com>
23267
23268 * xfaces.c (Fx_load_color_file):
23269 Read color file from absolute filename (bug#8250).
23270
f2b726e6
JB
232712011-03-19 Juanma Barranquero <lekktu@gmail.com>
23272
23273 * makefile.w32-in: Update dependencies.
23274
09f6ff02
EZ
232752011-03-17 Eli Zaretskii <eliz@gnu.org>
23276
23277 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
23278
29a6015a
PE
232792011-03-17 Paul Eggert <eggert@cs.ucla.edu>
23280
a3a6c54e
PE
23281 Fix more problems found by GCC 4.5.2's static checks.
23282
b766f867
PE
23283 * process.c (make_serial_process_unwind, send_process_trap):
23284 (sigchld_handler): Now static.
23285
be02381c
PE
23286 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
23287 That way, the code declares only the vars that it needs.
23288 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
23289 * s/cygwin.h (PTY_ITERATION): Likewise.
23290 * s/darwin.h (PTY_ITERATION): Likewise.
23291 * s/gnu-linux.h (PTY_ITERATION): Likewise.
23292
57048744
PE
23293 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
23294 * process.c (allocate_pty): Don't declare stb unless it's needed.
23295
7914961c 23296 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
23297 (CONSTANTLIM): Remove; unused.
23298 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
23299 Define only if needed.
7914961c 23300
b3967b18
PE
23301 * unexelf.c (unexec): Name an expression,
23302 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
23303 Use a different way to cause a compilation error if anyone uses
23304 n rather than nn, a way that does not involve shadowing.
73366a00 23305 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 23306
29a6015a
PE
23307 * deps.mk (unexalpha.o): Remove; unused.
23308
43cfc33e 23309 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 23310 * unexec.h: New file.
ce701a33
PE
23311 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
23312 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
23313 Depend on unexec.h.
23314 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
23315 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
23316 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 23317 Change as necessary to match prototype in unexec.h.
ce701a33 23318
01f44d5a
PE
23319 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
23320 shadowing.
4f63c6bb 23321 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 23322
a6670b0b
PE
23323 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
23324 Rename locals to avoid shadowing.
23325
cef2010d 23326 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 23327 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 23328
d4d7173a
PE
23329 * print.c (Fredirect_debugging_output): Fix pointer signedess.
23330
f08b802a
PE
23331 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
23332 warning when compiling print.c.
23333
3ddb0639
PE
23334 * font.c (font_unparse_fcname): Abort in an "impossible" situation
23335 instead of using an uninitialized var.
5ad03b97 23336 (font_sort_entities): Mark var as initialized.
3ddb0639 23337
170a2692
PE
23338 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
23339
e663c700
PE
23340 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
23341 pointers to constants.
89bc529a 23342 (font_parse_fcname): Remove unused vars.
7b81e2d0 23343 (font_delete_unmatched): Now static.
ea838e10 23344 (font_get_spec): Remove; unused.
13a547c6
PE
23345 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
23346 (font_update_drivers, Ffont_get_glyphs, font_add_log):
23347 Rename or move locals to avoid shadowing.
e663c700 23348
2a80c887 23349 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 23350 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 23351
1384fa33 23352 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 23353 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 23354
8b2c52e9
PE
23355 * alloc.c (mark_backtrace): Move decl from here ...
23356 * lisp.h: ... to here, so that it can be checked.
23357
475545b5 23358 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 23359 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
23360 (lisp_indirect_variable): Name an expression,
23361 to avoid gcc -Wbad-function-cast warning.
1faed8ae 23362 (Fdefvar): Rename locals to avoid shadowing.
475545b5 23363
b1349114 23364 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 23365 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 23366 Use const pointer when appropriate.
b1349114 23367
a2928364
PE
23368 * lisp.h (get_system_name, get_operating_system_release):
23369 Move decls here, to check interfaces.
23370 * process.c (get_operating_system_release): Move decl to lisp.h.
23371 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
23372 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
23373 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
23374 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
23375 (Fformat_time_string, Fencode_time, Finsert_char):
23376 (Ftranslate_region_internal, Fformat):
23377 Rename or remove local vars to avoid shadowing.
9710023e 23378 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 23379
a415e694
PE
23380 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
23381 avoid shadowing.
23382
8ef4622d
PE
23383 * lisp.h (eassert): Check that the argument compiles, even if
23384 ENABLE_CHECKING is not defined.
23385
946f9a5b
PE
23386 * data.c (Findirect_variable): Name an expression, to avoid
23387 gcc -Wbad-function-cast warning.
112396d6 23388 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 23389 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
23390 (Fmake_variable_buffer_local, Fmake_local_variable):
23391 Mark variables as initialized.
52746918 23392 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 23393
e5aab7e7 23394 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
23395 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
23396 Rename locals to avoid shadowing.
dff45157
PE
23397 (mark_stack): Move local variables into the #ifdef region where
23398 they're used.
7bc26fdb
PE
23399 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
23400 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
23401 needed otherwise.
23402 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
23403 (GC_STRING_CHARS): Remove; not used.
d40d4be1 23404 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 23405
e5aab7e7
PE
23406 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
23407 avoids undefined behavior in theory.
23408
4da60324
PE
23409 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
23410
88043301
PE
23411 Use functions, not macros, for up- and down-casing (Bug#8254).
23412 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
23413 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
23414 to use the following functions instead of these macros.
23415 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
23416 EMACS_INT, since callers assume the returned value fits in int.
23417 (upcase1): Likewise, for UPCASE_TABLE.
23418 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 23419 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 23420 the race-condition problem in the old DOWNCASE.
88043301 23421
19ed5445
PE
23422 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
23423 Rename locals to avoid shadowing.
23424 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
23425 (regex_compile, re_search_2, re_match_2_internal):
23426 Remove unused local vars.
952db0d7
PE
23427 (FREE_VAR): Rewrite so as not to use empty "else",
23428 which gcc can warn about.
da053e48 23429 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
23430 (RETALLOC_IF): Define only if needed.
23431 (WORDCHAR_P): Likewise. This one is never needed, but is used
23432 only in a comment talking about a compiler bug, so put inside
23433 the #if 0 of that comment.
23434 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
23435 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
23436 Remove; unused.
19ed5445 23437
1f3561e4 23438 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
23439 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
23440 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 23441
ded6f8f7
PE
23442 * search.c (simple_search): Remove unused var.
23443
dbd37a95
PE
23444 * dired.c (compile_pattern): Move decl from here ...
23445 * lisp.h: ... to here, so that it can be checked.
23446 (struct re_registers): New forward decl.
23447
7e47afad
PE
23448 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
23449
85f24f61
PE
23450 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
23451 All uses changed.
23452 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
23453 Rename locals to avoid shadowing.
5671df8f 23454 (Fvertical_motion): Mark locals as initialized.
85f24f61 23455
181aa2be 23456 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 23457 (casify_region): Mark local as initialized.
181aa2be 23458
930d429c
PE
23459 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
23460
7082eac6
PE
23461 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
23462 New macros, so that the caller can use some names other than
23463 gcpro1, gcpro2, etc.
23464 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
23465 of the new macros.
23466 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
23467 argument, for consistency with GCPRO2_VAR, etc: it is now the
23468 prefix of the variable, not the variable itself. All uses
23469 changed.
38b2c076
PE
23470 * dired.c (directory_files_internal, file_name_completion):
23471 Rename locals to avoid shadowing.
23472
15206ed9
PE
23473 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
23474 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
23475 dired.c's scmp function, had undefined behavior.
23476 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
23477 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
23478 * buffer.h: ... to here, because these macros use current_buffer,
23479 and the new implementation with inline functions needs to have
23480 current_buffer in scope now, rather than later when the macros
23481 are used.
23482 (downcase, upcase1): New static inline functions.
23483 (DOWNCASE, UPCASE1): Reimplement using these functions.
23484 This avoids undefined behavior in expressions like
23485 DOWNCASE (x) == DOWNCASE (y), which previously suffered
23486 from race conditions in accessing the global variables
23487 case_temp1 and case_temp2.
23488 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
23489 * lisp.h (case_temp1, case_temp2): Remove their decls.
23490 * character.h (ASCII_CHAR_P): Move from here ...
23491 * lisp.h: ... to here, so that the inline functions mentioned
23492 above can use them.
23493
4a6bea26
PE
23494 * dired.c (directory_files_internal_unwind): Now static.
23495
f14b7e14
PE
23496 * fileio.c (file_name_as_directory, directory_file_name):
23497 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
23498 Now static.
2893f146
PE
23499 (file_name_as_directory): Use const pointers when appropriate.
23500 (Fexpand_file_name): Likewise. In particular, newdir might
23501 point at constant storage, so make it a const pointer.
fd4ead52 23502 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
23503 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
23504 signedness issues.
f839df0c
PE
23505 (Fset_file_times, Finsert_file_contents, auto_save_error):
23506 Rename locals to avoid shadowing.
f14b7e14 23507
5716756e 23508 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
23509 (Ftry_completion, Fall_completions): Rename or remove locals
23510 to avoid shadowing.
5716756e 23511
b4c3046a
PE
23512 * marker.c (bytepos_to_charpos): Remove; unused.
23513
b45db522
PE
23514 * lisp.h (verify_bytepos, count_markers): New decls,
23515 so that gcc does not warn that these functions aren't declared.
23516
85876d07
PE
23517 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
23518 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 23519 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 23520 (copy_text): Remove unused local var.
85876d07 23521
03d78a21 23522 * filelock.c (within_one_second): Now static.
b3dd38ab 23523 (lock_file_1): Rename local to avoid shadowing.
03d78a21 23524
5df8f01b
PE
23525 * buffer.c (fix_overlays_before): Mark locals as initialized.
23526 (fix_start_end_in_overlays): Likewise. This function should be
23527 simplified by using pointers-to-pointers, but that's a different
23528 matter.
b1d876f1 23529 (switch_to_buffer_1): Now static.
8f54f30a
PE
23530 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
23531 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 23532
a70072c9 23533 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 23534 Fix pointer signedness issue.
edced198
PE
23535 (sys_subshell): Mark local as volatile if checking for lint,
23536 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 23537 (MAXPATHLEN): Define only if needed.
a70072c9 23538
a0977c44
PE
23539 * process.c (serial_open, serial_configure): Move decls from here ...
23540 * systty.h: ... to here, so that they can be checked.
23541
a884fdcc
PE
23542 * fns.c (get_random, seed_random): Move extern decls from here ...
23543 * lisp.h: ... to here, so that they can be checked.
23544
604efe86 23545 * sysdep.c (reset_io): Now static.
b8950c94 23546 (wait_for_termination_signal): Remove; unused.
604efe86 23547
38fc62d9
PE
23548 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
23549 (copy_keymap_item, append_key, push_text_char_description):
23550 Now static.
1004a21a 23551 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 23552 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
23553 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
23554 (describe_map_tree):
23555 Rename locals to avoid shadowing.
38fc62d9 23556
2f2650da
PE
23557 * keyboard.c: Declare functions static if they are not used elsewhere.
23558 (echo_char, echo_dash, cmd_error, top_level_2):
23559 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
23560 (read_char, kbd_buffer_get_event, make_lispy_position):
23561 (make_lispy_event, make_lispy_movement, apply_modifiers):
23562 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
23563 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
23564 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 23565 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 23566 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 23567
a053e86c 23568 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
23569 (mark_kboards): Move decl here ...
23570 * alloc.c (mark_kboards): ... from here.
a053e86c 23571
4752793e
PE
23572 * lisp.h (force_auto_save_soon): New decl.
23573
74f10ca7 23574 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
23575 (DEFINE_DUMMY_FUNCTION): New macro.
23576 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
23577 Use it.
c03cd23f
PE
23578 (main): Add casts to avoid warnings
23579 if GCC considers string literals to be constants.
74f10ca7 23580
022e70d4
PE
23581 * lisp.h (fatal_error_signal): Add decl, since it's exported.
23582
59d6fe83
PE
23583 * dbusbind.c: Pointer signedness fixes.
23584 (xd_signature, xd_append_arg, xd_initialize):
23585 (Fdbus_call_method, Fdbus_call_method_asynchronously):
23586 (Fdbus_method_return_internal, Fdbus_method_error_internal):
23587 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
23588 (Fdbus_register_signal): Use SSDATA when the context wants char *.
23589
78320123
PE
23590 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
23591 if GCC considers string literals to be constants.
49cebcca 23592 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 23593
35ac2a97
SM
235942011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
23595
fb103ca9
SM
23596 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
23597 (print_preprocess, print_object): New macro to fix last change.
23598
35ac2a97
SM
23599 * print.c (print_preprocess): Don't forget font objects.
23600
62973b41
JB
236012011-03-16 Juanma Barranquero <lekktu@gmail.com>
23602
23603 * emacs.c (USAGE3): Doc fixes.
23604
0e48bb22
AS
236052011-03-15 Andreas Schwab <schwab@linux-m68k.org>
23606
23607 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
23608 structure.
23609
7684e57b
JB
236102011-03-14 Juanma Barranquero <lekktu@gmail.com>
23611
23612 * lisp.h (VWindow_system, Qfile_name_history):
23613 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
23614 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
23615 (w32_system_caret_x, w32_system_caret_y): Declare extern.
23616
23617 * w32select.c: Don't #include "keyboard.h".
c96bbc66 23618 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
23619
23620 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
23621 * w32console.c (detect_input_pending, read_input_pending)
23622 (encode_terminal_code):
23623 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
23624 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
23625 (w32_system_caret_y, Qfile_name_history):
23626 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
23627 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
23628 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
23629 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
23630 * w32proc.c (Qlocal, report_file_error):
23631 * w32term.c (Vwindow_system, updating_frame):
23632 * w32uniscribe.c (initialized, uniscribe_font_driver):
23633 Remove unneeded extern declarations.
23634
2aa46d6c
CY
236352011-03-14 Chong Yidong <cyd@stupidchicken.com>
23636
c96bbc66 23637 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 23638
cffc6f3b
CY
236392011-03-13 Chong Yidong <cyd@stupidchicken.com>
23640
23641 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
23642 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
23643 These macros can no longer be used for assignment.
23644
44f230aa
SM
23645 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
23646 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
23647 (record_buffer_markers, fetch_buffer_markers): New functions for
23648 recording and fetching special buffer markers.
23649 (set_buffer_internal_1, set_buffer_temp): Use them.
23650
23651 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
23652
23653 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
23654
23655 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
23656 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
23657
23658 * xdisp.c (hscroll_window_tree):
23659 (reconsider_clip_changes): Use PT instead of BUF_PT.
23660
d251f04b
EZ
236612011-03-13 Eli Zaretskii <eliz@gnu.org>
23662
23663 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
23664 $(EMACS_ROOT)/lib/intprops.h.
23665
f0c77cd1
PE
236662011-03-13 Paul Eggert <eggert@cs.ucla.edu>
23667
3eca4629
PE
23668 Fix more problems found by GCC 4.5.2's static checks.
23669
7c86ee98
PE
23670 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
23671 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
23672 (xg_free_frame_widgets): Make it clear that a local variable is
23673 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
23674 (gdk_window_get_screen): Make it clear that this macro is needed
23675 only if USE_GTK_TOOLTIP.
1e5524e7
PE
23676 (int_gtk_range_get_value): New function, which avoids a diagnostic
23677 from gcc -Wbad-function-cast.
23678 (xg_set_toolkit_scroll_bar_thumb): Use it.
23679 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
23680 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
23681 (get_utf8_string, xg_get_file_with_chooser):
23682 Rename locals to avoid shadowing.
23683 (create_dialog): Move locals to avoid shadowing.
7c86ee98 23684
41729b81
PE
23685 * xgselect.c (xg_select): Remove unused var.
23686
f0c77cd1
PE
23687 * image.c (four_corners_best): Mark locals as initialized.
23688 (gif_load): Initialize transparent_p to zero (Bug#8238).
23689 Mark another local as initialized.
ec6cf4c6 23690 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 23691
ce0ad53d 23692 * image.c (clear_image_cache): Now static.
d5d5a617 23693 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 23694 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
23695 (x_edge_detection): Remove unnecessary cast that
23696 gcc -Wbad-function-cast diagnoses.
2037898d 23697 (gif_load): Fix pointer signedness.
6ae141d6
PE
23698 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
23699 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 23700
33383987 237012011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 23702
d32df629
PE
23703 Improve quality of tests for time stamp overflow.
23704 For example, without this patch (encode-time 0 0 0 1 1
23705 1152921504606846976) returns the obviously-bogus value (-948597
23706 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
23707 reports time overflow. See
23708 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
23709 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
23710 * editfns.c: Include limits.h and intprops.h.
23711 (TIME_T_MIN, TIME_T_MAX): New macros.
23712 (time_overflow): Move earlier, to before first use.
23713 (hi_time, lo_time): New functions, for an accurate test for
23714 out-of-range times.
23715 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
23716 (Fget_internal_run_time): Don't assume time_t fits in int.
23717 (make_time): Use list2 instead of Fcons twice.
23718 (Fdecode_time): More accurate test for out-of-range times.
23719 (check_tm_member): New function.
23720 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
23721 (lisp_time_argument): Don't rely on undefined left-shift and
23722 right-shift behavior when checking for time stamp overflow.
8be6f318 23723
fe31d94c
PE
23724 * editfns.c (time_overflow): New function, refactoring common code.
23725 (Fformat_time_string, Fdecode_time, Fencode_time):
23726 (Fcurrent_time_string): Use it.
23727
8be6f318
PE
23728 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
23729 * dired.c (make_time): Move to ...
23730 * editfns.c (make_time): ... here.
23731 * systime.h: Note the move.
23732
09d9db2c 237332011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 23734
126bc0dc
YM
23735 * fringe.c (update_window_fringes): Remove unused variables.
23736
c47cbdfd
YM
23737 * unexmacosx.c (copy_data_segment): Also copy __got section.
23738 (Bug#8223)
23739
7ac80be9
EZ
237402011-03-12 Eli Zaretskii <eliz@gnu.org>
23741
c96bbc66 23742 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
23743 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
23744 Constify `char *' arguments and their references according to
23745 prototypes in tparam.h.
23746
ecb0f94d 23747 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 23748
7ac80be9
EZ
23749 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
23750 Adapt all references accordingly.
23751
23752 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
23753
ef1fd07e
TT
237542011-03-11 Tom Tromey <tromey@redhat.com>
23755
23756 * buffer.c (syms_of_buffer): Remove obsolete comment.
23757
7ef4b50c
EZ
237582011-03-11 Eli Zaretskii <eliz@gnu.org>
23759
23760 * termhooks.h (encode_terminal_code): Declare prototype.
23761
23762 * msdos.c (encode_terminal_code): Don't declare prototype.
23763
23764 * term.c (encode_terminal_code): Now external again, used by
23765 w32console.c and msdos.c.
23766
44f230aa
SM
23767 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
23768 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 23769
4b1ec863 237702011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 23771
1714f52b 23772 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 23773
4b1ec863
PE
23774 * fringe.c (update_window_fringes): Mark locals as initialized
23775 (Bug#8227).
23776 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 23777
524c7aa6
PE
23778 * alloc.c (mark_fringe_data): Move decl from here ...
23779 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
23780 to check its interface.
23781 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
23782
a5c0af81 23783 * fontset.c (free_realized_fontset): Now static.
7519b8cd 23784 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 23785 (fontset_font): Mark local as initialized.
a9a06e0b 23786 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 23787
b4716021
PE
23788 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
23789
811e9bac 23790 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 23791 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
23792 (x_own_selection, Fx_disown_selection_internal): Rename locals
23793 to avoid shadowing.
23794 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 23795
7e3ab302
PE
23796 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
23797 so that the caller can use some name other than gcpro1.
23798 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
23799 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
23800 (Fx_backspace_delete_keys_p):
23801 Use them to avoid shadowing, and rename vars to avoid shadowing.
23802 (x_decode_color, x_set_name, x_window): Now static.
6b437900 23803 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 23804 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
23805 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
23806 Remove unused locals.
7e3ab302
PE
23807 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
23808 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
23809 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
23810 macros.
f78faa98 23811
e2b13473
PE
23812 * xterm.h (x_mouse_leave): New decl.
23813
77f23912
PE
23814 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
23815 Remove unused functions.
cdf4ba58
PE
23816 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
23817 (x_calc_absolute_position): Now static.
7411c686 23818 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 23819 Don't declare local "event" unless it's used.
ed7bf3a5
PE
23820 (x_iconify_frame, x_free_frame_resources): Don't declare locals
23821 unless they are used.
38d0b34a
PE
23822 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
23823 (x_fatal_error_signal): Remove; not used.
a6067996
PE
23824 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
23825 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
23826 (x_error_catcher, x_connection_closed, x_error_handler):
23827 (x_error_quitter, xembed_send_message, x_iconify_frame):
23828 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 23829 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 23830 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 23831
44f230aa
SM
23832 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
23833 Rename or move locals to avoid shadowing.
6b463e58 23834 (tty_defined_color, merge_face_heights): Now static.
5967d051 23835 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
23836 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
23837 does not deduce is never used uninitialized.
73719eba
PE
23838 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
23839 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 23840
426994c3 23841 * terminal.c (store_terminal_param): Now static.
5489860b 23842
032f1620 23843 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 23844 (set_frame_menubar): Remove unused local.
d4323972 23845 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
23846 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
23847 since they might point to immutable storage.
281585b0
PE
23848 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
23849 since it's unused otherwise.
032f1620 23850
367c19e5 23851 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 23852 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
23853 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
23854 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 23855 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
23856 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
23857 does not deduce are never used uninitialized.
70739cbe 23858
07b48fa9
PE
23859 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
23860
8868a238 23861 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
23862 * window.c (window_loop, size_window):
23863 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 23864
7e5cf297 23865 * window.c (display_buffer): Now static.
d6550a9f
PE
23866 (size_window): Mark variables that gcc -Wuninitialized
23867 does not deduce are never used uninitialized.
a586633d
PE
23868 * window.h (check_all_windows): New decl, to forestall
23869 gcc -Wmissing-prototypes diagnostic.
5b555da1 23870 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 23871
f6095868
PE
23872 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
23873 shadowing.
23874 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
23875 Include <limits.h>.
23876 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
23877 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
23878 (load_charset_map): Mark variables that gcc -Wuninitialized
23879 does not deduce are never used uninitialized.
53df7c11 23880 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 23881
f38b440c
PE
23882 * coding.c (coding_set_source, coding_set_destination):
23883 Use "else { /* comment */ }" rather than "else /* comment */;"
23884 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
23885 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
23886 a block, when the outer 'i' will do.
23887 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
23888 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
23889 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
23890 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
23891 (Fdecode_sjis_char, Fdefine_coding_system_internal):
23892 Rename locals to avoid shadowing.
23893 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
23894 * coding.c (emacs_mule_char, encode_invocation_designation):
23895 Now static, since they're not used elsewhere.
413bb2db 23896 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 23897 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
23898 (decode_coding_emacs_mule): Mark variables that gcc
23899 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
23900 (detect_coding_iso_2022): Initialize a local variable that might
23901 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 23902 this initialization is needed. (Bug#8211)
5f58e762
PE
23903 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
23904 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
23905 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
23906 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
23907 Remove unused macros.
f38b440c 23908
232b38b9 23909 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 23910 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 23911 * character.c (string_count_byte8): Likewise.
232b38b9 23912
fb90da1b
PE
23913 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
23914 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
23915
fb93dbc2
PE
23916 * chartab.c (copy_sub_char_table): Now static, since it's not used
23917 elsewhere.
5c156ace
PE
23918 (sub_char_table_ref_and_range, char_table_ref_and_range):
23919 Rename locals to avoid shadowing.
bbcd0949 23920 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 23921
7d3b3862 23922 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 23923 (BIDI_BOB): Remove unused macro.
7d3b3862 23924
6be7d3da
PE
23925 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
23926 deduce are never used uninitialized.
c2ed9c8b 23927 * term.c (encode_terminal_code): Likewise.
6be7d3da 23928
75f8807f 23929 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 23930
50938595
PE
23931 * tparam.h: New file.
23932 * term.c, tparam.h: Include it.
23933 * deps.mk (term.o, tparam.o): Depend on tparam.h.
23934 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
23935 Move these decls to tparam.h, and make them agree with what
23936 is actually in tparam.c. The previous trick of using incompatible
23937 decls in different modules does not conform to the C standard.
23938 All callers of tparam changed to use tparam's actual API.
23939 * tparam.c (tparam1, tparam, tgoto):
23940 Use const pointers where appropriate.
23941
fbceeba2
PE
23942 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
23943 * cm.h (struct cm): Likewise.
23944 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
23945 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
23946 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
23947 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
23948 (turn_on_face, init_tty): Likewise.
23949 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 23950
7f3f1250
PE
23951 * term.c (term_mouse_position): Rename local to avoid shadowing.
23952
e6ca6543
PE
23953 * alloc.c (mark_ttys): Move decl from here ...
23954 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
23955
c40f8d15
AS
239562011-03-11 Andreas Schwab <schwab@linux-m68k.org>
23957
23958 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
23959
cfe0661d
JB
239602011-03-09 Juanma Barranquero <lekktu@gmail.com>
23961
23962 * search.c (compile_pattern_1): Remove argument regp, unused since
23963 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
23964 (compile_pattern): Don't pass it.
23965
0afb4571
J
239662011-03-08 Jan Djärv <jan.h.d@swipnet.se>
23967
23968 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
23969 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
23970 for ! HAVE_GTK3.
23971 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
23972
23973 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
23974
23975 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
23976 gdk_window_get_screen, gdk_window_get_geometry,
23977 gdk_x11_window_lookup_for_display and GDK_KEY_g.
23978 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
23979 (xg_get_pixbuf_from_pixmap): New function.
23980 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
23981 to Pixmap, take frame as parameter, remove GdkColormap parameter.
23982 Call xg_get_pixbuf_from_pixmap instead of
23983 gdk_pixbuf_get_from_drawable.
23984 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
23985 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
23986 (xg_check_special_colors): Use GtkStyleContext and its functions
23987 for HAVE_GTK3.
23988 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
23989 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
23990 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
23991 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
23992 Call gtk_widget_get_preferred_size.
0afb4571
J
23993 (xg_frame_resized): gdk_window_get_geometry only takes 5
23994 parameters.
44f230aa
SM
23995 (xg_win_to_widget, xg_event_is_for_menubar):
23996 Call gdk_x11_window_lookup_for_display.
0afb4571
J
23997 (xg_set_widget_bg): New function.
23998 (delete_cb): New function.
895009e1 23999 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 24000 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
24001 (xg_set_background_color): Call xg_set_widget_bg.
24002 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
24003 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
24004 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
24005 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
24006 if ! HAVE_GTK3.
24007 (update_frame_tool_bar): Call gtk_widget_hide.
24008 (xg_initialize): Use GDK_KEY_g.
24009
24010 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
24011 if ! HAVE_GTK3
24012 (x_session_initialize): Call gdk_x11_set_sm_client_id.
24013
24014 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
24015 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
24016 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
24017
1c2cc4ef
JB
240182011-03-08 Juanma Barranquero <lekktu@gmail.com>
24019
24020 * w32xfns.c (select_palette): Check success of RealizePalette against
24021 GDI_ERROR, not zero.
24022
33383987 24023See ChangeLog.11 for earlier changes.
aac0c6e3
MR
24024
24025;; Local Variables:
24026;; coding: utf-8
aac0c6e3
MR
24027;; End:
24028
ab422c4d 24029 Copyright (C) 2011-2013 Free Software Foundation, Inc.
aac0c6e3
MR
24030
24031 This file is part of GNU Emacs.
24032
24033 GNU Emacs is free software: you can redistribute it and/or modify
24034 it under the terms of the GNU General Public License as published by
24035 the Free Software Foundation, either version 3 of the License, or
24036 (at your option) any later version.
24037
24038 GNU Emacs is distributed in the hope that it will be useful,
24039 but WITHOUT ANY WARRANTY; without even the implied warranty of
24040 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24041 GNU General Public License for more details.
24042
24043 You should have received a copy of the GNU General Public License
24044 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.