* src/xfns.c (x_window): Use xstrdup (Bug#11375).
[bpt/emacs.git] / src / ChangeLog
CommitLineData
3f83ace8
JM
12012-05-02 Jim Meyering <jim@meyering.net>
2
3 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
4
c7b8541e
JM
5 * xfns.c (x_window): Use xstrdup (Bug#11375).
6
90207a15 72012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
8
9 * xdisp.c (pos_visible_p): If already at a newline from the
10 display string before the 'while' loop, don't walk back the glyphs
11 from it3.glyph_row. Solves assertion violation when the display
12 string begins with a newline (egg.el). (Bug#11367)
13
b593d6a9
AH
142012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
15
16 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
17 Move to simple.el.
18
4737362e
GM
192012-05-01 Glenn Morris <rgm@gnu.org>
20
99cf43f9
GM
21 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
22 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
23 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
24 All were removed before 23.1.
25
9311dcff
GM
26 * dispnew.c: Remove HAVE_LIBNCURSES test;
27 it is always true on relevant platforms.
28
4d5c6349
GM
29 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
30 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
31
4737362e
GM
32 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
33
74dd3a6b
AS
342012-04-30 Andreas Schwab <schwab@linux-m68k.org>
35
36 * .gdbinit (xpr): Remove checks for no longer existing misc types.
37 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
38 Remove.
39
13c379ee
PE
402012-04-28 Paul Eggert <eggert@cs.ucla.edu>
41
42 Do not avoid creating empty evaporating overlays (Bug#9642).
43 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
44 That is, do not delete an evaporating overlay if it becomes
45 empty after its bounds are adjusted to fit within its buffer.
46 This fix caused other problems, and I'm reverting it until we get
47 to the bottom of them.
48
a8e7d6d7 492012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
50
51 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
52
a8e7d6d7 532012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
54
55 * xdisp.c (pos_visible_p): If the window start position is beyond
56 ZV, start the display from buffer beginning. Prevents assertion
57 violation in init_iterator when the minibuffer window is scrolled
58 via the scroll bar.
59
60 * window.c (window_scroll_pixel_based): Likewise.
61
a8e7d6d7 622012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
63
64 * keymap.c (where_is_internal): Doc fix (Bug#10872).
65
a8e7d6d7 662012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
67
68 * fileio.c (Fcopy_file, Fset_file_selinux_context):
69 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
70
a8e7d6d7 712012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 72
b593d6a9
AH
73 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
74 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 75
1c6900d9
EZ
762012-04-26 Eli Zaretskii <eliz@gnu.org>
77
4c3fa1d9
EZ
78 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
79 display element, check also the underlying string or buffer
80 character. (Bug#11341)
81
1c6900d9
EZ
82 * w32menu.c: Include w32heap.h.
83 (add_menu_item): If the call to AppendMenuW (via
84 unicode_append_menu) fails, disable Unicode menus only if we are
85 running on Windows 9X/Me.
86
42bf8205
AS
872012-04-24 Andreas Schwab <schwab@linux-m68k.org>
88
89 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
90 (xgetint): Add missing shift for LSB tags.
91
b1bac16e
MR
922012-04-24 Martin Rudalics <rudalics@gmx.at>
93
94 * keyboard.c (read_char): Don't wipe echo area for select window
95 events: These might get delayed via `mouse-autoselect-window'
96 (Bug#11304).
97
d69621cc
JB
982012-04-24 Juanma Barranquero <lekktu@gmail.com>
99
100 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
101 manipulation of :loaded-from data.
102
02fd101b
JB
1032012-04-23 Juanma Barranquero <lekktu@gmail.com>
104
105 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
106 now a cons (bug#11311).
107
888bec30
PE
1082012-04-23 Paul Eggert <eggert@cs.ucla.edu>
109
89a438bd
PE
110 Do not create empty overlays with the evaporate property (Bug#9642).
111 * buffer.c (Fmove_overlay): Delete an evaporating overlay
112 if it becomes empty after its bounds are adjusted to fit within
113 its buffer. Without this fix, in a nonempty buffer (let ((o
114 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
115 yields an empty overlay that has the evaporate property, which is
116 not supposed to happen.
117
1068fe4d
PE
118 Fix minor GTK3 problems found by static checking.
119 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
120 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
121 (struct _EmacsFixedClass, emacs_fixed_get_type):
122 Move decls here from emacsgtkfixed.h, since they needn't be public.
123 (emacs_fixed_get_type): Now static.
124 (emacs_fixed_class_init): Omit unused local.
125 (emacs_fixed_child_type): Remove; unused.
126 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
127 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
128 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
129 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
130 (EMACS_FIXED_GET_CLASS): Remove; unused.
131 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
132
888bec30
PE
133 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
134 Problem reported by Juanma Barranquero for Windows -Wunused-function.
135
de85e130
PE
1362012-04-22 Paul Eggert <eggert@cs.ucla.edu>
137
d0baac98
PE
138 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
139 * gmalloc.c: (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
140 (__malloc_size_t, __malloc_ptrdiff_t):
141 Remove. All uses removed, replaced by the definiens if needed,
142 since we can assume C89 or better now.
143 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
144 (protect_malloc_state, align, get_contiguous_space)
145 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
146 (malloc_atfork_handler_child, malloc_enable_thread)
147 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
148 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
149 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
150 (special_realloc, _realloc_internal_nolock, _realloc_internal)
151 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
152 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
153 Define using prototypes, not old style.
154 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
155 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
156 (align): Don't assume that signed integer overflow wraps around.
157 Omit unused local var.
158 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
159 (_free_internal_nolock, memalign, mallochook, reallochook):
160 Omit no-longer-needed casts.
161 (valloc): Use getpagesize, not __getpagesize.
162 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
163 (struct hdr): The 'magic' member is now size_t, not unsigned long.
164
de85e130
PE
165 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
166
dcbf5805
MA
1672012-04-22 Michael Albinus <michael.albinus@gmx.de>
168
169 Move functions from C to Lisp. Make non-blocking method calls
170 the default. Implement further D-Bus standard interfaces.
171
172 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
173 (QCdbus_request_name_allow_replacement)
174 (QCdbus_request_name_replace_existing)
175 (QCdbus_request_name_do_not_queue)
176 (QCdbus_request_name_reply_primary_owner)
177 (QCdbus_request_name_reply_in_queue)
178 (QCdbus_request_name_reply_exists)
179 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
180 (QCdbus_registered_serial, QCdbus_registered_method)
181 (QCdbus_registered_signal): New Lisp objects.
182 (XD_DEBUG_MESSAGE): Use sizeof.
183 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
184 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
185 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
186 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
187 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
188 (xd_signature, xd_append_arg): Allow float for integer types.
189 (xd_get_connection_references): New function.
b593d6a9
AH
190 (xd_get_connection_address): Rename from xd_initialize.
191 Return cached address.
dcbf5805
MA
192 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
193 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
194 level.
195 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
196 Return number of recounts.
197 (Fdbus_get_unique_name): Make stronger parameter check.
198 (Fdbus_message_internal): New defun.
199 (Fdbus_call_method, Fdbus_call_method_asynchronously)
200 (Fdbus_method_return_internal, Fdbus_method_error_internal)
201 (Fdbus_send_signal, Fdbus_register_service)
202 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
203 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
204 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
205 (Vdbus_compiled_version, Vdbus_runtime_version)
206 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
207 (Vdbus_message_type_method_return, Vdbus_message_type_error)
208 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
209 (Vdbus_registered_buses, Vdbus_registered_objects_table):
210 Adapt docstring.
dcbf5805 211
52828e02
PE
2122012-04-22 Paul Eggert <eggert@cs.ucla.edu>
213
da05bc4c
PE
214 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
215 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
216 Do not assume ptrdiff_t is the same width as 'int'.
217
52828e02
PE
218 * alloc.c: Handle unusual debugging option combinations.
219 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
220 since the two debugging options are incompatible.
221 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
222 is defined.
223 (mem_init, mem_insert, mem_insert_fixup):
224 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
225 (NEED_MEM_INSERT): Remove; no longer needed.
226
f01769f9
LL
2272012-04-22 Leo Liu <sdl.web@gmail.com>
228
229 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
230
5790543d
PE
2312012-04-22 Paul Eggert <eggert@cs.ucla.edu>
232
233 * sysdep.c [__FreeBSD__]: Minor cleanups.
234 (list_system_processes, system_process_attributes) [__FreeBSD__]:
235 Use Emacs indenting style more consistently. Avoid some casts.
236 Use 'double' consistently rather than mixing 'float' and 'double'.
237
b91b7e4d
EW
2382012-04-21 Eduard Wiebe <usenet@pusto.de>
239
b593d6a9
AH
240 * sysdep.c (list_system_processes, system_process_attributes):
241 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 242
6114eb15
AS
2432012-04-21 Andreas Schwab <schwab@linux-m68k.org>
244
245 * lisp.mk (lisp): Update.
246
2f38dff7
PE
2472012-04-20 Paul Eggert <eggert@cs.ucla.edu>
248
249 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
250 It is never used otherwise.
251
4ae29f89
SM
2522012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
253
254 * print.c (print_preprocess): Only check print_depth if print-circle
255 is nil.
256 (print_object): Check for cycles even when print-circle is nil and
257 print-gensym is t, but only check print_depth if print-circle is nil.
258
f30d612a
CY
2592012-04-20 Chong Yidong <cyd@gnu.org>
260
261 * process.c (wait_reading_process_output): If EIO occurs on a pty,
262 set the status to "failed" and ensure that sentinel is run.
263
c07a4c0b 2642012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
265
266 * process.c (Fset_process_inherit_coding_system_flag)
267 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 268 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 269
c07a4c0b 2702012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
271
272 * xdisp.c (string_buffer_position_lim): Limit starting position to
273 BEGV.
274 (set_cursor_from_row): If called for a mode-line or header-line
275 row, return zero immediately.
276 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
277 farther than the first row after the header line, if any.
278 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
279 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
280
c07a4c0b 2812012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 282
4ae29f89
SM
283 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
284 (bug#11238).
ad3a2b41 285
c07a4c0b 2862012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 2872012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
288
289 configure: new option --enable-gcc-warnings (Bug#11207)
290 * Makefile.in (C_WARNINGS_SWITCH): Remove.
291 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
292 (ALL_CFLAGS): Use new macros rather than old.
293 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
294 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
295 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
296 -Wunused-result, -Wunused-variable. This should go away once
297 the Emacs and Gnulib regex code is merged.
298 (xmalloc, xrealloc): Now static.
299
aba027e8
PE
3002012-04-17 Paul Eggert <eggert@cs.ucla.edu>
301
302 * dired.c (Fsystem_groups): Remove unused local.
303
e5a36063
GM
3042012-04-17 Glenn Morris <rgm@gnu.org>
305
306 * dired.c (Fsystem_users): Doc fix.
307
316411f0
DA
3082012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
309
310 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
311 (syms_of_dired): Add them.
312
9426aba4
PE
3132012-04-16 Paul Eggert <eggert@cs.ucla.edu>
314
b62a57be
PE
315 Fix minor alloc.c problems found by static checking.
316 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
317 New extern decls, to avoid calling undeclared functions.
318 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
319 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
320 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
321 (NEED_MEM_INSERT): New macro.
322 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 323 Remove one incorrect comment and fix another.
b62a57be 324
3539f31f
PE
325 Fix minor ralloc.c problems found by static checking.
326 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
327 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
328 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
329 (r_alloc_sbrk): Now static.
330
a041960a
PE
331 Improve ralloc.c interface checking.
332 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
333 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
334 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
335 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
336 [REL_ALLOC]: ... to here, to check interface.
337 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
338 Remove decls. This fixes an "It stinks!".
339
9426aba4
PE
340 * alloc.c (which_symbols): Fix alignment issue / type clash.
341
d55c12ed
AS
3422012-04-15 Andreas Schwab <schwab@linux-m68k.org>
343
344 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
345 (struct Lisp_Misc_Any): Likewise.
346 (struct Lisp_Free): Likewise.
347 * alloc.c (union aligned_Lisp_Symbol): Define.
348 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
349 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
350 (union aligned_Lisp_Misc): Define.
351 (MARKER_BLOCK_SIZE, struct marker_block): Use union
352 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 353 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 354
b948ce8b
PE
3552012-04-14 Paul Eggert <eggert@cs.ucla.edu>
356
357 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
358 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
359 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
360 * s/netbsd.h, s/sol2-6.h:
361 Remove definition of GC_MARK_STACK, since the default now works.
362 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
363 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
364 no longer the default.
365 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
366
35dc09a1 3672012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 368
35dc09a1
GM
369 * lread.c (lisp_file_lexically_bound_p):
370 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 371
35dc09a1
GM
3722012-04-14 Eli Zaretskii <eliz@gnu.org>
373
374 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
375 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
376
3772012-04-14 Jan Djärv <jan.h.d@swipnet.se>
378
379 * nsterm.m (constrainFrameRect): Always constrain when there is only
380 one screen (Bug#10962).
381
bcd86815
KB
3822012-04-13 Ken Brown <kbrown@cornell.edu>
383
384 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
385
c25df26e
RT
3862012-04-13 Reuben Thomas <rrt@sc3d.org>
387
388 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
389
0fc59f1e
DC
3902012-04-11 Daniel Colascione <dancol@dancol.org>
391
392 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
393 against is gone. It's better to use vfork now so that when Cygwin
394 gains a new, working vfork, we use it automatically (bug#10398).
395
de8c03dc
SM
3962012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
397
398 * window.c (save_window_save): Obey window-point-insertion-type.
399
2f097256
GM
4002012-04-11 Glenn Morris <rgm@gnu.org>
401
402 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
403
453b951e
SM
4042012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
405
406 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
407
75f1671a 4082012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
409
410 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
411 (force_quit_count): New var.
412 (handle_interrupt): Use it.
413
2a8ce227
JB
4142012-04-10 Juanma Barranquero <lekktu@gmail.com>
415
416 * w32.c (w32_delayed_load): Record the full path of the library
417 being loaded (bug#10424).
418
935396c0
GM
4192012-04-09 Glenn Morris <rgm@gnu.org>
420
05920a43
GM
421 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
422 not just in the obarray, before snarfing them. (Bug#11036)
423
935396c0
GM
424 * Makefile.in ($(leimdir)/leim-list.el):
425 Pass EMACS rather than BUILT_EMACS.
426
a18ecafa
TZ
4272012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
428
429 * process.c (make_process):
430 * process.h: Add integer `gnutls_handshakes_tried' member to
431 process struct.
432
6bbef4e5
JC
433 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
434 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
435
436 * gnutls.c (gnutls_log_function2i): Convenience log function.
437 (emacs_gnutls_read): Use new log functions,
438 `gnutls_handshakes_tried' process member, and
439 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
440 attempts per process (connection).
441
b4d3bc10
CY
4422012-04-09 Chong Yidong <cyd@gnu.org>
443
444 * eval.c (Fuser_variable_p, user_variable_p_eh)
445 (lisp_indirect_variable): Functions deleted.
446 (Fdefvar): Caller changed.
447
448 * callint.c (Finteractive, Fcall_interactively):
449 * minibuf.c (Fread_variable): Callers changed.
450
70f4d973
EZ
4512012-04-09 Eli Zaretskii <eliz@gnu.org>
452
453 * xdisp.c (set_cursor_from_row): If the display string appears in
454 the buffer at position that is closer to point than the position
455 after the display string, display the cursor on the first glyph of
456 the display string. Fixes cursor display when a 'display' text
457 property immediately follows invisible text. (Bug#11094)
458
cb3c2e3e
PE
4592012-04-09 Paul Eggert <eggert@cs.ucla.edu>
460
461 composite.c: use 'double' consistently
462 * composite.c (get_composition_id): Use 'double' consistently
463 instead of converting 'float' to 'double' and vice versa; this is
464 easier to understand and avoids a GCC warning.
465
fd06db5d
GM
4662012-04-09 Glenn Morris <rgm@gnu.org>
467
50fe702a
GM
468 * Makefile.in: Generate leim-list with bootstrap-emacs, in
469 preparation for dumping it with emacs. (Bug#4789)
470 (leimdir): New variable.
471 ($(leimdir)/leim-list.el): New rule.
472 (emacs$(EXEEXT)): Depend on leim-list.el.
473
fd06db5d
GM
474 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
475 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
476 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
477
55c131ee
AS
4782012-04-08 Andreas Schwab <schwab@linux-m68k.org>
479
480 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
481 proper alignment.
482
9209588f
JB
4832012-04-07 Juanma Barranquero <lekktu@gmail.com>
484
485 * xml.c (init_libxml2_functions) [WINDOWSNT]:
486 Remove unused local variable.
487
e3fb2efb
PE
4882012-04-07 Paul Eggert <eggert@cs.ucla.edu>
489
490 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
491 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
492 (mark_memory): Mark Lisp_Objects only if pointers might hide in
493 objects, as mark_maybe_pointer will catch them otherwise.
494 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
495 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
496
b5385551
PE
4972012-04-07 Paul Eggert <eggert@cs.ucla.edu>
498
499 Fix typo that broke non-Windows builds.
500 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
501
9078ead6
EZ
5022012-04-07 Eli Zaretskii <eliz@gnu.org>
503
504 Support building on MS-Windows with libxml2.
505
506 * makefile.w32-in (OBJ2): Add xml.$(O).
507 (GLOBAL_SOURCES): Add xml.c.
508 ($(BLD)/xml.$(O)): New dependency list.
509
510 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
511 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
512 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
513 [!WINDOWSNT]: New macros.
514 (init_libxml2_functions, libxml2_loaded_p): New functions.
515 (parse_region): Call fn_xmlCheckVersion instead of using the macro
516 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
517 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
518 Calls xmlCleanupParser only if libxml2 was loaded (or statically
519 linked in).
6bbef4e5
JC
520 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
521 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
522 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
523
524 * emacs.c: Don't include libxml/parser.h.
525 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
526 xmlCleanupParser directly.
527
528 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
529
3811fdf3
EZ
5302012-04-07 Eli Zaretskii <eliz@gnu.org>
531
532 * indent.c (Fvertical_motion): If there is a display string at
533 point, use it.vpos to compute how many lines to backtrack after
534 move_it_to point. (Bug#11133)
535
2f8e16b2
EZ
5362012-04-06 Eli Zaretskii <eliz@gnu.org>
537
538 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
539 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
540 about subtle differences between FETCH_CHAR* and STRING_CHAR*
541 macros related to unification of CJK characters. For the details,
542 see the discussion following the message here:
543 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
544
3d439cd1
CY
5452012-04-04 Chong Yidong <cyd@gnu.org>
546
547 * keyboard.c (Vdelayed_warnings_list): Doc fix.
548
8bc53d00
EZ
5492012-04-01 Eli Zaretskii <eliz@gnu.org>
550
551 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
552 instead of alloca. (Bug#11138)
553
3b0512a3
AS
5542012-04-01 Andreas Schwab <schwab@linux-m68k.org>
555
556 * w32menu.c (is_simple_dialog): Properly check lisp types.
557 (Bug#11141)
558
8427ddd2
EZ
5592012-03-31 Eli Zaretskii <eliz@gnu.org>
560
979022ef
EZ
561 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
562 position we get to after a call to move_it_to fails the
563 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
564 only if we wind up in a string from display property. (Bug#11063)
565
a6b1c7cc
EZ
566 * window.c (Fdelete_other_windows_internal): Invalidate the row
567 and column information about mouse highlight, so that redisplay
568 restores it after reallocating the glyph matrices. (Bug#7464)
569
8427ddd2
EZ
570 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
571 string comes from a `display' text property, use the buffer
572 position of that property as if we actually saw that position in
573 the row's glyphs.
697ba24b
EZ
574 (move_it_by_lines): Remove the assertion that
575 "it->current_x == 0 && it->hpos == 0" which can be legitimately
576 violated when there's a before-string at the beginning of a line.
577 (Bug#11063)
8427ddd2 578
65a0a738
EZ
5792012-03-30 Eli Zaretskii <eliz@gnu.org>
580
581 * xdisp.c (append_space_for_newline): If the default face was
582 remapped, use the remapped face for the appended newline.
583 (extend_face_to_end_of_line): Use the remapped default face for
584 extending the face to the end of the line.
585 (display_line): Call extend_face_to_end_of_line when the default
586 face was remapped. (Bug#11068)
587
581355cc
EZ
5882012-03-29 Eli Zaretskii <eliz@gnu.org>
589
590 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
591
e8fc049f
SM
5922012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
593
594 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
595
4fb9a543
GM
5962012-03-27 Glenn Morris <rgm@gnu.org>
597
598 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
599 Doc fixes.
600
679910f1
KH
6012012-03-26 Kenichi Handa <handa@m17n.org>
602
603 * dispextern.h (struct glyph): Fix previous change. Change the
604 bit length of glyphless.ch to 25 (Bug#11082).
605
90d49b7f
CY
6062012-03-26 Chong Yidong <cyd@gnu.org>
607
608 * keyboard.c (Vselection_inhibit_update_commands): New variable.
609 (command_loop_1): Use it; inhibit selection update for
610 handle-select-window too (Bug#8996).
611
f514f6f0
FP
6122012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
613
e8fc049f 614 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 615
bf43fa51
KH
6162012-03-25 Kenichi Handa <handa@m17n.org>
617
618 * dispextern.h (struct glyph): Change the bit length of
619 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
620
8a0c01dd
EZ
6212012-03-24 Eli Zaretskii <eliz@gnu.org>
622
623 * s/ms-w32.h (tzname): Include time.h before redirecting to
624 _tzname. Fixes the MSVC build. (Bug#9960)
625
7d1c3a76
AS
6262012-03-24 Andreas Schwab <schwab@linux-m68k.org>
627
8ed79523
AS
628 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
629 characters.
630
7d1c3a76
AS
631 * xterm.c (XTread_socket): Only modify handling_signal if
632 !SYNC_INPUT. (Bug#11080)
633
e99a9b8b
EZ
6342012-03-23 Eli Zaretskii <eliz@gnu.org>
635
636 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
637 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
638 when fetching a multibyte character consumes more bytes than
639 CHAR_BYTES returns, due to unification of CJK characters in
640 string_char. (Bug#11073)
641
5063c0e1
TN
6422012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
643
644 * process.c (wait_reading_process_output): Handle pty disconnect
645 by refraining from sending oneself a SIGCHLD (bug#10933).
646
9f851fbd
CY
6472012-03-22 Chong Yidong <cyd@gnu.org>
648
649 * dispextern.h (struct it): New member string_from_prefix_prop_p.
650
5063c0e1 651 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
652 Mark string as coming from a prefix property.
653 (handle_face_prop): Use default face for prefix strings (Bug#4281).
654 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
655
fb5b8aca
CY
6562012-03-21 Chong Yidong <cyd@gnu.org>
657
658 * xfaces.c (Vface_remapping_alist): Doc fix.
659
62356a1b
EZ
6602012-03-20 Eli Zaretskii <eliz@gnu.org>
661
662 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
663 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
664 Doc fixes.
62356a1b 665
025de85b
CY
6662012-03-20 Chong Yidong <cyd@gnu.org>
667
668 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
669 to reflect default non-nil value of redisplay-dont-pause.
670
4827f94e
KH
6712012-03-19 Kenichi Handa <handa@m17n.org>
672
673 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
674 it fit in a valid range (Bug#11003).
675
e50a24a2
EZ
6762012-03-18 Eli Zaretskii <eliz@gnu.org>
677
678 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
679 that is not from display property, accept the row as a "cursor
680 row" if one of the string's character has a non-nil `cursor'
681 property. Fixes cursor positioning when there are newlines in
682 overlay strings, e.g. in icomplete.el. (Bug#11035)
683
9af5ed87
PE
6842012-03-12 Paul Eggert <eggert@cs.ucla.edu>
685
686 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
687
d1f55f16
CY
6882012-03-12 Chong Yidong <cyd@gnu.org>
689
690 * eval.c (inhibit_lisp_code): Rename from
691 inhibit_window_configuration_change_hook; move from window.c.
692
693 * xfns.c (unwind_create_frame_1, Fx_create_frame):
694 * window.c (run_window_configuration_change_hook)
695 (syms_of_window): Callers changed.
696
66c5eebd
CY
6972012-03-11 Chong Yidong <cyd@gnu.org>
698
413df973
CY
699 * keymap.c (Fkey_description): Doc fix (Bug#9700).
700
66c5eebd
CY
701 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
702
1de11f56
CY
7032012-03-10 Chong Yidong <cyd@gnu.org>
704
705 * frame.c (other_visible_frames): Don't assume the selected frame
706 is visible (Bug#10955).
707
cae07000
SM
7082012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
709
710 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
711
89c94350
JD
7122012-03-08 Jan Djärv <jan.h.d@swipnet.se>
713
714 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
715 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
716 zero (Bug#10954).
717
999dd333
GM
7182012-03-03 Glenn Morris <rgm@gnu.org>
719
01a6dcc8 720 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 721
de0100f2
EZ
7222012-03-02 Eli Zaretskii <eliz@gnu.org>
723
724 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
725 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
726 (redisplay_window, next_element_from_string): Fix typos in
727 comments.
3e441275
EZ
728 (redisplay_window): Pass to move_it_vertically the margin in
729 pixels, not in screen lines.
de0100f2 730
96a72ee9
GM
7312012-03-02 Glenn Morris <rgm@gnu.org>
732
733 * buffer.c (buffer-list-update-hook): Doc fix.
734
312508d7
EZ
7352012-02-29 Eli Zaretskii <eliz@gnu.org>
736
737 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
738 push_it before setting up the iterator for the first overlay
739 string, even if we have an empty string loaded.
740 (next_overlay_string): If there's an empty string on the iterator
741 stack, pop the stack. (Bug#10903)
742
27f3c637
PE
7432012-02-25 Paul Eggert <eggert@cs.ucla.edu>
744
745 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
746 Suggested by Stefan Monnier in
747 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
748 * alloc.c (widen_to_Lisp_Object): New static function.
749 (mark_memory): Also mark Lisp_Objects by fetching pointer words
750 and widening them to Lisp_Objects. This would work even if
751 USE_LSB_TAG is defined and wide integers are used, which might
752 happen in a future version of Emacs.
753
3c9dfce6
CY
7542012-02-25 Chong Yidong <cyd@gnu.org>
755
fa74b241
CY
756 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
757 Doc fix.
758
3c9dfce6
CY
759 * xselect.c (Fx_selection_exists_p): Doc fix.
760 (x_clipboard_manager_save_all): Print an informative message
761 before saving to clipboard manager.
762
9486df08
CY
7632012-02-24 Chong Yidong <cyd@gnu.org>
764
765 * keyboard.c (process_special_events): Handle all X selection
766 requests in kbd_buffer, not just the next one (Bug#8869).
767
f01d3321
CY
7682012-02-23 Chong Yidong <cyd@gnu.org>
769
770 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
771 call when setting menu-bar-lines and tool-bar-lines parameters.
772 (unwind_create_frame_1): New helper function.
773
774 * window.c (inhibit_window_configuration_change_hook): New var.
775 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 776 (syms_of_window): Initialize it.
f01d3321 777
86b847b6
CY
7782012-02-22 Chong Yidong <cyd@gnu.org>
779
780 * xterm.c (x_draw_image_relief): Add missing type check for
781 Vtool_bar_button_margin (Bug#10743).
782
a59225b1
CY
7832012-02-21 Chong Yidong <cyd@gnu.org>
784
785 * fileio.c (Vfile_name_handler_alist): Doc fix.
786
787 * buffer.c (Fget_file_buffer): Protect against invalid file
788 handler return value.
789
310f5bd4
PE
7902012-02-20 Paul Eggert <eggert@cs.ucla.edu>
791
cb3a28cc
PE
792 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
793 when computing $valmask.
794
310f5bd4
PE
795 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
796 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
797 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
798 It's useless in that case, and it can cause problems on hosts
799 that allocate halves of EMACS_INT values separately.
800 Reported by Dan Horák. Diagnosed by Andreas Schwab in
801 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
802 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
803 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
804 it avoids undefined behavior on hosts where shifting right by more
805 than the word width has undefined behavior.
806
2375c96a
CY
8072012-02-19 Chong Yidong <cyd@gnu.org>
808
809 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
810 (Funhandled_file_name_directory, Ffile_name_as_directory)
811 (Fdirectory_file_name, Fexpand_file_name)
812 (Fsubstitute_in_file_name): Protect against invalid file handler
813 return values (Bug#10845).
814
3eb49e71
EZ
8152012-02-18 Eli Zaretskii <eliz@gnu.org>
816
817 * .gdbinit (pitx): Fix incorrect references to fields of the
818 iterator stack.
819
7b926f3f
CY
8202012-02-17 Chong Yidong <cyd@gnu.org>
821
822 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
823
11273115
PE
8242012-02-15 Paul Eggert <eggert@cs.ucla.edu>
825
826 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
827 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
828
c3a70e2b
CY
8292012-02-15 Chong Yidong <cyd@gnu.org>
830
831 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
832 marked as special. Also, starting docstrings with * is obsolete.
833
0ca43699
AS
8342012-02-13 Andreas Schwab <schwab@linux-m68k.org>
835
836 * gnutls.c (emacs_gnutls_write): Fix last change.
837
2e8f3c56
LI
8382012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
839
840 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
841 send_process.
842
af70074f
SM
8432012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
844
845 * keymap.c (Fsingle_key_description): Handle char ranges.
846
95986d52
CY
8472012-02-12 Chong Yidong <cyd@gnu.org>
848
afd83bd1
CY
849 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
850 as that creates a dangerous corner case.
851
95986d52
CY
852 * window.c (Fdelete_window_internal): Invalidate the mouse
853 highlight (Bug#9904).
854
bd7da63e
GM
8552012-02-12 Glenn Morris <rgm@gnu.org>
856
857 * xselect.c (Fx_own_selection_internal)
858 (Fx_get_selection_internal, Fx_disown_selection_internal)
859 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
860 * nsselect.m (Fx_own_selection_internal)
861 (Fx_disown_selection_internal, Fx_selection_exists_p)
862 (Fx_selection_owner_p, Fx_get_selection_internal):
863 Sync docs and argument specs with the xselect.c versions.
864
77abcbc2
LI
8652012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
866
867 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
868
90b671e2
EZ
8692012-02-11 Eli Zaretskii <eliz@gnu.org>
870
1c0ca0b7
EZ
871 * w32select.c (Fx_selection_exists_p): Sync doc string and
872 argument list with xselect.c. (Bug#10783)
873
874 * w16select.c (Fx_selection_exists_p): Sync doc string and
875 argument list with xselect.c. (Bug#10783)
90b671e2 876
49241268
GM
8772012-02-10 Glenn Morris <rgm@gnu.org>
878
879 * fns.c (Fsecure_hash): Doc fix.
880
f998bbe7 8812012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
882
883 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
884
0992bd9c
CY
8852012-02-07 Chong Yidong <cyd@gnu.org>
886
887 * buffer.c (Fbuffer_local_variables)
888 (buffer_lisp_local_variables): Handle unbound vars correctly;
889 don't let Qunbound leak into Lisp.
890
af008560
GM
8912012-02-07 Glenn Morris <rgm@gnu.org>
892
dd605cc4
GM
893 * image.c (Fimagemagick_types): Doc fix.
894
af008560
GM
895 * image.c (imagemagick-render-type): Change it from a lisp object
896 to an integer. Move the doc here from the lisp manual.
897 Treat all values not equal to 0 the same.
898
1449fa1d
CY
8992012-02-06 Chong Yidong <cyd@gnu.org>
900
901 * doc.c (store_function_docstring): Avoid applying docstring of
902 alias to base function (Bug#2603).
903
3723ec07
AS
9042012-02-04 Andreas Schwab <schwab@linux-m68k.org>
905
906 * .gdbinit (pp1, pv1): Remove redundant defines.
907 (pr): Use pp.
908
79c1cc1e
CY
9092012-02-04 Chong Yidong <cyd@gnu.org>
910
911 * nsterm.m: Declare a global (Bug#10694).
912
d7f29f8e
EZ
9132012-02-04 Eli Zaretskii <eliz@gnu.org>
914
cae07000
SM
915 * w32.c (get_emacs_configuration_options):
916 Include --enable-checking, if specified, in the return value.
d7f29f8e 917
3b95a6f9
MR
9182012-02-04 Martin Rudalics <rudalics@gmx.at>
919
920 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
921 after rounding frame sizes. (Bug#9723)
922
d6fa96a6
EZ
9232012-02-04 Eli Zaretskii <eliz@gnu.org>
924
925 * keyboard.c (adjust_point_for_property): Don't position point
926 before BEGV. (Bug#10696)
927
df0b2940
PE
9282012-02-03 Paul Eggert <eggert@cs.ucla.edu>
929
930 Handle overflow when computing char display width (Bug#9496).
931 * character.c (char_width): Return EMACS_INT, not int.
932 (char_width, c_string_width): Check for overflow when
933 computing the width; this is possible now that individual
934 characters can have unbounded width. Problem introduced
935 by merge from Emacs 23 on 2012-01-19.
936
6bee44d6
MA
9372012-02-02 Michael Albinus <michael.albinus@gmx.de>
938
939 * dbusbind.c (Fdbus_register_method): Mention the return value
940 :ignore in the docstring.
941
44f92739
GM
9422012-02-02 Glenn Morris <rgm@gnu.org>
943
1b9f60cc
GM
944 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
945
44f92739
GM
946 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
947 Unconditionally set to t. (Bug#10673)
948 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
949 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
950 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
951
c5d3843c
KH
9522012-02-02 Kenichi Handa <handa@m17n.org>
953
954 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
955 0, do not call append_composite_glyph.
956
159462d4 9572012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
958
959 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
960 NULL (Bug#6988).
961 (x_produce_glyphs): If the component of a composition is a null
962 string, set it->pixel_width to 1 to avoid zero-width glyph.
963
78cef877
EZ
9642012-02-01 Eli Zaretskii <eliz@gnu.org>
965
966 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
967 first 2 arguments are identical. This makes inserting large
968 output from a subprocess an order of magnitude faster on
969 MS-Windows, where all sbrk'ed memory is always contiguous.
970
97897668
GM
9712012-01-31 Glenn Morris <rgm@gnu.org>
972
973 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 974 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
975 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
976
31fd3586
GM
9772012-01-29 Glenn Morris <rgm@gnu.org>
978
979 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
980
0e24a8b2
CY
9812012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
982
983 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
984
cc0adcb0
CY
9852012-01-28 Chong Yidong <cyd@gnu.org>
986
987 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
988
acc28cb9
CY
9892012-01-26 Chong Yidong <cyd@gnu.org>
990
9c69cfb7
CY
991 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
992
acc28cb9
CY
993 * search.c (Fsearch_forward, Fsearch_backward): Document negative
994 repeat counts (Bug#10507).
995
48da7392
GM
9962012-01-26 Glenn Morris <rgm@gnu.org>
997
998 * lread.c (syms_of_lread): Doc fix.
999
14af5f7f
CY
10002012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
1001
1002 * coding.c (encode_designation_at_bol): Change return value to
1003 EMACS_INT.
1004
0b21c100
CY
10052012-01-25 Chong Yidong <cyd@gnu.org>
1006
1007 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
1008
3c2907f7
CY
10092012-01-21 Chong Yidong <cyd@gnu.org>
1010
1011 * floatfns.c (Fcopysign): Make the second argument non-optional,
1012 since nil is not allowed anyway.
1013
959ad23f
AS
10142012-01-21 Andreas Schwab <schwab@linux-m68k.org>
1015
1016 * process.c (read_process_output): Use p instead of XPROCESS (proc).
1017 (send_process): Likewise.
1018
34a02f46
MR
10192012-01-19 Martin Rudalics <rudalics@gmx.at>
1020
1021 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
1022 (Vwindow_persistent_parameters): Do not use Qstate.
1023 Rewrite doc-strings.
34a02f46 1024
1259009a 10252012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
1026
1027 * character.c (char_width): New function.
70d4fdf6
GM
1028 (Fchar_width, c_string_width, lisp_string_width):
1029 Use char_width (Bug#9496).
25ed9e61 1030
6a6ee00d
MR
10312012-01-16 Martin Rudalics <rudalics@gmx.at>
1032
1033 * window.c (Vwindow_persistent_parameters): New variable.
1034 (Fset_window_configuration, save_window_save): Handle persistent
1035 window parameters.
1036
c85efaf7
EZ
10372012-01-14 Eli Zaretskii <eliz@gnu.org>
1038
1039 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
1040 thrashing the stack of the thread. (Bug#9087)
1041
5944709e
PE
10422012-01-12 Paul Eggert <eggert@cs.ucla.edu>
1043
1044 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
1045
e71f5d99
EZ
10462012-01-11 Eli Zaretskii <eliz@gnu.org>
1047
1048 * xdisp.c (rows_from_pos_range): Handle the case where the
1049 highlight ends on a newline. (Bug#10464)
1050 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
1051 he end column for display of highlight that ends on a newline
1052 before a R2L line.
1053
ce316182
GM
10542012-01-11 Glenn Morris <rgm@gnu.org>
1055
1056 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
1057 from load-path also when installation-directory is nil. (Bug#10208)
1058
5b43da69
GM
10592012-01-10 Glenn Morris <rgm@gnu.org>
1060
74cc8ff9
GM
1061 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
1062
7d8d6e4e
GM
1063 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
1064 Update template values to be closer to their typical values these days.
5b43da69 1065
a0db8d43
EZ
10662012-01-09 Eli Zaretskii <eliz@gnu.org>
1067
1068 * xdisp.c (rows_from_pos_range): Accept additional argument
1069 DISP_STRING, and accept any glyph in a row whose object is that
1070 string as eligible for mouse highlight. Fixes mouse highlight of
1071 display strings from overlays. (Bug#10464)
1072
9a0115ab 10732012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 1074
b9110d6a 1075 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
1076 * fileio.c (auto_saving_dir_umask): New static var.
1077 (Fmake_directory_internal): Use it.
1078 (do_auto_save_make_dir): Set it, instead of invoking chmod after
1079 creating the directory. The old code temporarily assigns
1080 too-generous permissions to the directory.
1081 (do_auto_save_eh): Clear it.
b9110d6a 1082 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
1083 that the var is always cleared.
1084
6c1bd3f3
EZ
10852012-01-07 Eli Zaretskii <eliz@gnu.org>
1086
1087 * search.c (scan_buffer): Pass character positions to
1088 know_region_cache, not byte positions. (Bug#6540)
1089
069d2b50
L
10902012-01-07 LynX <_LynX@bk.ru> (tiny change)
1091
1092 * w32.c (sys_rename): Report EXDEV when rename of a directory
1093 fails because the target is on another logical disk. (Bug#10284)
1094
75bf0d33
DB
10952012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
1096
1097 * xterm.c (x_embed_request_focus): New function.
1098
1099 * xterm.h: Add prototype.
1100
1101 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
1102
1c6e5a32
GM
11032012-01-05 Glenn Morris <rgm@gnu.org>
1104
1105 * emacs.c (emacs_copyright): Update short copyright year to 2012.
1106
651e947e
EZ
11072012-01-01 Eli Zaretskii <eliz@gnu.org>
1108
1109 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
1110 Load gnutls_transport_set_lowat only if GnuTLS version is below
1111 2.11.1.
1112 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
1113 GnuTLS versions below 2.11.1.
1114
3778cdd8
AL
11152011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
1116
1117 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
1118 to the doc string advising against its use for altering the way
1119 windows are scrolled.
1120
0e5317f7
KH
11212011-12-28 Kenichi Handa <handa@m17n.org>
1122
1123 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
1124 coding-system ASCII compatible only when it does not produce BOM
1125 on encoding (Bug#10383).
1126
93d5ca1f
JD
11272011-12-26 Jan Djärv <jan.h.d@swipnet.se>
1128
1129 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
1130 can scroll.
1131 (create_and_show_popup_menu): Always use menu_position_func for
1132 Gtk3 (Bug#10361).
1133
ca22b785
AS
11342011-12-24 Andreas Schwab <schwab@linux-m68k.org>
1135
1136 * callint.c (Fcall_interactively): Don't truncate prompt string.
1137
d048e1e6
EZ
11382011-12-23 Eli Zaretskii <eliz@gnu.org>
1139
1140 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
1141 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 1142 resumed from there (after widening). (Bug#10360)
d048e1e6 1143
5ccaba1f
JD
11442011-12-22 Jan Djärv <jan.h.d@swipnet.se>
1145
1146 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
1147
204ee57f
JD
11482011-12-21 Jan Djärv <jan.h.d@swipnet.se>
1149
b81d40f0
JB
1150 * nsterm.m (x_free_frame_resources):
1151 Release f->output_data.ns->miniimage.
204ee57f
JD
1152 (ns_index_color): Fix indentation. Do not retain
1153 color_table->colors[i].
1154
1155 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
1156 before returning.
1157
1158 * nsfns.m (x_set_background_color): Assign return value from
1159 ns_index_color to face-background instead of NSColor*.
1160 (ns_implicitly_set_icon_type): Fix indentation.
1161 Change assignment in for loop to comparison.
1162
1163 * emacs.c (ns_pool): New variable.
1164 (main): Assign ns_pool.
1165 (Fkill_emacs): Call ns_release_autorelease_pool.
1166
1167 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
1168 autorelease fdesc, release fdAttrs and tdict.
1169 (ns_get_covering_families): Release charset.
1170 (ns_findfonts): Release NSFontDescriptor created with new.
1171 (ns_uni_to_glyphs): Fix indentation.
1172 (setString): Release attrStr before assigning new value.
1173
c803b2b7
JD
11742011-12-18 Jan Djärv <jan.h.d@swipnet.se>
1175
678f4426
JD
1176 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
1177 and NS_IMPL_COCOA.
1178 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
1179 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
1180
cd394be1 11812011-12-18 David Reitter <reitter@cmu.edu>
678f4426 1182
5fecd5fc
JD
1183 * nsterm.m (ns_term_init): Subscribe for notifications
1184 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
1185 to method trackingNotification in EmacsMenu.
1186
1187 * nsmenu.m (trackingMenu): New variable.
3771cb17 1188 (trackingNotification): New method (from Aquamacs).
5fecd5fc 1189 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 1190 from Aquamacs (Bug#7030).
678f4426
JD
1191
11922011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 1193
c803b2b7
JD
1194 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
1195 (symbol_to_nsstring): Fix indentation.
1196 (ns_symbol_to_pb): New function.
cae07000
SM
1197 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
1198 (Fns_rotate_cut_buffers_internal): Remove.
1199 (Fns_store_selection_internal): Rename from
c803b2b7
JD
1200 Fns_store_cut_buffer_internal.
1201 (ns_get_foreign_selection, Fx_own_selection_internal)
1202 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
1203 (Fns_get_selection_internal, Fns_store_selection_internal):
1204 Use ns_symbol_to_pb and check if return value is nil.
1205 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
1206 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
1207 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
1208 renamed to Sns_store_selection_internal.
1209 (ns_handle_selection_request): Move code to Fx_own_selection_internal
1210 and remove this function.
1211 (ns_handle_selection_clear): Remove, never used.
1212 (Fx_own_selection_internal): Move code from ns_handle_selection_request
1213 here.
1214
e1b01a3a
KB
12152011-12-17 Ken Brown <kbrown@cornell.edu>
1216
1217 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
1218 GID is unknown (Bug#10257).
1219
2adb6e85
PE
12202011-12-17 Paul Eggert <eggert@cs.ucla.edu>
1221
1222 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
1223 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
1224 which caused a build failure on GNU/Linux IA-64. This problem was
1225 introduced by my 2011-10-07 patch.
1226
d1d7b339
JL
12272011-12-15 Juri Linkov <juri@jurta.org>
1228
1229 * image.c (imagemagick_error): New function. (Bug#10112)
1230 (imagemagick_load_image): Comment out `MagickSetResolution' call.
1231 Use `imagemagick_error' where ImageMagick functions return
1232 `MagickFalse'.
1233 (Fimagemagick_types): Add `Fnreverse' to return the list in the
1234 proper order.
1235
100d5755
KH
12362011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1237
1238 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
1239 fill background (Bug#8992).
1240
454592a6
MR
12412011-12-13 Martin Rudalics <rudalics@gmx.at>
1242
1243 * window.c (Vwindow_combination_resize)
1244 (Vwindow_combination_limit): Use t instead of non-nil in
1245 doc-strings.
61d4b438
MR
1246 (Vrecenter_redisplay): Add first sentence of doc-string on
1247 separate line.
53524d93 1248 (Frecenter): Fix doc-string typo.
454592a6 1249
3633e3aa
KH
12502011-12-11 Kenichi Handa <handa@m17n.org>
1251
1252 * coding.c (Funencodable_char_position): Pay attention to the
1253 buffer text relocation (Bug#9389).
1254
7b9d523a
JD
12552011-12-10 Jan Djärv <jan.h.d@swipnet.se>
1256
1257 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
1258 gtk_init (Bug#10100).
1259
b73189c6
EZ
12602011-12-10 Eli Zaretskii <eliz@gnu.org>
1261
1262 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
1263 IT->string is nil. (Bug#10263)
1264
f7dfe5d6
JD
12652011-12-10 Jan Djärv <jan.h.d@swipnet.se>
1266
83faebb4
JD
1267 * nsterm.h (x_free_frame_resources): Declare.
1268
f7dfe5d6
JD
1269 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
1270 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
1271
1272 * nsterm.h (ns_get_defaults_value): Declare.
1273
1274 * nsterm.m (ns_default): Call ns_get_defaults_value.
1275
7cd4e72c
EZ
12762011-12-09 Eli Zaretskii <eliz@gnu.org>
1277
1278 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
1279 (Bug#10170)
1280
b34d7317
YM
12812011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1282
1283 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
1284 that where the value of an _OBJC_* symbol points to is in the .bss
1285 section (Bug#10240).
1286
76470ad1
KH
12872011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
1288
1289 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 1290 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 1291
745fff94
KH
12922011-12-08 Kenichi Handa <handa@m17n.org>
1293
1294 * ftfont.c (get_adstyle_property): Fix previous change
1295 (Bug#10233).
1296
6e44397c
JB
12972011-12-07 Juanma Barranquero <lekktu@gmail.com>
1298
1299 * w32.c (init_environment): If no_site_lisp, remove site-lisp
1300 dirs from the default value of EMACSLOADPATH (bug#10208).
1301
7efa6272
GM
13022011-12-07 Glenn Morris <rgm@gnu.org>
1303
1304 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
1305 installation and source directories as well. (Bug#10208)
1306
f6fc4d87
CY
13072011-12-06 Chong Yidong <cyd@gnu.org>
1308
1309 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
1310
2bf26180
GM
13112011-12-06 Glenn Morris <rgm@gnu.org>
1312
1313 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
1314 as an error, not just -1. (Bug#10217)
1315
3a6ad4f0
CY
13162011-12-05 Chong Yidong <cyd@gnu.org>
1317
1318 * keyboard.c (process_special_events): New function.
1319 (swallow_events, Finput_pending_p): Use it (Bug#10195).
1320
75a3b399
PE
13212011-12-05 Paul Eggert <eggert@cs.ucla.edu>
1322
1323 * coding.c (encode_designation_at_bol): Don't use uninitialized
1324 local variable (Bug#9318).
1325
c3c9e25e
KH
13262011-12-05 Kenichi Handa <handa@m17n.org>
1327
1328 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
1329 return Qnil (Bug#8046, Bug#10193).
1330
5eb05ea3
KH
13312011-12-05 Kenichi Handa <handa@m17n.org>
1332
1333 * coding.c (encode_designation_at_bol): New args charbuf_end and
1334 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
1335 (coding_set_source): Return how many bytes coding->source was
1336 relocated.
1337 (coding_set_destination): Return how many bytes
1338 coding->destination was relocated.
1339 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 1340 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
1341
13422011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
1343
1344 * coding.c (CODING_CHAR_CHARSET_P): New macro.
1345 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
1346 macro (Bug#9318).
1347
13482011-12-05 Andreas Schwab <schwab@linux-m68k.org>
1349
1350 The following changes are to fix Bug#9318.
1351
a79703f5 1352 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
1353 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
1354 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 1355 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 1356
7dbda6df
JB
13572011-12-05 Juanma Barranquero <lekktu@gmail.com>
1358
1359 * lisp.h (process_quit_flag): Fix external declaration.
1360
6d5eb5b0
SM
13612011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
1362
1363 Don't macro-inline non-performance-critical code.
1364 * eval.c (process_quit_flag): New function.
1365 * lisp.h (QUIT): Use it.
1366
a0c3fad0
JD
13672011-12-04 Jan Djärv <jan.h.d@swipnet.se>
1368
1369 * nsfns.m (get_geometry_from_preferences): New function.
1370 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
1371
6c07aac2
AS
13722011-12-04 Andreas Schwab <schwab@linux-m68k.org>
1373
1374 * emacs.c (Qkill_emacs): Define.
1375 (syms_of_emacs): Initialize it.
1376 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
1377 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
1378 (quit_throw_to_read_char): Add parameter `from_signal'.
1379 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
1380 * lisp.h (QUIT): Call Fkill_emacs if requested.
1381
c052ead4
JD
13822011-12-03 Jan Djärv <jan.h.d@swipnet.se>
1383
1384 * widget.c (update_wm_hints): Return if wmshell is null.
1385 (widget_update_wm_size_hints): New function.
1386
1387 * widget.h (widget_update_wm_size_hints): Declare.
1388
1389 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
1390 widget_update_wm_size_hints (Bug#10104).
1391
9e49252b
EZ
13922011-12-03 Eli Zaretskii <eliz@gnu.org>
1393
1394 * xdisp.c (handle_invisible_prop): If the invisible text ends just
1395 before a newline, prepare the bidi iterator for consuming the
1396 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 1397 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 1398
02b16839
JL
13992011-12-02 Juri Linkov <juri@jurta.org>
1400
1401 * search.c (Fword_search_regexp): New Lisp function created from
1402 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
1403 (Fword_search_backward, Fword_search_forward)
1404 (Fword_search_backward_lax, Fword_search_forward_lax):
1405 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
1406 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
1407
0068070e
SM
14082011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
1409
1410 * fileio.c (Finsert_file_contents): Move after-change-function call
1411 to before the "handled:" label, since all "goto handled" appear in
1412 cases where the *-change-functions have already been properly called
1413 (bug#10117).
1414
3360a3fc
AS
14152011-12-01 Andreas Schwab <schwab@linux-m68k.org>
1416
1417 * keyboard.c (interrupt_signal): Don't call kill-emacs when
1418 waiting for input. (Bug#10169)
1419
73d6c093
EZ
14202011-11-30 Eli Zaretskii <eliz@gnu.org>
1421
1422 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
1423 verifies glyph row's hash code--we have just reallocated the
1424 glyphs, so their contents can be complete garbage. (Bug#10164)
1425
febe6bea
JB
14262011-11-30 Juanma Barranquero <lekktu@gmail.com>
1427
1428 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
1429
801a4313
EZ
14302011-11-30 Eli Zaretskii <eliz@gnu.org>
1431
1432 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
1433 attributes are tested _before_ calling verify_row_hash, to protect
1434 against GCC re-ordering of the tests. (Bug#10164)
1435
2b56b87e
JD
14362011-11-29 Jan Djärv <jan.h.d@swipnet.se>
1437
1438 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
1439
1440 * xterm.c (handle_one_xevent): Only set async_visible and friends
1441 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 1442 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
1443 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
1444
dbf31225
PE
14452011-11-28 Paul Eggert <eggert@cs.ucla.edu>
1446
1447 Remove GCPRO-related macros that exist only to avoid shadowing locals.
1448 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
1449 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
1450 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
1451 All uses changed to use GCPRO1 etc.
1452 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
1453 Revert to old implementation (i.e., before 2011-03-11).
1454
1305621b
YM
14552011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
1456
1457 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
1458 of scroll runs so as to avoid assigning disabled bogus rows and
1459 unnecessary graphics copy operations.
1460
8c9afb46
EZ
14612011-11-27 Eli Zaretskii <eliz@gnu.org>
1462
1463 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
1464 (snprintf) [_MSC_VER]: Redirect to _snprintf.
1465 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
1466 (malloc, free, realloc, calloc): Redirect to e_* only when
1467 compiling Emacs.
1468
1469 * lisp.h (GCTYPEBITS): Move before first use.
1470 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
1471 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
1472 this macro definition.
1473
1474 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
1475 _MSC_VER.
1476
54e9e3bf
JD
14772011-11-27 Jan Djärv <jan.h.d@swipnet.se>
1478
6d5eb5b0
SM
1479 * gtkutil.c (xg_create_frame_widgets):
1480 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
1481 present with Gtk+ 2.0.
1482
83aca1cb
PE
14832011-11-26 Paul Eggert <eggert@cs.ucla.edu>
1484
1485 * fileio.c (Finsert_file_contents): Undo previous change; see
1486 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
1487
5b76caa4
PE
14882011-11-26 Paul Eggert <eggert@cs.ucla.edu>
1489
1490 Rename locals to avoid shadowing.
1491 * fileio.c (Finsert_file_contents):
1492 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
1493 * process.c (wait_reading_process_output):
1494 Rename inner 'proc' to 'p' to avoid shadowing.
1495 Indent for consistency with usual Emacs style.
1496
8c535114
EZ
14972011-11-25 Eli Zaretskii <eliz@gnu.org>
1498
1499 * xdisp.c (redisplay_window): If cursor row is not fully visible
1500 after recentering, and scroll-conservatively is set to a large
1501 number, scroll window by a few more lines to make the cursor fully
1502 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
1503 (start_display): Don't move to the next line if the display should
1504 start at a newline that is part of a display vector or an overlay
1505 string. (Bug#10119)
8c535114 1506
fa4fdb5c
JL
15072011-11-24 Juri Linkov <juri@jurta.org>
1508
1509 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
1510 after the `MagickPingImage' call. (Bug#10112)
1511
90ec88df
CY
15122011-11-23 Chong Yidong <cyd@gnu.org>
1513
1514 * window.c (Fcoordinates_in_window_p): Accept only live windows.
1515
56e2e794
MR
15162011-11-23 Martin Rudalics <rudalics@gmx.at>
1517
1518 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
1519 making another buffer current. (Bug#10114)
1520
b6e64c41
GM
15212011-11-23 Glenn Morris <rgm@gnu.org>
1522
1523 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
1524
6b21de18
CY
15252011-11-23 Chong Yidong <cyd@gnu.org>
1526
1527 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
1528 using it (Bug#5984).
1529
b12cd789
EZ
15302011-11-22 Eli Zaretskii <eliz@gnu.org>
1531
1532 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
1533 and header-lines, as they don't have one computed for them.
1534 (Bug#10098)
1535
1536 * .gdbinit (prow): Make displayed values more self-explaining.
1537 Add row's hash code.
1538
261b6fd4
LMI
15392011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
1540
1541 * process.c (wait_reading_process_output): Fix asynchrounous
1542 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 1543 (wait_reading_process_output): Add comment and URL.
261b6fd4 1544
e7cfd277
JD
15452011-11-21 Jan Djärv <jan.h.d@swipnet.se>
1546
1547 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
1548
a9b9b7f5
CY
15492011-11-21 Chong Yidong <cyd@gnu.org>
1550
1551 * window.c (Fnext_window, Fprevious_window): Doc fix.
1552
b0d15b4f
SM
15532011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
1554
1555 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
1556
fe7a3057
JB
15572011-11-20 Juanma Barranquero <lekktu@gmail.com>
1558
1559 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
1560
d2999b1a
MR
15612011-11-20 Martin Rudalics <rudalics@gmx.at>
1562
1563 * window.c (Fset_window_combination_limit): Rename argument
1564 STATUS to LIMIT.
1565 (Vwindow_combination_limit): Remove "status" from doc-string.
1566
d5ff9cd0
AS
15672011-11-20 Andreas Schwab <schwab@linux-m68k.org>
1568
1569 * m/ibms390.h: Remove.
1570 * m/ibms390x.h: Don't include "ibms390.h".
1571
a5bb9bd3
SM
15722011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
1573
1574 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
1575 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
1576
cd1181db
JB
15772011-11-20 Juanma Barranquero <lekktu@gmail.com>
1578
1579 * casetab.c (Fset_case_table):
1580 * charset.c (Fcharset_after): Fix typos.
1581
615a3b8d 15822011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 1583
17e845af
PE
1584 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
1585 Otherwise, valgrind does not work on some platforms.
1586 Problem reported by Andreas Schwab in
6a0bf43d
PE
1587 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
1588 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
1589 is set, removing the need for VIRT_ADDRESS_VARIES.
1590 (PURE_P): Use a more-efficient implementation that needs just one
1591 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
1592 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
1593 to 4 (xorl, subq, cmpq, setbe).
1594 * alloc.c (pure): Always extern now, since that's the
1595 VIRT_ADDR_VARIES behavior.
1596 (PURE_POINTER_P): Use a single comparison, not two, for
1597 consistency with the new puresize.h.
1598 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
1599 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
1600 Remove VIRT_ADDR_VARIES no longer needed.
1601
f8fe6f96
EZ
16022011-11-19 Eli Zaretskii <eliz@gnu.org>
1603
1604 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
1605 (erase_phys_cursor, update_window_cursor, show_mouse_face)
1606 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
1607 behave as if the cursor position were at the window margin.
1608
1609 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
1610 and the cursor position is out of bounds, behave as if the cursor
1611 position were at the window margin. (Bug#10075)
1612
df05a53c
CY
16132011-11-18 Chong Yidong <cyd@gnu.org>
1614
1615 * window.c (Fwindow_combination_limit): Make first argument
1616 non-optional, since it is meaningless for live windows like the
1617 selected window.
1618
2071918e
DA
16192011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
1620
1621 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
1622
b50a28de
SM
16232011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
1624
1625 * intervals.c: Fix grafting over the whole buffer (bug#10071).
1626 (graft_intervals_into_buffer): Simplify.
1627
015137db
EZ
16282011-11-18 Eli Zaretskii <eliz@gnu.org>
1629
1630 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
1631 hash values of the two rows.
1632 (copy_row_except_pointers): Preserve the used[] arrays and the
1633 hash values of the two rows. (Bug#10035)
68c95424 1634 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
1635
1636 * xdisp.c (row_hash): New function, body extracted from
1637 compute_line_metrics.
1638 (compute_line_metrics): Call row_hash, instead of computing the
1639 hash code inline.
1640
1641 * dispnew.c (verify_row_hash): Call row_hash for computing the
1642 hash code of a row, instead of duplicating code from xdisp.c.
1643
1644 * dispextern.h (row_hash): Add prototype.
1645
a2addb04
TH
16462011-11-18 Tassilo Horn <tassilo@member.fsf.org>
1647
1648 * frame.c (delete_frame): Don't delete the terminal when the last
1649 X frame is closed if emacs is built with GTK toolkit.
1650
df85d315
JB
16512011-11-17 Juanma Barranquero <lekktu@gmail.com>
1652
1653 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
1654
a0c2d0ae
MR
16552011-11-17 Martin Rudalics <rudalics@gmx.at>
1656
1657 * window.c (Vwindow_splits): Rename to
1658 Vwindow_combination_resize. Suggested by Juri Linkov.
1659 (Fsplit_window_internal): Use Vwindow_combination_resize instead
1660 of Vwindow_splits.
1661
58179cce
JB
16622011-11-16 Juanma Barranquero <lekktu@gmail.com>
1663
7877f373
JB
1664 * nsfns.m (Fns_font_name):
1665 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 1666
b6f67890
MR
16672011-11-16 Martin Rudalics <rudalics@gmx.at>
1668
1669 * window.h (window): Rename slot "nest" to "combination_limit".
1670 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
1671 (Fset_window_nest): Rename to Fset_window_combination_limit.
1672 (Vwindow_nest): Rename to Vwindow_combination_limit.
1673 (recombine_windows, make_parent_window, make_window)
1674 (Fsplit_window_internal, saved_window)
1675 (Fset_window_configuration, save_window_save): Rename all
1676 occurrences of window_nest to window_combination_limit.
1677
c7015153
JB
16782011-11-15 Juanma Barranquero <lekktu@gmail.com>
1679
1680 * image.c (imagemagick_load_image): Fix typo.
1681
322ad6ec
EZ
16822011-11-14 Eli Zaretskii <eliz@gnu.org>
1683
1684 * xdisp.c (display_line): Move the call to
1685 highlight_trailing_whitespace before the call to
1686 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
1687 faces of all the glyphs to compute ROW's hash value.
1688 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 1689
f067b8ec
JB
16902011-11-14 Juanma Barranquero <lekktu@gmail.com>
1691
1692 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
1693 just return (bug#10044).
1694
1e5b2111
EZ
16952011-11-12 Eli Zaretskii <eliz@gnu.org>
1696
7ef3cbd5
EZ
1697 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
1698 with user-defined heap size. Bump the default size of the temacs
1699 heap to 27MB, to avoid memory warning when running temacs.
1700 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
1701
1e5b2111
EZ
1702 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
1703 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
1704 (verify_row_hash) [XASSERTS]: New function.
1705 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
1706 that the hash value of glyph rows is correct.
1e5b2111 1707
89d61221
MR
17082011-11-12 Martin Rudalics <rudalics@gmx.at>
1709
1710 * window.h (window): Remove splits slot.
1711 * window.c (Fwindow_splits, Fset_window_splits): Remove.
1712 (Fdelete_other_windows_internal, make_parent_window)
1713 (make_window, Fsplit_window_internal, Fdelete_window_internal)
1714 (Fset_window_configuration, save_window_save): Don't deal with
1715 split status of windows.
1716 (saved_window): Remove splits slot.
1717 (Vwindow_splits): Rewrite doc-string.
1718
97f18cc8
JD
17192011-11-11 Jan Djärv <jan.h.d@swipnet.se>
1720
1721 * xfns.c (unwind_create_frame):
1722 * nsfns.m (unwind_create_frame):
1723 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
1724 Vframe_list (Bug#9999).
1725
22a648b4
DA
17262011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
1727
0b381c7e 1728 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 1729
659afede
KH
17302011-11-11 Kenichi Handa <handa@m17n.org>
1731
1732 * callproc.c (Fcall_process): Set the member dst_multibyte of
1733 process_coding.
1734
9ac0394b
KH
17352011-11-11 Johan Bockgård <bojohan@gnu.org>
1736
1737 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
1738 avoid a crash (bug#9496).
1739
2fbdc249
CY
17402011-11-09 Chong Yidong <cyd@gnu.org>
1741
1742 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
1743 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
1744
ac6b1f81
PE
17452011-11-08 Paul Eggert <eggert@cs.ucla.edu>
1746
1747 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
1748
09db192c
PE
17492011-11-08 Paul Eggert <eggert@cs.ucla.edu>
1750
1751 Avoid some portability problems by eschewing 'extern inline' functions.
1752 The trivial performance wins aren't worth the portability hassles; see
1753 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
1754 et seq.
1755 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
1756 (window_box_width, window_box_left, window_box_left_offset)
1757 (window_box_right, window_box_right_offset): Undo previous change,
1758 by removing the "extern"s.
1759 * intervals.c (adjust_intervals_for_insertion)
1760 (adjust_intervals_for_deletion): Undo previous change,
1761 making these static again.
1762 (offset_intervals, temp_set_point_both, temp_set_point)
1763 (copy_intervals_to_string): No longer inline.
1764 * xdisp.c (window_text_bottom_y, window_box_width)
1765 (window_box_height, window_box_left_offset)
1766 (window_box_right_offset, window_box_left, window_box_right)
1767 (window_box): No longer inline.
1768
105216ed
CY
17692011-11-08 Chong Yidong <cyd@gnu.org>
1770
1771 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
1772 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
1773 Signal an error if not a live window.
105216ed
CY
1774 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
1775 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
1776
ae9e237f
JB
17772011-11-07 Juanma Barranquero <lekktu@gmail.com>
1778
1779 * lisp.h (syms_of_abbrev): Remove declaration.
1780 Reported by CHENG Gao <chenggao@royau.me>.
1781
c7aa8333
EZ
17822011-11-07 Eli Zaretskii <eliz@gnu.org>
1783
1784 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
1785 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
1786 of temacs in GUI mode.
1787
be7f5545
MR
17882011-11-07 Martin Rudalics <rudalics@gmx.at>
1789
1790 * window.h: Declare delete_all_child_windows instead of
1791 delete_all_subwindows.
1792 * window.c (Fwindow_nest, Fset_window_nest)
1793 (Fset_window_new_total, Fset_window_new_normal)
1794 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
1795 (delete_all_subwindows): Rename to delete_all_child_windows.
1796 (Fdelete_other_windows_internal, Fset_window_configuration):
1797 Call delete_all_child_windows instead of delete_all_subwindows.
1798 * frame.c (delete_frame): Call delete_all_child_windows instead
1799 of delete_all_subwindows.
1800
ca78dc43
PE
18012011-11-07 Paul Eggert <eggert@cs.ucla.edu>
1802
1803 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
1804 This is also needed for porting to any host where GC_MARK_STACK is
1805 not GC_MAKE_GCPROS_NOOPS.
1806 (which_symbols): Use it.
1807
a0241d01
KH
18082011-11-07 Kenichi Handa <handa@m17n.org>
1809
1810 * coding.c (coding_set_destination): Check coding->src_pos only
1811 when coding->src_object is a buffer (bug#9910).
1812
1813 * process.c (send_process): Set the member src_multibyte of coding
1814 to 0 (bug#9911) when sending a unibyte text.
1815
1816 * callproc.c (Fcall_process): Set the member src_multibyte of
1817 process_coding to 0 (bug#9912).
1818
a64bfdfa 18192011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
1820
1821 * xmenu.c (cleanup_widget_value_tree): New function.
1822 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
1823 calling free_menubar_widget_value_tree directly (Bug#9830).
1824
cb41b32a
PE
18252011-11-06 Paul Eggert <eggert@cs.ucla.edu>
1826
1827 Fix some portability problems with 'inline'.
1828 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
1829 (window_box_width, window_box_left, window_box_left_offset)
1830 (window_box_right, window_box_right_offset): Declare extern.
1831 Otherwise, these inline functions do not conform to C99 and
1832 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
1833 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
1834 * intervals.c (adjust_intervals_for_insertion)
1835 (adjust_intervals_for_deletion): Now extern, because otherwise the
1836 extern inline functions 'offset_intervals' couldn't refer to it.
1837 (static_offset_intervals): Remove.
1838 (offset_intervals): Rewrite using the old contents of
1839 static_offset_intervals. The old version didn't conform to C99
1840 because an extern inline function contained a reference to an
1841 identifier with static linkage.
1842
b7041366
AS
18432011-11-06 Andreas Schwab <schwab@linux-m68k.org>
1844
1845 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
1846 GC.
1847
88a37c4d
EZ
18482011-11-06 Eli Zaretskii <eliz@gnu.org>
1849
1850 * xdisp.c (init_iterator, reseat_to_string): Don't set the
1851 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
1852 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
1853 return Qleft_to_right.
1854
49745b39
CY
18552011-11-06 Chong Yidong <cyd@gnu.org>
1856
1857 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
1858 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
1859 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
1860 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
1861 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
1862 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
1863 (Fwindow_vscroll): Doc fix.
1864 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
1865 argument, since it makes no sense to pass a live window and for
1866 consistency with window-child.
1867
1f05cd82
CS
18682011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
1869
1870 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
1871 support MSVC.
1872
22610910
JR
18732011-11-05 Jason Rumney <jasonr@gnu.org>
1874
1875 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
1876 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
1877 fonts (Bug#6029).
1878 (add_font_entity_to_list): Fix logic errors in mixed boolean and
1879 bitwise arithmetic preventing use of unicode-sip and non-truetype
1880 opentype fonts.
1881
a06776b2
EZ
18822011-11-05 Eli Zaretskii <eliz@gnu.org>
1883
3ad924ba
EZ
1884 * s/ms-w32.h (fstat, stat, utime): Move redirections to
1885 "emacs"-only part.
1886
a06776b2
EZ
1887 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
1888 initialization code to keep similarity to xfns.c after changes
1889 from 2011-11-05.
1890
c9e7db78
JD
18912011-11-05 Jan Djärv <jan.h.d@swipnet.se>
1892
a97f8f3f
JD
1893 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
1894 (unwind_create_frame): New function (Bug#9943).
1895 (Fx_create_frame): Restructure code to be more similar to the one in
1896 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
1897 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
1898 Move terminal->reference_count++ just before making the frame official
1899 (Bug#9943).
1900
1901 * nsterm.m (x_free_frame_resources): New function.
1902 (x_destroy_window): Move code to x_free_frame_resources.
1903
c9e7db78 1904 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
1905 (Fx_create_frame, x_create_tip_frame):
1906 Move terminal->reference_count++ just before making the frame
75f1671a 1907 official. Move initialization of image_cache_refcount and
c9e7db78
JD
1908 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
1909
a6fc3b5c
EZ
19102011-11-05 Eli Zaretskii <eliz@gnu.org>
1911
1912 Support MSVC build with newer versions of Visual Studio.
1913 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
1914 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
1915 nt/gmake.defs.
1916
1917 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
1918 which are not supported by MSVC.
1919 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
1920 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
1921 bitfields.
1922 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
1923 types in bitfields.
1924 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
1925
1926 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
1927
58179cce 19282011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
1929
1930 Support MSVC build with newer versions of Visual Studio.
1931 * w32.c: Don't include w32api.h for MSVC.
1932 (init_environment) [_MSC_VER]: Call sys_access, not _access.
1933
1934 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
1935 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
1936 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
1937 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
1938 e_* cousins.
1939 (alloca) [_MSC_VER]: Define to _alloca.
1940
1941 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
1942
1943 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
1944
a58c13ed
EZ
19452011-11-04 Eli Zaretskii <eliz@gnu.org>
1946
1947 * xdisp.c (note_mouse_highlight): If either of
1948 previous/next-single-property-change returns nil, treat that as
1949 the beginning or the end of the buffer. (Bug#9955)
1950
fe0b6370
JD
19512011-11-04 Jan Djärv <jan.h.d@swipnet.se>
1952
a58c13ed 1953 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
1954 label is not null (Bug#9951).
1955 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
1956 may be NULL.
1957
89bd5ee1
EZ
19582011-11-04 Eli Zaretskii <eliz@gnu.org>
1959
1960 * window.c (Fwindow_body_size): Mention in the doc string that the
1961 return value is in frame's canonical units. (Bug#9949)
1962
84c3edb9
EZ
19632011-11-03 Eli Zaretskii <eliz@gnu.org>
1964
4e2fb5c7
EZ
1965 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
1966
84c3edb9 1967 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 1968 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 1969 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 1970
bc17a887
EZ
19712011-11-01 Eli Zaretskii <eliz@gnu.org>
1972
1973 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
1974 Don't stop backward scan on the continuation glyph, even though
1975 its CHARPOS is positive.
6d5eb5b0
SM
1976 (mouse_face_from_buffer_pos, note_mouse_highlight):
1977 Rename cover_string to disp_string.
bc17a887 1978
4ee88440
MR
19792011-11-01 Martin Rudalics <rudalics@gmx.at>
1980
1981 * window.c (temp_output_buffer_show): Don't use
1982 Vtemp_buffer_show_specifiers.
1983 (Vtemp_buffer_show_specifiers): Remove unused variable.
1984
c2ff3c02
EZ
19852011-10-30 Eli Zaretskii <eliz@gnu.org>
1986
1987 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
1988 past the beginning of the current glyph matrix.
1989
58179cce 19902011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
1991
1992 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
1993 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
1994 HAVE_GTK3 (Bug#9869).
b77a6a7f 1995
3b574623
JD
1996 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
1997 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
1998
b77a6a7f
JD
1999 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
2000
2001 * xterm.c: Declare x_handle_net_wm_state to return int.
2002 (handle_one_xevent): Check if we are iconified but don't have
2003 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
2004 (get_current_wm_state): Return non-zero if not hidden,
2005 check for _NET_WM_STATE_HIDDEN (Bug#9893).
2006 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
2007 (x_handle_net_wm_state): Return what get_current_wm_state returns.
2008 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
2009
196e41e4
PE
20102011-10-29 Paul Eggert <eggert@cs.ucla.edu>
2011
2012 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
2013 so that this new function doesn't get optimized away by a
2014 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
2015
021f2e1a
AS
20162011-10-29 Andreas Schwab <schwab@linux-m68k.org>
2017
2018 * frame.h (MOUSE_HL_INFO): Remove excess parens.
2019
8b058d44
EZ
20202011-10-29 Eli Zaretskii <eliz@gnu.org>
2021
2022 Fix the `xbytecode' command.
2023 * .gdbinit (xprintbytestr): New command.
b50a28de 2024 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
2025 (xbytecode): Print the byte-code string as well.
2026
4452fb80
EZ
20272011-10-29 Kim Storm <storm@cua.dk>
2028
8b058d44
EZ
2029 * alloc.c (which_symbols): New function.
2030
21b72067
AS
20312011-10-29 Andreas Schwab <schwab@linux-m68k.org>
2032
2033 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
2034 line. (Bug#9903)
2035
83ed7b5c
GM
20362011-10-29 Glenn Morris <rgm@gnu.org>
2037
2038 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
2039 Not clear what it was for, and it causes various bugs. (Bug#9839)
2040
5a7a728b
EZ
20412011-10-28 Eli Zaretskii <eliz@gnu.org>
2042
2043 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
2044 possible random value that matches one of those tested as
2045 condition to clear the mouse face.
2046
d3d0842f
CY
20472011-10-28 Chong Yidong <cyd@gnu.org>
2048
2049 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
2050
31b39d13
DN
20512011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
2052
2053 * window.c (make_window): Initialize phys_cursor_on_p.
2054
9aba6043
SM
20552011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
2056
2057 * lisp.h (struct Lisp_Symbol): Update comments.
2058
c20992f4
JB
20592011-10-28 Juanma Barranquero <lekktu@gmail.com>
2060
2061 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
2062
db4f02f2
EZ
20632011-10-28 Eli Zaretskii <eliz@gnu.org>
2064
2065 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
2066 <oslsachem@gmail.com> for helping to debug this.
2067
2068 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
2069 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
2070 (g_b_init_get_glyph_outline_w): New static variables.
2071 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
2072 (GetGlyphOutlineW_Proc): New typedefs.
2073 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
2074 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
2075 New functions.
2076 (w32font_open_internal, compute_metrics):
2077 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
2078 instead of calling the "wide" APIs directly.
2079
2080 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
2081
2082 * w32.h (syms_of_w32font): Add prototype.
2083
87e68db4
JB
20842011-10-27 Juanma Barranquero <lekktu@gmail.com>
2085
2086 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
2087 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
2088 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
2089 (Fmove_to_window_line): Doc fix.
2090
435c1d67
CY
20912011-10-27 Chong Yidong <cyd@gnu.org>
2092
2093 * process.c (make_process): Set gnutls_state to NULL.
2094
2095 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
2096 non-NULL, regardless of GNUTLS_INITSTAGE.
2097 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
2098 an error. Set process slots as soon as we allocate them.
2099
2100 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
2101
9c6c6f49
CY
21022011-10-27 Chong Yidong <cyd@gnu.org>
2103
9aba6043
SM
2104 * gnutls.c (emacs_gnutls_deinit): New function.
2105 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
2106 (Fgnutls_deinit, Fgnutls_boot): Use it.
2107
2108 * process.c (make_process): Initialize GnuTLS credentials to NULL.
2109 (deactivate_process): Call emacs_gnutls_deinit.
2110
657d08d3
JB
21112011-10-27 Juanma Barranquero <lekktu@gmail.com>
2112
2113 * image.c (x_create_x_image_and_pixmap):
2114 * w32.c (sys_rename, w32_delayed_load):
2115 * w32font.c (fill_in_logfont):
2116 * w32reg.c (x_get_string_resource): Silence compiler warnings.
2117
5430d399
JB
21182011-10-26 Juanma Barranquero <lekktu@gmail.com>
2119
2120 * w32fns.c (w32_default_color_map): New function,
2121 extracted from Fw32_default_color_map.
a7ef684b 2122 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 2123
fe0055fa
PE
21242011-10-25 Paul Eggert <eggert@cs.ucla.edu>
2125
2126 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
2127
e6346438
SM
21282011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
2129
2130 * keyboard.c (test_undefined): New function (bug#9751).
2131 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
2132
e112cc37
ET
21332011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
2134
2135 * sysdep.c (init_sys_modes): Fix the check for the controlling
2136 terminal (Bug#6649).
2137
7b5d6677
EZ
21382011-10-20 Eli Zaretskii <eliz@gnu.org>
2139
2140 * dispextern.h (struct bidi_it): New member next_en_type.
2141
2142 * bidi.c (bidi_line_init): Initialize the next_en_type member.
2143 (bidi_resolve_explicit_1): When next_en_pos is valid for the
2144 current character, check also for next_en_type being WEAK_EN.
2145 (bidi_resolve_weak): Don't enter the expensive loop if the current
2146 position is before next_en_pos. Record the bidi type of the first
2147 non-ET, non-BN character we find, in addition to its position.
2148 (bidi_level_of_next_char): Invalidate next_en_type when
2149 next_en_pos is over-stepped.
2150
7da0b018
PE
21512011-10-20 Paul Eggert <eggert@cs.ucla.edu>
2152
2153 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
2154 * editfns.c: Rewrite current-time-zone so that it invokes
2155 the equivalent of (format-time-string "%Z") to get the time zone name.
2156 This fixes a bug when the time zone name contains characters that
2157 need converting from the system time locale to Emacs internal format.
2158 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
2159 that patch fixed format-time-string to do the conversion, but
2160 I forgot to fix current-time-zone.
2161 (format_time_string): New function, containing most of
2162 what Fformat_time_string used to contain.
2163 (Fformat_time_string): Rewrite in terms of format_time_string.
2164 This doesn't change this function's behavior.
2165 (current-time-zone): Rewrite to use format_time_string.
2166 This fixes the bug reported by Michael Schierl in
2167 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
2168 Jason Rumney's 2007-06-07 change worked around this bug, but
2169 didn't fix it.
2170 * systime.h (tzname, timezone): Remove no-longer-used declarations.
2171
8547b010
EZ
21722011-10-19 Eli Zaretskii <eliz@gnu.org>
2173
2174 * xdisp.c (start_display): If the character at POS is displayed
2175 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
2176 (try_window_reusing_current_matrix): If a line ends in a display
2177 vector or the next line starts in a display vector, continue
2178 redrawing the window even though the character position of
2179 start_row was reached.
8547b010
EZ
2180 (Bug#9771, part 2)
2181
4e948d15
CY
21822011-10-18 Chong Yidong <cyd@gnu.org>
2183
2184 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
2185 with nobreak-char-display too.
2186
4787455f
EZ
21872011-10-18 Eli Zaretskii <eliz@gnu.org>
2188
2189 Fix part 3 of bug#9771.
2190 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
2191 (bidi_resolve_neutral): Don't enter the expensive loop looking for
2192 non-neutral characters if the current character is a paragraph
2193 separator (a.k.a. Newline). This avoids running the same
2194 expensive loop twice, once when we consume the preceding newline
2195 and the other time when the line actually needs to be displayed.
2196 Avoid the loop when we see neutrals on the base embedding level
2197 following a character whose directionality is the same as the
2198 paragraph's. This avoids running the expensive loop when a line
2199 ends in a long sequence of neutrals, like control characters.
2200 Add assertion against STRONG_AL type. Slightly rearrange code
2201 that determines the type of a neutral given the first non-neutral
2202 that follows it.
2203 (bidi_level_of_next_char): Set next_en_pos to zero when
2204 invalidating its info.
2205
2c91f553
EZ
22062011-10-17 Eli Zaretskii <eliz@gnu.org>
2207
2208 * xdisp.c (push_display_prop): Determine whether to record string
2209 or buffer position by IT->string, not by IT->method. Allow
2210 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
2211 (move_it_vertically_backward): Don't look for character position
2212 immediately after the newline when in a continuation line.
2213 (Bug#9771, part 1)
2c91f553 2214
c7b08b0d
MR
22152011-10-15 Martin Rudalics <rudalics@gmx.at>
2216
2217 * window.c (coordinates_in_window): Rewrite and delabelize
2218 vertical border check. (Bug#5357) (Bug#9618)
2219
6b02f655
SM
22202011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
2221
2222 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
2223 errors in XSetWindowBorder (bug#9310).
2224
81d40c92
DA
22252011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
2226
2227 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
2228 avoid crash when xmalloc overrun checking is enabled.
2229
d4172c3b
EZ
22302011-10-13 Eli Zaretskii <eliz@gnu.org>
2231
2232 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
2233 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
2234 cursor motion with <left> and <right> arrow keys.
2235
2236 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
2237 some callers set that themselves.
2238
b00eea75
EZ
22392011-10-12 Eli Zaretskii <eliz@gnu.org>
2240
2241 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
2242 display string and the previous row comes from the same string and
2243 is empty. (Bug#9739) (Bug#9738)
2244
8fe012c4
SM
22452011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
2246
2247 * doc.c (get_doc_string): Encode file name (bug#9735).
2248
0074aef2
EZ
22492011-10-12 Eli Zaretskii <eliz@gnu.org>
2250
79beb178
EZ
2251 * bidi.c (bidi_level_of_next_char):
2252 * xdisp.c (get_visually_first_element): Remove old incorrect
2253 comments regarding the Unicode Line Separator character.
2254
0074aef2
EZ
2255 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
2256
6e4b3fbe
DA
22572011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
2258
2259 * alloc.c (Fgc_status): Do not access beyond zombies array
2260 boundary if nzombies > MAX_ZOMBIES.
2261 * alloc.c (dump_zombies): Add missing format specifier.
2262
0324f3af
PE
22632011-10-12 Paul Eggert <eggert@cs.ucla.edu>
2264
b5525cac
PE
2265 * xdisp.c (set_cursor_from_row): Simplify conditionals,
2266 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
2267
0324f3af
PE
2268 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
2269 Some packages use them to denote characters with modifiers.
2270
e9b5f888
AS
22712011-10-11 Andreas Schwab <schwab@linux-m68k.org>
2272
2273 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
2274 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
2275 matching a pp-number. Rename parameter var to var1.
2276
127827c0
SM
22772011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
2278
2279 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
2280
c8fd3bd0
GM
22812011-10-08 Glenn Morris <rgm@gnu.org>
2282
2283 * callint.c (Fcall_interactively): Give a more explicit error for the
2284 'c' case with a non-character input. (Bug#8479)
2285
352ec8ff
EZ
22862011-10-08 Eli Zaretskii <eliz@gnu.org>
2287
03669ccb
EZ
2288 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
2289 lines.
7061c986
EZ
2290 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
2291 lines that are hscrolled on the left.
03669ccb 2292
352ec8ff
EZ
2293 * dispnew.c (buffer_posn_from_coords): Account for a possible
2294 presence of header-line. (Bug#4426)
2295
a66cfb1c
SM
22962011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
2297
6b02f655
SM
2298 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
2299 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 2300
7c5ee88e
PE
23012011-10-07 Paul Eggert <eggert@cs.ucla.edu>
2302
2303 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
2304 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
2305 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
2306 this makes Emacs dump core during garbage collection on rare
2307 occasions. sizeof is obviously inferior to offsetof here, so
2308 stick with offsetof.
2309 (GC_POINTER_ALIGNMENT): New macro.
2310 (mark_memory): Omit 3rd (offset) arg; caller changed.
2311 Don't assume EMACS_INT alignment is the same as pointer alignment.
2312
df1bbe5b
SM
23132011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
2314
2315 * keyboard.c (read_key_sequence_remapped): New var.
2316 (read_key_sequence): Compute remapping in the right buffer.
2317 (command_loop_1): Use read_key_sequence's remapping directly.
2318
51553db6
SM
23192011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
2320
32c1fffd
SM
2321 * dired.c (file_name_completion): Don't expand file name.
2322 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
2323 before checking file name handler.
2324
51553db6
SM
2325 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
2326 they've been requested explicitly (bug#9591).
2327
b6bd1599 23282011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
2329
2330 * keymap.c (Fsingle_key_description): Use make_specified_string
2331 instead of build_string to build string from push_key_description.
2332 (Bug#5193)
2333
f701dc2a
PE
23342011-09-30 Paul Eggert <eggert@cs.ucla.edu>
2335
4222c55d
PE
2336 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
2337 This fixes a Y2038 bug on 64-bit hosts.
2338 * buffer.c (reset_buffer):
2339 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
2340 (Fclear_buffer_auto_save_failure):
2341 Use 0, not -1, to represent an unset failure time, since time_t
2342 might not be signed.
2343
f701dc2a
PE
2344 Remove dependency on glibc malloc internals.
2345 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
2346 Move back here from lisp.h, but with their new implementations.
2347 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
2348 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
2349 * charset.c (charset_table_init): New static var.
2350 (syms_of_charset): Use it instead of xmalloc. This removes a
2351 dependency on glibc malloc internals. See Eli Zaretskii's comment in
2352 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
2353 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
2354 Move back to alloc.c.
2355 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
2356 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
2357
9ceebf39
JD
23582011-09-30 Jan Djärv <jan.h.d@swipnet.se>
2359
2360 * nsterm.m (windowDidResize): Call x_set_window_size only when
2361 ns_in_resize is true. Otherwise set pixelwidth/height and
2362 call change_frame_size (Bug#9628).
2363
cb993c58
PE
23642011-09-30 Paul Eggert <eggert@cs.ucla.edu>
2365
3930c88b
PE
2366 Port --enable-checking=all to Fedora 14 x86-64.
2367 * charset.c (syms_of_charset): Also account for glibc malloc's
2368 internal overhead when calculating the initial malloc maximum.
2369
cb993c58
PE
2370 Port --enable-checking=all to Fedora 14 x86.
2371 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
2372 Move to lisp.h.
2373 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
2374 (overrun_check_realloc, overrun_check_free):
2375 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
2376 That way, xmalloc returns a properly-aligned pointer even if
2377 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
2378 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
2379 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
2380 into account when calculating the initial malloc maximum.
2381 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
2382 Move here from alloc.c, so that charset.c can use it too.
2383 Properly align; the old code wasn't right for common 32-bit hosts
2384 when configured with --enable-checking=all.
2385 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
2386 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
2387
31bed486
EZ
23882011-09-29 Eli Zaretskii <eliz@gnu.org>
2389
04c70788 2390 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
2391 use EDOM.
2392
fbcaa2f3
EZ
23932011-09-28 Eli Zaretskii <eliz@gnu.org>
2394
2395 * xdisp.c (compute_display_string_end): If there's no display
2396 string at CHARPOS, return -1.
2397
2398 * bidi.c (bidi_fetch_char): When compute_display_string_end
2399 returns a negative value, treat the character as a normal
2400 character not covered by a display string. (Bug#9624)
2401
a239d4e9
JB
24022011-09-28 Juanma Barranquero <lekktu@gmail.com>
2403
2404 * lread.c (Fread_from_string): Fix typo in docstring.
2405
88652fd5
EZ
24062011-09-27 Eli Zaretskii <eliz@gnu.org>
2407
2408 * xdisp.c (handle_invisible_prop): If invisible text ends on a
2409 newline, reseat the iterator instead of bidi-iterating there one
2410 character at a time. (Bug#9610)
32c1fffd
SM
2411 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
2412 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 2413
ed497dd4
AS
24142011-09-27 Andreas Schwab <schwab@linux-m68k.org>
2415
2416 * lread.c (readevalloop): Use correct code for NBSP.
2417 (read1): Likewise. (Bug#9608)
2418
b2bf61aa
MA
24192011-09-25 Michael Albinus <michael.albinus@gmx.de>
2420
2421 * dbusbind.c (Fdbus_register_signal): When service is not
2422 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
2423
32bbb17c
GM
24242011-09-25 Glenn Morris <rgm@gnu.org>
2425
2426 * buffer.c (truncate-lines): Doc fix.
2427
94e0933e
CY
24282011-09-24 Chong Yidong <cyd@stupidchicken.com>
2429
2430 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
2431 (Fset_window_next_buffers): Doc fix.
2432
cddde921
GM
24332011-09-24 Glenn Morris <rgm@gnu.org>
2434
2435 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
2436
1260aef1
PE
24372011-09-24 Paul Eggert <eggert@cs.ucla.edu>
2438
25b4bfa0
PE
2439 Fix minor problems found by static checking.
2440 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
2441 * indent.c (Fvertical_motion): Fix == vs = typo.
2442
e3cbd34b
EZ
24432011-09-24 Eli Zaretskii <eliz@gnu.org>
2444
a66cfb1c
SM
2445 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
2446 Default value is now t. Doc fix.
6bf7006f 2447
e3cbd34b 2448 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 2449 logic when moving up, not only when moving down. Fix the
e3cbd34b 2450 confusing name and values of the it_overshoot_expected variable;
32c1fffd 2451 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
2452
2453 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
2454 CHARPOS is covered by a display string which includes newlines.
2455 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
2456 is covered by a display string with embedded newlines.
2457
a3de0cbd
MA
24582011-09-24 Michael Albinus <michael.albinus@gmx.de>
2459
2460 * dbusbind.c (Fdbus_register_signal): Add match rule to
2461 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
2462 (Fdbus_register_method, Vdbus_registered_objects_table):
2463 Fix docstring.
a3de0cbd 2464
b260039d
JM
24652011-09-24 Jim Meyering <meyering@redhat.com>
2466
32c1fffd 2467 do not ignore write error for any output size
b260039d
JM
2468 The previous change was incomplete.
2469 While it makes emacs --batch detect the vast majority of stdout
2470 write failures, errors were still ignored whenever the output size is
2471 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
2472 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
2473 && echo FAIL: ignored write error
2474 FAIL: ignored write error
2475 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
2476 && echo FAIL: ignored write error
2477 FAIL: ignored write error
2478 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
2479
8eca8a7c
AS
24802011-09-23 Andreas Schwab <schwab@linux-m68k.org>
2481
2482 * emacs.c (Fkill_emacs): In noninteractive mode exit
2483 non-successfully if a write error occurred on stdout. (Bug#9574)
2484
3341db62
EZ
24852011-09-21 Eli Zaretskii <eliz@gnu.org>
2486
2487 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
2488 the xassert test.
2489
2490 * dispextern.h (struct it): Update the comment documenting what
2491 can it->OBJECT be.
2492
8c203dbf
EZ
24932011-09-20 Eli Zaretskii <eliz@gnu.org>
2494
2495 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
2496 a display string, extend search for cursor position to end of row.
2497 (find_row_edges): If the row ends in a newline from a display
2498 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
2499 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
2500 (Fcurrent_bidi_paragraph_direction): Fix search for previous
2501 non-empty line. Fixes confusing cursor motion with arrow keys at
2502 the beginning of a line that starts with whitespace.
8c203dbf 2503
a4824228
LMI
25042011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
2505
2506 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
2507 (bug#9493).
2508
33ed493b
CY
25092011-09-18 Chong Yidong <cyd@stupidchicken.com>
2510
2511 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
2512 boolean (Bug#9154).
2513
56cd55c8
EZ
25142011-09-18 Eli Zaretskii <eliz@gnu.org>
2515
2516 * xdisp.c (display_line): Record maximum and minimum buffer
2517 positions even if no glyphs were produced (e.g., by a zero-width
2518 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
2519 buffer positions that will be removed from the glyph row because
2520 they don't fit.
c02dcedf
EZ
2521 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
2522 column is beyond frame width: don't subtract 1 "pixel" when
2523 computing width of the stretch.
3e62b7e0
EZ
2524 (reseat_at_next_visible_line_start): Undo the change made on
2525 2011-09-17 that saved paragraph information and restored it after
2526 the call to `reseat'. (Bug#9545)
56cd55c8 2527
5ed99d36 25282011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
2529
2530 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
2531 and turn window cursor on if cleared (Bug#9415).
2532
5ed99d36 25332011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
2534
2535 * search.c (boyer_moore): Take unibyte characters from pattern
2536 literally. (Bug#9458)
2537
9bade7b2
EZ
25382011-09-18 Eli Zaretskii <eliz@gnu.org>
2539
2540 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
2541
e5e9d610
PE
25422011-09-18 Paul Eggert <eggert@cs.ucla.edu>
2543
87e4427a
PE
2544 Fix minor problem found by static checking.
2545 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
2546 initialized, to pacify gcc -Wuninitialized.
2547
e5e9d610
PE
2548 * fileio.c: Report proper errno when syscall falls.
2549 (Finsert_file_contents): Save and restore errno,
2550 so that report_file_error outputs the correct diagnostic.
2551 (Fwrite_region) [CLASH_DETECTION]: Likewise.
2552
a1674f0b
EZ
25532011-09-18 Eli Zaretskii <eliz@gnu.org>
2554
2555 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
2556
fbfb6dd4
EZ
25572011-09-17 Eli Zaretskii <eliz@gnu.org>
2558
2559 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
2560 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
2561
bb187662
EZ
25622011-09-17 Eli Zaretskii <eliz@gnu.org>
2563
1137e8b8 2564 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 2565 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
2566
2567 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
2568 (bidi_find_paragraph_start): Search back for paragraph beginning
2569 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
2570 (bidi_move_to_visually_next): Only trigger paragraph-related
2571 computations when the last character is a newline or at EOB, not
2572 just any NEUTRAL_B. (Bug#9470)
2573
bb187662
EZ
2574 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
2575 truncated lines if point is covered by a display string. (Bug#9524)
2576
2e621251
PE
25772011-09-16 Paul Eggert <eggert@cs.ucla.edu>
2578
2579 * xselect.c: Relax test for outgoing X longs (Bug#9498).
2580 (cons_to_x_long): New function.
2581 (lisp_data_to_selection_data): Use it. Correct the test for
2582 short-versus-long data; it was negated. Break out of vector
2583 loop, for efficiency, when a long datum is discovered.
2584
91a15bc6
SM
25852011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
2586
2587 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
2588
b41c3a35
EZ
25892011-09-16 Eli Zaretskii <eliz@gnu.org>
2590
2591 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
2592 GCC PR/17406) by declaring this function with external scope.
2593
7812ba2d
PE
25942011-09-15 Paul Eggert <eggert@cs.ucla.edu>
2595
2596 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
2597 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
2598
cf7edc2a
AS
25992011-09-15 Andreas Schwab <schwab@linux-m68k.org>
2600
2601 * editfns.c (Fformat): Correctly handle text properties on "%%".
2602
bd01620e
EZ
26032011-09-15 Eli Zaretskii <eliz@gnu.org>
2604
2605 * xterm.c (x_draw_composite_glyph_string_foreground):
2606 * w32term.c (x_draw_composite_glyph_string_foreground):
2607 * term.c (encode_terminal_code):
2608 * composite.c (composition_update_it, get_composition_id):
2609 * xdisp.c (get_next_display_element)
2610 (fill_composite_glyph_string): Add comments about special meaning
2611 of TAB characters in a composition.
2612
a02719a3
PE
26132011-09-15 Paul Eggert <eggert@cs.ucla.edu>
2614
2615 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
2616 This occurs when processing a multibyte format.
2617 Problem reported by Wolfgang Jenker.
a02719a3 2618
72589a3c
JB
26192011-09-15 Johan Bockgård <bojohan@gnu.org>
2620
2621 * xdisp.c (try_cursor_movement): Only check for exact match if
2622 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
2623
1c14176c
PE
26242011-09-14 Paul Eggert <eggert@cs.ucla.edu>
2625
2626 Remove unused external symbols.
2627 * dispextern.h (calc_pixel_width_or_height): Remove decl.
2628 * xdisp.c (calc_pixel_width_or_height): Now static.
2629 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
2630 * indent.c (check_display_width):
2631 * w32term.c: Fix comment to match code.
2632 * xterm.c, xterm.h (x_catching_errors): Remove.
2633
d2eea5b5
PE
26342011-09-14 Paul Eggert <eggert@cs.ucla.edu>
2635
2636 * xselect.c: Use signed conversions more consistently (Bug#9498).
2637 (selection_data_to_lisp_data): Assume incoming selection data are
2638 signed integers, not unsigned. This is to be consistent with
2639 outgoing selection data, which was modified to use signed integers
2640 in as part of the fix to Bug#9196 in response to Jan D.'s comment
2641 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
2642 expects long, not unsigned long.
2643
46888499
EZ
26442011-09-14 Eli Zaretskii <eliz@gnu.org>
2645
2646 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
2647 computation of loop end. Reported by Johan Bockgård
2648 <bojohan@gnu.org>.
2649
ef8ef9fb
CY
26502011-09-13 Chong Yidong <cyd@stupidchicken.com>
2651
2652 * frame.c (Fother_visible_frames_p): Function deleted.
2653
fa819fed
EZ
26542011-09-12 Eli Zaretskii <eliz@gnu.org>
2655
2656 * indent.c (compute_motion): Process display vector front to back
2657 rather than the other way around. (Bug#2496)
2658
2ba8e008
SM
26592011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
2660
2661 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
2662
20f53c69
CY
26632011-09-11 Chong Yidong <cyd@stupidchicken.com>
2664
2665 * minibuf.c (Fread_from_minibuffer): Doc fix.
2666
d562d7a4
EZ
26672011-09-11 Eli Zaretskii <eliz@gnu.org>
2668
2669 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
2670 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
2671
1c4d7f3d
LMI
26722011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
2673
2674 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
2675 value for non-existent files.
2676
b885bf36
EZ
26772011-09-11 Eli Zaretskii <eliz@gnu.org>
2678
2679 * fileio.c (Finsert_file_contents): If the file cannot be opened,
2680 set its "size" to -1. This will set the modtime_size field of
2681 the corresponding buffer to -1, which is what
2682 verify-visited-file-modtime expects for files that do not exist.
2683 (Bug#9139)
2684
6612f0bf
PE
26852011-09-11 Paul Eggert <eggert@cs.ucla.edu>
2686
2687 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
2688 here ...
2689 * lisp.h: ... from here. push_key_description is no longer
2690 defined in keyboard.c, so its declaration should not be in
2691 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
2692 logically belongs with push_key_description.
2693
dfb3f755
PE
26942011-09-10 Paul Eggert <eggert@cs.ucla.edu>
2695
2696 * buffer.h: Include <sys/types.h> instead of <time.h>.
2697 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
2698 Problem reported by Herbert J. Skuhra.
2699
3134906c
LMI
27002011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
2701
2702 * xml.c (parse_region): Make the parsing work for
2703 non-comment-starting XML files again (bug#9144).
2704
8d903f4e
AS
27052011-09-10 Andreas Schwab <schwab@linux-m68k.org>
2706
2707 * image.c (gif_load): Fix calculation of bottom and right corner.
2708 (Bug#9468)
2709
80ad64f4
EZ
27102011-09-10 Eli Zaretskii <eliz@gnu.org>
2711
2712 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
2713 redisplay in small windows.
2714
208a048d
EZ
27152011-09-09 Eli Zaretskii <eliz@gnu.org>
2716
2717 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
2718
9b1c252e
MR
27192011-09-08 Martin Rudalics <rudalics@gmx.at>
2720
2721 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
2722 Operate on live windows only.
2723
2949f33b
JB
27242011-09-08 Juanma Barranquero <lekktu@gmail.com>
2725
2726 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
2727
e08dcafd
EZ
27282011-09-07 Eli Zaretskii <eliz@gnu.org>
2729
2730 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
2731 only under bidi iteration.
2732
115b96bd
JD
27332011-09-07 Jan Djärv <jan.h.d@swipnet.se>
2734
2735 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
2736
c8199d0f
PE
27372011-09-06 Paul Eggert <eggert@cs.ucla.edu>
2738
2739 isnan: Fix porting problem to Solaris 10 with bundled gcc.
2740 Without this fix, the command to link temacs failed due to an
2741 undefined symbol __builtin_isnan. This is because
2742 /usr/include/iso/math_c99.h #defines isnan(x) to
2743 __builtin_isnan(x), but the bundled gcc, which identifies itself
2744 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
2745 a __builtin_isnan.
2746 * floatfns.c (isnan): #undef, and then #define to a clone of
2747 what's in data.c.
2748 (Fisnan): Always define, since it's always available now.
2749 (syms_of_floatfns): Always define isnan at the Lisp level.
2750
e39b275c 27512011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
2752
2753 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
2754
b2db44d9 27552011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 2756
f4af5137 2757 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
2758 The previous code assumed that file offsets (off_t values) fit in
2759 EMACS_INT variables, which is not true on typical 32-bit hosts.
2760 The code messed up by falsely reporting buffer overflow in cases
2761 such as (insert-file-contents "big" nil 1 2) into an empty buffer
2762 when "big" contains more than 2**29 bytes, even though this
2763 inserts just one byte and does not overflow the buffer.
2764 (Finsert_file_contents): Store file offsets as off_t
2765 values, not as EMACS_INT values. Check for overflow when
2766 converting between EMACS_INT and off_t. When checking for
2767 buffer overflow or for overlap, take the offsets into account.
2768 Don't use EMACS_INT for small values where int suffices.
2769 When checking for overlap, fix a typo: ZV was used where
2770 ZV_BYTE was intended.
2771 (Fwrite_region): Don't assume off_t fits into 'long'.
2772 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
2773
ecfc0a49
MA
27742011-09-05 Michael Albinus <michael.albinus@gmx.de>
2775
2776 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
2777
6511acf2 27782011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 2779
0999621a 2780 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
2781
2782 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 2783 (esprintf, exprintf, evxprintf): New functions.
62f19c19 2784 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 2785 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
2786 (modify_event_symbol): Do not assume that the length of
2787 name_alist_or_stem is safe to alloca and fits in int.
2788 (Fexecute_extended_command): Likewise for function name and binding.
2789 (Frecursion_depth): Wrap around reliably on integer overflow.
2790 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
2791 since some callers pass EMACS_INT values.
2792 (Fsingle_key_description): Don't crash if symbol name contains more
2793 than MAX_ALLOCA bytes.
2794 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
2795 (get_minibuffer): Arg is now EMACS_INT, not int.
2796 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 2797 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
2798 * window.h (command_loop_level, minibuf_level): Reflect API changes.
2799
2be7d702
PE
2800 * dbusbind.c (signature_cat): New function.
2801 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
2802 Do not overrun buffer; instead, report string overflow.
2803
9d1df220
PE
2804 * dispnew.c (add_window_display_history): Don't overrun buffer.
2805 Truncate instead; this is OK since it's just a log.
2806
33ef5c64
PE
2807 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
2808 even if the time zone offset is outlandishly large.
2809 Don't mishandle offset == INT_MIN.
2810
66c6fdd5
PE
2811 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
2812 when creating daemon; the previous buffer-overflow check was incorrect.
2813
d749b01b
PE
2814 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
2815 which has the guts of the old verror function.
2816
b5cd1905
PE
2817 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
2818 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
2819
6e1a67fb
PE
2820 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
2821 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 2822 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 2823 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
2824 length of string rather than counting it via multiple sprintfs;
2825 that's simpler and more reliable.
c21721cc
PE
2826 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
2827 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
2828 sprintf, in case result does not fit in int.
2829
c57b67fc
PE
2830 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
2831 (fontset_from_font): Print it.
2832
8a401434
PE
2833 * frame.c (tty_frame_count): Now printmax_t, not int.
2834 (make_terminal_frame, set_term_frame_name): Print it.
2835 (x_report_frame_params): In X, window IDs are unsigned long,
2836 not signed long, so print them as unsigned.
2837 (validate_x_resource_name): Check for implausibly long names,
2838 and don't assume name length fits in 'int'.
2839 (x_get_resource_string): Don't blindly alloca invocation name;
2840 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
2841 not fit in int.
2842
6e1a67fb
PE
2843 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
2844 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
2845 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
2846
0df02bf3
PE
2847 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
2848 Use esprintf, not sprintf, in case result does not fit in int.
2849
48e30793
PE
2850 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
2851 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
2852 it as a large positive number.
2853 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
2854 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
2855
a66ff6d8
PE
2856 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
2857 in case result does not fit in int.
2858
aca216ff
PE
2859 * print.c (float_to_string): Detect width overflow more reliably.
2860 (print_object): Make sprintf buffer a bit bigger, to avoid potential
2861 buffer overrun. Don't assume list length fits in 'int'. Treat
2862 print length of 0 as 0, not as infinity; to be consistent with other
2863 uses of print length in this function. Don't overflow print length
2864 index. Don't assume hash table size fits in 'long', or that
2865 vectorlike size fits in 'unsigned long'.
2866
31c286f7
PE
2867 * process.c (make_process): Use printmax_t, not int, to format
2868 process-name gensyms.
2869
55e5faa1
PE
2870 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
2871
80f2e268
PE
2872 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
2873 to avoid potential buffer overrun.
2874
670741ab
PE
2875 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
2876 if X resource line is longer than 512 bytes.
2877
b7163a50
PE
2878 * xfns.c (x_window): Make sprintf buffer a bit bigger
2879 to avoid potential buffer overrun.
2880
ae58ff1f
PE
2881 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
2882
c43c8a6a
PE
2883 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
2884
3f8236f4
PE
28852011-09-04 Paul Eggert <eggert@cs.ucla.edu>
2886
53e9fe90 2887 Integer overflow fixes for scrolling, etc.
6511acf2
PE
2888 Without these, Emacs silently mishandles large integers sometimes.
2889 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
2890 it were "C-u 1 M-x recenter" on a typical 64-bit host.
2891
6511acf2
PE
2892 * xdisp.c (try_window_id): Check Emacs fixnum range before
2893 converting to 'int'.
806add1d 2894
6511acf2 2895 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
2896 Check that an Emacs fixnum is in range before assigning it to 'int'.
2897 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
2898 values converted from Emacs fixnums.
2899 (Frecenter): Don't wrap around a line count if it is out of 'int'
2900 range; instead, treat it as an extreme value.
2901 (Fset_window_configuration, compare_window_configurations):
2902 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
2903
6511acf2
PE
2904 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
2905 that can exceed INT_MAX. Check that EMACS_INT value is in range
2906 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
2907 (match_limit): Don't assume that a fixnum can fit in 'int'.
2908
6511acf2 2909 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
2910 exceed INT_MAX.
2911
6511acf2 2912 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
2913 (Fvertical_motion): Don't wrap around LINES values that don't fit
2914 in 'int'. Instead, treat them as extreme values. This is good
2915 enough for windows, which can't have more than INT_MAX lines anyway.
2916
fcb901a7
LMI
29172011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
2918
0f2f6b6d
LMI
2919 * Require libxml/parser.h to avoid compilation warning.
2920
fcb901a7
LMI
2921 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
2922
2923 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
2924 since this reportedly can destroy thread storage.
2925
6e20a0d4
CY
29262011-08-30 Chong Yidong <cyd@stupidchicken.com>
2927
2928 * syntax.c (find_defun_start): Update all cache variables if
2929 exiting early (Bug#9401).
2930
148ae00e
EZ
29312011-08-30 Eli Zaretskii <eliz@gnu.org>
2932
f6cfbd8f
EZ
2933 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
2934
148ae00e
EZ
2935 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
2936 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
2937 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
2938
2939 * term.c (tty_append_glyph): New function.
2940 (produce_stretch_glyph): Static function and its prototype deleted.
2941
a66cfb1c
SM
2942 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
2943 Add prototypes.
148ae00e 2944
c4a07a4c
PE
29452011-08-29 Paul Eggert <eggert@cs.ucla.edu>
2946
2947 * image.c (parse_image_spec): Check for nonnegative, not for positive,
2948 when checking :margin (Bug#9390).
2949 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 2950 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
2951 so that the name doesn't mislead. All uses changed.
2952
6bc8cd65
JB
29532011-08-28 Johan Bockgård <bojohan@gnu.org>
2954
2955 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
2956 set_tty_hooks.
2957
dca4927e
EZ
29582011-08-27 Eli Zaretskii <eliz@gnu.org>
2959
2960 * xdisp.c (move_it_to): Don't bail out early when reaching
2961 position beyond to_charpos, if we are scanning backwards.
2962 (move_it_vertically_backward): When DY == 0, make sure we get to
2963 the first character in the line after the newline.
2964
f2cad773
PE
29652011-08-27 Paul Eggert <eggert@cs.ucla.edu>
2966
2967 * ccl.c: Improve and simplify overflow checking (Bug#9196).
2968 (ccl_driver): Do not generate an out-of-range pointer.
2969 (Fccl_execute_on_string): Remove unnecessary check for
2970 integer overflow, noted by Stefan Monnier in
2971 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
2972 Remove a FIXME that didn't need fixing.
2973 Simplify the newly-introduced buffer reallocation code.
2974
0cae2cdb
JB
29752011-08-27 Juanma Barranquero <lekktu@gmail.com>
2976
2977 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
2978
5fc295a4 29792011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 2980
70c60eb2 2981 Integer and memory overflow issues (Bug#9196).
726e0ab1 2982
d31850da
PE
2983 * doc.c (get_doc_string): Rework so that
2984 get_doc_string_buffer_size is the actual buffer size, rather than
2985 being 1 less than the actual buffer size; this makes xpalloc more
2986 convenient.
2987
a69fbedb
PE
2988 * image.c (x_allocate_bitmap_record, cache_image):
2989 * xselect.c (Fx_register_dnd_atom):
2990 Simplify previous changes by using xpalloc.
2991
fe5c5d37
PE
2992 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
2993 since either will do and ptrdiff_t is convenient with xpalloc.
2994
0065d054
PE
2995 * charset.c (charset_table_size)
2996 (struct charset_sort_data.priority): Now ptrdiff_t.
2997 (charset_compare): Don't overflow if priorities differ greatly.
2998 (Fsort_charsets): Don't assume list length fits in int.
2999 Check for size-calculation overflow when allocating sort data.
3000 (syms_of_charset): Allocate an initial charset table that is
3001 just under 64 KiB, to avoid problems with glibc malloc and mmap.
3002
3003 * cmds.c (internal_self_insert): Check for size-calculation overflow.
3004
3005 * composite.h (struct composition.glyph_len): Now int, not unsigned.
3006 The actual value is always <= INT_MAX, and leaving it unsigned made
3007 overflow checking harder.
3008
3009 * dispextern.h (struct glyph_matrix.rows_allocated)
3010 (struct face_cache.size): Now ptrdiff_t, for convenience in use
3011 with xpalloc. The values are still always <= INT_MAX.
3012
3013 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
3014
3015 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
3016 (SAFE_NALLOCA): New macro.
3017
3018 * region-cache.c (struct boundary.pos, find_cache_boundary)
3019 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
3020 (set_cache_region, invalidate_region_cache)
3021 (revalidate_region_cache, know_region_cache, region_cache_forward)
3022 (region_cache_backward, pp_cache):
3023 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
3024 so that ptrdiff_t * can be passed to xpalloc.
3025 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
3026 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
3027 (pp_cache): Don't assume cache_len fits in int.
3028 * region-cache.h: Adjust extern decls to match.
3029
3030 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
3031 EMACS_INT, since either will do, for xpalloc.
3032
3033 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
3034 (xnmalloc, xnrealloc, xpalloc): New functions.
3035
726e0ab1
PE
3036 * bidi.c (bidi_shelve_header_size): New constant.
3037 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
3038 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
3039
51f30bc5 3040 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
3041 * buffer.c (overlays_at, overlays_in, record_overlay_string)
3042 (overlay_strings):
3043 Don't update size of array until after memory allocation succeeds,
3044 because xmalloc/xrealloc may not return.
0065d054
PE
3045 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
3046 now that we have proper integer overflow checking.
3047 (record_overlay_string, overlay_strings): Catch overflows when
3048 calculating size of overlay_str_buf.
726e0ab1 3049
0065d054
PE
3050 * callproc.c (Fcall_process): Check for size overflow when
3051 calculating size of args2.
3052 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
3053 Normally we prefer signed values, but sticking with ptrdiff_t would
3054 require adding more-complicated checks.
726e0ab1
PE
3055
3056 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
3057 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
3058 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 3059 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
3060
3061 * character.c (Fstring): Check for size-calculation overflow.
3062
3063 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
3064 unnecessary integer overflow. Check for size overflow.
3065 (encode_coding_object): Don't update size until xmalloc succeeds.
3066
3067 * composite.c (get_composition_id): Check for overflow in glyph
3068 length calculations.
3069
3070 Integer and memory overflow fixes for display code.
3071 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
3072 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
3073 (scrolling_window): Check for overflow in size calculations.
3074 (line_draw_cost, realloc_glyph_pool, add_row_entry):
3075 Don't assume glyph table len fits in int.
3076 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
3077 (row_table_size): Now ptrdiff_t, not int.
3078 (scrolling_window): Avoid overflow in size calculations.
3079 Don't update size until allocation succeeds.
3080 * fns.c (concat): Check for overflow in size calculations.
3081 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
3082 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
3083 (NEXT_ALMOST_PRIME_LIMIT): New constant.
3084
3085 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
3086 (get_doc_string): Check for size calculation overflow.
3087 Don't update size until allocation succeeds.
3088 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
3089 EMACS_INT, where ptrdiff_t will do.
3090 (Fsubstitute_command_keys): Check for string overflow.
3091
3092 * editfns.c (set_time_zone_rule): Don't assume environment length
3093 fits in int.
3094 (message_length): Now ptrdiff_t, not int.
3095 (Fmessage_box): Don't update size until allocation succeeds.
3096 Don't assume message length fits in int.
3097 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
3098
0065d054
PE
3099 * emacs.c (main): Do not reallocate argv, since there is a null at
3100 the end that can be overwritten, and this way there's no need to
3101 worry about size-calculation overflow.
3102 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
3103
3104 * eval.c (init_eval_once, grow_specpdl): Don't update size until
3105 alloc succeeds.
3106 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
3107
3108 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
3109 (x_set_scroll_bar_width, x_figure_window_size):
3110 Check for integer overflow.
3111 (x_set_alpha): Do not assume XINT fits in int.
3112
3113 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
3114 This is for the members text_lines, text_cols, total_lines, total_cols,
3115 where the system imposes an 'int' limit.
3116
3117 * fringe.c (Fdefine_fringe_bitmap):
3118 Don't update size until alloc works.
3119
3120 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
3121 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
3122
3123 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
3124 Check for size-calculation overflow.
3125 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
3126 do, as we prefer signed integers.
3127 (id_to_widget.max_size, id_to_widget.used)
3128 (xg_store_widget_in_map, xg_remove_widget_from_map)
3129 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
3130 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
3131 Use and return ptrdiff_t, not int.
3132 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
3133 * gtkutil.h: Change prototypes to match the above.
3134
3135 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
3136 are duplicate now that they've been promoted to lisp.h.
3137 (x_allocate_bitmap_record, x_alloc_image_color)
3138 (make_image_cache, cache_image, xpm_load):
3139 Don't update size until alloc is done.
3140 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
3141 (x_detect_edges):
3256efce 3142 Check for size calculation overflow.
726e0ab1
PE
3143 (ct_colors_allocated_max): New constant.
3144 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
3145 overflow.
3256efce 3146
726e0ab1
PE
3147 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
3148 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
3149 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
3150 Use ptrdiff_t, not int, to count maps.
3151 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
3152 calculations. Don't update size until allocation succeeds.
3153 Redo calculations to avoid overflow.
726e0ab1
PE
3154 * keyboard.h: Change prototypes to match the above.
3155
3156 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
3157 to count maps.
3158 (current_minor_maps): Check for size calculation overflow.
3159 * keymap.h: Change prototypes to match the above.
3160
3161 * lread.c (read1, init_obarray): Don't update size until alloc done.
3162
3163 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
3164 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
3165
726e0ab1
PE
3166 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
3167 Now ptrdiff_t, not int.
3168 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
3169 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
3170
3171 * process.c (Fnetwork_interface_list): Check for overflow
3172 in size calculation.
3173
3174 * region-cache.c (move_cache_gap): Check for size calculation overflow.
3175
3176 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
3177 overflow. Don't bother calling xmalloc when xrealloc will do.
3178
3179 * search.c (Freplace_match): Check for size calculation overflow.
3180 (Fset_match_data): Don't assume list lengths fit in 'int'.
3181
3182 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
3183 for command line length. Do not attempt to address one before the
3184 beginning of an array, as that's not portable.
3185
3186 * term.c (max_frame_lines): Remove; unused.
3187 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
3188 not int.
3189 (encode_terminal_code, calculate_costs): Check for size
3190 calculation overflow.
3191 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
3192 table lengths and related sizes. Don't update size until alloc
3193 done. Redo calculations to avoid overflow.
3194 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
3195
3196 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
3197 subtracting pointers.
3198 (gobble_line): Check for overflow more carefully. Don't update size
3199 until alloc done.
3200
3201 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
3202 Don't update size until alloc done.
3203 Redo size calculations to avoid overflow.
3204 Check for size calculation overflow.
0065d054 3205 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
3206
3207 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
3208 Use ptrdiff_t, not int, for sizes.
3209 (store_mode_line_noprop_char): Don't update size until alloc done.
3210
0065d054
PE
3211 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
3212 Use ptrdiff_t, not int, for sizes.
3213 (Finternal_make_lisp_face, cache_face):
3214 Check for size calculation overflow.
3215 (cache_face): Treat size calculation overflows as if they were
3216 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
3217
3218 * xfns.c (x_encode_text, x_set_name_internal)
3219 (Fx_change_window_property): Use ptrdiff_t, not int, to count
3220 sizes, since they can exceed INT_MAX in size. Check for size
3221 calculation overflow.
3222
0065d054
PE
3223 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
3224 (xg_select): Check for size calculation overflow.
726e0ab1
PE
3225 Don't update size until alloc done.
3226
0065d054 3227 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 3228 as sprintf is limited to int lengths.
1d526e2f 3229
252c5ee1
PE
3230 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
3231 (X_LONG_MIN): New macros.
864d7ce7
PE
3232 Use them to make the following changes clearer.
3233 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
3234 This change doesn't affect the value now, but it may help remind
3235 future maintainers not to raise the value too much later.
3236 (SELECTION_QUANTUM): Remove, replacing with ...
3237 (selection_quantum): ... new function, which avoids overflow.
3238 All uses changed.
3239 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
3240 assumption that selection length fits in 'int'.
3241 (x_reply_selection_request, x_handle_selection_request)
3242 (x_get_window_property, receive_incremental_selection)
3243 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
3244 (lisp_data_to_selection_data, clean_local_selection_data):
3245 Use ptrdiff_t, not int, to record length of selection.
3246 (x_reply_selection_request, x_get_window_property)
3247 (receive_incremental_selection, x_property_data_to_lisp):
3248 Redo calculations to avoid overflow.
3249 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 3250 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
3251 something.
3252 (x_get_window_property, receive_incremental_selection)
3253 (lisp_data_to_selection_data, x_property_data_to_lisp):
3254 Check for size-calculation overflow.
3255 (x_get_window_property, receive_incremental_selection)
3256 (lisp_data_to_selection_data, Fx_register_dnd_atom):
3257 Don't store size until memory allocation succeeds.
3258 (x_get_window_property): Plug memory leak on memory exhaustion.
3259 Don't double-block input; malloc is safe here. Don't assume 2**34
3260 - 4 fits in unsigned long. Add an xassert to check
3261 XGetWindowProperty overflow. Be more careful about overflow
3262 calculations, and distinguish size from memory overflow better.
3263 (receive_incremental_selection): When tracing, don't assume
3264 unsigned int is less than INT_MAX.
3265 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
3266 harmful) conversions of unsigned short to int.
3267 (lisp_data_to_selection_data): Don't assume that integers
3268 in the range -65535 through -1 fit in an X unsigned short.
3269 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
3270 result parameters unless successful. Rely on cons_to_unsigned
3271 to report problems with elements; the old code wasn't right anyway.
3272 (x_check_property_data): Check for int overflow; we cannot use
3273 a wider type due to X limits.
3274 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
3275
726e0ab1 3276 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 3277
0065d054
PE
3278 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
3279 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
3280 (x_color_cells): Don't store size until memory allocation succeeds.
3281 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 3282 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
3283 (x_term_init): Don't assume length fits in int (sprintf is limited
3284 to int size).
bc18e09d 3285
ebfa62c0
PE
3286 Use ptrdiff_t for composition IDs.
3287 * character.c (lisp_string_width):
3288 * composite.c (composition_table_size, n_compositions)
3289 (get_composition_id, composition_gstring_from_id):
3290 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
3291 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
3292 * window.c (Frecenter):
3293 Use ptrdiff_t, not int, for composition IDs.
3294 * composite.c (get_composition_id): Check for integer overflow.
3295 * composite.h: Adjust prototypes to match the above changes.
3296
d3411f89
PE
3297 Use ptrdiff_t for hash table indexes.
3298 * category.c (hash_get_category_set):
3299 * ccl.c (ccl_driver):
3300 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
3301 * coding.c (coding_system_charset_list, detect_coding_system):
3302 * coding.h (struct coding_system.id):
3303 * composite.c (get_composition_id, gstring_lookup_cache):
3304 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
3305 * image.c (xpm_get_color_table_h):
3306 * lisp.h (hash_lookup, hash_put):
3307 * minibuf.c (Ftest_completion):
3308 Use ptrdiff_t for hash table indexes, not int (which is too
3309 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
3310 32-bit --with-wide-int hosts).
3311
e097a6fa
PE
3312 * charset.c (Fdefine_charset_internal): Check for integer overflow.
3313 Add a FIXME comment about memory leaks.
3314 (syms_of_charset): Don't assume xmalloc returns.
3315
5637687f
PE
3316 Don't assume that stated character widths fit in int.
3317 * character.c (Fchar_width, c_string_width, lisp_string_width):
3318 * character.h (CHAR_WIDTH):
3319 * indent.c (MULTIBYTE_BYTES_WIDTH):
3320 Use sanitize_char_width to avoid undefined and/or bad behavior
3321 with outlandish widths.
a66cfb1c 3322 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
3323 now that we have two such functions. All uses changed.
3324 (sanitize_char_width): New inline function.
3325
a2271ba2
PE
3326 Don't assume that tab-width fits in int.
3327 * character.h (sanitize_width): New inline function.
3328 (SANE_TAB_WIDTH): New macro.
3329 (ASCII_CHAR_WIDTH): Use it.
3330 * indent.c (sane_tab_width): Remove. All uses replaced by
3331 SANE_TAB_WIDTH (current_buffer).
3332 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
3333
18c52557
PE
3334 * fileio.c: Integer overflow issues with file modes.
3335 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
3336
caeeedc1
PE
3337 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
3338 Remove unreachable code.
3339 (read_hex, load_charset_map_from_file): Check for integer overflow.
3340
6df6ae42 3341 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
3342 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
3343 (x_send_scroll_bar_event): Likewise. Check that the size does not
3344 exceed limits imposed by XClientMessageEvent, as well as the usual
3345 ptrdiff_t and size_t limits.
3346
b13995db
PE
3347 * keyboard.c: Overflow, signedness and related fixes.
3348 (make_lispy_movement): Use same integer type in forward decl
3349 that is used in the definition.
3350 (read_key_sequence, keyremap_step):
3351 Change bufsize argument back to int, undoing my 2011-03-30 change.
3352 We prefer signed types, and int is wide enough here.
3353 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
3354 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
3355 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
3356 length, not size_t. Use ptrdiff_t for index, not int.
3357 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
3358 possibility of integer overflow.
3359
13464394
PE
3360 Overflow, signedness and related fixes for images.
3361
3362 * dispextern.h (struct it.stack[0].u.image.image_id)
3363 (struct_it.image_id, struct image.id, struct image_cache.size)
3364 (struct image_cache.used, struct image_cache.ref_count):
3365 * gtkutil.c (update_frame_tool_bar):
3366 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
3367 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
3368 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
3369 * nsmenu.m (update_frame_tool_bar):
3370 * xdisp.c (calc_pixel_width_or_height):
3371 * xfns.c (image_cache_refcount):
3372 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
3373 on typical 64-bit hosts.
3374
3375 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
3376 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
3377 Omit unnecessary casts to int.
3378 (parse_image_spec): Check that integers fall into 'int' range
3379 when the callers expect that.
3380 (image_ascent): Redo ascent calculation to avoid int overflow.
3381 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
3382 (lookup_image): Remove unnecessary tests.
3383 (xbm_image_p): Locals are now of int, not EMACS_INT,
3384 since parse_image_check makes sure they fit into int.
3385 (png_load, gif_load, svg_load_image):
3386 Prefer int to unsigned where either will do.
3387 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
3388 old tiff_error_handler and tiff_warning_handler.
3389 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
3390 stack buffer overflows. It uses only the features of vsnprintf
3391 that are common to both POSIX and native Microsoft.
3392 (tiff_error_handler, tiff_warning_handler): Use it.
3393 (tiff_load, gif_load, imagemagick_load_image):
3394 Don't assume :index value fits in 'int'.
3395 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
3396 (imagemagick_load_image): Check that crop parameters fit into
3397 the integer types that MagickCropImage accepts. Don't assume
3398 Vimagemagick_render_type has a nonnegative value. Don't assume
3399 size_t fits in 'long'.
3400 (gs_load): Use printmax_t to print the widest integers possible.
3401 Check for integer overflow when computing image height and width.
3402
c11821d4
EZ
34032011-08-26 Eli Zaretskii <eliz@gnu.org>
3404
3405 * xdisp.c (redisplay_window): Don't force window start if point
3406 will be invisible in the resulting window. (Bug#9324)
3407
0c95fcf7
EZ
34082011-08-25 Eli Zaretskii <eliz@gnu.org>
3409
3410 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
3411 the display spec is of the form `(space ...)'.
3412 (handle_display_spec): Return the value returned by
3413 handle_single_display_spec, not just 1 or zero.
3414 (handle_single_display_spec): If the display spec is of the form
3415 `(space ...)', and specifies display in the text area, return 2
3416 rather than 1.
fee65a97 3417 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
3418 accurately, and prefer exact match for point under bidi.
3419 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
3420
3421 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
3422 into disp_prop; all users changed.
3423
3424 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
3425 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
3426 for the text covered by the display property.
3427
e4ed06f1
CY
34282011-08-25 Chong Yidong <cyd@stupidchicken.com>
3429
3430 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
3431 Change return value to nil.
3432 (Frecord_buffer): Delete unused function.
3433
f67cdd7f
EZ
34342011-08-24 Eli Zaretskii <eliz@gnu.org>
3435
5980d4c6
EZ
3436 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
3437 buffers, return left-to-right.
8610fe8b
EZ
3438 (set_cursor_from_row): Consider candidate row a win if its glyph
3439 represents a newline and point is on that newline. Fixes cursor
3440 positioning on the newline at EOL of R2L text within L2R
3441 paragraph, and vice versa.
3442 (try_cursor_movement): Check continued rows, in addition to
3443 continuation rows. Fixes unwarranted scroll when point enters a
3444 continued line of R2L text within an L2R paragraph, or vice versa.
3445 (cursor_row_p): Consider the case of point being equal to
3446 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
3447 from the end of a short line to the beginning of a continued line
3448 of R2L text within L2R paragraph.
3449 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
3450 composed characters.
5980d4c6 3451
f67cdd7f
EZ
3452 * bidi.c (bidi_check_type): Use xassert.
3453 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
3454 members.
3455
bca633fb
EZ
34562011-08-23 Eli Zaretskii <eliz@gnu.org>
3457
3458 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
3459 a character.
3460
4a5885a7
CY
34612011-08-23 Chong Yidong <cyd@stupidchicken.com>
3462
3463 * nsfont.m (ns_otf_to_script): Fix typo.
3464
0902a04e
KH
34652011-08-22 Kenichi Handa <handa@m17n.org>
3466
3467 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
3468 extra slot even if the purpose is char-code-property-table.
3469
1a2e6670
EZ
34702011-08-23 Eli Zaretskii <eliz@gnu.org>
3471
8ddde651
EZ
3472 * xdisp.c (redisplay_window): When computing centering_position,
3473 account for the height of the header line. (Bug#8874)
3474
425cc014
EZ
3475 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
3476 instead of CHAR_TO_BYTE. Fixes a crash when a completion
3477 candidate is selected by the mouse, and that candidate has a
3478 composed character under the mouse.
3479
1a2e6670
EZ
3480 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
3481 coordinates reported by pos-visible-in-window-p for a composed
3482 character in column zero.
3483
8b76d6f8
SM
34842011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
3485
3486 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
3487
dac347dd
EZ
34882011-08-22 Eli Zaretskii <eliz@gnu.org>
3489
3490 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
3491 consider it a hit if to_charpos is anywhere in the range of the
3492 composed buffer positions.
3493
e013fb34
CY
34942011-08-22 Chong Yidong <cyd@stupidchicken.com>
3495
3496 * image.c (gif_load): Don't assume that each subimage has the same
3497 dimensions as the base image. Handle disposal method that is
3498 "undefined" by the gif spec (Bug#9335).
3499
bd1ba3e8
CY
35002011-08-20 Chong Yidong <cyd@stupidchicken.com>
3501
3502 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 3503 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 3504
54a1215b
EZ
35052011-08-19 Eli Zaretskii <eliz@gnu.org>
3506
823564e5
EZ
3507 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
3508 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
3509 from an Org mode buffer to a Speedbar frame.
3510
54a1215b
EZ
3511 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
3512 a composition, take its buffer position from IT->cmp_it.charpos.
3513 Fixes cursor positioning at the beginning of a line that begins
3514 with a composed character.
3515
9778ebcc
EZ
35162011-08-18 Eli Zaretskii <eliz@gnu.org>
3517
0be6ee06
EZ
3518 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
3519 character bidirectional type, use STRONG_L instead. Fixes crashes
3520 in a buffer produced by `describe-categories'.
3521
9778ebcc
EZ
3522 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
3523 members before the level stack, so they would be saved and
3524 restored when copying iterator state. Fixes incorrect reordering
3525 around TABs covered by display properties.
3526
156bffbe
AS
35272011-08-18 Andreas Schwab <schwab@linux-m68k.org>
3528
6b02f655 3529 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 3530
72ad093b
CY
35312011-08-17 Chong Yidong <cyd@stupidchicken.com>
3532
3533 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
3534 (internal_condition_case_2, internal_condition_case_n):
3535 Remove unnecessary aborts (Bug#9081).
72ad093b 3536
35774242
EZ
35372011-08-17 Eli Zaretskii <eliz@gnu.org>
3538
3539 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
3540 has no `load' handler, try opening the file locally. (Bug#9311)
3541
db76dd85
KB
35422011-08-16 Ken Brown <kbrown@cornell.edu>
3543
3544 * gmalloc.c: Expand comment.
3545
b215eee5
EZ
35462011-08-16 Eli Zaretskii <eliz@gnu.org>
3547
3548 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
3549 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
3550
a4579d33
KB
35512011-08-16 Ken Brown <kbrown@cornell.edu>
3552
3553 Fix memory allocation problems in Cygwin build (Bug#9273).
3554
3555 * unexcw.c ( __malloc_initialized): Declare external variable.
3556 (fixup_executable): Force the dumped emacs to reinitialize malloc.
3557
8b76d6f8
SM
3558 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
3559 New variables.
a4579d33
KB
3560 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
3561 dumped emacs.
3562 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
3563 in the static heap.
3564 [CYGWIN] (special_realloc): New function.
3565 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
3566 requests to realloc storage in the static heap.
3567
3ebec551
PE
35682011-08-15 Paul Eggert <eggert@cs.ucla.edu>
3569
3570 * bidi.c (bidi_initialize): Remove unused local.
3571
9fd8be00
EZ
35722011-08-15 Eli Zaretskii <eliz@gnu.org>
3573
6b02f655
SM
3574 * bidimirror.h:
3575 * biditype.h: Remove file.
3576 * makefile.w32-in ($(BLD)/bidi.$(O)):
3577 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
3578
3579 * dispextern.h: Fix a typo in the comment to bidi_type_t.
3580
3581 * chartab.c: Improve commentary for the uniprop_table API.
3582
32413314
EZ
3583 * bidi.c (bidi_paragraph_init): Support zero value of
3584 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
3585 (bidi_initialize): Use uniprop_table instead of including
3586 biditype.h and bidimirror.h.
32413314 3587
9fd8be00
EZ
3588 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
3589 coordinates of the iterator when restoring from ppos_it.
3590 (Bug#9296)
3591
5cf2b69b
KH
35922011-08-14 Kenichi Handa <handa@m17n.org>
3593
3594 * process.c (create_process): Call setup_process_coding_systems
72ad093b 3595 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 3596
daf17d00
EZ
35972011-08-14 Eli Zaretskii <eliz@gnu.org>
3598
3599 * xdisp.c (move_it_in_display_line_to): Don't invoke
3600 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
3601 ppos_it. Fixes vertical cursor motion when line beginning is
3602 covered by an image. (Bug#9296)
3603
08e3161a
JD
36042011-08-14 Jan Djärv <jan.h.d@swipnet.se>
3605
3606 * nsterm.h (ns_run_ascript): Declare.
3607 (NSAPP_DATA2_RUNASSCRIPT): Define.
3608
3609 * nsfns.m (as_script, as_result, as_status): New static variables.
3610 (ns_run_ascript): New function.
5e617bc2 3611 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
3612 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
3613 the event loop. Get status from as_status (Bug#7276).
3614
3615 * nsterm.m (sendEvent): If event is NSApplicationDefined and
3616 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
3617 the event loop (Bug#7276).
3618
a3720aa2
AS
36192011-08-14 Andreas Schwab <schwab@linux-m68k.org>
3620
3621 * gnutls.c (QCgnutls_bootprop_priority)
3622 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
3623 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
3624 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
3625 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
3626 (QCgnutls_bootprop_verify_hostname_error)
3627 (QCgnutls_bootprop_callbacks_verify): Rename from
3628 Qgnutls_bootprop_..., all uses changed.
3629
3630 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
3631 uses changed.
3632
0a0d27fb
PE
36332011-08-14 Paul Eggert <eggert@cs.ucla.edu>
3634
19d5c50c
PE
3635 * xfaces.c (Qframe_set_background_mode): Now static.
3636 * dispextern.h (Qframe_set_background_mode): Remove decl.
3637
0a0d27fb
PE
3638 * process.c (Fnetwork_interface_info): Declare local only if needed.
3639
377538cb
JD
36402011-08-13 Jan Djärv <jan.h.d@swipnet.se>
3641
3642 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
3643 (Fnetwork_interface_list): Allocate in increments of bytes instead
3644 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
3645 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
3646 sockaddr.
3647 (struct ifflag_def): notrailers is smart on OSX.
3648 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
3649 Get hardware address with getifaddrs if available.
3650
08fff70c
EZ
36512011-08-12 Eli Zaretskii <eliz@gnu.org>
3652
3653 * xdisp.c (iterate_out_of_display_property): xassert that
3654 IT->position is set to within IT->object's boundaries. Break from
3655 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
3656 when IT->position is set up wrongly due to some bug.
3657 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
3658 (push_display_prop): Allow GET_FROM_STRING as IT->method on
3659 entry. Force push_it to save on the stack the current
3660 buffer/string position, to be restored by pop_it. Fix flags in
3661 the iterator structure wrt the object coming from a display
3662 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
3663 properties. (Bug#9284)
3664
7be1c708 36652011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 3666
7be1c708
CY
3667 * fontset.c (fontset_get_font_group): Add proper type checks.
3668 (Bug#9172)
aac0c6e3 3669
7be1c708 36702011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 3671
7be1c708
CY
3672 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
3673 and LC_VERSION_MIN_MACOSX.
3674 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
3675 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 3676
97bb72a6
EZ
36772011-08-08 Eli Zaretskii <eliz@gnu.org>
3678
3679 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
3680 no-display-properties-and-no-overlays under bidi display.
3681 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 3682 properties and overlays.
97bb72a6 3683
d5617611
CY
36842011-08-08 Chong Yidong <cyd@stupidchicken.com>
3685
37e11a63
CY
3686 * editfns.c (Fset_time_zone_rule): Document relationship with the
3687 setenv function.
3688
d5617611
CY
3689 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
3690 the font entity extracted from the cache (Bug#8109).
3691
58872834
CY
36922011-08-07 Chong Yidong <cyd@stupidchicken.com>
3693
3694 * composite.c (autocmp_chars): Don't reset point. That is done by
3695 restore_point_unwind (Bug#5984).
3696
75bfc667
JL
36972011-08-07 Juri Linkov <juri@jurta.org>
3698
3699 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
3700 to show the arg `TIME' instead of `TIMEVAL'.
3701
d1410150
EZ
37022011-08-06 Eli Zaretskii <eliz@gnu.org>
3703
3704 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
3705 display property strides EOL and includes a newline, as in
3706 longlines-mode. (Bug#9254)
75b771e4
EZ
3707 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
3708 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
3709
3710 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
3711 is non-zero, even if the data buffer is NULL. Fixes a crash in
3712 vertical-motion with longlines-mode. (Bug#9254)
3713
35928349
EZ
37142011-08-05 Eli Zaretskii <eliz@gnu.org>
3715
ec7cc85b
EZ
3716 * bidi.c <bidi_cache_total_alloc>: Now static.
3717 (bidi_initialize): Initialize bidi_cache_total_alloc.
3718
8b76d6f8 3719 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
3720 cache. (Bug#9221)
3721
3722 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
3723 amount allocated this far in `bidi_cache_total_alloc'.
3724 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
3725 non-zero, only free the data buffer without restoring the cache
3726 contents. All callers changed.
3727
3728 * dispextern.h (bidi_unshelve_cache): Update prototype.
3729
3730 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
3731 (move_it_in_display_line, move_it_to)
3732 (move_it_vertically_backward, move_it_by_lines): Replace the call
3733 to xfree to an equivalent call to bidi_unshelve_cache.
3734 (move_it_in_display_line_to): Fix logic of returning
412b6358 3735 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 3736
e2e2423b
EZ
37372011-08-05 Eli Zaretskii <eliz@gnu.org>
3738
3739 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
3740 came from a string character with a `cursor' property. (Bug#9229)
3741
ae9e757a
JD
37422011-08-04 Jan Djärv <jan.h.d@swipnet.se>
3743
3744 * Makefile.in (LIB_PTHREAD): New variable.
3745 (LIBES): Add LIB_PTHREAD (Bug#9216).
3746
3747 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
3748 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
3749
213bd7f2
AS
37502011-08-04 Andreas Schwab <schwab@linux-m68k.org>
3751
6b02f655 3752 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 3753
99aaf75f
JD
37542011-08-04 Jan Djärv <jan.h.d@swipnet.se>
3755
3756 * xterm.c (x_find_topmost_parent): New function.
3757 (x_set_frame_alpha): Find topmost parent window with
3758 x_find_topmost_parent and set the property there also (bug#9181).
3759 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
3760
c74e9d86
PE
37612011-08-04 Paul Eggert <eggert@cs.ucla.edu>
3762
3763 * callproc.c (Fcall_process): Avoid vfork clobbering
3764 the local vars buffer, coding_systems, current_dir.
3765
640c8776
SM
37662011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
3767
3768 * keymap.c (Fmake_composed_keymap): Move to subr.el.
3769
f26d0e4c
PE
37702011-08-03 Paul Eggert <eggert@cs.ucla.edu>
3771
8a10d76c
PE
3772 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
3773 so that it is not optimized away.
3774
f26d0e4c
PE
3775 * xdisp.c (compute_display_string_pos): Remove unused local.
3776
55439c61
EZ
37772011-08-02 Eli Zaretskii <eliz@gnu.org>
3778
3779 Fix slow cursor motion and scrolling in large buffers with
3780 selective display, like Org Mode buffers. (Bug#9218)
3781
3782 * dispextern.h (struct bidi_it): New member disp_prop_p.
3783
3784 * xdisp.c: Remove one-slot cache of display string positions.
3785 (compute_display_string_pos): Accept an additional argument
5e617bc2 3786 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
3787 for a display string or property. If found, set DISP_PROP_P
3788 non-zero.
3789
3790 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
3791 DISP_PROP_P, and pass it to compute_display_string_pos.
3792 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
3793 non-zero. All callers of bidi_fetch_char changed.
3794
fb33fa43
SM
37952011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
3796
3797 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
3798
b099e063
DM
37992010-12-03 Don March <don@ohspite.net>
3800
3801 * keymap.c (Fdefine_key): Fix non-prefix key error message when
3802 last character M-[char] is translated to ESC [char] (bug#7541).
3803
5cc7f7af
KH
38042011-08-02 Kenichi Handa <handa@m17n.org>
3805
d0fffa3f 3806 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
3807
3808 * chartab.c (uniprop_table): Make it non-static.
3809
525d5e6e
EZ
38102011-08-01 Eli Zaretskii <eliz@gnu.org>
3811
3812 * xdisp.c (forward_to_next_line_start): Accept additional argument
3813 BIDI_IT_PREV, and store into it the state of the bidi iterator had
3814 on the newline.
3815 (reseat_at_next_visible_line_start): Use the bidi iterator state
3816 returned by forward_to_next_line_start to restore the state of
3817 it->bidi_it after backing up to previous newline. (Bug#9212)
3818
31011111
AS
38192011-07-30 Andreas Schwab <schwab@linux-m68k.org>
3820
3821 * regex.c (re_comp): Protoize.
3822 (re_exec): Fix return type.
3823 (regexec): Fix type of `ret'. (Bug#9203)
3824
476371c4
PE
38252011-07-28 Paul Eggert <eggert@cs.ucla.edu>
3826
e5d76069
PE
3827 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
3828 This is needed if max-image-size is a floating-point number.
3829
9a79b20c
AS
38302011-07-28 Andreas Schwab <schwab@linux-m68k.org>
3831
3832 * print.c (print_object): Print empty symbol as ##.
3833
3834 * lread.c (read1): Read ## as empty symbol.
3835
d8c2fa78
AA
38362011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
3837
3838 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
3839 setting frame foreground color (Bug#9175).
3840 (x_set_background_color): Likewise.
3841
ffe57a7a
AA
3842 * nsmenu.m (-setText): Size tooltip dimensions precisely to
3843 contents (Bug#9176).
3844 (EmacsTooltip -init): Remove bezels and add shadows to
3845 tooltip windows.
3846
bf3492a5
AA
3847 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
3848 or scroll bar (Bug#8470).
3849
d55e9c53
AA
3850 * nsfont.m (nsfont_open): Remove assignment to voffset and
3851 unnecessary vars hshink, expand, hd, full_height, min_height.
3852 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
3853
3854 * nsterm.h (nsfont_info): Remove voffset field.
3855
d8c2fa78 38562011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
3857
3858 Implement strike-through and overline on NextStep (Bug#8863).
3859
3860 * nsfont.m (nsfont_open): Use underline position provided by font,
3861 instead of hard-coded value of 2.
3862 (nsfont_draw): Call ns_draw_text_decoration instead.
3863
3864 * nsterm.h: Add declaration for ns_draw_text_decoration.
3865
3866 * nsterm.m (ns_draw_text_decoration): New function for drawing
3867 underline, overline, and strike-through.
3868 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
3869 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 3870 accommodate underlining, etc.
4843aac3 3871
4cc60b9b
EZ
38722011-07-28 Eli Zaretskii <eliz@gnu.org>
3873
bc7ece87
EZ
3874 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
3875 default.
4cc60b9b 3876
476371c4
PE
38772011-07-28 Paul Eggert <eggert@cs.ucla.edu>
3878
66606eea
PE
3879 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
3880 Without this fix, if a signal arrives just after memory fills up,
3881 'malloc' might be invoked reentrantly.
3882
476371c4
PE
3883 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
3884 In other words, assume that every image size is allowed, on non-X
3885 hosts. This assumption is probably wrong, but it lets Emacs compile.
3886
f3fcc40d
AS
38872011-07-28 Andreas Schwab <schwab@linux-m68k.org>
3888
3889 * regex.c (re_iswctype): Convert return values to boolean.
3890
350c992f
EZ
38912011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
3892
3893 * xdisp.c (compute_display_string_pos): Don't use cached display
3894 string position if the buffer had its restriction changed.
3895 (Bug#9184)
3896
5266b4bb
PE
38972011-07-28 Paul Eggert <eggert@cs.ucla.edu>
3898
3899 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
3900
2573a837 39012011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 3902
41f55ccd 3903 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 3904
39e378da
PE
3905 * bidi.c: Integer size and overflow fixes.
3906 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
3907 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
3908 (bidi_cache_find_level_change, bidi_cache_ensure_space)
3909 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
3910 (bidi_find_other_level_edge):
3911 Use ptrdiff_t instead of EMACS_INT where either will do.
3912 This works better on 32-bit hosts configured --with-wide-int.
3913 (bidi_cache_ensure_space): Check for size-calculation overflow.
3914 Use % rather than repeated addition, for better worst-case speed.
3915 Don't set bidi_cache_size until after xrealloc returns, because it
3916 might not return.
3917 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
3918 (bidi_cache_ensure_space): Also check that the bidi cache size
3919 does not exceed that of the largest Lisp string or buffer. See Eli
3920 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 3921
5e927815
PE
3922 * alloc.c (__malloc_size_t): Remove.
3923 All uses replaced by size_t. See Andreas Schwab's note
3924 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
3925
ca4aa935
PE
3926 * image.c: Improve checking for integer overflow.
3927 (check_image_size): Assume that f is nonnull, since
3928 it is always nonnull in practice. This is one less thing to
3929 worry about when checking for integer overflow later.
3930 (x_check_image_size): New function, which checks for integer
3931 overflow issues inside X.
3932 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
3933 This removes the need for a memory_full check.
3934 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
3935 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
3936 (xbm_read_bitmap_data): Change locals back to 'int', since
3937 their values must fit in 'int'.
3938 (xpm_load_image, png_load, tiff_load):
3939 Invoke x_create_x_image_and_pixmap earlier,
3940 to avoid much needless work if the image is too large.
3941 (tiff_load): Treat overly large images as if
3942 x_create_x_image_and_pixmap failed, not as malloc failures.
3943 (gs_load): Use x_check_image_size.
3944
5f8f9cc2
PE
3945 * gtkutil.c: Omit integer casts.
3946 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
3947 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
3948
5adf60bc
PE
3949 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
3950
c8907a93
PE
3951 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
3952 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
3953 would wrongly return t on a 64-bit host.
3954
e3c25c68
PE
3955 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
3956 The plain *_OVERFLOW macros run afoul of GCC bug 49705
3957 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
3958 and therefore cause GCC to emit a bogus diagnostic in some cases.
3959
3f791afe
PE
3960 * image.c: Integer signedness and overflow and related fixes.
3961 This is not an exhaustive set of fixes, but it's time to
3962 record what I've got.
3963 (lookup_pixel_color, check_image_size): Remove redundant decls.
3964 (check_image_size): Don't assume that arbitrary EMACS_INT values
3965 fit in 'int', or that arbitrary 'double' values fit in 'int'.
3966 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
3967 (tiff_load, imagemagick_load_image):
3968 Check for overflow in size calculations.
3969 (x_create_x_image_and_pixmap): Remove unnecessary test for
3970 xmalloc returning NULL; that can't happen.
3971 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
3972 (xpm_color_bucket): Use better integer hashing function.
3973 (xpm_cache_color): Don't possibly over-allocate memory.
3974 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
3975 (gif_memory_source):
3976 Use ptrdiff_t, not int or size_t, to record sizes.
3977 (png_load): Don't assume values greater than 2**31 fit in 'int'.
3978 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
3979 either works, as we prefer signed integers.
3980 (tiff_read_from_memory, tiff_write_from_memory):
3981 Return tsize_t, not size_t, since that's what the TIFF API wants.
3982 (tiff_read_from_memory): Don't fail simply because the read would
3983 go past EOF; instead, return a short read.
3984 (tiff_load): Omit no-longer-needed casts.
3985 (Fimagemagick_types): Don't assume size fits into 'int'.
3986
3cc5a532
PE
3987 Improve hashing quality when configured --with-wide-int.
3988 * fns.c (hash_string): New function, taken from sxhash_string.
3989 Do not discard information about ASCII character case; this
3990 discarding is no longer needed.
3991 (sxhash-string): Use it. Change sig to match it. Caller changed.
3992 * lisp.h: Declare it.
3993 * lread.c (hash_string): Remove, since we now use fns.c's version.
3994 The fns.c version returns a wider integer if --with-wide-int is
3995 specified, so this should help the quality of the hashing a bit.
3996
b312a492
PE
3997 * emacs.c: Integer overflow minor fix.
3998 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
3999 Define only if GNU_LINUX.
4000 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
4001
dfd153ae
PE
4002 * dispnew.c: Integer signedness and overflow fixes.
4003 Remove unnecessary forward decls, that were a maintenance hassle.
4004 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
4005 All uses changed.
4006 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
4007 (scrolling_window): Use ptrdiff_t, not int, for byte count.
4008 (prepare_desired_row, line_draw_cost):
4009 Use int, not unsigned, where either works.
4010 (save_current_matrix, restore_current_matrix):
4011 Use ptrdiff_t, not size_t, where either works.
4012 (init_display): Check for overflow more accurately, and without
4013 relying on undefined behavior.
4014
a81d11a3
PE
4015 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
4016 Remove, replacing with the new symbols in lisp.h. All uses changed.
4017 * fileio.c (make_temp_name):
4018 * filelock.c (lock_file_1, lock_file):
4019 * xdisp.c (message_dolog):
4020 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
4021 Use pMd etc. instead.
4022 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
4023 replacing the pWIDE etc. symbols removed from editfns.c.
4024
3300e6fd
PE
4025 * keyboard.h (num_input_events): Now uintmax_t.
4026 This is (very slightly) less likely to mess up due to wraparound.
4027 All uses changed.
4028
fd05c7e9
PE
4029 * buffer.c: Integer signedness fixes.
4030 (alloc_buffer_text, enlarge_buffer_text):
4031 Use ptrdiff_t rather than size_t when either will do, as we prefer
4032 signed integers.
4033
903fe15d
PE
4034 * alloc.c: Integer signedness and overflow fixes.
4035 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
4036 (__malloc_size_t): Default to size_t, not to int.
4037 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
4038 (Fgarbage_collect, mark_object_loop_halt, mark_object):
4039 Prefer ptrdiff_t to size_t when either would do, as we prefer
4040 signed integers.
4041 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
4042 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
4043 Now const. Initialize with values that are in range even if char
4044 is signed.
4045 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
4046 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
4047 These functions do the right thing with sizes > 2**32.
4048 (check_depth): Now ptrdiff_t, not int.
4049 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
4050 Adjust to new way of storing sizes. Check for size overflow bugs
4051 in rest of code.
4052 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
4053 slightly wrong anyway, as it missed one instance of
4054 XMALLOC_OVERRUN_CHECK_OVERHEAD.
4055 (refill_memory_reserve): Omit needless cast to size_t.
4056 (mark_object_loop_halt): Mark as externally visible.
4057
ac82cc6a
PE
4058 * xselect.c: Integer signedness and overflow fixes.
4059 (Fx_register_dnd_atom, x_handle_dnd_message):
4060 Use ptrdiff_t, not size_t, since we prefer signed.
4061 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
4062 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
4063 x_dnd_atoms_size and x_dnd_atoms_length.
4064
c2d1e36d
PE
4065 * doprnt.c: Prefer signed to unsigned when either works.
4066 * eval.c (verror):
4067 * doprnt.c (doprnt):
4068 * lisp.h (doprnt):
4069 * xdisp.c (vmessage):
4070 Use ptrdiff_t, not size_t, when using or implementing doprnt,
4071 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
4072 prefer signed arithmetic to avoid comparison confusion.
4073 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
4074 but is a bit tricky.
4075
0e926e56
PE
4076 Assume freestanding C89 headers, string.h, stdlib.h.
4077 * data.c, doprnt.c, floatfns.c, print.c:
4078 Include float.h unconditionally.
4079 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
4080 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
4081 * regex.c: Likewise for stddef.h, string.h.
4082 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
4083 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
4084 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
4085 (STDC_HEADERS): Remove obsolete defines.
4086 * sysdep.c: Include limits.h unconditionally.
4087
9cfdb3ec
PE
4088 Assume support for memcmp, memcpy, memmove, memset.
4089 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
4090 * regex.c (memcmp, memcpy):
4091 Remove; we assume C89 now.
4092
4093 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
4094 (__malloc_safe_bcopy): Remove; no longer needed.
4095
cf950e6b 4096 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
4097 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
4098 well either way, and we prefer signed to unsigned.
4099
dbf38e02
LMI
41002011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
4101
4102 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
4103 closes the connection while we're reading (bug#9182).
4104
d6f0886c 41052011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 4106
d6f0886c
JD
4107 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
4108 are specified (Bug#9168).
24e0f6b1 4109
2eb1f9e6
PE
41102011-07-25 Paul Eggert <eggert@cs.ucla.edu>
4111
4112 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
4113 Found by GCC static checking and --with-wide-int on a 32-bit host.
4114
22381272 41152011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
4116
4117 * xdisp.c (compute_display_string_pos): Fix logic of caching
4118 previous display string position. Initialize cached_prev_pos to
4119 -1. Fixes slow-down at the beginning of a buffer.
4120
f25e39b4
EZ
41212011-07-24 Eli Zaretskii <eliz@gnu.org>
4122
4123 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
4124 for attrs[LFACE_FONTSET_INDEX].
4125
04c4b52e
PE
41262011-07-23 Paul Eggert <eggert@cs.ucla.edu>
4127
4128 * xml.c (parse_region): Remove unused local
4129 that was recently introduced.
4130
c1734fbd
EZ
41312011-07-23 Eli Zaretskii <eliz@gnu.org>
4132
be18c5a5
EZ
4133 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
4134 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
4135
c1734fbd
EZ
4136 * xdisp.c (move_it_in_display_line_to): Record the best matching
4137 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
4138 exit if none of the characters scanned was an exact match.
4139 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
4140 when exact match is impossible due to invisible text, and the
4141 lines are truncated.
4142
a258d627
JD
41432011-07-23 Jan Djärv <jan.h.d@swipnet.se>
4144
4145 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
4146 for OSX >= 10.7.
4147
b6d5a689
EZ
41482011-07-22 Eli Zaretskii <eliz@gnu.org>
4149
0f74f785
EZ
4150 Fix a significant slow-down of cursor motion with C-n, C-p,
4151 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
4152 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 4153 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
4154 (next_element_from_buffer): Call compute_stop_pos_backwards to
4155 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
4156 base_level_stop.
4157 (reseat): Don't look for prev_stop, as that could mean a very long
4158 run.
4159 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
4160 <cached_disp_overlay_modiff>: Cache for last found display string
4161 position.
551918c1 4162 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
4163 about the same buffer in the same area of character positions, and
4164 the buffer wasn't changed since the time the display string
4165 position was cached.
551918c1 4166
b2d0c91a
EZ
41672011-07-22 Eli Zaretskii <eliz@gnu.org>
4168
4169 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
4170 is an integer, which is important for empty lines. (Bug#9149)
4171
043604ee
CY
41722011-07-22 Chong Yidong <cyd@stupidchicken.com>
4173
4174 * frame.c (Fmodify_frame_parameters): In tty case, update the
4175 default face if necessary (Bug#4238).
4176
da4adb04
CY
41772011-07-21 Chong Yidong <cyd@stupidchicken.com>
4178
4179 * editfns.c (Fstring_to_char): No need to explain what a character
4180 is in the docstring (Bug#6576).
4181
9abd0532
LMI
41822011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
4183
4184 * xml.c (parse_region): Make sure we always return a tree.
4185
36881d16
HK
41862011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
4187
4188 * xml.c (parse_region): If a document contains only comments,
4189 return that, too.
4190
1e98674d
LMI
41912011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
4192
4193 * xml.c (make_dom): Return comments, too.
4194
590bd467
PE
41952011-07-19 Paul Eggert <eggert@cs.ucla.edu>
4196
4197 Port to OpenBSD.
4198 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
4199 and the surrounding thread.
4200 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
4201 rather than fgets, and retry after EINTR. Otherwise, 'emacs
4202 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
4203 timer goes off.
4204 * s/openbsd.h (BROKEN_SIGIO): Define.
4205 * unexelf.c (unexec) [__OpenBSD__]:
4206 Don't update the .mdebug section of the Alpha COFF symbol table.
4207
f41628b2
LMI
42082011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
4209
4210 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
4211 (bug#8460).
4212
b59b67c5
PE
42132011-07-18 Paul Eggert <eggert@cs.ucla.edu>
4214
15e3a074
PE
4215 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
4216 This fixes some race conditions on the permissions of any newly
4217 created file.
4218
41bed37d
PE
4219 * alloc.c (valid_pointer_p): Use pipe, not open.
4220 This fixes some permissions issues when debugging.
4221
b59b67c5
PE
4222 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
4223 If fchown fails to set both uid and gid, try to set just gid,
4224 as that is sometimes allowed. Adjust the file's mode to eliminate
4225 setuid or setgid bits that are inappropriate if fchown fails.
4226
925a6be7
SM
42272011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
4228
4229 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
4230 to compare Lisp_Objects.
4231 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
4232 global_gnutls_log_level, don't mistake it for a Lisp_Object.
4233 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
4234
52968808
AS
42352011-07-17 Andreas Schwab <schwab@linux-m68k.org>
4236
0a6a104b
AS
4237 * lread.c (read_integer): Unread even EOF character.
4238 (read1): Likewise. Properly record start position of symbol.
4239
52968808
AS
4240 * lread.c (read1): Read `#:' as empty uninterned symbol if no
4241 symbol character follows.
4242
9e381cdd
PE
42432011-07-17 Paul Eggert <eggert@cs.ucla.edu>
4244
4245 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
4246 This works around a problem with the previous change to Fcopy_file.
4247 Recent glibc declares fchown with __attribute__((warn_unused_result)),
4248 and without this change, GCC might complain about discarding
4249 fchown's return value.
4250
b5641435
JB
42512011-07-16 Juanma Barranquero <lekktu@gmail.com>
4252
4253 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
4254
a8031457
PE
42552011-07-16 Paul Eggert <eggert@cs.ucla.edu>
4256
4257 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
4258
dd889327
LMI
42592011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
4260
750c33f7
LMI
4261 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
4262 it's used from the C level.
4263
dd889327
LMI
4264 * process.c: Use the same condition for POLL_FOR_INPUT in both
4265 keyboard.c and process.c (bug#1858).
4266
87e86684
LM
42672011-07-09 Lawrence Mitchell <wence@gmx.li>
4268
4269 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
4270 (Fgnutls_boot): Use it.
4271
64348f40
AS
42722011-07-15 Andreas Schwab <schwab@linux-m68k.org>
4273
4274 * doc.c (Fsubstitute_command_keys): Revert last change.
4275
1d698799
LMI
42762011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
4277
f863868c
LMI
4278 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
4279 quotes the next character, and doesn't affect other longer
4280 sequences (bug#8935).
4281
1d698799
LMI
4282 * lread.c (syms_of_lread): Clarify that is isn't only
4283 `eval-buffer' and `eval-defun' that's affected by
4284 `lexical-binding' (bug#8460).
4285
aa4b6df6
EZ
42862011-07-15 Eli Zaretskii <eliz@gnu.org>
4287
4288 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 4289 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 4290
5d856da6
PE
42912011-07-14 Paul Eggert <eggert@cs.ucla.edu>
4292
ad6042bb
PE
4293 Fix minor problems found by static checking.
4294 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
4295 (elsz): Now a signed constant, not a size_t var. We prefer signed
4296 types to unsigned, to avoid integer comparison confusion. Without
4297 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
4298 "cannot optimize loop, the loop counter may overflow", a symptom
4299 of the confusion.
f00bbb22 4300 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
4301 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
4302
6468f31c
LMI
43032011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
4304
49080b10
LMI
4305 * search.c (Fre_search_backward): Mention `case-fold-search' in
4306 all the re_search_* functions (bug#8138).
4307
6468f31c
LMI
4308 * keyboard.c (Fopen_dribble_file): Document when the file is
4309 closed (bug#8056).
4310
c965adc5
EZ
43112011-07-14 Eli Zaretskii <eliz@gnu.org>
4312
df9733bf
EZ
4313 * bidi.c (bidi_dump_cached_states): Fix format of displaying
4314 bidi_cache_idx.
4315
0bb23927
EZ
4316 Support bidi reordering of display and overlay strings.
4317 * xdisp.c (compute_display_string_pos)
4318 (compute_display_string_end): Accept additional argument STRING.
4319 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
4320 (reseat_to_string): Initialize bidi_it->string.s and
4321 bidi_it->string.schars.
4322 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
4323 NULL (avoids a crash in bidi_paragraph_init).
4324 Initialize itb.string.lstring.
0bb23927
EZ
4325 (init_iterator): Call bidi_init_it only of a valid
4326 buffer position was specified. Initialize paragraph_embedding to
4327 L2R.
4328 (reseat_to_string): Initialize the bidi iterator.
4329 (display_string): If we need to ignore text properties of
4330 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
4331 original value of -1 will not work with bidi.)
4332 (compute_display_string_pos): First arg is now struct
4333 `text_pos *'; all callers changed. Support display properties on
4334 Lisp strings.
4335 (compute_display_string_end): Support display properties on Lisp
4336 strings.
4337 (init_iterator, reseat_1, reseat_to_string): Initialize the
4338 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
4339 when iterating on a string not from display properties).
640c8776
SM
4340 (compute_display_string_pos, compute_display_string_end):
4341 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
4342 arrow keys.
4343 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
4344 base_level_stop; instead, set base_level_stop to BEGV.
4345 Fixes crashes in vertical-motion.
0bb23927
EZ
4346 (next_element_from_buffer): Improve commentary for when
4347 the iterator is before prev_stop.
4348 (init_iterator): Initialize bidi_p from the default value of
4349 bidi-display-reordering, not from buffer-local value. Use the
4350 buffer-local value only if initializing for buffer iteration.
4351 (handle_invisible_prop): Support invisible properties on strings
4352 that are being bidi-reordered.
4353 (set_iterator_to_next): Support bidi reordering of C strings and
4354 Lisp strings.
4355 (next_element_from_string): Support bidi reordering of Lisp
4356 strings.
4357 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
4358 (display_string): Support display of R2L glyph rows.
4359 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
4360 (init_iterator): Don't initialize it->bidi_p for strings
4361 here.
4362 (reseat_to_string): Initialize it->bidi_p for strings here.
4363 (next_element_from_string, next_element_from_c_string)
4364 (next_element_from_buffer): Add xassert's for correspondence
4365 between IT's object being iterated and it->bidi_it.string
4366 structure.
4367 (face_before_or_after_it_pos): Support bidi iteration.
4368 (next_element_from_c_string): Handle the case of the first string
4369 character that is not the first one in the visual order.
4370 (get_visually_first_element): New function, refactored from common
4371 parts of next_element_from_buffer, next_element_from_string, and
4372 next_element_from_c_string.
4373 (tool_bar_lines_needed, redisplay_tool_bar)
4374 (display_menu_bar): Force left-to-right direction. Add a FIXME
4375 comment for making that be controlled by a user option.
4376 (push_it, pop_it): Save and restore the state of the
4377 bidi iterator. Save and restore the bidi_p flag.
4378 (pop_it): Iterate out of display property for string iteration as
4379 well.
4380 (iterate_out_of_display_property): Support iteration over strings.
4381 (handle_single_display_spec): Set up it->bidi_it for iteration
4382 over a display string, and call bidi_init_it.
4383 (handle_single_display_spec, next_overlay_string)
4384 (get_overlay_strings_1, push_display_prop): Set up the bidi
4385 iterator for displaying display or overlay strings.
4386 (forward_to_next_line_start): Don't use the shortcut if
4387 bidi-iterating.
4388 (back_to_previous_visible_line_start): If handle_display_prop
4389 pushed the iterator stack, restore the internal state of the bidi
4390 iterator by calling bidi_pop_it same number of times.
4391 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
4392 and we are bidi-iterating, don't decrement the iterator position;
4393 instead, set the first_elt flag in the bidi iterator, to produce
4394 the same effect.
4395 (reseat_1): Remove redundant setting of string_from_display_prop_p.
4396 (push_display_prop): xassert that we are iterating a buffer.
4397 (push_it, pop_it): Save and restore paragraph_embedding member.
4398 (handle_single_display_spec, next_overlay_string)
4399 (get_overlay_strings_1, reseat_1, reseat_to_string)
4400 (push_display_prop): Set up the `unibyte' member of bidi_it.string
4401 correctly. Don't assume unibyte strings are not bidi-reordered.
4402 (compute_display_string_pos)
4403 (compute_display_string_end): Fix handling the case of C string.
4404 (push_it, pop_it): Save and restore from_disp_prop_p.
4405 (handle_single_display_spec, push_display_prop): Set the
4406 from_disp_prop_p flag.
4407 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
4408 (pop_it): Call iterate_out_of_display_property only if we are
4409 popping after iteration over a string that came from a display
4410 property. Fix a typo in popping stretch info. Add an assertion
4411 for verifying that the iterator position is in sync with the bidi
4412 iterator.
4413 (handle_single_display_spec, get_overlay_strings_1)
4414 (push_display_prop): Fix initialization of paragraph direction for
4415 string when that of the parent object is not yet determined.
4416 (reseat_1): Call bidi_init_it to resync the bidi
4417 iterator with IT's position. (Bug#7616)
4418 (find_row_edges): If ROW->start.pos gives position
4419 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
4420 (handle_stop, back_to_previous_visible_line_start, reseat_1):
4421 Reset the from_disp_prop_p flag.
4422 (SAVE_IT, RESTORE_IT): New macros.
4423 (pos_visible_p, face_before_or_after_it_pos)
4424 (back_to_previous_visible_line_start)
4425 (move_it_in_display_line_to, move_it_in_display_line)
4426 (move_it_to, move_it_vertically_backward, move_it_by_lines)
4427 (try_scrolling, redisplay_window, display_line): Use them when
4428 saving a temporary copy of the iterator and restoring it back.
4429 (back_to_previous_visible_line_start, reseat_1)
4430 (init_iterator): Empty the bidi cache "stack".
4431 (move_it_in_display_line_to): If iterator ended up at
4432 EOL, but we never saw any buffer positions smaller than
4433 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
4434 motion in bidi-reordered lines.
4435 (move_it_in_display_line_to): Record prev_method and prev_pos
4436 immediately before the call to set_iterator_to_next. Fixes cursor
4437 motion in bidi-reordered lines with stretch glyphs and strings
4438 displayed in margins. (Bug#8133) (Bug#8867)
4439 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
4440 TO_CHARPOS.
640c8776
SM
4441 (pos_visible_p): Support positions in bidi-reordered lines.
4442 Save and restore bidi cache.
0bb23927
EZ
4443
4444 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
4445 (bidi_paragraph_info): Delete unused struct.
4446 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
4447 (bidi_cache_start): New variable.
4448 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
4449 to zero.
4450 (bidi_cache_fetch_state, bidi_cache_search)
4451 (bidi_cache_find_level_change, bidi_cache_iterator_state)
4452 (bidi_cache_find, bidi_peek_at_next_level)
4453 (bidi_level_of_next_char, bidi_find_other_level_edge)
4454 (bidi_move_to_visually_next): Compare cache index with
4455 bidi_cache_start rather than with zero.
4456 (bidi_fetch_char): Accept new argument STRING; all callers
4457 changed. Support iteration over a string. Support strings with
4458 display properties. Support unibyte strings. Fix the type of
4459 `len' according to what STRING_CHAR_AND_LENGTH expects.
4460 (bidi_paragraph_init, bidi_resolve_explicit_1)
4461 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
4462 (bidi_level_of_next_char, bidi_move_to_visually_next):
4463 Support iteration over a string.
0bb23927
EZ
4464 (bidi_set_sor_type, bidi_resolve_explicit_1)
4465 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
4466 can now be zero (for strings); special values 0 and -1 were
4467 changed to -1 and -2, respectively.
4468 (bidi_char_at_pos): New function.
4469 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
4470 Call it instead of FETCH_MULTIBYTE_CHAR.
4471 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
4472 initialized to valid values.
4473 (bidi_init_it): Don't initialize charpos and bytepos with invalid
4474 values.
4475 (bidi_level_of_next_char): Allow the sentinel "position" to pass
4476 the test for valid cached positions. Fix the logic for looking up
4477 the sentinel state in the cache. GCPRO the Lisp string we are
4478 iterating.
4479 (bidi_push_it, bidi_pop_it): New functions.
4480 (bidi_initialize): Initialize the bidi cache start stack pointer.
4481 (bidi_cache_ensure_space): New function, refactored from part of
4482 bidi_cache_iterator_state. Don't assume the required size is just
4483 one BIDI_CACHE_CHUNK away.
4484 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
4485 (bidi_count_bytes, bidi_char_at_pos): New functions.
4486 (bidi_cache_search): Don't assume bidi_cache_last_idx is
4487 always valid if bidi_cache_idx is valid.
4488 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
4489 is valid if it's going to be used.
4490 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
4491 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
4492 (bidi_cache_find_level_change, bidi_cache_ensure_space)
4493 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
4494 (bidi_find_other_level_edge, bidi_cache_start_stack):
4495 All variables related to cache indices are now EMACS_INT.
c965adc5 4496
0bb23927
EZ
4497 * dispextern.h (struct bidi_string_data): New structure.
4498 (struct bidi_it): New member `string'. Make flag members be 1-bit
4499 fields, and put them last in the struct.
640c8776
SM
4500 (compute_display_string_pos, compute_display_string_end):
4501 Update prototypes.
0bb23927
EZ
4502 (bidi_push_it, bidi_pop_it): Add prototypes.
4503 (struct iterator_stack_entry): New members bidi_p,
4504 paragraph_embedding, and from_disp_prop_p.
4505 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
4506 (bidi_shelve_cache, bidi_unshelve_cache):
4507 Declare prototypes.
0bb23927
EZ
4508
4509 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
4510 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
4511 and vector-like objects.
4512
4513 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
4514 cache around display iteration.
4515
4516 * window.c (Fwindow_end, window_scroll_pixel_based)
4517 (displayed_window_lines, Frecenter): Save and restore the bidi
4518 cache around display iteration.
4519
3bbd2265
LMI
45202011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
4521
4522 * editfns.c (Fdelete_region): Clarify the use of the named
4523 parameters (bug#6788).
4524
adc47434
MR
45252011-07-14 Martin Rudalics <rudalics@gmx.at>
4526
4527 * indent.c (Fvertical_motion): Set and restore w->pointm when
4528 saving and restoring the window's buffer (Bug#9006).
4529
837c31f8
LMI
45302011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
4531
4532 * editfns.c (Fstring_to_char): Clarify just what is returned
4533 (bug#6576). Text by Eli Zaretskii.
4534
ac389d0c
JB
45352011-07-13 Juanma Barranquero <lekktu@gmail.com>
4536
4537 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
4538
0be0ce47
EZ
45392011-07-13 Eli Zaretskii <eliz@gnu.org>
4540
4541 * buffer.c (mmap_find): Fix a typo.
4542
cd18e7e3
JB
45432011-07-13 Johan Bockgård <bojohan@gnu.org>
4544
4545 Fix execution of x selection hooks.
4546 * xselect.c (Qx_lost_selection_functions)
4547 (Qx_sent_selection_functions): New vars.
4548 (syms_of_xselect): DEFSYM them.
4549 (x_handle_selection_request): Pass Qx_sent_selection_functions
4550 rather than Vx_sent_selection_functions to Frun_hook_with_args.
4551 (x_handle_selection_clear,x_clear_frame_selections):
4552 Pass Qx_lost_selection_functions rather than
4553 Vx_lost_selection_functions to Frun_hook_with_args.
4554
47ea7f44
PE
45552011-07-13 Paul Eggert <eggert@cs.ucla.edu>
4556
ac389d0c 4557 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
4558 The old code sometimes used this field without initializing it.
4559
47ea7f44
PE
4560 * alloc.c (gc_sweep): Don't read past end of array.
4561 In theory, the old code could also have corrupted Emacs internals,
4562 though it'd be very unlikely.
4563
bc985c87
AS
45642011-07-12 Andreas Schwab <schwab@linux-m68k.org>
4565
4566 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 4567 argument. (Bug#4026)
bc985c87 4568
0cf34688
LMI
45692011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
4570
b3dadd76
LMI
4571 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
4572 key" (bug#4257).
4573
0cf34688
LMI
4574 * window.c (Fset_window_start): Doc fix (bug#4199).
4575 (Fset_window_hscroll): Ditto.
4576
270768cd
PE
45772011-07-12 Paul Eggert <eggert@cs.ucla.edu>
4578
077e3dda 4579 Fix minor new problems caught by GCC 4.6.1.
270768cd 4580 * term.c (init_tty): Remove unused local.
490011a6 4581 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 4582 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 4583 not used otherwise.
270768cd 4584
b1f58454
CY
45852011-07-12 Chong Yidong <cyd@stupidchicken.com>
4586
4587 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
4588
22b9578d
LMI
45892011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
4590
6e70ab07
LMI
4591 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
4592 are the mini-buffer and the echo area (bug#3320).
4593
22b9578d
LMI
4594 * term.c (init_tty): Remove support for supdup, c10 and perq
4595 terminals, which are no longer supported (bug#1482).
4596
8974cc9f
JB
45972011-07-10 Johan Bockgård <bojohan@gnu.org>
4598
4599 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
4600
a560d974
JD
46012011-07-10 Jan Djärv <jan.h.d@swipnet.se>
4602
4603 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
4604 for non-popups (Bug#3642).
4605
1dae0f0a
AS
46062011-07-10 Andreas Schwab <schwab@linux-m68k.org>
4607
268c2c36 4608 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 4609 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
4610 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
4611 * cm.c (losecursor): Likewise.
1dae0f0a
AS
4612 * data.c (fmod): Likewise.
4613 * dispnew.c (swap_glyphs_in_rows): Likewise.
4614 * emacs.c (memory_warning_signal): Likewise.
4615 * floatfns.c (float_error): Likewise.
4616 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
4617 (otf_open, font_otf_capability, generate_otf_features)
4618 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
4619 Likewise.
4620 * image.c (pbm_read_file): Likewise.
4621 * indent.c (string_display_width): Likewise.
4622 * intervals.c (check_for_interval, search_for_interval)
4623 (inc_interval_count, count_intervals, root_interval)
4624 (adjust_intervals_for_insertion, make_new_interval): Likewise.
4625 * lread.c (defalias): Likewise.
268c2c36 4626 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
4627 * regex.c (set_image_of_range_1, set_image_of_range)
4628 (regex_grow_registers): Likewise.
4629 * sysdep.c (strerror): Likewise.
4630 * termcap.c (valid_filename_p, tprint, main): Likewise.
4631 * tparam.c (main): Likewise.
4632 * unexhp9k800.c (run_time_remap, save_data_space)
4633 (update_file_ptrs, read_header, write_header, calculate_checksum)
4634 (copy_file, copy_rest, display_header): Likewise.
4635 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
4636 Likewise.
4637 * xdisp.c (check_it): Likewise.
4638 * xfaces.c (register_color, unregister_color, unregister_colors):
4639 Likewise.
4640 * xfns.c (print_fontset_result): Likewise.
4641 * xrdb.c (member, fatal, main): Likewise.
4642
99033785
PE
46432011-07-10 Paul Eggert <eggert@cs.ucla.edu>
4644
4645 Fix minor problems found by static checking (Bug#9031).
4646 * chartab.c (char_table_set_range, map_sub_char_table):
4647 Remove unused locals.
4648 (uniprop_table): Now static.
4649 * composite.c (_work_char): Remove unused static var.
4650
9cb2ac56
JB
46512011-07-09 Juanma Barranquero <lekktu@gmail.com>
4652
4653 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
4654
f25661f0
JD
46552011-07-09 Jan Djärv <jan.h.d@swipnet.se>
4656
4657 * gtkutil.c (qttip_cb): Remove code without function.
4658
8278c4fe
EZ
46592011-07-09 Eli Zaretskii <eliz@gnu.org>
4660
4661 * w32.c (pthread_sigmask): New stub.
4662
1692ae2d 46632011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 4664
8a6ebd58 4665 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
4666 sigprocmask is portable only for single-threaded applications, and
4667 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
4668 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
4669 (LIBES): Use it.
4670 * callproc.c (Fcall_process):
4671 * process.c (create_process):
4672 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
4673 Use pthread_sigmask, not sigprocmask.
123403e4 4674
1b854618
JD
46752011-07-08 Jan Djärv <jan.h.d@swipnet.se>
4676
4677 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
4678 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
4679 wrong (Bug#8591).
4680
3fe4b549
JD
46812011-07-08 Jan Djärv <jan.h.d@swipnet.se>
4682
0ce7e563
JD
4683 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
4684 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
4685 (xg_hide_tooltip): Fix comment.
4686
3fe4b549
JD
4687 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
4688 in registerServicesMenuSendTypes.
4689 (validRequestorForSendType): Don't check ns_return_types.
4690
4691 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
4692 ns_return_type.
4693
5df75e47
JR
46942011-07-08 Jason Rumney <jasonr@gnu.org>
4695
22610910
JR
4696 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
4697 SH_SHOW for hidden windows (Bug#5482).
4698
5df75e47
JR
4699 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
4700 frame struct members of non-existent frames (Bug#6284).
4701
699c10bd
JD
47022011-07-08 Jan Djärv <jan.h.d@swipnet.se>
4703
4393663b
JD
4704 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
4705 variable firstTime not needed on OSX >= 10.6.
4706 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
4707 >= 10.5. Use setKnobProportion, setDoubleValue.
4708
4709 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
4710 (MAC_OS_X_VERSION_10_5): Define if not defined.
4711 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
4712 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
4713 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
4714
4715 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
4716 cString and lossyCString on OSX >= 10.4
4717
58179cce 4718 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
4719 sizeToFit on OSX >= 10.2.
4720
4721 * nsimage.m (allocInitFromFile): Don't use deprecated method
4722 bestRepresentationForDevice on OSX >= 10.6.
4723
4724 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
4725 to avoid warning.
4726
4727 * emacs.c: Declare unexec_init_emacs_zone.
4728
a63e0781
JD
4729 * nsgui.h: Fix compiler warning about gnulib redefining verify.
4730
699c10bd
JD
4731 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
4732
4733 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
4734 on svcsMenu (Bug#8842).
4735
4736 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
4737 ns_return_types.
4738 (Fns_list_services): Just return Qnil on 10.6, code not working there.
4739
4740 * nsterm.m (QUTF8_STRING): Declare.
4741 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
4742 (validRequestorForSendType): Return type is (id).
4743 Change indexOfObjectIdenticalTo to indexOfObject.
4744 Check if we have local selection before returning self (Bug#8842).
4745 (writeSelectionToPasteboard): Put local selection into paste board
4746 if we have a local selection (Bug#8842).
4747 (syms_of_nsterm): DEFSYM QUTF8_STRING.
4748
4749 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
4750 (ns_get_local_selection): Declare.
4751
54e10184
LMI
47522011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
4753
9888ff71
LMI
4754 * keymap.c (describe_map_tree): Don't insert a double newline at
4755 the end of the buffer (bug#1169) and return whether we inserted
4756 something.
4757
54e10184
LMI
4758 * callint.c (Fcall_interactively): Change "reading args" to
4759 "providing args" to try to clarify what it does (bug#1010).
4760
15fa4783
KH
47612011-07-07 Kenichi Handa <handa@m17n.org>
4762
4763 * composite.c (composition_compute_stop_pos): Ignore a static
4764 composition starting before CHARPOS (Bug#8915).
4765
4766 * xdisp.c (handle_composition_prop): Likewise.
4767
a8815b00
EZ
47682011-07-07 Eli Zaretskii <eliz@gnu.org>
4769
4770 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
4771 (Bug#9015)
4772
ef7b981d 47732011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
4774
4775 * character.h (unicode_category_t): New enum type.
4776
4777 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
4778 (Qchar_code_property_table): New variable.
4779 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
4780 (UNIPROP_COMPRESSED_FORM_P): New macros.
4781 (char_table_ascii): Uncompress the compressed values.
4782 (sub_char_table_ref): New arg is_uniprop. Callers changed.
4783 Uncompress the compressed values.
ac389d0c 4784 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
4785 (char_table_ref_and_range): Uncompress the compressed values.
4786 (sub_char_table_set): New arg is_uniprop. Callers changed.
4787 Uncompress the compressed values.
4788 (sub_char_table_set_range): Args changed. Callers changed.
4789 (char_table_set_range): Adjuted for the above change.
4790 (map_sub_char_table): Delete args default_val and parent. Add arg
4791 top. Give decoded values to a Lisp function.
640c8776 4792 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
4793 values to a Lisp function. Gcpro more variables.
4794 (uniprop_table_uncompress)
4795 (uniprop_decode_value_run_length): New functions.
4796 (uniprop_decoder, uniprop_decoder_count): New variables.
4797 (uniprop_get_decoder, uniprop_encode_value_character)
4798 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
4799 New functions.
4800 (uniprop_encoder, uniprop_encoder_count): New variables.
4801 (uniprop_get_encoder, uniprop_table)
4802 (Funicode_property_table_internal, Fget_unicode_property_internal)
4803 (Fput_unicode_property_internal): New functions.
4804 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
4805 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 4806 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
4807 char-code-property-alist.
4808
640c8776 4809 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
4810 Vunicode_category_table.
4811
640c8776 4812 * font.c (font_range): Adjust for the change of
c805dec0
KH
4813 Vunicode_category_table.
4814
76b397fb
DN
48152011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
4816
4817 * m/iris4d.h: Remove file, move contents ...
4818 * s/irix6-5.h: ... here.
4819
22b4128e
PE
48202011-07-06 Paul Eggert <eggert@cs.ucla.edu>
4821
4822 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
4823 * alloc.c (mark_buffer):
4824 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
4825 (clone_per_buffer_values): Don't assume that
22b4128e
PE
4826 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
4827 This isn't true in general, and it's particularly not true
4828 if Emacs is configured with --with-wide-int.
4829 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
4830 New macros, used in the buffer.c change.
4831
869795d6
JD
48322011-07-05 Jan Djärv <jan.h.d@swipnet.se>
4833
4834 * xsettings.c: Use both GConf and GSettings if both are available.
4835 (store_config_changed_event): Add comment.
4836 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
4837 (store_tool_bar_style_changed): New functions.
5e617bc2 4838 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
4839 (struct xsettings): Move font inside HAVE_XFT.
4840 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 4841 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 4842 Move inside HAVE_XFT.
640c8776 4843 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
4844 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
4845 also.
4846 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 4847 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 4848 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
4849 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
4850 (parse_settings): Move check for font inside HAVE_XFT.
4851 (read_settings, apply_xft_settings): Add comment.
4852 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
4853 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
4854 call store_font_name_changed.
4855 (xft_settings_event): Add comment.
4856 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
4857 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
4858 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
4859 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
4860 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
4861 (xsettings_get_system_font, xsettings_get_system_normal_font):
4862 Add comment.
869795d6 4863
d8ed26bd
PE
48642011-07-05 Paul Eggert <eggert@cs.ucla.edu>
4865
4866 Random fixes. E.g., (random) never returned negative values.
4867 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
4868 subseconds part to the entropy, as that's a bit more random.
4869 Prefer signed to unsigned, since the signedness doesn't matter and
4870 in general we prefer signed. When given a limit, use a
4871 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
4872 latter isn't right if USE_2_TAGS_FOR_INTS.
4873 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
4874 not 0..VALMASK. Don't discard "excess" bits that random () returns.
4875
cabf1cac
SM
48762011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
4877
4878 * textprop.c (text_property_stickiness):
4879 Obey Vtext_property_default_nonsticky.
4880 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
4881 * w32fns.c (syms_of_w32fns):
4882 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
4883
6e9b2be9
PE
48842011-07-04 Paul Eggert <eggert@cs.ucla.edu>
4885
4886 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
4887 This is more efficient than Ffile_directory_p and avoids a minor race.
4888
90186c68
LMI
48892011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
4890
7c301272
LMI
4891 * buffer.c (Foverlay_put): Say what the return value is
4892 (bug#7835).
4893
c4f2d8d4
LMI
4894 * fileio.c (barf_or_query_if_file_exists): Check first if the file
4895 is a directory before asking whether to use the file name
4896 (bug#7564).
ad637907
LMI
4897 (barf_or_query_if_file_exists): Make the "File is a directory"
4898 error be more correct.
c4f2d8d4 4899
90186c68
LMI
4900 * fns.c (Frequire): Remove the mention of the .gz files, since
4901 that's installation-specific, but keep the mention of
4902 `get-load-suffixes'.
4903
da64016e
PE
49042011-07-04 Paul Eggert <eggert@cs.ucla.edu>
4905
4906 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
4907 Report string overflow if the output is too long.
4908
7d47b580
JB
49092011-07-04 Juanma Barranquero <lekktu@gmail.com>
4910
a555cb87
JB
4911 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
4912 (syms_of_gnutls): Remove duplicate DEFSYM for
4913 Qgnutls_bootprop_verify_hostname_error, an error for
4914 Qgnutls_bootprop_verify_error (which is no longer used).
4915
7d47b580
JB
4916 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
4917 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
4918 Also (re)move comments that are misplaced or no longer relevant.
4919
1e49bfab
LMI
49202011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
4921
4922 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
4923
1485f4c0
CY
49242011-07-03 Chong Yidong <cyd@stupidchicken.com>
4925
4926 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
4927 and background color parameters if they have been changed.
4928
a9ab721e
LMI
49292011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
4930
4931 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
4932
cf7cff57
PE
49332011-07-03 Paul Eggert <eggert@cs.ucla.edu>
4934
2e13213d
PE
4935 * xsettings.c (SYSTEM_FONT): Define only when used.
4936 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
4937
cf7cff57
PE
4938 * keymap.c (access_keymap_1): Now static.
4939
7a8e04f7
CY
49402011-07-02 Chong Yidong <cyd@stupidchicken.com>
4941
4942 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
4943 leave any prefix arg for the up event (Bug#1586).
4944
61352f62
LMI
49452011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
4946
69bb1ef7
LMI
4947 * lread.c (syms_of_lread): Mention single symbols defined by
4948 `defvar' or `defconst' (bug#7154).
4949
61352f62 4950 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 4951 (Frequire): Mention get-load-suffixes.
61352f62 4952
28545e04
MR
49532011-07-02 Martin Rudalics <rudalics@gmx.at>
4954
4955 * window.h (window): Remove clone_number slot.
4956 * window.c (Fwindow_clone_number, Fset_window_clone_number):
4957 Remove.
4958 (make_parent_window, make_window, saved_window)
4959 (Fset_window_configuration, save_window_save): Don't deal with
4960 clone numbers.
4961 * buffer.c (Qclone_number): Remove declaration.
4962 (sort_overlays, overlay_strings): Don't deal with clone numbers.
4963
3349e122
SM
49642011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
4965
4966 Add multiple inheritance to keymaps.
4967 * keymap.c (Fmake_composed_keymap): New function.
4968 (Fset_keymap_parent): Simplify.
4969 (fix_submap_inheritance): Remove.
4970 (access_keymap_1): New function extracted from access_keymap to handle
4971 embedded parents and handle lists of maps.
4972 (access_keymap): Use it.
4973 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
4974 (Fcopy_keymap): Handle embedded parents.
4975 (Fcommand_remapping, define_as_prefix): Simplify.
4976 (Fkey_binding): Simplify.
4977 (syms_of_keymap): Move minibuffer-local-completion-map,
4978 minibuffer-local-filename-completion-map,
4979 minibuffer-local-must-match-map, and
4980 minibuffer-local-filename-must-match-map to Elisp.
4981 (syms_of_keymap): Defsubr make-composed-keymap.
4982 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
4983 (parse_menu_item): Trivial simplification.
4984
3279eb87
GM
49852011-07-01 Glenn Morris <rgm@gnu.org>
4986
4987 * Makefile.in (SETTINGS_LIBS): Fix typo.
4988
4550efdf
KI
49892011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
4990
4991 * coding.c (Fencode_coding_string): Record the last coding system
4992 used, as the function doc string says (bug#8738).
4993
0949d2b6
JD
49942011-07-01 Jan Djärv <jan.h.d@swipnet.se>
4995
4996 * xsettings.c (store_monospaced_changed): Take new font as arg and
4997 check for change against current_mono_font.
4998 (EMACS_TYPE_SETTINGS): Remove this and related defines.
4999 (emacs_settings_constructor, emacs_settings_get_property)
5000 (emacs_settings_set_property, emacs_settings_class_init)
5001 (emacs_settings_init, gsettings_obj): Remove.
5002 (something_changedCB): New function for HAVE_GSETTINGS.
5003 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
5004 with value as argument.
5005 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
5006 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 5007 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
5008 "changed".
5009
5010 * xgselect.c: Add defined (HAVE_GSETTINGS).
5011 (xgselect_initialize): Ditto.
5012
5013 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
5014 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
5015 xg_select.
5016
bbc6b304
PE
50172011-07-01 Paul Eggert <eggert@cs.ucla.edu>
5018
5019 * eval.c (struct backtrace): Simplify and port the data structure.
5020 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
5021 signed bit field, as this assumption is not portable and it makes
5022 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
5023 "char debug_on_exit : 1" as this is not portable either; instead,
5024 use the portable "unsigned int debug_on_exit : 1". Remove unused
5025 member evalargs. Remove obsolete comments about cc bombing out.
5026
9851bfc5
JD
50272011-06-30 Jan Djärv <jan.h.d@swipnet.se>
5028
51bb811f 5029 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
5030 Let HAVE_GSETTINGS override HAVE_GCONF.
5031 (store_monospaced_changed): New function.
5032 (EMACS_SETTINGS): A new type derived from GObject to handle
5033 GSettings notifications.
5034 (emacs_settings_constructor, emacs_settings_get_property)
5035 (emacs_settings_set_property, emacs_settings_class_init):
5036 New functions.
5037 (gsettings_client, gsettings_obj): New variables.
5038 (GSETTINGS_SCHEMA): New define.
5039 (something_changedCB): Call store_monospaced_changed.
5040 (init_gsettings): New function.
5041 (xsettings_initialize): Call init_gsettings.
5042 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
5043 to NULL.
5044
640c8776 5045 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
5046 GCONF_CFLAGS/LIBS.
5047
5386012d
MR
50482011-06-29 Martin Rudalics <rudalics@gmx.at>
5049
5050 * window.c (resize_root_window, grow_mini_window)
5051 (shrink_mini_window): Rename Qresize_root_window to
5052 Qwindow_resize_root_window and Qresize_root_window_vertically to
5053 Qwindow_resize_root_window_vertically.
5054
f13e0b08
PE
50552011-06-28 Paul Eggert <eggert@cs.ucla.edu>
5056
5057 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
5058
94515237
JB
50592011-06-27 Juanma Barranquero <lekktu@gmail.com>
5060
5061 * makefile.w32-in: Redesign dependencies so they reflect more
5062 clearly which files are directly included by each source file,
5063 and not through other includes.
5064
e43b6e43
MR
50652011-06-27 Martin Rudalics <rudalics@gmx.at>
5066
5067 * buffer.c (Qclone_number): Declare static and DEFSYM it.
5068 (sort_overlays, overlay_strings): When an overlay's clone number
5069 matches the window's clone number process the overlay even if
5070 the overlay's window property doesn't match the current window.
5071
d68443dc
MR
5072 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
5073 (Fwindow_hchild): Rename to Fwindow_left_child.
5074 (Fwindow_next): Rename to Fwindow_next_sibling.
5075 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
5076 (resize_window_check): Rename to window_resize_check.
5077 (resize_window_apply): Rename to window_resize_apply.
5078 (Fresize_window_apply): Rename to Fwindow_resize_apply.
5079 (Fdelete_other_windows_internal, resize_frame_windows)
5080 (Fsplit_window_internal, Fdelete_window_internal)
5081 (grow_mini_window, shrink_mini_window)
5082 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 5083
c7e73be5
JD
50842011-06-26 Jan Djärv <jan.h.d@swipnet.se>
5085
5086 * emacsgtkfixed.h: State that this is only used with Gtk+3.
5087 (emacs_fixed_set_min_size): Remove.
5088 (emacs_fixed_new): Take frame as argument.
5089
5090 * emacsgtkfixed.c: State that this is only used with Gtk+3.
5091 (_EmacsFixedPrivate): Remove minwidth/height.
5092 Add struct frame *f.
5093 (emacs_fixed_init): Initialize priv->f.
5094 (get_parent_class, emacs_fixed_set_min_size): Remove.
5095 (emacs_fixed_new): Set priv->f to argument.
5096 (emacs_fixed_get_preferred_width)
5097 (emacs_fixed_get_preferred_height): Use min_width/height from
5098 frames size_hint to set minimum and natural (Bug#8919).
5099 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
5100 and use min_width/height from frames size_hint to set
5101 min_width/height (Bug#8919).
5102
5103 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
5104 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
5105 Fix indentation.
c7e73be5 5106
cf99dcf8
EZ
51072011-06-26 Eli Zaretskii <eliz@gnu.org>
5108
5109 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
5110 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
5111 called at ZV.
5112
029529ac
CY
51132011-06-26 Chong Yidong <cyd@stupidchicken.com>
5114
5115 * process.c (wait_reading_process_output): Bypass select if
5116 waiting for a cell while ignoring keyboard input, and input is
5117 pending. Suggested by Jan Djärv (Bug#8869).
5118
7a7ef429
PE
51192011-06-25 Paul Eggert <eggert@cs.ucla.edu>
5120
5121 Use gnulib's dup2 module instead of rolling our own.
5122 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
5123
11fdef7d 51242011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
5125
5126 * dispnew.c (scrolling_window): Before scrolling, turn off a
5127 mouse-highlight in the window being scrolled.
5128
cd3520a4
JB
51292011-06-24 Juanma Barranquero <lekktu@gmail.com>
5130
5131 Move DEFSYM to lisp.h and use everywhere.
5132
5133 * character.h (DEFSYM): Move declaration...
5134 * lisp.h (DEFSYM): ...here.
5135
5136 * gnutls.c:
5137 * minibuf.c:
5138 * w32menu.c:
5139 * w32proc.c:
5140 * w32select.c: Don't include character.h.
5141
5142 * alloc.c (syms_of_alloc):
5143 * buffer.c (syms_of_buffer):
5144 * bytecode.c (syms_of_bytecode):
5145 * callint.c (syms_of_callint):
5146 * casefiddle.c (syms_of_casefiddle):
5147 * casetab.c (init_casetab_once):
5148 * category.c (init_category_once, syms_of_category):
5149 * ccl.c (syms_of_ccl):
5150 * cmds.c (syms_of_cmds):
5151 * composite.c (syms_of_composite):
5152 * dbusbind.c (syms_of_dbusbind):
5153 * dired.c (syms_of_dired):
5154 * dispnew.c (syms_of_display):
5155 * doc.c (syms_of_doc):
5156 * editfns.c (syms_of_editfns):
5157 * emacs.c (syms_of_emacs):
5158 * eval.c (syms_of_eval):
5159 * fileio.c (syms_of_fileio):
5160 * fns.c (syms_of_fns):
5161 * frame.c (syms_of_frame):
5162 * fringe.c (syms_of_fringe):
5163 * insdel.c (syms_of_insdel):
5164 * keymap.c (syms_of_keymap):
5165 * lread.c (init_obarray, syms_of_lread):
5166 * macros.c (syms_of_macros):
5167 * msdos.c (syms_of_msdos):
5168 * print.c (syms_of_print):
5169 * process.c (syms_of_process):
5170 * search.c (syms_of_search):
5171 * sound.c (syms_of_sound):
5172 * syntax.c (init_syntax_once, syms_of_syntax):
5173 * terminal.c (syms_of_terminal):
5174 * textprop.c (syms_of_textprop):
5175 * undo.c (syms_of_undo):
5176 * w32.c (globals_of_w32):
5177 * window.c (syms_of_window):
5178 * xdisp.c (syms_of_xdisp):
5179 * xfaces.c (syms_of_xfaces):
5180 * xfns.c (syms_of_xfns):
5181 * xmenu.c (syms_of_xmenu):
5182 * xsettings.c (syms_of_xsettings):
5183 * xterm.c (syms_of_xterm): Use DEFSYM.
5184
4228cf16
TZ
51852011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
5186
cd3520a4 5187 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 5188
7fcccf1e
PE
51892011-06-23 Paul Eggert <eggert@cs.ucla.edu>
5190
7efb4e0e
PE
5191 Integer and buffer overflow fixes (Bug#8873).
5192
ff5844ad
PE
5193 * print.c (printchar, strout): Check for string overflow.
5194 (PRINTPREPARE, printchar, strout):
5195 Don't set size unless allocation succeeds.
5196
90532f02
PE
5197 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
5198 for sizes. Check for string overflow more accurately.
5199 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
5200
6d84508d
PE
5201 * macros.c: Integer and buffer overflow fixes.
5202 * keyboard.h (struct keyboard.kbd_macro_bufsize):
5203 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
5204 Use ptrdiff_t, not int, for sizes.
5205 Don't increment bufsize until after realloc succeeds.
5206 Check for size-calculation overflow.
5207 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
5208
437b2cb4
PE
5209 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
5210
8b9ac8b4
PE
5211 * lread.c: Integer overflow fixes.
5212 (read_integer): Radix is now EMACS_INT, not int,
5213 to improve quality of diagnostics for out-of-range radices.
5214 Calculate buffer size correctly for out-of-range radices.
5215 (read1): Check for integer overflow in radices, and in
5216 read-circle numbers.
82cb60d3
PE
5217 (read_escape): Avoid int overflow.
5218 (Fload, openp, read_buffer_size, read1)
5219 (substitute_object_recurse, read_vector, read_list, map_obarray):
5220 Use ptrdiff_t, not int, for sizes.
5221 (read1): Use EMACS_INT, not int, for sizes.
20270765 5222 Check for size overflow.
8b9ac8b4 5223
7fcccf1e
PE
5224 * image.c (cache_image): Check for size arithmetic overflow.
5225
bfbbd7e7
PE
5226 * lread.c: Integer overflow issues.
5227 (saved_doc_string_size, saved_doc_string_length)
5228 (prev_saved_doc_string_size, prev_saved_doc_string_length):
5229 Now ptrdiff_t, not int.
5230 (read1): Don't assume doc string length fits in int. Check for
5231 out-of-range doc string lengths.
5232 (read_list): Don't assume file position fits in int.
39019e54 5233 (read_escape): Check for hex character overflow.
bfbbd7e7 5234
4e323265
LL
52352011-06-22 Leo Liu <sdl.web@gmail.com>
5236
5237 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
5238 Move to minibuffer.el.
5239
85fece3e
PE
52402011-06-22 Paul Eggert <eggert@cs.ucla.edu>
5241
20b84ce9 5242 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
5243 The following patches are for when GLYPH_DEBUG && !XASSERT.
5244 * dispextern.h (trace_redisplay_p, dump_glyph_string):
5245 * dispnew.c (flush_stdout):
5246 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
5247 Mark as externally visible.
5248 * dispnew.c (check_window_matrix_pointers): Now static.
5249 * dispnew.c (window_to_frame_vpos):
5250 * xfns.c (unwind_create_frame):
5251 * xterm.c (x_check_font): Remove unused local.
5252 * scroll.c (CHECK_BOUNDS):
5253 * xfaces.c (cache_fache): Rename local to avoid shadowing.
5254 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
5255 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
5256 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
5257 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
5258 Now static.
5259 (debug_method_add): Use va_list and vsprintf rather than relying
5260 on undefined behavior with wrong number of arguments.
5261 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
5262 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
5263 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
5264 since we're not interested in debugging glyphs with old libraries.
5265 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
5266 GCC 4.6.0's static checking.
5267
0766b489
PE
52682011-06-22 Paul Eggert <eggert@cs.ucla.edu>
5269
31fd4b32
PE
5270 Integer overflow and signedness fixes (Bug#8873).
5271 A few related buffer overrun fixes, too.
5272
b79e8648
PE
5273 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
5274
0766b489
PE
5275 * dispextern.h (struct face.stipple):
5276 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
5277 (x_bitmap_mask, x_allocate_bitmap_record)
5278 (x_create_bitmap_from_data, x_create_bitmap_from_file)
5279 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
5280 (x_create_bitmap_from_xpm_data):
5281 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
5282 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
5283 (.bitmaps_last):
5284 * xfaces.c (load_pixmap):
5285 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
5286 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
5287 (.bitmaps_last, struct x_output.icon_bitmap):
5288 Use ptrdiff_t, not int, for bitmap indexes.
5289 (x_allocate_bitmap_record): Check for size overflow.
5290 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
5291
b081724f
PE
5292 Use ptrdiff_t, not int, for overlay counts.
5293 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
5294 * editfns.c (overlays_around, get_pos_property):
5295 * textprop.c (get_char_property_and_overlay):
5296 * xdisp.c (next_overlay_change, note_mouse_highlight):
5297 * xfaces.c (face_at_buffer_position):
21514da7
PE
5298 * buffer.c (OVERLAY_COUNT_MAX): New macro.
5299 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
5300 (Fnext_overlay_change, Fprevious_overlay_change)
5301 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 5302 Use ptrdiff_t, not int, for sizes.
21514da7 5303 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 5304
3de73e5e
PE
5305 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
5306
2606c57b
PE
5307 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
5308 (x_session_initialize): Do not assume string length fits in int.
5309
aaafe47a
PE
5310 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
5311 This is unlikely, but can occur if DPI is outlandish.
5312
2674ddc8 5313 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
5314 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
5315
28154962
PE
5316 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
5317 * xrdb.c (magic_file_p, search_magic_path):
5318 Omit last arg SUFFIX; it was always 0. All callers changed.
5319 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
5320
7de51af5
PE
5321 * xfont.c (xfont_match): Avoid need for strlen.
5322
25ed6cc3
PE
5323 * xfns.c: Don't assume strlen fits in int.
5324 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
5325
4eab31dd
PE
5326 * xdisp.c (message_log_check_duplicate): Return intmax_t,
5327 not unsigned long, as we prefer signed integers. All callers changed.
5328 Detect integer overflow in repeat count.
5329 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 5330 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 5331
171e2a58
PE
5332 * termcap.c: Don't assume sizes fit in int and never overflow.
5333 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
5334 (gobble_line): Check for size-calculation overflow.
5335
ad39faca 5336 * minibuf.c (Fread_buffer):
6e5bb2dc 5337 * lread.c (intern, intern_c_string):
74ca2eb3
PE
5338 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
5339 Don't assume string length fits in int.
5340
52c61c22 5341 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
5342 * gtkutil.c (style_changed_cb): Avoid need for strlen.
5343
b5b8c9e5
PE
5344 * font.c: Don't assume string length fits in int.
5345 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
5346 Use ptrdiff_t, not int.
ccd6111c
PE
5347 (font_intern_prop): Don't assume string length fits in int.
5348 Don't assume integer property fits in fixnum.
5349 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 5350
882f0d81 5351 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 5352 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
5353 Reformulate so as not to need the command string.
5354 Invoke gzip -cd rather than gunzip, as it's more portable.
5355 (lock_info_type, lock_file_1, lock_file):
5356 Don't assume pid_t and time_t fit in unsigned long.
5357 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
5358 (current_lock_owner): Prefer signed type for sizes.
5359 Use memcpy, not strncpy, where memcpy is what is really wanted.
5360 Don't assume (via atoi) that time_t and pid_t fit in int.
5361 Check for time_t and/or pid_t out of range, e.g., via a network share.
5362 Don't alloca where an auto var works fine.
5363
93f4cf88
PE
5364 * fileio.c: Fix some integer overflow issues.
5365 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
5366 Don't assume string length fits in int.
5367 (directory_file_name): Don't assume string length fits in long.
5368 (make_temp_name): Don't assume pid fits in int, or that its print
5369 length is less than 20.
5370
f3e92b69
PE
5371 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
5372
1bfdaf10
PE
5373 * coding.c (make_subsidiaries): Don't assume string length fits in int.
5374
35016e9a
PE
5375 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
5376
3d1e65a1
PE
5377 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
5378 We prefer signed integers, even for size calculations.
5379
0b963a93
PE
5380 * emacs.c: Don't assume string length fits in 'int'.
5381 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
5382 (main): Don't invoke strlen when not needed.
5383
573f4b54
PE
5384 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
5385 (XD_DEBUG_MESSAGE): Don't waste a byte.
5386
989f33ba
PE
5387 * callproc.c (getenv_internal_1, getenv_internal)
5388 (Fgetenv_internal):
965d34eb
PE
5389 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
5390
e4d29b33
PE
5391 * lread.c (invalid_syntax): Omit length argument.
5392 All uses changed. This doesn't fix a bug, but it simplifies the
5393 code away from its former Hollerith-constant appearance, and it's
5394 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 5395 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 5396
eb49b136
PE
5397 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
5398 This didn't break anything, but it didn't help either.
5399 It's confusing to put a bogus integer in a place where the actual
5400 value does not matter.
9f62aeb1 5401 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 5402 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 5403
15375a22
PE
5404 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
5405 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
5406 implementation.
b61cc01c
PE
5407 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
5408 We prefer signed types, and the value cannot exceed the EMACS_INT
5409 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
5410 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
5411 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
5412 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 5413
53b2623d
PE
5414 * indent.c (sane_tab_width): New function.
5415 (current_column, scan_for_column, Findent_to, position_indentation)
5416 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 5417 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 5418
51cab52b 5419 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 5420
f2ed8a70
PE
5421 * lisp.h (lint_assume): New macro.
5422 * composite.c (composition_gstring_put_cache):
5423 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
5424
abe80cc6
PE
5425 * editfns.c, insdel.c:
5426 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 5427
b02c740e
PE
5428 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
5429
ebc96716
PE
5430 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
5431
b4e50fa0 5432 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 5433 Use much-faster test for byte-length change.
311d5d7c 5434 Don't assume string byte-length fits in 'int'.
a4cf38e4 5435 Check that character arg fits in 'int'.
85461888 5436 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 5437
c0c1ee9f
PE
5438 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
5439
a498d7f4
PE
5440 * fns.c (concat): Catch string overflow earlier.
5441 Do not rely on integer wraparound.
5442
51cab52b
PE
5443 * dispextern.h (struct it.overlay_strings_charpos)
5444 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
5445 * xdisp.c (forward_to_next_line_start)
5446 (back_to_previous_visible_line_start)
5447 (reseat_at_next_visible_line_start, next_element_from_buffer):
5448 Don't arbitrarily truncate the value of 'selective' to int.
5449
76031fad
PE
5450 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
5451
5eb55db9
PE
5452 * composite.c: Don't truncate sizes to 'int'.
5453 (composition_gstring_p, composition_reseat_it)
5454 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
5455 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
5456 not EMACS_UINT, for indexes.
5eb55db9 5457
0703a717
PE
5458 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
5459
d6202519
PE
5460 * buffer.c: Include <verify.h>.
5461 (struct sortvec.priority, struct sortstr.priority):
8961a454 5462 Now EMACS_INT, not int.
c20998a7 5463 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
5464 (struct sortstr.size, record_overlay_string)
5465 (struct sortstrlist.size, struct sortlist.used):
5466 Don't truncate size to int.
5467 (record_overlay_string): Check for size-calculation overflow.
d6202519 5468 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 5469
d5a19415
JM
54702011-06-22 Jim Meyering <meyering@redhat.com>
5471
029529ac 5472 Don't leak an XBM-image-sized buffer
d5a19415
JM
5473 * image.c (xbm_load): Free the image buffer after using it.
5474
a9041e6c
PE
54752011-06-21 Paul Eggert <eggert@cs.ucla.edu>
5476
5477 Port to Sun C.
5478 * composite.c (find_automatic_composition): Omit needless 'return 0;'
5479 that Sun C diagnosed.
5480 * fns.c (secure_hash): Fix pointer signedness issue.
5481 * intervals.c (static_offset_intervals): New function.
5482 (offset_intervals): Use it.
5483
7f3f739f
LL
54842011-06-21 Leo Liu <sdl.web@gmail.com>
5485
5486 * deps.mk (fns.o):
5487 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
5488 sha512.h.
5489
5490 * fns.c (secure_hash): Rename from crypto_hash_function and change
5491 the first arg to accept symbols.
5b66d427 5492 (Fsecure_hash): New primitive.
7f3f739f
LL
5493 (syms_of_fns): New symbols.
5494
76147d94
DD
54952011-06-20 Deniz Dogan <deniz@dogan.se>
5496
5497 * process.c (Fset_process_buffer): Clarify return value in
5498 docstring.
5499
7d7d0045
CY
55002011-06-18 Chong Yidong <cyd@stupidchicken.com>
5501
5502 * dispnew.c (add_window_display_history): Use BVAR.
5503
5504 * xdisp.c (debug_method_add): Use BVAR.
5505 (check_window_end, dump_glyph_matrix, dump_glyph)
5506 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
5507
5508 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
5509 Likewise.
5510
5511 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
5512 check till after the cache is created in init_frame_faces.
5513
ff2bc410
SM
55142011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
5515
5516 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
5517
28177add
PE
55182011-06-16 Paul Eggert <eggert@cs.ucla.edu>
5519
dd3482fe
PE
5520 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
5521 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
5522 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
5523
393d71f3 5524 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
5525 * fileio.c (Finsert_file_contents):
5526 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
5527 Remove the old (too-loose) buffer overflow checks.
5528 They weren't needed, since make_gap checks for buffer overflow.
5529 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
5530 The old code merely checked for Emacs fixnum overflow, and relied
5531 on undefined (wraparound) behavior. The new code avoids undefined
5532 behavior, and also checks for ptrdiff_t and/or size_t overflow.
5533
2e6813b0 5534 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
5535 Tune. Don't use wider integers than needed. Don't use alloca.
5536 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 5537
599a9e4f
PE
5538 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
5539
99561444
PE
5540 * insdel.c, lisp.h (buffer_overflow): New function.
5541 (insert_from_buffer_1, replace_range, replace_range_2):
5542 * insdel.c (make_gap_larger):
5543 * editfns.c (Finsert_char):
5544 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
5545
28177add
PE
5546 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
5547
e69dafad
PE
55482011-06-15 Paul Eggert <eggert@cs.ucla.edu>
5549
4baa020d 5550 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 5551
b1c46f02
PE
5552 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
5553 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
5554
e69dafad
PE
5555 * fileio.c: Don't assume EMACS_INT fits in off_t.
5556 (emacs_lseek): New static function.
5557 (Finsert_file_contents, Fwrite_region): Use it.
5558 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
5559
566684ea
PE
5560 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
5561
e6966cd6
PE
5562 * fns.c: Don't overflow int when computing a list length.
5563 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
5564 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
5565 truncation on 64-bit hosts. Check for QUIT every
5566 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
5567 faster and is responsive enough.
5568 (Flength): Report an error instead of overflowing an integer.
5569 (Fsafe_length): Return a float if the value is not representable
5570 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 5571 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 5572 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 5573
dd0b0efb
PE
5574 * alloc.c: Check that resized vectors' lengths fit in fixnums.
5575 (header_size, word_size): New constants.
5576 (allocate_vectorlike): Don't check size overflow here.
5577 (allocate_vector): Check it here instead, since this is the only
5578 caller of allocate_vectorlike that could cause overflow.
5579 Check that the new vector's length is representable as a fixnum.
5580
86fe5cfe
PE
5581 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
5582 The previous code was bogus. For example, next_almost_prime (32)
5583 returned 39, which is undesirable as it is a multiple of 3; and
5584 next_almost_prime (24) returned 25, which is a multiple of 5 so
5585 why was the code bothering to check for multiples of 7?
5586
80e88859
PE
5587 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
5588
4a2f0ad6
PE
5589 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
5590
f66c7cf8
PE
5591 Variadic C functions now count arguments with ptrdiff_t.
5592 This partly undoes my 2011-03-30 change, which replaced int with size_t.
5593 Back then I didn't know that the Emacs coding style prefers signed int.
5594 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
5595 were being counted with int, which may truncate counts on 64-bit
5596 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
5597 * lisp.h (struct Lisp_Subr.function.aMANY)
5598 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
5599 Arg counts are now ptrdiff_t, not size_t.
5600 All variadic functions and their callers changed accordingly.
5601 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
5602 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
5603 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
5604 * callint.c (Fcall_interactively): Check arg count for overflow,
5605 to avoid potential buffer overrun. Use signed char, not 'int',
5606 for 'varies' array, so that we needn't bother to check its size
5607 calculation for overflow.
5608 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
5609 * eval.c (apply_lambda):
5610 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
5611 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
5612 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
5613
a1759b76
PE
5614 * callint.c (Fcall_interactively): Don't use index var as event count.
5615
d96be9fc
PE
5616 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
5617 * mem-limits.h (SIZE): Remove; no longer used.
5618
a690a978 5619 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 5620
578c21e6
PE
5621 Remove unnecessary casts.
5622 * xterm.c (x_term_init):
5623 * xfns.c (x_set_border_pixel):
5624 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
5625 These aren't needed now that we assume ANSI C.
5626
96f53c6c
PE
5627 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
5628 It's more likely to cause problems (due to unsigned overflow)
5629 than to cure them.
5630
83c77d31
PE
5631 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
5632
ee2079f1
PE
5633 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
5634
6da65536
PE
5635 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
5636
7147c4a4
PE
5637 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
5638
193e32d9
PE
5639 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
5640
e5533da6
PE
5641 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
5642
9910e595
PE
5643 GLYPH_CODE_FACE returns EMACS_INT, not int.
5644 * dispextern.h (merge_faces):
5645 * xfaces.c (merge_faces):
01103c44
PE
5646 * xdisp.c (get_next_display_element, next_element_from_display_vector):
5647 Don't assume EMACS_INT fits in int.
9910e595 5648
2638320e
PE
5649 * character.h (CHAR_VALID_P): Remove unused parameter.
5650 * fontset.c, lisp.h, xdisp.c: All uses changed.
5651
045eb8d9
PE
5652 * editfns.c (Ftranslate_region_internal): Omit redundant test.
5653
c1f134b5
PE
5654 * fns.c (concat): Minor tuning based on overflow analysis.
5655 This doesn't fix any bugs. Use int to hold character, instead
5656 of constantly refetching from Emacs object. Use XFASTINT, not
5657 XINT, for value known to be a character. Don't bother comparing
5658 a single byte to 0400, as it's always less.
5659
395fcb93 5660 * floatfns.c (Fexpt):
327eeec8
PE
5661 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
5662
abbd3d23
PE
5663 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
5664 for characters.
5665
684a03ef
PE
5666 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
5667
0fed43f3
PE
5668 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
5669 Without this fix, on a 64-bit host (aset S 0 4294967386) would
5670 incorrectly succeed when S was a string, because 4294967386 was
5671 truncated before it was used.
5672
8fd02eb7
PE
5673 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
5674 Otherwise, an out-of-range integer could cause undefined behavior
5675 on a 64-bit host.
5676
f8c86b69
PE
5677 * composite.c: Use int, not EMACS_INT, for characters.
5678 (fill_gstring_body, composition_compute_stop_pos): Use int, not
5679 EMACS_INT, for values that are known to be in character range.
5680 This doesn't fix any bugs but is the usual style inside Emacs and
5681 may generate better code on 32-bit machines.
5682
34206dd2
PE
5683 Make sure a 64-bit char is never passed to ENCODE_CHAR.
5684 This is for reasons similar to the recent CHAR_STRING fix.
5685 * charset.c (Fencode_char): Check that character arg is actually
5686 a character. Pass an int to ENCODE_CHAR.
5687 * charset.h (ENCODE_CHAR): Verify that the character argument is no
5688 wider than 'int', as a compile-time check to prevent future regressions
5689 in this area.
5690
c5958d4c 5691 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
5692
5693 Make sure a 64-bit char is never passed to CHAR_STRING.
5694 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
5695 by silently ignoring the top 32 bits, allowing some values
5696 that were far too large to be valid characters.
5697 * character.h: Include <verify.h>.
5698 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
5699 arguments are no wider than unsigned, as a compile-time check
5700 to prevent future regressions in this area.
5701 * data.c (Faset):
01103c44 5702 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
5703 (Fsubst_char_in_region):
5704 * fns.c (concat):
5705 * xdisp.c (decode_mode_spec_coding):
5706 Adjust to CHAR_STRING's new requirement.
5707 * editfns.c (Finsert_char, Fsubst_char_in_region):
5708 * fns.c (concat): Check that character args are actually
5709 characters. Without this test, these functions did the wrong
5710 thing with wildly out-of-range values on 64-bit hosts.
5711
d37ca623
PE
5712 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
5713 These casts should not be needed on 32-bit hosts, either.
5714 * keyboard.c (read_char):
5715 * lread.c (Fload): Remove casts to unsigned.
5716
ea204efb
PE
5717 * lisp.h (UNSIGNED_CMP): New macro.
5718 This fixes comparison bugs on 64-bit hosts.
5719 (ASCII_CHAR_P): Use it.
5720 * casefiddle.c (casify_object):
01103c44 5721 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
5722 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
5723 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
5724 * dispextern.h (FACE_FROM_ID):
5725 * keyboard.c (read_char): Use UNSIGNED_CMP.
5726
41cb286c
PE
5727 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
5728 not to EMACS_INT, to avoid GCC warning.
5729
4a1b9832
PE
5730 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
5731
55daad71
PE
5732 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
5733 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
5734 isn't needed on 32-bit machines.
8f95c75c 5735
01103c44
PE
5736 * buffer.c (Fgenerate_new_buffer_name):
5737 Use EMACS_INT for count, not int.
0ceccced 5738 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
5739
5740 * data.c (Qcompiled_function): Now static.
5741
c6f072e7
PE
5742 * window.c (window_body_lines): Now static.
5743
20ce5912
PE
5744 * image.c (gif_load): Rename local to avoid shadowing.
5745
9c4c5f81
PE
5746 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
5747 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
5748 * alloc.c (make_save_value): Integer argument is now of type
5749 ptrdiff_t, not int.
5750 (mark_object): Use ptrdiff_t, not int.
5751 * lisp.h (pD): New macro.
5752 * print.c (print_object): Use it.
5753
c0c5c8ae
PE
5754 * alloc.c: Use EMACS_INT, not int, to count objects.
5755 (total_conses, total_markers, total_symbols, total_vector_size)
5756 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
5757 (total_free_floats, total_floats, total_free_intervals)
5758 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
5759 Now EMACS_INT, not int. All uses changed.
5760 (Fgarbage_collect): Compute overall total using a double, so that
5761 integer overflow is less likely to be a problem. Check for overflow
5762 when converting back to an integer.
5a25e253
PE
5763 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
5764 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
5765 These were 'int' variables that could overflow on 64-bit hosts;
5766 they were never used, so remove them instead of repairing them.
211a0b2a 5767 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
5768 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
5769 Previously, this ceilinged at INT_MAX, but that doesn't work on
5770 64-bit machines.
e46bb31a 5771 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 5772
c78baabf 5773 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 5774 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
5775 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
5776 when a (possibly-narrower) signed value would do just as well.
5777 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 5778
c9d624c6
PE
5779 * alloc.c: Catch some string size overflows that we were missing.
5780 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
5781 for convenience in STRING_BYTES_MAX.
5782 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
5783 The definition here is exact; the one in lisp.h was approximate.
5784 (allocate_string_data): Check for string overflow. This catches
5785 some instances we weren't catching before. Also, it catches
5786 size_t overflow on (unusual) hosts where SIZE_MAX <= min
5787 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
5788 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 5789
c9d624c6
PE
5790 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
5791 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 5792 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 5793
353032ce
PE
5794 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
5795
2bccce07
PE
5796 * alloc.c (Fmake_string): Check for out-of-range init.
5797
0ac30604
SM
57982011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
5799
5800 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
5801
c195f2de
JD
58022011-06-14 Jan Djärv <jan.h.d@swipnet.se>
5803
5804 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
5805 xg_get_default_scrollbar_width.
5806
5807 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
5808 (int_gtk_range_get_value): Move to the scroll bar part of the file.
5809 (style_changed_cb): Call update_theme_scrollbar_width and call
5810 x_set_scroll_bar_default_width and xg_frame_set_char_size for
5811 all frames (Bug#8505).
5812 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
5813 Call gtk_window_set_resizable if HAVE_GTK3.
5814 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
5815 and height if HAVE_GTK3 (Bug#8505).
5816 (scroll_bar_width_for_theme): New variable.
5817 (update_theme_scrollbar_width): New function.
5818 (xg_get_default_scrollbar_width): Move code to
5819 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
5820 (xg_initialize): Call update_theme_scrollbar_width.
5821
5822 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
5823
5824 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
5825
e10ac9f1
MR
58262011-06-12 Martin Rudalics <rudalics@gmx.at>
5827
5828 * frame.c (make_frame): Call other_buffer_safely instead of
5829 other_buffer.
5830
5831 * window.c (temp_output_buffer_show): Call display_buffer with
5832 second argument Vtemp_buffer_show_specifiers and reset latter
5833 immediately after the call.
5834 (Vtemp_buffer_show_specifiers): New variable.
5835 (auto_window_vscroll_p, next_screen_context_lines)
5836 (Vscroll_preserve_screen_position): Remove leading asterisks from
5837 doc-strings.
5838
2d3c217e 58392011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 5840
7b7f97e8 5841 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
5842 * buffer.c (Qclone_number): Remove for now, as it's unused.
5843 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
5844 (record_buffer): Remove unused local.
5845 * frame.c (other_visible_frames, frame_buffer_list): Now static.
5846 (set_frame_buffer_list): Remove; unused.
5847 * frame.h (other_visible_frames): Remove decl.
5848 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
5849 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
5850 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
5851 if HAVE_GPM.
5852 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
5853 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
5854 Define only if HAVE_GPM.
5855 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
5856 (update_hints_inhibit): Remove; never set. All uses removed.
5857 * widgetprv.h (emacsFrameClassRec): Remove decl.
5858 * window.c (delete_deletable_window): Now returns void, since it
5859 wasn't returning anything.
5860 (compare_window_configurations): Remove unused locals.
5861 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
5862 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
5863 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
5864 the same widths as pointers. This follows up on the 2011-05-06 patch.
5865 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
5866 * xterm.h: Likewise.
5867 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
5868
1384b89e
JB
58692011-06-12 Juanma Barranquero <lekktu@gmail.com>
5870
5871 * makefile.w32-in: Update dependencies.
5872 (LISP_H): Add lib/intprops.h.
5873
1100a63c
CY
58742011-06-11 Chong Yidong <cyd@stupidchicken.com>
5875
5876 * image.c (gif_load): Add animation frame delay to the metadata.
5877 (syms_of_image): Use DEFSYM. New symbol `delay'.
5878
6198ccd0
MR
58792011-06-11 Martin Rudalics <rudalics@gmx.at>
5880
5881 * window.c (delete_deletable_window): Re-add.
5882 (Fset_window_configuration): Rewrite to handle dead buffers and
5883 consequently deletable windows.
5884 (window_tree, Fwindow_tree): Remove. Supply functionality in
5885 window.el.
5886 (compare_window_configurations): Simplify code.
5887
b6e3633c
AS
58882011-06-11 Andreas Schwab <schwab@linux-m68k.org>
5889
1ab0dee5
AS
5890 * image.c (imagemagick_load_image): Fix type mismatch.
5891 (Fimagemagick_types): Likewise.
5892
b6e3633c
AS
5893 * window.h (replace_buffer_in_windows): Declare.
5894
9397e56f
MR
58952011-06-11 Martin Rudalics <rudalics@gmx.at>
5896
5897 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
5898 Qclone_number. Remove external declaration of Qdelete_window.
5899 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
5900 code.
640c8776
SM
5901 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
5902 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
5903 (Fother_buffer): Rewrite doc-string. Major rewrite for new
5904 buffer list implementation.
5905 (other_buffer_safely): New function.
5906 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
5907 calls to replace_buffer_in_windows and
5908 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
5909 if allowed.
5910 (record_buffer): Inhibit quitting and rewrite using quittable
5911 functions. Run Qbuffer_list_update_hook if allowed.
5912 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
5913 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
5914 Move switch-to-buffer to window.el.
9397e56f
MR
5915 (bury-buffer): Move to window.el.
5916 (Vbuffer_list_update_hook): New variable.
5917
5918 * lisp.h (other_buffer_safely): Add prototype in buffer.c
5919 section.
5920
5921 * window.h (resize_frame_windows): Move up in code.
5922 (Fwindow_frame): Remove EXFUN.
5923 (replace_buffer_in_all_windows): Remove prototype.
5924 (replace_buffer_in_windows_safely): Add prototype.
5925
5926 * window.c: Declare Qdelete_window static again. Move down
5927 declaration of select_count.
5928 (Fnext_window, Fprevious_window): Rewrite doc-strings.
5929 (Fother_window): Move to window.el.
5930 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
5931 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
5932 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
5933 window.el.
5934 (replace_buffer_in_windows): Implement by calling
5935 Qreplace_buffer_in_windows.
5936 (replace_buffer_in_all_windows): Remove with some functionality
5937 moved into replace_buffer_in_windows_safely.
5938 (replace_buffer_in_windows_safely): New function.
5939 (select_window_norecord, select_frame_norecord): Move in front
5940 of run_window_configuration_change_hook. Remove now obsolete
5941 declarations.
640c8776
SM
5942 (Fset_window_buffer): Rewrite doc-string.
5943 Call Qrecord_window_buffer.
9397e56f
MR
5944 (keys_of_window): Move binding for other-window to window.el.
5945
b50691aa
CY
59462011-06-11 Chong Yidong <cyd@stupidchicken.com>
5947
5948 * dispextern.h (struct image): Replace data member, whose int_val
5949 and ptr_val fields were not used by anything, with a single
5950 lisp_val object.
5951
5952 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
5953 (gif_clear_image, gif_load, imagemagick_load_image)
5954 (gs_clear_image, gs_load): Callers changed.
5955
3f754b86
PE
59562011-06-10 Paul Eggert <eggert@cs.ucla.edu>
5957
cca69397
PE
5958 * buffer.h: Include <time.h>, for time_t.
5959 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
5960
109e28d0
PE
5961 Fix minor problems found by static checking.
5962
60737f02
PE
5963 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
5964
4b66faf3
PE
5965 Make identifiers static if they are not used in other modules.
5966 * data.c (Qcompiled_function, Qframe, Qvector):
5967 * image.c (QimageMagick, Qsvg):
5968 * minibuf.c (Qmetadata):
5969 * window.c (resize_window_check, resize_root_window): Now static.
5970 * window.h (resize_window_check, resize_root_window): Remove decls.
5971
109e28d0
PE
5972 * window.c (window_deletion_count, delete_deletable_window):
5973 Remove; unused.
46a4ce9e
PE
5974 (window_body_lines): Now static.
5975 (Fdelete_other_windows_internal): Mark vars as initialized.
5976 Make sure 'resize_failed' is initialized.
5977 (run_window_configuration_change_hook): Rename local to avoid shadowing.
5978 (resize_window_apply): Remove unused local.
5979 * window.h (delete_deletable_window): Remove decl.
5980
109e28d0 5981 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
5982 (imagemagick_load_image): Fix pointer signedness problem by changing
5983 last arg from unsigned char * to char *. All uses changed.
5984 Also, fix a local for similar reasons.
5985 Remove unused locals. Remove locals to avoid shadowing.
5986 (fn_rsvg_handle_free): Remove; unused.
5987 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 5988 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 5989
3f754b86
PE
5990 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
5991
2547adb1
CY
59922011-06-10 Chong Yidong <cyd@stupidchicken.com>
5993
5994 * image.c (gif_load): Fix omitted cast error introduced by
5995 2011-06-06 change.
5996
2c8e37d4
MR
59972011-06-10 Martin Rudalics <rudalics@gmx.at>
5998
5999 * window.h (resize_proportionally, orig_total_lines)
6000 (orig_top_line): Remove from window structure.
6001 (set_window_height, set_window_width, change_window_heights)
6002 (Fdelete_window): Remove prototypes.
6003 (resize_frame_windows): Remove duplicate declaration.
6004
440a42e3
EZ
60052011-06-10 Eli Zaretskii <eliz@gnu.org>
6006
6007 * window.h (resize_frame_windows, resize_window_check)
6008 (delete_deletable_window, resize_root_window)
6009 (resize_frame_windows): Declare prototypes.
6010
6011 * window.c (resize_window_apply): Make definition be "static" to
6012 match the prototype.
6013
562dd5e9
MR
60142011-06-10 Martin Rudalics <rudalics@gmx.at>
6015
6016 * window.c: Remove declarations of Qwindow_size_fixed,
6017 window_min_size_1, window_min_size_2, window_min_size,
6018 size_window, window_fixed_size_p, enlarge_window, delete_window.
6019 Remove static from declaration of Qdelete_window, it's
6020 temporarily needed by Fbury_buffer.
6021 (replace_window): Don't assign orig_top_line and
6022 orig_total_lines.
6023 (Fdelete_window, delete_window): Remove. Window deletion is
6024 handled by window.el.
640c8776
SM
6025 (window_loop): Remove DELETE_OTHER_WINDOWS case.
6026 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
6027 (Fdelete_other_windows): Remove. Deleting other windows is
6028 handled by window.el.
6029 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
6030 handled in window.el.
6031 (window_min_size_2, window_min_size_1, window_min_size): Remove.
6032 Window minimum sizes are handled in window.el.
6033 (shrink_windows, size_window, set_window_height)
6034 (set_window_width, change_window_heights, window_height)
6035 (window_width, CURBEG, CURSIZE, enlarge_window)
6036 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
6037 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
6038 handled in window.el.
6039 (make_dummy_parent): Rename to make_parent_window and give it a
6040 second argument horflag.
6041 (make_window): Don't set resize_proportionally any more.
6042 (Fsplit_window): Remove. Windows are split in window.el.
6043 (save_restore_action, save_restore_orig_size)
6044 (shrink_window_lowest_first, save_restore_orig_size): Remove.
6045 Resize mini windows in window.el.
6046 (grow_mini_window, shrink_mini_window): Implement by calling
6047 Qresize_root_window_vertically, resize_window_check and
6048 resize_window_apply.
640c8776
SM
6049 (saved_window, Fset_window_configuration, save_window_save):
6050 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
6051 resize_proportionally.
6052 (window_min_height, window_min_width): Move to window.el.
6053 (keys_of_window): Move bindings for delete-other-windows,
6054 split-window, delete-window and enlarge-window to window.el.
6055
6056 * buffer.c: Temporarily extern Qdelete_window.
6057 (Fbury_buffer): Temporarily call Qdelete_window instead of
6058 Fdelete_window (Fbury_buffer will move to window.el soon).
6059
6060 * frame.c (set_menu_bar_lines_1): Remove code handling
6061 orig_top_line and orig_total_lines.
6062
6063 * dispnew.c (adjust_frame_glyphs_initially): Don't use
6064 set_window_height but set heights directly.
6065 (change_frame_size_1): Use resize_frame_windows.
6066
6067 * xdisp.c (init_xdisp): Don't use set_window_height but set
6068 heights directly.
6069
640c8776
SM
6070 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
6071 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
6072 run_window_configuration_change_hook.
6073
6074 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
6075 instead of change_window_heights and run
6076 run_window_configuration_change_hook.
6077
1a13852e
MR
60782011-06-09 Martin Rudalics <rudalics@gmx.at>
6079
6080 * window.c (replace_window): Rename second argument REPLACEMENT to
6081 NEW. New third argument SETFLAG. Rewrite.
6082 (delete_window, make_dummy_parent): Call replace_window with
6083 third argument 1.
6084 (window_list_1): Move down in code.
6085 (run_window_configuration_change_hook): Move set_buffer part
6086 before select_frame_norecord part in order to unwind correctly.
6087 Rename count1 to count.
6088 (recombine_windows, delete_deletable_window, resize_root_window)
6089 (Fdelete_other_windows_internal)
6090 (Frun_window_configuration_change_hook, make_parent_window)
6091 (resize_window_check, resize_window_apply, Fresize_window_apply)
6092 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
6093 (Fdelete_window_internal, Fresize_mini_window_internal):
6094 New functions.
1a13852e
MR
6095 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
6096
f3d1777e
MR
60972011-06-08 Martin Rudalics <rudalics@gmx.at>
6098
496e208e
MR
6099 * window.h (window): Add some new members to window structure -
6100 normal_lines, normal_cols, new_total, new_normal, clone_number,
6101 splits, nest, prev_buffers, next_buffers.
6102 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 6103 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 6104
f3d1777e
MR
6105 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
6106 Remove.
496e208e
MR
6107 (make_dummy_parent): Set new members of windows structure.
6108 (make_window): Move down in code. Handle new members of window
6109 structure.
6110 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
6111 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
6112 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
6113 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
6114 (Fset_window_next_buffers, Fset_window_clone_number):
6115 New functions.
496e208e
MR
6116 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
6117 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
6118 Doc-string fixes.
6119 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
6120 Argument WINDOW can be now internal window too.
6121 (Fwindow_use_time): Move up in code.
6122 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
6123 Rewrite doc-string.
6124 (Fset_window_configuration, saved_window)
6125 (Fcurrent_window_configuration, save_window_save): Handle new
6126 members of window structure.
b9e809c2
MR
6127 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
6128 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
6129 (syms_of_window): New Lisp objects Qrecord_window_buffer,
6130 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
6131 Qget_mru_window, Qresize_root_window,
6132 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
6133 Qauto_buffer_name; staticpro them.
f3d1777e 6134
abde8f8c
MR
61352011-06-07 Martin Rudalics <rudalics@gmx.at>
6136
6137 * window.c (Fwindow_total_size, Fwindow_left_column)
6138 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
6139 (Fwindow_list_1): New functions.
6140 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
6141 (Fwindow_width, Fscroll_left, Fscroll_right):
6142 Use window_body_cols instead of window_box_text_cols.
6143 (delete_window, Fset_window_configuration):
6144 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
6145 (delete_all_subwindows): Take a window as argument and not a
6146 structure. Rewrite.
190b47e6
MR
6147 (window_loop): Remove handling of GET_LRU_WINDOW and
6148 GET_LARGEST_WINDOW.
6149 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
6150
6151 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
6152 window_box_text_cols. delete_all_subwindows now takes a
6153 Lisp_Object as argument.
abde8f8c 6154
640c8776
SM
6155 * indent.c (compute_motion, Fcompute_motion):
6156 Use window_body_cols instead of window_box_text_cols.
abde8f8c 6157
fa8a67e6
MR
6158 * frame.c (delete_frame): Call delete_all_subwindows with root
6159 window as argument.
6160
a54e3482
DC
61612011-06-07 Daniel Colascione <dan.colascione@gmail.com>
6162
6163 * fns.c (Fputhash): Document return value.
6164
60002bf5
CY
61652011-06-06 Chong Yidong <cyd@stupidchicken.com>
6166
6167 * image.c (gif_load): Implement gif89a spec "no disposal" method.
6168
0c671da6 61692011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 6170
b862a52a 6171 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 6172
be44ca6c
PE
6173 Check for overflow when converting integer to cons and back.
6174 * charset.c (Fdefine_charset_internal, Fdecode_char):
6175 Use cons_to_unsigned to catch overflow.
6176 (Fencode_char): Use INTEGER_TO_CONS.
6177 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
6178 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
6179 * data.c (long_to_cons, cons_to_long): Remove.
6180 (cons_to_unsigned, cons_to_signed): New functions.
6181 These signal an error for invalid or out-of-range values.
6182 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
6183 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
6184 * font.c (Ffont_variation_glyphs):
6185 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
6186 * lisp.h: Include <intprops.h>.
6187 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
6188 (cons_to_signed, cons_to_unsigned): New decls.
6189 (long_to_cons, cons_to_long): Remove decls.
6190 * undo.c (record_first_change): Use INTEGER_TO_CONS.
6191 (Fprimitive_undo): Use CONS_TO_INTEGER.
6192 * xfns.c (Fx_window_property): Likewise.
6193 * xselect.c: Include <limits.h>.
6194 (x_own_selection, selection_data_to_lisp_data):
6195 Use INTEGER_TO_CONS.
6196 (x_handle_selection_request, x_handle_selection_clear)
6197 (x_get_foreign_selection, Fx_disown_selection_internal)
6198 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
6199 (lisp_data_to_selection_data): Use cons_to_unsigned.
6200 (x_fill_property_data): Use cons_to_signed.
6201 Report values out of range.
6202
d1f3d2af
PE
6203 Check for buffer and string overflow more precisely.
6204 * buffer.h (BUF_BYTES_MAX): New macro.
6205 * lisp.h (STRING_BYTES_MAX): New macro.
6206 * alloc.c (Fmake_string):
6207 * character.c (string_escape_byte8):
6208 * coding.c (coding_alloc_by_realloc):
6209 * doprnt.c (doprnt):
6210 * editfns.c (Fformat):
6211 * eval.c (verror):
6212 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
6213 since they may not be the same number.
6214 * editfns.c (Finsert_char):
6215 * fileio.c (Finsert_file_contents):
6216 Likewise for BUF_BYTES_MAX.
6217
dd52fcea
PE
6218 * image.c: Use ptrdiff_t, not int, for sizes.
6219 (slurp_file): Switch from int to ptrdiff_t.
6220 All uses changed.
6221 (slurp_file): Check that file size fits in both size_t (for
6222 malloc) and ptrdiff_t (for sanity and safety).
6223
7f9bbdbb
PE
6224 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
6225 if b->modtime has its maximal value.
6226
dfe18f82
PE
6227 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
6228
84acfcf0
PE
6229 Don't assume time_t can fit into int.
6230 * buffer.h (struct buffer.modtime): Now time_t, not int.
6231 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
6232 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
6233
ccd9a01a
PE
6234 Minor fixes for signed vs unsigned integers.
6235 * character.h (MAYBE_UNIFY_CHAR):
6236 * charset.c (maybe_unify_char):
6237 * keyboard.c (read_char, reorder_modifiers):
6238 XINT -> XFASTINT, since the integer must be nonnegative.
6239 * ftfont.c (ftfont_spec_pattern):
6240 * keymap.c (access_keymap, silly_event_symbol_error):
6241 XUINT -> XFASTINT, since the integer must be nonnegative.
6242 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
6243 since it makes no difference and we prefer signed.
6244 * keyboard.c (record_char): Use XUINT when all the neighbors do.
6245 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
6246 nonnegative.
6247
d6d100dd
SM
62482011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
6249
6250 * window.h (Fwindow_frame): Declare.
6251
2b6148e4
PE
62522011-06-06 Paul Eggert <eggert@cs.ucla.edu>
6253
6254 * alloc.c: Simplify handling of large-request failures (Bug#8800).
6255 (SPARE_MEMORY): Always define.
6256 (LARGE_REQUEST): Remove.
6257 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
6258
f230ecc9
MR
62592011-06-06 Martin Rudalics <rudalics@gmx.at>
6260
727e958e
MR
6261 * lisp.h: Move EXFUNS for Fframe_root_window,
6262 Fframe_first_window and Fset_frame_selected_window to window.h.
6263
6264 * window.h: Move EXFUNS for Fframe_root_window,
6265 Fframe_first_window and Fset_frame_selected_window here from
6266 lisp.h.
6267
6268 * frame.c (Fwindow_frame, Fframe_first_window)
6269 (Fframe_root_window, Fframe_selected_window)
6270 (Fset_frame_selected_window): Move to window.c.
6271 (Factive_minibuffer_window): Move to minibuf.c.
6272 (Fother_visible_frames_p): New function.
6273
6274 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
6275
f230ecc9
MR
6276 * window.c (decode_window, decode_any_window): Move up in code.
6277 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
6278 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
6279 (Fwindow_buffer): Move up and rewrite doc-string.
6280 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
6281 (Fwindow_prev): New functions.
727e958e
MR
6282 (Fwindow_frame): Move here from frame.c. Accept any window as
6283 argument.
6284 (Fframe_root_window, Fframe_first_window)
6285 (Fframe_selected_window): Move here from frame.c. Accept frame
6286 or arbitrary window as argument. Update doc-strings.
6287 (Fminibuffer_window): Move up in code.
6288 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
6289 (Fset_frame_selected_window): Move here from frame.c.
6290 Marginal rewrite.
727e958e
MR
6291 (Fselected_window, select_window, Fselect_window): Move up in
6292 code. Minor doc-string fixes.
f230ecc9 6293
4d09bcf6
PE
62942011-06-06 Paul Eggert <eggert@cs.ucla.edu>
6295
6296 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
6297 Do not assume that spare memory exists; that assumption is valid
6298 only if SYSTEM_MALLOC.
6299 (LARGE_REQUEST): New macro, so that the issue of large requests
6300 is separated from the issue of spare memory.
6301
810928a2
AS
63022011-06-05 Andreas Schwab <schwab@linux-m68k.org>
6303
172418ad
AS
6304 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
6305 format. (Bug#8806)
6306
43f862f7
AS
6307 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
6308
810928a2
AS
6309 * xfns.c (x_set_scroll_bar_default_width): Move declarations
6310 before statements.
6311
a059fe24
JD
63122011-06-05 Jan Djärv <jan.h.d@swipnet.se>
6313
6314 * gtkutil.c (xg_get_default_scrollbar_width): New function.
6315
6316 * gtkutil.h: Declare xg_get_default_scrollbar_width.
6317
6318 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
6319 min width by calling x_set_scroll_bar_default_width (Bug#8505).
6320
989bf368
JB
63212011-06-05 Juanma Barranquero <lekktu@gmail.com>
6322
6323 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
6324
4b80f674
CY
63252011-06-04 Chong Yidong <cyd@stupidchicken.com>
6326
6327 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
6328 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
6329 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
6330 New error handlers.
4b80f674
CY
6331 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
6332 Obey Vx_select_enable_clipboard_manager. Catch errors in
6333 x_clipboard_manager_save (Bug#8779).
6334 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 6335 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 6336
99a33b77 63372011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
6338
6339 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
6340
99a33b77 63412011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
6342
6343 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
6344 in the current matrix if keep_current_p is non-zero.
6345
8264569d
EZ
63462011-06-04 Eli Zaretskii <eliz@gnu.org>
6347
6348 * bidi.c (bidi_level_of_next_char): Fix last change.
6349
57f97249
EZ
63502011-06-03 Eli Zaretskii <eliz@gnu.org>
6351
fec2107c 6352 Support bidi reordering of text covered by display properties.
57f97249 6353
fec2107c
EZ
6354 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
6355 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
6356 (bidi_cache_search, bidi_cache_iterator_state)
6357 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
6358 (bidi_level_of_next_char, bidi_move_to_visually_next):
6359 Support character positions inside a run of characters covered by a
fec2107c
EZ
6360 display string.
6361 (bidi_paragraph_init, bidi_resolve_explicit_1)
6362 (bidi_level_of_next_char): Call bidi_fetch_char and
6363 bidi_fetch_char_advance instead of FETCH_CHAR and
6364 FETCH_CHAR_ADVANCE.
6365 (bidi_init_it): Initialize new members.
6366 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
6367 definitions.
6368 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
6369 instead of using explicit *_CHAR codes.
d6d100dd
SM
6370 (bidi_resolve_explicit, bidi_resolve_weak):
6371 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
6372 bidirectional text is supported only in multibyte buffers.
6373 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
6374 it to initialize the frame_window_p member of struct bidi_it.
6375 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
6376 (bidi_resolve_explicit, bidi_resolve_weak)
6377 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
6378 bidi_it->nchars is non-positive.
6379 (bidi_level_of_next_char): Don't try to lookup the cache for the
6380 next/previous character if nothing is cached there yet, or if we
6381 were just reseat()'ed to a new position.
c40e2fb2 6382
0e14fe90
EZ
6383 * xdisp.c (set_cursor_from_row): Set start and stop points
6384 according to the row's direction when priming the loop that looks
6385 for the glyph on which to display cursor.
6386 (single_display_spec_intangible_p): Function deleted.
6387 (display_prop_intangible_p): Reimplement to call
6388 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
6389 Accept 3 additional arguments needed by handle_display_spec.
6390 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
6391 values: lists, `(when COND...)' forms, etc.
6392 (single_display_spec_string_p): Support property values that are
6393 lists with the argument STRING its top-level element.
6394 (display_prop_string_p): Fix the condition for processing a
6395 property that is a list to be consistent with handle_display_spec.
fec2107c 6396 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
6397 last portion of handle_display_prop.
6398 (compute_display_string_pos): Accept additional argument
6399 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
6400 value of a `display' property is a "replacing spec".
6401 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
6402 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
6403 the display property, but just return a value indicating whether
6404 the display property will replace the characters it covers.
6405 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
6406 frame_window_p members of struct bidi_it.
d6d100dd
SM
6407 (compute_display_string_pos, compute_display_string_end):
6408 New functions.
fec2107c
EZ
6409 (push_it): Accept second argument POSITION, where pop_it should
6410 jump to continue iteration.
6411 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 6412
fec2107c
EZ
6413 * keyboard.c (adjust_point_for_property): Adjust the call to
6414 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
6415
6416 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
6417 (bidi_init_it): Update prototypes.
6418 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
6419 (compute_display_string_pos, compute_display_string_end):
6420 Declare prototypes.
fec2107c
EZ
6421 (struct bidi_it): New members nchars and disp_pos. ch_len is now
6422 EMACS_INT.
fc6f18ce 6423
40087514 64242011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 6425
57f53182
PE
6426 Malloc failure behavior now depends on size of allocation.
6427 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
6428 * lisp.h: Change signatures accordingly.
6429 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
6430 All callers changed. (Bug#8762)
6431
6432 * gnutls.c: Use Emacs's memory allocators.
6433 Without this change, the gnutls library would invoke malloc etc.
6434 directly, which causes problems on non-SYNC_INPUT hosts, and which
6435 runs afoul of improving memory_full behavior. (Bug#8761)
6436 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
6437 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
6438 xfree instead of the default malloc, realloc, free.
6439 (Fgnutls_boot): No need to check for memory allocation failure,
6440 since xmalloc does that for us.
6441
ac32cd99 6442 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
6443 * category.c (hash_get_category_set):
6444 * ccl.c (ccl_driver):
6445 * charset.c (Fdefine_charset_internal):
6446 * charset.h (struct charset.hash_index):
6447 * composite.c (get_composition_id, gstring_lookup_cache)
6448 (composition_gstring_put_cache):
6449 * composite.h (struct composition.hash_index):
6450 * dispextern.h (struct image.hash):
6451 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
6452 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
6453 (hashfn_equal, hashfn_user_defined, make_hash_table)
6454 (maybe_resize_hash_table, hash_lookup, hash_put)
6455 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
6456 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
6457 (Fsxhash, Fgethash, Fputhash, Fmaphash):
6458 * image.c (make_image, search_image_cache, lookup_image)
6459 (xpm_put_color_table_h):
6460 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 6461 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 6462 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 6463 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
6464 * alloc.c (allocate_vectorlike):
6465 Check for overflow in vector size calculations.
6466 * ccl.c (ccl_driver):
6467 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
6468 * fns.c, image.c: Remove unnecessary static decls that would otherwise
6469 need to be updated by these changes.
40087514
PE
6470 * fns.c (make_hash_table, maybe_resize_hash_table):
6471 Check for integer overflow with large hash tables.
0de4bb68
PE
6472 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
6473 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
6474 (SXHASH_REDUCE): New macro.
6475 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
6476 Use it instead of discarding useful hash info with large hash values.
6477 (sxhash_float): New function.
6478 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
6479 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
6480 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
6481 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
6482 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
6483 Adjust signatures to match updated version of code.
6484 (consing_since_gc): Now EMACS_INT, since a single hash table can
6485 use more than INT_MAX bytes.
6486
698d32e2
DN
64872011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
6488
6489 Make it possible to build with GCC-4.6+ -O2 -flto.
6490
6491 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
6492
fd6fa53f
SM
64932011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
6494
6495 * minibuf.c (get_minibuffer, read_minibuf_unwind):
6496 Call minibuffer-inactive-mode.
6497
864db017
JB
64982011-05-31 Juanma Barranquero <lekktu@gmail.com>
6499
6500 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
6501 Update dependencies.
6502
2ad0baf4
DN
65032011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
6504
6505 * data.c (init_data): Remove code for UTS, this system is not
6506 supported anymore.
6507
4fcc2638
DN
65082011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
6509
6510 Don't force ./temacs to start in terminal mode.
6511
6512 * frame.c (make_initial_frame): Initialize faces in all cases, not
6513 only when CANNOT_DUMP is defined.
6514 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
6515
c56e0fd5
DN
65162011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
6517
6518 * dispnew.c (add_window_display_history): Use const for the string
6519 pointer. Remove declaration, not needed.
6520
333d54da 65212011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 6522
55d4c1b2 6523 Use 'inline', not 'INLINE'.
333d54da 6524 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
6525 * alloc.c, fontset.c (INLINE): Remove.
6526 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
6527 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
6528 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
6529 * gmalloc.c (register_heapinfo): Use inline unconditionally.
6530 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
6531
738db178
DN
65322011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
6533
6534 Make it possible to run ./temacs.
6535
6536 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
6537 syms_of_callproc does the same thing. Remove test for
6538 "initialized", do it in the caller.
6539 * emacs.c (main): Avoid calling set_initial_environment when dumping.
6540
620c53a6
SM
65412011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
6542
6543 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
6544 (read_minibuf): Use get_minibuffer.
6545 (syms_of_minibuf): Use DEFSYM.
6546 (Qmetadata): New var.
6547 * data.c (Qbuffer): Don't make it static.
6548 (syms_of_data): Use DEFSYM.
6549
e003a292
PE
65502011-05-31 Paul Eggert <eggert@cs.ucla.edu>
6551
6552 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
6553 (CCL_CODE_MIN): New macro.
6554
ed008a6d
PE
65552011-05-30 Paul Eggert <eggert@cs.ucla.edu>
6556
3687c2ef
PE
6557 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
6558
ed008a6d
PE
6559 * eval.c (Qdebug): Now static.
6560 * lisp.h (Qdebug): Remove decl. This reverts a part of the
6561 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
6562 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
6563
d66c4c7c
CY
65642011-05-29 Chong Yidong <cyd@stupidchicken.com>
6565
6566 * image.c: Various fixes to ImageMagick code comments.
6567 (Fimagemagick_types): Doc fix.
6568
5fbc2025
PE
65692011-05-29 Paul Eggert <eggert@cs.ucla.edu>
6570
0196f88a
PE
6571 Minor fixes prompted by GCC 4.6.0 warnings.
6572
6573 * xselect.c (converted_selections, conversion_fail_tag): Now static.
6574
5fbc2025
PE
6575 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
6576 (x_clipboard_manager_save_all): Move extern decl to ...
6577 * xterm.h: ... here, so that it can be checked for consistency.
6578
1dd3c2d9
CY
65792011-05-29 Chong Yidong <cyd@stupidchicken.com>
6580
6581 * xselect.c (x_clipboard_manager_save_frame)
6582 (x_clipboard_manager_save_all): New functions.
6583 (Fx_clipboard_manager_save): Lisp function deleted.
6584
6585 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
6586 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
6587
6588 * xterm.h: Update prototype.
6589
5ba6571d
WX
65902011-05-28 William Xu <william.xwl@gmail.com>
6591
6592 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
6593 exiting (Bug#8239).
6594
3eaff834
JM
65952011-05-28 Jim Meyering <meyering@redhat.com>
6596
e1900994 6597 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
6598 * fns.c (to_uchar): Define.
6599 (crypto_hash_function): Use it to convert some newly-signed
6600 variables to unsigned, to avoid sign-extension bugs. For example,
6601 without this change, (md5 "truc") would evaluate to
6602 45723a2aff78ff4fff7fff1114760e62 rather than the expected
6603 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 6604 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 6605
0f6990a7
PE
66062011-05-27 Paul Eggert <eggert@cs.ucla.edu>
6607
6608 Integer overflow fixes.
c8a9ca5a 6609
08686060
PE
6610 * dbusbind.c: Serial number integer overflow fixes.
6611 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
6612 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
6613 to hold a serial number that is too large for a fixnum.
6614 (Fdbus_method_return_internal, Fdbus_method_error_internal):
6615 Check for serial numbers out of range. Decode any serial number
59568bf0 6616 that was so large that it became a float. (Bug#8722)
08686060 6617
2d1fc3c7
PE
6618 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
6619 (Fdbus_call_method, Fdbus_call_method_asynchronously):
6620 Use XFASTINT rather than XUINT when numbers are nonnegative.
6621 (xd_append_arg, Fdbus_method_return_internal):
6622 (Fdbus_method_error_internal): Likewise. Also, for unsigned
6623 arguments, check that Lisp number is nonnegative, rather than
59568bf0 6624 silently wrapping negative numbers around. (Bug#8722)
30217ff0 6625 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 6626 (Bug#8722)
2d1fc3c7 6627
c8a9ca5a
PE
6628 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
6629
519e1d69
PE
6630 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
6631
6df6ae42 6632 ccl: Add integer overflow checks.
30569699
PE
6633 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
6634 (IN_INT_RANGE): New macros.
6635 (ccl_driver): Use them to check for integer overflow when
6636 decoding a CCL program. Many of the new checks are whether XINT (x)
6637 fits in int; it doesn't always, on 64-bit hosts. The new version
6638 doesn't catch all possible integer overflows, but it's an
847044ea 6639 improvement. (Bug#8719)
30569699 6640
c11285dc
PE
6641 * alloc.c (make_event_array): Use XINT, not XUINT.
6642 There's no need for unsigned here.
6643
fdccd48e
PE
6644 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
6645 This follows up to the 2011-05-06 change that substituted uintptr_t
6646 for EMACS_INT. This case wasn't caught back then.
6647
37910ab2
PE
6648 Rework Fformat to avoid integer overflow issues.
6649 * editfns.c: Include <float.h> unconditionally, as it's everywhere
6650 now (part of C89). Include <verify.h>.
6651 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
6652 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
6653 (Fformat): Avoid the prepass trying to compute sizes; it was only
6654 approximate and thus did not catch overflow reliably. Instead, walk
6655 through the format just once, formatting and computing sizes as we go,
6656 checking for integer overflow at every step, and allocating a larger
6657 buffer as needed. Keep track separately whether the format is
6658 multibyte. Keep only the most-recently calculated precision, rather
6659 than them all. Record whether each argument has been converted to
6660 string. Use EMACS_INT, not int, for byte and char and arg counts.
6661 Support field widths and precisions larger than INT_MAX. Avoid
6662 sprintf's undefined behavior with conversion specifications such as %#d
6663 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
6664 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
6665 formatting out-of-range floating point numbers with int
9173deec 6666 formats. (Bug#8668)
37910ab2 6667
2e6578fb
PE
6668 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
6669
0ae6bdee
PE
6670 * data.c: Avoid integer truncation in expressions involving floats.
6671 * data.c: Include <intprops.h>.
6672 (arith_driver): When there's an integer overflow in an expression
6673 involving floating point, convert the integers to floating point
6674 so that the resulting value does not suffer from catastrophic
6675 integer truncation. For example, on a 64-bit host (* 4
6676 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
6677 Do not rely on undefined behavior after integer overflow.
6678
de883a70
PE
6679 merge count_size_as_multibyte, parse_str_to_multibyte
6680 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 6681 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
6682 Check for integer overflow.
6683 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
6684 since it's now a duplicate of the other. This is more of
6685 a character than a buffer op, so better that it's in character.c.
6686 * fns.c, print.c: Adjust to above changes.
6687
2ff916cb
PE
66882011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
6689
6690 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
6691
f1b54466
PE
66922011-05-27 Paul Eggert <eggert@cs.ucla.edu>
6693
fb1ac845
PE
6694 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
6695 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
6696 (x_clipboard_manager_save): Now static.
6697 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
6698
f1b54466
PE
6699 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
6700 (crypto_hash_function): Now static.
6701 Fix pointer signedness problems. Avoid unnecessary initializations.
6702
a9f737ee
CY
67032011-05-27 Chong Yidong <cyd@stupidchicken.com>
6704
6705 * termhooks.h (Vselection_alist): Make it terminal-local.
6706
6707 * terminal.c (create_terminal): Initialize it.
6708
6709 * xselect.c: Support for clipboard managers.
6710 (Vselection_alist): Move to termhooks.h as terminal-local var.
6711 (LOCAL_SELECTION): New macro.
6712 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
6713 (symbol_to_x_atom): Remove gratuitous arg.
6714 (x_handle_selection_request, lisp_data_to_selection_data)
6715 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
6716 (x_own_selection, x_get_local_selection, x_convert_selection):
6717 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
6718 (some_frame_on_display): Delete unused function.
6719 (Fx_own_selection_internal, Fx_get_selection_internal)
6720 (Fx_disown_selection_internal, Fx_selection_owner_p)
6721 (Fx_selection_exists_p): New optional frame arg.
6722 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
6723 (x_handle_selection_clear): Don't treat other terminals with the
6724 same keyboard specially. Use the terminal-local Vselection_alist.
6725 (x_clear_frame_selections): Use Frun_hook_with_args.
6726
6727 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
6728
6729 * xterm.h: Add support for those atoms.
6730
e067f0c1
CY
67312011-05-26 Chong Yidong <cyd@stupidchicken.com>
6732
6733 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
6734 (converted_selections, conversion_fail_tag): New global variables.
6735 (x_selection_request_lisp_error): Free the above.
6736 (x_get_local_selection): Remove unnecessary code.
6737 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
6738 of converted selections stored in converted_selections.
6739 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
6740 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
6741 (x_convert_selection): New function.
6742 (x_handle_selection_event): Simplify.
6743 (x_get_foreign_selection): Don't ignore incoming requests while
6744 waiting for an answer; this will fail when we implement
6745 SAVE_TARGETS, and seems unnecessary anyway.
6746 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
6747 (Vx_sent_selection_functions): Doc fix.
6748
0f4aebc0
LL
67492011-05-26 Leo Liu <sdl.web@gmail.com>
6750
6751 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
6752
e61124cd
YM
67532011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6754
6755 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
6756
6757 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
6758 for fringe update if it has periodic bitmap.
ac389d0c 6759 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
6760 and fringe_bitmap_periodic_p.
6761
6762 * fringe.c (get_fringe_bitmap_data): New function.
6763 (draw_fringe_bitmap_1, update_window_fringes): Use it.
6764 (update_window_fringes): Record periodicity of fringe bitmap in glyph
6765 row. Mark glyph row for fringe update if periodicity changed.
6766
6767 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
6768 for fringe update unless it has periodic bitmap.
6769
f16d9837
KH
67702011-05-25 Kenichi Handa <handa@m17n.org>
6771
6772 * xdisp.c (get_next_display_element): Set correct it->face_id for
6773 a static composition.
6774
e1b90ef6
LL
67752011-05-24 Leo Liu <sdl.web@gmail.com>
6776
6777 * deps.mk (fns.o):
6778 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
6779
6780 * fns.c (crypto_hash_function, Fsha1): New function.
6781 (Fmd5): Use crypto_hash_function.
6782 (syms_of_fns): Add Ssha1.
6783
7400048f
PE
67842011-05-22 Paul Eggert <eggert@cs.ucla.edu>
6785
6786 * gnutls.c: Remove unused macros.
6787 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
6788 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
6789 Remove macros that are defined and never used.
6790 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
6791
abb71cf4
CY
67922011-05-22 Chong Yidong <cyd@stupidchicken.com>
6793
6794 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
6795 (Fx_get_selection_internal): Minor cleanup.
6796 (Fx_own_selection_internal): Rename arguments for consistency with
6797 select.el.
6798
6307db39
PE
67992011-05-22 Paul Eggert <eggert@cs.ucla.edu>
6800
6801 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
6802
f3d4e0a4
CY
68032011-05-22 Chong Yidong <cyd@stupidchicken.com>
6804
6805 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
6806
4d8ade89
YM
68072011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6808
6809 * dispnew.c (scrolling_window): Don't exclude the case that the
6810 last enabled row in the desired matrix touches the bottom boundary.
6811
32078c8d
GM
68122011-05-21 Glenn Morris <rgm@gnu.org>
6813
6814 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
6815 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
6816 and add some more files.
32078c8d 6817
7285dc67
EZ
68182011-05-20 Eli Zaretskii <eliz@gnu.org>
6819
6820 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
6821 report_file_error introduced by the change from 2011-05-07.
6822
89d1bd22
PE
68232011-05-20 Paul Eggert <eggert@cs.ucla.edu>
6824
6825 * systime.h (Time): Define only if emacs is defined.
6826 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
6827 where the include path doesn't have X11/X.h by default. See
6828 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
6829
cd394be1 68302011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
6831
6832 * composite.c (find_automatic_composition): Fix previous change.
6833
b9704ad9
GM
68342011-05-20 Glenn Morris <rgm@gnu.org>
6835
6836 * lisp.mk: New file, split from Makefile.in.
6837 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
6838 (shortlisp): Remove.
6839 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
6840
4a720484
GM
68412011-05-19 Glenn Morris <rgm@gnu.org>
6842
6843 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
6844 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
6845 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
6846 (lisp): Set the order to that of loadup.el.
6847 (shortlisp): Make it a copy of $lisp.
6848 (SOME_MACHINE_LISP): Remove.
6849 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
6850 Use just $shortlisp, not $SOME_MACHINE_LISP too.
6851
a28d4396
KH
68522011-05-18 Kenichi Handa <handa@m17n.org>
6853
6854 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
6855 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
6856 (find_automatic_composition): Mostly rewrite for efficiency.
6857
a2b1fa8e
JB
68582011-05-18 Juanma Barranquero <lekktu@gmail.com>
6859
6860 * makefile.w32-in: Update dependencies.
6861
8e1f5610
CS
68622011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
6863
6864 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 6865 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 6866
7025ee00 68672011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 6868
cdfa6eab
PE
6869 Fix some integer overflow issues, such as string length overflow.
6870
06d6db33
PE
6871 * insdel.c (count_size_as_multibyte): Check for string overflow.
6872
2b4560a8
PE
6873 * character.c (lisp_string_width): Check for string overflow.
6874 Use EMACS_INT, not int, for string indexes and lengths; in
6875 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
6876 the resulting string length overflows an EMACS_INT; instead,
6877 report a string overflow if no precision given. When checking for
6878 precision exhaustion, use a check that cannot possibly have
6879 integer overflow. (Bug#8675)
6880 * character.h (lisp_string_width): Adjust to new signature.
6881
cb93f9be
PE
6882 * alloc.c (string_overflow): New function.
6883 (Fmake_string): Use it. This doesn't change behavior, but saves
6884 a few bytes and will simplify future changes.
6885 * character.c (string_escape_byte8): Likewise.
6886 * lisp.h (string_overflow): New decl.
6887
1a1f3366
PE
6888 Fixups, following up to the user-interface timestamp change.
6889 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
6890 for UI timestamps, instead of unsigned long.
9fbd6841
PE
6891 * msdos.c (mouse_get_pos): Likewise.
6892 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
6893 * w32gui.h (Time): Define by including "systime.h" rather than by
6894 declaring it ourselves. (Bug#8664)
6895
d4e3e4d3
PE
6896 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
6897 * image.c (clear_image_cache): Likewise.
6898
f6a24d19
PE
6899 * term.c (term_mouse_position): Don't assume time_t wraparound.
6900
08dc5ae6
PE
6901 Be more systematic about user-interface timestamps.
6902 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
6903 and sometimes 'EMACS_UINT', to represent these timestamps.
6904 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
6905 This makes the code easier to follow, and makes it easier to catch
6906 integer overflow bugs such as Bug#8664.
6907 * frame.c (Fmouse_position, Fmouse_pixel_position):
6908 Use Time, not unsigned long, for user-interface timestamps.
6909 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
6910 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
6911 * keyboard.h (last_event_timestamp): Likewise.
6912 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
6913 * menu.h (xmenu_show): Likewise.
6914 * term.c (term_mouse_position): Likewise.
6915 * termhooks.h (struct input_event.timestamp): Likewise.
6916 (struct terminal.mouse_position_hook): Likewise.
6917 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
6918 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
6919 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
6920 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
6921 what it was before.
6922 * menu.h, termhooks.h: Include "systime.h", for Time.
6923
8e55734a
PE
6924 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
6925 Don't assume that the difference between two unsigned long values
6926 can fit into an integer. At this point, we know button_down_time
6927 <= event->timestamp, so the difference must be nonnegative, so
6928 there's no need to cast the result if double-click-time is
6929 nonnegative, as it should be; check that it's nonnegative, just in
6930 case. This bug is triggered when events are more than 2**31 ms
86db42d2 6931 apart (about 25 days). (Bug#8664)
8e55734a 6932
841f1b75 6933 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 6934 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 6935
3e26f69c
PE
6936 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
6937 that always fit in int. Use a sentinel instead of a counter, to
6938 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
6939 * frame.h (struct frame): Use int for menu_bar_items_used
6940 instead of EMACS_INT, since it always fits in int.
3e26f69c 6941
5cc152c0
PE
6942 * menu.c (grow_menu_items): Check for int overflow.
6943
d89eb65e
PE
6944 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
6945
5235bd3e
PE
6946 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
6947 Before, the code was not consistent. These values cannot exceed
6948 2**31 - 1 so there's no need to make them unsigned.
6949 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
6950 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
6951 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
6952 as modifiers.
6953 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
6954
bc827e23
PE
6955 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
6956 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
6957 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
6958 presumably because the widths might not match.
6959
78eb494e
PE
6960 * window.c (size_window): Avoid needless test at loop start.
6961
04f2d78b
CB
69622011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
6963
6964 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
6965
d2fc7e3d 69662011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
6967
6968 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
6969
d2fc7e3d 69702011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
6971
6972 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
6973 `width' to `bar_area_x' and `bar_area_width', respectively.
6974 (x_scroll_run): Take account of fringe background extension.
6975
04f2d78b
CB
6976 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
6977 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
6978 `bar_area_width', respectively.
6979 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
6980 background extension.
6981
79b70037
GM
69822011-05-10 Jim Meyering <meyering@redhat.com>
6983
6984 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
6985
2f142cc5
JB
69862011-05-10 Juanma Barranquero <lekktu@gmail.com>
6987
6988 * image.c (Finit_image_library): Return t for built-in image types,
6989 like pbm and xbm. (Bug#8640)
6990
57679c86
AS
69912011-05-09 Andreas Schwab <schwab@linux-m68k.org>
6992
6993 * w32menu.c (set_frame_menubar): Fix submenu allocation.
6994
888c9e86
EZ
69952011-05-07 Eli Zaretskii <eliz@gnu.org>
6996
b0512a1d
EZ
6997 * w32console.c (Fset_screen_color): Doc fix.
6998 (Fget_screen_color): New function.
6999 (syms_of_ntterm): Defsubr it.
7000
7285dc67
EZ
7001 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
7002 unlink the temporary file if Fcall_process didn't create it in the
7003 first place.
7004 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
7005 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
7006 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
7007 cue to call_process_cleanup not to close that handle.
7008
4d3fcc8e
BK
70092011-05-07 Ben Key <bkey76@gmail.com>
7010
7011 * makefile.w32-in: The bootstrap-temacs rule now makes use of
7012 one of two shell specific rules, either bootstrap-temacs-CMD or
7013 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
7014 to the previous implementation of the bootstrap-temacs rule.
7015 The bootstrap-temacs-CMD rule is similar to the previous
7016 implementation of the bootstrap-temacs rule except that it
7017 makes use of the ESC_CFLAGS variable instead of the CFLAGS
7018 variable.
7019
7020 These changes, along with some changes to nt/configure.bat,
7021 nt/gmake.defs, and nt/nmake.defs, are required to extend my
7022 earlier fix to add support for --cflags and --ldflags options
7023 that include quotes so that it works whether make uses cmd or
7024 sh as the shell.
7025
b4289b64
MA
70262011-05-06 Michael Albinus <michael.albinus@gmx.de>
7027
7028 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
7029 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
7030 is a constant.
7031 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
7032 a string. Handle both cases.
7033 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
7034 (Fdbus_register_method): Use Qinvalid_function.
7035
af4c0e28
JB
70362011-05-06 Juanma Barranquero <lekktu@gmail.com>
7037
7038 * makefile.w32-in: Update dependencies.
7039 (LISP_H): Add inttypes.h and stdin.h.
7040 (PROCESS_H): Add unistd.h.
7041
c51453d9
EZ
70422011-05-06 Eli Zaretskii <eliz@gnu.org>
7043
7044 * lread.c: Include limits.h (fixes the MS-Windows build broken by
7045 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
7046
8ff0ac3c 70472011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 7048
4c4b566b
PE
7049 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
7050
aab2b9b5
PE
7051 * term.c (vfatal): Remove stray call to va_end.
7052 It's not needed and the C Standard doesn't allow it here anyway.
7053
c378da0b
PE
7054 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
7055 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
7056
288b08c7
PE
7057 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
7058 bytes.
7059
e3601888
PE
7060 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
7061
db6c0e74
PE
7062 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
7063
dd5963ea
PE
7064 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
7065
88c9450f
PE
7066 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
7067
2f9442b8
PE
7068 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
7069
c032b5f8
PE
7070 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
7071 * charset.c (Fdefine_charset_internal): Don't initialize
7072 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 7073 32-bit int (Bug#8600).
a108c10b
PE
7074
7075 * lread.c (read_integer): Be more consistent with string-to-number.
7076 Use string_to_number to do the actual conversion; this avoids
7077 rounding errors and fixes some other screwups. Without this fix,
7078 for example, #x1fffffffffffffff was misread as -2305843009213693952.
7079 (digit_to_number): Move earlier, for benefit of read_integer.
7080 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 7081 not a digit in any supported base. (Bug#8602)
a108c10b 7082
ad5f9eea
PE
7083 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
7084
aec1708a
PE
7085 * dispnew.c (scrolling_window): Return 1 if we scrolled,
7086 to match comment at start of function. This also removes a
7087 GCC warning about overflow in a 32+64-bit port.
7088
47be4ab5
PE
7089 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
7090
371cac43
PE
7091 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
7092 Reported by Stefan Monnier in
7093 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
7094 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
7095 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 7096
d01a7826
PE
7097 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
7098 (EMACS_UINTPTR): Likewise, with uintptr_t.
7099
7fd47d5c
PE
7100 * lisp.h: Prefer 64-bit EMACS_INT if available.
7101 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
7102 on 32-bit hosts that have 64-bit int, so that they can access
7103 large files.
122b0c86
PE
7104 However, temporarily disable this change unless the temporary
7105 symbol WIDE_EMACS_INT is defined.
7fd47d5c 7106
8727937b
PE
7107 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
7108
8ac068ac
PE
7109 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
7110 This removes an assumption that EMACS_INT and long are the same
7111 width as pointers. The assumption is true for Emacs porting targets
7112 now, but we want to make other targets possible.
7113 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
7114 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
7115 In the rest of the code, change types of integers that hold casted
7116 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
7117 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
7118 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
7119 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
7120 No need to cast type when ORing.
7121 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
7122 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
7123 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
7124 assume EMACS_INT is the same width as char *.
7125 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
7126 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
7127 Remove no-longer-needed casts.
7128 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
7129 (xg_tool_bar_help_callback, xg_make_tool_item):
7130 Use EMACS_INTPTR to hold an integer
7131 that will be cast to void *; this can avoid a GCC warning
7132 if EMACS_INT is not the same width as void *.
7133 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
7134 * xdisp.c (display_echo_area_1, resize_mini_window_1):
7135 (current_message_1, set_message_1):
7136 Use a local to convert to proper width without a cast.
7137 * xmenu.c (dialog_selection_callback): Likewise.
7138
ede49d71
PE
7139 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
7140 Also, don't assume VALBITS / RAND_BITS is less than 5,
7141 and don't rely on undefined behavior when shifting a 1 left into
7142 the sign bit.
7143 * lisp.h (get_random): Change signature to match.
7144
2f30ecd0
PE
7145 * lread.c (hash_string): Use size_t, not int, for hash computation.
7146 Normally we prefer signed values; but hashing is special, because
7147 it's better to use unsigned division on hash table sizes so that
7148 the remainder is nonnegative. Also, size_t is the natural width
7149 for hashing into memory. The previous code used 'int', which doesn't
7150 retain enough info to hash well into very large tables.
7151 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
7152
2a866e7b
PE
7153 * dbusbind.c: Don't possibly lose pointer info when converting.
7154 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
7155 Use XPNTR rather than XHASH, so that the high-order bits of
7156 the pointer aren't lost when converting through void *.
7157
51639eac
PE
7158 * eval.c (Fautoload): Don't double-shift a pointer.
7159
92394119
PE
7160 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
7161
dbdb9a7c
JB
71622011-05-06 Juanma Barranquero <lekktu@gmail.com>
7163
7164 * gnutls.c (DEF_GNUTLS_FN):
7165 * image.c (DEF_IMGLIB_FN): Make function pointers static.
7166
db7a0b4f
AS
71672011-05-05 Andreas Schwab <schwab@linux-m68k.org>
7168
7169 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
7170 marker. (Bug#8610)
7171
cd394be1 71722011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
7173
7174 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
7175 New version that can reserve upto 2GB of heap space.
7176
f7ff1b0f 71772011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
7178
7179 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
7180
639c109b
TZ
71812011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
7182
7183 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
7184 `gnutls_certificate_set_x509_key_file'.
7185
d2127135
JB
71862011-05-05 Juanma Barranquero <lekktu@gmail.com>
7187
7188 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
7189 Update dependencies.
7190
e968f4f3
JB
71912011-05-04 Juanma Barranquero <lekktu@gmail.com>
7192
7193 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
7194 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
7195 Remove unused parameter `fildes'.
7196 * process.c (read_process_output, send_process): Don't pass it.
7197
84d358f0
JB
71982011-05-04 Juanma Barranquero <lekktu@gmail.com>
7199
7200 Fix previous change: the library cache is defined in w32.c.
7201 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
7202 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
7203
0898ca10
JB
72042011-05-04 Juanma Barranquero <lekktu@gmail.com>
7205
7206 Implement dynamic loading of GnuTLS on Windows.
7207
7208 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
7209 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
7210 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
7211 Declare.
7212
7213 * gnutls.c (Qgnutls_dll): Define.
7214 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
7215 (gnutls_*): Declare function pointers.
7216 (init_gnutls_functions): New function to initialize function pointers.
7217 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
7218 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
7219 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
7220 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
7221 (emacs_gnutls_write, emacs_gnutls_read)
7222 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
7223 (Fgnutls_available_p): New function.
7224 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
7225 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
7226 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
7227
7228 * image.c: Include w32.h.
7229 (Vimage_type_cache): Delete.
7230 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
7231 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
7232 (w32_delayed_load): Move to w32.c.
7233
7234 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
7235
7236 * w32.c (QCloaded_from, Vlibrary_cache): Define.
7237 (w32_delayed_load): Move from image.c. When loading a library, record
7238 its filename in the :loaded-from property of the library id.
7239 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
7240 Initialize and staticpro them.
7241 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
7242
7243 * process.c: Include lisp.h before w32.h, not after.
7244 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
7245 instead of gnutls_record_check_pending.
7246
7247 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
7248
ff4de4aa
TZ
72492011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
7250
7251 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
7252 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
7253 as passed in.
7254
abe95abb
JD
72552011-05-03 Jan Djärv <jan.h.d@swipnet.se>
7256
7257 * xterm.c (x_set_frame_alpha): Do not set property on anything
7258 else than FRAME_X_OUTER_WINDOW (Bug#8608).
7259
e16e55d4
JB
72602011-05-02 Juanma Barranquero <lekktu@gmail.com>
7261
7262 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
7263
bafcf6a5
JB
72642011-05-02 Juanma Barranquero <lekktu@gmail.com>
7265
7266 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
7267 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
7268 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
7269 (gnutls_global_initialized, Qgnutls_bootprop_priority)
7270 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
7271 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
7272 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
7273 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
7274 (Qgnutls_bootprop_callbacks_verify): Make static.
7275
e7a6747f
AS
72762011-05-01 Andreas Schwab <schwab@linux-m68k.org>
7277
19ed11ba
AS
7278 * callproc.c: Indentation fixup.
7279
e7a6747f 7280 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
7281 (wait_for_termination, interruptible_wait_for_termination):
7282 Move after wait_for_termination_1.
e7a6747f 7283
1ef14cb4
LMI
72842011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
7285
7286 * sysdep.c (interruptible_wait_for_termination): New function
7287 which is like wait_for_termination, but allows keyboard
7288 interruptions.
7289
7290 * callproc.c (Fcall_process): Add (:file "file") as an option for
7291 the STDOUT buffer.
7292 (Fcall_process_region): Ditto.
7293
330d880c
EZ
72942011-04-30 Eli Zaretskii <eliz@gnu.org>
7295
8db90b73
EZ
7296 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
7297 rather than `XVECTOR (FOO)->size'.
7298
330d880c
EZ
7299 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
7300 inttypes.h, as a gnulib replacement is used if it not available in
7301 system headers.
7302
15cbd324
EZ
73032011-04-21 Eli Zaretskii <eliz@gnu.org>
7304
7305 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
7306 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
7307 of MOST_POSITIVE_FIXNUM. (Bug#8528)
7308
7309 * coding.c (coding_alloc_by_realloc): Error out if destination
7310 will grow beyond MOST_POSITIVE_FIXNUM.
7311 (decode_coding_emacs_mule): Abort if there isn't enough place in
7312 charbuf for the composition carryover bytes. Reserve an extra
7313 space for up to 2 characters produced in a loop.
7314 (decode_coding_iso_2022): Abort if there isn't enough place in
7315 charbuf for the composition carryover bytes.
7316
73172011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 7318
ae940cca
EZ
7319 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
7320 aborting when %lld or %lll format is passed.
7321 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
7322 %llo or %llx format is passed. (Bug#8545)
7323
03ab8921
EZ
7324 * window.c (window_scroll_line_based): Use a marker instead of
7325 simple variables to record original value of point. (Bug#7952)
7326
afda1437
EZ
7327 * doprnt.c (doprnt): Fix the case where a multibyte sequence
7328 produced by %s or %c overflows available buffer space. (Bug#8545)
7329
f76dee0c
PE
73302011-04-28 Paul Eggert <eggert@cs.ucla.edu>
7331
7332 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 7333 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 7334
fdc5744d
JB
73352011-04-28 Juanma Barranquero <lekktu@gmail.com>
7336
7337 * w32.c (init_environment): Warn about defaulting HOME to C:\.
7338
638f053a
JB
73392011-04-28 Juanma Barranquero <lekktu@gmail.com>
7340
7341 * keyboard.c (Qdelayed_warnings_hook): Define.
7342 (command_loop_1): Run `delayed-warnings-hook'
7343 if Vdelayed_warnings_list is non-nil.
7344 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
7345 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
7346
d178f871
EZ
73472011-04-28 Eli Zaretskii <eliz@gnu.org>
7348
7349 * doprnt.c (doprnt): Don't return value smaller than the buffer
7350 size if the message was truncated. (Bug#8545).
7351
b124fd93
JB
73522011-04-28 Juanma Barranquero <lekktu@gmail.com>
7353
7354 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
7355 (Fx_window_property): #if-0 the whole functions, not just the bodies.
7356
e810457d
PE
73572011-04-27 Paul Eggert <eggert@cs.ucla.edu>
7358
7359 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
7360
ea51cceb
JB
73612011-04-27 Juanma Barranquero <lekktu@gmail.com>
7362
7363 * makefile.w32-in: Update dependencies.
7364
94dcfacf
EZ
73652011-04-27 Eli Zaretskii <eliz@gnu.org>
7366
7367 Improve `doprnt' and its usage. (Bug#8545)
7368 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
7369 `format_end'. Remove support for %l as a conversion specifier.
7370 Don't use xrealloc. Improve diagnostics when the %l size modifier
7371 is used. Update the commentary.
7372
7373 * eval.c (verror): Simplify calculation of size_t.
7374
7375 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
7376 messages.
7377
f61f41d7
PE
73782011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
7379
7380 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
7381 change.
7382
96fb4434
PE
73832011-04-27 Paul Eggert <eggert@cs.ucla.edu>
7384
7385 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
7386 This makes this file independent of the recent pseudovector change.
7387
671875da 73882011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 7389
69e9b5a3
PE
7390 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
7391
b5f869a7 7392 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 7393 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 7394 Remove unused local.
c8926152 7395 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 7396
841a1577 7397 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
7398 GCC 4.6.0 optimizes based on type-based alias analysis.
7399 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
7400 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
7401 != &v->size, and therefore "v->size = 1; b->size = 2; return
7402 v->size;" must therefore return 1. This assumption is incorrect
7403 for Emacs, since it type-puns struct Lisp_Vector * with many other
7404 types. To fix this problem, this patch adds a new type struct
f904488f 7405 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
7406 and pseudovectors, and helps optimizing compilers not get fooled
7407 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
7408 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
7409 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
7410 the size member.
eab3844f
PE
7411 (XSETPVECTYPE): Rewrite in terms of new macro.
7412 (XSETPVECTYPESIZE): New macro, specifying both type and size.
7413 This is a bit clearer, and further avoids the possibility of
7414 undesirable aliasing.
7415 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 7416 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
7417 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
7418 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
7419 (ASIZE): Now uses header.size rather than size.
7420 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
7421 to avoid the hassle of writing XVECTOR (foo)->header.size.
7422 (struct vectorlike_header): New type.
eab3844f
PE
7423 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
7424 object, to help avoid aliasing.
7425 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
7426 (SUBRP): Likewise, since Lisp_Subr is a special case.
7427 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
7428 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
7429 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 7430 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
7431 changed to be "header.size" and "header.next".
7432 * buffer.h (struct buffer): Likewise.
7433 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
7434 * frame.h (struct frame): Likewise.
7435 * process.h (struct Lisp_Process): Likewise.
7436 * termhooks.h (struct terminal): Likewise.
7437 * window.c (struct save_window_data, struct saved_window): Likewise.
7438 * window.h (struct window): Likewise.
7439 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
7440 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
7441 * buffer.c (init_buffer_once): Likewise.
7442 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
7443 special case.
7444 * process.c (Fformat_network_address): Use local var for size,
7445 for brevity.
7446
0df1eac5
PE
7447 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
7448
847ab9d1 7449 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
7450 * data.c (atof): Remove decl; no longer used or needed.
7451 (digit_to_number): Move to lread.c.
7452 (Fstring_to_number): Use new string_to_number function, to be
7453 consistent with how the Lisp reader treats infinities and NaNs.
7454 Do not assume that floating-point numbers represent EMACS_INT
7455 without losing information; this is not true on most 64-bit hosts.
7456 Avoid double-rounding errors, by insisting on integers when
7457 parsing non-base-10 numbers, as the documentation specifies.
7458 * lisp.h (string_to_number): New decl, replacing ...
7459 (isfloat_string): Remove.
bc0a5c13 7460 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 7461 (read1): Do not accept +. and -. as integers; this
452f4150
PE
7462 appears to have been a coding error. Similarly, do not accept
7463 strings like +-1e0 as floating point numbers. Do not report
7464 overflow for integer overflows unless the base is not 10 which
7465 means we have no simple and reliable way to continue.
7466 Break out the floating-point parsing into a new
7467 function string_to_number, so that Fstring_to_number parses
7468 floating point numbers consistently with the Lisp reader.
04f2d78b 7469 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
7470 (E_CHAR, EXP_INT): Remove, replacing with ...
7471 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
7472 (string_to_number): New function, replacing isfloat_string.
7473 This function checks for valid syntax and produces the resulting
7474 Lisp float number too. Rework it so that string-to-number
bc0a5c13 7475 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
7476 so that overflow for non-base-10 numbers is reported only when
7477 there's no portable and simple way to convert to floating point.
452f4150 7478
67769ffc
PE
7479 * textprop.c (set_text_properties_1): Rewrite for clarity,
7480 and to avoid GCC warning about integer overflow.
7481
c20db43f
PE
7482 * intervals.h (struct interval): Use EMACS_INT for members
7483 where EMACS_UINT might cause problems. See
7484 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
7485 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
7486 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
7487 All uses changed.
37aa2f85
PE
7488 (offset_intervals): Tell GCC not to worry about length overflow
7489 when negating a negative length.
c20db43f 7490
2538aa2f
PE
7491 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
7492 (overrun_check_free): Likewise.
7493
f2d3008d
PE
7494 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
7495 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
7496 word size.
7497
ec8df744
PE
7498 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
7499 (gnutls_make_error): Rename local to avoid shadowing.
7500 (gnutls_emacs_global_deinit): ifdef out; not used.
7501 (Fgnutls_boot): Use const for pointer to readonly storage.
7502 Comment out unused local. Fix pointer signedness problems.
7503
640ee02d
PE
7504 * lread.c (openp): Don't stuff size_t into an 'int'.
7505 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
7506 about possible signed overflow.
7507
6048fb2a
PE
7508 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
7509 (GDK_KEY_g): Don't define if already defined.
7510 (xg_prepare_tooltip): Avoid pointer signedness problem.
7511 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
7512
fa3c87e1
PE
7513 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
7514 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
7515
2172544b
PE
7516 * xfns.c (Fx_window_property): Simplify a bit,
7517 to make a bit faster and to avoid GCC 4.6.0 warning.
7518 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
7519
9b821a21
PE
7520 * fns.c (internal_equal): Don't assume size_t fits in int.
7521
3c616cfa
PE
7522 * alloc.c (compact_small_strings): Tighten assertion a little.
7523
c2982e87
PE
7524 Replace pEd with more-general pI, and fix some printf arg casts.
7525 * lisp.h (pI): New macro, generalizing old pEd macro to other
7526 conversion specifiers. For example, use "...%"pI"d..." rather
7527 than "...%"pEd"...".
7528 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 7529 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
7530 * alloc.c (check_pure_size): Don't overflow by converting size to int.
7531 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
7532 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
7533 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
7534 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
7535 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
7536 64-bit hosts.
7537 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
7538 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
7539 * print.c (safe_debug_print, print_object): Likewise.
7540 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
7541 to int.
6f04d126
PE
7542 Use pI instead of if-then-else-abort. Use %p to avoid casts,
7543 avoiding the 0 flag, which is not portable.
c2982e87
PE
7544 * process.c (Fmake_network_process): Use pI to avoid cast.
7545 * region-cache.c (pp_cache): Likewise.
7546 * xdisp.c (decode_mode_spec): Likewise.
7547 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
7548 behavior on 64-bit hosts with printf arg.
6f04d126 7549 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
7550 (x_stop_queuing_selection_requests): Likewise.
7551 (x_get_window_property): Don't truncate byte count to an 'int'
7552 when tracing.
0b432f21 7553
5e073ec7
PE
7554 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
7555 here, since it parses constructs like leading '-' and spaces,
7556 which are not wanted; and it overflows with large numbers.
7557 Instead, simply match F[0-9]+, which is what is wanted anyway.
7558
36372bf9
PE
7559 * alloc.c: Remove unportable assumptions about struct layout.
7560 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
7561 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
7562 (allocate_vectorlike, make_pure_vector): Use the new macros,
7563 plus offsetof, to remove unportable assumptions about struct layout.
7564 These assumptions hold on all porting targets that I know of, but
7565 they are not guaranteed, they're easy to remove, and removing them
7566 makes further changes easier.
7567
0b432f21
PE
7568 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
7569 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
7570 (string_overrun_cookie): Now const. Use initializers that
7571 don't formally overflow signed char, to avoid warnings.
000098c1
PE
7572 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
7573 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
7574 (allocate_buffer): Don't assume sizeof (struct buffer) is a
7575 multiple of sizeof (EMACS_INT); it need not be, if
7576 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 7577 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 7578
895009e1
JB
75792011-04-26 Juanma Barranquero <lekktu@gmail.com>
7580
7581 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
7582
6a7a1b0b
TZ
75832011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
7584
7585 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 7586 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
7587 Reported by Paul Eggert <eggert@cs.ucla.edu>.
7588
841a1577 75892011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
7590
7591 * lisp.h (Qdebug): List symbol.
895009e1 7592 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
7593 * keyboard.c (debug-on-event): New variable.
7594 (handle_user_signal): Break into debugger when debug-on-event
7595 matches the current signal symbol.
7596
f2d3ba6f
DN
75972011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
7598
7599 * alloc.c (check_sblock, check_string_bytes)
7600 (check_string_free_list): Convert to standard C.
7601
42ce4c63
TZ
76022011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
7603
7604 * w32.c (emacs_gnutls_push): Fix typo.
7605
825cd63c
EZ
76062011-04-25 Eli Zaretskii <eliz@gnu.org>
7607
fb11d64d
EZ
7608 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
7609 "cast to pointer from integer of different size".
7610
825cd63c
EZ
7611 Improve doprnt and its use in verror. (Bug#8545)
7612 * doprnt.c (doprnt): Document the set of format control sequences
7613 supported by the function. Use SAFE_ALLOCA instead of always
7614 using `alloca'.
7615
7616 * eval.c (verror): Don't limit the buffer size at size_max-1, that
7617 is one byte too soon. Don't use xrealloc; instead xfree and
7618 xmalloc anew.
7619
e061a11b
TZ
76202011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
7621
7622 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
7623 callbacks stage.
7624
7625 * gnutls.c: Renamed global_initialized to
7626 gnutls_global_initialized. Added internals for the
7627 :verify-hostname-error, :verify-error, and :verify-flags
7628 parameters of `gnutls-boot' and documented those parameters in the
7629 docstring. Start callback support.
9173deec
JB
7630 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
7631 unless a fatal error occurred. Call gnutls_alert_send_appropriate
7632 on error. Return error code.
e061a11b
TZ
7633 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
7634 (emacs_gnutls_read): Likewise.
7635 (Fgnutls_boot): Return handshake error code.
7636 (emacs_gnutls_handle_error): New function.
7637 (wsaerror_to_errno): Likewise.
7638
7639 * w32.h (emacs_gnutls_pull): Add prototype.
7640 (emacs_gnutls_push): Likewise.
7641
7642 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
7643 (emacs_gnutls_push): Likewise.
7644
76452011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
7646
7647 * process.c (wait_reading_process_output): Check if GnuTLS
7648 buffered some data internally if no FDs are set for TLS
7649 connections.
7650
7651 * makefile.w32-in (OBJ2): Add gnutls.$(O).
7652 (LIBS): Link to USER_LIBS.
7653 ($(BLD)/gnutls.$(0)): New target.
7654
fa6996bc
EZ
76552011-04-24 Eli Zaretskii <eliz@gnu.org>
7656
eb35682e
EZ
7657 * xdisp.c (handle_single_display_spec): Rename the
7658 display_replaced_before_p argument into display_replaced_p, to
7659 make it consistent with the commentary. Fix typos in the
7660 commentary.
7661
e2ad650c
EZ
7662 * textprop.c (syms_of_textprop): Remove dead code.
7663 (copy_text_properties): Delete obsolete commentary about an
7664 interface that was deleted long ago. Fix typos in the description
7665 of arguments.
7666
1b2de274
EZ
7667 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
7668 to changes in oldXMenu/XMenu.h from 2011-04-16.
7669 <menu_help_message, prev_menu_help_message>: Constify.
7670 (IT_menu_make_room): menu->help_text is now `const char **';
7671 adjust.
7672
7673 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
7674 to changes in oldXMenu/XMenu.h from 2011-04-16.
7675 (struct XMenu): Declare `help_text' `const char **'.
7676
7677 * xfaces.c <Qunspecified>: Make extern again.
7678
7679 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 7680 required by POSIX.
1b2de274 7681
762b15be
EZ
7682 * doc.c (get_doc_string): Improve the format passed to `error'.
7683
7684 * doprnt.c (doprnt): Improve commentary.
7685
7686 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
7687
7688 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
7689 them with etags.
7690
f1052e5d
EZ
7691 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
7692 changes in globals.h immediately force recompilation.
762b15be
EZ
7693 (TAGS): Depend on $(CURDIR)/m/intel386.h and
7694 $(CURDIR)/s/ms-w32.h.
7695 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 7696
fa6996bc
EZ
7697 * character.c (Fchar_direction): Function deleted.
7698 (syms_of_character): Don't defsubr it.
7699 <char-direction-table>: Deleted.
7700
e6c3da20
EZ
77012011-04-23 Eli Zaretskii <eliz@gnu.org>
7702
7703 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
7704 * doprnt.c: Include limits.h.
7705 (SIZE_MAX): New macro.
04f2d78b
CB
7706 (doprnt): Return a size_t value. 2nd arg is now size_t.
7707 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
7708 Improve overflow protection. Support `l' modifier for integer
7709 conversions. Support %l conversion. Don't assume an EMACS_INT
7710 argument for integer conversions and for %c.
7711
7712 * lisp.h (doprnt): Restore prototype.
7713
7714 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
7715 $(SRC)/character.h.
7716
7717 * Makefile.in (base_obj): Add back doprnt.o.
7718
7719 * deps.mk (doprnt.o): Add back prerequisites.
7720 (callint.o): Depend on character.h.
7721
7722 * eval.c (internal_lisp_condition_case): Include the handler
7723 representation in the error message.
7724 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
7725 when breaking from the loop.
7726
7727 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
7728
7729 * callint.c (Fcall_interactively): When displaying error message
7730 about invalid control letter, pass the character's codepoint, not
7731 a pointer to its multibyte form. Improve display of the character
7732 in octal and display also its hex code.
7733
7734 * character.c (char_string): Use %x to display the (unsigned)
7735 codepoint of an invalid character, to avoid displaying a bogus
7736 negative value.
7737
7738 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
7739 `error', not SYMBOL_NAME itself.
7740
7741 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
7742 character arguments to `error'.
7743
7744 * charset.c (check_iso_charset_parameter): Fix incorrect argument
7745 to `error' in error message about FINAL_CHAR argument. Make sure
7746 FINAL_CHAR is a character, and use %c when it is passed as
7747 argument to `error'.
7748
4ffd0d6b 77492011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
7750
7751 * s/ms-w32.h (localtime): Redirect to sys_localtime.
7752
7753 * w32.c: Include <time.h>.
7754 (sys_localtime): New function.
7755
4ffd0d6b 77562011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
7757
7758 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
7759
4ffd0d6b 7760 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 7761
4ffd0d6b 77622011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 7763
4ffd0d6b
GM
7764 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
7765 zombies (Bug#8467).
aac0c6e3 7766
04c56954
EZ
77672011-04-19 Eli Zaretskii <eliz@gnu.org>
7768
7769 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
7770 gl_state.e_property when gl_state.object is Qt.
7771
7772 * insdel.c (make_gap_larger): Remove limitation of buffer size
7773 to <= INT_MAX.
7774
16a43933
CY
77752011-04-18 Chong Yidong <cyd@stupidchicken.com>
7776
7777 * xdisp.c (lookup_glyphless_char_display)
7778 (produce_glyphless_glyph): Handle cons cell entry in
7779 glyphless-char-display.
7780 (Vglyphless_char_display): Document it.
7781
7782 * term.c (produce_glyphless_glyph): Handle cons cell entry in
7783 glyphless-char-display.
7784
4581706e
CY
77852011-04-17 Chong Yidong <cyd@stupidchicken.com>
7786
7787 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
7788
7789 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
7790
7791 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
7792 definition for no-X builds.
7793
4887c6e2 77942011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 7795
fd35b6f9
PE
7796 Static checks with GCC 4.6.0 and non-default toolkits.
7797
5c1ccb01
PE
7798 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
7799
006c5daa
PE
7800 * process.c (keyboard_bit_set): Define only if SIGIO.
7801 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
7802 (send_process): Repair possible setjmp clobbering.
7803
efc736d3
PE
7804 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
7805
4e2fe2e6
PE
7806 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
7807
f97334a2
PE
7808 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
7809
4e75f29d
PE
7810 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
7811 Define only if needed.
7812
90efadd1
PE
7813 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
7814 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 7815 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 7816
3c647824
PE
7817 * dispextern.h (struct redisplay_interface): Rename param
7818 to avoid shadowing.
e264f262 7819 * termhooks.h (struct terminal): Likewise.
761383f4 7820 * xterm.c (xembed_send_message): Likewise.
3c647824 7821
b58c5c4a
PE
7822 * insdel.c (make_gap_smaller): Define only if
7823 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
7824
cad59032
PE
7825 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
7826 it.
7827
c339dc2e
PE
7828 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
7829 so that we aren't warned about unused symbols.
7830
91a3e27b
PE
7831 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
7832
399c71d3 7833 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 7834
8ffc96f5
PE
7835 * xfns.c (x_real_positions): Mark locals as initialized.
7836
eef9bc79
PE
7837 * xmenu.c (xmenu_show): Don't use uninitialized vars.
7838
098db9dd
PE
7839 * xterm.c: Fix problems found by static analysis with other toolkits.
7840 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
7841 (x_dispatch_event): Declare static if USE_GTK, and
7842 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 7843 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 7844 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
7845 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
7846 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 7847
eb18f6cc
PE
7848 * xmenu.c (menu_help_callback): Pointer type fixes.
7849 Use const pointers when pointing at readonly data. Avoid pointer
7850 signedness clashes.
7851 (FALSE): Remove unused macro.
7852 (update_frame_menubar): Remove unused decl.
7853
1fe72bf8
PE
7854 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
7855
60d9e1db
PE
7856 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
7857 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
7858 (single_menu_item): Rename local to avoid shadowing.
7859
39261c26
PE
7860 * keyboard.c (make_lispy_event): Remove unused local var.
7861
018c5e19
PE
7862 * frame.c, frame.h (x_get_resource_string): Bring this back, but
7863 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
7864
63d2b86e
PE
7865 * bitmaps: Change bitmaps from unsigned char back to the X11
7866 compatible char. Avoid the old compiler warnings about
7867 out-of-range initializers by using, for example, '\xab' rather
7868 than 0xab.
7869
aefd87e1
PE
7870 * xgselect.c (xgselect_initialize): Check vs interface
7871 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
7872
bf501fb9
PE
7873 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
7874
e9829fdf
PE
7875 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
7876 to read-only memory.
7877
1086c095
PE
7878 * fns.c (vector): Remove; this old hack is no longer needed.
7879
2baccd04 7880 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 7881 Remove unused var.
dde42981 7882 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 7883
72391843 7884 * xrdb.c (x_load_resources): Omit unused local.
3565b346 7885
436c16df 7886 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 7887 (x_window): Rename locals to avoid shadowing.
dc5ddd85 7888 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 7889
92bb796d 7890 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 7891 (x_term_init): Remove local to avoid shadowing.
92bb796d 7892
764430a3 7893 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
7894
7895 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
7896 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
7897
d1dfb56c
EZ
78982011-04-16 Eli Zaretskii <eliz@gnu.org>
7899
c4354cb4
EZ
7900 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
7901
d1dfb56c
EZ
7902 Fix regex.c, syntax.c and friends for buffers > 2GB.
7903 * syntax.h (struct gl_state_s): Declare character position members
7904 EMACS_INT.
7905
7906 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
7907
04f2d78b
CB
7908 * textprop.c (verify_interval_modification, interval_of):
7909 Declare arguments EMACS_INT.
d1dfb56c
EZ
7910
7911 * intervals.c (adjust_intervals_for_insertion): Declare arguments
7912 EMACS_INT.
7913
7914 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
7915
7916 * indent.c (Fvertical_motion): Local variable it_start is now
7917 EMACS_INT.
7918
7919 * regex.c (re_match, re_match_2, re_match_2_internal)
7920 (bcmp_translate, regcomp, regexec, print_double_string)
7921 (group_in_compile_stack, re_search, re_search_2, regex_compile)
7922 (re_compile_pattern, re_exec): Declare arguments and local
7923 variables `size_t' and `ssize_t' and return values `regoff_t', as
7924 appropriate.
7925 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
7926 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
7927 <compile_stack_type>: `size' and `avail' are now `size_t'.
7928
7929 * regex.h <regoff_t>: Use ssize_t, not int.
7930 (re_search, re_search_2, re_match, re_match_2): Arguments that
7931 specify buffer/string position and length are now ssize_t and
7932 size_t. Return type is regoff_t.
7933
613052cd
BK
79342011-04-16 Ben Key <bkey76@gmail.com>
7935
7936 * nsfont.m: Fixed bugs in ns_get_family and
7937 ns_descriptor_to_entity that were caused by using free to
7938 deallocate memory blocks that were allocated by xmalloc (via
7939 xstrdup). This caused Emacs to crash when compiled with
7940 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
7941 --enable-checking=xmallocoverrun). xfree is now used to
7942 deallocate these memory blocks.
7943
4170f62f 79442011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 7945
71b41406
PE
7946 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
7947
9587a89d
PE
7948 emacs_write: Accept and return EMACS_INT for sizes.
7949 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
7950 et seq.
7951 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
7952 Accept and return EMACS_INT.
7953 (emacs_gnutls_write): Return the number of bytes written on
7954 partial writes.
7955 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
7956 (emacs_read, emacs_write): Remove check for negative size, as the
7957 Emacs source code has been audited now.
9587a89d
PE
7958 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
7959 (emacs_read, emacs_write): Use it.
273a5f82
PE
7960 * process.c (send_process): Adjust to the new signatures of
7961 emacs_write and emacs_gnutls_write. Do not attempt to store
7962 a byte offset into an 'int'; it might overflow.
9587a89d 7963 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 7964
3e047f51
PE
7965 * sound.c: Don't assume sizes fit in 'int'.
7966 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 7967 Return EMACS_INT, not int.
3e047f51 7968 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
7969 Accept EMACS_INT, not int.
7970 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
7971 record read return values.
7972
cc39a9db
BK
79732011-04-15 Ben Key <bkey76@gmail.com>
7974
c9d0ec6d
JB
7975 * keyboard.c (Qundefined): Don't declare static since it is used
7976 in nsfns.m.
7977 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
7978 static since they are used in nsfont.m.
cc39a9db 7979
6c60eb9f
SM
79802011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
7981
7982 * process.c (Qprocessp): Don't declare static.
7983 * lisp.h (Qprocessp): Declare again.
7984
7990b61a
JB
79852011-04-15 Juanma Barranquero <lekktu@gmail.com>
7986
7987 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
7988
5d4cb038
PE
79892011-04-14 Paul Eggert <eggert@cs.ucla.edu>
7990
8bd7b830 7991 Improve C-level modularity by making more things 'static'.
cd64ea1d 7992
e3b27b31
PE
7993 Don't publish debugger-only interfaces to other modules.
7994 * lisp.h (safe_debug_print, debug_output_compilation_hack):
7995 (verify_bytepos, count_markers): Move decls to the only modules
7996 that need them.
7997 * region-cache.h (pp_cache): Likewise.
7998 * window.h (check_all_windows): Likewise.
7999 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
8000
5d4cb038
PE
8001 * sysdep.c (croak): Now static, if
8002 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
8003 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
8004
8005 * alloc.c (refill_memory_reserve): Now static if
8006 !defined REL_ALLOC || defined SYSTEM_MALLOC.
8007 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 8008
e87b6180
PE
8009 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
8010 Define only if USE_LUCID.
8011
ac64929e
PE
8012 * xrdb.c (x_customization_string, x_rm_string): Now static.
8013
6f37259d
PE
8014 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
8015 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
8016
1683e3ab
PE
8017 * xdisp.c (draw_row_with_mouse_face): Now static.
8018 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
8019
de9c2632
PE
8020 * window.h (check_all_windows): Mark externally visible.
8021
2b96acb7
PE
8022 * window.c (window_deletion_count): Now static.
8023
8024 * undo.c: Make symbols static if they're not exported.
8025 (last_undo_buffer, last_boundary_position, pending_boundary):
8026 Now static.
8027
50436f33
PE
8028 * textprop.c (interval_insert_behind_hooks): Now static.
8029 (interval_insert_in_front_hooks): Likewise.
8030
64520e5c
PE
8031 * term.c: Make symbols static if they're not exported.
8032 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
8033 (max_frame_lines, tty_set_terminal_modes):
8034 (tty_reset_terminal_modes, tty_turn_off_highlight):
8035 (get_tty_terminal): Now static.
8036 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
8037 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 8038 HAVE_WINDOW_SYSTEM.
64520e5c
PE
8039 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
8040 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
8041
1fa53021
PE
8042 * sysdep.c: Make symbols static if they're not exported.
8043 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
8044 Now static.
8045 (sigprocmask_set, full_mask): Remove; unused.
8046 (wait_debugging): Mark as visible.
8047 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
8048 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
8049
d4b43b22
PE
8050 * syntax.c (syntax_temp): Define only if !__GNUC__.
8051
b7c513d0
PE
8052 * sound.c (current_sound_device, current_sound): Now static.
8053
989b29ad
PE
8054 * search.c (searchbufs, searchbuf_head): Now static.
8055
13a55a78
PE
8056 * scroll.c (scroll_cost): Remove; unused.
8057 * dispextern.h (scroll_cost): Remove decl.
8058
de68a1fc
PE
8059 * region-cache.h (pp_cache): Mark as externally visible.
8060
40ccffa6
PE
8061 * process.c: Make symbols static if they're not exported.
8062 (process_tick, update_tick, create_process, chan_process):
8063 (Vprocess_alist, proc_buffered_char, datagram_access):
8064 (fd_callback_data, send_process_frame, process_sent_to): Now static.
8065 (deactivate_process): Mark defn as static, as well as decl.
8066 * lisp.h (create_process): Remove decl.
8067 * process.h (chan_process, Vprocess_alist): Remove decls.
8068
ad64fc97
PE
8069 * print.c: Make symbols static if they're not exported.
8070 (print_depth, new_backquote_output, being_printed, print_buffer):
8071 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
8072 (print_interval, print_number_index, initial_stderr_stream):
8073 Now static.
8074 * lisp.h (Fprinc): Remove decl.
8075 (debug_output_compilation_hack): Mark as externally visible.
8076
adddb265
PE
8077 * sysdep.c (croak): Move decl from here to syssignal.h.
8078 * syssignal.h (croak): Put it here, so the API can be checked when
8079 'croak' is called from dissociate_if_controlling_tty.
8080
1717ede2
PE
8081 * minibuf.c: Make symbols static if they're not exported.
8082 (minibuf_save_list, choose_minibuf_frame): Now static.
8083 * lisp.h (choose_minibuf_frame): Remove decl.
8084
fa5fb2bc
PE
8085 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
8086
1e3890d1
PE
8087 * lread.c: Make symbols static if they're not exported.
8088 (read_objects, initial_obarray, oblookup_last_bucket_number):
8089 Now static.
8090 (make_symbol): Remove; unused.
8091 * lisp.h (initial_obarray, make_symbol): Remove decls.
8092
8a1414fa
PE
8093 * keyboard.c: Make symbols static if they're not exported.
8094 (single_kboard, recent_keys_index, total_keys, recent_keys):
8095 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
8096 (this_single_command_key_start, echoing, last_auto_save):
8097 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
8098 (command_loop, echo_now, keyboard_init_hook, help_char_p):
8099 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
8100 (Vlispy_mouse_stem, double_click_count):
8101 Now static.
8102 (force_auto_save_soon): Define only if SIGDANGER.
8103 (ignore_mouse_drag_p): Now static if
8104 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
8105 (print_help): Remove; unused.
8106 (stop_character, last_timer_event): Mark as externally visible.
8107 * keyboard.h (ignore_mouse_drag_p): Declare only if
8108 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
8109 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
8110 * lisp.h (echoing): Remove decl.
8111 (force_auto_save_soon): Declare only if SIGDANGER.
8112 * xdisp.c (redisplay_window): Simplify code, to make it more
8113 obvious that ignore_mouse_drag_p is not accessed if !defined
8114 USE_GTK && !defined HAVE_NS.
8115
93ea6e8f
PE
8116 * intervals.c: Make symbols static if they're not exported.
8117 (merge_properties_sticky, merge_interval_right, delete_interval):
8118 Now static.
8119 * intervals.h (merge_interval_right, delete_interval): Remove decls.
8120
77382fcc
PE
8121 * insdel.c: Make symbols static if they're not exported.
8122 However, leave prepare_to_modify_buffer alone. It's never
8123 called from outside this function, but that appears to be a bug.
8124 (combine_after_change_list, combine_after_change_buffer):
4889fc82 8125 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
8126 (adjust_after_replace_noundo): Remove; unused.
8127 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 8128 (signal_before_change): Remove decls.
77382fcc 8129
9306c32e
PE
8130 * indent.c (val_compute_motion, val_vmotion): Now static.
8131
cd44d2eb
PE
8132 * image.c: Make symbols static if they're not exported.
8133 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
8134 if USE_GTK.
8135 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
8136 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
8137
ad9a7a06
PE
8138 * fringe.c (standard_bitmaps): Now static.
8139 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
8140
81626931
PE
8141 * frame.c: Make symbols static if they're not exported.
8142 (x_report_frame_params, make_terminal_frame): Now static.
8143 (get_frame_param): Now static, unless HAVE_NS.
8144 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
8145 (x_get_resource_string): Remove; not used.
8146 * frame.h (make_terminal_frame, x_report_frame_params):
8147 (x_get_resource_string); Remove decls.
8148 (x_fullscreen_adjust): Declare only if WINDOWSNT.
8149 * lisp.h (get_frame_param): Declare only if HAVE_NS.
8150
239f9db9
PE
8151 * font.c, fontset.c: Make symbols static if they're not exported.
8152 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
8153 (FACE_SUITABLE_FOR_CHAR_P): Use it.
8154 * font.c (font_close_object): Now static.
8155 * font.h (font_close_object): Remove.
8156 * fontset.c (FONTSET_OBJLIST): Remove.
8157 (free_realized_fontset) #if-0 the body, which does nothing.
8158 (face_suitable_for_char_p): #if-0, as it's never called.
8159 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
8160 * xfaces.c (face_at_string_position):
8161 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
8162 since 0 is always ASCII.
8163
dfcf3579
PE
8164 * fns.c (weak_hash_tables): Now static.
8165
5045092b
PE
8166 * fileio.c: Make symbols static if they're not exported.
8167 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
8168 (Vwrite_region_annotation_buffers): Now static.
8169
57a96f5c
PE
8170 * eval.c: Make symbols static if they're not exported.
8171 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
8172 * lisp.h (backtrace_list): Remove decl.
8173
35f08c38
PE
8174 * emacs.c: Make symbols static if they're not exported.
8175 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
8176 (fatal_error_code, fatal_error_signal_hook, standard_args):
8177 Now static.
8178 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
8179 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
8180 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
8181 * lisp.h (fatal_error_signal_hook): Remove decl.
8182 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
8183
f44bd759
PE
8184 * editfns.c: Move a (normally-unused) function to its only use.
8185 * editfns.c, lisp.h (get_operating_system_release): Remove.
8186 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
8187 worth the hassle of breaking this out.
8188
b532497d
PE
8189 * xterm.c: Make symbols static if they're not exported.
8190 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
8191 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
8192 (x_destroy_window, x_delete_display):
8193 Now static.
8194 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
8195 (x_mouse_leave): Remove; unused.
8196 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
8197 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
8198 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
8199 Remove decls.
8200 (x_mouse_leave): Declare only if WINDOWSNT.
8201 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
8202 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
8203 USE_X_TOOLKIT.
8204
1675728f
PE
8205 * ftxfont.c: Make symbols static if they're not exported.
8206 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
8207 HAVE_FREETYPE.
8208 * font.h (ftxfont_driver): Likewise.
8209
e4cebfca
PE
8210 * xfns.c: Make symbols static if they're not exported.
8211 (x_last_font_name, x_display_info_for_name):
8212 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
8213 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
8214 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
8215 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
8216 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
8217 (last_show_tip_args): Now static.
8218 (xic_defaut_fontset, xic_create_fontsetname): Define only if
8219 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
8220 (x_screen_planes): Remove; unused.
8221 * dispextern.h (x_screen_planes): Remove decl.
8222
5bf46f05
PE
8223 * dispnew.c: Make symbols static if they're not exported.
8224 * dispextern.h (redraw_garbaged_frames, scrolling):
8225 (increment_row_positions): Remove.
8226 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
8227 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
8228 Now static.
8229 (redraw_garbaged_frames): Remove; unused.
8230
435f4c28
PE
8231 * xfaces.c: Make symbols static if they're not exported.
8232 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
8233 Remove decls.
8234 * xterm.h (defined_color): Remove decls.
8235 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
8236 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
8237 (menu_face_changed_default, defined_color, free_realized_face):
8238 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
8239 (ascii_face_of_lisp_face): Remove; unused.
8240
8524aef3
PE
8241 * xdisp.c: Make symbols static if they're not exported.
8242 * dispextern.h (scratch_glyph_row, window_box_edges):
8243 (glyph_to_pixel_coords, set_cursor_from_row):
8244 (get_next_display_element, set_iterator_to_next):
8245 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
8246 (show_mouse_face): Remove decls
8247 * frame.h (message_buf_print): Likewise.
8248 * lisp.h (pop_message, set_message, check_point_in_composition):
8249 Likewise.
8250 * xterm.h (set_vertical_scroll_bar): Likewise.
8251 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
8252 (message_buf_print, scratch_glyph_row, displayed_buffer):
8253 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
8254 (get_next_display_element, show_mouse_face, window_box_edges):
8255 (frame_to_window_pixel_xy, check_point_in_composition):
8256 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
8257 (glyph_to_pixel_coords): Remove; unused.
8258
16390cd2
PE
8259 * dired.c (file_name_completion): Now static.
8260
8261 * dbusbind.c (xd_in_read_queued_messages): Now static.
8262
a25f4dfa
PE
8263 * lisp.h (circular_list_error, FOREACH): Remove; unused.
8264 * data.c (circular_list_error): Remove.
8265
14a9c8df
PE
8266 * commands.h (last_point_position, last_point_position_buffer):
8267 (last_point_position_window): Remove decls.
8268 * keyboard.c: Make these variables static.
8269
04f2d78b
CB
8270 * coding.h (coding, code_convert_region, encode_coding_gap):
8271 Remove decls.
74ab6df5
PE
8272 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
8273 (iso_code_class, detect_coding, code_convert_region): Now static.
8274 (encode_coding_gap): Remove; unused.
8275
38dfbee1
PE
8276 * chartab.c (chartab_chars, chartab_bits): Now static.
8277
a2cb4e63
PE
8278 * charset.h (charset_iso_8859_1): Remove decl.
8279 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
8280 Now static.
8281
127198fd
PE
8282 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
8283 * ccl.c (Vccl_program_table): Now static.
8284 (check_ccl_update): Remove; unused.
8285
d85b608f
PE
8286 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
8287 * category.h: ... from here.
8288 * category.c (check_category_table, set_category_set): Now static.
8289
31cd66f3
PE
8290 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
8291 * lisp.h: Remove these decls.
8292
c358e587
PE
8293 * buffer.c (buffer_count): Remove unused var.
8294
e78aecca
PE
8295 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
8296 so that it's not optimized away.
8297 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
8298 * dispextern.h (bidi_dump_cached_states): Remove, since it's
8299 exported only to the debugger.
8300
e192d7d3 8301 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 8302 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 8303
92470028
PE
8304 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
8305 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
8306 was inaccessible from Lisp.
8307 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
8308 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
8309
244ed907
PE
8310 alloc.c: Import and export fewer symbols, and remove unused items.
8311 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
8312 is defined.
8313 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
8314 it's not optimized away by whole-program optimization.
8315 (message_enable_multibyte, free_misc): Remove.
8316 (catchlist, handlerlist, mark_backtrace):
8317 Declare only if BYTE_MARK_STACK.
8318 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
8319 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
8320 (message_enable_multibyte): Remove decl.
8321 (free_misc, interval_free_list, float_block, float_block_index):
8322 (n_float_blocks, float_free_list, cons_block, cons_block_index):
8323 (cons_free_list, last_marked_index):
8324 Now static.
8325 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
8326 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
8327 (mark_backtrace): Define only if BYTE_MARK_STACK.
8328 * xdisp.c (message_enable_multibyte): Now static.
8329
61c2b50e 8330 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
8331 This makes it easier for human readers (and static analyzers)
8332 to see whether these variables are used from other modules.
8333 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
8334 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
8335 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
8336 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
8337 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
8338 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
8339 * xmenu.c, xselect.c:
8340 Declare Q* vars static if they are not used in other modules.
8341 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
8342 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
8343 Remove decls of unexported vars.
8344 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
8345
95c82688
PE
8346 * lisp.h (DEFINE_FUNC): Make sname 'static'.
8347
16a97296
PE
8348 Make Emacs functions such as Fatom 'static' by default.
8349 This makes it easier for human readers (and static analyzers)
8350 to see whether these functions can be called from other modules.
8351 DEFUN now defines a static function. To make the function external
8352 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
8353 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
8354 (Finit_image_library):
16a97296
PE
8355 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
8356 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
8357 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
8358 Remove decls, since these functions are now static.
8359 (Funintern, Fget_internal_run_time): New decls, since these functions
8360 were already external.
95c82688 8361
16a97296
PE
8362 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
8363 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
8364 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
8365 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
8366 * keyboard.c, keymap.c, lread.c:
8367 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
8368 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
8369 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
8370 Mark functions with DEFUE instead of DEFUN,
8371 if they are used in other modules.
8372 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
8373 decls for now-static functions.
8374 * buffer.h (Fdelete_overlay): Remove decl.
8375 * callproc.c (Fgetenv_internal): Mark as internal.
8376 * composite.c (Fremove_list_of_text_properties): Remove decl.
8377 (Fcomposition_get_gstring): New forward static decl.
8378 * composite.h (Fcomposite_get_gstring): Remove decl.
8379 * dired.c (Ffile_attributes): New forward static decl.
8380 * doc.c (Fdocumntation_property): New forward static decl.
8381 * eval.c (Ffetch_bytecode): New forward static decl.
8382 (Funintern): Remove extern decl; now in .h file where it belongs.
8383 * fileio.c (Fmake_symbolic_link): New forward static decl.
8384 * image.c (Finit_image_library): New forward static decl.
8385 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
8386 * intervals.h (Fprevious_property_change):
8387 (Fremove_list_of_text_properties): Remove decls.
8388 * keyboard.c (Fthis_command_keys): Remove decl.
8389 (Fcommand_execute): New forward static decl.
8390 * keymap.c (Flookup_key): New forward static decl.
8391 (Fcopy_keymap): Now static.
8392 * keymap.h (Flookup_key): Remove decl.
8393 * process.c (Fget_process): New forward static decl.
8394 (Fprocess_datagram_address): Mark as internal.
8395 * syntax.c (Fsyntax_table_p): New forward static decl.
8396 (skip_chars): Remove duplicate decl.
8397 * textprop.c (Fprevious_property_change): New forward static decl.
8398 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
8399 Now internal.
8400 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
8401 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
8402
785bbd42
PE
8403 * editfns.c (Fformat): Remove unreachable code.
8404
8b913b57
AS
84052011-04-14 Andreas Schwab <schwab@linux-m68k.org>
8406
8407 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
8408 change. (Bug#8496)
8409
a6744a35
EZ
84102011-04-13 Eli Zaretskii <eliz@gnu.org>
8411
8412 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
8413 when at ZV. (Bug#8487)
8414
e7974947
AS
84152011-04-12 Andreas Schwab <schwab@linux-m68k.org>
8416
baad03f0
AS
8417 * charset.c (Fclear_charset_maps): Use xfree instead of free.
8418 (Bug#8437)
8419 * keyboard.c (parse_tool_bar_item): Likewise.
8420 * sound.c (sound_cleanup, alsa_close): Likewise.
8421 * termcap.c (tgetent): Likewise.
8422 * xfns.c (x_default_font_parameter): Likewise.
8423 * xsettings.c (read_and_apply_settings): Likewise.
8424
e7974947
AS
8425 * alloc.c (overrun_check_malloc, overrun_check_realloc)
8426 (overrun_check_free): Protoize.
8427
28272684
PE
84282011-04-12 Paul Eggert <eggert@cs.ucla.edu>
8429
8430 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
8431 since callers should never pass a negative size.
8432 Change the signature to match that of plain 'read' and 'write'; see
8433 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
8434 * lisp.h: Update prototypes of emacs_write and emacs_read.
8435
11997c76
EZ
84362011-04-11 Eli Zaretskii <eliz@gnu.org>
8437
8438 * xdisp.c (redisplay_window): Don't try to determine the character
8439 position of the scroll margin if the window start point w->startp
e896f03c 8440 is outside the buffer's accessible region. (Bug#8468)
11997c76 8441
8a2cbd72
EZ
84422011-04-10 Eli Zaretskii <eliz@gnu.org>
8443
8444 Fix write-region and its subroutines for buffers > 2GB.
8445 * fileio.c (a_write, e_write): Modify declaration of arguments and
8446 local variables to support buffers larger than 2GB.
8447 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
8448
8449 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
8450 argument, local variables, and return value.
8451
8452 * lisp.h: Update prototypes of emacs_write and emacs_read.
8453
8454 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
8455
4073e537 84562011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 8457
1ebfdcb6
PE
8458 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
8459
b2ded58d
PE
8460 Fix more problems found by GCC 4.6.0's static checks.
8461
7d66342c
PE
8462 * xdisp.c (vmessage): Use a better test for character truncation.
8463
bbf47d44
PE
8464 * charset.c (load_charset_map): <, not <=, for optimization,
8465 and to avoid potential problems with integer overflow.
9248994d 8466 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 8467 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 8468 * editfns.c (Fformat): Likewise.
1e69125e 8469 * syntax.c (skip_chars): Likewise.
3befa583 8470
e3019616
PE
8471 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
8472 This also lets GCC 4.6.0 generate slightly better loop code.
8473
becfa255
PE
8474 * callint.c (Fcall_interactively): <, not <=, for optimization.
8475 (Fcall_interactively): Count the number of arguments produced,
8476 not the number of arguments given. This is simpler and lets GCC
8477 4.6.0 generate slightly better code.
8478
dae0cd48
PE
8479 * ftfont.c: Distingish more carefully between FcChar8 and char.
8480 The previous code passed unsigned char * to a functions like
8481 strlen and xstrcasecmp that expect char *, which does not
8482 conform to the C standard.
8483 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
8484 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
8485 char * when the C standard requires it.
8486
76032d70
PE
8487 * keyboard.c (read_char): Remove unused var.
8488
eb3f1cc8
PE
8489 * eval.c: Port to Windows vsnprintf (Bug#8435).
8490 Include <limits.h>.
8491 (SIZE_MAX): Define if the headers do not.
8492 (verror): Do not give up if vsnprintf returns a negative count.
8493 Instead, grow the buffer. This ports to Windows vsnprintf, which
8494 does not conform to C99. Problem reported by Eli Zaretskii.
8495 Also, simplify the allocation scheme, by avoiding the need for
8496 calling realloc, and removing the ALLOCATED variable.
8497
70476b54
PE
8498 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
8499
12020a9e
PE
8500 Remove invocations of doprnt, as Emacs now uses vsnprintf.
8501 But keep the doprint source code for now, as we might revamp it
8502 and use it again (Bug#8435).
ea6c7ae6
PE
8503 * lisp.h (doprnt): Remove.
8504 * Makefile.in (base_obj): Remove doprnt.o.
8505 * deps.mk (doprnt.o): Remove.
8506
5fdb398c
PE
8507 error: Print 32- and 64-bit integers portably (Bug#8435).
8508 Without this change, on typical 64-bit hosts error ("...%d...", N)
8509 was used to print both 32- and 64-bit integers N, which relied on
8510 undefined behavior.
61bdb816 8511 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
8512 * lisp.h (error, verror): Mark as printf-like functions.
8513 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
8514 Report overflow in size calculations when allocating printf buffer.
8515 Do not truncate output string at its first null byte.
8516 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
8517 Truncate the output at a character boundary, since vsnprintf does not
8518 do that.
8519 * charset.c (check_iso_charset_parameter): Convert internal
8520 character to string before calling 'error', since %c now has the
8521 printf meaning.
8522 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
8523 overflow when computing char to be passed to 'error'. Do not
8524 pass Lisp_Object to 'error'; pass the integer instead.
8525 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
8526 formatted with plain %d.
8527
b189fa66
PE
8528 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
8529
bff87ef0
PE
8530 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
8531
7e2cac20
PE
8532 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
8533
ce4d90b5
PE
8534 * xterm.c (x_catch_errors): Remove duplicate declaration.
8535
266c9547
PE
8536 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
8537
79c49ad2
PE
8538 * xdisp.c, lisp.h (message_nolog): Remove; unused.
8539
368f4090
JM
85402011-04-10 Jim Meyering <meyering@redhat.com>
8541
8542 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
8543 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
8544 return ssize_t not "int", and use size_t as the buffer length.
8545 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
8546 * gnutls.h: Update declarations.
8547 * process.c (read_process_output): Use ssize_t, to match.
8548 (send_process): Likewise.
8549
a32d4040
CY
85502011-04-09 Chong Yidong <cyd@stupidchicken.com>
8551
8552 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
8553
8546720e 85542011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 8555
04f2d78b
CB
8556 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
8557 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 8558
8546720e
GM
8559 * xterm.c (handle_one_xevent):
8560 * xmenu.c (create_and_show_popup_menu):
8561 * xselect.c (x_decline_selection_request)
8562 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 8563
0a2f5c1a 85642011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
8565
8566 Fix some uses of `int' instead of EMACS_INT.
8567 * search.c (string_match_1, fast_string_match)
8568 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
8569 (scan_buffer, find_next_newline_no_quit)
8570 (find_before_next_newline, search_command, Freplace_match)
8571 (Fmatch_data): Make some `int' variables be EMACS_INT.
8572
8573 * xdisp.c (display_count_lines): 3rd argument and return value now
8574 EMACS_INT. All callers changed.
8575 (pint2hrstr): Last argument is now EMACS_INT.
8576
8577 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
8578 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
8579 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
8580 (decode_coding_utf_16, decode_coding_emacs_mule)
8581 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
8582 (decode_coding_ccl, decode_coding_charset)
8583 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
8584 (decode_coding_iso_2022, decode_coding_emacs_mule)
8585 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
8586 <char_offset, last_offset>: Declare EMACS_INT.
8587 (encode_coding_utf_8, encode_coding_utf_16)
8588 (encode_coding_emacs_mule, encode_invocation_designation)
8589 (encode_designation_at_bol, encode_coding_iso_2022)
8590 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
8591 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
8592 Declare EMACS_INT.
8593 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
8594 (encode_invocation_designation): Last argument P_NCHARS is now
8595 EMACS_INT.
8596 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
8597 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
8598
8599 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
8600 All users changed.
8601
8602 * ccl.c (Fccl_execute_on_string): Declare some variables
8603 EMACS_INT.
8604
8546720e 86052011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
8606
8607 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
8608
4e19a977
CS
86092011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
8610
8611 * process.c (Fformat_network_address): Doc fix.
8612
87302331
R
86132011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
8614
ee7683eb 8615 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 8616
cbb59342
CY
86172011-04-08 Chong Yidong <cyd@stupidchicken.com>
8618
8619 * keyboard.c (read_char): Call Lisp function help-form-show,
8620 instead of using internal_with_output_to_temp_buffer.
8621 (Qhelp_form_show): New var.
e0d38eeb 8622 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
8623
8624 * print.c (internal_with_output_to_temp_buffer): Function deleted.
8625
8626 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
8627
e67a13ab
CY
86282011-04-06 Chong Yidong <cyd@stupidchicken.com>
8629
04f2d78b
CB
8630 * process.c (Flist_processes): Remove to Lisp.
8631 (list_processes_1): Delete.
e67a13ab 8632
973f782d
EZ
86332011-04-06 Eli Zaretskii <eliz@gnu.org>
8634
7c106b1e
EZ
8635 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
8636
973f782d
EZ
8637 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
8638
41cf7d1a 86392011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 8640
ca23cc88
PE
8641 Fix more problems found by GCC 4.6.0's static checks.
8642
f390e2d5
PE
8643 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
8644
42eea0d0
PE
8645 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
8646
b69769da 8647 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 8648
f9541e84
PE
8649 * xdisp.c (vmessage): Mark as a printf-like function.
8650
13841b55
PE
8651 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
8652
c136c10f
PE
8653 * sound.c (sound_warning): Don't crash if arg contains a printf format.
8654
5e2d4a30
PE
8655 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
8656 printf-like functions.
8657 (tiff_load): Add casts to remove these marks before passing them
8658 to system-supplied API.
8659
583f48b9
PE
8660 * eval.c (Fsignal): Remove excess argument to 'fatal'.
8661
b25d760e
PE
8662 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
8663 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
8664 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
8665 directly, rather than having caller test rule sign. This avoids
8666 some unnecessary tests.
8667 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
8668 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
8669 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 8670
bc7b6697 8671 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 8672 (xfont_open): Avoid unnecessary tests.
bc7b6697 8673
27ccc379
PE
8674 * composite.c (composition_gstring_put_cache): Use unsigned integer.
8675
dcd5c89a
PE
8676 * composite.h, composite.c (composition_gstring_put_cache):
8677 Use EMACS_INT, not int, for length.
8678
b13a45c6
PE
8679 * composite.h (COMPOSITION_DECODE_REFS): New macro,
8680 breaking out part of COMPOSITION_DECODE_RULE.
8681 (COMPOSITION_DECODE_RULE): Use it.
8682 * composite.c (get_composition_id): Remove unused local vars,
8683 by using the new macro.
8684
1e792e4d
PE
8685 * textprop.c (set_text_properties_1): Change while to do-while,
8686 since the condition is always true at first.
8687
dc6c6455 8688 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
8689 (interval_deletion_adjustment): Return unsigned value.
8690 All uses changed.
dc6c6455 8691
aba7731a
PE
8692 * process.c (list_processes_1, create_pty, read_process_output):
8693 (exec_sentinel): Remove vars that were set but not used.
afd4052b 8694 (create_pty): Remove unnecessary "volatile"s.
bc57d757 8695 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 8696 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 8697 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 8698
fdfc4bf3
PE
8699 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
8700
fca8fe46 8701 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 8702 (update_syntax_table): Use unsigned instead of int.
fca8fe46 8703
06a0259a 8704 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 8705 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 8706 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 8707
e7b9e80f
PE
8708 * print.c (print_error_message): Avoid int overflow.
8709
56201685
PE
8710 * font.c (font_list_entities): Redo for clarity,
8711 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
8712
78834453 8713 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 8714 (font_score): Avoid potential overflow in diff calculation.
78834453 8715
0bc0b309 8716 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 8717 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 8718
e610eaca
PE
8719 * eval.c (funcall_lambda): Rename local to avoid shadowing.
8720
b895abce
PE
8721 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
8722 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
8723 can always succeed if overflow has undefined behavior.
8724
1f1d9321 8725 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 8726 (wordify): Omit three unnecessary tests.
1f1d9321 8727
c59478bc
PE
8728 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
8729 All callers changed. This avoids the need for an unused var.
8730
79b73827
PE
8731 * casefiddle.c (casify_region): Remove var that is set but not used.
8732
a4db5dfe
PE
8733 * dired.c (file_name_completion): Remove var that is set but not used.
8734
43aae36e
PE
8735 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
8736
2a47c44d 8737 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 8738 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 8739
a37c69bf
PE
8740 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
8741 Check for integer overflow on size calculations.
8742
328ab8e7
PE
8743 * buffer.c (Fprevious_overlay_change): Remove var that is set
8744 but not used.
8745
e5a2a5cb
PE
8746 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
8747 Remove vars that are set but not used.
8d84a6eb 8748 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 8749 (timer_check_2): Mark vars as initialized.
e5a2a5cb 8750
a60e5f68
PE
8751 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
8752
f661cb61 8753 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 8754 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 8755
f0397f5a
PE
8756 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
8757 that are set but not used.
8758
8664db06 8759 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 8760 if XCreateBitmapFromData fails (Bug#8410).
8664db06 8761
6abdaa4a
PE
8762 * xselect.c (x_get_local_selection, x_handle_property_notify):
8763 Remove vars that are set but not used.
8764
0ce7538d 8765 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 8766 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 8767
9ae848fc
PE
8768 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
8769 Remove var that is set but not used.
0b918413
PE
8770 (scroll_bar_windows_size): Now size_t, not int.
8771 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
8772 Check for overflow.
9ae848fc 8773
a5a62657
PE
8774 * xfaces.c (realize_named_face): Remove vars that are set but not used.
8775 (map_tty_color) [!defined MSDOS]: Likewise.
8776
5c5cdd39
PE
8777 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
8778
66ebf983
PE
8779 * coding.c: Remove vars that are set but not used.
8780 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
8781 All callers changed.
8782 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
8783 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
8784 (decode_coding_charset): Remove vars that are set but not used.
8785
1be4d761
PE
8786 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
8787 that is set but not used.
8788
47553fa8
PE
8789 * print.c (print_object): Remove var that is set but not used.
8790
1f7196bf 8791 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
8792 The gnulib version avoids calling malloc in the usual case,
8793 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
8794 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
8795 * filelock.c (current_lock_owner): Likewise.
8796 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
8797 * sysdep.c: Include allocator.h, careadlinkat.h.
8798 (emacs_no_realloc_allocator): New static constant.
8799 (emacs_readlink): New function.
fdb61804
PE
8800 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
8801 ../lib/careadlinkat.h.
d1fdcab7 8802
f84c17c7
SM
88032011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
8804
8805 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
8806 first non-nil return value).
8807
ef3862ad
JD
88082011-04-03 Jan Djärv <jan.h.d@swipnet.se>
8809
8810 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
8811 if not defined (Bug#8403).
8812
376a7006
JB
88132011-04-02 Juanma Barranquero <lekktu@gmail.com>
8814
8815 * xdisp.c (display_count_lines): Remove parameter `start',
8816 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
8817 (get_char_face_and_encoding): Remove parameter `multibyte_p',
8818 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
8819 (fill_stretch_glyph_string): Remove parameters `row' and `area',
8820 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
8821 and thereabouts. All callers changed.
8822 (get_per_char_metric): Remove parameter `f', unused since
8823 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
8824
6ca3801d
JM
88252011-04-02 Jim Meyering <meyering@redhat.com>
8826
8827 do not dereference NULL upon failed strdup
8828 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
8829 (ns_get_family): Likewise.
8830
d8e2b5ba
JB
88312011-04-02 Juanma Barranquero <lekktu@gmail.com>
8832
8833 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
8834
8c74fcbd
JD
88352011-04-02 Jan Djärv <jan.h.d@swipnet.se>
8836
8837 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
8838 later (Bug#8403).
8839
7200d79c
SM
88402011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
8841
03408648 8842 Add lexical binding.
7200d79c 8843
03408648
SM
8844 * window.c (Ftemp_output_buffer_show): New fun.
8845 (Fsave_window_excursion):
8846 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
8847
8848 * lread.c (lisp_file_lexically_bound_p): New function.
8849 (Fload): Bind Qlexical_binding.
8850 (readevalloop): Remove `evalfun' arg.
8851 Bind Qinternal_interpreter_environment.
8852 (Feval_buffer): Bind Qlexical_binding.
8853 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
8854 Mark as dynamic.
8855 (syms_of_lread): Declare `lexical-binding'.
8856
8857 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
8858
8859 * keyboard.c (eval_dyn): New fun.
8860 (menu_item_eval_property): Use it.
ca105506
SM
8861
8862 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 8863
03408648
SM
8864 * fns.c (concat, mapcar1): Accept byte-code-functions.
8865
8866 * eval.c (Fsetq): Handle lexical vars.
8867 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
8868 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
8869 (FletX, Flet): Obey lexical binding.
8870 (Fcommandp): Handle closures.
8871 (Feval): New `lexical' arg.
8872 (eval_sub): New function extracted from Feval. Use it almost
8873 everywhere where Feval was used. Look up vars in lexical env.
8874 Handle closures.
8875 (Ffunctionp): Move from subr.el.
8876 (Ffuncall): Handle closures.
8877 (apply_lambda): Remove `eval_flags'.
8878 (funcall_lambda): Handle closures and new byte-code-functions.
8879 (Fspecial_variable_p): New function.
8880 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
8881 but without exporting it to Lisp.
23aba0ea 8882
23aba0ea 8883 * doc.c (Fdocumentation, store_function_docstring):
03408648 8884 * data.c (Finteractive_form): Handle closures.
23aba0ea 8885
03408648
SM
8886 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
8887 interactive spec.
ba83908c 8888
04f2d78b
CB
8889 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
8890 New byte-codes.
03408648
SM
8891 (exec_byte_code): New function extracted from Fbyte_code to handle new
8892 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 8893
03408648 8894 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 8895
03408648 8896 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 8897
e2abce01
JB
88982011-03-31 Juanma Barranquero <lekktu@gmail.com>
8899
8900 * xdisp.c (redisplay_internal): Fix prototype.
8901
63696a73 89022011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 8903
63696a73 8904 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
8905 (try_scrolling): Use it when setting scroll_limit.
8906 Limit scrolling to 100 screen lines.
63696a73
EZ
8907 (redisplay_window): Even when falling back on "recentering",
8908 position point in the window according to scroll-conservatively,
8909 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
8910
8911 (try_scrolling): When point is above the window, allow searching
8912 as far as scroll_max, or one screenful, to compute vertical
8913 distance from PT to the scroll margin position. This prevents
8914 try_scrolling from unnecessarily failing when
8915 scroll-conservatively is set to a value slightly larger than the
8916 window height. Clean up the case of PT below the margin at bottom
8917 of window: scroll_max can no longer be INT_MAX. When aggressive
8918 scrolling is in use, don't let point enter the opposite scroll
8919 margin as result of the scroll.
8920 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
8921 threshold of 100 lines for never-recentering scrolling.
8922
e4cc2dfc
JB
89232011-03-31 Juanma Barranquero <lekktu@gmail.com>
8924
8925 * dispextern.h (move_it_by_lines):
8926 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
8927 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
8928 (message_log_check_duplicate): Remove parameters `prev_bol' and
8929 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
8930 (redisplay_internal): Remove parameter `preserve_echo_area',
8931 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
8932
8933 * indent.c (Fvertical_motion):
8934 * window.c (window_scroll_pixel_based, Frecenter):
8935 Don't pass `need_y_p' to `move_it_by_lines'.
8936
1c470562
SM
89372011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
8938
44f230aa
SM
8939 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
8940 steal a few bits to be more compact.
8941 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
8942 Remove unneeded casts.
8943
1c470562
SM
8944 * bytecode.c (Fbyte_code): CAR and CDR can GC.
8945
888adce9
ZK
89462011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
8947
8948 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
8949 binding" message (bug#7967).
8950
f838ed7b
PE
89512011-03-30 Paul Eggert <eggert@cs.ucla.edu>
8952
77861b95
PE
8953 Fix more problems found by GCC 4.6.0's static checks.
8954
de6dbc14
PE
8955 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
8956 Remove unused local var.
8957
f838ed7b
PE
8958 * editfns.c (Fmessage_box): Remove unused local var.
8959
792c7b2b
PE
8960 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
8961 (note_mode_line_or_margin_highlight, note_mouse_highlight):
8962 Omit unused local vars.
c499e557 8963 * window.c (shrink_windows): Omit unused local var.
b01a1c29 8964 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
8965 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
8966 Omit unused local var.
8967
ba0165e1
PE
8968 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
8969 Don't assume string length fits in int.
32ad8845 8970 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 8971 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 8972
3c59b4c9
PE
8973 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
8974 instead of alloca (Bug#8344).
8975
a3eed478 8976 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 8977 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 8978
eb4d412d
PE
8979 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
8980
1658b401
PE
8981 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
8982 concerns.
8983
8984 * term.c (produce_glyphless_glyph): Remove unnecessary test.
8985
8986 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 8987
9a2c6e05
PE
8988 * keyboard.c (syms_of_keyboard): Use the same style as later
8989 in this function when indexing through an array. This also
8990 works around GCC bug 48267.
8991
03d0a109
PE
8992 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
8993
44f730c8
PE
8994 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
8995
fe75f926
PE
8996 * chartab.c (sub_char_table_ref_and_range): Redo for slight
8997 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
8998
ffa8c828
PE
8999 * keyboard.c, keyboard.h (num_input_events): Now size_t.
9000 This avoids undefined behavior on integer overflow, and is a bit
9001 more convenient anyway since it is compared to a size_t variable.
9002
c5101a77
PE
9003 Variadic C functions now count arguments with size_t, not int.
9004 This avoids an unnecessary limitation on 64-bit machines, which
9005 caused (substring ...) to crash on large vectors (Bug#8344).
9006 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
9007 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 9008 All variadic functions and their callers changed accordingly.
c5101a77
PE
9009 (struct gcpro.nvars): Now size_t, not int. All uses changed.
9010 * data.c (arith_driver, float_arith_driver): Likewise.
9011 * editfns.c (general_insert_function): Likewise.
9012 * eval.c (struct backtrace.nargs, interactive_p)
9013 (internal_condition_case_n, run_hook_with_args, apply_lambda)
9014 (funcall_lambda, mark_backtrace): Likewise.
9015 * fns.c (concat): Likewise.
9016 * frame.c (x_set_frame_parameters): Likewise.
9017 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
9018 0 if not found, not -1. All callers changed.
9019
dd3f25f7
PE
9020 * alloc.c (garbage_collect): Don't assume stack size fits in int.
9021 (stack_copy_size): Now size_t, not int.
9022 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
9023
461c2ab9
JB
90242011-03-28 Juanma Barranquero <lekktu@gmail.com>
9025
9026 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
9027 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
9028 All callers changed.
9029
9030 * lisp.h (multibyte_char_to_unibyte):
9031 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
9032 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
9033 * character.h (CHAR_TO_BYTE8):
9034 * cmds.c (internal_self_insert):
9035 * editfns.c (general_insert_function):
9036 * keymap.c (push_key_description):
9037 * search.c (Freplace_match):
9038 * xdisp.c (message_dolog, set_message_1): All callers changed.
9039
f6d62986
SM
90402011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
9041
9042 * keyboard.c (safe_run_hook_funcall): New function.
9043 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
9044 don't set the hook to nil, but remove the offending function instead.
9045 (Qcommand_hook_internal): Remove, unused.
9046 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
9047 Vcommand_hook_internal.
9048
9049 * eval.c (enum run_hooks_condition): Remove.
9050 (funcall_nil, funcall_not): New functions.
9051 (run_hook_with_args): Call each function through a `funcall' argument.
9052 Remove `cond' argument, now redundant.
9053 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
9054 (Frun_hook_with_args_until_failure): Adjust accordingly.
9055 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
9056
1db5b1ad
JB
90572011-03-28 Juanma Barranquero <lekktu@gmail.com>
9058
9059 * dispextern.h (string_buffer_position): Remove declaration.
9060
9061 * print.c (strout): Remove parameter `multibyte', unused since
9062 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
9063
9064 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
9065 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
9066 All callers changed.
9067
9068 * w32.c (_wsa_errlist): Use braces for struct initializers.
9069
9070 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
9071 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
9072 All callers changed.
9073 (string_buffer_position): Likewise. Also, make static (it's never
9074 used outside xdisp.c).
9075 (cursor_row_p): Remove parameter `w', unused since
9076 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
9077 (decode_mode_spec): Remove parameter `precision', introduced during
9078 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
9079 All callers changed.
9080
5ffb62aa
JD
90812011-03-27 Jan Djärv <jan.h.d@swipnet.se>
9082
9083 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
9084
461c2ab9 90852011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
9086
9087 * nsterm.m (ns_menu_bar_is_hidden): New variable.
9088 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
9089 (ns_update_auto_hide_menu_bar): New functions.
9090 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
9091 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
9092 ns_constrain_all_frames.
9093 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
9094 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
9095
5c380ffb
JD
90962011-03-27 Jan Djärv <jan.h.d@swipnet.se>
9097
9098 * nsmenu.m (runDialogAt): Remove argument to timer_check.
9099
9af30bdf
GM
91002011-03-27 Glenn Morris <rgm@gnu.org>
9101
9102 * syssignal.h: Replace RETSIGTYPE with void.
9103 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
9104 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
9105 Replace SIGTYPE with void everywhere.
9106 * s/usg5-4-common.h (SIGTYPE): Remove definition.
9107 * s/template.h (SIGTYPE): Remove commented out definition.
9108
e2abce01
JB
91092011-03-26 Eli Zaretskii <eliz@gnu.org>
9110
9111 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
9112 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
9113
f868cd8a
JB
91142011-03-26 Juanma Barranquero <lekktu@gmail.com>
9115
59eb0929
JB
9116 * w32.c (read_unc_volume): Use parameter `henum', instead of
9117 global variable `wget_enum_handle'.
9118
9119 * keymap.c (describe_vector): Remove parameters `indices' and
9120 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
9121 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
9122
f868cd8a
JB
9123 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
9124
9125 * keyboard.c (timer_check): Remove parameter `do_it_now',
9126 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
9127 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
9128 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
9129
9130 * keyboard.c (read_char):
9131 * w32menu.c (w32_menu_display_help):
9132 * xmenu.c (show_help_event, menu_help_callback):
9133 Adjust calls to `show_help_echo'.
9134
9135 * gtkutil.c (xg_maybe_add_timer):
9136 * keyboard.c (readable_events):
9137 * process.c (wait_reading_process_output):
9138 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
9139
9140 * insdel.c (adjust_markers_gap_motion):
9141 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
9142 (gap_left, gap_right): Don't call it.
9143
2ecf6fdb
CY
91442011-03-25 Chong Yidong <cyd@stupidchicken.com>
9145
9146 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
9147 incurred during fontification.
9148
6b1f9ba4
JB
91492011-03-25 Juanma Barranquero <lekktu@gmail.com>
9150
9151 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
9152 (DEFVAR_PER_BUFFER): Don't pass it.
9153
9154 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
9155 (scrolling_window): Don't pass it.
9156
0f4a96b5
JB
91572011-03-25 Juanma Barranquero <lekktu@gmail.com>
9158
9159 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
9160
9161 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
9162 and `suffix'.
9163 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
9164 of variables specific to SELinux and computation of `encoded_absname'.
9165
9166 * image.c (XPutPixel): Remove unused variable `height'.
9167
9168 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
9169
9170 * unexw32.c (get_section_info): Remove unused variable `section'.
9171
9172 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
9173 (system_process_attributes): Remove unused variable `sess'.
9174 (sys_read): Remove unused variable `err'.
9175
9176 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
9177 (w32_wnd_proc): Remove unused variable `isdead'.
9178 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
9179 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
9180 (x_create_tip_frame): Remove unused variable `tem'.
9181
9182 * w32inevt.c (w32_console_read_socket):
9183 Remove unused variable `no_events'.
9184
9185 * w32term.c (x_draw_composite_glyph_string_foreground):
9186 Remove unused variable `width'.
9187
1149507c
JB
91882011-03-24 Juanma Barranquero <lekktu@gmail.com>
9189
9190 * w32term.c (x_set_glyph_string_clipping):
9191 Don't pass uninitialized region to CombineRgn.
9192
9c88f339
JB
91932011-03-23 Juanma Barranquero <lekktu@gmail.com>
9194
9195 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
9196 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
9197 (Fx_close_connection): Remove unused variable `i'.
9198
9199 * w32font.c (w32font_draw): Return number of glyphs.
9200 (w32font_open_internal): Remove unused variable `i'.
9201 (w32font_driver): Add missing initializer.
9202
9203 * w32menu.c (utf8to16): Remove unused variable `utf16'.
9204 (fill_in_menu): Remove unused variable `items_added'.
9205
9206 * w32term.c (last_mouse_press_frame): Remove static global variable.
9207 (w32_clip_to_row): Remove unused variable `f'.
9208 (x_delete_terminal): Remove unused variable `i'.
9209
9210 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
9211 (NOTHING): Remove unused static global variable.
9212 (uniscribe_check_otf): Remove unused variable `table'.
9213 (uniscribe_font_driver): Add missing initializers.
9214
dee091a3
JD
92152011-03-23 Julien Danjou <julien@danjou.info>
9216
9217 * term.c (Fsuspend_tty, Fresume_tty):
9218 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
9219 * window.c (temp_output_buffer_show):
9220 * insdel.c (signal_before_change):
9221 * frame.c (Fhandle_switch_frame):
9222 * fileio.c (Fdo_auto_save):
9223 * emacs.c (Fkill_emacs):
9224 * editfns.c (save_excursion_restore):
9225 * cmds.c (internal_self_insert):
9226 * callint.c (Fcall_interactively):
9227 * buffer.c (Fkill_all_local_variables):
9228 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
9229 Use Frun_hooks.
0f4a96b5 9230 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 9231 unconditionally since it does the check itself.
dee091a3 9232
2c520ab5 92332011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 9234
c9c49752
PE
9235 Fix more problems found by GCC 4.5.2's static checks.
9236
8abc3f12
PE
9237 * coding.c (encode_coding_raw_text): Avoid unnecessary test
9238 the first time through the loop, since we know p0 < p1 then.
9239 This also avoids a gcc -Wstrict-overflow warning.
9240
a2d26660
PE
9241 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
9242 leading to a memory leak, possible in functions like
9243 load_charset_map_from_file that can allocate an unbounded number
b12ef411 9244 of objects (Bug#8318).
a2d26660 9245
916c72e9
PE
9246 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
9247 that could (at least in theory) be that large.
9248
19ab8a18
PE
9249 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
9250 This is less likely to overflow, and avoids undefined behavior if
9251 overflow does occur. All callers changed. Use strtoul to scan
9252 for the unsigned long integer.
b7cbbd6f
PE
9253 (pint2hrstr): Simplify and tune code slightly.
9254 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 9255
f0641eff
PE
9256 * scroll.c (do_scrolling): Work around GCC bug 48228.
9257 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
9258
7f650bb9
PE
9259 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
9260 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
9261 (validate_x_resource_name): Simplify count usage.
9262 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 9263
37dd57d1
PE
9264 * fileio.c (Fcopy_file): Report error if fchown or fchmod
9265 fail (Bug#8306).
81e56e61 9266
699979fc 9267 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 9268
401bf9b4
PE
9269 * process.c (Fmake_network_process): Use socklen_t, not int,
9270 where POSIX says socklen_t is required in portable programs.
9271 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 9272 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
9273 (Fmake_network_process, server_accept_connection):
9274 (wait_reading_process_output, read_process_output):
9275 Likewise.
9276
b93aacde
PE
9277 * process.c: Rename or move locals to avoid shadowing.
9278 (list_processes_1, Fmake_network_process):
9279 (read_process_output_error_handler, exec_sentinel_error_handler):
9280 Rename or move locals.
4dc343ee 9281 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 9282 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 9283 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 9284 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 9285 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 9286
af8a867c 9287 Make tparam.h and terminfo.c consistent.
44f230aa
SM
9288 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
9289 Include tparam.h instead, since it declares them.
af8a867c
PE
9290 * cm.h (PC): Remove extern decl; tparam.h now does this.
9291 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
9292 * terminfo.c: Include tparam.h, to check interfaces.
9293 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
9294 (tparam): Adjust signature to match interface in tparam.h;
9295 this removes some undefined behavior. Check that outstring and len
9296 are zero, which they always are with Emacs.
9297 * tparam.h (PC, BC, UP): New extern decls.
9298
0248044d 9299 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 9300 (xftfont_open): Rename locals to avoid shadowing.
0248044d 9301
8ff096c1 9302 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
9303 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
9304 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 9305 (ftfont_list): Remove unused local.
49eaafba
PE
9306 (get_adstyle_property, ftfont_pattern_entity):
9307 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
9308 Rename locals to avoid shadowing.
8ff096c1 9309
e2be39f6
PE
9310 * xfont.c (xfont_list_family): Mark var as initialized.
9311
c9735e30
PE
9312 * xml.c (make_dom): Now static.
9313
8f5201ae
PE
9314 * composite.c (composition_compute_stop_pos): Rename local to
9315 avoid shadowing.
b246f932
PE
9316 (composition_reseat_it): Remove unused locals.
9317 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 9318 (composition_update_it): Mark var as initialized.
11b61122
PE
9319 (find_automatic_composition): Mark vars as initialized,
9320 with a FIXME (Bug#8290).
8f5201ae 9321
760fbc2c
PE
9322 character.h: Rename locals to avoid shadowing.
9323 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
9324 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
9325 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
9326 (BUF_DEC_POS): Be more systematic about renaming local temporaries
9327 to avoid shadowing.
9328
ff08eb85
PE
9329 * textprop.c (property_change_between_p): Remove; unused.
9330
fc7bf025
PE
9331 * intervals.c (interval_start_pos): Now static.
9332
235d7abc
PE
9333 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
9334
44f230aa
SM
9335 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
9336 Rename locals to avoid shadowing.
3e7d6594 9337
50060332
PE
9338 * sound.c (wav_play, au_play, Fplay_sound_internal):
9339 Fix pointer signedness.
d01f234b 9340 (alsa_choose_format): Remove unused local var.
c83b8872
PE
9341 (wav_play): Initialize a variable to 0, to prevent undefined
9342 behavior (Bug#8278).
50060332 9343
c4fc4e30
PE
9344 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
9345
918436ed
PE
9346 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
9347
c939f91b
PE
9348 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
9349 clobbering (Bug#8298).
b9c7f648
PE
9350 * sysdep.c (sys_subshell): Likewise.
9351 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 9352
6bd8c144
PE
9353 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
9354 This should get cleaned up, so that child_setup has the
9355 same signature on all platforms.
9356
7710357c 9357 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 9358 (relocate_fd): Rename locals to avoid shadowing.
7710357c 9359
c59da222
CY
93602011-03-22 Chong Yidong <cyd@stupidchicken.com>
9361
9362 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
9363 not to be necessary, and produces flickering.
9364
66b87493
GM
93652011-03-20 Glenn Morris <rgm@gnu.org>
9366
9367 * config.in: Remove file.
9368
45b6f6d5
JB
93692011-03-20 Juanma Barranquero <lekktu@gmail.com>
9370
9371 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
9372 are now in src/globals.h.
9373 (syms_of_minibuf): Remove spurious & from previous change.
9374
cd394be1 93752011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
9376
9377 * minibuf.c (completing-read-function): New variable.
9378 (completing-read-default): Rename from completing-read.
9379 (completing-read): Call completing-read-function.
9380
b14e3e21
CY
93812011-03-19 Juanma Barranquero <lekktu@gmail.com>
9382
9383 * xfaces.c (Fx_load_color_file):
9384 Read color file from absolute filename (bug#8250).
9385
f2b726e6
JB
93862011-03-19 Juanma Barranquero <lekktu@gmail.com>
9387
9388 * makefile.w32-in: Update dependencies.
9389
09f6ff02
EZ
93902011-03-17 Eli Zaretskii <eliz@gnu.org>
9391
9392 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
9393
29a6015a
PE
93942011-03-17 Paul Eggert <eggert@cs.ucla.edu>
9395
a3a6c54e
PE
9396 Fix more problems found by GCC 4.5.2's static checks.
9397
b766f867
PE
9398 * process.c (make_serial_process_unwind, send_process_trap):
9399 (sigchld_handler): Now static.
9400
be02381c
PE
9401 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
9402 That way, the code declares only the vars that it needs.
9403 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
9404 * s/cygwin.h (PTY_ITERATION): Likewise.
9405 * s/darwin.h (PTY_ITERATION): Likewise.
9406 * s/gnu-linux.h (PTY_ITERATION): Likewise.
9407
57048744
PE
9408 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
9409 * process.c (allocate_pty): Don't declare stb unless it's needed.
9410
7914961c 9411 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
9412 (CONSTANTLIM): Remove; unused.
9413 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
9414 Define only if needed.
7914961c 9415
b3967b18
PE
9416 * unexelf.c (unexec): Name an expression,
9417 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
9418 Use a different way to cause a compilation error if anyone uses
9419 n rather than nn, a way that does not involve shadowing.
73366a00 9420 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 9421
29a6015a
PE
9422 * deps.mk (unexalpha.o): Remove; unused.
9423
43cfc33e 9424 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 9425 * unexec.h: New file.
ce701a33
PE
9426 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
9427 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
9428 Depend on unexec.h.
9429 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
9430 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
9431 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 9432 Change as necessary to match prototype in unexec.h.
ce701a33 9433
01f44d5a
PE
9434 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
9435 shadowing.
4f63c6bb 9436 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 9437
a6670b0b
PE
9438 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
9439 Rename locals to avoid shadowing.
9440
cef2010d 9441 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 9442 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 9443
d4d7173a
PE
9444 * print.c (Fredirect_debugging_output): Fix pointer signedess.
9445
f08b802a
PE
9446 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
9447 warning when compiling print.c.
9448
3ddb0639
PE
9449 * font.c (font_unparse_fcname): Abort in an "impossible" situation
9450 instead of using an uninitialized var.
5ad03b97 9451 (font_sort_entities): Mark var as initialized.
3ddb0639 9452
170a2692
PE
9453 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
9454
e663c700
PE
9455 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
9456 pointers to constants.
89bc529a 9457 (font_parse_fcname): Remove unused vars.
7b81e2d0 9458 (font_delete_unmatched): Now static.
ea838e10 9459 (font_get_spec): Remove; unused.
13a547c6
PE
9460 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
9461 (font_update_drivers, Ffont_get_glyphs, font_add_log):
9462 Rename or move locals to avoid shadowing.
e663c700 9463
2a80c887 9464 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 9465 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 9466
1384fa33 9467 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 9468 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 9469
8b2c52e9
PE
9470 * alloc.c (mark_backtrace): Move decl from here ...
9471 * lisp.h: ... to here, so that it can be checked.
9472
475545b5 9473 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 9474 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
9475 (lisp_indirect_variable): Name an expression,
9476 to avoid gcc -Wbad-function-cast warning.
1faed8ae 9477 (Fdefvar): Rename locals to avoid shadowing.
475545b5 9478
b1349114 9479 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 9480 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 9481 Use const pointer when appropriate.
b1349114 9482
a2928364
PE
9483 * lisp.h (get_system_name, get_operating_system_release):
9484 Move decls here, to check interfaces.
9485 * process.c (get_operating_system_release): Move decl to lisp.h.
9486 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
9487 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
9488 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
9489 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
9490 (Fformat_time_string, Fencode_time, Finsert_char):
9491 (Ftranslate_region_internal, Fformat):
9492 Rename or remove local vars to avoid shadowing.
9710023e 9493 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 9494
a415e694
PE
9495 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
9496 avoid shadowing.
9497
8ef4622d
PE
9498 * lisp.h (eassert): Check that the argument compiles, even if
9499 ENABLE_CHECKING is not defined.
9500
946f9a5b
PE
9501 * data.c (Findirect_variable): Name an expression, to avoid
9502 gcc -Wbad-function-cast warning.
112396d6 9503 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 9504 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
9505 (Fmake_variable_buffer_local, Fmake_local_variable):
9506 Mark variables as initialized.
52746918 9507 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 9508
e5aab7e7 9509 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
9510 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
9511 Rename locals to avoid shadowing.
dff45157
PE
9512 (mark_stack): Move local variables into the #ifdef region where
9513 they're used.
7bc26fdb
PE
9514 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
9515 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
9516 needed otherwise.
9517 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
9518 (GC_STRING_CHARS): Remove; not used.
d40d4be1 9519 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 9520
e5aab7e7
PE
9521 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
9522 avoids undefined behavior in theory.
9523
4da60324
PE
9524 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
9525
88043301
PE
9526 Use functions, not macros, for up- and down-casing (Bug#8254).
9527 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
9528 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
9529 to use the following functions instead of these macros.
9530 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
9531 EMACS_INT, since callers assume the returned value fits in int.
9532 (upcase1): Likewise, for UPCASE_TABLE.
9533 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 9534 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 9535 the race-condition problem in the old DOWNCASE.
88043301 9536
19ed5445
PE
9537 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
9538 Rename locals to avoid shadowing.
9539 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
9540 (regex_compile, re_search_2, re_match_2_internal):
9541 Remove unused local vars.
952db0d7
PE
9542 (FREE_VAR): Rewrite so as not to use empty "else",
9543 which gcc can warn about.
da053e48 9544 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
9545 (RETALLOC_IF): Define only if needed.
9546 (WORDCHAR_P): Likewise. This one is never needed, but is used
9547 only in a comment talking about a compiler bug, so put inside
9548 the #if 0 of that comment.
9549 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
9550 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
9551 Remove; unused.
19ed5445 9552
1f3561e4 9553 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
9554 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
9555 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 9556
ded6f8f7
PE
9557 * search.c (simple_search): Remove unused var.
9558
dbd37a95
PE
9559 * dired.c (compile_pattern): Move decl from here ...
9560 * lisp.h: ... to here, so that it can be checked.
9561 (struct re_registers): New forward decl.
9562
7e47afad
PE
9563 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
9564
85f24f61
PE
9565 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
9566 All uses changed.
9567 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
9568 Rename locals to avoid shadowing.
5671df8f 9569 (Fvertical_motion): Mark locals as initialized.
85f24f61 9570
181aa2be 9571 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 9572 (casify_region): Mark local as initialized.
181aa2be 9573
930d429c
PE
9574 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
9575
7082eac6
PE
9576 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
9577 New macros, so that the caller can use some names other than
9578 gcpro1, gcpro2, etc.
9579 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
9580 of the new macros.
9581 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
9582 argument, for consistency with GCPRO2_VAR, etc: it is now the
9583 prefix of the variable, not the variable itself. All uses
9584 changed.
38b2c076
PE
9585 * dired.c (directory_files_internal, file_name_completion):
9586 Rename locals to avoid shadowing.
9587
15206ed9
PE
9588 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
9589 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
9590 dired.c's scmp function, had undefined behavior.
9591 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
9592 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
9593 * buffer.h: ... to here, because these macros use current_buffer,
9594 and the new implementation with inline functions needs to have
9595 current_buffer in scope now, rather than later when the macros
9596 are used.
9597 (downcase, upcase1): New static inline functions.
9598 (DOWNCASE, UPCASE1): Reimplement using these functions.
9599 This avoids undefined behavior in expressions like
9600 DOWNCASE (x) == DOWNCASE (y), which previously suffered
9601 from race conditions in accessing the global variables
9602 case_temp1 and case_temp2.
9603 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
9604 * lisp.h (case_temp1, case_temp2): Remove their decls.
9605 * character.h (ASCII_CHAR_P): Move from here ...
9606 * lisp.h: ... to here, so that the inline functions mentioned
9607 above can use them.
9608
4a6bea26
PE
9609 * dired.c (directory_files_internal_unwind): Now static.
9610
f14b7e14
PE
9611 * fileio.c (file_name_as_directory, directory_file_name):
9612 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
9613 Now static.
2893f146
PE
9614 (file_name_as_directory): Use const pointers when appropriate.
9615 (Fexpand_file_name): Likewise. In particular, newdir might
9616 point at constant storage, so make it a const pointer.
fd4ead52 9617 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
9618 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
9619 signedness issues.
f839df0c
PE
9620 (Fset_file_times, Finsert_file_contents, auto_save_error):
9621 Rename locals to avoid shadowing.
f14b7e14 9622
5716756e 9623 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
9624 (Ftry_completion, Fall_completions): Rename or remove locals
9625 to avoid shadowing.
5716756e 9626
b4c3046a
PE
9627 * marker.c (bytepos_to_charpos): Remove; unused.
9628
b45db522
PE
9629 * lisp.h (verify_bytepos, count_markers): New decls,
9630 so that gcc does not warn that these functions aren't declared.
9631
85876d07
PE
9632 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
9633 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 9634 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 9635 (copy_text): Remove unused local var.
85876d07 9636
03d78a21 9637 * filelock.c (within_one_second): Now static.
b3dd38ab 9638 (lock_file_1): Rename local to avoid shadowing.
03d78a21 9639
5df8f01b
PE
9640 * buffer.c (fix_overlays_before): Mark locals as initialized.
9641 (fix_start_end_in_overlays): Likewise. This function should be
9642 simplified by using pointers-to-pointers, but that's a different
9643 matter.
b1d876f1 9644 (switch_to_buffer_1): Now static.
8f54f30a
PE
9645 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
9646 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 9647
a70072c9 9648 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 9649 Fix pointer signedness issue.
edced198
PE
9650 (sys_subshell): Mark local as volatile if checking for lint,
9651 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 9652 (MAXPATHLEN): Define only if needed.
a70072c9 9653
a0977c44
PE
9654 * process.c (serial_open, serial_configure): Move decls from here ...
9655 * systty.h: ... to here, so that they can be checked.
9656
a884fdcc
PE
9657 * fns.c (get_random, seed_random): Move extern decls from here ...
9658 * lisp.h: ... to here, so that they can be checked.
9659
604efe86 9660 * sysdep.c (reset_io): Now static.
b8950c94 9661 (wait_for_termination_signal): Remove; unused.
604efe86 9662
38fc62d9
PE
9663 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
9664 (copy_keymap_item, append_key, push_text_char_description):
9665 Now static.
1004a21a 9666 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 9667 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
9668 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
9669 (describe_map_tree):
9670 Rename locals to avoid shadowing.
38fc62d9 9671
2f2650da
PE
9672 * keyboard.c: Declare functions static if they are not used elsewhere.
9673 (echo_char, echo_dash, cmd_error, top_level_2):
9674 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
9675 (read_char, kbd_buffer_get_event, make_lispy_position):
9676 (make_lispy_event, make_lispy_movement, apply_modifiers):
9677 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
9678 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
9679 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 9680 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 9681 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 9682
a053e86c 9683 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
9684 (mark_kboards): Move decl here ...
9685 * alloc.c (mark_kboards): ... from here.
a053e86c 9686
4752793e
PE
9687 * lisp.h (force_auto_save_soon): New decl.
9688
74f10ca7 9689 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
9690 (DEFINE_DUMMY_FUNCTION): New macro.
9691 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
9692 Use it.
c03cd23f
PE
9693 (main): Add casts to avoid warnings
9694 if GCC considers string literals to be constants.
74f10ca7 9695
022e70d4
PE
9696 * lisp.h (fatal_error_signal): Add decl, since it's exported.
9697
59d6fe83
PE
9698 * dbusbind.c: Pointer signedness fixes.
9699 (xd_signature, xd_append_arg, xd_initialize):
9700 (Fdbus_call_method, Fdbus_call_method_asynchronously):
9701 (Fdbus_method_return_internal, Fdbus_method_error_internal):
9702 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
9703 (Fdbus_register_signal): Use SSDATA when the context wants char *.
9704
78320123
PE
9705 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
9706 if GCC considers string literals to be constants.
49cebcca 9707 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 9708
35ac2a97
SM
97092011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
9710
fb103ca9
SM
9711 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
9712 (print_preprocess, print_object): New macro to fix last change.
9713
35ac2a97
SM
9714 * print.c (print_preprocess): Don't forget font objects.
9715
62973b41
JB
97162011-03-16 Juanma Barranquero <lekktu@gmail.com>
9717
9718 * emacs.c (USAGE3): Doc fixes.
9719
0e48bb22
AS
97202011-03-15 Andreas Schwab <schwab@linux-m68k.org>
9721
9722 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
9723 structure.
9724
7684e57b
JB
97252011-03-14 Juanma Barranquero <lekktu@gmail.com>
9726
9727 * lisp.h (VWindow_system, Qfile_name_history):
9728 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
9729 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
9730 (w32_system_caret_x, w32_system_caret_y): Declare extern.
9731
9732 * w32select.c: Don't #include "keyboard.h".
c96bbc66 9733 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
9734
9735 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
9736 * w32console.c (detect_input_pending, read_input_pending)
9737 (encode_terminal_code):
9738 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
9739 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
9740 (w32_system_caret_y, Qfile_name_history):
9741 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
9742 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
9743 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
9744 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
9745 * w32proc.c (Qlocal, report_file_error):
9746 * w32term.c (Vwindow_system, updating_frame):
9747 * w32uniscribe.c (initialized, uniscribe_font_driver):
9748 Remove unneeded extern declarations.
9749
2aa46d6c
CY
97502011-03-14 Chong Yidong <cyd@stupidchicken.com>
9751
c96bbc66 9752 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 9753
cffc6f3b
CY
97542011-03-13 Chong Yidong <cyd@stupidchicken.com>
9755
9756 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
9757 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
9758 These macros can no longer be used for assignment.
9759
44f230aa
SM
9760 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
9761 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
9762 (record_buffer_markers, fetch_buffer_markers): New functions for
9763 recording and fetching special buffer markers.
9764 (set_buffer_internal_1, set_buffer_temp): Use them.
9765
9766 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
9767
9768 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
9769
9770 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
9771 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
9772
9773 * xdisp.c (hscroll_window_tree):
9774 (reconsider_clip_changes): Use PT instead of BUF_PT.
9775
d251f04b
EZ
97762011-03-13 Eli Zaretskii <eliz@gnu.org>
9777
9778 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
9779 $(EMACS_ROOT)/lib/intprops.h.
9780
f0c77cd1
PE
97812011-03-13 Paul Eggert <eggert@cs.ucla.edu>
9782
3eca4629
PE
9783 Fix more problems found by GCC 4.5.2's static checks.
9784
7c86ee98
PE
9785 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
9786 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
9787 (xg_free_frame_widgets): Make it clear that a local variable is
9788 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
9789 (gdk_window_get_screen): Make it clear that this macro is needed
9790 only if USE_GTK_TOOLTIP.
1e5524e7
PE
9791 (int_gtk_range_get_value): New function, which avoids a diagnostic
9792 from gcc -Wbad-function-cast.
9793 (xg_set_toolkit_scroll_bar_thumb): Use it.
9794 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
9795 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
9796 (get_utf8_string, xg_get_file_with_chooser):
9797 Rename locals to avoid shadowing.
9798 (create_dialog): Move locals to avoid shadowing.
7c86ee98 9799
41729b81
PE
9800 * xgselect.c (xg_select): Remove unused var.
9801
f0c77cd1
PE
9802 * image.c (four_corners_best): Mark locals as initialized.
9803 (gif_load): Initialize transparent_p to zero (Bug#8238).
9804 Mark another local as initialized.
ec6cf4c6 9805 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 9806
ce0ad53d 9807 * image.c (clear_image_cache): Now static.
d5d5a617 9808 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 9809 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
9810 (x_edge_detection): Remove unnecessary cast that
9811 gcc -Wbad-function-cast diagnoses.
2037898d 9812 (gif_load): Fix pointer signedness.
6ae141d6
PE
9813 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
9814 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 9815
33383987 98162011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 9817
d32df629
PE
9818 Improve quality of tests for time stamp overflow.
9819 For example, without this patch (encode-time 0 0 0 1 1
9820 1152921504606846976) returns the obviously-bogus value (-948597
9821 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
9822 reports time overflow. See
9823 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
9824 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
9825 * editfns.c: Include limits.h and intprops.h.
9826 (TIME_T_MIN, TIME_T_MAX): New macros.
9827 (time_overflow): Move earlier, to before first use.
9828 (hi_time, lo_time): New functions, for an accurate test for
9829 out-of-range times.
9830 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
9831 (Fget_internal_run_time): Don't assume time_t fits in int.
9832 (make_time): Use list2 instead of Fcons twice.
9833 (Fdecode_time): More accurate test for out-of-range times.
9834 (check_tm_member): New function.
9835 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
9836 (lisp_time_argument): Don't rely on undefined left-shift and
9837 right-shift behavior when checking for time stamp overflow.
8be6f318 9838
fe31d94c
PE
9839 * editfns.c (time_overflow): New function, refactoring common code.
9840 (Fformat_time_string, Fdecode_time, Fencode_time):
9841 (Fcurrent_time_string): Use it.
9842
8be6f318
PE
9843 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
9844 * dired.c (make_time): Move to ...
9845 * editfns.c (make_time): ... here.
9846 * systime.h: Note the move.
9847
09d9db2c 98482011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 9849
126bc0dc
YM
9850 * fringe.c (update_window_fringes): Remove unused variables.
9851
c47cbdfd
YM
9852 * unexmacosx.c (copy_data_segment): Also copy __got section.
9853 (Bug#8223)
9854
7ac80be9
EZ
98552011-03-12 Eli Zaretskii <eliz@gnu.org>
9856
c96bbc66 9857 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
9858 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
9859 Constify `char *' arguments and their references according to
9860 prototypes in tparam.h.
9861
ecb0f94d 9862 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 9863
7ac80be9
EZ
9864 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
9865 Adapt all references accordingly.
9866
9867 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
9868
ef1fd07e
TT
98692011-03-11 Tom Tromey <tromey@redhat.com>
9870
9871 * buffer.c (syms_of_buffer): Remove obsolete comment.
9872
7ef4b50c
EZ
98732011-03-11 Eli Zaretskii <eliz@gnu.org>
9874
9875 * termhooks.h (encode_terminal_code): Declare prototype.
9876
9877 * msdos.c (encode_terminal_code): Don't declare prototype.
9878
9879 * term.c (encode_terminal_code): Now external again, used by
9880 w32console.c and msdos.c.
9881
44f230aa
SM
9882 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
9883 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 9884
4b1ec863 98852011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 9886
1714f52b 9887 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 9888
4b1ec863
PE
9889 * fringe.c (update_window_fringes): Mark locals as initialized
9890 (Bug#8227).
9891 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 9892
524c7aa6
PE
9893 * alloc.c (mark_fringe_data): Move decl from here ...
9894 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
9895 to check its interface.
9896 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
9897
a5c0af81 9898 * fontset.c (free_realized_fontset): Now static.
7519b8cd 9899 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 9900 (fontset_font): Mark local as initialized.
a9a06e0b 9901 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 9902
b4716021
PE
9903 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
9904
811e9bac 9905 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 9906 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
9907 (x_own_selection, Fx_disown_selection_internal): Rename locals
9908 to avoid shadowing.
9909 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 9910
7e3ab302
PE
9911 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
9912 so that the caller can use some name other than gcpro1.
9913 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
9914 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
9915 (Fx_backspace_delete_keys_p):
9916 Use them to avoid shadowing, and rename vars to avoid shadowing.
9917 (x_decode_color, x_set_name, x_window): Now static.
6b437900 9918 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 9919 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
9920 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
9921 Remove unused locals.
7e3ab302
PE
9922 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
9923 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
9924 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
9925 macros.
f78faa98 9926
e2b13473
PE
9927 * xterm.h (x_mouse_leave): New decl.
9928
77f23912
PE
9929 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
9930 Remove unused functions.
cdf4ba58
PE
9931 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
9932 (x_calc_absolute_position): Now static.
7411c686 9933 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 9934 Don't declare local "event" unless it's used.
ed7bf3a5
PE
9935 (x_iconify_frame, x_free_frame_resources): Don't declare locals
9936 unless they are used.
38d0b34a
PE
9937 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
9938 (x_fatal_error_signal): Remove; not used.
a6067996
PE
9939 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
9940 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
9941 (x_error_catcher, x_connection_closed, x_error_handler):
9942 (x_error_quitter, xembed_send_message, x_iconify_frame):
9943 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 9944 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 9945 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 9946
44f230aa
SM
9947 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
9948 Rename or move locals to avoid shadowing.
6b463e58 9949 (tty_defined_color, merge_face_heights): Now static.
5967d051 9950 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
9951 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
9952 does not deduce is never used uninitialized.
73719eba
PE
9953 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
9954 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 9955
426994c3 9956 * terminal.c (store_terminal_param): Now static.
5489860b 9957
032f1620 9958 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 9959 (set_frame_menubar): Remove unused local.
d4323972 9960 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
9961 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
9962 since they might point to immutable storage.
281585b0
PE
9963 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
9964 since it's unused otherwise.
032f1620 9965
367c19e5 9966 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 9967 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
9968 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
9969 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 9970 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
9971 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
9972 does not deduce are never used uninitialized.
70739cbe 9973
07b48fa9
PE
9974 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
9975
8868a238 9976 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
9977 * window.c (window_loop, size_window):
9978 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 9979
7e5cf297 9980 * window.c (display_buffer): Now static.
d6550a9f
PE
9981 (size_window): Mark variables that gcc -Wuninitialized
9982 does not deduce are never used uninitialized.
a586633d
PE
9983 * window.h (check_all_windows): New decl, to forestall
9984 gcc -Wmissing-prototypes diagnostic.
5b555da1 9985 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 9986
f6095868
PE
9987 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
9988 shadowing.
9989 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
9990 Include <limits.h>.
9991 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
9992 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
9993 (load_charset_map): Mark variables that gcc -Wuninitialized
9994 does not deduce are never used uninitialized.
53df7c11 9995 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 9996
f38b440c
PE
9997 * coding.c (coding_set_source, coding_set_destination):
9998 Use "else { /* comment */ }" rather than "else /* comment */;"
9999 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
10000 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
10001 a block, when the outer 'i' will do.
10002 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
10003 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
10004 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
10005 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
10006 (Fdecode_sjis_char, Fdefine_coding_system_internal):
10007 Rename locals to avoid shadowing.
10008 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
10009 * coding.c (emacs_mule_char, encode_invocation_designation):
10010 Now static, since they're not used elsewhere.
413bb2db 10011 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 10012 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
10013 (decode_coding_emacs_mule): Mark variables that gcc
10014 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
10015 (detect_coding_iso_2022): Initialize a local variable that might
10016 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 10017 this initialization is needed. (Bug#8211)
5f58e762
PE
10018 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
10019 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
10020 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
10021 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
10022 Remove unused macros.
f38b440c 10023
232b38b9 10024 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 10025 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 10026 * character.c (string_count_byte8): Likewise.
232b38b9 10027
fb90da1b
PE
10028 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
10029 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
10030
fb93dbc2
PE
10031 * chartab.c (copy_sub_char_table): Now static, since it's not used
10032 elsewhere.
5c156ace
PE
10033 (sub_char_table_ref_and_range, char_table_ref_and_range):
10034 Rename locals to avoid shadowing.
bbcd0949 10035 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 10036
7d3b3862 10037 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 10038 (BIDI_BOB): Remove unused macro.
7d3b3862 10039
6be7d3da
PE
10040 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
10041 deduce are never used uninitialized.
c2ed9c8b 10042 * term.c (encode_terminal_code): Likewise.
6be7d3da 10043
75f8807f 10044 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 10045
50938595
PE
10046 * tparam.h: New file.
10047 * term.c, tparam.h: Include it.
10048 * deps.mk (term.o, tparam.o): Depend on tparam.h.
10049 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
10050 Move these decls to tparam.h, and make them agree with what
10051 is actually in tparam.c. The previous trick of using incompatible
10052 decls in different modules does not conform to the C standard.
10053 All callers of tparam changed to use tparam's actual API.
10054 * tparam.c (tparam1, tparam, tgoto):
10055 Use const pointers where appropriate.
10056
fbceeba2
PE
10057 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
10058 * cm.h (struct cm): Likewise.
10059 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
10060 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
10061 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
10062 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
10063 (turn_on_face, init_tty): Likewise.
10064 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 10065
7f3f1250
PE
10066 * term.c (term_mouse_position): Rename local to avoid shadowing.
10067
e6ca6543
PE
10068 * alloc.c (mark_ttys): Move decl from here ...
10069 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
10070
c40f8d15
AS
100712011-03-11 Andreas Schwab <schwab@linux-m68k.org>
10072
10073 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
10074
cfe0661d
JB
100752011-03-09 Juanma Barranquero <lekktu@gmail.com>
10076
10077 * search.c (compile_pattern_1): Remove argument regp, unused since
10078 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
10079 (compile_pattern): Don't pass it.
10080
0afb4571
J
100812011-03-08 Jan Djärv <jan.h.d@swipnet.se>
10082
10083 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
10084 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
10085 for ! HAVE_GTK3.
10086 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
10087
10088 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
10089
10090 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
10091 gdk_window_get_screen, gdk_window_get_geometry,
10092 gdk_x11_window_lookup_for_display and GDK_KEY_g.
10093 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
10094 (xg_get_pixbuf_from_pixmap): New function.
10095 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
10096 to Pixmap, take frame as parameter, remove GdkColormap parameter.
10097 Call xg_get_pixbuf_from_pixmap instead of
10098 gdk_pixbuf_get_from_drawable.
10099 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
10100 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
10101 (xg_check_special_colors): Use GtkStyleContext and its functions
10102 for HAVE_GTK3.
10103 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
10104 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
10105 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
10106 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
10107 Call gtk_widget_get_preferred_size.
0afb4571
J
10108 (xg_frame_resized): gdk_window_get_geometry only takes 5
10109 parameters.
44f230aa
SM
10110 (xg_win_to_widget, xg_event_is_for_menubar):
10111 Call gdk_x11_window_lookup_for_display.
0afb4571
J
10112 (xg_set_widget_bg): New function.
10113 (delete_cb): New function.
895009e1 10114 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 10115 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
10116 (xg_set_background_color): Call xg_set_widget_bg.
10117 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
10118 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
10119 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
10120 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
10121 if ! HAVE_GTK3.
10122 (update_frame_tool_bar): Call gtk_widget_hide.
10123 (xg_initialize): Use GDK_KEY_g.
10124
10125 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
10126 if ! HAVE_GTK3
10127 (x_session_initialize): Call gdk_x11_set_sm_client_id.
10128
10129 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
10130 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
10131 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
10132
1c2cc4ef
JB
101332011-03-08 Juanma Barranquero <lekktu@gmail.com>
10134
10135 * w32xfns.c (select_palette): Check success of RealizePalette against
10136 GDI_ERROR, not zero.
10137
33383987 10138See ChangeLog.11 for earlier changes.
aac0c6e3
MR
10139
10140;; Local Variables:
10141;; coding: utf-8
aac0c6e3
MR
10142;; End:
10143
2f097256 10144 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
10145
10146 This file is part of GNU Emacs.
10147
10148 GNU Emacs is free software: you can redistribute it and/or modify
10149 it under the terms of the GNU General Public License as published by
10150 the Free Software Foundation, either version 3 of the License, or
10151 (at your option) any later version.
10152
10153 GNU Emacs is distributed in the hope that it will be useful,
10154 but WITHOUT ANY WARRANTY; without even the implied warranty of
10155 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10156 GNU General Public License for more details.
10157
10158 You should have received a copy of the GNU General Public License
10159 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.