Remove src/s/hpux10-20.h
[bpt/emacs.git] / src / ChangeLog
CommitLineData
c1529ded
GM
12012-07-31 Glenn Morris <rgm@gnu.org>
2
3 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
4 * s/hpux10-20.h: Remove file, which is now empty.
5
b429a4ee
GM
62012-07-30 Glenn Morris <rgm@gnu.org>
7
8 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
9 * Makefile.in (config_h): Add conf_post.h.
10 * makefile.w32-in (CONFIG_H): Add conf_post.h.
11
adff3182
JD
122012-07-30 Jan Djärv <jan.h.d@swipnet.se>
13
14 * nsterm.m (ns_do_open_file): New variable.
15 (ns_term_init): Set ns_do_open_file to NO after run returns.
16 (openFile, openTempFile, openFileWithoutUI, openFiles): Open
17 files only if ns_do_open_file.
18
c32af1e4
PE
192012-07-30 Paul Eggert <eggert@cs.ucla.edu>
20
7393bcbb
PE
21 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
22 This no-op macro hasn't been needed for many years.
23 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
24
c32af1e4
PE
25 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
26 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
27 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
28 gdb_make_enums_visible.
29 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
30 (DIRECTORY_SEP): Now a constant, not a macro.
31
302fc036
EZ
322012-07-30 Eli Zaretskii <eliz@gnu.org>
33
34 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
35 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
36
37 * w32term.c <w32_keyboard_codepage>: Renamed from
38 keyboard_codepage and now external. All users changed.
39
40 * w32term.h: Add declaration of w32_keyboard_codepage.
41
42 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
43 the codepage to translate keys to Unicode. If this argument is
44 -1, use the value returned by GetConsoleCP. All callers changed.
45
88fb40b4
PE
462012-07-30 Paul Eggert <eggert@cs.ucla.edu>
47
0aee6912
PE
48 Update .PHONY listings in makefiles.
49 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
50 bootstrap-clean, distclean, maintainer-clean, versioclean,
51 extraclean, frc.
52
88fb40b4
PE
53 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
54 This is a bit clearer. Fix some commentary typos.
55
0a763bd1
GM
562012-07-30 Glenn Morris <rgm@gnu.org>
57
32bac6d6
GM
58 * s/netbsd.h: Let configure include signal.h if needed.
59 Remove file, which is now empty.
60
b65e7c46
GM
61 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
62 Let configure set them.
63 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
64 No more need to undefine.
0a763bd1 65
169304bd
AS
662012-07-30 Andreas Schwab <schwab@linux-m68k.org>
67
68 * keymap.c (Fkey_description): Don't remove 0x80 bit from
69 non-single-byte char when adding meta modifier. (Bug#12090)
70
6cd7a139
DA
712012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
72
73 Convert safe_call to use variable number of arguments.
74 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
75 (safe_call2): Fix comment.
76 * lisp.h (safe_call): Adjust prototype.
77 * coding.c (encode_coding_object): Change to use safe_call2.
78 * xfaces.c (merge_face_heights): Change to use safe_call1.
79
d34d6ffc
GM
802012-07-30 Glenn Morris <rgm@gnu.org>
81
7b8a48e4 82 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 83 does that unconditionally. Remove file, which is now empty.
7b8a48e4 84
d34d6ffc
GM
85 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
86 Remove empty files.
87
03a660a6
PE
882012-07-30 Paul Eggert <eggert@cs.ucla.edu>
89
90 Export to GDB most of lisp.h's remaining object-like macros.
91 * lisp.h (min, max): Move earlier, because they're used earlier now.
92 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
93 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
94 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
95 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
96 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
97 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
98 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
99 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
100 Now constants, for GDB. They need not be macros.
101 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
102 Now constants, for GDB, as well as macros, for static initializers.
103 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
104 Move to after the definition of struct Lisp_Char_Table,
105 since the former now needs that type defined.
106 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
107 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
108 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
109 New enums, for gdb_make_enums_visible.
110 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 111 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
112 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
113 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
114 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
115 enum maxargs, enum MAX_ALLOCA.
116 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
117 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
118 no longer needed, now that they are done in lisp.h.
119
e499d0ee
DA
1202012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
121
122 Cleanup string bytes checking.
123 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
124 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
125 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
126 (check_sblock, compact_small_strings): Simplify.
127
d5040d2d
PE
1282012-07-29 Paul Eggert <eggert@cs.ucla.edu>
129
130 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
131 These macros are confusing and no longer need to be defined, as
132 the enum values now suffice. All uses replaced with definiens.
133 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
134
7f259ae6
JB
1352012-07-29 Juanma Barranquero <lekktu@gmail.com>
136
137 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
138 ($(BLD)/w32console.$(O)): Update dependencies.
139
7e63e0c3
DA
1402012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
141
142 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
143 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
144 time. Adjust users.
145 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
146
ffd817eb
JD
1472012-07-29 Jan Djärv <jan.h.d@swipnet.se>
148
149 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
150 setting sitelisp (Bug#12010).
151
417a7a0e
EZ
1522012-07-29 Eli Zaretskii <eliz@gnu.org>
153
154 * w32heap.h (OS_9X): Renamed from OS_WINDOWS_95.
155
156 * w32heap.c (cache_system_info):
157 * w32.c (sys_rename):
158 * w32proc.c (find_child_console, sys_kill): All users changed.
159
387d4d92
PE
1602012-07-29 Paul Eggert <eggert@cs.ucla.edu>
161
162 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
163
55a6cca6
EZ
1642012-07-29 Eli Zaretskii <eliz@gnu.org>
165
166 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
167
dbcf001c
DA
1682012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
169
170 Cleanup statistics calculation in Fgarbage_collect.
171 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start. Fix
172 zombies percentage calculation. Simplify elapsed time calculation.
173
e2688e4a
DA
1742012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
175
176 Generalize marker debugging code under MARKER_DEBUG and use eassert.
177 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
178 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
179 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
180 (replace_range, replace_range_2, del_range_2): Change to eassert.
181 * marker.c (byte_char_debug_check): Adjust style.
182
b46a6a83
PE
1832012-07-29 Paul Eggert <eggert@cs.ucla.edu>
184
185 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
186 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
187 long-ago-commented-out code that talks about "WIN32".
188 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
189 All uses changed.
190
e32a5799
PE
1912012-07-28 Paul Eggert <eggert@cs.ucla.edu>
192
193 Use Gnulib stdalign module (Bug#9772, Bug#9960).
194 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
195 Simplify by using alignof.
196 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
197 * lisp.h: Include <stdalign.h>.
198 (GCALIGNMENT): New macro and constant.
199 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
200 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
201 (stdalign): New macro, if not already defined.
202
df81cd29
EZ
2032012-07-28 Eli Zaretskii <eliz@gnu.org>
204
01bd1b0d
EZ
205 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
206 * w32inevt.c: Include w32inevt.h.
207 (w32_read_console_input): New inline function, calls either
208 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
209 w32_console_unicode_input.
210 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
211 (w32_kbd_patch_key, key_event): Use the codepage returned by
212 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
213 (key_event): use uChar.UnicodeChar only if
214 w32_console_unicode_input is non-zero.
215
216 * w32console.c: Include w32heap.h.
217 <w32_console_unicode_input>: New global variable.
218 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
219 family of Windows, zero otherwise.
220
221 * w32inevt.h: Declare w32_console_unicode_input.
222
df81cd29
EZ
223 * xdisp.c (init_iterator): Don't reference tip_frame in a build
224 --without-x. (Bug#11742)
225
c20fdd9e
PE
2262012-07-27 Paul Eggert <eggert@cs.ucla.edu>
227
228 Adjust GDB to reflect pvec_type changes (Bug#12036).
229 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
230 2012-07-04 changes to pseudovector representation. Problem
231 reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
232
32770973 2332012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
234
235 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
236 bus address.
237 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
238
3438fe21
EZ
2392012-07-27 Eli Zaretskii <eliz@gnu.org>
240
bcfbc9de
EZ
241 * alloc.c (listn): Fix the order the arguments are consed onto the
242 list.
243
3438fe21
EZ
244 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
245 enumeration constants, as PURE and HEAP are too general, and clash
246 with other headers and sources, such as gmalloc.c and the
247 MS-Windows system headers. All users changed.
248
eeaea515
DA
2492012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
250
251 Revert last save_excursion_save and save_excursion_restore changes.
252 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
253 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
254
073c88c2
DA
2552012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
256
257 Fix recently-introduced typos in Windows port.
258 Reported by Martin Rudalics <rudalics@gmx.at>.
259 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 260 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 261
4706125e
PE
2622012-07-27 Paul Eggert <eggert@cs.ucla.edu>
263
264 Improve GDB symbol export (Bug#12036).
265 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
266 arms of an 'if', not using conditional expressions; otherwise GDB
267 complains about the types in the unevaluated arm when the argument
268 is an integer literal.
269 (xgetint): Simplify expression.
270 * alloc.c (gdb_make_enums_visible): New constant. This ports to
271 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
272 Zaretskii in <http://bugs.gnu.org/12036#13>.
273 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
274 needed now that we have gdb_make_enums_visible.
275 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
276 (enum enum_USE_LSB_TAG):
277 New enum types, packaging up enums that need to be exported to GDB.
278
694b6c97
DA
2792012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
280
281 Utility function to make a list from specified amount of objects.
282 * lisp.h (enum constype): New datatype.
283 (listn): New prototype.
284 * alloc.c (listn): New function.
285 (Fmemory_use_count, syms_of_alloc): Use it.
286 * buffer.c (syms_of_buffer): Likewise.
287 * callint.c (syms_of_callint): Likewise.
288 * charset.c (define_charset_internal): Likewise.
289 * coding.c (syms_of_coding): Likewise.
290 * keymap.c (syms_of_keymap): Likewise.
291 * search.c (syms_of_search): Likewise.
292 * syntax.c (syms_of_syntax): Likewise.
293 * w32.c (init_environment): Likewise.
294 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
295 * xdisp.c (syms_of_xdisp): Likewise.
296 * xfns.c (syms_of_xfns): Likewise.
297
6195f384
DA
2982012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
299
300 Fast save_excursion_save and save_excursion_restore.
301 * lisp.h (struct Lisp_Excursion): New data type.
302 (PVEC_EXCURSION): New pseudovector type.
303 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
304 to deal with it. Adjust comments.
305 (init_marker, attach_marker): New prototype.
306 (unchain_marker): Adjust prototype.
307 * marker.c (attach_marker): Change to global.
308 (init_marker): New function.
309 * alloc.c (Fmake_marker, build_marker): Use it.
310 (build_marker): More easserts.
311 (mark_object): Handle struct Lisp_Excursion.
312 * editfns.c (save_excursion_save, save_excursion_restore):
313 Reimplement to use struct Lisp_Excursion. Add comments.
314
5eceb8fb
PE
3152012-07-26 Paul Eggert <eggert@cs.ucla.edu>
316
317 Fix export of symbols to GDB (Bug#12036).
318 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
319 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
320 emacs.c, as this is a more-suitable home. Had this been done earlier
321 the fix for 12036 would have avoided some of the problems noted in
322 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
323 would have been more obvious.
562157c8
PE
324 * emacs.c: Do not include <verify.h>; no longer needed.
325 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
326 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
327 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
328 Remove; now done in lisp.h.
329 * lisp.h (PUBLISH_TO_GDB): New macro.
330 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
331 (DATA_SEG_BITS): Use it.
332 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
333 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
334 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
335 not be usable in #if. This simplifies things.
336
d6749401
JB
3372012-07-26 Juanma Barranquero <lekktu@gmail.com>
338
339 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
340
1781b9e9
PE
3412012-07-26 Paul Eggert <eggert@cs.ucla.edu>
342
d89518db 343 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
344 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
345 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
346 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
347 Adjust to changes in lisp.h and emacs.c, by using
348 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
349 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
350 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
351 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
352 instead of gdb_valbits.
353 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
354 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
355 instead of gdb_array_mark_flag.
356 (xboolvector): Get size from $->size, not $->header.size.
357 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
358 (xreload, hook-run, hookpost-run): Remove.
359 * emacs.c: Include <verify.h>.
360 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
361 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
362 Remove.
363 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
364 (gdb_USE_LSB_TAG): New enum constants.
365 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
366 Also define these as enum constants, so they're visible to GDB.
367 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
368 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
369 as constants, so they're visible to GDB.
370 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
371 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
372 Now enum constants, not macros, so they're visible to GDB.
373 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
374 more convenient now. All uses changed.
375 (VALMASK) [USE_LSB_TAG]: Also define in this case.
376 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
377
3628596a
DA
3782012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
379
380 Explicitly free restriction data that are not needed anymore.
381 * editfns.c (save_restriction_restore): Free restriction data.
382
7abaf5cc
SM
3832012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
384
385 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
386 add argument, tune behavior, and adjust all callers.
387
71f88e00
PE
3882012-07-25 Paul Eggert <eggert@cs.ucla.edu>
389
390 Use typedef for EMACS_INT, EMACS_UINT.
391 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
392 than macros. This simplifies debugging in the usual case, since
393 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
394 and it allows expressions involving EMACS_INT casts.
395 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
396
57ec3034
JD
3972012-07-25 Jan Djärv <jan.h.d@swipnet.se>
398
399 * nsterm.m (ns_read_socket): Return early if there is a modal
400 window (Bug#12043).
401
8137e7b3
MR
4022012-07-25 Martin Rudalics <rudalics@gmx.at>
403
404 * frame.c (Fredirect_frame_focus): In doc-string don't mention
405 that FOCUS-FRAME can be omitted.
406
04e9897c
DA
4072012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
408
409 Adjust buffer text indirection counters at the end of Fkill_buffer.
410 * buffer.c (Fkill_buffer): Adjust indirection counters when the
411 buffer is definitely dead. This should really fix an issue reported
412 by Christoph Scholtes again. (Bug#12007).
413 (init_buffer_once): Initialize indirection counters of
414 buffer_defaults and buffer_local_symbols (for sanity and safety).
415
8a0484e1
EZ
4162012-07-24 Eli Zaretskii <eliz@gnu.org>
417
418 * xdisp.c (init_iterator): Don't compute dimensions of truncation
419 and continuation glyphs on tooltip frames, leave them at zero.
420 Avoids continued lines in tooltips. (Bug#11832)
421
fa691a83
DA
4222012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
423
424 Simplify copy_overlay.
04e9897c 425 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
426 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
427
436bc8e0
EZ
4282012-07-23 Eli Zaretskii <eliz@gnu.org>
429
430 * print.c (print_object): Don't crash when a frame's name is nil
431 or invalid. (Bug#12025)
432
433 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
434 it signals an error when a tooltip frame is being created.
435
d7a7fda3
DA
4362012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
437
438 Cleanup miscellaneous objects allocation and initialization.
439 * alloc.c (allocate_misc): Change to static. Add argument to
440 specify the subtype. Adjust comment and users.
441 (build_overlay): New function.
442 * buffer.c (copy_overlays, Fmake_overlay): Use it.
443 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
444 (allocate_misc): Remove prototype.
445 (build_overlay): Add prototype.
446
4472012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
448
449 Swap buffer text indirection counters in Fbuffer_swap_text.
450 * buffer.c (Fbuffer_swap_text): Swap indirections too.
451 This avoids crash reported by Christoph Scholtes at
452 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
453
9d7fa573
JD
4542012-07-22 Jan Djärv <jan.h.d@swipnet.se>
455
456 * nsmenu.m (Popdown_data): New struct.
457 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
458 free Popdown_data.
459 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
460 (initWithContentRect): Make imgView and contentView non-static
461 and autorelease them. Also autorelease img and matrix (Bug#12005).
462 (dealloc): Remove (Bug#12005).
463
0dd6d66d
DA
4642012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
465
466 Adjust consing_since_gc when objects are explicitly freed.
467 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
468 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
469 (free_cons, free_misc): Subtract object size from consing_since_gc.
470
d36d71df
DA
4712012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
472
473 Simplify and cleanup markers positioning code.
474 * marker.c (attach_marker): More useful eassert.
475 (live_buffer, set_marker_internal): New function.
476 (Fset_marker, set_marker_restricted): Use set_marker_internal.
477 (set_marker_both, set_marker_restricted_both): Use live_buffer.
478
fb9ea40f
PE
4792012-07-22 Paul Eggert <eggert@cs.ucla.edu>
480
481 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
482 as it's limited by the amount of memory, not by INT_MAX.
483
2d5c5f7d
EZ
4842012-07-21 Eli Zaretskii <eliz@gnu.org>
485
07fb592e
EZ
486 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
487 in special-event-map. See the discussion at
488 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
489 for the reasons.
490
37a9eac8 491 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
2d5c5f7d
EZ
492 info.dwItemData. Fixes crashes on 64-bit Windows. Suggested by
493 Fabrice Popineau <fabrice.popineau@supelec.fr>.
494
c4328746
JD
4952012-07-21 Jan Djärv <jan.h.d@swipnet.se>
496
497 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 498 (conversationIdentifier): Return value is NSInteger.
784051c4 499 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 500
6e5d1c12
CY
5012012-07-21 Chong Yidong <cyd@gnu.org>
502
503 * window.c (decode_any_window): Signal an error if the window is
504 on a dead frame (Bug#11984).
505
9928463d
DA
5062012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
507
508 Add indirection counting to speed up Fkill_buffer.
509 * buffer.h (struct buffer): New member.
510 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
511 (Fmake_indirect_buffer): Set indirection counter to -1, increment
512 base buffer indirection counter.
513 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
514 (Fkill_buffer): Adjust indirection counters as needed, don't walk
515 through buffer list if indirection counter is 0.
516
f8643a6b
DA
5172012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
518
519 Extend the value returned by Fgarbage_collect with heap statistics.
520 * alloc.c (Qheap): New symbol.
521 (syms_of_alloc): DEFSYM it.
522 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
523 (Fmemory_free): Remove.
524 (syms_of_alloc): Don't defsubr it.
525 * buffer.c (Fcompact_buffer): Remove.
526 (syms_of_buffer): Don't defsubr it.
527
dac616ff
DA
5282012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
529
530 Make maybe_gc inline.
531 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
532 * lisp.h (consing_since_gc, gc_relative_threshold)
533 (memory_full_cons_threshold): Revert declaration.
534 (maybe_gc): Remove prototype, define as inline.
535 * alloc.c: Remove old commented-out code.
536 (consing_since_gc, gc_relative_threshold)
537 (memory_full_cons_threshold): Revert to global.
538 (maybe_gc): Remove.
539
d7ea76b4
DA
5402012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
541
542 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
543 * lisp.h (build_unibyte_string): New function.
544 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
545 * sysdep.c, w32fns.c, xfns.c: Use it.
546 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
547 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
548 Adjust users accordingly.
549 * font.h (font_open_by_name): Adjust prototype.
550
765e61e3
DA
5512012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
552
553 Cleanup calls to Fgarbage_collect.
554 * lisp.h (maybe_gc): New prototype.
555 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
556 Remove declarations.
557 * alloc.c (maybe_gc): New function.
558 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
559 Make them static.
560 * bytecode.c (MAYBE_GC): Use maybe_gc.
561 * eval.c (eval_sub, Ffuncall): Likewise.
562 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
563 to avoid dependency from auto-save feature.
564
52b852c7
PE
5652012-07-19 Paul Eggert <eggert@cs.ucla.edu>
566
567 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
568 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
569 'for_each_per_buffer_object_at'.
570 All uses changed. It's better to use upper-case for macros that
571 cannot be implemented as functions, to give the reader a clue
572 that they're special.
573
5db81e33
SM
5742012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
575
576 * alloc.c (Fgarbage_collect): Tweak docstring.
577
5b835e1d
DA
5782012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
579
580 Tweak the value returned from Fgarbage_collect again.
581 * alloc.c (Fgarbage_collect): New return value, as confirmed in
582 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
583 Adjust documentation.
584 (total_vector_bytes): Rename to total_vector_slots, adjust
585 accounting.
586 (total_free_vector_bytes): Rename to total_free_vector_slots,
587 adjust accounting.
588 (Qstring_bytes, Qvector_slots): New symbols.
589 (syms_of_alloc): DEFSYM them.
590
9cd47b72
DA
5912012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
592
593 Buffer compaction primitive which may be used from Lisp.
594 * buffer.c (compact_buffer, Fcompact_buffer): New function.
595 (syms_of_buffer): Register Fcompact_buffer.
596 * alloc.c (Fgarbage_collect): Use compact_buffer.
597 * buffer.h (compact_buffer): New prototype.
598 (struct buffer_text): New member.
599
d17337e5
DA
6002012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
601
602 New macro to iterate over all buffers, miscellaneous cleanups.
603 * lisp.h (all_buffers): Remove declaration.
604 * buffer.h (all_buffers): Add declaration, with comment.
605 (for_each_buffer): New macro.
606 * alloc.c (Fgarbage_collect, mark_object): Use it.
607 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
608 (init_buffer): Likewise.
609 * data.c (Fset_default): Likewise.
610 * coding.c (code_conversion_restore): Remove redundant check
611 for dead buffer.
612 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
613
60cfd278
AS
6142012-07-18 Andreas Schwab <schwab@linux-m68k.org>
615
616 Fix bug that created negative-length intervals.
617 * intervals.c (merge_interval_right, merge_interval_left):
618 Do not zero out this interval if it is absorbed by its children,
619 as this interval's total length doesn't change in that case. See
620 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
621
d06714cb
PE
6222012-07-18 Paul Eggert <eggert@cs.ucla.edu>
623
83713154
PE
624 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
625 when invoking (make-bool-vector N t) and N is a positive
626 multiple of 8 -- the last 8 bits were mistakenly cleared.
627
d06714cb
PE
628 Remove some struct layout assumptions in bool vectors.
629 * alloc.c (bool_header_size): New constant.
630 (header_size, word_size): Move earlier, as they're now used earlier.
631 Use 'word_size' in a few more places, where it's appropriate.
632 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
633 padding before the data member of a bool vector.
634 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
635 than doing the check by hand with an abort ().
636
464d5a5e
SM
6372012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
638
5fbc0409
SM
639 * eval.c (Fdefvar): Don't check constants since we only set the var if
640 it's not yet defined anyway (bug#11904).
641
464d5a5e
SM
642 * lisp.h (last_undo_boundary): Declare new var.
643 * keyboard.c (command_loop_1): Set it.
644 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
645 were auto-added by the command loop (bug#11774).
646
8dc2e44a
AS
6472012-07-18 Andreas Schwab <schwab@linux-m68k.org>
648
649 * w32font.c (Qsymbol): Remove local definition.
650 (syms_of_w32font): Don't DEFSYM it.
651
169925ec
DA
6522012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
653
654 Fix sweep_vectors to handle large bool vectors correctly.
655 * alloc.c (sweep_vectors): Account total_vector_bytes for
656 bool vectors larger than VBLOCK_BYTES_MAX.
657
5fbfb018
CY
6582012-07-18 Chong Yidong <cyd@gnu.org>
659
660 * frame.c (x_set_frame_parameters): Revert bogus change introduced
661 in 2012-05-25 commit by Paul Eggert (Bug#11738).
662
3ab6e069
DA
6632012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
664
665 Return more descriptive data from Fgarbage_collect.
666 Suggested by Stefan Monnier in
667 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
668 * alloc.c (bounded_number): New function.
669 (total_buffers, total_vectors): New variable.
670 (total_string_size): Rename to total_string_bytes, adjust users.
671 (total_vector_size): Rename to total_vector_bytes, adjust users.
672 (sweep_vectors): Account total_vectors and total_vector_bytes.
673 (Fgarbage_collect): New return value. Adjust documentation.
674 (gc_sweep): Account total_buffers.
675 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
676 (VECTOR_SIZE): Remove.
677 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
678 (Qinterval, Qmisc): New symbols.
679 (syms_of_data): Initialize them.
680 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
681 (Qcons, Qbuffer): New declarations.
682
6d02fe5b
PE
6832012-07-17 Paul Eggert <eggert@cs.ucla.edu>
684
685 * alloc.c (Fmemory_free): Account for memory-free's own storage.
686 Round up, not down. Improve doc.
687
b7ffe040
DA
6882012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
689
690 Restore old code in allocate_string_data to avoid Faset breakage.
691 Reported by Julien Danjou <julien@danjou.info> in
692 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
693 * alloc.c (allocate_string_data): Restore old code with minor
694 adjustments, fix comment to explain this subtle issue.
695
4dc7c8d5
SM
6962012-07-17 Eli Zaretskii <eliz@gnu.org>
697
698 Remove FILE_SYSTEM_CASE.
699 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
700
701 * fileio.c (FILE_SYSTEM_CASE): Don't define.
702 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
703 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
704 call-process-region passes it through expand-file-name.
705
706 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
707
7082012-07-17 Andreas Schwab <schwab@linux-m68k.org>
709
710 Fix crash when creating indirect buffer (Bug#11917)
711 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
712 Don't handle unbound variables specially if non-zero.
713 (Fbuffer_local_variables): Pass zero.
714 (clone_per_buffer_values): Pass non-zero.
715
7162012-07-17 Andreas Schwab <schwab@linux-m68k.org>
717
718 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
719 to make the loop interruptible.
720
7212012-07-17 Andreas Schwab <schwab@linux-m68k.org>
722
723 * gnutls.c (emacs_gnutls_handshake): Only retry if
724 GNUTLS_E_INTERRUPTED.
725
cce7fefc
DA
7262012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
727
728 Cleanup and convert miscellaneous checks to eassert.
729 * alloc.c (mark_interval): Fix comment, partially rephrase
730 old comment from intervals.h (see below).
731 * intervals.c (find_interval, adjust_intervals_for_insertion)
732 (delete_interval, adjust_intervals_for_deletion)
733 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
734 Convert to eassert.
735 (adjust_intervals_for_insertion, make_new_interval):
736 Remove obsolete and unused code.
737 * intervals.h (struct interval): Remove obsolete comment.
738 * textprotp.c (erase_properties): Remove unused code.
739 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
740 (Fremove_list_of_text_properties): Convert to eassert.
741
9ea10cc3
CY
7422012-07-17 Chong Yidong <cyd@gnu.org>
743
744 * editfns.c (Finsert_char): Doc fix.
745
3900d5de
DA
7462012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
747
748 Fix previous change to make Fmemory_free always accurate.
749 * alloc.c (make_interval): Update total_free_intervals.
750 (make_float): Likewise for total_free_floats.
751 (free_cons, Fcons): Likewise for total_free_conses.
752 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
753 Likewise for total_free_vector_bytes.
754 (Fmake_symbol): Likewise for total_free_symbols.
755 (bytes_free): Remove.
756
7098646f
DA
7572012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
758
759 Simple free memory accounting feature.
760 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
761 (sweep_vectors): Accumulate size of free vectors.
762 (Fgarbage_collect): Setup bytes_free.
763 (Fmemory_free): New function.
764 (syms_of_alloc): Register it.
765
22657b40
DA
7662012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
767
768 Cleanup overlays checking.
769 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
770 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
771 eassert and OVERLAYP.
772 (sort_overlays): Change to use OVERLAYP.
773
ddfc8813
RK
7742012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
775
776 * editfns.c (Finsert_char): Make it interactive, and make the
777 second arg optional. Copy interactive spec and docstring from
778 ucs-insert.
779
7c26cf3c
PE
7802012-07-17 Paul Eggert <eggert@cs.ucla.edu>
781
782 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
783 Unlike the other wrapped functions, fabs has an unspecified
784 effect on errno.
785
5d127af9
JD
7862012-07-16 Jan Djärv <jan.h.d@swipnet.se>
787
788 * nsterm.m (keyDown): Interpret flags without left/right bits
789 as the left key (Bug#11670).
790
6a0dd1d7
DA
7912012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
792
793 Remove empty and useless init functions.
794 * lisp.h (init_character_once, init_fns, init_image)
795 (init_filelock, init_sound): Remove prototype.
796 * character.c (init_character_once): Remove.
797 * filelock.c (init_filelock): Likewise.
798 * fns.c (init_fns): Likewise.
799 * image.c (init_image): Likewise.
800 * sound.c (init_sound): Likewise.
801 * emacs.c (main): Adjust accordingly.
802
7a6136fd
DA
8032012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
804
805 * gtkutil.h: Tiny cleanups.
806 (use_old_gtk_file_dialog): Remove useless declaration.
807 (xg_uses_old_file_dialog): Add suggested const attribute.
808
ce811ad9
EZ
8092012-07-15 Eli Zaretskii <eliz@gnu.org>
810
811 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
812 (bidi_paragraph_init): Use it to limit search forward for a strong
813 directional character in abnormally large paragraphs full of
814 neutral or weak characters. (Bug#11943)
815
c9adfeaa
SF
8162012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
817
818 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
819 the toolbar (Bug#9451).
820 (xg_make_tool_item): Give the widget event box a transparent
821 background.
822
fff62aa9
DA
8232012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
824
825 Cleanup basic allocation variables and functions.
826 * alloc.c (ignore_warnings, init_intervals, init_float)
827 (init_cons, init_symbol, init_marker): Remove.
828 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
829 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
830 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
831 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
832 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
833 (staticidx, init_alloc_once, init_strings, free_ablock):
834 Remove redundant initialization.
835 * fns.c (init_weak_hash_tables): Remove.
836 * lisp.h (init_weak_hash_tables): Remove prototype.
837
9730daca
DA
8382012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
839
840 Use zero_vector where appropriate.
841 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
842 accordingly.
843 * lisp.h (zero_vector): New declaration.
844 * font.c (null_vector): Remove.
845 (syms_of_font): Remove initialization and staticpro.
846 (font_list_entities, font_find_for_lface): Change to use zero_vector.
847 * keymap.c (Faccessible_keymaps): Likewise.
848
2e2d2a13
LL
8492012-07-15 Leo Liu <sdl.web@gmail.com>
850
851 * fringe.c: Fix typo in comments.
852
cd276f6e
LL
8532012-07-14 Leo Liu <sdl.web@gmail.com>
854
855 * fringe.c: Add a new bitmap exclamation-mark.
856
5a1131d9
EZ
8572012-07-14 Eli Zaretskii <eliz@gnu.org>
858
859 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
860
861 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
862 (HAVE_MENUS): Don't define, defined by editing config.in with
863 msdos/sed2v2.inp.
864 (GMALLOC_INHIBIT_VALLOC): Don't define.
865 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
866
22e983b7
JB
8672012-07-14 Juanma Barranquero <lekktu@gmail.com>
868
869 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
870
5b3f250f
GM
8712012-07-14 Glenn Morris <rgm@gnu.org>
872
873 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
874 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
875 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
876
33d63ff4
GM
8772012-07-13 Glenn Morris <rgm@gnu.org>
878
5b633342
GM
879 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
880
33d63ff4
GM
881 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
882 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
883
b55b9f85
JD
8842012-07-13 Jan Djärv <jan.h.d@swipnet.se>
885
0dc8cf50
JD
886 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
887 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
888 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
889 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
890 where appropriate.
891 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
892 as boolean expression.
893 (x_set_window_size): Remove unused variable toolbar.
894 (ns_get_color_default, ns_mod_to_lisp): Remove.
895 (ns_mouse_position): Remove unused variables xchar and ychar.
896 (ns_compute_glyph_string_overhangs): Remove unused variable face.
897 (ns_set_vertical_scroll_bar): Remove unused variable count.
898 (ns_delete_terminal): Remove unused variable i.
899 (ns_term_init): Remove unused variables r, g and b.
900 (mouseDown): Remove unused variable window.
901 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
902 (initFrameFromEmacs): Remove unused variable vbextra.
903 (mouseEntered): Remove unused variables p and dpyinfo.
904 (mouseExited): Remove unused variables p and r.
905 (ns_define_frame_cursor, ns_clear_frame_area)
906 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
907 (menuDown): Assign [sender tag] to variable and cast the variable.
908
909 * nsterm.h (menuDown): Add id as type to argument sender.
910 (ns_display_info_for_name): Add Lisp_Object argument.
911 (ns_term_init): Add Lisp_Object argument.
912 (ns_map_event_to_object): Add void argument.
913 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
914 prototype with arguments and only declare if __OBJC__.
915 (nxatoms_of_nsselect): Add void argument.
916 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
917 (ns_alloc_autorelease_pool): Add void argument.
918 (ns_release_autorelease_pool): Add void* argument.
919 (ns_get_defaults_value): Add const char* argument.
920
921 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
922 (initFromContents): Use SSDATA where appropriate.
923 (ns_update_menubar): Add braces to ambigous if-else.
924 (initWithTitle): Put () around assignment in if statement.
925 (ns_menu_show): Remove unused variables window and keymap.
926 (update_frame_tool_bar): Remove unused variable selected_p.
927 (initWithContentRect): Remove unused variable this_cmd_name.
928
929 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
930 appropriate.
931 (setXBMColor): Remove unused variable len.
932 (setPixmapData): Put () around assignment in loop statement.
933
934 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
935 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
936 where appropriate.
937 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
938 around assignment in loop statement.
939 (nsfont_open): Remove unused variable i.
940 (nsfont_open): Remove unused variable len.
941 (nsfont_draw): Remove unused variable cs.
942
943 * nsfns.m (x_set_icon_name, ns_set_name_internal)
944 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
945 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
946 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
947 (Fns_font_name, Fns_perform_service)
948 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
949 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
950 (ns_set_name): Remove unused variable view.
951 (x_set_menu_bar_lines): Remove unused variable olines.
952 (x_set_tool_bar_lines): Remove unused variable root_window.
953 (Fns_list_colors): Put () around assignment in while statement.
954 (Fns_perform_service): Remove unused variable len.
955 (Fns_display_usable_bounds): Remove unused variable top.
956 (syms_of_nsfns): Remove unused variable i.
957
b55b9f85
JD
958 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
959 memcpy (Bug#11907).
960
ed9265fc 9612012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
962
963 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
964 and free it with DestroyExceptionInfo (Bug#11558).
965
ef099b57
JB
9662012-07-13 Juanma Barranquero <lekktu@gmail.com>
967
968 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
969 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
970 Set here, not in nt/config.nt.
971
ea814a5d
EZ
9722012-07-13 Eli Zaretskii <eliz@gnu.org>
973
974 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
975 cursor overflow into the last glyph on display line when the right
976 fringe is off. (Bug#11832)
977
1a952767
PE
9782012-07-13 Paul Eggert <eggert@cs.ucla.edu>
979
980 * xdisp.c (produce_special_glyphs): Now static.
981 * dispextern.h (produce_special_glyphs): Remove decl.
982
983188fd
GM
9832012-07-13 Glenn Morris <rgm@gnu.org>
984
32fb4bb6
GM
985 * s/bsd-common, s/cygwin.h: Remove empty files.
986 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
987
983188fd
GM
988 * s/usg5-4-common.h (USG, USG5):
989 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
990 * s/sol2-6.h (SOLARIS2):
991 * s/irix6-5.h (IRIX6_5):
992 * s/hpux10-20.h (USG, USG5, HPUX):
993 * s/gnu-linux.h (USG, GNU_LINUX):
994 * s/freebsd.h (BSD_SYSTEM):
995 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
996 * s/cygwin.h (CYGWIN):
997 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
998 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
999
d1e68667 10002012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
1001
1002 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 1003
6de0e799
GM
10042012-07-13 Glenn Morris <rgm@gnu.org>
1005
739ae010
GM
1006 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
1007
dbee5793
GM
1008 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
1009
6de0e799
GM
1010 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
1011 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
1012
b82da769
GM
10132012-07-12 Glenn Morris <rgm@gnu.org>
1014
4fae5a7a 1015 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
1016
1017 * process.c (init_process_emacs): Rename from init_process.
1018 The old name is also the name of a Mach system call.
1019 * lisp.h, emacs.c: Update for this name change.
1020 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
1021 longer needed.
1022
5a979817
EZ
10232012-07-12 Eli Zaretskii <eliz@gnu.org>
1024
1025 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
1026 memmove call that removes glyphs covered by the left truncation
1027 glyph. Improve commentary.
1028 (display_line): Fix display of continuation glyphs on GUI frames
1029 when the right fringe is turned off and variable-size fonts are
1030 used in the window. Move the code that appends a stretch glyph to
1031 produce_special_glyphs, so that it could be used for truncation
1032 and continuation glyphs alike.
1033 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
1034 glyph of a suitably computed width, to align the special glyphs at
1035 the window margin. Code moved from display_line. (Bug#11832)
1036
3e91a053
GM
10372012-07-12 Glenn Morris <rgm@gnu.org>
1038
ba9e4b84
GM
1039 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
1040
1041 * s/gnu-linux.h, s/hpux10-20.h:
1042 Do not unconditionally define HAVE_XRMSETDATABASE.
1043
3e91a053
GM
1044 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
1045
b300b1f4
PE
10462012-07-12 Paul Eggert <eggert@cs.ucla.edu>
1047
1048 Fix typos that broke OS X build.
1049 Reported by Randal L. Schwartz in
1050 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
1051 * nsterm.m (ns_timeout): Add missing local decl.
1052 (ns_get_color): snprintf -> sprintf, to fix typo.
1053
6e777848
GM
10542012-07-12 Glenn Morris <rgm@gnu.org>
1055
3f922c37
GM
1056 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
1057 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
1058 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
1059 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
1060
0ab7b23a
GM
1061 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
1062 Move PTY_OPEN to configure.
1063
6e777848
GM
1064 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
1065 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
1066 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
1067
4a7edc24
DA
10682012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
1069
1070 Use empty_unibyte_string where applicable.
1071 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
1072 * lread.c (read1): Likewise.
1073 * xsettings.c (syms_of_xsettings): Likewise.
1074
308aab79
GM
10752012-07-12 Glenn Morris <rgm@gnu.org>
1076
42bd1719
GM
1077 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
1078 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
1079 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
1080 * s/hpux10-20.h (RUN_TIME_REMAP):
1081 * s/bsd-common.h (TABDLY): Move to configure.
1082
1083 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
1084
1085 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
1086
ea0bbd17 1087 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 1088 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
1089
1090 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 1091
308aab79
GM
1092 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
1093 * s/template.h: Move NARROWPROTO to configure.
1094
ee1cf5cf
GM
10952012-07-11 Glenn Morris <rgm@gnu.org>
1096
30fe9bf4
GM
1097 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
1098 unused since 2011-01-17 change to systty.h.
1099
ee1cf5cf
GM
1100 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
1101 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
1102 Move HAVE_PTYS and HAVE_SOCKETS to configure.
1103
63e47e07
PE
11042012-07-11 Paul Eggert <eggert@cs.ucla.edu>
1105
1106 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
1107
c43fb4c3
GM
11082012-07-11 Glenn Morris <rgm@gnu.org>
1109
1110 * s/darwin.h, s/gnu-linux.h, s/template.h:
1111 Move INTERRUPT_INPUT to configure.
1112
e8df9267
DA
11132012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
1114
1115 Minor adjustments to interning code.
1116 * lisp.h (intern, intern_c_string): Redefine as static inline
1117 wrappers for intern_1 and intern_c_string_1, respectively.
1118 (intern_1, intern_c_string_1): Rename prototypes.
2bce5643
DA
1119 * lread.c (intern_1, intern_c_string_1, oblookup): Simplify
1120 Vobarray checking.
e8df9267
DA
1121 * font.c (font_intern_prop): Likewise. Adjust comment.
1122 * w32font.c (intern_font_name): Likewise.
1123
34348bd4
AS
11242012-07-11 Andreas Schwab <schwab@linux-m68k.org>
1125
d96a1e0c
AS
1126 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
1127
34348bd4
AS
1128 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
1129 of Fcar/Fcdr if possible.
1130 * font.c (check_otf_features): Likewise.
1131 * fontset.c (Fnew_fontset): Likewise.
1132 * gnutls.c (Fgnutls_boot): Likewise.
1133 * minibuf.c (read_minibuf): Likewise.
1134 * msdos.c (IT_set_frame_parameters): Likewise.
1135 * xmenu.c (Fx_popup_dialog): Likewise.
1136 * w32menu.c (Fx_popup_dialog): Likewise.
1137
c8add24e
GM
11382012-07-11 Glenn Morris <rgm@gnu.org>
1139
4b575b3c
GM
1140 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
1141 since nothing has defined it on these platforms.
1142
09f4e3b0
GM
1143 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
1144 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
1145
172bedef
GM
1146 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
1147 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
1148 Move CLASH_DETECTION to configure.
1149
249685df
GM
1150 * s/gnu.h: Remove file, which is now empty.
1151
c8add24e
GM
1152 * s/gnu.h, s/gnu-linux.h:
1153 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
1154
b41253a3
JW
11552012-07-11 John Wiegley <johnw@newartisans.com>
1156
1157 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
1158 function attribute, so we only use it if it exists in the
1159 compiler.
1160
d923b542
DA
11612012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
1162
1163 Avoid call to strlen in fast_c_string_match_ignore_case.
1164 * search.c (fast_c_string_match_ignore_case): Change to use
1165 length argument. Adjust users accordingly.
1166 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
1167
5ebbef1d
PE
11682012-07-11 Paul Eggert <eggert@cs.ucla.edu>
1169
bb352260
PE
1170 Assume mkdir, rmdir.
1171 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
1172 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
1173
57054ddd
PE
1174 Assume rename.
1175 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
1176
b747d3f7
PE
1177 Assume perror.
1178 * s/hpux10-20.h (HAVE_PERROR): Remove.
1179 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
1180 Remove dummy definition, as this problem was obsolete long ago.
1181
5ebbef1d
PE
1182 Assume strerror.
1183 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
1184
984e7f30
DA
11852012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
1186
1187 Avoid calls to strlen in font processing functions.
1188 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
d923b542 1189 (font_open_by_name): Change to use length argument. Adjust
984e7f30 1190 users accordingly.
d923b542
DA
1191 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
1192 Adjust prototypes.
1193 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
1194 Change to return ptrdiff_t.
984e7f30
DA
1195 (xfont_list_pattern, xfont_match): Use length returned by
1196 xfont_decode_coding_xlfd.
1197 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
1198
20e94fdd
GM
11992012-07-11 Glenn Morris <rgm@gnu.org>
1200
9d596af3
GM
1201 * s/darwin.h, s/freebsd.h, s/netbsd.h:
1202 Move DONT_REOPEN_PTY to configure.
1203
20e94fdd
GM
1204 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
1205 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
1206
e99a530f
PE
12072012-07-10 Paul Eggert <eggert@cs.ucla.edu>
1208
22ffb973
PE
1209 Remove "#define unix" that is no longer needed (Bug#11905).
1210 * s/aix4-2.h (unix): Remove; no longer needed.
1211
e9a9ae03
PE
1212 EMACS_TIME simplification (Bug#11875).
1213 This replaces macros (which typically do not work in GDB)
1214 with functions, typedefs and enums, making the code easier to debug.
1215 The functional style also makes code easier to read and maintain.
1216 * systime.h: Include <sys/time.h> on all hosts, not just if
1217 WINDOWSNT, since 'struct timeval' is needed in general.
1218 (EMACS_TIME): Now a typedef, not a macro.
1219 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
1220 not macros.
1221 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
1222 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
1223 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
1224 (EMACS_TIME_LE): Now functions, not macros.
1225 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
1226 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
1227 which are not functions. All uses rewritten to use:
1228 (make_emacs_time): New function.
1229 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
1230 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
1231 not functions. All uses rewritten to use the following, respectively:
1232 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
1233 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 1234 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
1235 * fileio.c (Fcopy_file):
1236 * xterm.c (XTflash): Get the current time closer to when it's used.
1237 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
1238
ffacb126
PE
1239 * bytecode.c (targets): Suppress -Woverride-init warnings.
1240
e99a530f
PE
1241 Simplify by avoiding confusing use of strncpy etc.
1242 * doc.c (Fsnarf_documentation):
1243 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
1244 * frame.c (Fmake_terminal_frame):
1245 * gtkutil.c (get_utf8_string):
1246 * lread.c (openp):
1247 * nsmenu.m (ns_update_menubar):
1248 * regex.c (regerror):
1249 Prefer memcpy to strncpy and strncat when either will do.
1250 * fileio.c (Fsubstitute_in_file_name):
1251 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
1252 (menu_separator_name_p):
1253 * nsmenu.m (ns_update_menubar):
1254 Prefer memcmp to strncmp when either will do.
1255 * nsterm.m: Include <ftoastr.h>.
1256 (ns_get_color):
1257 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
1258 Prefer snprintf to strncpy.
1259 * nsterm.m (ns_term_init):
1260 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
1261 * nsterm.m (ns_term_init):
1262 Avoid the need for strncpy, by using build_string or
1263 make_unibyte_string directly. Use dtoastr, not snprintf.
1264 * process.c (Fmake_network_process): Diagnose service names that
1265 are too long, rather than silently truncating them or creating
1266 non-null-terminated names.
1267 (Fnetwork_interface_info): Likewise, for interface names.
1268 * sysdep.c (system_process_attributes) [GNU_LINUX]:
1269 Prefer sprintf to strncat.
1270 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
1271 Prefer vsnprintf to vsprintf + strncpy.
1272
c59592b3
GM
12732012-07-10 Glenn Morris <rgm@gnu.org>
1274
1275 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
1276 Clarify fallback case.
1277
7d7bbefd
DA
12782012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
1279
1280 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
1281 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
1282 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 1283 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
1284 where argument type is known to be a Lisp_Cons.
1285
3a4c8000
TT
12862012-07-10 Tom Tromey <tromey@redhat.com>
1287
1288 * bytecode.c (BYTE_CODE_THREADED): New macro.
1289 (BYTE_CODES): New macro. Replaces all old byte-code defines.
1290 (enum byte_code_op): New type.
1291 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
1292 (exec_byte_code): Use them. Use token threading when applicable.
1293
2a0213a6
DA
12942012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
1295
1296 Optimize pure C strings initialization.
1297 * lisp.h (make_pure_string): Fix prototype.
1298 (build_pure_c_string): New function, defined as static inline. This
1299 provides a better opportunity to optimize away calls to strlen when
1300 the function is called with compile-time constant argument.
1301 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
1302 argument, adjust users accordingly. Use build_pure_c_string where
1303 appropriate.
1304 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
1305 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
1306 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
1307
cb1caeaf
DA
13082012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
1309
1310 Avoid calls to strlen in miscellaneous functions.
1311 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
1312 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
1313 * lread.c (openp): Likewise.
1314
c293e30c
DA
13152012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
1316
1317 Avoid calls to strlen in path processing functions.
1318 * fileio.c (file_name_as_directory): Add comment. Change to add
1319 srclen argument and return the length of result. Adjust users
1320 accordingly.
1321 (directory_file_name): Fix comment. Change to add srclen argument,
cb1caeaf 1322 swap 1st and 2nd arguments to obey the common convention. Adjust
c293e30c
DA
1323 users accordingly.
1324 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
1325
9e059e3f
GM
13262012-07-10 Glenn Morris <rgm@gnu.org>
1327
d02eb359
GM
1328 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
1329 Move PENDING_OUTPUT_COUNT definition to configure.
1330
882cf227
GM
1331 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
1332 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
1333 * s/gnu.h (DATA_START): Move definitions to configure.
1334
af6e839f
GM
1335 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
1336 We include usg5-4-common.h, which defines them both.
1337
40289a12
GM
1338 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
1339 O_RDONLY already includes it).
1340
9e059e3f
GM
1341 Stop ns builds setting the EMACSLOADPATH environment variable.
1342 * nsterm.m (ns_load_path): Rename from ns_init_paths.
1343 Now it does not set EMACSLOADPATH, just returns the load-path string.
1344 * nsterm.h: Update accordingly.
1345 * lread.c [HAVE_NS]: Include nsterm.h.
1346 (init_lread) [HAVE_NS]: Use ns_load_path.
1347 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
1348
7c4e8ec0
GM
13492012-07-09 Glenn Morris <rgm@gnu.org>
1350
d4f600ff
GM
1351 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
1352 since the included bsd-common.h does so.
1353
cbb31951
GM
1354 Stop ns builds setting the EMACSPATH environment variable.
1355 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
1356 (ns_init_paths): Do not set EMACSPATH.
1357 * nsterm.h (ns_exec_path): Add it.
1358 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
1359 Use ns_exec_path.
1360
7c4e8ec0
GM
1361 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
1362
26bccfae
PE
13632012-07-09 Paul Eggert <eggert@cs.ucla.edu>
1364
a0bee46f
PE
1365 * process.c (wait_reading_process_output): 'waitchannels' was unset
1366 when read_kbd || !NILP (wait_for_cell); fix this.
1367
5994c183
PE
1368 Add GCC-style 'const' attribute to functions that can use it.
1369 * character.h (char_resolve_modifier_mask):
1370 * keyboard.h (make_ctrl_char):
1371 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
1372 (init_character_once, next_almost_prime, init_fns, init_image)
1373 (flush_pending_output, init_sound):
1374 * mem-limits.h (start_of_data):
1375 * menu.h (finish_menu_items):
1376 Add ATTRIBUTE_CONST.
1377 * emacs.c (DEFINE_DUMMY_FUNCTION):
1378 Declare the dummy function with ATTRIBUTE_CONST.
1379 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
1380 Add decls with ATTRIBUTE_CONST.
1381
26bccfae
PE
1382 Minor improvements to make_formatted_string.
1383 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
1384 where int is good enough, as vsprintf returns an int.
1385 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
1386
a8290ec3
DA
13872012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
1388
1389 Use make_formatted_string to avoid double length calculation.
1390 * lisp.h (make_formatted_string): New prototype.
1391 * alloc.c (make_formatted_string): New function.
1392 * buffer.c (Fgenerate_new_buffer_name): Use it.
1393 * dbus.c (syms_of_dbusbind): Likewise.
1394 * editfns.c (Fcurrent_time_zone): Likewise.
1395 * filelock.c (get_boot_time): Likewise.
1396 * frame.c (make_terminal_frame, set_term_frame_name)
1397 (x_report_frame_params): Likewise.
1398 * image.c (gs_load): Likewise.
1399 * minibuf.c (get_minibuffer): Likewise.
1400 * msdos.c (dos_set_window_size): Likewise.
1401 * process.c (make_process): Likewise.
1402 * xdisp.c (ensure_echo_area_buffers): Likewise.
1403 * xsettings.c (apply_xft_settings): Likewise.
1404
d01ba2f1
GM
14052012-07-09 Glenn Morris <rgm@gnu.org>
1406
1407 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
1408 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
1409 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
1410 * nsterm.h (ns_etc_directory): Add it.
1411 * callproc.c [HAVE_NS]: Include nsterm.h.
1412 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
1413
f1f924b6
DA
14142012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
1415
1416 Move marker debugging code under MARKER_DEBUG.
1417 * marker.c (MARKER_DEBUG): Move marker debugging code under
1418 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
1419 for bootstrap with --enable-checking (~3x slowdown reported
1420 by Juanma Barranquero <lekktu@gmail.com>).
1421 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
1422
ab531b66
PE
14232012-07-08 Paul Eggert <eggert@cs.ucla.edu>
1424
1425 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
1426 See <http://bugs.gnu.org/11825#29>.
1427
c4b3bc8a
EZ
14282012-07-08 Eli Zaretskii <eliz@gnu.org>
1429
1430 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
1431 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
1432 (display_line): Add commentary about displaying truncation glyphs
1433 on GUI frames.
1434 (produce_special_glyphs): Move here from term.c.
1435
1436 * term.c (produce_special_glyphs): Move to xdisp.c.
1437
1438 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
1439 section.
c4b3bc8a 1440
b676b881
AS
14412012-07-07 Andreas Schwab <schwab@linux-m68k.org>
1442
f17c5273
AS
1443 * xdisp.c (display_line): Avoid warning about implicit declaration
1444 of FRAME_FONT.
1445
298819b9
AS
1446 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
1447
b676b881
AS
1448 * lisp.h: Remove empty conditional.
1449
6045c4fd
PE
14502012-07-07 Paul Eggert <eggert@cs.ucla.edu>
1451
b3350bf9
PE
1452 * lread.c (load_path_check): Now static.
1453
6045c4fd
PE
1454 Fix some minor --with-ns problems found by static checking.
1455 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
1456 (x_set_font) [!HAVE_X_WINDOWS]:
1457 * image.c (xpm_load_image) [HAVE_NS]:
1458 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
1459 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
1460 Remove unused local.
1461 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
1462 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
1463 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
1464 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
1465 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
1466 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
1467 Fix pointer signedness problem.
1468 * xfaces.c (FRAME_X_FONT_TABLE):
1469 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
1470
929e7845
GM
14712012-07-07 Glenn Morris <rgm@gnu.org>
1472
1473 * lread.c (load_path_check): New function, split from init_lread.
1474 (init_lread): Reorganize. Motivation:
1475 If EMACSLOADPATH is set, check/warn about that rather than the
1476 defaults, which we are not going to use. Hence we can remove
1477 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
1478 Don't warn if site-lisp directories are missing.
1479 If not installed, start from a blank load-path, since
1480 PATH_LOADSEARCH refers to the eventual installation directories.
1481
58dd0aa4
EZ
14822012-07-07 Eli Zaretskii <eliz@gnu.org>
1483
1484 Support truncation and continuation glyphs on GUI frames, when
1485 fringes are disabled. (Bug#11832)
1486 * xdisp.c (init_iterator): Get dimensions of truncation and
1487 continuation glyphs even if on GUI frames. Adjust
1488 it->last_visible_x on GUI frames when the left or right fringes,
1489 or both, are absent.
1490 (start_display, move_it_in_display_line_to): Handle the case of a
1491 GUI frame without a fringe to display continuation or truncation
1492 glyphs.
1493 (insert_left_trunc_glyphs): Support GUI frames: make sure
1494 truncation glyphs overwrite enough glyphs from the current line to
1495 have sufficient space in pixels.
1496 (display_line): Support truncation and continuation glyphs on GUI
1497 frames. If some spare pixels are left on the line after inserting
1498 the truncation glyphs, fill that space with a stretch glyph of a
1499 suitably computed width.
1500
1501 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
1502 produce_glyphs, to support GUI sessions.
1503
31571fd7
PE
15042012-07-07 Paul Eggert <eggert@cs.ucla.edu>
1505
5a16b9bc
PE
1506 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
1507
f3047c75
PE
1508 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
1509
31571fd7
PE
1510 Do not require float-time's arg to fit in time_t (Bug#11825).
1511 This works better on hosts where time_t is unsigned, and where
1512 float-time is applied to the (negative) difference between two times.
1513 * editfns.c (decode_time_components): Last arg is now double *,
1514 not int *, and means to store all the result as a double, without
1515 worrying about whether the seconds part fits in time_t.
1516 All callers changed.
1517 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
1518 All callers changed.
1519 (Ffloat_time): Do not fail merely because the specified time falls
1520 outside of time_t range.
1521
4516fbef
GM
15222012-07-07 Glenn Morris <rgm@gnu.org>
1523
1524 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
1525 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
1526 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
1527
07adc2c6
JB
15282012-07-07 Juanma Barranquero <lekktu@gmail.com>
1529
1530 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
1531 Update dependencies.
1532
1533 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
1534
fd573f31
PE
15352012-07-06 Paul Eggert <eggert@cs.ucla.edu>
1536
fee5959d
PE
1537 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
1538 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
1539 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
1540 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
1541 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
1542 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
1543
fd573f31
PE
1544 * xfont.c (compare_font_names): Redo to omit the need for casts.
1545
ddadbc0e
AS
15462012-07-06 Andreas Schwab <schwab@linux-m68k.org>
1547
fca8d6b6
AS
1548 * xfns.c (Fx_change_window_property): Doc fix.
1549 * w32fns.c (Fx_change_window_property): Doc fix.
1550
ddadbc0e
AS
1551 * w32fns.c (Fx_window_property): Accept the same arguments as the
1552 X Windows version. Doc fix.
1553 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
1554
ed9265fc 15552012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
1556 Eli Zaretskii <eliz@gnu.org>
1557
1558 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
1559 Windows-specific code from nt/config.nt moved here.
1560 Obsolete settings removed.
1561
216ee680
PE
15622012-07-06 Paul Eggert <eggert@cs.ucla.edu>
1563
1564 * process.c: Avoid unnecessary calls to gettime.
1565 (wait_reading_process_output): Don't get the time of day
1566 when gobbling data immediately and not waiting, as there's no need
1567 for it in that case. This removes a FIXME.
1568
bdd091e4
JD
15692012-07-06 Jan Djärv <jan.h.d@swipnet.se>
1570
1571 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
1572 is defined (Bug#11768).
1573
9d44f8ce
DA
15742012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
1575
1576 Fix marker debugging code.
1577 * marker.c (byte_char_debug_check): Do not perform the check
1578 if buffer is not multibyte.
090bd7cb
JB
1579 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
1580 Call byte_char_debug_check with correct arguments.
9d44f8ce 1581
90fc4786
DA
15822012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
1583
1584 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
1585 * marker.c (byte_char_debug_check, count_markers):
1586 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
1587 (byte_debug_flag): Remove.
1588 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
1589 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
1590
7b7ae965
DA
15912012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
1592
4e57b342
DA
1593 Avoid code repetition in marker-related functions.
1594 * marker.c (attach_marker): New function.
1595 (Fset_marker, set_marker_restricted, set_marker_both)
1596 (set_marker_restricted_both): Use it.
1597 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
1598 Consistently rename charno to charpos.
1599 (marker_position): Add eassert.
1600 (marker_byte_position): Convert to eassert.
1601
16022012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
1603
1604 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 1605 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 1606 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 1607
657924ff
DA
16082012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
1609
1610 Introduce fast path for the widely used marker operation.
1611 * alloc.c (build_marker): New function.
1612 * lisp.h (build_marker): New prototype.
1613 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
1614 * composite.c (autocmp_chars): Likewise.
1615 * editfns.c (buildmark): Remove.
1616 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
1617 (save_restriction_save): Use build_marker.
1618 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
1619 * window.c (save_window_save): Likewise.
1620
041a49a6
DA
16212012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
1622
1623 Do not use Fdelete_overlay in delete_all_overlays
1624 to avoid redundant calls to unchain_overlay.
1625 * buffer.c (drop_overlay): New function.
1626 (delete_all_overlays, Fdelete_overlay): Use it.
1627 * minibuf.c (get_minibuffer): Fix comment.
1628
7dca65a4
PE
16292012-07-06 Paul Eggert <eggert@cs.ucla.edu>
1630
1631 Port to OpenBSD 5.1 amd64.
1632 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
1633 This is needed for OpenBSD, and should be harmless on all BSD systems.
1634 Also, include <sys/sysctl.h>, as it should be available on all
1635 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
1636 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
1637 use p_pid member, not kp_proc.pid.
1638
8eb876e2
GM
16392012-07-06 Glenn Morris <rgm@gnu.org>
1640
1641 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
1642
38182d90
PE
16432012-07-05 Paul Eggert <eggert@cs.ucla.edu>
1644
1645 More xmalloc and related cleanup.
1646 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
1647 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
1648 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
1649 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
1650 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
1651 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
1652 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
1653 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
1654 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
1655 * xterm.c:
1656 Omit needless casts involving void * pointers and allocation.
1657 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
1658 as the former is more robust if P's type is changed.
1659 Prefer xzalloc to xmalloc + memset 0.
1660 Simplify malloc-or-realloc to realloc.
1661 Don't worry about xmalloc returning a null pointer.
1662 Prefer xstrdup to xmalloc + strcpy.
1663 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
1664 growing it.
1665 * keyboard.c (apply_modifiers_uncached): Prefer local array to
1666 alloca of a constant.
1667
6dd5a677
EZ
16682012-07-05 Eli Zaretskii <eliz@gnu.org>
1669
1670 * xdisp.c (display_line): Fix horizontal pixel coordinates when
1671 hscroll is larger than the line width. Fixes long and futile
1672 looping inside extend_face_to_end_of_line (on a TTY) producing
1673 glyphs that are not needed and thrown away.
1674
6b312f0f
DA
16752012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
1676
1677 * marker.c (set_marker_restricted_both): Simplify by using
1678 clip_to_bounds.
1679
f520ef9b
PE
16802012-07-05 Paul Eggert <eggert@cs.ucla.edu>
1681
1682 * editfns.c (region_limit): Simplify by using clip_to_bounds.
1683
383b7c95
JD
16842012-07-05 Jan Djärv <jan.h.d@swipnet.se>
1685
1686 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
1687 not defined (Bug#11768).
1688 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
1689 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
1690 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
1691 followed by gtk_box_set_homogeneous (Bug#11768).
1692 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
1693 (update_theme_scrollbar_width, xg_create_scroll_bar):
1694 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
1695 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
1696 (is_box_type): New function (Bug#11768).
1697 (xg_tool_item_stale_p): Call is_box_type.
5293d758 1698 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
1699 with default display (Bug#11768).
1700
d6e7bf45
EZ
17012012-07-05 Eli Zaretskii <eliz@gnu.org>
1702
1703 * xdisp.c (window_hscroll_limited): New function.
1704 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
1705 coordinates when window's hscroll is set to insanely large
1706 values. (Bug#11857)
1707
431391ec
JB
17082012-07-05 Juanma Barranquero <lekktu@gmail.com>
1709
1710 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
1711 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
1712
23f86fce
DA
17132012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
1714
1715 Cleanup xmalloc.
1716 * lisp.h (xzalloc): New prototype. Omit needless casts.
1717 * alloc.c (xzalloc): New function. Omit needless casts.
1718 * charset.c: Omit needless casts. Convert all calls to
1719 xmalloc with following memset to xzalloc.
1720 * dispnew.c: Likewise.
1721 * fringe.c: Likewise.
1722 * image.c: Likewise.
1723 * sound.c: Likewise.
1724 * term.c: Likewise.
1725 * w32fns.c: Likewise.
1726 * w32font.c: Likewise.
1727 * w32term.c: Likewise.
1728 * xfaces.c: Likewise.
1729 * xfns.c: Likewise.
1730 * xterm.c: Likewise.
1731 * atimer.c: Omit needless casts.
1732 * buffer.c: Likewise.
1733 * callproc.c: Likewise.
1734 * ccl.c: Likewise.
1735 * coding.c: Likewise.
1736 * composite.c: Likewise.
1737 * doc.c: Likewise.
1738 * doprnt.c: Likewise.
1739 * editfns.c: Likewise.
1740 * emacs.c: Likewise.
1741 * eval.c: Likewise.
1742 * filelock.c: Likewise.
1743 * fns.c: Likewise.
1744 * gtkutil.c: Likewise.
1745 * keyboard.c: Likewise.
1746 * lisp.h: Likewise.
1747 * lread.c: Likewise.
1748 * minibuf.c: Likewise.
1749 * msdos.c: Likewise.
1750 * print.c: Likewise.
1751 * process.c: Likewise.
1752 * region-cache.c: Likewise.
1753 * search.c: Likewise.
1754 * sysdep.c: Likewise.
1755 * termcap.c: Likewise.
1756 * terminal.c: Likewise.
1757 * tparam.c: Likewise.
1758 * w16select.c: Likewise.
1759 * w32.c: Likewise.
1760 * w32reg.c: Likewise.
1761 * w32select.c: Likewise.
1762 * w32uniscribe.c: Likewise.
1763 * widget.c: Likewise.
1764 * xdisp.c: Likewise.
1765 * xmenu.c: Likewise.
1766 * xrdb.c: Likewise.
1767 * xselect.c: Likewise.
1768
0497dc44
PE
17692012-07-05 Paul Eggert <eggert@cs.ucla.edu>
1770
1771 * fileio.c (time_error_value): Check the right error number.
1772 Problem reported by Troels Nielsen in
1773 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
1774
356e7178
PE
17752012-07-04 Paul Eggert <eggert@cs.ucla.edu>
1776
4e71fd89
PE
1777 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
1778 This should be fixed in a better way; see Eli Zaretskii in
1779 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
1780 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
1781
f0941253
PE
1782 * fileio.c (time_error_value): Rename from special_mtime.
1783 The old name's problems were noted by Eli Zaretskii in
1784 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
1785
065c9eb4
PE
1786 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
1787 This variable's comment says Emacs needs at least one GDB-visible
1788 symbol of type enum pvec_type, to work around GDB problems.
1789 The symbol's value doesn't matter.
1790
356e7178
PE
1791 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
1792 that causes compilation to fail on pre-C99 compilers.
1793
ed9265fc 17942012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
1795
1796 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
1797 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
1798
3884d954
DA
17992012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
1800
d209e2fb 1801 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
1802 headers for buffer_defaults and buffer_local_symbols.
1803 Reported by Juanma Barranquero <lekktu@gmail.com>.
1804
ee28be33
SM
18052012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
1806
1807 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
1808 * lisp.h (enum pvec_type): Use fewer bits.
1809 (PSEUDOVECTOR_SIZE_BITS): New constant.
1810 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
1811 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
1812 change in pvec_type.
1813 (PSEUDOVECTOR_TYPEP): New macro.
1814 (TYPED_PSEUDOVECTORP): Use it.
1815 * fns.c (internal_equal): Adapt code to extract pvectype.
1816 * emacs.c (gdb_pvec_type): Update type.
1817 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
1818 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
1819 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
1820 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
1821 (sweep_vectors): Use it. Use local var `total_bytes' instead of
1822 abusing vector->header.next.nbytes.
1823 (live_vector_p): Use PVEC_TYPE.
1824 (mark_object): Adapt code to extract pvectype. Use switch.
1825
c7f2cd7f
PE
18262012-07-04 Paul Eggert <eggert@cs.ucla.edu>
1827
1828 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
1829 Tighten new eassert a bit.
1830
8ce70ed2
DA
18312012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
1832
1833 Fix compilation with --enable-gcc-warnings and -O1
1834 optimization level.
1835 * doprnt.c (doprnt): Change type of tem to int, initialize
1836 to avoid compiler warning. Add eassert.
1837 * search.c (simple_search): Initialize match_byte to avoid
1838 compiler warning. Add eassert.
1839
dea7f1e5
PE
18402012-07-04 Paul Eggert <eggert@cs.ucla.edu>
1841
24a212eb
PE
1842 Avoid weird behavior with large horizontal scrolls.
1843 Without this change, for example, large hscroll values would
1844 mess up Emacs's display on Fedora 15 x86, presumably due to
1845 overflows in int calculations in the display code.
1846 Also, if buffers had long lines, Emacs would freeze.
1847 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
1848 (set_window_hscroll): New function, containing the old guts of
1849 Fset_window_hscroll. Return the clipped value.
1850 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
1851 This avoids the need to check against PTRDIFF_MAX.
1852
dea7f1e5
PE
1853 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
1854
76046526
DA
18552012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
1856
1857 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
1858
39adff0d
PE
18592012-07-04 Paul Eggert <eggert@cs.ucla.edu>
1860
63807d47
PE
1861 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
1862 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
1863 since GCC 4.4.6 issues a bogus warning for them.
1864
39adff0d
PE
1865 Fix bugs in file timestamp newness comparisons.
1866 * fileio.c (Ffile_newer_than_file_p):
1867 * lread.c (Fload): Use full timestamp resolution of files,
1868 not just the 1-second resolution, so that files that are only
1869 slightly newer still count as newer.
1870 * fileio.c (Ffile_newer_than_file_p): Don't assume file
1871 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
1872
dbeed9a6
PE
18732012-07-03 Paul Eggert <eggert@cs.ucla.edu>
1874
1875 * fileio.c: Improve handling of file time marker. (Bug#11852)
1876 (special_mtime): New function.
1877 (Finsert_file_contents, Fverify_visited_file_modtime):
1878 Use it to set special mtime values consistently.
1879
636334d6
AS
18802012-07-03 Andreas Schwab <schwab@linux-m68k.org>
1881
1882 * fileio.c (Finsert_file_contents): Properly handle st_mtime
1883 marker for non-existing file. (Bug#11852)
1884
e2017fe2
GM
18852012-07-03 Glenn Morris <rgm@gnu.org>
1886
1887 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
1888 and did not make it into globals.h).
1889
404dbd37
TT
18902012-07-03 Tom Tromey <tromey@redhat.com>
1891
1892 * window.c (Fset_window_margins, Fset_window_fringes)
1893 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
1894 * textprop.c (Fprevious_property_change): No longer static.
1895 * syntax.c (Fsyntax_table_p): No longer static.
1896 * process.c (Fget_process, Fprocess_datagram_address): No longer
1897 static.
1898 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
1899 * keyboard.c (Fcommand_execute): No longer static.
1900 Remove EXFUN.
1901 * insdel.c (Fcombine_after_change_execute): No longer static.
1902 * image.c (Finit_image_library): No longer static.
1903 * fileio.c (Fmake_symbolic_link): No longer static.
1904 * eval.c (Ffetch_bytecode): No longer static.
1905 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
1906 * doc.c (Fdocumentation_property, Fsnarf_documentation):
1907 No longer static.
404dbd37
TT
1908 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
1909 static.
1910 * dired.c (Ffile_attributes): No longer static.
1911 * composite.c (Fcomposition_get_gstring): No longer static.
1912 * callproc.c (Fgetenv_internal): No longer static.
1913
1914 * ccl.h: Remove EXFUNs.
1915 * buffer.h: Remove EXFUNs.
1916 * dispextern.h: Remove EXFUNs.
1917 * intervals.h: Remove EXFUNs.
1918 * fontset.h: Remove EXFUN.
1919 * font.h: Remove EXFUNs.
1920 * dosfns.c (system_process_attributes): Remove EXFUN.
1921 * keymap.h: Remove EXFUNs.
1922 * lisp.h: Remove EXFUNs.
1923 * w32term.h: Remove EXFUNs.
1924 * window.h: Remove EXFUNs.
1925 * xsettings.h: Remove EXFUN.
1926 * xterm.h: Remove EXFUN.
1927
8e4fd1e1
GM
19282012-07-03 Glenn Morris <rgm@gnu.org>
1929
1930 * lisp.h (Frandom): Make it visible to C.
1931 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
1932 buffer for invisible buffers. (Bug#1229)
1933
ca95b3eb
DA
19342012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
1935
1936 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
1937 values which aren't power of 2.
1938 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. Verify
1939 it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
1940 accordingly.
1941
7555c33f
SM
19422012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
1943
1944 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
1945
1946 * alloc.c (mark_object): Revert part of last patch to use `switch'.
1947
d12e8f5a
DA
19482012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
1949
1950 * alloc.c (allocate_vector_block): Remove redundant
1951 calls to mallopt if DOUG_LEA_MALLOC is defined.
1952 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
1953 avoid calls to mallopt if zero_vector is returned.
1954
296094c3
DA
19552012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
1956
1957 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
1958 is enabled, avoid dereferencing NULL current_sblock if
1959 running undumped.
1960
36429c89
DA
19612012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
1962
1963 Cleanup basic buffer management.
1964 * buffer.h (struct buffer): Change layout to use generic vector
1965 marking code. Fix some comments. Change type of 'clip_changed'
1966 to bitfield. Remove unused #ifndef old.
1967 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
1968 (GET_OVERLAYS_AT): Fix indentation.
1969 (for_each_per_buffer_object_at): New macro.
1970 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
1971 (Fbuffer_local_variables): Use it.
1972 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
1973 * alloc.c (allocate_buffer): Adjust to match new layout of
1974 struct buffer. Fix comment.
1975 (mark_overlay): New function.
1976 (mark_buffer): Use it. Use mark_vectorlike to mark normal
1977 Lisp area of struct buffer.
1978 (mark_object): Use it. Adjust marking of misc objects
1979 and related comments.
1980
3b3e4cac
PE
19812012-07-02 Paul Eggert <eggert@cs.ucla.edu>
1982
1983 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
1984 wrapper that is not needed because the wrapped code is a no-op (zero
1985 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
1986 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
1987
cf5c0175
DA
19882012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
1989
1990 * alloc.c (mark_buffer): Simplify. Remove prototype.
1991 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 1992 objects. Use CHECK_LIVE for all vector-like objects except buffers
cf5c0175
DA
1993 and subroutines when GC_CHECK_MARKED_OBJECTS is defined. Avoid
1994 redundant calls to mark_vectorlike for bool vectors.
1995
ca26824c
GM
19962012-06-30 Glenn Morris <rgm@gnu.org>
1997
2e4c5312
GM
1998 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
1999
ca26824c
GM
2000 * epaths.in (PATH_SITELOADSEARCH): New.
2001 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
2002 This is rather than relying on --enable-locallisppath elements
2003 having "site-lisp" in their names. (Bug#10208#25, 11658)
2004
0d23c240
EZ
20052012-06-30 Eli Zaretskii <eliz@gnu.org>
2006
c9240d7a
EZ
2007 * w32proc.c (sys_select): Accept and ignore one more argument.
2008
2009 * w32.c (emacs_gnutls_pull): Call select with one more argument.
2010
0d23c240 2011 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 2012 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
2013
2014 * sysdep.c: Don't include dos.h and dosfns.h.
2015
2016 * process.c (sys_select):
2017 * msdos.c (sys_select): Accept one more argument and ignore it.
2018
2019 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
2020 adapt data types and code to that.
2021
2022 * dosfns.c:
2023 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
2024 which clashes with the gnulib function of the same name.
2025
af5a5a98
AS
20262012-06-30 Andreas Schwab <schwab@linux-m68k.org>
2027
c5e4379c
AS
2028 * font.c (font_style_to_value, font_style_symbolic)
2029 (font_prop_validate_style): Add type checks for values in
2030 font_style_table.
2031
af5a5a98
AS
2032 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
2033 argument.
2034 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
2035 uses.
2036
8d38f461
EZ
20372012-06-29 Eli Zaretskii <eliz@gnu.org>
2038
2e5a6631
EZ
2039 * xdisp.c (try_window_id): Undo last change.
2040
8d38f461
EZ
2041 * w32.c (getwd): Adjust commentary about startup_dir.
2042 (init_environment): Always call sys_access, even in non-MSVC
2043 builds. Don't chdir to the directory of the Emacs executable.
2044 This undoes code from 1997 which was justified by the need to
2045 "avoid conflicts when removing and renaming directories". But its
2046 downside was that every relative file name was being interpreted
2047 relative to the directory of the Emacs executable, which can never
2048 be TRT. In particular, it broke sys_access when called with
2049 relative file names.
2050 (sys_access): Map GetLastError to errno.
2051
2af3565e
DA
20522012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
2053
2054 * window.h (struct window): Change type of 'fringes_outside_margins'
2055 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 2056 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
2057 Adjust comment.
2058 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
2059 to ptrdiff_t.
2060
c8d3a25c 20612012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 2062
c8d3a25c
GM
2063 * gnutls.c (emacs_gnutls_handshake):
2064 Add QUIT to make the loop interruptible.
57570cd3 2065
c8d3a25c 20662012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 2067
c8d3a25c
GM
2068 * charset.c (init_charset): Make lack of etc/charsets fatal.
2069
3e984ee8
DA
20702012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
2071
2072 * editfns.c (region_limit): Fix type mismatch.
2073
ef884f23
DA
20742012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
2075
2076 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
2077 undefined. Convert from xassert to eassert.
2078 * nsmenu.m: Convert from xassert to eassert.
2079 * nsterm.m: Likewise.
2080
7d7e0027
SM
20812012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
2082
2083 * editfns.c (region_limit): Clip to narrowing (bug#11770).
2084
aa754e6a
PE
20852012-06-28 Paul Eggert <eggert@cs.ucla.edu>
2086
2087 Avoid integer overflow on scroll-left and scroll-right.
2088 * window.c (HSCROLL_MAX): New macro.
2089 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
2090 overflow when requested scroll falls outside ptrdiff_t range.
2091
80b00b08
DA
20922012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
2093
2094 * window.h (struct window): Change type of 'hscroll',
2095 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
2096 'last_modified' and 'last_overlay_modified' to EMACS_INT.
2097 Adjust users accordingly.
2098 * xdisp.c (try_cursor_movement): Replace type check with eassert.
2099 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
2100 from EMACS_INT to ptrdiff_t.
2101 (make_window): Omit redundant initialization.
2102
62b2bcf6
JB
21032012-06-28 Juanma Barranquero <lekktu@gmail.com>
2104
2105 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
2106
45942c7d
DA
21072012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
2108
2109 * window.h (struct window): Change type of 'use_time' and
2110 'sequence_number' from Lisp_Object to int.
2111 * frame.c (make_frame): Adjust users accordingly.
2112 * print.c (print_object): Likewise.
2113 * window.c (select_window, Fwindow_use_time, make_parent_window)
2114 (make_window): Likewise.
2115
e509cfa6
DA
21162012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
2117
2118 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
2119 enabled with --enable-checking=[all,glyphs] configure option.
2120 Fix GLYPH_DEBUG usage assuming that it may be undefined,
2121 adjust comments accordingly.
2122 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
2123 undefined, adjust comments accordingly.
2124 * image.c: Likewise.
2125 * scroll.c: Likewise.
2126 * w32fns.c: Likewise.
2127 * w32term.c: Likewise.
2128 * xdisp.c: Likewise.
2129 * xfaces.c: Likewise.
2130 * xfns.c: Likewise.
2131 * xterm.c: Likewise.
2132
a54e2c05
DA
21332012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
2134
2135 Generalize run-time debugging checks.
2136 * dispextern.h (XASSERTS): Remove.
2137 * fontset.c (xassert): Remove.
2138 Convert from xassert to eassert.
2139 * alloc.c: Convert from xassert to eassert.
2140 * bidi.c: Likewise.
2141 * dispnew.c: Likewise.
2142 * fns.c: Likewise.
2143 * fringe.c: Likewise.
2144 * ftfont.c: Likewise.
2145 * gtkutil.c: Likewise.
2146 * image.c: Likewise.
2147 * keyboard.c: Likewise.
2148 * menu.c: Likewise.
2149 * process.c: Likewise.
2150 * scroll.c: Likewise.
2151 * sound.c: Likewise.
2152 * term.c: Likewise.
2153 * w32console.c: Likewise.
2154 * w32fns.c: Likewise.
2155 * w32term.c: Likewise.
2156 * window.c: Likewise.
2157 * xdisp.c: Likewise.
2158 * xfaces.c: Likewise.
2159 * xfns.c: Likewise.
2160 * xselect.c: Likewise.
2161 * xterm.c: Likewise.
2162
1ec4b7b2
SM
21632012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
2164
2165 * fns.c (maybe_resize_hash_table): Output message when growing the
2166 purify-hashtable.
2167
2014308a
DA
21682012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
2169
2170 * alloc.c (allocate_string_data): Remove dead code.
2171 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
2172 avoid GCC warning about unused macro.
2173
246155eb
DA
21742012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
2175
2176 * alloc.c (allocate_string): Omit intervals initialization.
2177 * alloc.c (make_uninit_multibyte_string): Initialize intervals
2178 as in make_pure_string and make_pure_c_string.
2179
43184b7b
DA
21802012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
2181
d209e2fb 2182 * alloc.c (allocate_string): Fix last change.
43184b7b 2183
3fe6dd74
DA
21842012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
2185
d209e2fb 2186 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
2187 to memset, add explicit initialization where appropriate.
2188
1ba6038a
GM
21892012-06-27 Glenn Morris <rgm@gnu.org>
2190
2191 * lisp.mk (lisp): Remove paths.elc.
2192
c89926a5
CY
21932012-06-27 Chong Yidong <cyd@gnu.org>
2194
2195 * doc.c (Fsubstitute_command_keys): Fix punctuation.
2196
ed6b3510
JW
21972012-06-26 John Wiegley <johnw@newartisans.com>
2198
1ec4b7b2 2199 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
2200 on Mac OS X Lion: __mod_init_func and __mod_term_func.
2201
ed6b3510
JW
2202 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
2203 when building with Clang.
2204
8edd4a2b
SM
22052012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
2206
2207 * eval.c (Fapply): Allow calling it with a single argument.
2208
f6f62d1b
EZ
22092012-06-26 Eli Zaretskii <eliz@gnu.org>
2210
2211 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
2212 _stricmp and _strnicmp.
2213 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
2214
62efea5e
DA
22152012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
2216
2217 * alloc.c (allocate_window): Zero out non-Lisp part of newly
2218 allocated window.
2219 (allocate_process): Likewise for new process.
8edd4a2b 2220 (allocate_terminal): Change to use offsetof.
62efea5e
DA
2221 (allocate_frame): Likewise.
2222 * frame.c (make_frame): Omit redundant initialization.
2223 * window.c (make_parent_window): Use memset.
2224 (make_window): Omit redundant initialization.
2225 * process.c (make_process): Omit redundant initialization.
2226 * terminal.c (create_terminal): Likewise.
2227
42997f4d
DA
22282012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
2229
2230 * term.c (delete_tty): Remove redundant call to memset.
2231
1130ecfc
DA
22322012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
2233
2234 * alloc.c: Remove build_string.
2235 * lisp.h: Define build_string as static inline. This provides
2236 a better opportunity to optimize away calls to strlen when the
2237 function is called with compile-time constant argument.
2238 * image.c (imagemagick_error): Convert to build_string.
2239 * w32proc.c (sys_spawnve): Likewise.
2240 * xterm.c (x_term_init): Likewise.
2241
cf38a720
PE
22422012-06-26 Paul Eggert <eggert@cs.ucla.edu>
2243
99027bdd
PE
2244 Use sprintf return value instead of invoking strlen on result.
2245 In the old days this wasn't portable, since some sprintf
2246 implementations returned char *. But they died out years ago and
2247 Emacs already assumes sprintf returns int.
2248 Similarly for float_to_string.
2249 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
2250 * ccl.c (ccl_driver):
2251 * character.c (string_escape_byte8):
2252 * data.c (Fnumber_to_string):
2253 * doprnt.c (doprnt):
2254 * print.c (print_object):
2255 * xdisp.c (message_dolog):
2256 * xfns.c (syms_of_xfns):
2257 Use sprintf or float_to_string result to avoid need to call strlen.
2258 * data.c (Fnumber_to_string):
2259 Use make_unibyte_string, since the string must be ASCII.
2260 * lisp.h, print.c (float_to_string): Now returns int length.
2261 * term.c (produce_glyphless_glyph):
2262 Use sprintf result rather than recomputing it.
2263
cf38a720
PE
2264 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
2265 * Makefile.in (ALL_CFLAGS):
2266 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
2267 * gmalloc.c, regex.c: Include <config.h> unconditionally.
2268
3511c784
DA
22692012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
2270
0a08eb21 2271 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
2272 strcasecmp if available.
2273 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
2274
fb7da12e
AS
22752012-06-25 Andreas Schwab <schwab@linux-m68k.org>
2276
2277 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
2278 Avoid comma operator.
2279 * menu.c (push_submenu_start, push_submenu_end)
2280 (push_left_right_boundary, push_menu_pane): Likewise.
2281 * msdos.c (dos_rawgetc): Likewise.
2282
afa2ffd8
DA
22832012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
2284
2285 * xfns.c (xic_create_fontsetname): Remove redundant calls
2286 to memset.
2287
b3b4476b
PE
22882012-06-25 Paul Eggert <eggert@cs.ucla.edu>
2289
4495ff38
PE
2290 * gtkutil.c (get_utf8_string): Remove redundant assignment.
2291 sprintf already null-terminates its output.
2292
b3b4476b
PE
2293 * xfns.c (x_window): Remove redundant cast.
2294
b00876c9
DA
22952012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
2296
2297 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
2298 `const char *' to `char *' to avoid compiler warning.
2299
d188e26b
PE
23002012-06-24 Paul Eggert <eggert@cs.ucla.edu>
2301
885d1d74
PE
2302 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
2303 instead of truncating it to 63 (admittedly a generous limit).
2304
d188e26b
PE
2305 * process.c: Fix spelling and caps in comments.
2306
e2f560b1
DN
23072012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
2308
e86db54b 2309 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
2310 * sysdep.c (setpgrp): Remove definition, not used in this file.
2311
7583a3a1
JB
23122012-06-24 Juanma Barranquero <lekktu@gmail.com>
2313
2314 * makefile.w32-in: Update dependencies.
2315
696056c2
EZ
23162012-06-24 Eli Zaretskii <eliz@gnu.org>
2317
2318 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
2319 (SYSTIME_H): Add nt/inc/sys/time.h.
2320
2321 * systime.h [WINDOWSNT]: Include sys/time.h.
2322
2323 * s/ms-w32.h (struct timespec): Definition moved from
2324 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
2325
845ca893
PE
23262012-06-24 Paul Eggert <eggert@cs.ucla.edu>
2327
2328 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
2329 * buffer.h (buffer_slot_type_mismatch):
2330 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
2331 * eval.c (unwind_to_catch):
2332 * image.c (my_png_error, my_error_exit):
2333 * keyboard.c (quit_throw_to_read_char, user_error)
2334 (Fexit_recursive_edit, Fabort_recursive_edit):
2335 * lisp.h (die, args_out_of_range, args_out_of_range_3)
2336 (wrong_type_argument, buffer_overflow, __executable_start)
2337 (memory_full, buffer_memory_full, string_overflow, Fthrow)
2338 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
2339 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
2340 (fatal):
2341 (child_setup) [!DOS_NT]:
2342 * lread.c (end_of_file_error, invalid_syntax):
2343 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
2344 * puresize.h (pure_write_error):
2345 * search.c (matcher_overflow):
2346 * sound.c (sound_perror, alsa_sound_perror):
2347 * sysdep.c, syssignal.h (croak):
2348 * term.c (maybe_fatal, vfatal):
2349 * textprop.c (text_read_only):
2350 * undo.c (user_error):
2351 * unexmacosx.c (unexec_error):
2352 * xterm.c (x_ins_del_lines, x_delete_glyphs):
2353 Use _Noreturn rather than NO_RETURN.
2354 No need for separate decl merely because of _Noreturn.
2355 * sound.c (sound_warning, parse_sound):
2356 Remove unnecessary forward decls.
2357
f1dd8073
PE
23582012-06-24 Paul Eggert <eggert@cs.ucla.edu>
2359
2360 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
2361 * lisp.h (WAIT_READING_MAX): New macro.
2362 * dispnew.c (Fsleep_for, sit_for):
2363 * keyboard.c (kbd_buffer_get_event):
2364 * process.c (Faccept_process_output):
2365 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
2366 This improves on the previous patch, which introduced a bug
2367 when time_t is unsigned and as wide as intmax_t.
2368 See <http://bugs.gnu.org/9000#51>.
2369
b82c1755
EZ
23702012-06-23 Eli Zaretskii <eliz@gnu.org>
2371
2372 * dispnew.c (sit_for, Fsleep_for):
2373 * keyboard.c (kbd_buffer_get_event):
2374 * process.c (Faccept_process_output): Avoid compiler warnings when
2375 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
2376
ca300656
JB
23772012-06-23 Juanma Barranquero <lekktu@gmail.com>
2378
049ec95b
JB
2379 * makefile.w32-in: Update dependencies.
2380
ca300656
JB
2381 * w32.c (ltime): Add return type and declare static.
2382 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
2383
db7b8d06
PE
23842012-06-23 Paul Eggert <eggert@cs.ucla.edu>
2385
2386 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
2387 Privately reported by Herbert J. Skuhra.
2388 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
2389 All uses changed.
2390 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
2391 not make_lisp_timeval, when the argument is of type EMACS_TIME.
2392
0bd8297f
EZ
23932012-06-23 Eli Zaretskii <eliz@gnu.org>
2394
96512555
EZ
2395 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
2396 last argument of make_unibyte_string.
2397
0bd8297f
EZ
2398 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
2399 language ID in the event parameters.
2400
2401 * w32term.c (w32_read_socket): Put the new keyboard codepage into
2402 event.code, not the obscure "character set ID".
2403
63def6b6
CY
24042012-06-23 Chong Yidong <cyd@gnu.org>
2405
2406 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
2407
e8a02204
EZ
24082012-06-23 Eli Zaretskii <eliz@gnu.org>
2409
388cdec0
EZ
2410 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
2411 * w32.c (fdutimens): New function.
2412
2413 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
2414
2415 * s/ms-w32.h (pselect): Redirect to sys_select.
2416
2417 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
2418
e8a02204
EZ
2419 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
2420 in the logic of incrementing and decrementing the value of
2421 use_relocatable_buffers.
2422
d054f3fb
PE
24232012-06-23 Paul Eggert <eggert@cs.ucla.edu>
2424
2425 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
2426 Privately reported by Herbert J. Skuhra.
2427 [__FreeBSD__]: Remove "*/" typo after "#include".
2428 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
2429 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
2430 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
2431 Don't assume EMACS_TIME and struct timeval are the same type.
2432
d35af63c
PE
24332012-06-22 Paul Eggert <eggert@cs.ucla.edu>
2434
2435 Support higher-resolution time stamps (Bug#9000).
2436 The time stamps are only nanosecond-resolution at the C level,
2437 since that's the best that any real-world system supports now.
2438 But they are picosecond-resolution at the Lisp level, as that's
2439 easy, and leaves room for future OS improvements.
2440
2441 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
2442 (LIBES): Use it.
2443
2444 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
2445 Don't get current time unless it's needed.
2446
2447 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
2448 now provides it if it's absent.
2449 (start_atimer): Port to higher-res time stamps.
2450 Check for time stamp overflow. Don't get current time more
2451 often than is needed.
2452
2453 * buffer.h (struct buffer): Buffer modtime now has high resolution.
2454 Include systime.h, not time.h.
2455 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
2456
2457 * dired.c: Include stat-time.h.
2458 (Ffile-attributes): File times now have higher resolution.
2459
2460 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
2461 (struct image): Timestamp now has higher resolution.
2462
2463 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
2464 has at least microseconds now. All uses removed.
2465 (update_frame, update_single_window, update_window, update_frame_1)
2466 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
2467
2468 * editfns.c (time_overflow): Now extern.
2469 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
2470 (float-time, Fformat_time_string, Fcurrent_time_string)
2471 (Fcurrent_time_zone): Accept and generate higher-resolution
2472 time stamps.
2473 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
2474 (decode_time_components, lisp_seconds_argument): New functions.
2475 (make_time): Now static.
2476 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
2477 Report an error if the time is invalid, rather than having the caller
2478 do that.
2479
2480 * fileio.c: Include <stat-time.h>
2481 (Fcopy_file): Copy higher-resolution time stamps.
2482 Prefer to set the time stamp via a file descriptor if that works.
2483 (Fset_file_times, Finsert_file_contents, Fwrite_region)
2484 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
2485 (Fvisited_file_modtime, Fset_visited_file_modtime):
2486 Support higher-resolution time stamps.
2487
2488 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
2489
2490 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
2491
2492 * image.c (prepare_image_for_display, clear_image_cache)
2493 (lookup_image): Port to higer-resolution time stamps.
2494
2495 * keyboard.c (start_polling, bind_polling_period):
2496 Check for time stamp overflow.
2497 (read_char, kbd_buffer_get_event, timer_start_idle)
2498 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
2499 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
2500 Port to higher-resolution time stamps. Do not assume time_t is signed.
2501 (decode_timer): New function. Timers are now vectors of length 9,
2502 not 8, to accommodate the picosecond component.
2503 (timer_check_2): Use it.
2504
2505 * nsterm.m (select_timeout, timeval_subtract): Remove.
2506 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
2507 as they're a bit more accurate and handle overflow better.
2508 (ns_select): Change prototype to be compatible with pselect.
2509 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
2510 * nsterm.h (ns_select): Adjust prototype.
2511
2512 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
2513 us-resolution time stamps.
2514 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
2515
2516 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
2517
2518 * lisp.h (time_overflow): New decl.
2519 (wait_reading_process_output): First arg is now intmax_t, not int,
2520 to accommodate larger waits.
2521
2522 * process.h (struct Lisp_Process.read_output_delay):
2523 Now counts nanoseconds, not microseconds.
2524 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
2525 EMACS_HAS_USECS.
2526 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
2527 (wait_reading_process_output):
2528 Port to ns-resolution time stamps.
2529 (Faccept_process_output, wait_reading_process_output):
2530 Check for time stamp overflow. Do not assume time_t is signed.
2531 (select_wrapper): Remove; we now use pselect.
2532 (Fprocess_attributes): Now generates ns-resolution time stamps.
2533
2534 * sysdep.c: Include utimens.h. Don't include utime.h
2535 or worry about struct utimbuf; gnulib does that for us now.
2536 (gettimeofday): Remove; gnulib provides a substitute.
2537 (make_timeval): New function.
2538 (set_file_times): Now sets ns-resolution time stamps.
2539 New arg FD; all uses changed.
2540 (time_from_jiffies, ltime_from_jiffies, get_up_time)
2541 (system_process_attributes):
2542 Now returns ns-resolution time stamp. All uses changed.
2543 Check for time stamp overflow.
2544
2545 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
2546 provides a substitute now.
2547
2548 * systime.h: Include timespec.h rather than sys/time.h and time.h,
2549 since it guarantees struct timespec.
2550 (EMACS_TIME): Now struct timespec, so that we can support
2551 ns-resolution time stamps.
2552 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
2553 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
2554 (EMACS_USECS): Remove.
2555 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
2556 so multiply the arg by 1000 before storing it.
2557 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
2558 New macros.
2559 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
2560 Port to ns-resolution time stamps.
2561 (EMACS_TIME_NEG_P): Remove; replaced by....
2562 (EMACS_TIME_SIGN): New macro.
2563 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
2564 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
2565 (set_file_times, make_time, lisp_time_argument): Adjust signature.
2566 (make_timeval, make_lisp_time, decode_time_components): New decls.
2567 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
2568 that it mishandled time_t overflow. You can't compare by subtracting!
2569 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
2570 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
2571
2572 * term.c: Include <sys/time.h>.
2573 (timeval_to_Time): New function, for proper overflow wraparound.
2574 (term_mouse_position, term_mouse_click): Use it.
2575
2576 * undo.c (record_first_change): Support higher-resolution time stamps
2577 in the undo buffer.
2578 (Fprimitive_undo): Use them when restoring time stamps.
2579
2580 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
2581 (w32_get_internal_run_time):
2582 Port to higher-resolution Emacs time stamps.
2583 (ltime): Now accepts single 64-bit integer, as that's more convenient
2584 for callers.
2585
2586 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
2587
2588 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
2589 for compatibility with pselect. Support ns-resolution time stamps.
2590
2591 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
2592
2593 * xselect.c (wait_for_property_change, x_get_foreign_selection):
2594 Check for time stamp overflow, and support ns-resolution time stamps.
2595
2596 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
2597 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
2598 (timeval_subtract): Remove; no longer needed.
2599 (XTflash, XTring_bell, x_wait_for_event):
2600 Port to ns-resolution time stamps. Don't assume time_t is signed.
2601
b6a92dfe
CY
26022012-06-22 Chong Yidong <cyd@gnu.org>
2603
2604 * xdisp.c (x_consider_frame_title): Revert last change.
2605
d251c37c
EZ
26062012-06-22 Eli Zaretskii <eliz@gnu.org>
2607
2608 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
2609 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
2610 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
2611 staticidx goes up to 1597 out of 1600 = 0x640.)
2612
f10deafb
PE
26132012-06-20 Paul Eggert <eggert@cs.ucla.edu>
2614
2615 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
2616 Otherwise, the umask might be mistakenly 0 while handling input signals.
2617
ec6de1e2
SM
26182012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
2619
2620 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
2621
28be1ada
DA
26222012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
2623
2624 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
2625 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
2626 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
2627 access to `contents' member of Lisp_Vector objects with AREF and ASET
2628 where appropriate.
2629
c6bf3022
CY
26302012-06-19 Chong Yidong <cyd@gnu.org>
2631
2632 * frame.c (delete_frame): When selecting a frame on a different
2633 text terminal, do not alter the terminal's top-frame.
2634
2635 * xdisp.c (format_mode_line_unwind_data): Record the target
2636 frame's selected window and its terminal's top-frame.
2637 (unwind_format_mode_line): Restore them.
2638 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
2639 Callers changed.
2640 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
2641 since tty frames can be explicitly named.
2642 (prepare_menu_bars): Likewise.
2643
2644 * term.c (Ftty_top_frame): New function.
2645
defd4196
PE
26462012-06-18 Paul Eggert <eggert@cs.ucla.edu>
2647
2648 Port byte-code-meter to modern targets.
2649 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
2650 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 2651 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
2652 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
2653 (METER_1, METER_2): Simplify.
2654
1053a871
SM
26552012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
2656
2657 * data.c (Fdefalias): Return `symbol' (bug#11686).
2658
b7e8d081
MR
26592012-06-18 Martin Rudalics <rudalics@gmx.at>
2660
2661 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
2662 gets killed during executing of this function (Bug#11665).
2663 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
2664 (Vkill_buffer_query_functions): In doc-string say that functions
2665 run by this hook should not change the current buffer.
2666
7ea2b339
PE
26672012-06-18 Paul Eggert <eggert@cs.ucla.edu>
2668
2669 Fix recently-introduced process.c problems found by static checking.
2670 * process.c (write_queue_push, write_queue_pop, send_process):
2671 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
2672 (write_queue_pop): Fix pointer signedness problem.
2673 (send_process): Remove unused local.
2674
96a313a1
CY
26752012-06-17 Chong Yidong <cyd@gnu.org>
2676
2677 * xdisp.c (redisplay_internal): No need to redisplay terminal
2678 frames that are not on top.
2679
20ca2e94
TN
26802012-06-17 Troels Nielsen <bn.troels@gmail.com>
2681
2682 * process.c (make_process): Initialize write_queue.
2683 (write_queue_push, write_queue_pop): New functions.
2684 (send_process): Use them to maintain correct ordering of process
2685 writes (Bug#10815).
2686
9a900ca9
PE
26872012-06-17 Paul Eggert <eggert@cs.ucla.edu>
2688
310fbfa8
PE
2689 * lisp.h (eassert): Assume C89 or later.
2690 This removes the need for CHECK.
2691 (CHECK): Remove. Its comments about always evaluating its
2692 argument were confusing, as 'eassert' typically does not evaluate
2693 its argument.
2694
27bb1ca4
PE
2695 * coding.c (produce_chars): Use ptrdiff_t, not int.
2696
9a900ca9
PE
2697 * xterm.c (x_draw_underwave): Check for integer overflow.
2698 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
2699
41b7f8bc 27002012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
2701
2702 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
2703 referenced (Bug#11583).
2704
9b0e3eba
AA
27052012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
2706
2707 Implement wave-style variant of underlining.
2708 * dispextern.h (face_underline_type): New enum.
2709 (face): Add field for underline type.
2710 * nsterm.m (ns_draw_underwave): New function.
2711 (ns_draw_text_decoration): Use it.
2712 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
2713 New functions.
2714 (x_draw_glyph_string): Use them.
2715 * xfaces.c (Qline, Qwave): New Lisp objects.
2716 (check_lface_attrs, merge_face_ref)
1053a871
SM
2717 (Finternal_set_lisp_face_attribute, realize_x_face):
2718 Handle wave-style underline face attributes.
9b0e3eba
AA
2719 * xterm.c (x_draw_underwave): New function.
2720 (x_draw_glyph_string): Use it.
2721
0fb52f11
JB
27222012-06-16 Juanma Barranquero <lekktu@gmail.com>
2723
2724 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
2725 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
2726 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
2727 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
2728 ($(BLD)/w32select.$(O)): Update dependencies.
2729
e5560ff7
AS
27302012-06-16 Andreas Schwab <schwab@linux-m68k.org>
2731
2732 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
2733 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
2734 * character.c (_fetch_multibyte_char_p): Remove.
2735 * alloc.c: Include "character.h" before "buffer.h".
2736 * bidi.c: Likewise.
2737 * buffer.c: Likewise.
2738 * bytecode.c: Likewise.
2739 * callint.c: Likewise.
2740 * callproc.c: Likewise.
2741 * casefiddle.c: Likewise.
2742 * casetab.c: Likewise.
2743 * category.c: Likewise.
2744 * cmds.c: Likewise.
2745 * coding.c: Likewise.
2746 * composite.c: Likewise.
2747 * dired.c: Likewise.
2748 * dispnew.c: Likewise.
2749 * doc.c: Likewise.
2750 * dosfns.c: Likewise.
2751 * editfns.c: Likewise.
2752 * emacs.c: Likewise.
2753 * fileio.c: Likewise.
2754 * filelock.c: Likewise.
2755 * font.c: Likewise.
2756 * fontset.c: Likewise.
2757 * fringe.c: Likewise.
2758 * indent.c: Likewise.
2759 * insdel.c: Likewise.
2760 * intervals.c: Likewise.
2761 * keyboard.c: Likewise.
2762 * keymap.c: Likewise.
2763 * lread.c: Likewise.
2764 * macros.c: Likewise.
2765 * marker.c: Likewise.
2766 * minibuf.c: Likewise.
2767 * nsfns.m: Likewise.
2768 * nsmenu.m: Likewise.
2769 * print.c: Likewise.
2770 * process.c: Likewise.
2771 * regex.c: Likewise.
2772 * region-cache.c: Likewise.
2773 * search.c: Likewise.
2774 * syntax.c: Likewise.
2775 * term.c: Likewise.
2776 * textprop.c: Likewise.
2777 * undo.c: Likewise.
2778 * unexsol.c: Likewise.
2779 * w16select.c: Likewise.
2780 * w32fns.c: Likewise.
2781 * w32menu.c: Likewise.
2782 * window.c: Likewise.
2783 * xdisp.c: Likewise.
2784 * xfns.c: Likewise.
2785 * xmenu.c: Likewise.
2786 * xml.c: Likewise.
2787 * xselect.c: Likewise.
2788
2f07e6af
EZ
27892012-06-16 Eli Zaretskii <eliz@gnu.org>
2790
1053a871
SM
2791 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
2792 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 2793 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
2794 row.
2795 (handle_face_prop): Use chunk-relative overlay string index when
2796 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
2797 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
2798 the rightmost. (Bug#11720)
2f07e6af 2799
29b83cec
AS
28002012-06-16 Andreas Schwab <schwab@linux-m68k.org>
2801
2802 * category.h (CHAR_HAS_CATEGORY): Define as inline.
2803 (CATEGORY_MEMBER): Enforce 1/0 value.
2804 * category.c (_temp_category_set): Remove.
2805
4c5501e9
EZ
28062012-06-16 Eli Zaretskii <eliz@gnu.org>
2807
2808 * window.c (Fdelete_other_windows_internal)
2809 (Fdelete_window_internal): Don't access frame's mouse highlight
2810 info of the initial frame. (Bug#11677)
2811
2b570124
PE
28122012-06-14 Paul Eggert <eggert@cs.ucla.edu>
2813
e93864f9
PE
2814 * .gdbinit (xgetint): Fix recently-introduced paren typo.
2815 Assume USE_2_TAGS_FOR_INTS.
2816 (xreload): Adjust $tagmask width to match recent lisp.h change.
2817
2b570124
PE
2818 Simplify lisp.h in minor ways that should not affect code.
2819 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
2820 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
2821 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
2822 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
2823 (INTTYPEBITS): New macro, for clarity.
2824 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
2825 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
2826 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
2827 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
2828 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
2829
81755f69
JB
28302012-06-13 Juanma Barranquero <lekktu@gmail.com>
2831
2832 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
2833
16192a57
GM
28342012-06-13 Glenn Morris <rgm@gnu.org>
2835
2836 * s/bsd-common.h (BSD4_3):
2837 * s/usg5-4-common.h (USG5_4): No longer define; unused.
2838
646b5f55
AS
28392012-06-13 Andreas Schwab <schwab@linux-m68k.org>
2840
2841 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
2842 instead of union.
2843 (XLI, XIL): Define.
1053a871
SM
2844 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
2845 Use them.
2846 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 2847 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 2848 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
2849 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
2850 * frame.c (delete_frame): Remove outdated comment.
2851 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
2852 USE_LISP_UNION_TYPE.
2853 (Fw32_unregister_hot_key): Likewise.
2854 (Fw32_toggle_lock_key): Likewise.
2855 * w32menu.c (add_menu_item): Likewise.
2856 (w32_menu_display_help): Use XIL instead of checking
2857 USE_LISP_UNION_TYPE.
2858 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
2859 (init_heap): Likewise.
2860 * w32term.c (w32_read_socket): Update comment.
2861
1d3823c9
GM
28622012-06-13 Glenn Morris <rgm@gnu.org>
2863
c62ff706
GM
2864 * s/usg5-4-common.h, src/s/unixware.h:
2865 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
2866
1d3823c9
GM
2867 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
2868
bfe3e0a2
PE
28692012-06-13 Paul Eggert <eggert@cs.ucla.edu>
2870
2871 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
2872 * alloc.c (make_number) [!defined make_number]:
2873 Remove, as lisp.h always defines this now.
2874 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
2875 (roundup_size): Verify that it is a power of 2.
2876 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
2877 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
2878 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
2879 -DUSE_LSB_TAG=0, to override the automatically-selected default.
2880 USE_LSB_TAG now is always defined to be either 0 or 1.
2881 All uses changed.
2882 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
2883 code works fine either way, and efficiency is not a concern here,
2884 as the union type is for debugging, not for production.
2885 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
2886 Use an inline function on all platforms when using the union type,
2887 since this is simpler and 'static inline' can be used portably
2888 within Emacs now.
2889 (LISP_INITIALLY_ZERO): New macro.
2890 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
2891 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
2892
45fa9c0f
GM
28932012-06-12 Glenn Morris <rgm@gnu.org>
2894
b4492cba
GM
2895 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
2896
2897 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 2898
45fa9c0f
GM
2899 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
2900 Move BROKEN_SIGIO to configure.
2901
2902 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
2903 Move NO_TERMIO to configure.
2904
0e25d334
CY
29052012-06-12 Chong Yidong <cyd@gnu.org>
2906
2907 * image.c (imagemagick_load_image): Use MagickFlattenImage if
2908 MagickMergeImageLayers is undefined. Use pixel pusher loop if
2909 MagickExportImagePixels is undefined.
2910
43682bb6
PE
29112012-06-12 Paul Eggert <eggert@cs.ucla.edu>
2912
2913 * image.c (imagemagick_load_image): Remove unused label.
2914
a9be7d2b
GM
29152012-06-11 Glenn Morris <rgm@gnu.org>
2916
2917 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
2918 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
2919 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
2920 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
2921
3017f87f
SM
29222012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
2923
2924 * alloc.c (make_byte_code): New function.
2925 (Fmake_byte_code): Use it. Don't purify here.
2926 * lread.c (read1): Use it as well to avoid extra allocation.
2927
1b9b4cf4
CY
29282012-06-11 Chong Yidong <cyd@gnu.org>
2929
2930 * image.c (imagemagick_load_image): Implement transparency.
2931
95988fcf
AS
29322012-06-10 Andreas Schwab <schwab@linux-m68k.org>
2933
2934 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
2935 account for preceding backslashes. (Bug#11663)
2936
cd4eb164
CY
29372012-06-09 Chong Yidong <cyd@gnu.org>
2938
2939 * term.c: Support italics in capable terminals (Bug#9652).
2940 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
2941 (turn_on_face): Output using TS_enter_italic_mode if available.
2942 Don't handle unused blinking and alt-charset cases.
2943 (turn_off_face): Handle italic case; discard unused tty_blinking_p
2944 and tty_alt_charset_p cases.
2945 (tty_capable_p, init_tty): Support italics.
2946
2947 * termchar.h (struct tty_display_info): Add field for italics.
2948 Remove unused blink field.
2949
2950 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
2951 Handle slant.
2952
2953 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
2954 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
2955 tty_alt_charset_p. Add tty_italic_p.
2956
ff88beb8
MA
29572012-06-09 Michael Albinus <michael.albinus@gmx.de>
2958
2959 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
2960 dbus_type_is_basic if available.
2961 (xd_extract_signed, xd_extract_unsigned): Rename from
2962 extract_signed and extract_unsigned, respectively. Adapt callers.
2963
44286096
CY
29642012-06-09 Chong Yidong <cyd@gnu.org>
2965
1682701f
CY
2966 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
2967
44286096
CY
2968 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
2969 case (Bug#9752).
2970
d86feb17
PE
29712012-06-08 Paul Eggert <eggert@cs.ucla.edu>
2972
2973 * xdisp.c (vmessage): Treat frame message as multibyte.
2974 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
2975 would generate the diagnostic "Making \302\247 buffer-local while
2976 let-bound!".
2977
d5c20fe8
EZ
29782012-06-08 Eli Zaretskii <eliz@gnu.org>
2979
2980 * dispnew.c (showing_window_margins_p): Undo last change, which
2981 was done due to an inadvertent commit.
2982 (adjust_frame_glyphs_for_frame_redisplay): Do call
2983 showing_window_margins_p.
2984
513749ee
SM
29852012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
2986
2987 * eval.c (Fmake_var_non_special): New primitive.
2988 (syms_of_eval): Defsubr it.
2989 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
2990
d4a8f5c1
JB
29912012-06-08 Juanma Barranquero <lekktu@gmail.com>
2992
2993 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
2994 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
2995
8bbbc977
EZ
29962012-06-08 Eli Zaretskii <eliz@gnu.org>
2997
2998 * alloc.c (allocate_vectorlike): Fix last change.
2999
f3372c87
DA
30002012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
3001
3002 Block-based vector allocation of small vectors.
3003 * lisp.h (struct vectorlike_header): New field `nbytes',
3004 adjust comment accordingly.
3005 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
3006 to denote vector blocks. Adjust users (live_vector_p,
3007 mark_maybe_pointer, valid_lisp_object_p) accordingly.
3008 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
3009 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
3010 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
3011 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
3012 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
3013 (roundup_size): New constant.
3014 (struct vector_block): New data type.
3015 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 3016 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
3017 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
3018 (sweep_vectors): New functions.
3019 (allocate_vectorlike): Return `zero_vector' as the only vector of
3020 0 items. Allocate new vector from block if vector size is less than
3021 or equal to VBLOCK_BYTES_MAX.
3022 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
3023 (init_alloc_once): Add call to init_vectors.
3024
4f18a4ed
SM
30252012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
3026
3027 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
3028
86f158bc
PE
30292012-06-07 Paul Eggert <eggert@cs.ucla.edu>
3030
3031 * doprnt.c (doprnt): Truncate multibyte char correctly.
3032 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
3033 would mishandle a string argument "Xc" if X was a multibyte
3034 character of length 2: it would truncate after X's first byte
3035 rather than including all of X.
3036
c5cfcbe0
CY
30372012-06-06 Chong Yidong <cyd@gnu.org>
3038
3039 * buffer.c (word_wrap): Doc fix.
3040
c05cf390
PE
30412012-06-04 Paul Eggert <eggert@cs.ucla.edu>
3042
3043 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
3044
0c3461de
GM
30452012-06-03 Glenn Morris <rgm@gnu.org>
3046
3047 * xdisp.c (tool-bar-style): Doc fix.
3048
c71232db
UM
30492012-06-03 Ulrich Müller <ulm@gentoo.org>
3050
3051 * Makefile.in (PAXCTL): Define.
3052 (temacs$(EXEEXT)): Disable memory randomization for the temacs
3053 binary via PaX flags if the paxctl utility is available.
3054 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
3055 Restore PaX flags to their default. (Bug#11398)
3056
383f7350
CY
30572012-06-03 Chong Yidong <cyd@gnu.org>
3058
3059 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
3060 buffer (Bug#11226).
3061
5f2c76c6
CY
30622012-06-03 Chong Yidong <cyd@gnu.org>
3063
3064 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
3065 (note_mode_line_or_margin_highlight): If there is no help echo,
3066 use mode-line-default-help-echo. Handle the case where the mouse
3067 position is past the end of the mode line string.
3068
3069 * buffer.c (buffer_local_value_1): New function, split from
3070 Fbuffer_local_value; can return Qunbound.
3071 (Fbuffer_local_value): Use it.
3072 (Vmode_line_format): Docstring tweaks.
3073
773d47f6
PE
30742012-06-02 Paul Eggert <eggert@cs.ucla.edu>
3075
3076 * sysdep.c (system_process_attributes): Improve comment.
3077
f2d6a3df
SM
30782012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
3079
3080 * keyboard.c: Export real-this-command to Elisp.
3081 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
3082 and DEFVAR it. Update all users.
3083
63810350
PE
30842012-06-02 Paul Eggert <eggert@cs.ucla.edu>
3085
7bd5c1f4
PE
3086 * minibuf.c (Fassoc_string): Remove duplicate declaration.
3087
63810350
PE
3088 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
3089 Convert pctcpu and pctmem to Lisp float properly.
3090 Let the compiler fold better, as 100.0/0x8000 is exact.
3091
a2821611
AS
30922012-06-02 Andreas Schwab <schwab@linux-m68k.org>
3093
3094 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
3095 cons_block.
3096
5fceba1d
PE
30972012-06-01 Paul Eggert <eggert@cs.ucla.edu>
3098
3099 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
3100
c98ff5dd
DA
31012012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
3102
3103 For a 'struct window', replace some Lisp_Object fields to
3104 bitfields where appropriate, remove unused fields.
3105 * window.h (struct window): Remove unused 'last_mark_x' and
3106 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
3107 change it's type from Lisp_Object to bitfield.
3108 Change type of 'force_start', 'optional_new_start',
3109 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
3110 fields from Lisp_Object to bitfield. Adjust users accordingly.
3111
ca34e0be
PE
31122012-05-31 Paul Eggert <eggert@cs.ucla.edu>
3113
3114 Pacify gcc -Wdouble-precision when using Xaw.
3115 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
3116 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
3117 Use 'float' consistently, rather than 'float' in most places
3118 and 'double' in a couple of places.
3119
efc00ab1 31202012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
3121
3122 * xdisp.c (handle_stop): Detect whether we have overlay strings
3123 loaded by testing it->current.overlay_string_index to be
3124 non-negative, instead of checking whether n_overlay_strings is
3125 positive. (Bug#11587)
3126
efc00ab1 31272012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
3128
3129 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
3130
3131 * doc.c (Fsubstitute_command_keys): Doc fix.
3132
efc00ab1 31332012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
3134
3135 * search.c (search_buffer): Remove calls to
3136 r_alloc_inhibit_buffer_relocation, as it is now called by
3137 maybe_unify_char, which was the cause of relocation of buffer text
3138 in bug#11519.
3139
efc00ab1 31402012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
3141
3142 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
3143 for the duration of call to load_charset, to avoid problems with
3144 callers of maybe_unify_char that access buffer text through C
3145 pointers.
3146
3147 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
3148 decrement the inhibition flag, instead of just setting or
3149 resetting it.
3150
ba93a187
PE
31512012-05-31 Paul Eggert <eggert@cs.ucla.edu>
3152
3153 Remove obsolete '#define static' cruft.
3154 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
3155 This #undef was "temporary" in 2000; it is no longer needed
3156 now that '#define static' has gone away.
3157 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
3158 (gray_bitmap_bits): Remove; no longer needed.
3159 All uses replaced with definiens.
3160 * xterm.c: Include "bitmaps/gray.xbm".
3161
9e4bf381
PE
31622012-05-30 Paul Eggert <eggert@cs.ucla.edu>
3163
3164 Clean up __executable_start, monstartup when --enable-profiling.
3165 The following changes affect the code only when profiling.
3166 * dispnew.c (__executable_start): Rename from safe_bcopy.
3167 Define only on platforms that need it.
3168 * emacs.c: Include <sys/gmon.h> when profiling.
3169 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
3170 (__executable_start): Remove decl, since lisp.h does it now.
3171 (safe_bcopy): Remove decl; no longer has that name.
3172 (main): Coalesce #if into single bit of code, for simplicity.
3173 Cast pointers to uintptr_t, since standard libraries want integers
3174 and not pointers.
3175 * lisp.h (__executable_start): New decl.
3176
32d72c2f
GM
31772012-05-31 Glenn Morris <rgm@gnu.org>
3178
3179 * image.c (Fimagemagick_types): Doc fix.
3180
baac5bc7
JM
31812012-05-30 Jim Meyering <meyering@redhat.com>
3182
3183 * callproc.c (Fcall_process_region): Include directory component
3184 in mkstemp error message (Bug#11586).
3185
72cb32cf
PE
31862012-05-30 Paul Eggert <eggert@cs.ucla.edu>
3187
3188 * alloc.c, lisp.h (make_pure_vector): Now static.
3189
61b108cc
SM
31902012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
3191
3192 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
3193 Move to byte-run.el.
3194 (Fautoload): Do the hash-doc more carefully.
3195 * data.c (Fdefalias): Purify definition, except for keymaps.
3196 (Qdefun): Move from eval.c.
3197 * lisp.h (Qdefun): Remove.
3198 * lread.c (read1): Tiny simplification.
3199
471fe23d
TN
32002012-05-29 Troels Nielsen <bn.troels@gmail.com>
3201
934f3f58 3202 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
3203 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
3204 Bug#9642, but explicitly check that the buffer the overlay would
3205 be moved to is live and rearrange lines to make sure that errors
3206 will not put the overlay in an inconsistent state.
3207 (Fdelete_overlay): Cosmetics.
3208
85d0efd1
EZ
32092012-05-28 Eli Zaretskii <eliz@gnu.org>
3210
3211 * w32term.c (my_bring_window_to_top): New function.
3212 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
3213 could be different from the original one.
3214 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
3215 (Bug#11513)
3216
3217 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
3218 by calling BringWindowToTop.
3219
3220 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
3221 (WM_EMACS_END): Increase by one.
3222
da92a98c
PE
32232012-05-28 Paul Eggert <eggert@cs.ucla.edu>
3224
3225 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
3226 This avoids undefined behavior that might cause the eassert
3227 to not catch an out-of-range value.
3228
74d1f848
JB
32292012-05-28 Juanma Barranquero <lekktu@gmail.com>
3230
3231 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
3232 Update dependencies.
3233
9e1a06fc
EZ
32342012-05-27 Eli Zaretskii <eliz@gnu.org>
3235
3236 * bidi.c (bidi_mirror_char): Fix last change.
3237
f3dd7312
AS
32382012-05-27 Andreas Schwab <schwab@linux-m68k.org>
3239
3240 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
3241 when referring to sectname field in printf format.
3242
81899c91
PE
32432012-05-27 Paul Eggert <eggert@cs.ucla.edu>
3244
57b81a9f
PE
3245 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
3246 Only r_alloc_inhibit_buffer_relocation needed to be added;
3247 the others were already declared.
3248
81899c91
PE
3249 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
3250 before checking whether it's out of range. Put the check inside
3251 eassert. See
3252 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
3253
33017faf 32542012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
3255
3256 * callproc.c (Fcall_process): Restore a line that was accidentally
3257 commented out in the 2011-02-13 change (bug#11547).
3258
33017faf 32592012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
3260
3261 * lisp.h [REL_ALLOC]: Add prototypes for external functions
3262 defined on ralloc.c.
3263
3264 * buffer.c [REL_ALLOC]: Remove prototypes of
3265 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
3266 they are now on lisp.h.
3267
3268 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
3269
3270 * search.c (search_buffer): Use it to inhibit relocation of buffer
3271 text while re_search_2 is doing its job, because re_search_2 is
3272 passed C pointers to buffer text. (Bug#11519)
3273
23415acf
EZ
3274 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
3275 Update value to 24.
3276
44e27368
EZ
3277 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
3278 state after an additional call to move_it_in_display_line_to, keep
3279 the values of it->max_ascent and it->max_descent found for the
3280 entire line.
3281 (pos_visible_p): Revert the comparison against bottom_y to what it
3282 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
3283 (Bug#11464)
3284
c1892f11
PE
32852012-05-26 Paul Eggert <eggert@cs.ucla.edu>
3286
3287 Fix coding-related core dumps with gcc -ftrapv.
3288 The code was computing A - B, where A and B are pointers, and B is
3289 random garbage. This can lead to core dumps on platforms that
3290 have special pointer registers, and it also leads to core dumps on
3291 x86-64 when compiled with gcc -ftrapv. The fix is to compute
3292 A - B only when B is initialized properly.
3293 * coding.c (coding_set_source, coding_set_destination): Return void.
3294 (coding_change_source, coding_change_destinations): New functions,
3295 with the old behaviors of coding_set_source and coding_set_destination.
3296 All callers that need an offset changed to use these new functions.
3297
eb7afdad
GM
32982012-05-26 Glenn Morris <rgm@gnu.org>
3299
3300 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
3301
f12fdf02
EZ
33022012-05-26 Eli Zaretskii <eliz@gnu.org>
3303
53a63be6 3304 Extend mouse support on W32 text-mode console.
61b108cc
SM
3305 * xdisp.c (draw_row_with_mouse_face):
3306 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 3307
eb3f6f01 3308 * w32console.c: Include window.h.
61b108cc
SM
3309 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
3310 New functions.
eb3f6f01
EZ
3311 (initialize_w32_display): Initialize mouse-highlight data.
3312
53a63be6
EZ
3313 * w32inevt.c: Include termchar.h and window.h.
3314 (do_mouse_event): Support mouse-autoselect-window. When the mouse
3315 moves, call note_mouse_highlight. If help_echo changed, call
3316 gen_help_event to produce help-echo message in the echo area.
3317 Call clear_mouse_face if mouse_face_hidden is set in the mouse
3318 highlight info.
3319
4cfd81f6
PE
33202012-05-26 Paul Eggert <eggert@cs.ucla.edu>
3321
3322 * lread.c (read1): Simplify slightly to avoid an overflow warning
3323 with GCC 4.7.0 on x86-64.
3324
4446092a
EZ
33252012-05-26 Eli Zaretskii <eliz@gnu.org>
3326
3327 * bidi.c (bidi_mirror_char): Revert last change: an int is
3328 definitely wide enough here.
3329
42b2a986 33302012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 3331
42b2a986 3332 Fix integer width and related bugs (Bug#9874).
eb106a49 3333 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
3334 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
3335 (string_bytes, check_sblock, allocate_string_data):
3336 (compact_small_strings, Fmake_bool_vector, make_string)
3337 (make_unibyte_string, make_multibyte_string)
3338 (make_string_from_bytes, make_specified_string)
3339 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
3340 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
3341 (mark_vectorlike):
3342 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3343 (allocate_pseudovector):
3344 Use int, not EMACS_INT, where int is wide enough.
3345 (inhibit_garbage_collection, Fgarbage_collect):
3346 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3347 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
3348 int might not be wide enough.
3349 (bidi_cache_search, bidi_cache_find, bidi_init_it)
3350 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
3351 (bidi_at_paragraph_end, bidi_find_paragraph_start)
3352 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
3353 (bidi_level_of_next_char, bidi_move_to_visually_next):
3354 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3355 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
3356 (Fkill_buffer, Fset_buffer_major_mode)
3357 (advance_to_char_boundary, Fbuffer_swap_text)
3358 (Fset_buffer_multibyte, overlays_at, overlays_in)
3359 (overlay_touches_p, struct sortvec, record_overlay_string)
3360 (overlay_strings, recenter_overlay_lists)
3361 (adjust_overlays_for_insert, adjust_overlays_for_delete)
3362 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
3363 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
3364 (Foverlay_recenter, last_overlay_modification_hooks_used)
3365 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
3366 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
3367 (validate_region): Omit unnecessary test for b <= e,
3368 since that's guaranteed by the previous test.
d311d28c
PE
3369 (adjust_overlays_for_delete): Avoid pos + length overflow.
3370 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
3371 (report_overlay_modification):
3372 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3373 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
3374 Omit pointer cast, which isn't needed anyway, and doesn't work
3375 after the EMACS_INT -> ptrdiff_t change.
02481186 3376 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
3377 * buffer.h: Adjust decls to match defn changes elsewhere.
3378 (struct buffer_text, struct buffer):
3379 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3380 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
3381 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
3382 not int, to avoid needless 32-bit limit on 64-bit hosts.
3383 (exec_byte_code): Use tighter memory-full test, one that checks
3384 for alloca overflow. Don't compute the address of the object just
3385 before an array, as that's not portable. Use EMACS_INT, not
3386 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
3387 * callint.c (Fcall_interactively):
3388 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3389 * callproc.c (call_process_kill, Fcall_process):
3390 Don't assume pid_t fits into an Emacs fixnum.
3391 (call_process_cleanup, Fcall_process, child_setup):
3392 Don't assume pid_t fits into int.
3393 (call_process_cleanup, Fcall_process, delete_temp_file)
3394 (Fcall_process_region):
3395 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3396 (Fcall_process): Simplify handling of volatile integers.
3397 Use int, not EMACS_INT, where int will do.
3398 * casefiddle.c (casify_object, casify_region, operate_on_word)
3399 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
3400 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3401 (casify_object): Avoid integer overflow when overallocating buffer.
3402 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 3403 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
3404 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
3405 * category.h (CATEGORYP): Don't assume arg is nonnegative.
3406 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
3407 integers are now checked earlier. All uses replaced with XINT.
3408 (ccl_driver):
3409 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3410 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
3411 (ccl_driver, Fregister_code_conversion_map):
3412 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
3413 (resolve_symbol_ccl_program): Check that vector header is in range.
3414 Always copy the vector, so that we can check its contents reliably
3415 now rather than having to recheck each instruction as it's being
3416 executed. Check that vector words fit in 'int'.
3417 (ccl_get_compiled_code, Fregister_ccl_program)
3418 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
3419 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
3420 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
3421 contents are in range.
3422 (Fccl_execute_on_string): Check that status is in range.
3423 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
3424 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
3425 Accept and return EMACS_INT, not int, because callers can pass values
3426 out of 'int' range.
3427 (c_string_width, strwidth, lisp_string_width, chars_in_text)
3428 (multibyte_chars_in_text, parse_str_as_multibyte)
3429 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
3430 (str_as_unibyte, str_to_unibyte, string_count_byte8)
3431 (string_escape_byte8, Fget_byte):
3432 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 3433 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
3434 avoid mishandling large integers.
3435 * character.h: Adjust decls to match defn changes elsewhere.
3436 * charset.c (load_charset_map_from_file, find_charsets_in_text)
3437 (Ffind_charset_region):
3438 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3439 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
3440 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 3441 Don't assume fixnum fits in int.
d311d28c
PE
3442 (load_charset_map_from_vector, Fmap_charset_chars):
3443 Remove now-unnecessary CHECK_NATNUMs.
3444 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
3445 Don't rely on undefined behavior with signed left shift overflow.
3446 Don't assume unsigned int fits into fixnum, or that fixnum fits
3447 into unsigned int. Don't require max_code to be a valid fixnum;
3448 that's not true for gb10830 4-byte on a 32-bit host. Allow
3449 invalid_code to be a cons, for the same reason. Require code_offset
3450 to be a character. Avoid int overflow if max_char is close
3451 to INT_MAX.
3452 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
3453 this is intended anyway and avoids some undefined behavior.
3454 (load_charset_map): Pass unsigned, not int, as 2nd arg of
3455 INDEX_TO_CODE_POINT, as that's what it expects.
3456 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
3457 * charset.h (DECODE_CHAR): Return int, not unsigned;
3458 this is what was intended anyway, and it avoids undefined behavior.
3459 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
3460 integer-overflow issues.
3461 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
3462 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
3463 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
3464 * chartab.c (Fmake_char_table, Fset_char_table_range)
3465 (uniprop_get_decoder, uniprop_get_encoder):
3466 Don't assume fixnum fits in int.
3467 * cmds.c (move_point): New function, that does the gist of
3468 Fforward_char and Fbackward_char, but does so while checking
3469 for integer overflow more accurately.
c96e5d6a 3470 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
3471 (Fforward_line, Fend_of_line, internal_self_insert)
3472 (internal_self_insert):
3473 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3474 Fix a FIXME, by checking for integer overflow when calculating
3475 target_clm and actual_clm.
3476 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 3477 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
3478 (ASSURE_DESTINATION, coding_alloc_by_realloc)
3479 (coding_alloc_by_making_gap, alloc_destination)
3480 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
3481 (encode_coding_utf_16, detect_coding_emacs_mule)
3482 (decode_coding_emacs_mule, encode_coding_emacs_mule)
3483 (detect_coding_iso_2022, decode_coding_iso_2022)
3484 (encode_invocation_designation, encode_designation_at_bol)
3485 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
3486 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
3487 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
3488 (encode_coding_ccl, encode_coding_raw_text)
3489 (detect_coding_charset, decode_coding_charset)
3490 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
3491 (produce_composition, produce_charset, produce_annotation)
3492 (decode_coding, handle_composition_annotation)
3493 (handle_charset_annotation, consume_chars, decode_coding_gap)
3494 (decode_coding_object, encode_coding_object, detect_coding_system)
3495 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
3496 (code_convert_region, code_convert_string)
8f50130c
PE
3497 (Fdefine_coding_system_internal)
3498 (coding_set_source, coding_set_destination):
d311d28c
PE
3499 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3500 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
3501 (Fdefine_coding_system_internal):
3502 Don't assume fixnums fit in int.
3503 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 3504 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
3505 (Funencodable_char_position, Fcheck_coding_systems_region)
3506 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 3507 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 3508 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 3509 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 3510 Don't access memory outside of the args array.
d311d28c 3511 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
3512 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
3513 result of ENCODE_CHAR.
d311d28c
PE
3514 * coding.h: Adjust decls to match defn changes elsewhere.
3515 (struct coding_system):
3516 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3517 * composite.c (get_composition_id, find_composition)
3518 (run_composition_function, update_compositions)
3519 (compose_text, composition_gstring_put_cache)
3520 (composition_gstring_p, composition_gstring_width)
3521 (fill_gstring_header, fill_gstring_body, autocmp_chars)
3522 (composition_compute_stop_pos, composition_reseat_it)
3523 (composition_update_it, struct position_record)
3524 (find_automatic_composition, composition_adjust_point)
3525 (Fcomposition_get_gstring, Ffind_composition_internal):
3526 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3527 (update_compositions):
3528 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3529 * composite.h: Adjust decls to match defn changes elsewhere.
3530 (struct composition):
3531 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3532 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
3533 Do not attempt to compute the address of the object just before a
3534 buffer; this is not portable.
3535 (Faref, Faset):
3536 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3537 (Faset): Use int, not EMACS_INT, where int is wide enough.
3538 (Fstring_to_number): Don't assume fixnums fit in int.
3539 (Frem): Don't assume arg is nonnegative.
3540 * dbusbind.c (xd_append_arg): Check for integers out of range.
3541 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 3542 (extract_signed, extract_unsigned): New functions.
243e0530
PE
3543 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
3544 (xd_get_connection_references): Return ptrdiff_t, not int.
3545 All uses changed.
3546 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
3547 (xd_read_message_1):
3548 Use int, not unsigned, where the dbus API uses int.
3549 (Fdbus_message_internal): Don't overflow mtype.
3550 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
3551 * dired.c (directory_files_internal, file_name_completion, scmp)
3552 (file_name_completion_stat):
3553 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3554 (file_name_completion): Don't overflow matchcount.
3555 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
3556 * dispextern.h: Adjust decls to match defn changes elsewhere.
3557 (struct text_pos, struct glyph, struct bidi_saved_info)
3558 (struct bidi_string_data, struct bidi_it, struct composition_it)
3559 (struct it):
3560 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3561 (struct display_pos, struct composition_it, struct it):
3562 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3563 * dispnew.c (increment_matrix_positions)
3564 (increment_row_positions, mode_line_string)
3565 (marginal_area_string):
3566 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 3567 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
3568 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3569 (duration_to_sec_usec): New function, to check for overflow better.
3570 (Fsleep_for, sit_for): Use it.
3571 * doc.c (get_doc_string, store_function_docstring):
3572 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3573 (get_doc_string, Fsnarf_documentation):
3574 Use int, not EMACS_INT, where int is wide enough.
3575 (get_doc_string):
3576 Use SAFE_ALLOCA, not alloca.
3577 Check for overflow when converting EMACS_INT to off_t.
3578 * doprnt.c (doprnt):
3579 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3580 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
3581 Don't assume uid_t fits into fixnum.
3582 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
3583 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
3584 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
3585 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
3586 (general_insert_function)
3587 (Finsert_char, make_buffer_string, make_buffer_string_both)
3588 (update_buffer_properties, Fbuffer_substring)
3589 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
3590 (Fsubst_char_in_region, check_translation)
3591 (Ftranslate_region_internal, save_restriction_restore, Fformat)
3592 (transpose_markers, Ftranspose_regions):
3593 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3594 (clip_to_bounds): Move to lisp.h as an inline function).
3595 (Fconstrain_to_field): Don't assume integers are nonnegative.
3596 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
3597 (Fsubst_char_in_region, Fsave_restriction):
3598 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3599 (Femacs_pid): Don't assume pid_t fits into fixnum.
3600 (lo_time): Use int, not EMACS_INT, when int suffices.
3601 (lisp_time_argument): Check for usec out of range.
3602 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
3603 (Fuser_login_name, Fuser_full_name): Signal an error
3604 if a uid argument is out of range, rather than relying on
3605 undefined behavior.
c8d5c857
PE
3606 (Fformat_time_string): Remove now-unnecessary check.
3607 lisp_time_argument checks for out-of-range usec now.
243e0530 3608 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
3609 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
3610 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
3611 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
3612 (init_cmdargs, Fdump_emacs):
3613 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3614 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
3615 the bottom (typically) 32 bits of the fixnum.
3616 * eval.c (specpdl_size, call_debugger):
3617 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3618 (when_entered_debugger, Fbacktrace_debug):
3619 Don't assume fixnum can fit in int.
3620 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
3621 the object just before a buffer; this is not portable.
3622 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
3623 (grow_specpdl, unbind_to):
3624 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3625 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
3626 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 3627 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
3628 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
3629 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
3630 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3631 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
3632 (a_write, e_write):
3633 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3634 (Fcopy_file, non_regular_nbytes, read_non_regular)
3635 (Finsert_file_contents):
3636 Use int, not EMACS_INT, where int is wide enough.
3637 (READ_BUF_SIZE): Verify that it fits in int.
3638 (Finsert_file_contents): Check that counts are in proper range,
3639 rather than assuming fixnums fit into ptrdiff_t etc.
3640 Don't assume fixnums fit into int.
125b3835 3641 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
3642 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
3643 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
3644 (string_char_to_byte, string_byte_to_char)
3645 (string_make_multibyte, string_to_multibyte)
3646 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
3647 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
3648 (substring_both, Fdelete, internal_equal, Ffillarray)
3649 (Fclear_string, mapcar1)
3650 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
3651 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
3652 (larger_vector, make_hash_table, maybe_resize_hash_table)
3653 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
3654 (Fmaphash, secure_hash):
3655 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3656 (concat): Check for string index and length overflow.
3657 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
3658 (Frequire):
3659 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3660 (larger_vector): New API (vec, incr_min, size_max) replaces old
3661 one (vec, new_size, init). This catches size overflow.
3662 INIT was removed because it was always Qnil.
3663 All callers changed.
3664 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
3665 the upper bound on a hash table index size.
3666 (make_hash_table, maybe_resize_hash_table): Use it.
3667 (secure_hash): Computer start_byte and end_byte only after
3668 they're known to be in ptrdiff_t range.
3669 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
3670 (Ffont_get_glyphs, Ffont_at):
3671 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3672 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
3673 (Flist_fonts, Fopen_font):
3674 Don't assume fixnum can fit in int.
3675 (check_gstring): Don't assume index can fit in int.
3676 (font_match_p): Check that fixnum is a character, not a nonnegative
3677 fixnum, since the later code needs to stuff it into an int.
3678 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
3679 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
3680 conversion overflow issues.
3681 (Fopen_font): Check for integer out of range.
3682 (Ffont_get_glyphs): Don't assume index can fit in int.
3683 * font.h: Adjust decls to match defn changes elsewhere.
3684 * fontset.c (reorder_font_vector): Redo score calculation to avoid
3685 integer overflow.
3686 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
3687 printmax_t, where ptrdiff_t is wide enough.
3688 (Finternal_char_font):
3689 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3690 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
3691 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
3692 (Fset_frame_position, x_set_frame_parameters)
3693 (x_set_line_spacing, x_set_border_width)
3694 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
3695 Check that fixnums are in proper range for system types.
3696 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
3697 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3698 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
3699 Use SAFE_ALLOCA_LISP, not alloca.
3700 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
3701 intptr_t is wide enough.
3702 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
3703 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
3704 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
3705 Check for fixnum out of range.
3706 * ftfont.c (ftfont_list): Don't assume index fits in int.
3707 Check that fixnums are in proper range for system types.
3708 (ftfont_shape_by_flt):
3709 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
3710 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
3711 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3712 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
3713 Check that fixnums are in proper range for system types.
3714 * gnutls.h: Adjust decls to match defn changes elsewhere.
3715 * gtkutil.c (xg_dialog_run):
3716 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3717 (update_frame_tool_bar):
3718 Check that fixnums are in proper range for system types.
3719 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 3720 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
3721 * indent.c (last_known_column, last_known_column_point):
3722 (current_column_bol_cache):
3723 (skip_invisible, current_column, check_display_width):
3724 (check_display_width, scan_for_column, current_column_1)
3725 (Findent_to, Fcurrent_indentation, position_indentation)
3726 (indented_beyond_p, Fmove_to_column, compute_motion):
3727 (Fcompute_motion, Fvertical_motion):
3728 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3729 (last_known_column_modified): Use EMACS_INT, not int.
3730 (check_display_width):
3731 (Fcompute_motion):
3732 Check that fixnums and floats are in proper range for system types.
3733 (compute_motion): Don't assume index or fixnum fits in int.
3734 (compute_motion, Fcompute_motion):
3735 Use int, not EMACS_INT, when it is wide enough.
3736 (vmotion): Omit local var start_hpos that is always 0; that way
3737 we don't need to worry about overflow in expressions involving it.
3738 * indent.h: Adjust decls to match defn changes elsewhere.
3739 (struct position):
3740 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3741 Use int, not EMACS_INT, where int is wide enough.
3742 Remove unused members ovstring_chars_done and tab_offset;
3743 all uses removed.
3744 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
3745 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
3746 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
3747 (make_gap, copy_text, insert, insert_and_inherit)
3748 (insert_before_markers, insert_before_markers_and_inherit)
3749 (insert_1, count_combining_before, count_combining_after)
3750 (insert_1_both, insert_from_string)
3751 (insert_from_string_before_markers, insert_from_string_1)
3752 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
3753 (adjust_after_replace, adjust_after_insert, replace_range)
3754 (replace_range_2, del_range, del_range_1, del_range_byte)
3755 (del_range_both, del_range_2, modify_region)
3756 (prepare_to_modify_buffer, signal_before_change)
3757 (signal_after_change, Fcombine_after_change_execute):
3758 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3759 * intervals.c (traverse_intervals, rotate_right, rotate_left)
3760 (balance_an_interval, split_interval_right, split_interval_left)
3761 (find_interval, next_interval, update_interval)
3762 (adjust_intervals_for_insertion, delete_node, delete_interval)
3763 (interval_deletion_adjustment, adjust_intervals_for_deletion)
3764 (static_offset_intervals, offset_intervals)
3765 (merge_interval_right, merge_interval_left, make_new_interval)
3766 (graft_intervals_into_buffer, temp_set_point_both)
3767 (temp_set_point, set_point, adjust_for_invis_intang)
3768 (set_point_both, move_if_not_intangible, get_property_and_range)
3769 (get_local_map, copy_intervals, copy_intervals_to_string)
3770 (compare_string_intervals, set_intervals_multibyte_1):
3771 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3772 * intervals.h: Adjust decls to match defn changes elsewhere.
3773 (struct interval):
3774 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3775 * keyboard.c (this_command_key_count, this_single_command_key_start)
3776 (before_command_key_count, before_command_echo_length, echo_now)
3777 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
3778 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
3779 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
3780 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
3781 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3782 (last_non_minibuf_size, last_point_position, echo_truncate)
3783 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
3784 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
3785 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
3786 (stuff_buffered_input):
3787 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3788 (last_auto_save, command_loop_1, read_char):
3789 Use EMACS_INT, not int, to avoid integer overflow.
3790 (record_char): Avoid overflow in total_keys computation.
3791 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
3792 * keyboard.h: Adjust decls to match defn changes elsewhere.
3793 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
3794 (Fkey_description, Fdescribe_vector, Flookup_key):
3795 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3796 (click_position): New function, to check that positions are in range.
3797 (Fcurrent_active_maps):
3798 (describe_command):
3799 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3800 (Faccessible_keymaps, Fkey_description):
3801 (preferred_sequence_p):
3802 Don't assume fixnum can fit into int.
3803 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
3804 Check for integer overflow in size calculations.
3805 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
3806 avoid mishandling large integers.
3807 * lisp.h: Adjust decls to match defn changes elsewhere.
3808 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
3809 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
3810 (struct Lisp_Marker):
3811 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3812 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
3813 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
3814 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
3815 All callers changed.
3816 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
3817 Assume the arg has valid form, since it always does.
3818 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
3819 unsigned integer system type.
3820 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
3821 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
3822 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3823 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
3824 (duration_to_sec_usec): New decl.
3825 * lread.c (read_from_string_index, read_from_string_index_byte)
3826 (read_from_string_limit, readchar, unreadchar, openp)
3827 (read_internal_start, read1, oblookup):
3828 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3829 (Fload, readevalloop, Feval_buffer, Feval_region):
3830 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3831 (openp): Check for out-of-range argument to 'access'.
3832 (read1): Use int, not EMACS_INT, where int is wide enough.
3833 Don't assume fixnum fits into int.
6efdadfd 3834 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
3835 (read_filtered_event): Use duration_to_sec_usec
3836 to do proper overflow checking on durations.
d311d28c
PE
3837 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
3838 in size calculation.
3839 (Fexecute_kbd_macro):
3840 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3841 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
3842 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
3843 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
3844 (set_marker_both, set_marker_restricted_both, marker_position)
3845 (marker_byte_position, Fbuffer_has_markers_at):
3846 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3847 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 3848 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
3849 It now merely ensures that the menu is large enough, without
3850 necessarily growing it, as this avoids some integer overflow issues.
3851 All callers changed.
3852 (keymap_panes, parse_single_submenu, Fx_popup_menu):
3853 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3854 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
3855 Use SAFE_ALLOCA_LISP, not alloca.
3856 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
3857 to EMACS_INT. Check that fixnums are in proper range for system types.
3858 * minibuf.c (minibuf_prompt_width, string_to_object)
3859 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
3860 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
3861 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3862 (get_minibuffer, read_minibuf_unwind):
3863 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3864 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
3865 this simplifies overflow checking. All callers changed.
3866 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
3867 (Ftest_completion):
3868 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3869 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
3870 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
3871 Check that fixnums are in proper range for system types.
3872 (Fx_create_frame, Fx_show_tip):
3873 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3874 * nsfont.m (ns_findfonts, nsfont_list_family):
3875 Don't assume fixnum fits in long.
3876 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
3877 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3878 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
3879 wide enough.
17fdb222 3880 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
3881 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3882 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
3883 (PRINTDECLARE, PRINTPREPARE):
3884 (strout, print_string):
3885 (print, print_preprocess, print_check_string_charset_prop)
3886 (print_object):
3887 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3888 (PRINTDECLARE):
3889 (temp_output_buffer_setup, Fprin1_to_string, print_object):
3890 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3891 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 3892 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 3893 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
3894 (print_error_message): Use SAFE_ALLOCA, not alloca.
3895 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
3896 (print_depth, new_backquote_output, print_number_index):
3897 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
3898 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
3899 (Fset_process_window_size, Fformat_network_address)
3900 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 3901 (sigchld_handler):
d311d28c 3902 Check that fixnums are in proper range for system types.
d44287d4 3903 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
3904 Check for process-ids out of pid_t range rather than relying on
3905 undefined behavior.
e4d81efc 3906 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
3907 (Fformat_network_address, read_process_output, send_process)
3908 (Fprocess_send_region, status_notify):
3909 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3910 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
3911 (wait_reading_process_output, read_process_output, exec_sentinel):
3912 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3913 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
3914 (Faccept_process_output): Use duration_to_sec_usec to do proper
3915 overflow checking on durations.
dde14581
PE
3916 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
3917 Don't assume pid_t fits in int.
02481186
PE
3918 * process.h (struct Lisp_Process): Members tick and update_tick
3919 are now of type EMACS_INT, not int.
b62b53e8
PE
3920 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
3921 configured --with-wide-int.
d311d28c
PE
3922 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
3923 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
3924 * search.c (looking_at_1, string_match_1):
3925 (fast_string_match, fast_c_string_match_ignore_case)
3926 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
3927 (scan_newline, find_before_next_newline, search_command)
3928 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
3929 (set_search_regs, wordify):
3930 (Freplace_match):
3931 (Fmatch_data):
3932 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3933 (string_match_1, search_buffer, set_search_regs):
3934 (Fmatch_data):
3935 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3936 (wordify): Check for overflow in size calculation.
3937 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
3938 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
3939 Check that fixnums are in proper range for system types.
3940 * sound.c (struct sound_device)
3941 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
3942 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3943 (Fplay_sound_internal):
3944 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 3945 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
3946 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
3947 (Fparse_partial_sexp):
3948 Don't assume fixnums can fit in int.
3949 (struct lisp_parse_state, find_start_pos, find_start_value)
3950 (find_start_value_byte, find_start_begv)
3951 (update_syntax_table, char_quoted, dec_bytepos)
3952 (find_defun_start, prev_char_comend_first, back_comment):
3953 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
3954 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
3955 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3956 (Finternal_describe_syntax_value): Check that match_lisp is a
3957 character, not an integer, since the code stuffs it into int.
3958 (scan_words, scan_sexps_forward):
3959 Check that fixnums are in proper range for system types.
3960 (Fforward_word):
3961 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3962 (scan_sexps_forward):
3963 Use CHARACTERP, not INTEGERP, since the value must fit into int.
3964 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
3965 * syntax.h: Adjust decls to match defn changes elsewhere.
3966 (struct gl_state_s):
3967 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
3968 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
3969 MOST_POSITIVE_FIXNUM.
d311d28c
PE
3970 * sysdep.c (wait_for_termination_1, wait_for_termination)
3971 (interruptible_wait_for_termination, mkdir):
3972 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
3973 (emacs_read, emacs_write):
3974 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
3975 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
3976 and double all fit in int.
d311d28c
PE
3977 * term.c (set_tty_color_mode):
3978 Check that fixnums are in proper range for system types.
3979 * termhooks.h (struct input_event):
3980 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3981 * textprop.c (validate_interval_range, interval_of)
3982 (Fadd_text_properties, set_text_properties_1)
3983 (Fremove_text_properties, Fremove_list_of_text_properties)
3984 (Ftext_property_any, Ftext_property_not_all)
3985 (copy_text_properties, text_property_list, extend_property_ranges)
3986 (verify_interval_modification):
3987 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3988 (Fnext_single_char_property_change)
3989 (Fprevious_single_char_property_change):
3990 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
3991 (copy_text_properties):
3992 Check for integer overflow in index calculation.
d311d28c
PE
3993 * undo.c (last_boundary_position, record_point, record_insert)
3994 (record_delete, record_marker_adjustment, record_change)
3995 (record_property_change):
3996 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
3997 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
3998 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
3999 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
4000 (Fx_hide_tip, Fx_file_dialog):
4001 * w32menu.c (set_frame_menubar):
4002 Use ptrdiff_t, not int, for consistency with rest of code.
4003 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
4004 (select_window, Fdelete_other_windows_internal)
4005 (window_scroll_pixel_based, window_scroll_line_based)
4006 (Frecenter, Fset_window_configuration):
4007 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4008 (Fset_window_hscroll, run_window_configuration_change_hook)
4009 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 4010 (Fscroll_other_window, Frecenter):
d311d28c
PE
4011 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4012 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
4013 Don't assume fixnum fits in int.
4014 (Fset_window_scroll_bars):
4015 Check that fixnums are in proper range for system types.
4016 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
4017 (string_pos, c_string_pos, number_of_chars, init_iterator)
4018 (in_ellipses_for_invisible_text_p, init_from_display_pos)
4019 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
4020 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
4021 (face_before_or_after_it_pos, handle_invisible_prop)
4022 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
4023 (display_prop_intangible_p, string_buffer_position_lim)
4024 (string_buffer_position, handle_composition_prop, load_overlay_strings)
4025 (get_overlay_strings_1, get_overlay_strings)
4026 (iterate_out_of_display_property, forward_to_next_line_start)
4027 (back_to_previous_visible_line_start, reseat, reseat_to_string)
4028 (get_next_display_element, set_iterator_to_next)
4029 (get_visually_first_element, compute_stop_pos_backwards)
4030 (handle_stop_backwards, next_element_from_buffer)
4031 (move_it_in_display_line_to, move_it_in_display_line)
4032 (move_it_to, move_it_vertically_backward, move_it_by_lines)
4033 (add_to_log, message_dolog, message_log_check_duplicate)
4034 (message2, message2_nolog, message3, message3_nolog
4035 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
4036 (current_message_1, truncate_echo_area, truncate_message_1)
4037 (set_message, set_message_1, store_mode_line_noprop)
4038 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
4039 (text_outside_line_unchanged_p, check_point_in_composition)
4040 (reconsider_clip_changes)
4041 (redisplay_internal, set_cursor_from_row, try_scrolling)
4042 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
4043 (redisplay_window, find_last_unchanged_at_beg_row)
4044 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
4045 (trailing_whitespace_p, find_row_edges, display_line)
4046 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
4047 (display_mode_element, store_mode_line_string)
4048 (pint2str, pint2hrstr, decode_mode_spec)
4049 (display_count_lines, display_string, draw_glyphs)
4050 (x_produce_glyphs, x_insert_glyphs)
4051 (rows_from_pos_range, mouse_face_from_buffer_pos)
4052 (fast_find_string_pos, mouse_face_from_string_pos)
4053 (note_mode_line_or_margin_highlight, note_mouse_highlight):
4054 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4055 (safe_call, init_from_display_pos, handle_fontified_prop)
4056 (handle_single_display_spec, load_overlay_strings)
4057 (with_echo_area_buffer, setup_echo_area_for_printing)
4058 (display_echo_area, echo_area_display)
4059 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
4060 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
4061 (redisplay_window, dump_glyph_row, display_mode_line)
4062 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 4063 (handle_display_spec, display_prop_string_p):
d311d28c
PE
4064 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4065 (handle_single_display_spec, build_desired_tool_bar_string)
4066 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
4067 (get_specified_cursor_type):
4068 Check that fixnums are in proper range for system types.
4069 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
4070 (Flookup_image_map):
4071 Don't assume fixnums fit in int.
4072 (compare_overlay_entries):
4073 Avoid mishandling comparisons due to subtraction overflow.
4074 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
4075 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
4076 (handle_tool_bar_click):
4077 Use int, not unsigned, since we prefer signed and the signedness
4078 doesn't matter here.
4079 (get_next_display_element, next_element_from_display_vector):
4080 Use int, not EMACS_INT, when int is wide enough.
4081 (start_hourglass): Use duration_to_sec_usec to do proper
4082 overflow checking on durations.
4083 * xfaces.c (Fbitmap_spec_p):
4084 Check that fixnums are in proper range for system types.
4085 (compare_fonts_by_sort_order):
4086 Avoid mishandling comparisons due to subtraction overflow.
4087 (Fx_family_fonts, realize_basic_faces):
4088 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4089 (Fx_family_fonts):
4090 Don't assume fixnum fits in int.
4091 Use SAFE_ALLOCA_LISP, not alloca.
4092 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
4093 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
4094 (face_at_buffer_position, face_for_overlay_string)
4095 (face_at_string_position):
4096 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4097 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
4098 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
4099 (Fx_show_tip):
4100 Check that fixnums are in proper range for system types.
4101 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
4102 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
4103 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4104 (Fx_change_window_property): Don't assume fixnums fit in int.
4105 * xfont.c (xfont_chars_supported):
4106 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4107 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
4108 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
4109 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4110 * xml.c (parse_region):
4111 * xrdb.c (magic_file_p):
4112 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4113 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
4114 (x_get_local_selection, x_reply_selection_request)
4115 (x_handle_selection_request, wait_for_property_change):
4116 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4117 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
4118 short is wide enough.
4119 (x_send_client_event): Don't assume fixnum fits in int.
4120 * xterm.c (x_x_to_emacs_modifiers):
4121 Don't assume EMACS_INT overflows nicely into int.
4122 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
4123 may come from Lisp.
4124 (handle_one_xevent): NATNUMP can eval its arg twice.
4125 (x_connection_closed):
4126 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4127 * xterm.h: Adjust decls to match defn changes elsewhere.
4128 (struct scroll_bar): Use struct vectorlike_header
4129 rather than rolling our own approximation.
4130 (SCROLL_BAR_VEC_SIZE): Remove; not used.
4131
c6574eb5
GM
41322012-05-25 Glenn Morris <rgm@gnu.org>
4133
4134 * lisp.mk (lisp): Update for more files being compiled now.
4135
e8d32c7e
SM
41362012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
4137
48def666
SM
4138 * lread.c: Remove `read_pure' which makes no difference.
4139 (read_pure): Remove var.
4140 (unreadpure): Remove function.
4141 (readevalloop): Don't call read_list with -1 flag.
4142 (read1, read_vector): Don't test read_pure any more.
4143 (read_list): Simplify.
4144
e8d32c7e
SM
4145 * fileio.c, character.h: Minor style tweaks.
4146
4b2addb7
DA
41472012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
4148
4149 * window.h (clip_changed): Remove useless declaration.
4150
584461b2
JB
41512012-05-22 Juanma Barranquero <lekktu@gmail.com>
4152
4153 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
4154 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
4155
34374650
PE
41562012-05-22 Paul Eggert <eggert@cs.ucla.edu>
4157
4158 Remove src/m/*.
4159 This directory predates autoconf and is no longer needed nowadays.
4160 Move its few remaining bits of functionality to where they're needed.
4161 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
4162 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
4163 * m/template.h: Remove.
4164 * Makefile.in (M_FILE): Remove. All uses removed.
4165 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
4166 * lisp.h (USE_LSB_TAG):
4167 * mem-limits.h (EXCEEDS_LISP_PTR):
4168 Use VAL_MAX, not VALBITS, in #if.
4169 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
4170 (EMACS_UINT): Define unconditionally now.
4171 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
4172 (BITS_PER_EMACS_INT): New constants, replacing
4173 what used to be in config.h, but not useful in #if.
4174 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
4175 define them any more.
4176 (VAL_MAX): New macro.
4177 (VALMASK): Use it.
4178 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
4179 BITS_PER_EMACS_INT, in #if.
4180 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
4181 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
4182 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
4183 * s/ms-w32.h (DATA_START):
4184 Move here from removed file m/intel386.h.
4185 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
4186 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
4187
261cb4bb
PE
41882012-05-21 Paul Eggert <eggert@cs.ucla.edu>
4189
4190 Assume C89 or later.
4191 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
4192 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
4193 (xrealloc):
4194 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
4195 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
4196 * textprop.c, tparam.c (NULL): Remove.
4197 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
4198 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
4199 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
4200 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
4201 * xterm.c (input_signal_count): Assume volatile works.
4202
ff23cd9f
KB
42032012-05-21 Ken Brown <kbrown@cornell.edu>
4204
4205 * xgselect.c (xg_select): Fix first argument in call to 'select'
4206 (bug#11508).
4207
1b170bc6
KB
42082012-05-20 Ken Brown <kbrown@cornell.edu>
4209
4210 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 4211 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 4212
b2f4d39f
KB
42132012-05-19 Ken Brown <kbrown@cornell.edu>
4214
4215 * xfns.c (x_in_use): Remove `static' qualifier.
4216 * xterm.h (x_in_use): Declare.
4217 * xgselect.c: Include xterm.h.
4218 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
4219 and `display_arg' (bug#9754).
4220
003fdae2
PE
42212012-05-19 Paul Eggert <eggert@cs.ucla.edu>
4222
9232a6d9
PE
4223 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
4224
003fdae2
PE
4225 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
4226 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
4227
784b56e2
EZ
42282012-05-18 Eli Zaretskii <eliz@gnu.org>
4229
4230 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
4231
4232 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 4233 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
4234
4235 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
4236 reference to image_cache->refcount.
4237 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
4238
a0a79cde
JL
42392012-05-17 Juri Linkov <juri@jurta.org>
4240
4241 * search.c (Fword_search_regexp, Fword_search_backward)
4242 (Fword_search_forward, Fword_search_backward_lax)
4243 (Fword_search_forward_lax): Move functions to isearch.el
4244 (bug#10145, bug#11381).
4245
b0572523
PE
42462012-05-16 Paul Eggert <eggert@cs.ucla.edu>
4247
4248 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
4249
9660f5fc
SM
42502012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
4251
4252 * lread.c (init_obarray): Declare Qt and Qnil as special.
4253
4374de83
GM
42542012-05-14 Glenn Morris <rgm@gnu.org>
4255
4256 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 4257 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 4258
dc44c39a
PE
42592012-05-14 Paul Eggert <eggert@cs.ucla.edu>
4260
078c97cb
PE
4261 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
4262
dc44c39a
PE
4263 * unexaix.c: Port to more-recent AIX compilers.
4264 (report_error, report_error_1, make_hdr, copy_sym)
4265 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
4266 Make arguments const char *, not char *, to avoid violations of C
4267 standard and to fix some AIX warnings reported by Gilles Pion.
4268
e18afed7 42692012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
4270
4271 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
4272 already have overlays loaded.
4273 (handle_single_display_spec): Before returning without displaying
4274 fringe bitmap, synchronize the bidi iterator with the main display
4275 iterator, by calling iterate_out_of_display_property.
4276 (iterate_out_of_display_property): Detect buffer iteration by
4277 testing that it->string is a Lisp string.
4278 (get_next_display_element): When the current object is exhausted,
4279 and there's something on it->stack, call set_iterator_to_next to
4280 proceed with what's on the stack, instead of returning zero.
4281 (set_iterator_to_next): If called at the end of a Lisp string,
4282 proceed to consider_string_end without incrementing string
4283 position. Don't increment display vector index past the end of
4284 the display vector. (Bug#11417)
c8fb9dc6
EZ
4285 (pos_visible_p): Don't report a position visible when move_it_to
4286 stopped at the last line of window, which happens to be scanned
4287 backwards by the bidi iteration. (Bug#11464)
ac268e67 4288
e18afed7 42892012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
4290
4291 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
4292 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
4293 are on a TTY, and thus unable to display on the fringes.
4294 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
4295 so we need to signal to the caller that this is a "replacing"
4296 display spec. This fixes display when the spec is invalid or we
4297 are on a TTY.
4298
e18afed7 42992012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
4300
4301 * unexaix.c (make_hdr): Fix typo in prototype.
4302 This bug broke the build on AIX. Problem reported by Gilles Pion.
4303
9d0a235a
MA
43042012-05-14 Michael Albinus <michael.albinus@gmx.de>
4305
4306 * keyboard.c (kbd_buffer_get_event): Read special events also in
4307 batch mode. (Bug#11415)
4308
9e6b06ed
GM
43092012-05-12 Glenn Morris <rgm@gnu.org>
4310
4311 * ns.mk: Update for ns_appbindir no longer having trailing "/".
4312
c1a1d7a3
EZ
43132012-05-12 Eli Zaretskii <eliz@gnu.org>
4314
4315 * lisp.mk (lisp): Add newcomment.elc.
4316
3fe7cdc8
GM
43172012-05-12 Glenn Morris <rgm@gnu.org>
4318
4319 * Makefile.in (MKDIR_P): New, set by configure.
4320 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
4321
53f7d2c0
PE
43222012-05-11 Paul Eggert <eggert@cs.ucla.edu>
4323
4324 Remove unused function hourglass_started.
4325 * dispextern.h (hourglass_started):
4326 * w32fns.c (hourglass_started):
4327 * xdisp.c (hourglass_started): Remove.
4328
75aafb17
JB
43292012-05-10 Juanma Barranquero <lekktu@gmail.com>
4330
4331 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
4332 Update dependencies.
4333
12959e8e
PE
43342012-05-10 Paul Eggert <eggert@cs.ucla.edu>
4335
97107e2e
PE
4336 * xgselect.c (xg_select): Put maxfds+1 into a var.
4337 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
4338
12959e8e
PE
4339 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
4340
836d29b3
DA
43412012-05-10 Dave Abrahams <dave@boostpro.com>
4342
4343 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
4344 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
4345
5cb67954
MA
43462012-05-09 Michael Albinus <michael.albinus@gmx.de>
4347
4348 * dbusbind.c (xd_registered_buses): New internal Lisp object.
4349 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
4350 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
4351 Initialize xd_registered_buses.
4352
3478ec45
PE
43532012-05-09 Paul Eggert <eggert@cs.ucla.edu>
4354
b263a6b0
PE
4355 Untag more efficiently if USE_LSB_TAG.
4356 This is based on a proposal by YAMAMOTO Mitsuharu in
4357 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
4358 For an admittedly artificial (nth 8000 longlist) benchmark on
4359 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
4360 Emacs's overall text size by 1%.
4361 * lisp.h (XUNTAG): New macro.
4362 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
4363 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
4364 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
4365 * eval.c (Fautoload):
4366 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
4367 * frame.h (XFRAME): Use XUNTAG.
4368
3478ec45
PE
4369 Port recent dbusbind.c changes to 32-bit --with-wide-int.
4370 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
4371 Remove unportable assumptions about print widths of types like
4372 dbus_uint32_t.
4373 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
4374 intptr_t when converting between pointer and integer, to avoid GCC
4375 warnings about wrong width.
4376
666b903b 43772012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
4378
4379 * w32proc.c (new_child): Force Windows to reserve only 64KB of
4380 stack for each reader_thread, instead of defaulting to 8MB
4381 determined by the linker. This avoids failures in creating
4382 subprocesses on Windows 7, see the discussion in this thread:
4383 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
4384
b120cc17
JC
43852012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
4386
4387 Fix up display of the *Minibuf-0* buffer in the mini window.
4388 * keyboard.c (read_char): Don't clear the echo area if there's no
4389 message to clear.
4390 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 4391 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 4392
9a4b36f8
MA
43932012-05-07 Michael Albinus <michael.albinus@gmx.de>
4394
4395 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
4396 batch mode.
4397
e5f9458f
CY
43982012-05-06 Chong Yidong <cyd@gnu.org>
4399
4400 * lisp.mk (lisp): Update.
4401
eceeb5fc 44022012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
4403
4404 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
4405
71873e2b
SM
44062012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
4407
4408 * data.c (PUT_ERROR): New macro.
4409 (syms_of_data): Use it. Add new error type `user-error'.
4410 * undo.c (user_error): New function.
4411 (Fprimitive_undo): Use it.
4412 * print.c (print_error_message): Adjust print style for `user-error'.
4413 * keyboard.c (user_error): New function.
4414 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
4415
ab0fa4e4
PE
44162012-05-03 Paul Eggert <eggert@cs.ucla.edu>
4417
4418 Do not limit current-time-string to years 1000..9999.
4419 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
4420 (Fcurrent_time_string): Support any year that is supported by the
4421 underlying localtime representation. Don't use asctime, as it
4422 has undefined behavior for years outside the range -999..9999.
4423
7ed806a7
PE
44242012-05-02 Paul Eggert <eggert@cs.ucla.edu>
4425
4426 Fix race conditions involving setenv, gmtime, localtime, asctime.
4427 Without this fix, interrupts could mess up code that uses these
4428 nonreentrant functions, since setting TZ invalidates existing
4429 tm_zone or tzname values, and since most of these functions return
4430 pointers to static storage.
4431 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
4432 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
4433 Grow the critical sections to include not just invoking
4434 localtime/gmtime, but also accessing these functions' results
4435 including their tm_zone values if any, and any related TZ setting.
4436 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
4437 so that the struct tm is saved in the critical section.
4438 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
4439 motivated by the fact that memory allocation needs to be outside
4440 the critical section.
4441
0c16dfed
DA
44422012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
4443
4444 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
4445 with RESET_INTERVAL.
4446
4447 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
4448 Remove duplicated buffer name initialization.
4449
3f83ace8
JM
44502012-05-02 Jim Meyering <jim@meyering.net>
4451
4452 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
4453
c7b8541e
JM
4454 * xfns.c (x_window): Use xstrdup (Bug#11375).
4455
90207a15 44562012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
4457
4458 * xdisp.c (pos_visible_p): If already at a newline from the
4459 display string before the 'while' loop, don't walk back the glyphs
4460 from it3.glyph_row. Solves assertion violation when the display
4461 string begins with a newline (egg.el). (Bug#11367)
4462
b593d6a9
AH
44632012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
4464
4465 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
4466 Move to simple.el.
4467
4737362e
GM
44682012-05-01 Glenn Morris <rgm@gnu.org>
4469
99cf43f9
GM
4470 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
4471 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
4472 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
4473 All were removed before 23.1.
4474
9311dcff
GM
4475 * dispnew.c: Remove HAVE_LIBNCURSES test;
4476 it is always true on relevant platforms.
4477
4d5c6349
GM
4478 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
4479 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
4480
4737362e
GM
4481 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
4482
74dd3a6b
AS
44832012-04-30 Andreas Schwab <schwab@linux-m68k.org>
4484
4485 * .gdbinit (xpr): Remove checks for no longer existing misc types.
4486 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
4487 Remove.
4488
13c379ee
PE
44892012-04-28 Paul Eggert <eggert@cs.ucla.edu>
4490
4491 Do not avoid creating empty evaporating overlays (Bug#9642).
4492 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
4493 That is, do not delete an evaporating overlay if it becomes
4494 empty after its bounds are adjusted to fit within its buffer.
4495 This fix caused other problems, and I'm reverting it until we get
4496 to the bottom of them.
4497
a8e7d6d7 44982012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
4499
4500 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
4501
a8e7d6d7 45022012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
4503
4504 * xdisp.c (pos_visible_p): If the window start position is beyond
4505 ZV, start the display from buffer beginning. Prevents assertion
4506 violation in init_iterator when the minibuffer window is scrolled
4507 via the scroll bar.
4508
4509 * window.c (window_scroll_pixel_based): Likewise.
4510
a8e7d6d7 45112012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
4512
4513 * keymap.c (where_is_internal): Doc fix (Bug#10872).
4514
a8e7d6d7 45152012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
4516
4517 * fileio.c (Fcopy_file, Fset_file_selinux_context):
4518 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
4519
a8e7d6d7 45202012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 4521
b593d6a9
AH
4522 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
4523 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 4524
1c6900d9
EZ
45252012-04-26 Eli Zaretskii <eliz@gnu.org>
4526
4c3fa1d9
EZ
4527 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
4528 display element, check also the underlying string or buffer
4529 character. (Bug#11341)
4530
1c6900d9
EZ
4531 * w32menu.c: Include w32heap.h.
4532 (add_menu_item): If the call to AppendMenuW (via
4533 unicode_append_menu) fails, disable Unicode menus only if we are
4534 running on Windows 9X/Me.
4535
42bf8205
AS
45362012-04-24 Andreas Schwab <schwab@linux-m68k.org>
4537
4538 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
4539 (xgetint): Add missing shift for LSB tags.
4540
b1bac16e
MR
45412012-04-24 Martin Rudalics <rudalics@gmx.at>
4542
4543 * keyboard.c (read_char): Don't wipe echo area for select window
4544 events: These might get delayed via `mouse-autoselect-window'
4545 (Bug#11304).
4546
d69621cc
JB
45472012-04-24 Juanma Barranquero <lekktu@gmail.com>
4548
4549 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
4550 manipulation of :loaded-from data.
4551
02fd101b
JB
45522012-04-23 Juanma Barranquero <lekktu@gmail.com>
4553
4554 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
4555 now a cons (bug#11311).
4556
888bec30
PE
45572012-04-23 Paul Eggert <eggert@cs.ucla.edu>
4558
89a438bd
PE
4559 Do not create empty overlays with the evaporate property (Bug#9642).
4560 * buffer.c (Fmove_overlay): Delete an evaporating overlay
4561 if it becomes empty after its bounds are adjusted to fit within
4562 its buffer. Without this fix, in a nonempty buffer (let ((o
4563 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
4564 yields an empty overlay that has the evaporate property, which is
4565 not supposed to happen.
4566
1068fe4d
PE
4567 Fix minor GTK3 problems found by static checking.
4568 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
4569 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
4570 (struct _EmacsFixedClass, emacs_fixed_get_type):
4571 Move decls here from emacsgtkfixed.h, since they needn't be public.
4572 (emacs_fixed_get_type): Now static.
4573 (emacs_fixed_class_init): Omit unused local.
4574 (emacs_fixed_child_type): Remove; unused.
4575 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
4576 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
4577 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
4578 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
4579 (EMACS_FIXED_GET_CLASS): Remove; unused.
4580 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
4581
888bec30
PE
4582 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
4583 Problem reported by Juanma Barranquero for Windows -Wunused-function.
4584
de85e130
PE
45852012-04-22 Paul Eggert <eggert@cs.ucla.edu>
4586
d0baac98 4587 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 4588 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
4589 (__malloc_size_t, __malloc_ptrdiff_t):
4590 Remove. All uses removed, replaced by the definiens if needed,
4591 since we can assume C89 or better now.
4592 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
4593 (protect_malloc_state, align, get_contiguous_space)
4594 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
4595 (malloc_atfork_handler_child, malloc_enable_thread)
4596 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
4597 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
4598 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
4599 (special_realloc, _realloc_internal_nolock, _realloc_internal)
4600 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
4601 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
4602 Define using prototypes, not old style.
4603 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
4604 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
4605 (align): Don't assume that signed integer overflow wraps around.
4606 Omit unused local var.
4607 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
4608 (_free_internal_nolock, memalign, mallochook, reallochook):
4609 Omit no-longer-needed casts.
4610 (valloc): Use getpagesize, not __getpagesize.
4611 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
4612 (struct hdr): The 'magic' member is now size_t, not unsigned long.
4613
de85e130
PE
4614 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
4615
dcbf5805
MA
46162012-04-22 Michael Albinus <michael.albinus@gmx.de>
4617
4618 Move functions from C to Lisp. Make non-blocking method calls
4619 the default. Implement further D-Bus standard interfaces.
4620
4621 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
4622 (QCdbus_request_name_allow_replacement)
4623 (QCdbus_request_name_replace_existing)
4624 (QCdbus_request_name_do_not_queue)
4625 (QCdbus_request_name_reply_primary_owner)
4626 (QCdbus_request_name_reply_in_queue)
4627 (QCdbus_request_name_reply_exists)
4628 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
4629 (QCdbus_registered_serial, QCdbus_registered_method)
4630 (QCdbus_registered_signal): New Lisp objects.
4631 (XD_DEBUG_MESSAGE): Use sizeof.
4632 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
4633 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
4634 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
4635 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
4636 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
4637 (xd_signature, xd_append_arg): Allow float for integer types.
4638 (xd_get_connection_references): New function.
b593d6a9
AH
4639 (xd_get_connection_address): Rename from xd_initialize.
4640 Return cached address.
dcbf5805
MA
4641 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
4642 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
4643 level.
4644 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 4645 Return number of refcounts.
dcbf5805
MA
4646 (Fdbus_get_unique_name): Make stronger parameter check.
4647 (Fdbus_message_internal): New defun.
4648 (Fdbus_call_method, Fdbus_call_method_asynchronously)
4649 (Fdbus_method_return_internal, Fdbus_method_error_internal)
4650 (Fdbus_send_signal, Fdbus_register_service)
4651 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
4652 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
4653 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
4654 (Vdbus_compiled_version, Vdbus_runtime_version)
4655 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
4656 (Vdbus_message_type_method_return, Vdbus_message_type_error)
4657 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
4658 (Vdbus_registered_buses, Vdbus_registered_objects_table):
4659 Adapt docstring.
dcbf5805 4660
52828e02
PE
46612012-04-22 Paul Eggert <eggert@cs.ucla.edu>
4662
da05bc4c
PE
4663 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
4664 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
4665 Do not assume ptrdiff_t is the same width as 'int'.
4666
52828e02
PE
4667 * alloc.c: Handle unusual debugging option combinations.
4668 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
4669 since the two debugging options are incompatible.
4670 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
4671 is defined.
4672 (mem_init, mem_insert, mem_insert_fixup):
4673 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
4674 (NEED_MEM_INSERT): Remove; no longer needed.
4675
f01769f9
LL
46762012-04-22 Leo Liu <sdl.web@gmail.com>
4677
4678 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
4679
5790543d
PE
46802012-04-22 Paul Eggert <eggert@cs.ucla.edu>
4681
4682 * sysdep.c [__FreeBSD__]: Minor cleanups.
4683 (list_system_processes, system_process_attributes) [__FreeBSD__]:
4684 Use Emacs indenting style more consistently. Avoid some casts.
4685 Use 'double' consistently rather than mixing 'float' and 'double'.
4686
b91b7e4d
EW
46872012-04-21 Eduard Wiebe <usenet@pusto.de>
4688
b593d6a9
AH
4689 * sysdep.c (list_system_processes, system_process_attributes):
4690 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 4691
6114eb15
AS
46922012-04-21 Andreas Schwab <schwab@linux-m68k.org>
4693
4694 * lisp.mk (lisp): Update.
4695
2f38dff7
PE
46962012-04-20 Paul Eggert <eggert@cs.ucla.edu>
4697
4698 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
4699 It is never used otherwise.
4700
4ae29f89
SM
47012012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
4702
4703 * print.c (print_preprocess): Only check print_depth if print-circle
4704 is nil.
4705 (print_object): Check for cycles even when print-circle is nil and
4706 print-gensym is t, but only check print_depth if print-circle is nil.
4707
f30d612a
CY
47082012-04-20 Chong Yidong <cyd@gnu.org>
4709
4710 * process.c (wait_reading_process_output): If EIO occurs on a pty,
4711 set the status to "failed" and ensure that sentinel is run.
4712
c07a4c0b 47132012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
4714
4715 * process.c (Fset_process_inherit_coding_system_flag)
4716 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 4717 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 4718
c07a4c0b 47192012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
4720
4721 * xdisp.c (string_buffer_position_lim): Limit starting position to
4722 BEGV.
4723 (set_cursor_from_row): If called for a mode-line or header-line
4724 row, return zero immediately.
4725 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
4726 farther than the first row after the header line, if any.
4727 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
4728 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
4729
c07a4c0b 47302012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 4731
4ae29f89
SM
4732 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
4733 (bug#11238).
ad3a2b41 4734
c07a4c0b 47352012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 47362012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
4737
4738 configure: new option --enable-gcc-warnings (Bug#11207)
4739 * Makefile.in (C_WARNINGS_SWITCH): Remove.
4740 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
4741 (ALL_CFLAGS): Use new macros rather than old.
4742 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
4743 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
4744 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
4745 -Wunused-result, -Wunused-variable. This should go away once
4746 the Emacs and Gnulib regex code is merged.
4747 (xmalloc, xrealloc): Now static.
4748
aba027e8
PE
47492012-04-17 Paul Eggert <eggert@cs.ucla.edu>
4750
4751 * dired.c (Fsystem_groups): Remove unused local.
4752
e5a36063
GM
47532012-04-17 Glenn Morris <rgm@gnu.org>
4754
4755 * dired.c (Fsystem_users): Doc fix.
4756
316411f0
DA
47572012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
4758
4759 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
4760 (syms_of_dired): Add them.
4761
9426aba4
PE
47622012-04-16 Paul Eggert <eggert@cs.ucla.edu>
4763
b62a57be
PE
4764 Fix minor alloc.c problems found by static checking.
4765 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
4766 New extern decls, to avoid calling undeclared functions.
4767 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
4768 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
4769 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
4770 (NEED_MEM_INSERT): New macro.
4771 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 4772 Remove one incorrect comment and fix another.
b62a57be 4773
3539f31f
PE
4774 Fix minor ralloc.c problems found by static checking.
4775 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
4776 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
4777 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
4778 (r_alloc_sbrk): Now static.
4779
a041960a
PE
4780 Improve ralloc.c interface checking.
4781 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
4782 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
4783 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
4784 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
4785 [REL_ALLOC]: ... to here, to check interface.
4786 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
4787 Remove decls. This fixes an "It stinks!".
4788
9426aba4
PE
4789 * alloc.c (which_symbols): Fix alignment issue / type clash.
4790
d55c12ed
AS
47912012-04-15 Andreas Schwab <schwab@linux-m68k.org>
4792
4793 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
4794 (struct Lisp_Misc_Any): Likewise.
4795 (struct Lisp_Free): Likewise.
4796 * alloc.c (union aligned_Lisp_Symbol): Define.
4797 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
4798 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
4799 (union aligned_Lisp_Misc): Define.
4800 (MARKER_BLOCK_SIZE, struct marker_block): Use union
4801 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 4802 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 4803
b948ce8b
PE
48042012-04-14 Paul Eggert <eggert@cs.ucla.edu>
4805
4806 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
4807 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
4808 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
4809 * s/netbsd.h, s/sol2-6.h:
4810 Remove definition of GC_MARK_STACK, since the default now works.
4811 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
4812 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
4813 no longer the default.
4814 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
4815
35dc09a1 48162012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 4817
35dc09a1
GM
4818 * lread.c (lisp_file_lexically_bound_p):
4819 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 4820
35dc09a1
GM
48212012-04-14 Eli Zaretskii <eliz@gnu.org>
4822
4823 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
4824 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
4825
48262012-04-14 Jan Djärv <jan.h.d@swipnet.se>
4827
4828 * nsterm.m (constrainFrameRect): Always constrain when there is only
4829 one screen (Bug#10962).
4830
bcd86815
KB
48312012-04-13 Ken Brown <kbrown@cornell.edu>
4832
4833 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
4834
c25df26e
RT
48352012-04-13 Reuben Thomas <rrt@sc3d.org>
4836
4837 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
4838
0fc59f1e
DC
48392012-04-11 Daniel Colascione <dancol@dancol.org>
4840
4841 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
4842 against is gone. It's better to use vfork now so that when Cygwin
4843 gains a new, working vfork, we use it automatically (bug#10398).
4844
de8c03dc
SM
48452012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
4846
4847 * window.c (save_window_save): Obey window-point-insertion-type.
4848
2f097256
GM
48492012-04-11 Glenn Morris <rgm@gnu.org>
4850
4851 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
4852
453b951e
SM
48532012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
4854
4855 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
4856
75f1671a 48572012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
4858
4859 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
4860 (force_quit_count): New var.
4861 (handle_interrupt): Use it.
4862
2a8ce227
JB
48632012-04-10 Juanma Barranquero <lekktu@gmail.com>
4864
4865 * w32.c (w32_delayed_load): Record the full path of the library
4866 being loaded (bug#10424).
4867
935396c0
GM
48682012-04-09 Glenn Morris <rgm@gnu.org>
4869
05920a43
GM
4870 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
4871 not just in the obarray, before snarfing them. (Bug#11036)
4872
935396c0
GM
4873 * Makefile.in ($(leimdir)/leim-list.el):
4874 Pass EMACS rather than BUILT_EMACS.
4875
a18ecafa
TZ
48762012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
4877
4878 * process.c (make_process):
4879 * process.h: Add integer `gnutls_handshakes_tried' member to
4880 process struct.
4881
6bbef4e5
JC
4882 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
4883 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
4884
4885 * gnutls.c (gnutls_log_function2i): Convenience log function.
4886 (emacs_gnutls_read): Use new log functions,
4887 `gnutls_handshakes_tried' process member, and
4888 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
4889 attempts per process (connection).
4890
b4d3bc10
CY
48912012-04-09 Chong Yidong <cyd@gnu.org>
4892
4893 * eval.c (Fuser_variable_p, user_variable_p_eh)
4894 (lisp_indirect_variable): Functions deleted.
4895 (Fdefvar): Caller changed.
4896
4897 * callint.c (Finteractive, Fcall_interactively):
4898 * minibuf.c (Fread_variable): Callers changed.
4899
70f4d973
EZ
49002012-04-09 Eli Zaretskii <eliz@gnu.org>
4901
4902 * xdisp.c (set_cursor_from_row): If the display string appears in
4903 the buffer at position that is closer to point than the position
4904 after the display string, display the cursor on the first glyph of
4905 the display string. Fixes cursor display when a 'display' text
4906 property immediately follows invisible text. (Bug#11094)
4907
cb3c2e3e
PE
49082012-04-09 Paul Eggert <eggert@cs.ucla.edu>
4909
4910 composite.c: use 'double' consistently
4911 * composite.c (get_composition_id): Use 'double' consistently
4912 instead of converting 'float' to 'double' and vice versa; this is
4913 easier to understand and avoids a GCC warning.
4914
fd06db5d
GM
49152012-04-09 Glenn Morris <rgm@gnu.org>
4916
50fe702a
GM
4917 * Makefile.in: Generate leim-list with bootstrap-emacs, in
4918 preparation for dumping it with emacs. (Bug#4789)
4919 (leimdir): New variable.
4920 ($(leimdir)/leim-list.el): New rule.
4921 (emacs$(EXEEXT)): Depend on leim-list.el.
4922
fd06db5d
GM
4923 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
4924 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
4925 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
4926
55c131ee
AS
49272012-04-08 Andreas Schwab <schwab@linux-m68k.org>
4928
4929 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
4930 proper alignment.
4931
9209588f
JB
49322012-04-07 Juanma Barranquero <lekktu@gmail.com>
4933
4934 * xml.c (init_libxml2_functions) [WINDOWSNT]:
4935 Remove unused local variable.
4936
e3fb2efb
PE
49372012-04-07 Paul Eggert <eggert@cs.ucla.edu>
4938
4939 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
4940 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
4941 (mark_memory): Mark Lisp_Objects only if pointers might hide in
4942 objects, as mark_maybe_pointer will catch them otherwise.
4943 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
4944 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
4945
b5385551
PE
49462012-04-07 Paul Eggert <eggert@cs.ucla.edu>
4947
4948 Fix typo that broke non-Windows builds.
4949 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
4950
9078ead6
EZ
49512012-04-07 Eli Zaretskii <eliz@gnu.org>
4952
4953 Support building on MS-Windows with libxml2.
4954
4955 * makefile.w32-in (OBJ2): Add xml.$(O).
4956 (GLOBAL_SOURCES): Add xml.c.
4957 ($(BLD)/xml.$(O)): New dependency list.
4958
4959 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
4960 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
4961 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
4962 [!WINDOWSNT]: New macros.
4963 (init_libxml2_functions, libxml2_loaded_p): New functions.
4964 (parse_region): Call fn_xmlCheckVersion instead of using the macro
4965 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
4966 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
4967 Calls xmlCleanupParser only if libxml2 was loaded (or statically
4968 linked in).
6bbef4e5
JC
4969 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
4970 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
4971 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
4972
4973 * emacs.c: Don't include libxml/parser.h.
4974 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
4975 xmlCleanupParser directly.
4976
4977 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
4978
3811fdf3
EZ
49792012-04-07 Eli Zaretskii <eliz@gnu.org>
4980
4981 * indent.c (Fvertical_motion): If there is a display string at
4982 point, use it.vpos to compute how many lines to backtrack after
4983 move_it_to point. (Bug#11133)
4984
2f8e16b2
EZ
49852012-04-06 Eli Zaretskii <eliz@gnu.org>
4986
4987 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
4988 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
4989 about subtle differences between FETCH_CHAR* and STRING_CHAR*
4990 macros related to unification of CJK characters. For the details,
4991 see the discussion following the message here:
4992 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
4993
3d439cd1
CY
49942012-04-04 Chong Yidong <cyd@gnu.org>
4995
4996 * keyboard.c (Vdelayed_warnings_list): Doc fix.
4997
8bc53d00
EZ
49982012-04-01 Eli Zaretskii <eliz@gnu.org>
4999
5000 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
5001 instead of alloca. (Bug#11138)
5002
3b0512a3
AS
50032012-04-01 Andreas Schwab <schwab@linux-m68k.org>
5004
5005 * w32menu.c (is_simple_dialog): Properly check lisp types.
5006 (Bug#11141)
5007
8427ddd2
EZ
50082012-03-31 Eli Zaretskii <eliz@gnu.org>
5009
979022ef
EZ
5010 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
5011 position we get to after a call to move_it_to fails the
5012 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
5013 only if we wind up in a string from display property. (Bug#11063)
5014
a6b1c7cc
EZ
5015 * window.c (Fdelete_other_windows_internal): Invalidate the row
5016 and column information about mouse highlight, so that redisplay
5017 restores it after reallocating the glyph matrices. (Bug#7464)
5018
8427ddd2
EZ
5019 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
5020 string comes from a `display' text property, use the buffer
5021 position of that property as if we actually saw that position in
5022 the row's glyphs.
697ba24b
EZ
5023 (move_it_by_lines): Remove the assertion that
5024 "it->current_x == 0 && it->hpos == 0" which can be legitimately
5025 violated when there's a before-string at the beginning of a line.
5026 (Bug#11063)
8427ddd2 5027
65a0a738
EZ
50282012-03-30 Eli Zaretskii <eliz@gnu.org>
5029
5030 * xdisp.c (append_space_for_newline): If the default face was
5031 remapped, use the remapped face for the appended newline.
5032 (extend_face_to_end_of_line): Use the remapped default face for
5033 extending the face to the end of the line.
5034 (display_line): Call extend_face_to_end_of_line when the default
5035 face was remapped. (Bug#11068)
5036
581355cc
EZ
50372012-03-29 Eli Zaretskii <eliz@gnu.org>
5038
5039 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
5040
e8fc049f
SM
50412012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
5042
5043 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
5044
4fb9a543
GM
50452012-03-27 Glenn Morris <rgm@gnu.org>
5046
5047 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
5048 Doc fixes.
5049
679910f1
KH
50502012-03-26 Kenichi Handa <handa@m17n.org>
5051
5052 * dispextern.h (struct glyph): Fix previous change. Change the
5053 bit length of glyphless.ch to 25 (Bug#11082).
5054
90d49b7f
CY
50552012-03-26 Chong Yidong <cyd@gnu.org>
5056
5057 * keyboard.c (Vselection_inhibit_update_commands): New variable.
5058 (command_loop_1): Use it; inhibit selection update for
5059 handle-select-window too (Bug#8996).
5060
f514f6f0
FP
50612012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
5062
e8fc049f 5063 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 5064
bf43fa51
KH
50652012-03-25 Kenichi Handa <handa@m17n.org>
5066
5067 * dispextern.h (struct glyph): Change the bit length of
5068 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
5069
8a0c01dd
EZ
50702012-03-24 Eli Zaretskii <eliz@gnu.org>
5071
5072 * s/ms-w32.h (tzname): Include time.h before redirecting to
5073 _tzname. Fixes the MSVC build. (Bug#9960)
5074
7d1c3a76
AS
50752012-03-24 Andreas Schwab <schwab@linux-m68k.org>
5076
8ed79523
AS
5077 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
5078 characters.
5079
7d1c3a76
AS
5080 * xterm.c (XTread_socket): Only modify handling_signal if
5081 !SYNC_INPUT. (Bug#11080)
5082
e99a9b8b
EZ
50832012-03-23 Eli Zaretskii <eliz@gnu.org>
5084
5085 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
5086 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
5087 when fetching a multibyte character consumes more bytes than
5088 CHAR_BYTES returns, due to unification of CJK characters in
5089 string_char. (Bug#11073)
5090
5063c0e1
TN
50912012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
5092
5093 * process.c (wait_reading_process_output): Handle pty disconnect
5094 by refraining from sending oneself a SIGCHLD (bug#10933).
5095
9f851fbd
CY
50962012-03-22 Chong Yidong <cyd@gnu.org>
5097
5098 * dispextern.h (struct it): New member string_from_prefix_prop_p.
5099
5063c0e1 5100 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
5101 Mark string as coming from a prefix property.
5102 (handle_face_prop): Use default face for prefix strings (Bug#4281).
5103 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
5104
fb5b8aca
CY
51052012-03-21 Chong Yidong <cyd@gnu.org>
5106
5107 * xfaces.c (Vface_remapping_alist): Doc fix.
5108
62356a1b
EZ
51092012-03-20 Eli Zaretskii <eliz@gnu.org>
5110
5111 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
5112 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
5113 Doc fixes.
62356a1b 5114
025de85b
CY
51152012-03-20 Chong Yidong <cyd@gnu.org>
5116
5117 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
5118 to reflect default non-nil value of redisplay-dont-pause.
5119
4827f94e
KH
51202012-03-19 Kenichi Handa <handa@m17n.org>
5121
5122 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
5123 it fit in a valid range (Bug#11003).
5124
e50a24a2
EZ
51252012-03-18 Eli Zaretskii <eliz@gnu.org>
5126
5127 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
5128 that is not from display property, accept the row as a "cursor
5129 row" if one of the string's character has a non-nil `cursor'
5130 property. Fixes cursor positioning when there are newlines in
5131 overlay strings, e.g. in icomplete.el. (Bug#11035)
5132
9af5ed87
PE
51332012-03-12 Paul Eggert <eggert@cs.ucla.edu>
5134
5135 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
5136
d1f55f16
CY
51372012-03-12 Chong Yidong <cyd@gnu.org>
5138
5139 * eval.c (inhibit_lisp_code): Rename from
5140 inhibit_window_configuration_change_hook; move from window.c.
5141
5142 * xfns.c (unwind_create_frame_1, Fx_create_frame):
5143 * window.c (run_window_configuration_change_hook)
5144 (syms_of_window): Callers changed.
5145
66c5eebd
CY
51462012-03-11 Chong Yidong <cyd@gnu.org>
5147
413df973
CY
5148 * keymap.c (Fkey_description): Doc fix (Bug#9700).
5149
66c5eebd
CY
5150 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
5151
1de11f56
CY
51522012-03-10 Chong Yidong <cyd@gnu.org>
5153
5154 * frame.c (other_visible_frames): Don't assume the selected frame
5155 is visible (Bug#10955).
5156
cae07000
SM
51572012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
5158
5159 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
5160
89c94350
JD
51612012-03-08 Jan Djärv <jan.h.d@swipnet.se>
5162
5163 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
5164 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
5165 zero (Bug#10954).
5166
999dd333
GM
51672012-03-03 Glenn Morris <rgm@gnu.org>
5168
01a6dcc8 5169 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 5170
de0100f2
EZ
51712012-03-02 Eli Zaretskii <eliz@gnu.org>
5172
5173 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
5174 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
5175 (redisplay_window, next_element_from_string): Fix typos in
5176 comments.
3e441275
EZ
5177 (redisplay_window): Pass to move_it_vertically the margin in
5178 pixels, not in screen lines.
de0100f2 5179
96a72ee9
GM
51802012-03-02 Glenn Morris <rgm@gnu.org>
5181
5182 * buffer.c (buffer-list-update-hook): Doc fix.
5183
312508d7
EZ
51842012-02-29 Eli Zaretskii <eliz@gnu.org>
5185
5186 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
5187 push_it before setting up the iterator for the first overlay
5188 string, even if we have an empty string loaded.
5189 (next_overlay_string): If there's an empty string on the iterator
5190 stack, pop the stack. (Bug#10903)
5191
27f3c637
PE
51922012-02-25 Paul Eggert <eggert@cs.ucla.edu>
5193
5194 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
5195 Suggested by Stefan Monnier in
5196 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
5197 * alloc.c (widen_to_Lisp_Object): New static function.
5198 (mark_memory): Also mark Lisp_Objects by fetching pointer words
5199 and widening them to Lisp_Objects. This would work even if
5200 USE_LSB_TAG is defined and wide integers are used, which might
5201 happen in a future version of Emacs.
5202
3c9dfce6
CY
52032012-02-25 Chong Yidong <cyd@gnu.org>
5204
fa74b241
CY
5205 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
5206 Doc fix.
5207
3c9dfce6
CY
5208 * xselect.c (Fx_selection_exists_p): Doc fix.
5209 (x_clipboard_manager_save_all): Print an informative message
5210 before saving to clipboard manager.
5211
9486df08
CY
52122012-02-24 Chong Yidong <cyd@gnu.org>
5213
5214 * keyboard.c (process_special_events): Handle all X selection
5215 requests in kbd_buffer, not just the next one (Bug#8869).
5216
f01d3321
CY
52172012-02-23 Chong Yidong <cyd@gnu.org>
5218
5219 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
5220 call when setting menu-bar-lines and tool-bar-lines parameters.
5221 (unwind_create_frame_1): New helper function.
5222
5223 * window.c (inhibit_window_configuration_change_hook): New var.
5224 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 5225 (syms_of_window): Initialize it.
f01d3321 5226
86b847b6
CY
52272012-02-22 Chong Yidong <cyd@gnu.org>
5228
5229 * xterm.c (x_draw_image_relief): Add missing type check for
5230 Vtool_bar_button_margin (Bug#10743).
5231
a59225b1
CY
52322012-02-21 Chong Yidong <cyd@gnu.org>
5233
5234 * fileio.c (Vfile_name_handler_alist): Doc fix.
5235
5236 * buffer.c (Fget_file_buffer): Protect against invalid file
5237 handler return value.
5238
310f5bd4
PE
52392012-02-20 Paul Eggert <eggert@cs.ucla.edu>
5240
cb3a28cc
PE
5241 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
5242 when computing $valmask.
5243
310f5bd4
PE
5244 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
5245 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
5246 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
5247 It's useless in that case, and it can cause problems on hosts
5248 that allocate halves of EMACS_INT values separately.
5249 Reported by Dan Horák. Diagnosed by Andreas Schwab in
5250 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
5251 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
5252 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
5253 it avoids undefined behavior on hosts where shifting right by more
5254 than the word width has undefined behavior.
5255
2375c96a
CY
52562012-02-19 Chong Yidong <cyd@gnu.org>
5257
5258 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
5259 (Funhandled_file_name_directory, Ffile_name_as_directory)
5260 (Fdirectory_file_name, Fexpand_file_name)
5261 (Fsubstitute_in_file_name): Protect against invalid file handler
5262 return values (Bug#10845).
5263
3eb49e71
EZ
52642012-02-18 Eli Zaretskii <eliz@gnu.org>
5265
5266 * .gdbinit (pitx): Fix incorrect references to fields of the
5267 iterator stack.
5268
7b926f3f
CY
52692012-02-17 Chong Yidong <cyd@gnu.org>
5270
5271 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
5272
11273115
PE
52732012-02-15 Paul Eggert <eggert@cs.ucla.edu>
5274
5275 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
5276 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
5277
c3a70e2b
CY
52782012-02-15 Chong Yidong <cyd@gnu.org>
5279
5280 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
5281 marked as special. Also, starting docstrings with * is obsolete.
5282
0ca43699
AS
52832012-02-13 Andreas Schwab <schwab@linux-m68k.org>
5284
5285 * gnutls.c (emacs_gnutls_write): Fix last change.
5286
2e8f3c56
LI
52872012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
5288
5289 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
5290 send_process.
5291
af70074f
SM
52922012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
5293
5294 * keymap.c (Fsingle_key_description): Handle char ranges.
5295
95986d52
CY
52962012-02-12 Chong Yidong <cyd@gnu.org>
5297
afd83bd1
CY
5298 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
5299 as that creates a dangerous corner case.
5300
95986d52
CY
5301 * window.c (Fdelete_window_internal): Invalidate the mouse
5302 highlight (Bug#9904).
5303
bd7da63e
GM
53042012-02-12 Glenn Morris <rgm@gnu.org>
5305
5306 * xselect.c (Fx_own_selection_internal)
5307 (Fx_get_selection_internal, Fx_disown_selection_internal)
5308 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
5309 * nsselect.m (Fx_own_selection_internal)
5310 (Fx_disown_selection_internal, Fx_selection_exists_p)
5311 (Fx_selection_owner_p, Fx_get_selection_internal):
5312 Sync docs and argument specs with the xselect.c versions.
5313
77abcbc2
LI
53142012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
5315
5316 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
5317
90b671e2
EZ
53182012-02-11 Eli Zaretskii <eliz@gnu.org>
5319
1c0ca0b7
EZ
5320 * w32select.c (Fx_selection_exists_p): Sync doc string and
5321 argument list with xselect.c. (Bug#10783)
5322
5323 * w16select.c (Fx_selection_exists_p): Sync doc string and
5324 argument list with xselect.c. (Bug#10783)
90b671e2 5325
49241268
GM
53262012-02-10 Glenn Morris <rgm@gnu.org>
5327
5328 * fns.c (Fsecure_hash): Doc fix.
5329
f998bbe7 53302012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
5331
5332 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
5333
0992bd9c
CY
53342012-02-07 Chong Yidong <cyd@gnu.org>
5335
5336 * buffer.c (Fbuffer_local_variables)
5337 (buffer_lisp_local_variables): Handle unbound vars correctly;
5338 don't let Qunbound leak into Lisp.
5339
af008560
GM
53402012-02-07 Glenn Morris <rgm@gnu.org>
5341
dd605cc4
GM
5342 * image.c (Fimagemagick_types): Doc fix.
5343
af008560
GM
5344 * image.c (imagemagick-render-type): Change it from a lisp object
5345 to an integer. Move the doc here from the lisp manual.
5346 Treat all values not equal to 0 the same.
5347
1449fa1d
CY
53482012-02-06 Chong Yidong <cyd@gnu.org>
5349
5350 * doc.c (store_function_docstring): Avoid applying docstring of
5351 alias to base function (Bug#2603).
5352
3723ec07
AS
53532012-02-04 Andreas Schwab <schwab@linux-m68k.org>
5354
5355 * .gdbinit (pp1, pv1): Remove redundant defines.
5356 (pr): Use pp.
5357
79c1cc1e
CY
53582012-02-04 Chong Yidong <cyd@gnu.org>
5359
5360 * nsterm.m: Declare a global (Bug#10694).
5361
d7f29f8e
EZ
53622012-02-04 Eli Zaretskii <eliz@gnu.org>
5363
cae07000
SM
5364 * w32.c (get_emacs_configuration_options):
5365 Include --enable-checking, if specified, in the return value.
d7f29f8e 5366
3b95a6f9
MR
53672012-02-04 Martin Rudalics <rudalics@gmx.at>
5368
5369 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
5370 after rounding frame sizes. (Bug#9723)
5371
d6fa96a6
EZ
53722012-02-04 Eli Zaretskii <eliz@gnu.org>
5373
5374 * keyboard.c (adjust_point_for_property): Don't position point
5375 before BEGV. (Bug#10696)
5376
df0b2940
PE
53772012-02-03 Paul Eggert <eggert@cs.ucla.edu>
5378
5379 Handle overflow when computing char display width (Bug#9496).
5380 * character.c (char_width): Return EMACS_INT, not int.
5381 (char_width, c_string_width): Check for overflow when
5382 computing the width; this is possible now that individual
5383 characters can have unbounded width. Problem introduced
5384 by merge from Emacs 23 on 2012-01-19.
5385
6bee44d6
MA
53862012-02-02 Michael Albinus <michael.albinus@gmx.de>
5387
5388 * dbusbind.c (Fdbus_register_method): Mention the return value
5389 :ignore in the docstring.
5390
44f92739
GM
53912012-02-02 Glenn Morris <rgm@gnu.org>
5392
1b9f60cc
GM
5393 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
5394
44f92739
GM
5395 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
5396 Unconditionally set to t. (Bug#10673)
5397 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
5398 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
5399 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
5400
c5d3843c
KH
54012012-02-02 Kenichi Handa <handa@m17n.org>
5402
5403 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
5404 0, do not call append_composite_glyph.
5405
159462d4 54062012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
5407
5408 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
5409 NULL (Bug#6988).
5410 (x_produce_glyphs): If the component of a composition is a null
5411 string, set it->pixel_width to 1 to avoid zero-width glyph.
5412
78cef877
EZ
54132012-02-01 Eli Zaretskii <eliz@gnu.org>
5414
5415 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
5416 first 2 arguments are identical. This makes inserting large
5417 output from a subprocess an order of magnitude faster on
5418 MS-Windows, where all sbrk'ed memory is always contiguous.
5419
97897668
GM
54202012-01-31 Glenn Morris <rgm@gnu.org>
5421
5422 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 5423 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
5424 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
5425
31fd3586
GM
54262012-01-29 Glenn Morris <rgm@gnu.org>
5427
5428 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
5429
0e24a8b2
CY
54302012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
5431
5432 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
5433
cc0adcb0
CY
54342012-01-28 Chong Yidong <cyd@gnu.org>
5435
5436 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
5437
acc28cb9
CY
54382012-01-26 Chong Yidong <cyd@gnu.org>
5439
9c69cfb7
CY
5440 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
5441
acc28cb9
CY
5442 * search.c (Fsearch_forward, Fsearch_backward): Document negative
5443 repeat counts (Bug#10507).
5444
48da7392
GM
54452012-01-26 Glenn Morris <rgm@gnu.org>
5446
5447 * lread.c (syms_of_lread): Doc fix.
5448
14af5f7f
CY
54492012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
5450
5451 * coding.c (encode_designation_at_bol): Change return value to
5452 EMACS_INT.
5453
0b21c100
CY
54542012-01-25 Chong Yidong <cyd@gnu.org>
5455
5456 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
5457
3c2907f7
CY
54582012-01-21 Chong Yidong <cyd@gnu.org>
5459
5460 * floatfns.c (Fcopysign): Make the second argument non-optional,
5461 since nil is not allowed anyway.
5462
959ad23f
AS
54632012-01-21 Andreas Schwab <schwab@linux-m68k.org>
5464
5465 * process.c (read_process_output): Use p instead of XPROCESS (proc).
5466 (send_process): Likewise.
5467
34a02f46
MR
54682012-01-19 Martin Rudalics <rudalics@gmx.at>
5469
5470 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
5471 (Vwindow_persistent_parameters): Do not use Qstate.
5472 Rewrite doc-strings.
34a02f46 5473
1259009a 54742012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
5475
5476 * character.c (char_width): New function.
70d4fdf6
GM
5477 (Fchar_width, c_string_width, lisp_string_width):
5478 Use char_width (Bug#9496).
25ed9e61 5479
6a6ee00d
MR
54802012-01-16 Martin Rudalics <rudalics@gmx.at>
5481
5482 * window.c (Vwindow_persistent_parameters): New variable.
5483 (Fset_window_configuration, save_window_save): Handle persistent
5484 window parameters.
5485
c85efaf7
EZ
54862012-01-14 Eli Zaretskii <eliz@gnu.org>
5487
5488 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
5489 thrashing the stack of the thread. (Bug#9087)
5490
5944709e
PE
54912012-01-12 Paul Eggert <eggert@cs.ucla.edu>
5492
5493 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
5494
e71f5d99
EZ
54952012-01-11 Eli Zaretskii <eliz@gnu.org>
5496
5497 * xdisp.c (rows_from_pos_range): Handle the case where the
5498 highlight ends on a newline. (Bug#10464)
5499 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
5500 he end column for display of highlight that ends on a newline
5501 before a R2L line.
5502
ce316182
GM
55032012-01-11 Glenn Morris <rgm@gnu.org>
5504
5505 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
5506 from load-path also when installation-directory is nil. (Bug#10208)
5507
5b43da69
GM
55082012-01-10 Glenn Morris <rgm@gnu.org>
5509
74cc8ff9
GM
5510 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
5511
7d8d6e4e
GM
5512 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
5513 Update template values to be closer to their typical values these days.
5b43da69 5514
a0db8d43
EZ
55152012-01-09 Eli Zaretskii <eliz@gnu.org>
5516
5517 * xdisp.c (rows_from_pos_range): Accept additional argument
5518 DISP_STRING, and accept any glyph in a row whose object is that
5519 string as eligible for mouse highlight. Fixes mouse highlight of
5520 display strings from overlays. (Bug#10464)
5521
9a0115ab 55222012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 5523
b9110d6a 5524 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
5525 * fileio.c (auto_saving_dir_umask): New static var.
5526 (Fmake_directory_internal): Use it.
5527 (do_auto_save_make_dir): Set it, instead of invoking chmod after
5528 creating the directory. The old code temporarily assigns
5529 too-generous permissions to the directory.
5530 (do_auto_save_eh): Clear it.
b9110d6a 5531 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
5532 that the var is always cleared.
5533
6c1bd3f3
EZ
55342012-01-07 Eli Zaretskii <eliz@gnu.org>
5535
5536 * search.c (scan_buffer): Pass character positions to
5537 know_region_cache, not byte positions. (Bug#6540)
5538
069d2b50
L
55392012-01-07 LynX <_LynX@bk.ru> (tiny change)
5540
5541 * w32.c (sys_rename): Report EXDEV when rename of a directory
5542 fails because the target is on another logical disk. (Bug#10284)
5543
75bf0d33
DB
55442012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
5545
5546 * xterm.c (x_embed_request_focus): New function.
5547
5548 * xterm.h: Add prototype.
5549
5550 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
5551
1c6e5a32
GM
55522012-01-05 Glenn Morris <rgm@gnu.org>
5553
5554 * emacs.c (emacs_copyright): Update short copyright year to 2012.
5555
651e947e
EZ
55562012-01-01 Eli Zaretskii <eliz@gnu.org>
5557
5558 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
5559 Load gnutls_transport_set_lowat only if GnuTLS version is below
5560 2.11.1.
5561 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
5562 GnuTLS versions below 2.11.1.
5563
3778cdd8
AL
55642011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
5565
5566 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
5567 to the doc string advising against its use for altering the way
5568 windows are scrolled.
5569
0e5317f7
KH
55702011-12-28 Kenichi Handa <handa@m17n.org>
5571
5572 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
5573 coding-system ASCII compatible only when it does not produce BOM
5574 on encoding (Bug#10383).
5575
93d5ca1f
JD
55762011-12-26 Jan Djärv <jan.h.d@swipnet.se>
5577
5578 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
5579 can scroll.
5580 (create_and_show_popup_menu): Always use menu_position_func for
5581 Gtk3 (Bug#10361).
5582
ca22b785
AS
55832011-12-24 Andreas Schwab <schwab@linux-m68k.org>
5584
5585 * callint.c (Fcall_interactively): Don't truncate prompt string.
5586
d048e1e6
EZ
55872011-12-23 Eli Zaretskii <eliz@gnu.org>
5588
5589 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
5590 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 5591 resumed from there (after widening). (Bug#10360)
d048e1e6 5592
5ccaba1f
JD
55932011-12-22 Jan Djärv <jan.h.d@swipnet.se>
5594
5595 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
5596
204ee57f
JD
55972011-12-21 Jan Djärv <jan.h.d@swipnet.se>
5598
b81d40f0
JB
5599 * nsterm.m (x_free_frame_resources):
5600 Release f->output_data.ns->miniimage.
204ee57f
JD
5601 (ns_index_color): Fix indentation. Do not retain
5602 color_table->colors[i].
5603
5604 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
5605 before returning.
5606
5607 * nsfns.m (x_set_background_color): Assign return value from
5608 ns_index_color to face-background instead of NSColor*.
5609 (ns_implicitly_set_icon_type): Fix indentation.
5610 Change assignment in for loop to comparison.
5611
5612 * emacs.c (ns_pool): New variable.
5613 (main): Assign ns_pool.
5614 (Fkill_emacs): Call ns_release_autorelease_pool.
5615
5616 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
5617 autorelease fdesc, release fdAttrs and tdict.
5618 (ns_get_covering_families): Release charset.
5619 (ns_findfonts): Release NSFontDescriptor created with new.
5620 (ns_uni_to_glyphs): Fix indentation.
5621 (setString): Release attrStr before assigning new value.
5622
c803b2b7
JD
56232011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5624
678f4426
JD
5625 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
5626 and NS_IMPL_COCOA.
5627 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
5628 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
5629
cd394be1 56302011-12-18 David Reitter <reitter@cmu.edu>
678f4426 5631
5fecd5fc
JD
5632 * nsterm.m (ns_term_init): Subscribe for notifications
5633 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
5634 to method trackingNotification in EmacsMenu.
5635
5636 * nsmenu.m (trackingMenu): New variable.
3771cb17 5637 (trackingNotification): New method (from Aquamacs).
5fecd5fc 5638 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 5639 from Aquamacs (Bug#7030).
678f4426
JD
5640
56412011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 5642
c803b2b7
JD
5643 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
5644 (symbol_to_nsstring): Fix indentation.
5645 (ns_symbol_to_pb): New function.
cae07000
SM
5646 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
5647 (Fns_rotate_cut_buffers_internal): Remove.
5648 (Fns_store_selection_internal): Rename from
c803b2b7
JD
5649 Fns_store_cut_buffer_internal.
5650 (ns_get_foreign_selection, Fx_own_selection_internal)
5651 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
5652 (Fns_get_selection_internal, Fns_store_selection_internal):
5653 Use ns_symbol_to_pb and check if return value is nil.
5654 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
5655 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
5656 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
5657 renamed to Sns_store_selection_internal.
5658 (ns_handle_selection_request): Move code to Fx_own_selection_internal
5659 and remove this function.
5660 (ns_handle_selection_clear): Remove, never used.
5661 (Fx_own_selection_internal): Move code from ns_handle_selection_request
5662 here.
5663
e1b01a3a
KB
56642011-12-17 Ken Brown <kbrown@cornell.edu>
5665
5666 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
5667 GID is unknown (Bug#10257).
5668
2adb6e85
PE
56692011-12-17 Paul Eggert <eggert@cs.ucla.edu>
5670
5671 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
5672 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
5673 which caused a build failure on GNU/Linux IA-64. This problem was
5674 introduced by my 2011-10-07 patch.
5675
d1d7b339
JL
56762011-12-15 Juri Linkov <juri@jurta.org>
5677
5678 * image.c (imagemagick_error): New function. (Bug#10112)
5679 (imagemagick_load_image): Comment out `MagickSetResolution' call.
5680 Use `imagemagick_error' where ImageMagick functions return
5681 `MagickFalse'.
5682 (Fimagemagick_types): Add `Fnreverse' to return the list in the
5683 proper order.
5684
100d5755
KH
56852011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5686
5687 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
5688 fill background (Bug#8992).
5689
454592a6
MR
56902011-12-13 Martin Rudalics <rudalics@gmx.at>
5691
5692 * window.c (Vwindow_combination_resize)
5693 (Vwindow_combination_limit): Use t instead of non-nil in
5694 doc-strings.
61d4b438
MR
5695 (Vrecenter_redisplay): Add first sentence of doc-string on
5696 separate line.
53524d93 5697 (Frecenter): Fix doc-string typo.
454592a6 5698
3633e3aa
KH
56992011-12-11 Kenichi Handa <handa@m17n.org>
5700
5701 * coding.c (Funencodable_char_position): Pay attention to the
5702 buffer text relocation (Bug#9389).
5703
7b9d523a 57042011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 5705
7b9d523a
JD
5706 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
5707 gtk_init (Bug#10100).
5708
b73189c6
EZ
57092011-12-10 Eli Zaretskii <eliz@gnu.org>
5710
5711 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
5712 IT->string is nil. (Bug#10263)
5713
f7dfe5d6
JD
57142011-12-10 Jan Djärv <jan.h.d@swipnet.se>
5715
83faebb4
JD
5716 * nsterm.h (x_free_frame_resources): Declare.
5717
f7dfe5d6
JD
5718 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
5719 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
5720
5721 * nsterm.h (ns_get_defaults_value): Declare.
5722
5723 * nsterm.m (ns_default): Call ns_get_defaults_value.
5724
7cd4e72c
EZ
57252011-12-09 Eli Zaretskii <eliz@gnu.org>
5726
5727 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
5728 (Bug#10170)
5729
b34d7317
YM
57302011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5731
5732 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
5733 that where the value of an _OBJC_* symbol points to is in the .bss
5734 section (Bug#10240).
5735
76470ad1
KH
57362011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
5737
5738 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 5739 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 5740
745fff94
KH
57412011-12-08 Kenichi Handa <handa@m17n.org>
5742
5743 * ftfont.c (get_adstyle_property): Fix previous change
5744 (Bug#10233).
5745
6e44397c
JB
57462011-12-07 Juanma Barranquero <lekktu@gmail.com>
5747
5748 * w32.c (init_environment): If no_site_lisp, remove site-lisp
5749 dirs from the default value of EMACSLOADPATH (bug#10208).
5750
7efa6272
GM
57512011-12-07 Glenn Morris <rgm@gnu.org>
5752
5753 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
5754 installation and source directories as well. (Bug#10208)
5755
f6fc4d87
CY
57562011-12-06 Chong Yidong <cyd@gnu.org>
5757
5758 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
5759
2bf26180
GM
57602011-12-06 Glenn Morris <rgm@gnu.org>
5761
5762 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
5763 as an error, not just -1. (Bug#10217)
5764
3a6ad4f0
CY
57652011-12-05 Chong Yidong <cyd@gnu.org>
5766
5767 * keyboard.c (process_special_events): New function.
5768 (swallow_events, Finput_pending_p): Use it (Bug#10195).
5769
75a3b399
PE
57702011-12-05 Paul Eggert <eggert@cs.ucla.edu>
5771
5772 * coding.c (encode_designation_at_bol): Don't use uninitialized
5773 local variable (Bug#9318).
5774
c3c9e25e
KH
57752011-12-05 Kenichi Handa <handa@m17n.org>
5776
5777 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
5778 return Qnil (Bug#8046, Bug#10193).
5779
5eb05ea3
KH
57802011-12-05 Kenichi Handa <handa@m17n.org>
5781
5782 * coding.c (encode_designation_at_bol): New args charbuf_end and
5783 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
5784 (coding_set_source): Return how many bytes coding->source was
5785 relocated.
5786 (coding_set_destination): Return how many bytes
5787 coding->destination was relocated.
5788 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 5789 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
5790
57912011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
5792
5793 * coding.c (CODING_CHAR_CHARSET_P): New macro.
5794 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
5795 macro (Bug#9318).
5796
57972011-12-05 Andreas Schwab <schwab@linux-m68k.org>
5798
5799 The following changes are to fix Bug#9318.
5800
a79703f5 5801 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
5802 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
5803 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 5804 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 5805
7dbda6df
JB
58062011-12-05 Juanma Barranquero <lekktu@gmail.com>
5807
5808 * lisp.h (process_quit_flag): Fix external declaration.
5809
6d5eb5b0
SM
58102011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
5811
5812 Don't macro-inline non-performance-critical code.
5813 * eval.c (process_quit_flag): New function.
5814 * lisp.h (QUIT): Use it.
5815
a0c3fad0
JD
58162011-12-04 Jan Djärv <jan.h.d@swipnet.se>
5817
5818 * nsfns.m (get_geometry_from_preferences): New function.
5819 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
5820
6c07aac2
AS
58212011-12-04 Andreas Schwab <schwab@linux-m68k.org>
5822
5823 * emacs.c (Qkill_emacs): Define.
5824 (syms_of_emacs): Initialize it.
5825 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
5826 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
5827 (quit_throw_to_read_char): Add parameter `from_signal'.
5828 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
5829 * lisp.h (QUIT): Call Fkill_emacs if requested.
5830
c052ead4
JD
58312011-12-03 Jan Djärv <jan.h.d@swipnet.se>
5832
5833 * widget.c (update_wm_hints): Return if wmshell is null.
5834 (widget_update_wm_size_hints): New function.
5835
5836 * widget.h (widget_update_wm_size_hints): Declare.
5837
5838 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
5839 widget_update_wm_size_hints (Bug#10104).
5840
9e49252b
EZ
58412011-12-03 Eli Zaretskii <eliz@gnu.org>
5842
5843 * xdisp.c (handle_invisible_prop): If the invisible text ends just
5844 before a newline, prepare the bidi iterator for consuming the
5845 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 5846 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 5847
02b16839
JL
58482011-12-02 Juri Linkov <juri@jurta.org>
5849
5850 * search.c (Fword_search_regexp): New Lisp function created from
5851 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
5852 (Fword_search_backward, Fword_search_forward)
5853 (Fword_search_backward_lax, Fword_search_forward_lax):
5854 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
5855 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
5856
0068070e
SM
58572011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
5858
5859 * fileio.c (Finsert_file_contents): Move after-change-function call
5860 to before the "handled:" label, since all "goto handled" appear in
5861 cases where the *-change-functions have already been properly called
5862 (bug#10117).
5863
3360a3fc
AS
58642011-12-01 Andreas Schwab <schwab@linux-m68k.org>
5865
5866 * keyboard.c (interrupt_signal): Don't call kill-emacs when
5867 waiting for input. (Bug#10169)
5868
73d6c093
EZ
58692011-11-30 Eli Zaretskii <eliz@gnu.org>
5870
5871 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
5872 verifies glyph row's hash code--we have just reallocated the
5873 glyphs, so their contents can be complete garbage. (Bug#10164)
5874
febe6bea
JB
58752011-11-30 Juanma Barranquero <lekktu@gmail.com>
5876
5877 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
5878
801a4313
EZ
58792011-11-30 Eli Zaretskii <eliz@gnu.org>
5880
5881 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
5882 attributes are tested _before_ calling verify_row_hash, to protect
5883 against GCC re-ordering of the tests. (Bug#10164)
5884
2b56b87e
JD
58852011-11-29 Jan Djärv <jan.h.d@swipnet.se>
5886
5887 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
5888
5889 * xterm.c (handle_one_xevent): Only set async_visible and friends
5890 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 5891 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
5892 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
5893
dbf31225
PE
58942011-11-28 Paul Eggert <eggert@cs.ucla.edu>
5895
5896 Remove GCPRO-related macros that exist only to avoid shadowing locals.
5897 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
5898 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
5899 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
5900 All uses changed to use GCPRO1 etc.
5901 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
5902 Revert to old implementation (i.e., before 2011-03-11).
5903
1305621b
YM
59042011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5905
5906 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
5907 of scroll runs so as to avoid assigning disabled bogus rows and
5908 unnecessary graphics copy operations.
5909
8c9afb46
EZ
59102011-11-27 Eli Zaretskii <eliz@gnu.org>
5911
5912 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
5913 (snprintf) [_MSC_VER]: Redirect to _snprintf.
5914 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
5915 (malloc, free, realloc, calloc): Redirect to e_* only when
5916 compiling Emacs.
5917
5918 * lisp.h (GCTYPEBITS): Move before first use.
5919 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
5920 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
5921 this macro definition.
5922
5923 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
5924 _MSC_VER.
5925
54e9e3bf
JD
59262011-11-27 Jan Djärv <jan.h.d@swipnet.se>
5927
6d5eb5b0
SM
5928 * gtkutil.c (xg_create_frame_widgets):
5929 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
5930 present with Gtk+ 2.0.
5931
83aca1cb
PE
59322011-11-26 Paul Eggert <eggert@cs.ucla.edu>
5933
5934 * fileio.c (Finsert_file_contents): Undo previous change; see
5935 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
5936
5b76caa4
PE
59372011-11-26 Paul Eggert <eggert@cs.ucla.edu>
5938
5939 Rename locals to avoid shadowing.
5940 * fileio.c (Finsert_file_contents):
5941 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
5942 * process.c (wait_reading_process_output):
5943 Rename inner 'proc' to 'p' to avoid shadowing.
5944 Indent for consistency with usual Emacs style.
5945
8c535114
EZ
59462011-11-25 Eli Zaretskii <eliz@gnu.org>
5947
5948 * xdisp.c (redisplay_window): If cursor row is not fully visible
5949 after recentering, and scroll-conservatively is set to a large
5950 number, scroll window by a few more lines to make the cursor fully
5951 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
5952 (start_display): Don't move to the next line if the display should
5953 start at a newline that is part of a display vector or an overlay
5954 string. (Bug#10119)
8c535114 5955
fa4fdb5c
JL
59562011-11-24 Juri Linkov <juri@jurta.org>
5957
5958 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
5959 after the `MagickPingImage' call. (Bug#10112)
5960
90ec88df
CY
59612011-11-23 Chong Yidong <cyd@gnu.org>
5962
5963 * window.c (Fcoordinates_in_window_p): Accept only live windows.
5964
56e2e794
MR
59652011-11-23 Martin Rudalics <rudalics@gmx.at>
5966
5967 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
5968 making another buffer current. (Bug#10114)
5969
b6e64c41
GM
59702011-11-23 Glenn Morris <rgm@gnu.org>
5971
5972 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
5973
6b21de18
CY
59742011-11-23 Chong Yidong <cyd@gnu.org>
5975
5976 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
5977 using it (Bug#5984).
5978
b12cd789
EZ
59792011-11-22 Eli Zaretskii <eliz@gnu.org>
5980
5981 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
5982 and header-lines, as they don't have one computed for them.
5983 (Bug#10098)
5984
5985 * .gdbinit (prow): Make displayed values more self-explaining.
5986 Add row's hash code.
5987
261b6fd4
LMI
59882011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
5989
5990 * process.c (wait_reading_process_output): Fix asynchrounous
5991 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 5992 (wait_reading_process_output): Add comment and URL.
261b6fd4 5993
e7cfd277
JD
59942011-11-21 Jan Djärv <jan.h.d@swipnet.se>
5995
5996 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
5997
a9b9b7f5
CY
59982011-11-21 Chong Yidong <cyd@gnu.org>
5999
6000 * window.c (Fnext_window, Fprevious_window): Doc fix.
6001
b0d15b4f
SM
60022011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
6003
6004 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
6005
fe7a3057
JB
60062011-11-20 Juanma Barranquero <lekktu@gmail.com>
6007
6008 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
6009
d2999b1a
MR
60102011-11-20 Martin Rudalics <rudalics@gmx.at>
6011
6012 * window.c (Fset_window_combination_limit): Rename argument
6013 STATUS to LIMIT.
6014 (Vwindow_combination_limit): Remove "status" from doc-string.
6015
d5ff9cd0
AS
60162011-11-20 Andreas Schwab <schwab@linux-m68k.org>
6017
6018 * m/ibms390.h: Remove.
6019 * m/ibms390x.h: Don't include "ibms390.h".
6020
a5bb9bd3
SM
60212011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
6022
6023 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
6024 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
6025
cd1181db
JB
60262011-11-20 Juanma Barranquero <lekktu@gmail.com>
6027
6028 * casetab.c (Fset_case_table):
6029 * charset.c (Fcharset_after): Fix typos.
6030
615a3b8d 60312011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 6032
17e845af
PE
6033 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
6034 Otherwise, valgrind does not work on some platforms.
6035 Problem reported by Andreas Schwab in
6a0bf43d
PE
6036 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
6037 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
6038 is set, removing the need for VIRT_ADDRESS_VARIES.
6039 (PURE_P): Use a more-efficient implementation that needs just one
6040 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
6041 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
6042 to 4 (xorl, subq, cmpq, setbe).
6043 * alloc.c (pure): Always extern now, since that's the
6044 VIRT_ADDR_VARIES behavior.
6045 (PURE_POINTER_P): Use a single comparison, not two, for
6046 consistency with the new puresize.h.
6047 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
6048 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
6049 Remove VIRT_ADDR_VARIES no longer needed.
6050
f8fe6f96
EZ
60512011-11-19 Eli Zaretskii <eliz@gnu.org>
6052
6053 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
6054 (erase_phys_cursor, update_window_cursor, show_mouse_face)
6055 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
6056 behave as if the cursor position were at the window margin.
6057
6058 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
6059 and the cursor position is out of bounds, behave as if the cursor
6060 position were at the window margin. (Bug#10075)
6061
df05a53c
CY
60622011-11-18 Chong Yidong <cyd@gnu.org>
6063
6064 * window.c (Fwindow_combination_limit): Make first argument
6065 non-optional, since it is meaningless for live windows like the
6066 selected window.
61ccba97 6067
2071918e
DA
60682011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
6069
6070 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
6071
b50a28de
SM
60722011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
6073
6074 * intervals.c: Fix grafting over the whole buffer (bug#10071).
6075 (graft_intervals_into_buffer): Simplify.
6076
015137db
EZ
60772011-11-18 Eli Zaretskii <eliz@gnu.org>
6078
6079 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
6080 hash values of the two rows.
6081 (copy_row_except_pointers): Preserve the used[] arrays and the
6082 hash values of the two rows. (Bug#10035)
68c95424 6083 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
6084
6085 * xdisp.c (row_hash): New function, body extracted from
6086 compute_line_metrics.
6087 (compute_line_metrics): Call row_hash, instead of computing the
6088 hash code inline.
6089
6090 * dispnew.c (verify_row_hash): Call row_hash for computing the
6091 hash code of a row, instead of duplicating code from xdisp.c.
6092
6093 * dispextern.h (row_hash): Add prototype.
6094
a2addb04
TH
60952011-11-18 Tassilo Horn <tassilo@member.fsf.org>
6096
6097 * frame.c (delete_frame): Don't delete the terminal when the last
6098 X frame is closed if emacs is built with GTK toolkit.
6099
df85d315
JB
61002011-11-17 Juanma Barranquero <lekktu@gmail.com>
6101
6102 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
6103
a0c2d0ae
MR
61042011-11-17 Martin Rudalics <rudalics@gmx.at>
6105
6106 * window.c (Vwindow_splits): Rename to
6107 Vwindow_combination_resize. Suggested by Juri Linkov.
6108 (Fsplit_window_internal): Use Vwindow_combination_resize instead
6109 of Vwindow_splits.
6110
58179cce
JB
61112011-11-16 Juanma Barranquero <lekktu@gmail.com>
6112
7877f373
JB
6113 * nsfns.m (Fns_font_name):
6114 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 6115
b6f67890
MR
61162011-11-16 Martin Rudalics <rudalics@gmx.at>
6117
6118 * window.h (window): Rename slot "nest" to "combination_limit".
6119 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
6120 (Fset_window_nest): Rename to Fset_window_combination_limit.
6121 (Vwindow_nest): Rename to Vwindow_combination_limit.
6122 (recombine_windows, make_parent_window, make_window)
6123 (Fsplit_window_internal, saved_window)
6124 (Fset_window_configuration, save_window_save): Rename all
6125 occurrences of window_nest to window_combination_limit.
6126
c7015153
JB
61272011-11-15 Juanma Barranquero <lekktu@gmail.com>
6128
6129 * image.c (imagemagick_load_image): Fix typo.
6130
322ad6ec
EZ
61312011-11-14 Eli Zaretskii <eliz@gnu.org>
6132
6133 * xdisp.c (display_line): Move the call to
6134 highlight_trailing_whitespace before the call to
6135 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
6136 faces of all the glyphs to compute ROW's hash value.
6137 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 6138
f067b8ec
JB
61392011-11-14 Juanma Barranquero <lekktu@gmail.com>
6140
6141 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
6142 just return (bug#10044).
6143
1e5b2111
EZ
61442011-11-12 Eli Zaretskii <eliz@gnu.org>
6145
7ef3cbd5
EZ
6146 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
6147 with user-defined heap size. Bump the default size of the temacs
6148 heap to 27MB, to avoid memory warning when running temacs.
6149 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
6150
1e5b2111
EZ
6151 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
6152 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
6153 (verify_row_hash) [XASSERTS]: New function.
6154 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
6155 that the hash value of glyph rows is correct.
1e5b2111 6156
89d61221
MR
61572011-11-12 Martin Rudalics <rudalics@gmx.at>
6158
6159 * window.h (window): Remove splits slot.
6160 * window.c (Fwindow_splits, Fset_window_splits): Remove.
6161 (Fdelete_other_windows_internal, make_parent_window)
6162 (make_window, Fsplit_window_internal, Fdelete_window_internal)
6163 (Fset_window_configuration, save_window_save): Don't deal with
6164 split status of windows.
6165 (saved_window): Remove splits slot.
6166 (Vwindow_splits): Rewrite doc-string.
6167
97f18cc8
JD
61682011-11-11 Jan Djärv <jan.h.d@swipnet.se>
6169
6170 * xfns.c (unwind_create_frame):
6171 * nsfns.m (unwind_create_frame):
6172 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
6173 Vframe_list (Bug#9999).
6174
22a648b4
DA
61752011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
6176
0b381c7e 6177 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 6178
659afede
KH
61792011-11-11 Kenichi Handa <handa@m17n.org>
6180
6181 * callproc.c (Fcall_process): Set the member dst_multibyte of
6182 process_coding.
6183
9ac0394b
KH
61842011-11-11 Johan Bockgård <bojohan@gnu.org>
6185
6186 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
6187 avoid a crash (bug#9496).
6188
2fbdc249
CY
61892011-11-09 Chong Yidong <cyd@gnu.org>
6190
6191 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
6192 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
6193
ac6b1f81
PE
61942011-11-08 Paul Eggert <eggert@cs.ucla.edu>
6195
6196 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
6197
09db192c
PE
61982011-11-08 Paul Eggert <eggert@cs.ucla.edu>
6199
6200 Avoid some portability problems by eschewing 'extern inline' functions.
6201 The trivial performance wins aren't worth the portability hassles; see
6202 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
6203 et seq.
6204 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
6205 (window_box_width, window_box_left, window_box_left_offset)
6206 (window_box_right, window_box_right_offset): Undo previous change,
6207 by removing the "extern"s.
6208 * intervals.c (adjust_intervals_for_insertion)
6209 (adjust_intervals_for_deletion): Undo previous change,
6210 making these static again.
6211 (offset_intervals, temp_set_point_both, temp_set_point)
6212 (copy_intervals_to_string): No longer inline.
6213 * xdisp.c (window_text_bottom_y, window_box_width)
6214 (window_box_height, window_box_left_offset)
6215 (window_box_right_offset, window_box_left, window_box_right)
6216 (window_box): No longer inline.
6217
105216ed
CY
62182011-11-08 Chong Yidong <cyd@gnu.org>
6219
6220 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
6221 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
6222 Signal an error if not a live window.
105216ed
CY
6223 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
6224 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
6225
ae9e237f
JB
62262011-11-07 Juanma Barranquero <lekktu@gmail.com>
6227
6228 * lisp.h (syms_of_abbrev): Remove declaration.
6229 Reported by CHENG Gao <chenggao@royau.me>.
6230
c7aa8333
EZ
62312011-11-07 Eli Zaretskii <eliz@gnu.org>
6232
6233 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
6234 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
6235 of temacs in GUI mode.
6236
be7f5545
MR
62372011-11-07 Martin Rudalics <rudalics@gmx.at>
6238
6239 * window.h: Declare delete_all_child_windows instead of
6240 delete_all_subwindows.
6241 * window.c (Fwindow_nest, Fset_window_nest)
6242 (Fset_window_new_total, Fset_window_new_normal)
6243 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
6244 (delete_all_subwindows): Rename to delete_all_child_windows.
6245 (Fdelete_other_windows_internal, Fset_window_configuration):
6246 Call delete_all_child_windows instead of delete_all_subwindows.
6247 * frame.c (delete_frame): Call delete_all_child_windows instead
6248 of delete_all_subwindows.
6249
ca78dc43
PE
62502011-11-07 Paul Eggert <eggert@cs.ucla.edu>
6251
6252 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
6253 This is also needed for porting to any host where GC_MARK_STACK is
6254 not GC_MAKE_GCPROS_NOOPS.
6255 (which_symbols): Use it.
6256
a0241d01
KH
62572011-11-07 Kenichi Handa <handa@m17n.org>
6258
6259 * coding.c (coding_set_destination): Check coding->src_pos only
6260 when coding->src_object is a buffer (bug#9910).
6261
6262 * process.c (send_process): Set the member src_multibyte of coding
6263 to 0 (bug#9911) when sending a unibyte text.
6264
6265 * callproc.c (Fcall_process): Set the member src_multibyte of
6266 process_coding to 0 (bug#9912).
6267
a64bfdfa 62682011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
6269
6270 * xmenu.c (cleanup_widget_value_tree): New function.
6271 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
6272 calling free_menubar_widget_value_tree directly (Bug#9830).
6273
cb41b32a
PE
62742011-11-06 Paul Eggert <eggert@cs.ucla.edu>
6275
6276 Fix some portability problems with 'inline'.
6277 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
6278 (window_box_width, window_box_left, window_box_left_offset)
6279 (window_box_right, window_box_right_offset): Declare extern.
6280 Otherwise, these inline functions do not conform to C99 and
6281 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
6282 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
6283 * intervals.c (adjust_intervals_for_insertion)
6284 (adjust_intervals_for_deletion): Now extern, because otherwise the
6285 extern inline functions 'offset_intervals' couldn't refer to it.
6286 (static_offset_intervals): Remove.
6287 (offset_intervals): Rewrite using the old contents of
6288 static_offset_intervals. The old version didn't conform to C99
6289 because an extern inline function contained a reference to an
6290 identifier with static linkage.
6291
b7041366
AS
62922011-11-06 Andreas Schwab <schwab@linux-m68k.org>
6293
6294 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
6295 GC.
6296
88a37c4d
EZ
62972011-11-06 Eli Zaretskii <eliz@gnu.org>
6298
6299 * xdisp.c (init_iterator, reseat_to_string): Don't set the
6300 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
6301 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
6302 return Qleft_to_right.
6303
49745b39
CY
63042011-11-06 Chong Yidong <cyd@gnu.org>
6305
6306 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
6307 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
6308 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
6309 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
6310 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
6311 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
6312 (Fwindow_vscroll): Doc fix.
6313 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
6314 argument, since it makes no sense to pass a live window and for
6315 consistency with window-child.
6316
1f05cd82
CS
63172011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
6318
6319 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
6320 support MSVC.
6321
22610910
JR
63222011-11-05 Jason Rumney <jasonr@gnu.org>
6323
6324 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
6325 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
6326 fonts (Bug#6029).
6327 (add_font_entity_to_list): Fix logic errors in mixed boolean and
6328 bitwise arithmetic preventing use of unicode-sip and non-truetype
6329 opentype fonts.
6330
a06776b2
EZ
63312011-11-05 Eli Zaretskii <eliz@gnu.org>
6332
3ad924ba
EZ
6333 * s/ms-w32.h (fstat, stat, utime): Move redirections to
6334 "emacs"-only part.
6335
a06776b2
EZ
6336 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
6337 initialization code to keep similarity to xfns.c after changes
6338 from 2011-11-05.
6339
c9e7db78
JD
63402011-11-05 Jan Djärv <jan.h.d@swipnet.se>
6341
a97f8f3f
JD
6342 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
6343 (unwind_create_frame): New function (Bug#9943).
6344 (Fx_create_frame): Restructure code to be more similar to the one in
6345 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
6346 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
6347 Move terminal->reference_count++ just before making the frame official
6348 (Bug#9943).
6349
6350 * nsterm.m (x_free_frame_resources): New function.
6351 (x_destroy_window): Move code to x_free_frame_resources.
6352
c9e7db78 6353 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
6354 (Fx_create_frame, x_create_tip_frame):
6355 Move terminal->reference_count++ just before making the frame
75f1671a 6356 official. Move initialization of image_cache_refcount and
c9e7db78
JD
6357 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
6358
a6fc3b5c
EZ
63592011-11-05 Eli Zaretskii <eliz@gnu.org>
6360
6361 Support MSVC build with newer versions of Visual Studio.
6362 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
6363 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
6364 nt/gmake.defs.
6365
6366 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
6367 which are not supported by MSVC.
6368 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
6369 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
6370 bitfields.
6371 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
6372 types in bitfields.
6373 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
6374
6375 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
6376
58179cce 63772011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
6378
6379 Support MSVC build with newer versions of Visual Studio.
6380 * w32.c: Don't include w32api.h for MSVC.
6381 (init_environment) [_MSC_VER]: Call sys_access, not _access.
6382
6383 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
6384 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
6385 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
6386 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
6387 e_* cousins.
6388 (alloca) [_MSC_VER]: Define to _alloca.
6389
6390 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
6391
6392 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
6393
a58c13ed
EZ
63942011-11-04 Eli Zaretskii <eliz@gnu.org>
6395
6396 * xdisp.c (note_mouse_highlight): If either of
6397 previous/next-single-property-change returns nil, treat that as
6398 the beginning or the end of the buffer. (Bug#9955)
6399
fe0b6370
JD
64002011-11-04 Jan Djärv <jan.h.d@swipnet.se>
6401
a58c13ed 6402 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
6403 label is not null (Bug#9951).
6404 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
6405 may be NULL.
6406
89bd5ee1
EZ
64072011-11-04 Eli Zaretskii <eliz@gnu.org>
6408
6409 * window.c (Fwindow_body_size): Mention in the doc string that the
6410 return value is in frame's canonical units. (Bug#9949)
6411
84c3edb9
EZ
64122011-11-03 Eli Zaretskii <eliz@gnu.org>
6413
4e2fb5c7
EZ
6414 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
6415
84c3edb9 6416 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 6417 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 6418 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 6419
bc17a887
EZ
64202011-11-01 Eli Zaretskii <eliz@gnu.org>
6421
6422 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
6423 Don't stop backward scan on the continuation glyph, even though
6424 its CHARPOS is positive.
6d5eb5b0
SM
6425 (mouse_face_from_buffer_pos, note_mouse_highlight):
6426 Rename cover_string to disp_string.
bc17a887 6427
4ee88440
MR
64282011-11-01 Martin Rudalics <rudalics@gmx.at>
6429
6430 * window.c (temp_output_buffer_show): Don't use
6431 Vtemp_buffer_show_specifiers.
6432 (Vtemp_buffer_show_specifiers): Remove unused variable.
6433
c2ff3c02
EZ
64342011-10-30 Eli Zaretskii <eliz@gnu.org>
6435
6436 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
6437 past the beginning of the current glyph matrix.
6438
58179cce 64392011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
6440
6441 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
6442 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
6443 HAVE_GTK3 (Bug#9869).
b77a6a7f 6444
3b574623
JD
6445 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
6446 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
6447
b77a6a7f
JD
6448 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
6449
6450 * xterm.c: Declare x_handle_net_wm_state to return int.
6451 (handle_one_xevent): Check if we are iconified but don't have
6452 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
6453 (get_current_wm_state): Return non-zero if not hidden,
6454 check for _NET_WM_STATE_HIDDEN (Bug#9893).
6455 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
6456 (x_handle_net_wm_state): Return what get_current_wm_state returns.
6457 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
6458
196e41e4
PE
64592011-10-29 Paul Eggert <eggert@cs.ucla.edu>
6460
6461 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
6462 so that this new function doesn't get optimized away by a
6463 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
6464
021f2e1a
AS
64652011-10-29 Andreas Schwab <schwab@linux-m68k.org>
6466
6467 * frame.h (MOUSE_HL_INFO): Remove excess parens.
6468
8b058d44
EZ
64692011-10-29 Eli Zaretskii <eliz@gnu.org>
6470
6471 Fix the `xbytecode' command.
6472 * .gdbinit (xprintbytestr): New command.
b50a28de 6473 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
6474 (xbytecode): Print the byte-code string as well.
6475
4452fb80
EZ
64762011-10-29 Kim Storm <storm@cua.dk>
6477
8b058d44
EZ
6478 * alloc.c (which_symbols): New function.
6479
21b72067
AS
64802011-10-29 Andreas Schwab <schwab@linux-m68k.org>
6481
6482 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
6483 line. (Bug#9903)
6484
83ed7b5c
GM
64852011-10-29 Glenn Morris <rgm@gnu.org>
6486
6487 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
6488 Not clear what it was for, and it causes various bugs. (Bug#9839)
6489
5a7a728b
EZ
64902011-10-28 Eli Zaretskii <eliz@gnu.org>
6491
6492 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
6493 possible random value that matches one of those tested as
6494 condition to clear the mouse face.
6495
d3d0842f
CY
64962011-10-28 Chong Yidong <cyd@gnu.org>
6497
6498 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
6499
31b39d13
DN
65002011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
6501
6502 * window.c (make_window): Initialize phys_cursor_on_p.
6503
9aba6043
SM
65042011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
6505
6506 * lisp.h (struct Lisp_Symbol): Update comments.
6507
c20992f4
JB
65082011-10-28 Juanma Barranquero <lekktu@gmail.com>
6509
6510 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
6511
db4f02f2
EZ
65122011-10-28 Eli Zaretskii <eliz@gnu.org>
6513
6514 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
6515 <oslsachem@gmail.com> for helping to debug this.
6516
6517 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
6518 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
6519 (g_b_init_get_glyph_outline_w): New static variables.
6520 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
6521 (GetGlyphOutlineW_Proc): New typedefs.
6522 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
6523 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
6524 New functions.
6525 (w32font_open_internal, compute_metrics):
6526 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
6527 instead of calling the "wide" APIs directly.
6528
6529 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
6530
6531 * w32.h (syms_of_w32font): Add prototype.
6532
87e68db4
JB
65332011-10-27 Juanma Barranquero <lekktu@gmail.com>
6534
6535 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
6536 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
6537 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
6538 (Fmove_to_window_line): Doc fix.
6539
435c1d67
CY
65402011-10-27 Chong Yidong <cyd@gnu.org>
6541
6542 * process.c (make_process): Set gnutls_state to NULL.
6543
6544 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
6545 non-NULL, regardless of GNUTLS_INITSTAGE.
6546 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
6547 an error. Set process slots as soon as we allocate them.
6548
6549 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
6550
9c6c6f49
CY
65512011-10-27 Chong Yidong <cyd@gnu.org>
6552
9aba6043
SM
6553 * gnutls.c (emacs_gnutls_deinit): New function.
6554 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
6555 (Fgnutls_deinit, Fgnutls_boot): Use it.
6556
6557 * process.c (make_process): Initialize GnuTLS credentials to NULL.
6558 (deactivate_process): Call emacs_gnutls_deinit.
6559
657d08d3
JB
65602011-10-27 Juanma Barranquero <lekktu@gmail.com>
6561
6562 * image.c (x_create_x_image_and_pixmap):
6563 * w32.c (sys_rename, w32_delayed_load):
6564 * w32font.c (fill_in_logfont):
6565 * w32reg.c (x_get_string_resource): Silence compiler warnings.
6566
5430d399
JB
65672011-10-26 Juanma Barranquero <lekktu@gmail.com>
6568
6569 * w32fns.c (w32_default_color_map): New function,
6570 extracted from Fw32_default_color_map.
a7ef684b 6571 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 6572
fe0055fa
PE
65732011-10-25 Paul Eggert <eggert@cs.ucla.edu>
6574
6575 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
6576
e6346438
SM
65772011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
6578
6579 * keyboard.c (test_undefined): New function (bug#9751).
6580 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
6581
e112cc37
ET
65822011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
6583
6584 * sysdep.c (init_sys_modes): Fix the check for the controlling
6585 terminal (Bug#6649).
6586
7b5d6677
EZ
65872011-10-20 Eli Zaretskii <eliz@gnu.org>
6588
6589 * dispextern.h (struct bidi_it): New member next_en_type.
6590
6591 * bidi.c (bidi_line_init): Initialize the next_en_type member.
6592 (bidi_resolve_explicit_1): When next_en_pos is valid for the
6593 current character, check also for next_en_type being WEAK_EN.
6594 (bidi_resolve_weak): Don't enter the expensive loop if the current
6595 position is before next_en_pos. Record the bidi type of the first
6596 non-ET, non-BN character we find, in addition to its position.
6597 (bidi_level_of_next_char): Invalidate next_en_type when
6598 next_en_pos is over-stepped.
6599
7da0b018
PE
66002011-10-20 Paul Eggert <eggert@cs.ucla.edu>
6601
6602 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
6603 * editfns.c: Rewrite current-time-zone so that it invokes
6604 the equivalent of (format-time-string "%Z") to get the time zone name.
6605 This fixes a bug when the time zone name contains characters that
6606 need converting from the system time locale to Emacs internal format.
6607 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
6608 that patch fixed format-time-string to do the conversion, but
6609 I forgot to fix current-time-zone.
6610 (format_time_string): New function, containing most of
6611 what Fformat_time_string used to contain.
6612 (Fformat_time_string): Rewrite in terms of format_time_string.
6613 This doesn't change this function's behavior.
6614 (current-time-zone): Rewrite to use format_time_string.
6615 This fixes the bug reported by Michael Schierl in
6616 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
6617 Jason Rumney's 2007-06-07 change worked around this bug, but
6618 didn't fix it.
6619 * systime.h (tzname, timezone): Remove no-longer-used declarations.
6620
8547b010
EZ
66212011-10-19 Eli Zaretskii <eliz@gnu.org>
6622
6623 * xdisp.c (start_display): If the character at POS is displayed
6624 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
6625 (try_window_reusing_current_matrix): If a line ends in a display
6626 vector or the next line starts in a display vector, continue
6627 redrawing the window even though the character position of
6628 start_row was reached.
8547b010
EZ
6629 (Bug#9771, part 2)
6630
4e948d15
CY
66312011-10-18 Chong Yidong <cyd@gnu.org>
6632
6633 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
6634 with nobreak-char-display too.
6635
4787455f
EZ
66362011-10-18 Eli Zaretskii <eliz@gnu.org>
6637
6638 Fix part 3 of bug#9771.
6639 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
6640 (bidi_resolve_neutral): Don't enter the expensive loop looking for
6641 non-neutral characters if the current character is a paragraph
6642 separator (a.k.a. Newline). This avoids running the same
6643 expensive loop twice, once when we consume the preceding newline
6644 and the other time when the line actually needs to be displayed.
6645 Avoid the loop when we see neutrals on the base embedding level
6646 following a character whose directionality is the same as the
6647 paragraph's. This avoids running the expensive loop when a line
6648 ends in a long sequence of neutrals, like control characters.
6649 Add assertion against STRONG_AL type. Slightly rearrange code
6650 that determines the type of a neutral given the first non-neutral
6651 that follows it.
6652 (bidi_level_of_next_char): Set next_en_pos to zero when
6653 invalidating its info.
6654
2c91f553
EZ
66552011-10-17 Eli Zaretskii <eliz@gnu.org>
6656
6657 * xdisp.c (push_display_prop): Determine whether to record string
6658 or buffer position by IT->string, not by IT->method. Allow
6659 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
6660 (move_it_vertically_backward): Don't look for character position
6661 immediately after the newline when in a continuation line.
6662 (Bug#9771, part 1)
2c91f553 6663
c7b08b0d
MR
66642011-10-15 Martin Rudalics <rudalics@gmx.at>
6665
6666 * window.c (coordinates_in_window): Rewrite and delabelize
6667 vertical border check. (Bug#5357) (Bug#9618)
6668
6b02f655
SM
66692011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
6670
6671 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
6672 errors in XSetWindowBorder (bug#9310).
6673
81d40c92
DA
66742011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
6675
6676 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
6677 avoid crash when xmalloc overrun checking is enabled.
6678
d4172c3b
EZ
66792011-10-13 Eli Zaretskii <eliz@gnu.org>
6680
6681 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
6682 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
6683 cursor motion with <left> and <right> arrow keys.
6684
6685 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
6686 some callers set that themselves.
6687
b00eea75
EZ
66882011-10-12 Eli Zaretskii <eliz@gnu.org>
6689
6690 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
6691 display string and the previous row comes from the same string and
6692 is empty. (Bug#9739) (Bug#9738)
6693
8fe012c4
SM
66942011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
6695
6696 * doc.c (get_doc_string): Encode file name (bug#9735).
6697
0074aef2
EZ
66982011-10-12 Eli Zaretskii <eliz@gnu.org>
6699
79beb178
EZ
6700 * bidi.c (bidi_level_of_next_char):
6701 * xdisp.c (get_visually_first_element): Remove old incorrect
6702 comments regarding the Unicode Line Separator character.
6703
0074aef2
EZ
6704 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
6705
6e4b3fbe
DA
67062011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
6707
6708 * alloc.c (Fgc_status): Do not access beyond zombies array
6709 boundary if nzombies > MAX_ZOMBIES.
6710 * alloc.c (dump_zombies): Add missing format specifier.
6711
0324f3af
PE
67122011-10-12 Paul Eggert <eggert@cs.ucla.edu>
6713
b5525cac
PE
6714 * xdisp.c (set_cursor_from_row): Simplify conditionals,
6715 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
6716
0324f3af
PE
6717 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
6718 Some packages use them to denote characters with modifiers.
6719
e9b5f888
AS
67202011-10-11 Andreas Schwab <schwab@linux-m68k.org>
6721
6722 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
6723 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
6724 matching a pp-number. Rename parameter var to var1.
6725
127827c0
SM
67262011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
6727
6728 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
6729
c8fd3bd0
GM
67302011-10-08 Glenn Morris <rgm@gnu.org>
6731
6732 * callint.c (Fcall_interactively): Give a more explicit error for the
6733 'c' case with a non-character input. (Bug#8479)
6734
352ec8ff
EZ
67352011-10-08 Eli Zaretskii <eliz@gnu.org>
6736
03669ccb
EZ
6737 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
6738 lines.
7061c986
EZ
6739 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
6740 lines that are hscrolled on the left.
03669ccb 6741
352ec8ff
EZ
6742 * dispnew.c (buffer_posn_from_coords): Account for a possible
6743 presence of header-line. (Bug#4426)
6744
a66cfb1c
SM
67452011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
6746
6b02f655
SM
6747 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
6748 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 6749
7c5ee88e
PE
67502011-10-07 Paul Eggert <eggert@cs.ucla.edu>
6751
6752 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
6753 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
6754 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
6755 this makes Emacs dump core during garbage collection on rare
6756 occasions. sizeof is obviously inferior to offsetof here, so
6757 stick with offsetof.
6758 (GC_POINTER_ALIGNMENT): New macro.
6759 (mark_memory): Omit 3rd (offset) arg; caller changed.
6760 Don't assume EMACS_INT alignment is the same as pointer alignment.
6761
df1bbe5b
SM
67622011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
6763
6764 * keyboard.c (read_key_sequence_remapped): New var.
6765 (read_key_sequence): Compute remapping in the right buffer.
6766 (command_loop_1): Use read_key_sequence's remapping directly.
6767
51553db6
SM
67682011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
6769
32c1fffd
SM
6770 * dired.c (file_name_completion): Don't expand file name.
6771 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
6772 before checking file name handler.
6773
51553db6
SM
6774 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
6775 they've been requested explicitly (bug#9591).
6776
b6bd1599 67772011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
6778
6779 * keymap.c (Fsingle_key_description): Use make_specified_string
6780 instead of build_string to build string from push_key_description.
6781 (Bug#5193)
6782
f701dc2a
PE
67832011-09-30 Paul Eggert <eggert@cs.ucla.edu>
6784
4222c55d
PE
6785 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
6786 This fixes a Y2038 bug on 64-bit hosts.
6787 * buffer.c (reset_buffer):
6788 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
6789 (Fclear_buffer_auto_save_failure):
6790 Use 0, not -1, to represent an unset failure time, since time_t
6791 might not be signed.
6792
f701dc2a
PE
6793 Remove dependency on glibc malloc internals.
6794 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
6795 Move back here from lisp.h, but with their new implementations.
6796 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
6797 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
6798 * charset.c (charset_table_init): New static var.
6799 (syms_of_charset): Use it instead of xmalloc. This removes a
6800 dependency on glibc malloc internals. See Eli Zaretskii's comment in
6801 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
6802 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
6803 Move back to alloc.c.
6804 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
6805 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
6806
9ceebf39
JD
68072011-09-30 Jan Djärv <jan.h.d@swipnet.se>
6808
6809 * nsterm.m (windowDidResize): Call x_set_window_size only when
6810 ns_in_resize is true. Otherwise set pixelwidth/height and
6811 call change_frame_size (Bug#9628).
6812
cb993c58
PE
68132011-09-30 Paul Eggert <eggert@cs.ucla.edu>
6814
3930c88b
PE
6815 Port --enable-checking=all to Fedora 14 x86-64.
6816 * charset.c (syms_of_charset): Also account for glibc malloc's
6817 internal overhead when calculating the initial malloc maximum.
6818
cb993c58
PE
6819 Port --enable-checking=all to Fedora 14 x86.
6820 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
6821 Move to lisp.h.
6822 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
6823 (overrun_check_realloc, overrun_check_free):
6824 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
6825 That way, xmalloc returns a properly-aligned pointer even if
6826 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
6827 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
6828 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
6829 into account when calculating the initial malloc maximum.
6830 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
6831 Move here from alloc.c, so that charset.c can use it too.
6832 Properly align; the old code wasn't right for common 32-bit hosts
6833 when configured with --enable-checking=all.
6834 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
6835 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
6836
31bed486
EZ
68372011-09-29 Eli Zaretskii <eliz@gnu.org>
6838
04c70788 6839 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
6840 use EDOM.
6841
fbcaa2f3
EZ
68422011-09-28 Eli Zaretskii <eliz@gnu.org>
6843
6844 * xdisp.c (compute_display_string_end): If there's no display
6845 string at CHARPOS, return -1.
6846
6847 * bidi.c (bidi_fetch_char): When compute_display_string_end
6848 returns a negative value, treat the character as a normal
6849 character not covered by a display string. (Bug#9624)
6850
a239d4e9
JB
68512011-09-28 Juanma Barranquero <lekktu@gmail.com>
6852
6853 * lread.c (Fread_from_string): Fix typo in docstring.
6854
88652fd5
EZ
68552011-09-27 Eli Zaretskii <eliz@gnu.org>
6856
6857 * xdisp.c (handle_invisible_prop): If invisible text ends on a
6858 newline, reseat the iterator instead of bidi-iterating there one
6859 character at a time. (Bug#9610)
32c1fffd
SM
6860 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
6861 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 6862
ed497dd4
AS
68632011-09-27 Andreas Schwab <schwab@linux-m68k.org>
6864
6865 * lread.c (readevalloop): Use correct code for NBSP.
6866 (read1): Likewise. (Bug#9608)
6867
b2bf61aa
MA
68682011-09-25 Michael Albinus <michael.albinus@gmx.de>
6869
6870 * dbusbind.c (Fdbus_register_signal): When service is not
6871 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
6872
32bbb17c
GM
68732011-09-25 Glenn Morris <rgm@gnu.org>
6874
6875 * buffer.c (truncate-lines): Doc fix.
6876
94e0933e
CY
68772011-09-24 Chong Yidong <cyd@stupidchicken.com>
6878
6879 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
6880 (Fset_window_next_buffers): Doc fix.
6881
cddde921
GM
68822011-09-24 Glenn Morris <rgm@gnu.org>
6883
6884 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
6885
1260aef1
PE
68862011-09-24 Paul Eggert <eggert@cs.ucla.edu>
6887
25b4bfa0
PE
6888 Fix minor problems found by static checking.
6889 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
6890 * indent.c (Fvertical_motion): Fix == vs = typo.
6891
e3cbd34b
EZ
68922011-09-24 Eli Zaretskii <eliz@gnu.org>
6893
a66cfb1c
SM
6894 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
6895 Default value is now t. Doc fix.
6bf7006f 6896
e3cbd34b 6897 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 6898 logic when moving up, not only when moving down. Fix the
e3cbd34b 6899 confusing name and values of the it_overshoot_expected variable;
32c1fffd 6900 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
6901
6902 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
6903 CHARPOS is covered by a display string which includes newlines.
6904 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
6905 is covered by a display string with embedded newlines.
6906
a3de0cbd
MA
69072011-09-24 Michael Albinus <michael.albinus@gmx.de>
6908
6909 * dbusbind.c (Fdbus_register_signal): Add match rule to
6910 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
6911 (Fdbus_register_method, Vdbus_registered_objects_table):
6912 Fix docstring.
a3de0cbd 6913
b260039d
JM
69142011-09-24 Jim Meyering <meyering@redhat.com>
6915
32c1fffd 6916 do not ignore write error for any output size
b260039d
JM
6917 The previous change was incomplete.
6918 While it makes emacs --batch detect the vast majority of stdout
6919 write failures, errors were still ignored whenever the output size is
6920 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
6921 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
6922 && echo FAIL: ignored write error
6923 FAIL: ignored write error
6924 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
6925 && echo FAIL: ignored write error
6926 FAIL: ignored write error
6927 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
6928
8eca8a7c
AS
69292011-09-23 Andreas Schwab <schwab@linux-m68k.org>
6930
6931 * emacs.c (Fkill_emacs): In noninteractive mode exit
6932 non-successfully if a write error occurred on stdout. (Bug#9574)
6933
3341db62
EZ
69342011-09-21 Eli Zaretskii <eliz@gnu.org>
6935
6936 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
6937 the xassert test.
6938
6939 * dispextern.h (struct it): Update the comment documenting what
6940 can it->OBJECT be.
6941
8c203dbf
EZ
69422011-09-20 Eli Zaretskii <eliz@gnu.org>
6943
6944 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
6945 a display string, extend search for cursor position to end of row.
6946 (find_row_edges): If the row ends in a newline from a display
6947 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
6948 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
6949 (Fcurrent_bidi_paragraph_direction): Fix search for previous
6950 non-empty line. Fixes confusing cursor motion with arrow keys at
6951 the beginning of a line that starts with whitespace.
8c203dbf 6952
a4824228
LMI
69532011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
6954
6955 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
6956 (bug#9493).
6957
33ed493b
CY
69582011-09-18 Chong Yidong <cyd@stupidchicken.com>
6959
6960 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
6961 boolean (Bug#9154).
6962
56cd55c8
EZ
69632011-09-18 Eli Zaretskii <eliz@gnu.org>
6964
6965 * xdisp.c (display_line): Record maximum and minimum buffer
6966 positions even if no glyphs were produced (e.g., by a zero-width
6967 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
6968 buffer positions that will be removed from the glyph row because
6969 they don't fit.
c02dcedf
EZ
6970 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
6971 column is beyond frame width: don't subtract 1 "pixel" when
6972 computing width of the stretch.
3e62b7e0
EZ
6973 (reseat_at_next_visible_line_start): Undo the change made on
6974 2011-09-17 that saved paragraph information and restored it after
6975 the call to `reseat'. (Bug#9545)
56cd55c8 6976
5ed99d36 69772011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
6978
6979 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
6980 and turn window cursor on if cleared (Bug#9415).
6981
5ed99d36 69822011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
6983
6984 * search.c (boyer_moore): Take unibyte characters from pattern
6985 literally. (Bug#9458)
6986
9bade7b2
EZ
69872011-09-18 Eli Zaretskii <eliz@gnu.org>
6988
6989 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
6990
e5e9d610
PE
69912011-09-18 Paul Eggert <eggert@cs.ucla.edu>
6992
87e4427a
PE
6993 Fix minor problem found by static checking.
6994 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
6995 initialized, to pacify gcc -Wuninitialized.
6996
e5e9d610
PE
6997 * fileio.c: Report proper errno when syscall falls.
6998 (Finsert_file_contents): Save and restore errno,
6999 so that report_file_error outputs the correct diagnostic.
7000 (Fwrite_region) [CLASH_DETECTION]: Likewise.
7001
a1674f0b
EZ
70022011-09-18 Eli Zaretskii <eliz@gnu.org>
7003
7004 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
7005
fbfb6dd4
EZ
70062011-09-17 Eli Zaretskii <eliz@gnu.org>
7007
7008 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
7009 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
7010
bb187662
EZ
70112011-09-17 Eli Zaretskii <eliz@gnu.org>
7012
1137e8b8 7013 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 7014 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
7015
7016 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
7017 (bidi_find_paragraph_start): Search back for paragraph beginning
7018 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
7019 (bidi_move_to_visually_next): Only trigger paragraph-related
7020 computations when the last character is a newline or at EOB, not
7021 just any NEUTRAL_B. (Bug#9470)
7022
bb187662
EZ
7023 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
7024 truncated lines if point is covered by a display string. (Bug#9524)
7025
2e621251
PE
70262011-09-16 Paul Eggert <eggert@cs.ucla.edu>
7027
7028 * xselect.c: Relax test for outgoing X longs (Bug#9498).
7029 (cons_to_x_long): New function.
7030 (lisp_data_to_selection_data): Use it. Correct the test for
7031 short-versus-long data; it was negated. Break out of vector
7032 loop, for efficiency, when a long datum is discovered.
7033
91a15bc6
SM
70342011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
7035
7036 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
7037
b41c3a35
EZ
70382011-09-16 Eli Zaretskii <eliz@gnu.org>
7039
7040 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
7041 GCC PR/17406) by declaring this function with external scope.
7042
7812ba2d
PE
70432011-09-15 Paul Eggert <eggert@cs.ucla.edu>
7044
7045 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
7046 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
7047
cf7edc2a
AS
70482011-09-15 Andreas Schwab <schwab@linux-m68k.org>
7049
7050 * editfns.c (Fformat): Correctly handle text properties on "%%".
7051
bd01620e
EZ
70522011-09-15 Eli Zaretskii <eliz@gnu.org>
7053
7054 * xterm.c (x_draw_composite_glyph_string_foreground):
7055 * w32term.c (x_draw_composite_glyph_string_foreground):
7056 * term.c (encode_terminal_code):
7057 * composite.c (composition_update_it, get_composition_id):
7058 * xdisp.c (get_next_display_element)
7059 (fill_composite_glyph_string): Add comments about special meaning
7060 of TAB characters in a composition.
7061
a02719a3
PE
70622011-09-15 Paul Eggert <eggert@cs.ucla.edu>
7063
7064 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
7065 This occurs when processing a multibyte format.
7066 Problem reported by Wolfgang Jenker.
a02719a3 7067
72589a3c
JB
70682011-09-15 Johan Bockgård <bojohan@gnu.org>
7069
7070 * xdisp.c (try_cursor_movement): Only check for exact match if
7071 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
7072
1c14176c
PE
70732011-09-14 Paul Eggert <eggert@cs.ucla.edu>
7074
7075 Remove unused external symbols.
7076 * dispextern.h (calc_pixel_width_or_height): Remove decl.
7077 * xdisp.c (calc_pixel_width_or_height): Now static.
7078 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
7079 * indent.c (check_display_width):
7080 * w32term.c: Fix comment to match code.
7081 * xterm.c, xterm.h (x_catching_errors): Remove.
7082
d2eea5b5
PE
70832011-09-14 Paul Eggert <eggert@cs.ucla.edu>
7084
7085 * xselect.c: Use signed conversions more consistently (Bug#9498).
7086 (selection_data_to_lisp_data): Assume incoming selection data are
7087 signed integers, not unsigned. This is to be consistent with
7088 outgoing selection data, which was modified to use signed integers
7089 in as part of the fix to Bug#9196 in response to Jan D.'s comment
7090 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
7091 expects long, not unsigned long.
7092
46888499
EZ
70932011-09-14 Eli Zaretskii <eliz@gnu.org>
7094
7095 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
7096 computation of loop end. Reported by Johan Bockgård
7097 <bojohan@gnu.org>.
7098
ef8ef9fb
CY
70992011-09-13 Chong Yidong <cyd@stupidchicken.com>
7100
7101 * frame.c (Fother_visible_frames_p): Function deleted.
7102
fa819fed
EZ
71032011-09-12 Eli Zaretskii <eliz@gnu.org>
7104
7105 * indent.c (compute_motion): Process display vector front to back
7106 rather than the other way around. (Bug#2496)
7107
2ba8e008
SM
71082011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
7109
7110 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
7111
20f53c69
CY
71122011-09-11 Chong Yidong <cyd@stupidchicken.com>
7113
7114 * minibuf.c (Fread_from_minibuffer): Doc fix.
7115
d562d7a4
EZ
71162011-09-11 Eli Zaretskii <eliz@gnu.org>
7117
7118 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
7119 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
7120
1c4d7f3d
LMI
71212011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
7122
7123 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
7124 value for non-existent files.
7125
b885bf36
EZ
71262011-09-11 Eli Zaretskii <eliz@gnu.org>
7127
7128 * fileio.c (Finsert_file_contents): If the file cannot be opened,
7129 set its "size" to -1. This will set the modtime_size field of
7130 the corresponding buffer to -1, which is what
7131 verify-visited-file-modtime expects for files that do not exist.
7132 (Bug#9139)
7133
6612f0bf
PE
71342011-09-11 Paul Eggert <eggert@cs.ucla.edu>
7135
7136 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
7137 here ...
7138 * lisp.h: ... from here. push_key_description is no longer
7139 defined in keyboard.c, so its declaration should not be in
7140 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
7141 logically belongs with push_key_description.
7142
dfb3f755
PE
71432011-09-10 Paul Eggert <eggert@cs.ucla.edu>
7144
7145 * buffer.h: Include <sys/types.h> instead of <time.h>.
7146 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
7147 Problem reported by Herbert J. Skuhra.
7148
3134906c
LMI
71492011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
7150
7151 * xml.c (parse_region): Make the parsing work for
7152 non-comment-starting XML files again (bug#9144).
7153
8d903f4e
AS
71542011-09-10 Andreas Schwab <schwab@linux-m68k.org>
7155
7156 * image.c (gif_load): Fix calculation of bottom and right corner.
7157 (Bug#9468)
7158
80ad64f4
EZ
71592011-09-10 Eli Zaretskii <eliz@gnu.org>
7160
7161 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
7162 redisplay in small windows.
7163
208a048d
EZ
71642011-09-09 Eli Zaretskii <eliz@gnu.org>
7165
7166 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
7167
9b1c252e
MR
71682011-09-08 Martin Rudalics <rudalics@gmx.at>
7169
7170 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
7171 Operate on live windows only.
7172
2949f33b
JB
71732011-09-08 Juanma Barranquero <lekktu@gmail.com>
7174
7175 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
7176
e08dcafd
EZ
71772011-09-07 Eli Zaretskii <eliz@gnu.org>
7178
7179 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
7180 only under bidi iteration.
7181
115b96bd
JD
71822011-09-07 Jan Djärv <jan.h.d@swipnet.se>
7183
7184 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
7185
c8199d0f
PE
71862011-09-06 Paul Eggert <eggert@cs.ucla.edu>
7187
7188 isnan: Fix porting problem to Solaris 10 with bundled gcc.
7189 Without this fix, the command to link temacs failed due to an
7190 undefined symbol __builtin_isnan. This is because
7191 /usr/include/iso/math_c99.h #defines isnan(x) to
7192 __builtin_isnan(x), but the bundled gcc, which identifies itself
7193 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
7194 a __builtin_isnan.
7195 * floatfns.c (isnan): #undef, and then #define to a clone of
7196 what's in data.c.
7197 (Fisnan): Always define, since it's always available now.
7198 (syms_of_floatfns): Always define isnan at the Lisp level.
7199
e39b275c 72002011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
7201
7202 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
7203
b2db44d9 72042011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 7205
f4af5137 7206 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
7207 The previous code assumed that file offsets (off_t values) fit in
7208 EMACS_INT variables, which is not true on typical 32-bit hosts.
7209 The code messed up by falsely reporting buffer overflow in cases
7210 such as (insert-file-contents "big" nil 1 2) into an empty buffer
7211 when "big" contains more than 2**29 bytes, even though this
7212 inserts just one byte and does not overflow the buffer.
7213 (Finsert_file_contents): Store file offsets as off_t
7214 values, not as EMACS_INT values. Check for overflow when
7215 converting between EMACS_INT and off_t. When checking for
7216 buffer overflow or for overlap, take the offsets into account.
7217 Don't use EMACS_INT for small values where int suffices.
7218 When checking for overlap, fix a typo: ZV was used where
7219 ZV_BYTE was intended.
7220 (Fwrite_region): Don't assume off_t fits into 'long'.
7221 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
7222
ecfc0a49
MA
72232011-09-05 Michael Albinus <michael.albinus@gmx.de>
7224
7225 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
7226
6511acf2 72272011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 7228
0999621a 7229 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
7230
7231 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 7232 (esprintf, exprintf, evxprintf): New functions.
62f19c19 7233 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 7234 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
7235 (modify_event_symbol): Do not assume that the length of
7236 name_alist_or_stem is safe to alloca and fits in int.
7237 (Fexecute_extended_command): Likewise for function name and binding.
7238 (Frecursion_depth): Wrap around reliably on integer overflow.
7239 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
7240 since some callers pass EMACS_INT values.
7241 (Fsingle_key_description): Don't crash if symbol name contains more
7242 than MAX_ALLOCA bytes.
7243 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
7244 (get_minibuffer): Arg is now EMACS_INT, not int.
7245 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 7246 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
7247 * window.h (command_loop_level, minibuf_level): Reflect API changes.
7248
2be7d702
PE
7249 * dbusbind.c (signature_cat): New function.
7250 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
7251 Do not overrun buffer; instead, report string overflow.
7252
9d1df220
PE
7253 * dispnew.c (add_window_display_history): Don't overrun buffer.
7254 Truncate instead; this is OK since it's just a log.
7255
33ef5c64
PE
7256 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
7257 even if the time zone offset is outlandishly large.
7258 Don't mishandle offset == INT_MIN.
7259
66c6fdd5
PE
7260 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
7261 when creating daemon; the previous buffer-overflow check was incorrect.
7262
d749b01b
PE
7263 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
7264 which has the guts of the old verror function.
7265
b5cd1905
PE
7266 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
7267 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
7268
6e1a67fb
PE
7269 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
7270 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 7271 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 7272 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
7273 length of string rather than counting it via multiple sprintfs;
7274 that's simpler and more reliable.
c21721cc
PE
7275 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
7276 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
7277 sprintf, in case result does not fit in int.
7278
c57b67fc
PE
7279 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
7280 (fontset_from_font): Print it.
7281
8a401434
PE
7282 * frame.c (tty_frame_count): Now printmax_t, not int.
7283 (make_terminal_frame, set_term_frame_name): Print it.
7284 (x_report_frame_params): In X, window IDs are unsigned long,
7285 not signed long, so print them as unsigned.
7286 (validate_x_resource_name): Check for implausibly long names,
7287 and don't assume name length fits in 'int'.
7288 (x_get_resource_string): Don't blindly alloca invocation name;
7289 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
7290 not fit in int.
7291
6e1a67fb
PE
7292 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
7293 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
7294 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
7295
0df02bf3
PE
7296 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
7297 Use esprintf, not sprintf, in case result does not fit in int.
7298
48e30793
PE
7299 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
7300 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
7301 it as a large positive number.
7302 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
7303 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
7304
a66ff6d8
PE
7305 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
7306 in case result does not fit in int.
7307
aca216ff
PE
7308 * print.c (float_to_string): Detect width overflow more reliably.
7309 (print_object): Make sprintf buffer a bit bigger, to avoid potential
7310 buffer overrun. Don't assume list length fits in 'int'. Treat
7311 print length of 0 as 0, not as infinity; to be consistent with other
7312 uses of print length in this function. Don't overflow print length
7313 index. Don't assume hash table size fits in 'long', or that
7314 vectorlike size fits in 'unsigned long'.
7315
31c286f7
PE
7316 * process.c (make_process): Use printmax_t, not int, to format
7317 process-name gensyms.
7318
55e5faa1
PE
7319 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
7320
80f2e268
PE
7321 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
7322 to avoid potential buffer overrun.
7323
670741ab
PE
7324 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
7325 if X resource line is longer than 512 bytes.
7326
b7163a50
PE
7327 * xfns.c (x_window): Make sprintf buffer a bit bigger
7328 to avoid potential buffer overrun.
7329
ae58ff1f
PE
7330 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
7331
c43c8a6a
PE
7332 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
7333
3f8236f4
PE
73342011-09-04 Paul Eggert <eggert@cs.ucla.edu>
7335
53e9fe90 7336 Integer overflow fixes for scrolling, etc.
6511acf2
PE
7337 Without these, Emacs silently mishandles large integers sometimes.
7338 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
7339 it were "C-u 1 M-x recenter" on a typical 64-bit host.
7340
6511acf2
PE
7341 * xdisp.c (try_window_id): Check Emacs fixnum range before
7342 converting to 'int'.
806add1d 7343
6511acf2 7344 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
7345 Check that an Emacs fixnum is in range before assigning it to 'int'.
7346 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
7347 values converted from Emacs fixnums.
7348 (Frecenter): Don't wrap around a line count if it is out of 'int'
7349 range; instead, treat it as an extreme value.
7350 (Fset_window_configuration, compare_window_configurations):
7351 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
7352
6511acf2
PE
7353 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
7354 that can exceed INT_MAX. Check that EMACS_INT value is in range
7355 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
7356 (match_limit): Don't assume that a fixnum can fit in 'int'.
7357
6511acf2 7358 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
7359 exceed INT_MAX.
7360
6511acf2 7361 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
7362 (Fvertical_motion): Don't wrap around LINES values that don't fit
7363 in 'int'. Instead, treat them as extreme values. This is good
7364 enough for windows, which can't have more than INT_MAX lines anyway.
7365
fcb901a7
LMI
73662011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7367
0f2f6b6d
LMI
7368 * Require libxml/parser.h to avoid compilation warning.
7369
fcb901a7
LMI
7370 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
7371
7372 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
7373 since this reportedly can destroy thread storage.
7374
6e20a0d4
CY
73752011-08-30 Chong Yidong <cyd@stupidchicken.com>
7376
7377 * syntax.c (find_defun_start): Update all cache variables if
7378 exiting early (Bug#9401).
7379
148ae00e
EZ
73802011-08-30 Eli Zaretskii <eliz@gnu.org>
7381
f6cfbd8f
EZ
7382 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
7383
148ae00e
EZ
7384 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
7385 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
7386 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
7387
7388 * term.c (tty_append_glyph): New function.
7389 (produce_stretch_glyph): Static function and its prototype deleted.
7390
a66cfb1c
SM
7391 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
7392 Add prototypes.
148ae00e 7393
c4a07a4c
PE
73942011-08-29 Paul Eggert <eggert@cs.ucla.edu>
7395
7396 * image.c (parse_image_spec): Check for nonnegative, not for positive,
7397 when checking :margin (Bug#9390).
7398 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 7399 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
7400 so that the name doesn't mislead. All uses changed.
7401
6bc8cd65
JB
74022011-08-28 Johan Bockgård <bojohan@gnu.org>
7403
7404 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
7405 set_tty_hooks.
7406
dca4927e
EZ
74072011-08-27 Eli Zaretskii <eliz@gnu.org>
7408
7409 * xdisp.c (move_it_to): Don't bail out early when reaching
7410 position beyond to_charpos, if we are scanning backwards.
7411 (move_it_vertically_backward): When DY == 0, make sure we get to
7412 the first character in the line after the newline.
7413
f2cad773
PE
74142011-08-27 Paul Eggert <eggert@cs.ucla.edu>
7415
7416 * ccl.c: Improve and simplify overflow checking (Bug#9196).
7417 (ccl_driver): Do not generate an out-of-range pointer.
7418 (Fccl_execute_on_string): Remove unnecessary check for
7419 integer overflow, noted by Stefan Monnier in
7420 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
7421 Remove a FIXME that didn't need fixing.
7422 Simplify the newly-introduced buffer reallocation code.
7423
0cae2cdb
JB
74242011-08-27 Juanma Barranquero <lekktu@gmail.com>
7425
7426 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
7427
5fc295a4 74282011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 7429
70c60eb2 7430 Integer and memory overflow issues (Bug#9196).
726e0ab1 7431
d31850da
PE
7432 * doc.c (get_doc_string): Rework so that
7433 get_doc_string_buffer_size is the actual buffer size, rather than
7434 being 1 less than the actual buffer size; this makes xpalloc more
7435 convenient.
7436
a69fbedb
PE
7437 * image.c (x_allocate_bitmap_record, cache_image):
7438 * xselect.c (Fx_register_dnd_atom):
7439 Simplify previous changes by using xpalloc.
7440
fe5c5d37
PE
7441 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
7442 since either will do and ptrdiff_t is convenient with xpalloc.
7443
0065d054
PE
7444 * charset.c (charset_table_size)
7445 (struct charset_sort_data.priority): Now ptrdiff_t.
7446 (charset_compare): Don't overflow if priorities differ greatly.
7447 (Fsort_charsets): Don't assume list length fits in int.
7448 Check for size-calculation overflow when allocating sort data.
7449 (syms_of_charset): Allocate an initial charset table that is
7450 just under 64 KiB, to avoid problems with glibc malloc and mmap.
7451
7452 * cmds.c (internal_self_insert): Check for size-calculation overflow.
7453
7454 * composite.h (struct composition.glyph_len): Now int, not unsigned.
7455 The actual value is always <= INT_MAX, and leaving it unsigned made
7456 overflow checking harder.
7457
7458 * dispextern.h (struct glyph_matrix.rows_allocated)
7459 (struct face_cache.size): Now ptrdiff_t, for convenience in use
7460 with xpalloc. The values are still always <= INT_MAX.
7461
7462 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
7463
7464 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
7465 (SAFE_NALLOCA): New macro.
7466
7467 * region-cache.c (struct boundary.pos, find_cache_boundary)
7468 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
7469 (set_cache_region, invalidate_region_cache)
7470 (revalidate_region_cache, know_region_cache, region_cache_forward)
7471 (region_cache_backward, pp_cache):
7472 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
7473 so that ptrdiff_t * can be passed to xpalloc.
7474 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
7475 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
7476 (pp_cache): Don't assume cache_len fits in int.
7477 * region-cache.h: Adjust extern decls to match.
7478
7479 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
7480 EMACS_INT, since either will do, for xpalloc.
7481
7482 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
7483 (xnmalloc, xnrealloc, xpalloc): New functions.
7484
726e0ab1
PE
7485 * bidi.c (bidi_shelve_header_size): New constant.
7486 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
7487 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
7488
51f30bc5 7489 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
7490 * buffer.c (overlays_at, overlays_in, record_overlay_string)
7491 (overlay_strings):
7492 Don't update size of array until after memory allocation succeeds,
7493 because xmalloc/xrealloc may not return.
0065d054
PE
7494 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
7495 now that we have proper integer overflow checking.
7496 (record_overlay_string, overlay_strings): Catch overflows when
7497 calculating size of overlay_str_buf.
726e0ab1 7498
0065d054
PE
7499 * callproc.c (Fcall_process): Check for size overflow when
7500 calculating size of args2.
7501 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
7502 Normally we prefer signed values, but sticking with ptrdiff_t would
7503 require adding more-complicated checks.
726e0ab1
PE
7504
7505 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
7506 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
7507 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 7508 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
7509
7510 * character.c (Fstring): Check for size-calculation overflow.
7511
7512 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
7513 unnecessary integer overflow. Check for size overflow.
7514 (encode_coding_object): Don't update size until xmalloc succeeds.
7515
7516 * composite.c (get_composition_id): Check for overflow in glyph
7517 length calculations.
7518
7519 Integer and memory overflow fixes for display code.
7520 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
7521 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
7522 (scrolling_window): Check for overflow in size calculations.
7523 (line_draw_cost, realloc_glyph_pool, add_row_entry):
7524 Don't assume glyph table len fits in int.
7525 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
7526 (row_table_size): Now ptrdiff_t, not int.
7527 (scrolling_window): Avoid overflow in size calculations.
7528 Don't update size until allocation succeeds.
7529 * fns.c (concat): Check for overflow in size calculations.
7530 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
7531 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
7532 (NEXT_ALMOST_PRIME_LIMIT): New constant.
7533
7534 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
7535 (get_doc_string): Check for size calculation overflow.
7536 Don't update size until allocation succeeds.
7537 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
7538 EMACS_INT, where ptrdiff_t will do.
7539 (Fsubstitute_command_keys): Check for string overflow.
7540
7541 * editfns.c (set_time_zone_rule): Don't assume environment length
7542 fits in int.
7543 (message_length): Now ptrdiff_t, not int.
7544 (Fmessage_box): Don't update size until allocation succeeds.
7545 Don't assume message length fits in int.
7546 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
7547
0065d054
PE
7548 * emacs.c (main): Do not reallocate argv, since there is a null at
7549 the end that can be overwritten, and this way there's no need to
7550 worry about size-calculation overflow.
7551 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
7552
7553 * eval.c (init_eval_once, grow_specpdl): Don't update size until
7554 alloc succeeds.
7555 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
7556
7557 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
7558 (x_set_scroll_bar_width, x_figure_window_size):
7559 Check for integer overflow.
7560 (x_set_alpha): Do not assume XINT fits in int.
7561
7562 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
7563 This is for the members text_lines, text_cols, total_lines, total_cols,
7564 where the system imposes an 'int' limit.
7565
7566 * fringe.c (Fdefine_fringe_bitmap):
7567 Don't update size until alloc works.
7568
7569 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
7570 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
7571
7572 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
7573 Check for size-calculation overflow.
7574 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
7575 do, as we prefer signed integers.
7576 (id_to_widget.max_size, id_to_widget.used)
7577 (xg_store_widget_in_map, xg_remove_widget_from_map)
7578 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
7579 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
7580 Use and return ptrdiff_t, not int.
7581 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
7582 * gtkutil.h: Change prototypes to match the above.
7583
7584 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
7585 are duplicate now that they've been promoted to lisp.h.
7586 (x_allocate_bitmap_record, x_alloc_image_color)
7587 (make_image_cache, cache_image, xpm_load):
7588 Don't update size until alloc is done.
7589 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
7590 (x_detect_edges):
3256efce 7591 Check for size calculation overflow.
726e0ab1
PE
7592 (ct_colors_allocated_max): New constant.
7593 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
7594 overflow.
3256efce 7595
726e0ab1
PE
7596 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
7597 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
7598 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
7599 Use ptrdiff_t, not int, to count maps.
7600 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
7601 calculations. Don't update size until allocation succeeds.
7602 Redo calculations to avoid overflow.
726e0ab1
PE
7603 * keyboard.h: Change prototypes to match the above.
7604
7605 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
7606 to count maps.
7607 (current_minor_maps): Check for size calculation overflow.
7608 * keymap.h: Change prototypes to match the above.
7609
7610 * lread.c (read1, init_obarray): Don't update size until alloc done.
7611
7612 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
7613 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
7614
726e0ab1
PE
7615 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
7616 Now ptrdiff_t, not int.
7617 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
7618 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
7619
7620 * process.c (Fnetwork_interface_list): Check for overflow
7621 in size calculation.
7622
7623 * region-cache.c (move_cache_gap): Check for size calculation overflow.
7624
7625 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
7626 overflow. Don't bother calling xmalloc when xrealloc will do.
7627
7628 * search.c (Freplace_match): Check for size calculation overflow.
7629 (Fset_match_data): Don't assume list lengths fit in 'int'.
7630
7631 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
7632 for command line length. Do not attempt to address one before the
7633 beginning of an array, as that's not portable.
7634
7635 * term.c (max_frame_lines): Remove; unused.
7636 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
7637 not int.
7638 (encode_terminal_code, calculate_costs): Check for size
7639 calculation overflow.
7640 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
7641 table lengths and related sizes. Don't update size until alloc
7642 done. Redo calculations to avoid overflow.
7643 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
7644
7645 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
7646 subtracting pointers.
7647 (gobble_line): Check for overflow more carefully. Don't update size
7648 until alloc done.
7649
7650 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
7651 Don't update size until alloc done.
7652 Redo size calculations to avoid overflow.
7653 Check for size calculation overflow.
0065d054 7654 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
7655
7656 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
7657 Use ptrdiff_t, not int, for sizes.
7658 (store_mode_line_noprop_char): Don't update size until alloc done.
7659
0065d054
PE
7660 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
7661 Use ptrdiff_t, not int, for sizes.
7662 (Finternal_make_lisp_face, cache_face):
7663 Check for size calculation overflow.
7664 (cache_face): Treat size calculation overflows as if they were
7665 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
7666
7667 * xfns.c (x_encode_text, x_set_name_internal)
7668 (Fx_change_window_property): Use ptrdiff_t, not int, to count
7669 sizes, since they can exceed INT_MAX in size. Check for size
7670 calculation overflow.
7671
0065d054
PE
7672 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
7673 (xg_select): Check for size calculation overflow.
726e0ab1
PE
7674 Don't update size until alloc done.
7675
0065d054 7676 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 7677 as sprintf is limited to int lengths.
1d526e2f 7678
252c5ee1
PE
7679 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
7680 (X_LONG_MIN): New macros.
864d7ce7
PE
7681 Use them to make the following changes clearer.
7682 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
7683 This change doesn't affect the value now, but it may help remind
7684 future maintainers not to raise the value too much later.
7685 (SELECTION_QUANTUM): Remove, replacing with ...
7686 (selection_quantum): ... new function, which avoids overflow.
7687 All uses changed.
7688 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
7689 assumption that selection length fits in 'int'.
7690 (x_reply_selection_request, x_handle_selection_request)
7691 (x_get_window_property, receive_incremental_selection)
7692 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
7693 (lisp_data_to_selection_data, clean_local_selection_data):
7694 Use ptrdiff_t, not int, to record length of selection.
7695 (x_reply_selection_request, x_get_window_property)
7696 (receive_incremental_selection, x_property_data_to_lisp):
7697 Redo calculations to avoid overflow.
7698 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 7699 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
7700 something.
7701 (x_get_window_property, receive_incremental_selection)
7702 (lisp_data_to_selection_data, x_property_data_to_lisp):
7703 Check for size-calculation overflow.
7704 (x_get_window_property, receive_incremental_selection)
7705 (lisp_data_to_selection_data, Fx_register_dnd_atom):
7706 Don't store size until memory allocation succeeds.
7707 (x_get_window_property): Plug memory leak on memory exhaustion.
7708 Don't double-block input; malloc is safe here. Don't assume 2**34
7709 - 4 fits in unsigned long. Add an xassert to check
7710 XGetWindowProperty overflow. Be more careful about overflow
7711 calculations, and distinguish size from memory overflow better.
7712 (receive_incremental_selection): When tracing, don't assume
7713 unsigned int is less than INT_MAX.
7714 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
7715 harmful) conversions of unsigned short to int.
7716 (lisp_data_to_selection_data): Don't assume that integers
7717 in the range -65535 through -1 fit in an X unsigned short.
7718 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
7719 result parameters unless successful. Rely on cons_to_unsigned
7720 to report problems with elements; the old code wasn't right anyway.
7721 (x_check_property_data): Check for int overflow; we cannot use
7722 a wider type due to X limits.
7723 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
7724
726e0ab1 7725 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 7726
0065d054
PE
7727 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
7728 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
7729 (x_color_cells): Don't store size until memory allocation succeeds.
7730 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 7731 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
7732 (x_term_init): Don't assume length fits in int (sprintf is limited
7733 to int size).
bc18e09d 7734
ebfa62c0
PE
7735 Use ptrdiff_t for composition IDs.
7736 * character.c (lisp_string_width):
7737 * composite.c (composition_table_size, n_compositions)
7738 (get_composition_id, composition_gstring_from_id):
7739 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
7740 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
7741 * window.c (Frecenter):
7742 Use ptrdiff_t, not int, for composition IDs.
7743 * composite.c (get_composition_id): Check for integer overflow.
7744 * composite.h: Adjust prototypes to match the above changes.
7745
d3411f89
PE
7746 Use ptrdiff_t for hash table indexes.
7747 * category.c (hash_get_category_set):
7748 * ccl.c (ccl_driver):
7749 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
7750 * coding.c (coding_system_charset_list, detect_coding_system):
7751 * coding.h (struct coding_system.id):
7752 * composite.c (get_composition_id, gstring_lookup_cache):
7753 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
7754 * image.c (xpm_get_color_table_h):
7755 * lisp.h (hash_lookup, hash_put):
7756 * minibuf.c (Ftest_completion):
7757 Use ptrdiff_t for hash table indexes, not int (which is too
7758 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
7759 32-bit --with-wide-int hosts).
7760
e097a6fa
PE
7761 * charset.c (Fdefine_charset_internal): Check for integer overflow.
7762 Add a FIXME comment about memory leaks.
7763 (syms_of_charset): Don't assume xmalloc returns.
7764
5637687f
PE
7765 Don't assume that stated character widths fit in int.
7766 * character.c (Fchar_width, c_string_width, lisp_string_width):
7767 * character.h (CHAR_WIDTH):
7768 * indent.c (MULTIBYTE_BYTES_WIDTH):
7769 Use sanitize_char_width to avoid undefined and/or bad behavior
7770 with outlandish widths.
a66cfb1c 7771 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
7772 now that we have two such functions. All uses changed.
7773 (sanitize_char_width): New inline function.
7774
a2271ba2
PE
7775 Don't assume that tab-width fits in int.
7776 * character.h (sanitize_width): New inline function.
7777 (SANE_TAB_WIDTH): New macro.
7778 (ASCII_CHAR_WIDTH): Use it.
7779 * indent.c (sane_tab_width): Remove. All uses replaced by
7780 SANE_TAB_WIDTH (current_buffer).
7781 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
7782
18c52557
PE
7783 * fileio.c: Integer overflow issues with file modes.
7784 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
7785
caeeedc1
PE
7786 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
7787 Remove unreachable code.
7788 (read_hex, load_charset_map_from_file): Check for integer overflow.
7789
6df6ae42 7790 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
7791 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
7792 (x_send_scroll_bar_event): Likewise. Check that the size does not
7793 exceed limits imposed by XClientMessageEvent, as well as the usual
7794 ptrdiff_t and size_t limits.
7795
b13995db
PE
7796 * keyboard.c: Overflow, signedness and related fixes.
7797 (make_lispy_movement): Use same integer type in forward decl
7798 that is used in the definition.
7799 (read_key_sequence, keyremap_step):
7800 Change bufsize argument back to int, undoing my 2011-03-30 change.
7801 We prefer signed types, and int is wide enough here.
7802 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
7803 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
7804 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
7805 length, not size_t. Use ptrdiff_t for index, not int.
7806 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
7807 possibility of integer overflow.
7808
13464394
PE
7809 Overflow, signedness and related fixes for images.
7810
7811 * dispextern.h (struct it.stack[0].u.image.image_id)
7812 (struct_it.image_id, struct image.id, struct image_cache.size)
7813 (struct image_cache.used, struct image_cache.ref_count):
7814 * gtkutil.c (update_frame_tool_bar):
7815 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
7816 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
7817 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
7818 * nsmenu.m (update_frame_tool_bar):
7819 * xdisp.c (calc_pixel_width_or_height):
7820 * xfns.c (image_cache_refcount):
7821 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
7822 on typical 64-bit hosts.
7823
7824 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
7825 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
7826 Omit unnecessary casts to int.
7827 (parse_image_spec): Check that integers fall into 'int' range
7828 when the callers expect that.
7829 (image_ascent): Redo ascent calculation to avoid int overflow.
7830 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
7831 (lookup_image): Remove unnecessary tests.
7832 (xbm_image_p): Locals are now of int, not EMACS_INT,
7833 since parse_image_check makes sure they fit into int.
7834 (png_load, gif_load, svg_load_image):
7835 Prefer int to unsigned where either will do.
7836 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
7837 old tiff_error_handler and tiff_warning_handler.
7838 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
7839 stack buffer overflows. It uses only the features of vsnprintf
7840 that are common to both POSIX and native Microsoft.
7841 (tiff_error_handler, tiff_warning_handler): Use it.
7842 (tiff_load, gif_load, imagemagick_load_image):
7843 Don't assume :index value fits in 'int'.
7844 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
7845 (imagemagick_load_image): Check that crop parameters fit into
7846 the integer types that MagickCropImage accepts. Don't assume
7847 Vimagemagick_render_type has a nonnegative value. Don't assume
7848 size_t fits in 'long'.
7849 (gs_load): Use printmax_t to print the widest integers possible.
7850 Check for integer overflow when computing image height and width.
7851
c11821d4
EZ
78522011-08-26 Eli Zaretskii <eliz@gnu.org>
7853
7854 * xdisp.c (redisplay_window): Don't force window start if point
7855 will be invisible in the resulting window. (Bug#9324)
7856
0c95fcf7
EZ
78572011-08-25 Eli Zaretskii <eliz@gnu.org>
7858
7859 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
7860 the display spec is of the form `(space ...)'.
7861 (handle_display_spec): Return the value returned by
7862 handle_single_display_spec, not just 1 or zero.
7863 (handle_single_display_spec): If the display spec is of the form
7864 `(space ...)', and specifies display in the text area, return 2
7865 rather than 1.
fee65a97 7866 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
7867 accurately, and prefer exact match for point under bidi.
7868 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
7869
7870 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
7871 into disp_prop; all users changed.
7872
7873 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
7874 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
7875 for the text covered by the display property.
7876
e4ed06f1
CY
78772011-08-25 Chong Yidong <cyd@stupidchicken.com>
7878
7879 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
7880 Change return value to nil.
7881 (Frecord_buffer): Delete unused function.
7882
f67cdd7f
EZ
78832011-08-24 Eli Zaretskii <eliz@gnu.org>
7884
5980d4c6
EZ
7885 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
7886 buffers, return left-to-right.
8610fe8b
EZ
7887 (set_cursor_from_row): Consider candidate row a win if its glyph
7888 represents a newline and point is on that newline. Fixes cursor
7889 positioning on the newline at EOL of R2L text within L2R
7890 paragraph, and vice versa.
7891 (try_cursor_movement): Check continued rows, in addition to
7892 continuation rows. Fixes unwarranted scroll when point enters a
7893 continued line of R2L text within an L2R paragraph, or vice versa.
7894 (cursor_row_p): Consider the case of point being equal to
7895 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
7896 from the end of a short line to the beginning of a continued line
7897 of R2L text within L2R paragraph.
7898 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
7899 composed characters.
5980d4c6 7900
f67cdd7f
EZ
7901 * bidi.c (bidi_check_type): Use xassert.
7902 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
7903 members.
7904
bca633fb
EZ
79052011-08-23 Eli Zaretskii <eliz@gnu.org>
7906
7907 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
7908 a character.
7909
4a5885a7
CY
79102011-08-23 Chong Yidong <cyd@stupidchicken.com>
7911
7912 * nsfont.m (ns_otf_to_script): Fix typo.
7913
0902a04e
KH
79142011-08-22 Kenichi Handa <handa@m17n.org>
7915
7916 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
7917 extra slot even if the purpose is char-code-property-table.
7918
1a2e6670
EZ
79192011-08-23 Eli Zaretskii <eliz@gnu.org>
7920
8ddde651
EZ
7921 * xdisp.c (redisplay_window): When computing centering_position,
7922 account for the height of the header line. (Bug#8874)
7923
425cc014
EZ
7924 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
7925 instead of CHAR_TO_BYTE. Fixes a crash when a completion
7926 candidate is selected by the mouse, and that candidate has a
7927 composed character under the mouse.
7928
1a2e6670
EZ
7929 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
7930 coordinates reported by pos-visible-in-window-p for a composed
7931 character in column zero.
7932
8b76d6f8
SM
79332011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
7934
7935 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
7936
dac347dd
EZ
79372011-08-22 Eli Zaretskii <eliz@gnu.org>
7938
7939 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
7940 consider it a hit if to_charpos is anywhere in the range of the
7941 composed buffer positions.
7942
e013fb34
CY
79432011-08-22 Chong Yidong <cyd@stupidchicken.com>
7944
7945 * image.c (gif_load): Don't assume that each subimage has the same
7946 dimensions as the base image. Handle disposal method that is
7947 "undefined" by the gif spec (Bug#9335).
7948
bd1ba3e8
CY
79492011-08-20 Chong Yidong <cyd@stupidchicken.com>
7950
7951 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 7952 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 7953
54a1215b
EZ
79542011-08-19 Eli Zaretskii <eliz@gnu.org>
7955
823564e5
EZ
7956 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
7957 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
7958 from an Org mode buffer to a Speedbar frame.
7959
54a1215b
EZ
7960 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
7961 a composition, take its buffer position from IT->cmp_it.charpos.
7962 Fixes cursor positioning at the beginning of a line that begins
7963 with a composed character.
7964
9778ebcc
EZ
79652011-08-18 Eli Zaretskii <eliz@gnu.org>
7966
0be6ee06
EZ
7967 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
7968 character bidirectional type, use STRONG_L instead. Fixes crashes
7969 in a buffer produced by `describe-categories'.
7970
9778ebcc
EZ
7971 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
7972 members before the level stack, so they would be saved and
7973 restored when copying iterator state. Fixes incorrect reordering
7974 around TABs covered by display properties.
7975
156bffbe
AS
79762011-08-18 Andreas Schwab <schwab@linux-m68k.org>
7977
6b02f655 7978 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 7979
72ad093b
CY
79802011-08-17 Chong Yidong <cyd@stupidchicken.com>
7981
7982 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
7983 (internal_condition_case_2, internal_condition_case_n):
7984 Remove unnecessary aborts (Bug#9081).
72ad093b 7985
35774242
EZ
79862011-08-17 Eli Zaretskii <eliz@gnu.org>
7987
7988 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
7989 has no `load' handler, try opening the file locally. (Bug#9311)
7990
db76dd85
KB
79912011-08-16 Ken Brown <kbrown@cornell.edu>
7992
7993 * gmalloc.c: Expand comment.
7994
b215eee5
EZ
79952011-08-16 Eli Zaretskii <eliz@gnu.org>
7996
7997 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
7998 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
7999
a4579d33
KB
80002011-08-16 Ken Brown <kbrown@cornell.edu>
8001
8002 Fix memory allocation problems in Cygwin build (Bug#9273).
8003
8004 * unexcw.c ( __malloc_initialized): Declare external variable.
8005 (fixup_executable): Force the dumped emacs to reinitialize malloc.
8006
8b76d6f8
SM
8007 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
8008 New variables.
a4579d33
KB
8009 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
8010 dumped emacs.
8011 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
8012 in the static heap.
8013 [CYGWIN] (special_realloc): New function.
8014 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
8015 requests to realloc storage in the static heap.
8016
3ebec551
PE
80172011-08-15 Paul Eggert <eggert@cs.ucla.edu>
8018
8019 * bidi.c (bidi_initialize): Remove unused local.
8020
9fd8be00
EZ
80212011-08-15 Eli Zaretskii <eliz@gnu.org>
8022
6b02f655
SM
8023 * bidimirror.h:
8024 * biditype.h: Remove file.
8025 * makefile.w32-in ($(BLD)/bidi.$(O)):
8026 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
8027
8028 * dispextern.h: Fix a typo in the comment to bidi_type_t.
8029
8030 * chartab.c: Improve commentary for the uniprop_table API.
8031
32413314
EZ
8032 * bidi.c (bidi_paragraph_init): Support zero value of
8033 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
8034 (bidi_initialize): Use uniprop_table instead of including
8035 biditype.h and bidimirror.h.
32413314 8036
9fd8be00
EZ
8037 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
8038 coordinates of the iterator when restoring from ppos_it.
8039 (Bug#9296)
8040
5cf2b69b
KH
80412011-08-14 Kenichi Handa <handa@m17n.org>
8042
8043 * process.c (create_process): Call setup_process_coding_systems
72ad093b 8044 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 8045
daf17d00
EZ
80462011-08-14 Eli Zaretskii <eliz@gnu.org>
8047
8048 * xdisp.c (move_it_in_display_line_to): Don't invoke
8049 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
8050 ppos_it. Fixes vertical cursor motion when line beginning is
8051 covered by an image. (Bug#9296)
8052
08e3161a
JD
80532011-08-14 Jan Djärv <jan.h.d@swipnet.se>
8054
8055 * nsterm.h (ns_run_ascript): Declare.
8056 (NSAPP_DATA2_RUNASSCRIPT): Define.
8057
8058 * nsfns.m (as_script, as_result, as_status): New static variables.
8059 (ns_run_ascript): New function.
5e617bc2 8060 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
8061 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
8062 the event loop. Get status from as_status (Bug#7276).
8063
8064 * nsterm.m (sendEvent): If event is NSApplicationDefined and
8065 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
8066 the event loop (Bug#7276).
8067
a3720aa2
AS
80682011-08-14 Andreas Schwab <schwab@linux-m68k.org>
8069
8070 * gnutls.c (QCgnutls_bootprop_priority)
8071 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
8072 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
8073 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
8074 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
8075 (QCgnutls_bootprop_verify_hostname_error)
8076 (QCgnutls_bootprop_callbacks_verify): Rename from
8077 Qgnutls_bootprop_..., all uses changed.
8078
8079 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
8080 uses changed.
8081
0a0d27fb
PE
80822011-08-14 Paul Eggert <eggert@cs.ucla.edu>
8083
19d5c50c
PE
8084 * xfaces.c (Qframe_set_background_mode): Now static.
8085 * dispextern.h (Qframe_set_background_mode): Remove decl.
8086
0a0d27fb
PE
8087 * process.c (Fnetwork_interface_info): Declare local only if needed.
8088
377538cb
JD
80892011-08-13 Jan Djärv <jan.h.d@swipnet.se>
8090
8091 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
8092 (Fnetwork_interface_list): Allocate in increments of bytes instead
8093 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
8094 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
8095 sockaddr.
8096 (struct ifflag_def): notrailers is smart on OSX.
8097 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
8098 Get hardware address with getifaddrs if available.
8099
08fff70c
EZ
81002011-08-12 Eli Zaretskii <eliz@gnu.org>
8101
8102 * xdisp.c (iterate_out_of_display_property): xassert that
8103 IT->position is set to within IT->object's boundaries. Break from
8104 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
8105 when IT->position is set up wrongly due to some bug.
8106 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
8107 (push_display_prop): Allow GET_FROM_STRING as IT->method on
8108 entry. Force push_it to save on the stack the current
8109 buffer/string position, to be restored by pop_it. Fix flags in
8110 the iterator structure wrt the object coming from a display
8111 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
8112 properties. (Bug#9284)
8113
7be1c708 81142011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 8115
7be1c708
CY
8116 * fontset.c (fontset_get_font_group): Add proper type checks.
8117 (Bug#9172)
aac0c6e3 8118
7be1c708 81192011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 8120
7be1c708
CY
8121 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
8122 and LC_VERSION_MIN_MACOSX.
8123 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
8124 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 8125
97bb72a6
EZ
81262011-08-08 Eli Zaretskii <eliz@gnu.org>
8127
8128 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
8129 no-display-properties-and-no-overlays under bidi display.
8130 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 8131 properties and overlays.
97bb72a6 8132
d5617611
CY
81332011-08-08 Chong Yidong <cyd@stupidchicken.com>
8134
37e11a63
CY
8135 * editfns.c (Fset_time_zone_rule): Document relationship with the
8136 setenv function.
8137
d5617611
CY
8138 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
8139 the font entity extracted from the cache (Bug#8109).
8140
58872834
CY
81412011-08-07 Chong Yidong <cyd@stupidchicken.com>
8142
8143 * composite.c (autocmp_chars): Don't reset point. That is done by
8144 restore_point_unwind (Bug#5984).
8145
75bfc667
JL
81462011-08-07 Juri Linkov <juri@jurta.org>
8147
8148 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
8149 to show the arg `TIME' instead of `TIMEVAL'.
8150
d1410150
EZ
81512011-08-06 Eli Zaretskii <eliz@gnu.org>
8152
8153 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
8154 display property strides EOL and includes a newline, as in
8155 longlines-mode. (Bug#9254)
75b771e4
EZ
8156 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
8157 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
8158
8159 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
8160 is non-zero, even if the data buffer is NULL. Fixes a crash in
8161 vertical-motion with longlines-mode. (Bug#9254)
8162
35928349
EZ
81632011-08-05 Eli Zaretskii <eliz@gnu.org>
8164
ec7cc85b
EZ
8165 * bidi.c <bidi_cache_total_alloc>: Now static.
8166 (bidi_initialize): Initialize bidi_cache_total_alloc.
8167
8b76d6f8 8168 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
8169 cache. (Bug#9221)
8170
8171 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
8172 amount allocated this far in `bidi_cache_total_alloc'.
8173 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
8174 non-zero, only free the data buffer without restoring the cache
8175 contents. All callers changed.
8176
8177 * dispextern.h (bidi_unshelve_cache): Update prototype.
8178
8179 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
8180 (move_it_in_display_line, move_it_to)
8181 (move_it_vertically_backward, move_it_by_lines): Replace the call
8182 to xfree to an equivalent call to bidi_unshelve_cache.
8183 (move_it_in_display_line_to): Fix logic of returning
412b6358 8184 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 8185
e2e2423b
EZ
81862011-08-05 Eli Zaretskii <eliz@gnu.org>
8187
8188 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
8189 came from a string character with a `cursor' property. (Bug#9229)
8190
ae9e757a
JD
81912011-08-04 Jan Djärv <jan.h.d@swipnet.se>
8192
8193 * Makefile.in (LIB_PTHREAD): New variable.
8194 (LIBES): Add LIB_PTHREAD (Bug#9216).
8195
8196 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
8197 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
8198
213bd7f2
AS
81992011-08-04 Andreas Schwab <schwab@linux-m68k.org>
8200
6b02f655 8201 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 8202
99aaf75f
JD
82032011-08-04 Jan Djärv <jan.h.d@swipnet.se>
8204
8205 * xterm.c (x_find_topmost_parent): New function.
8206 (x_set_frame_alpha): Find topmost parent window with
8207 x_find_topmost_parent and set the property there also (bug#9181).
8208 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
8209
c74e9d86
PE
82102011-08-04 Paul Eggert <eggert@cs.ucla.edu>
8211
8212 * callproc.c (Fcall_process): Avoid vfork clobbering
8213 the local vars buffer, coding_systems, current_dir.
8214
640c8776
SM
82152011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
8216
8217 * keymap.c (Fmake_composed_keymap): Move to subr.el.
8218
f26d0e4c
PE
82192011-08-03 Paul Eggert <eggert@cs.ucla.edu>
8220
8a10d76c
PE
8221 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
8222 so that it is not optimized away.
8223
f26d0e4c
PE
8224 * xdisp.c (compute_display_string_pos): Remove unused local.
8225
55439c61
EZ
82262011-08-02 Eli Zaretskii <eliz@gnu.org>
8227
8228 Fix slow cursor motion and scrolling in large buffers with
8229 selective display, like Org Mode buffers. (Bug#9218)
8230
8231 * dispextern.h (struct bidi_it): New member disp_prop_p.
8232
8233 * xdisp.c: Remove one-slot cache of display string positions.
8234 (compute_display_string_pos): Accept an additional argument
5e617bc2 8235 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
8236 for a display string or property. If found, set DISP_PROP_P
8237 non-zero.
8238
8239 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
8240 DISP_PROP_P, and pass it to compute_display_string_pos.
8241 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
8242 non-zero. All callers of bidi_fetch_char changed.
8243
fb33fa43
SM
82442011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
8245
8246 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
8247
b099e063
DM
82482010-12-03 Don March <don@ohspite.net>
8249
8250 * keymap.c (Fdefine_key): Fix non-prefix key error message when
8251 last character M-[char] is translated to ESC [char] (bug#7541).
8252
5cc7f7af
KH
82532011-08-02 Kenichi Handa <handa@m17n.org>
8254
d0fffa3f 8255 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
8256
8257 * chartab.c (uniprop_table): Make it non-static.
8258
525d5e6e
EZ
82592011-08-01 Eli Zaretskii <eliz@gnu.org>
8260
8261 * xdisp.c (forward_to_next_line_start): Accept additional argument
8262 BIDI_IT_PREV, and store into it the state of the bidi iterator had
8263 on the newline.
8264 (reseat_at_next_visible_line_start): Use the bidi iterator state
8265 returned by forward_to_next_line_start to restore the state of
8266 it->bidi_it after backing up to previous newline. (Bug#9212)
8267
31011111
AS
82682011-07-30 Andreas Schwab <schwab@linux-m68k.org>
8269
8270 * regex.c (re_comp): Protoize.
8271 (re_exec): Fix return type.
8272 (regexec): Fix type of `ret'. (Bug#9203)
8273
476371c4
PE
82742011-07-28 Paul Eggert <eggert@cs.ucla.edu>
8275
e5d76069
PE
8276 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
8277 This is needed if max-image-size is a floating-point number.
8278
9a79b20c
AS
82792011-07-28 Andreas Schwab <schwab@linux-m68k.org>
8280
8281 * print.c (print_object): Print empty symbol as ##.
8282
8283 * lread.c (read1): Read ## as empty symbol.
8284
d8c2fa78
AA
82852011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
8286
8287 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
8288 setting frame foreground color (Bug#9175).
8289 (x_set_background_color): Likewise.
8290
ffe57a7a
AA
8291 * nsmenu.m (-setText): Size tooltip dimensions precisely to
8292 contents (Bug#9176).
8293 (EmacsTooltip -init): Remove bezels and add shadows to
8294 tooltip windows.
8295
bf3492a5
AA
8296 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
8297 or scroll bar (Bug#8470).
8298
d55e9c53
AA
8299 * nsfont.m (nsfont_open): Remove assignment to voffset and
8300 unnecessary vars hshink, expand, hd, full_height, min_height.
8301 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
8302
8303 * nsterm.h (nsfont_info): Remove voffset field.
8304
d8c2fa78 83052011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
8306
8307 Implement strike-through and overline on NextStep (Bug#8863).
8308
8309 * nsfont.m (nsfont_open): Use underline position provided by font,
8310 instead of hard-coded value of 2.
8311 (nsfont_draw): Call ns_draw_text_decoration instead.
8312
8313 * nsterm.h: Add declaration for ns_draw_text_decoration.
8314
8315 * nsterm.m (ns_draw_text_decoration): New function for drawing
8316 underline, overline, and strike-through.
8317 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
8318 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 8319 accommodate underlining, etc.
4843aac3 8320
4cc60b9b
EZ
83212011-07-28 Eli Zaretskii <eliz@gnu.org>
8322
bc7ece87
EZ
8323 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
8324 default.
4cc60b9b 8325
476371c4
PE
83262011-07-28 Paul Eggert <eggert@cs.ucla.edu>
8327
66606eea
PE
8328 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
8329 Without this fix, if a signal arrives just after memory fills up,
8330 'malloc' might be invoked reentrantly.
8331
476371c4
PE
8332 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
8333 In other words, assume that every image size is allowed, on non-X
8334 hosts. This assumption is probably wrong, but it lets Emacs compile.
8335
f3fcc40d
AS
83362011-07-28 Andreas Schwab <schwab@linux-m68k.org>
8337
8338 * regex.c (re_iswctype): Convert return values to boolean.
8339
350c992f
EZ
83402011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
8341
8342 * xdisp.c (compute_display_string_pos): Don't use cached display
8343 string position if the buffer had its restriction changed.
8344 (Bug#9184)
8345
5266b4bb
PE
83462011-07-28 Paul Eggert <eggert@cs.ucla.edu>
8347
8348 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
8349
2573a837 83502011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 8351
41f55ccd 8352 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 8353
39e378da
PE
8354 * bidi.c: Integer size and overflow fixes.
8355 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
8356 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
8357 (bidi_cache_find_level_change, bidi_cache_ensure_space)
8358 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
8359 (bidi_find_other_level_edge):
8360 Use ptrdiff_t instead of EMACS_INT where either will do.
8361 This works better on 32-bit hosts configured --with-wide-int.
8362 (bidi_cache_ensure_space): Check for size-calculation overflow.
8363 Use % rather than repeated addition, for better worst-case speed.
8364 Don't set bidi_cache_size until after xrealloc returns, because it
8365 might not return.
8366 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
8367 (bidi_cache_ensure_space): Also check that the bidi cache size
8368 does not exceed that of the largest Lisp string or buffer. See Eli
8369 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 8370
5e927815
PE
8371 * alloc.c (__malloc_size_t): Remove.
8372 All uses replaced by size_t. See Andreas Schwab's note
8373 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
8374
ca4aa935
PE
8375 * image.c: Improve checking for integer overflow.
8376 (check_image_size): Assume that f is nonnull, since
8377 it is always nonnull in practice. This is one less thing to
8378 worry about when checking for integer overflow later.
8379 (x_check_image_size): New function, which checks for integer
8380 overflow issues inside X.
8381 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
8382 This removes the need for a memory_full check.
8383 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
8384 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
8385 (xbm_read_bitmap_data): Change locals back to 'int', since
8386 their values must fit in 'int'.
8387 (xpm_load_image, png_load, tiff_load):
8388 Invoke x_create_x_image_and_pixmap earlier,
8389 to avoid much needless work if the image is too large.
8390 (tiff_load): Treat overly large images as if
8391 x_create_x_image_and_pixmap failed, not as malloc failures.
8392 (gs_load): Use x_check_image_size.
8393
5f8f9cc2
PE
8394 * gtkutil.c: Omit integer casts.
8395 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
8396 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
8397
5adf60bc
PE
8398 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
8399
c8907a93
PE
8400 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
8401 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
8402 would wrongly return t on a 64-bit host.
8403
e3c25c68
PE
8404 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
8405 The plain *_OVERFLOW macros run afoul of GCC bug 49705
8406 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
8407 and therefore cause GCC to emit a bogus diagnostic in some cases.
8408
3f791afe
PE
8409 * image.c: Integer signedness and overflow and related fixes.
8410 This is not an exhaustive set of fixes, but it's time to
8411 record what I've got.
8412 (lookup_pixel_color, check_image_size): Remove redundant decls.
8413 (check_image_size): Don't assume that arbitrary EMACS_INT values
8414 fit in 'int', or that arbitrary 'double' values fit in 'int'.
8415 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
8416 (tiff_load, imagemagick_load_image):
8417 Check for overflow in size calculations.
8418 (x_create_x_image_and_pixmap): Remove unnecessary test for
8419 xmalloc returning NULL; that can't happen.
8420 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
8421 (xpm_color_bucket): Use better integer hashing function.
8422 (xpm_cache_color): Don't possibly over-allocate memory.
8423 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
8424 (gif_memory_source):
8425 Use ptrdiff_t, not int or size_t, to record sizes.
8426 (png_load): Don't assume values greater than 2**31 fit in 'int'.
8427 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
8428 either works, as we prefer signed integers.
8429 (tiff_read_from_memory, tiff_write_from_memory):
8430 Return tsize_t, not size_t, since that's what the TIFF API wants.
8431 (tiff_read_from_memory): Don't fail simply because the read would
8432 go past EOF; instead, return a short read.
8433 (tiff_load): Omit no-longer-needed casts.
8434 (Fimagemagick_types): Don't assume size fits into 'int'.
8435
3cc5a532
PE
8436 Improve hashing quality when configured --with-wide-int.
8437 * fns.c (hash_string): New function, taken from sxhash_string.
8438 Do not discard information about ASCII character case; this
8439 discarding is no longer needed.
8440 (sxhash-string): Use it. Change sig to match it. Caller changed.
8441 * lisp.h: Declare it.
8442 * lread.c (hash_string): Remove, since we now use fns.c's version.
8443 The fns.c version returns a wider integer if --with-wide-int is
8444 specified, so this should help the quality of the hashing a bit.
8445
b312a492
PE
8446 * emacs.c: Integer overflow minor fix.
8447 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
8448 Define only if GNU_LINUX.
8449 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
8450
dfd153ae
PE
8451 * dispnew.c: Integer signedness and overflow fixes.
8452 Remove unnecessary forward decls, that were a maintenance hassle.
8453 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
8454 All uses changed.
8455 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
8456 (scrolling_window): Use ptrdiff_t, not int, for byte count.
8457 (prepare_desired_row, line_draw_cost):
8458 Use int, not unsigned, where either works.
8459 (save_current_matrix, restore_current_matrix):
8460 Use ptrdiff_t, not size_t, where either works.
8461 (init_display): Check for overflow more accurately, and without
8462 relying on undefined behavior.
8463
a81d11a3
PE
8464 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
8465 Remove, replacing with the new symbols in lisp.h. All uses changed.
8466 * fileio.c (make_temp_name):
8467 * filelock.c (lock_file_1, lock_file):
8468 * xdisp.c (message_dolog):
8469 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
8470 Use pMd etc. instead.
8471 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
8472 replacing the pWIDE etc. symbols removed from editfns.c.
8473
3300e6fd
PE
8474 * keyboard.h (num_input_events): Now uintmax_t.
8475 This is (very slightly) less likely to mess up due to wraparound.
8476 All uses changed.
8477
fd05c7e9
PE
8478 * buffer.c: Integer signedness fixes.
8479 (alloc_buffer_text, enlarge_buffer_text):
8480 Use ptrdiff_t rather than size_t when either will do, as we prefer
8481 signed integers.
8482
903fe15d
PE
8483 * alloc.c: Integer signedness and overflow fixes.
8484 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
8485 (__malloc_size_t): Default to size_t, not to int.
8486 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
8487 (Fgarbage_collect, mark_object_loop_halt, mark_object):
8488 Prefer ptrdiff_t to size_t when either would do, as we prefer
8489 signed integers.
8490 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
8491 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
8492 Now const. Initialize with values that are in range even if char
8493 is signed.
8494 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
8495 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
8496 These functions do the right thing with sizes > 2**32.
8497 (check_depth): Now ptrdiff_t, not int.
8498 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
8499 Adjust to new way of storing sizes. Check for size overflow bugs
8500 in rest of code.
8501 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
8502 slightly wrong anyway, as it missed one instance of
8503 XMALLOC_OVERRUN_CHECK_OVERHEAD.
8504 (refill_memory_reserve): Omit needless cast to size_t.
8505 (mark_object_loop_halt): Mark as externally visible.
8506
ac82cc6a
PE
8507 * xselect.c: Integer signedness and overflow fixes.
8508 (Fx_register_dnd_atom, x_handle_dnd_message):
8509 Use ptrdiff_t, not size_t, since we prefer signed.
8510 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
8511 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
8512 x_dnd_atoms_size and x_dnd_atoms_length.
8513
c2d1e36d
PE
8514 * doprnt.c: Prefer signed to unsigned when either works.
8515 * eval.c (verror):
8516 * doprnt.c (doprnt):
8517 * lisp.h (doprnt):
8518 * xdisp.c (vmessage):
8519 Use ptrdiff_t, not size_t, when using or implementing doprnt,
8520 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
8521 prefer signed arithmetic to avoid comparison confusion.
8522 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
8523 but is a bit tricky.
8524
0e926e56
PE
8525 Assume freestanding C89 headers, string.h, stdlib.h.
8526 * data.c, doprnt.c, floatfns.c, print.c:
8527 Include float.h unconditionally.
8528 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
8529 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
8530 * regex.c: Likewise for stddef.h, string.h.
8531 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
8532 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
8533 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
8534 (STDC_HEADERS): Remove obsolete defines.
8535 * sysdep.c: Include limits.h unconditionally.
8536
9cfdb3ec
PE
8537 Assume support for memcmp, memcpy, memmove, memset.
8538 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
8539 * regex.c (memcmp, memcpy):
8540 Remove; we assume C89 now.
8541
8542 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
8543 (__malloc_safe_bcopy): Remove; no longer needed.
8544
cf950e6b 8545 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
8546 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
8547 well either way, and we prefer signed to unsigned.
8548
dbf38e02
LMI
85492011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
8550
8551 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
8552 closes the connection while we're reading (bug#9182).
8553
d6f0886c 85542011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 8555
d6f0886c
JD
8556 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
8557 are specified (Bug#9168).
24e0f6b1 8558
2eb1f9e6
PE
85592011-07-25 Paul Eggert <eggert@cs.ucla.edu>
8560
8561 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
8562 Found by GCC static checking and --with-wide-int on a 32-bit host.
8563
22381272 85642011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
8565
8566 * xdisp.c (compute_display_string_pos): Fix logic of caching
8567 previous display string position. Initialize cached_prev_pos to
8568 -1. Fixes slow-down at the beginning of a buffer.
8569
f25e39b4
EZ
85702011-07-24 Eli Zaretskii <eliz@gnu.org>
8571
8572 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
8573 for attrs[LFACE_FONTSET_INDEX].
8574
04c4b52e
PE
85752011-07-23 Paul Eggert <eggert@cs.ucla.edu>
8576
8577 * xml.c (parse_region): Remove unused local
8578 that was recently introduced.
8579
c1734fbd
EZ
85802011-07-23 Eli Zaretskii <eliz@gnu.org>
8581
be18c5a5
EZ
8582 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
8583 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
8584
c1734fbd
EZ
8585 * xdisp.c (move_it_in_display_line_to): Record the best matching
8586 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
8587 exit if none of the characters scanned was an exact match.
8588 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
8589 when exact match is impossible due to invisible text, and the
8590 lines are truncated.
8591
a258d627
JD
85922011-07-23 Jan Djärv <jan.h.d@swipnet.se>
8593
8594 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
8595 for OSX >= 10.7.
8596
b6d5a689
EZ
85972011-07-22 Eli Zaretskii <eliz@gnu.org>
8598
0f74f785
EZ
8599 Fix a significant slow-down of cursor motion with C-n, C-p,
8600 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
8601 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 8602 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
8603 (next_element_from_buffer): Call compute_stop_pos_backwards to
8604 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
8605 base_level_stop.
8606 (reseat): Don't look for prev_stop, as that could mean a very long
8607 run.
8608 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
8609 <cached_disp_overlay_modiff>: Cache for last found display string
8610 position.
551918c1 8611 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
8612 about the same buffer in the same area of character positions, and
8613 the buffer wasn't changed since the time the display string
8614 position was cached.
551918c1 8615
b2d0c91a
EZ
86162011-07-22 Eli Zaretskii <eliz@gnu.org>
8617
8618 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
8619 is an integer, which is important for empty lines. (Bug#9149)
8620
043604ee
CY
86212011-07-22 Chong Yidong <cyd@stupidchicken.com>
8622
8623 * frame.c (Fmodify_frame_parameters): In tty case, update the
8624 default face if necessary (Bug#4238).
8625
da4adb04
CY
86262011-07-21 Chong Yidong <cyd@stupidchicken.com>
8627
8628 * editfns.c (Fstring_to_char): No need to explain what a character
8629 is in the docstring (Bug#6576).
8630
9abd0532
LMI
86312011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
8632
8633 * xml.c (parse_region): Make sure we always return a tree.
8634
36881d16
HK
86352011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
8636
8637 * xml.c (parse_region): If a document contains only comments,
8638 return that, too.
8639
1e98674d
LMI
86402011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
8641
8642 * xml.c (make_dom): Return comments, too.
8643
590bd467
PE
86442011-07-19 Paul Eggert <eggert@cs.ucla.edu>
8645
8646 Port to OpenBSD.
8647 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
8648 and the surrounding thread.
8649 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
8650 rather than fgets, and retry after EINTR. Otherwise, 'emacs
8651 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
8652 timer goes off.
8653 * s/openbsd.h (BROKEN_SIGIO): Define.
8654 * unexelf.c (unexec) [__OpenBSD__]:
8655 Don't update the .mdebug section of the Alpha COFF symbol table.
8656
f41628b2
LMI
86572011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
8658
8659 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
8660 (bug#8460).
8661
b59b67c5
PE
86622011-07-18 Paul Eggert <eggert@cs.ucla.edu>
8663
15e3a074
PE
8664 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
8665 This fixes some race conditions on the permissions of any newly
8666 created file.
8667
41bed37d
PE
8668 * alloc.c (valid_pointer_p): Use pipe, not open.
8669 This fixes some permissions issues when debugging.
8670
b59b67c5
PE
8671 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
8672 If fchown fails to set both uid and gid, try to set just gid,
8673 as that is sometimes allowed. Adjust the file's mode to eliminate
8674 setuid or setgid bits that are inappropriate if fchown fails.
8675
925a6be7
SM
86762011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
8677
8678 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
8679 to compare Lisp_Objects.
8680 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
8681 global_gnutls_log_level, don't mistake it for a Lisp_Object.
8682 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
8683
52968808
AS
86842011-07-17 Andreas Schwab <schwab@linux-m68k.org>
8685
0a6a104b
AS
8686 * lread.c (read_integer): Unread even EOF character.
8687 (read1): Likewise. Properly record start position of symbol.
8688
52968808
AS
8689 * lread.c (read1): Read `#:' as empty uninterned symbol if no
8690 symbol character follows.
8691
9e381cdd
PE
86922011-07-17 Paul Eggert <eggert@cs.ucla.edu>
8693
8694 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
8695 This works around a problem with the previous change to Fcopy_file.
8696 Recent glibc declares fchown with __attribute__((warn_unused_result)),
8697 and without this change, GCC might complain about discarding
8698 fchown's return value.
8699
b5641435
JB
87002011-07-16 Juanma Barranquero <lekktu@gmail.com>
8701
8702 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
8703
a8031457
PE
87042011-07-16 Paul Eggert <eggert@cs.ucla.edu>
8705
8706 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
8707
dd889327
LMI
87082011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
8709
750c33f7
LMI
8710 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
8711 it's used from the C level.
8712
dd889327
LMI
8713 * process.c: Use the same condition for POLL_FOR_INPUT in both
8714 keyboard.c and process.c (bug#1858).
8715
87e86684
LM
87162011-07-09 Lawrence Mitchell <wence@gmx.li>
8717
8718 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
8719 (Fgnutls_boot): Use it.
8720
64348f40
AS
87212011-07-15 Andreas Schwab <schwab@linux-m68k.org>
8722
8723 * doc.c (Fsubstitute_command_keys): Revert last change.
8724
1d698799
LMI
87252011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
8726
f863868c
LMI
8727 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
8728 quotes the next character, and doesn't affect other longer
8729 sequences (bug#8935).
8730
1d698799
LMI
8731 * lread.c (syms_of_lread): Clarify that is isn't only
8732 `eval-buffer' and `eval-defun' that's affected by
8733 `lexical-binding' (bug#8460).
8734
aa4b6df6
EZ
87352011-07-15 Eli Zaretskii <eliz@gnu.org>
8736
8737 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 8738 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 8739
5d856da6
PE
87402011-07-14 Paul Eggert <eggert@cs.ucla.edu>
8741
ad6042bb
PE
8742 Fix minor problems found by static checking.
8743 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
8744 (elsz): Now a signed constant, not a size_t var. We prefer signed
8745 types to unsigned, to avoid integer comparison confusion. Without
8746 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
8747 "cannot optimize loop, the loop counter may overflow", a symptom
8748 of the confusion.
f00bbb22 8749 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
8750 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
8751
6468f31c
LMI
87522011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
8753
49080b10
LMI
8754 * search.c (Fre_search_backward): Mention `case-fold-search' in
8755 all the re_search_* functions (bug#8138).
8756
6468f31c
LMI
8757 * keyboard.c (Fopen_dribble_file): Document when the file is
8758 closed (bug#8056).
8759
c965adc5
EZ
87602011-07-14 Eli Zaretskii <eliz@gnu.org>
8761
df9733bf
EZ
8762 * bidi.c (bidi_dump_cached_states): Fix format of displaying
8763 bidi_cache_idx.
8764
0bb23927
EZ
8765 Support bidi reordering of display and overlay strings.
8766 * xdisp.c (compute_display_string_pos)
8767 (compute_display_string_end): Accept additional argument STRING.
8768 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
8769 (reseat_to_string): Initialize bidi_it->string.s and
8770 bidi_it->string.schars.
8771 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
8772 NULL (avoids a crash in bidi_paragraph_init).
8773 Initialize itb.string.lstring.
0bb23927
EZ
8774 (init_iterator): Call bidi_init_it only of a valid
8775 buffer position was specified. Initialize paragraph_embedding to
8776 L2R.
8777 (reseat_to_string): Initialize the bidi iterator.
8778 (display_string): If we need to ignore text properties of
8779 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
8780 original value of -1 will not work with bidi.)
8781 (compute_display_string_pos): First arg is now struct
8782 `text_pos *'; all callers changed. Support display properties on
8783 Lisp strings.
8784 (compute_display_string_end): Support display properties on Lisp
8785 strings.
8786 (init_iterator, reseat_1, reseat_to_string): Initialize the
8787 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
8788 when iterating on a string not from display properties).
640c8776
SM
8789 (compute_display_string_pos, compute_display_string_end):
8790 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
8791 arrow keys.
8792 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
8793 base_level_stop; instead, set base_level_stop to BEGV.
8794 Fixes crashes in vertical-motion.
0bb23927
EZ
8795 (next_element_from_buffer): Improve commentary for when
8796 the iterator is before prev_stop.
8797 (init_iterator): Initialize bidi_p from the default value of
8798 bidi-display-reordering, not from buffer-local value. Use the
8799 buffer-local value only if initializing for buffer iteration.
8800 (handle_invisible_prop): Support invisible properties on strings
8801 that are being bidi-reordered.
8802 (set_iterator_to_next): Support bidi reordering of C strings and
8803 Lisp strings.
8804 (next_element_from_string): Support bidi reordering of Lisp
8805 strings.
8806 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
8807 (display_string): Support display of R2L glyph rows.
8808 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
8809 (init_iterator): Don't initialize it->bidi_p for strings
8810 here.
8811 (reseat_to_string): Initialize it->bidi_p for strings here.
8812 (next_element_from_string, next_element_from_c_string)
8813 (next_element_from_buffer): Add xassert's for correspondence
8814 between IT's object being iterated and it->bidi_it.string
8815 structure.
8816 (face_before_or_after_it_pos): Support bidi iteration.
8817 (next_element_from_c_string): Handle the case of the first string
8818 character that is not the first one in the visual order.
8819 (get_visually_first_element): New function, refactored from common
8820 parts of next_element_from_buffer, next_element_from_string, and
8821 next_element_from_c_string.
8822 (tool_bar_lines_needed, redisplay_tool_bar)
8823 (display_menu_bar): Force left-to-right direction. Add a FIXME
8824 comment for making that be controlled by a user option.
8825 (push_it, pop_it): Save and restore the state of the
8826 bidi iterator. Save and restore the bidi_p flag.
8827 (pop_it): Iterate out of display property for string iteration as
8828 well.
8829 (iterate_out_of_display_property): Support iteration over strings.
8830 (handle_single_display_spec): Set up it->bidi_it for iteration
8831 over a display string, and call bidi_init_it.
8832 (handle_single_display_spec, next_overlay_string)
8833 (get_overlay_strings_1, push_display_prop): Set up the bidi
8834 iterator for displaying display or overlay strings.
8835 (forward_to_next_line_start): Don't use the shortcut if
8836 bidi-iterating.
8837 (back_to_previous_visible_line_start): If handle_display_prop
8838 pushed the iterator stack, restore the internal state of the bidi
8839 iterator by calling bidi_pop_it same number of times.
8840 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
8841 and we are bidi-iterating, don't decrement the iterator position;
8842 instead, set the first_elt flag in the bidi iterator, to produce
8843 the same effect.
8844 (reseat_1): Remove redundant setting of string_from_display_prop_p.
8845 (push_display_prop): xassert that we are iterating a buffer.
8846 (push_it, pop_it): Save and restore paragraph_embedding member.
8847 (handle_single_display_spec, next_overlay_string)
8848 (get_overlay_strings_1, reseat_1, reseat_to_string)
8849 (push_display_prop): Set up the `unibyte' member of bidi_it.string
8850 correctly. Don't assume unibyte strings are not bidi-reordered.
8851 (compute_display_string_pos)
8852 (compute_display_string_end): Fix handling the case of C string.
8853 (push_it, pop_it): Save and restore from_disp_prop_p.
8854 (handle_single_display_spec, push_display_prop): Set the
8855 from_disp_prop_p flag.
8856 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
8857 (pop_it): Call iterate_out_of_display_property only if we are
8858 popping after iteration over a string that came from a display
8859 property. Fix a typo in popping stretch info. Add an assertion
8860 for verifying that the iterator position is in sync with the bidi
8861 iterator.
8862 (handle_single_display_spec, get_overlay_strings_1)
8863 (push_display_prop): Fix initialization of paragraph direction for
8864 string when that of the parent object is not yet determined.
8865 (reseat_1): Call bidi_init_it to resync the bidi
8866 iterator with IT's position. (Bug#7616)
8867 (find_row_edges): If ROW->start.pos gives position
8868 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
8869 (handle_stop, back_to_previous_visible_line_start, reseat_1):
8870 Reset the from_disp_prop_p flag.
8871 (SAVE_IT, RESTORE_IT): New macros.
8872 (pos_visible_p, face_before_or_after_it_pos)
8873 (back_to_previous_visible_line_start)
8874 (move_it_in_display_line_to, move_it_in_display_line)
8875 (move_it_to, move_it_vertically_backward, move_it_by_lines)
8876 (try_scrolling, redisplay_window, display_line): Use them when
8877 saving a temporary copy of the iterator and restoring it back.
8878 (back_to_previous_visible_line_start, reseat_1)
8879 (init_iterator): Empty the bidi cache "stack".
8880 (move_it_in_display_line_to): If iterator ended up at
8881 EOL, but we never saw any buffer positions smaller than
8882 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
8883 motion in bidi-reordered lines.
8884 (move_it_in_display_line_to): Record prev_method and prev_pos
8885 immediately before the call to set_iterator_to_next. Fixes cursor
8886 motion in bidi-reordered lines with stretch glyphs and strings
8887 displayed in margins. (Bug#8133) (Bug#8867)
8888 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
8889 TO_CHARPOS.
640c8776
SM
8890 (pos_visible_p): Support positions in bidi-reordered lines.
8891 Save and restore bidi cache.
0bb23927
EZ
8892
8893 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
8894 (bidi_paragraph_info): Delete unused struct.
8895 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
8896 (bidi_cache_start): New variable.
8897 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
8898 to zero.
8899 (bidi_cache_fetch_state, bidi_cache_search)
8900 (bidi_cache_find_level_change, bidi_cache_iterator_state)
8901 (bidi_cache_find, bidi_peek_at_next_level)
8902 (bidi_level_of_next_char, bidi_find_other_level_edge)
8903 (bidi_move_to_visually_next): Compare cache index with
8904 bidi_cache_start rather than with zero.
8905 (bidi_fetch_char): Accept new argument STRING; all callers
8906 changed. Support iteration over a string. Support strings with
8907 display properties. Support unibyte strings. Fix the type of
8908 `len' according to what STRING_CHAR_AND_LENGTH expects.
8909 (bidi_paragraph_init, bidi_resolve_explicit_1)
8910 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
8911 (bidi_level_of_next_char, bidi_move_to_visually_next):
8912 Support iteration over a string.
0bb23927
EZ
8913 (bidi_set_sor_type, bidi_resolve_explicit_1)
8914 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
8915 can now be zero (for strings); special values 0 and -1 were
8916 changed to -1 and -2, respectively.
8917 (bidi_char_at_pos): New function.
8918 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
8919 Call it instead of FETCH_MULTIBYTE_CHAR.
8920 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
8921 initialized to valid values.
8922 (bidi_init_it): Don't initialize charpos and bytepos with invalid
8923 values.
8924 (bidi_level_of_next_char): Allow the sentinel "position" to pass
8925 the test for valid cached positions. Fix the logic for looking up
8926 the sentinel state in the cache. GCPRO the Lisp string we are
8927 iterating.
8928 (bidi_push_it, bidi_pop_it): New functions.
8929 (bidi_initialize): Initialize the bidi cache start stack pointer.
8930 (bidi_cache_ensure_space): New function, refactored from part of
8931 bidi_cache_iterator_state. Don't assume the required size is just
8932 one BIDI_CACHE_CHUNK away.
8933 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
8934 (bidi_count_bytes, bidi_char_at_pos): New functions.
8935 (bidi_cache_search): Don't assume bidi_cache_last_idx is
8936 always valid if bidi_cache_idx is valid.
8937 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
8938 is valid if it's going to be used.
8939 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
8940 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
8941 (bidi_cache_find_level_change, bidi_cache_ensure_space)
8942 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
8943 (bidi_find_other_level_edge, bidi_cache_start_stack):
8944 All variables related to cache indices are now EMACS_INT.
c965adc5 8945
0bb23927
EZ
8946 * dispextern.h (struct bidi_string_data): New structure.
8947 (struct bidi_it): New member `string'. Make flag members be 1-bit
8948 fields, and put them last in the struct.
640c8776
SM
8949 (compute_display_string_pos, compute_display_string_end):
8950 Update prototypes.
0bb23927
EZ
8951 (bidi_push_it, bidi_pop_it): Add prototypes.
8952 (struct iterator_stack_entry): New members bidi_p,
8953 paragraph_embedding, and from_disp_prop_p.
8954 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
8955 (bidi_shelve_cache, bidi_unshelve_cache):
8956 Declare prototypes.
0bb23927
EZ
8957
8958 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
8959 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
8960 and vector-like objects.
8961
8962 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
8963 cache around display iteration.
8964
8965 * window.c (Fwindow_end, window_scroll_pixel_based)
8966 (displayed_window_lines, Frecenter): Save and restore the bidi
8967 cache around display iteration.
8968
3bbd2265
LMI
89692011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
8970
8971 * editfns.c (Fdelete_region): Clarify the use of the named
8972 parameters (bug#6788).
8973
adc47434
MR
89742011-07-14 Martin Rudalics <rudalics@gmx.at>
8975
8976 * indent.c (Fvertical_motion): Set and restore w->pointm when
8977 saving and restoring the window's buffer (Bug#9006).
8978
837c31f8
LMI
89792011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
8980
8981 * editfns.c (Fstring_to_char): Clarify just what is returned
8982 (bug#6576). Text by Eli Zaretskii.
8983
ac389d0c
JB
89842011-07-13 Juanma Barranquero <lekktu@gmail.com>
8985
8986 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
8987
0be0ce47
EZ
89882011-07-13 Eli Zaretskii <eliz@gnu.org>
8989
8990 * buffer.c (mmap_find): Fix a typo.
8991
cd18e7e3
JB
89922011-07-13 Johan Bockgård <bojohan@gnu.org>
8993
8994 Fix execution of x selection hooks.
8995 * xselect.c (Qx_lost_selection_functions)
8996 (Qx_sent_selection_functions): New vars.
8997 (syms_of_xselect): DEFSYM them.
8998 (x_handle_selection_request): Pass Qx_sent_selection_functions
8999 rather than Vx_sent_selection_functions to Frun_hook_with_args.
9000 (x_handle_selection_clear,x_clear_frame_selections):
9001 Pass Qx_lost_selection_functions rather than
9002 Vx_lost_selection_functions to Frun_hook_with_args.
9003
47ea7f44
PE
90042011-07-13 Paul Eggert <eggert@cs.ucla.edu>
9005
ac389d0c 9006 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
9007 The old code sometimes used this field without initializing it.
9008
47ea7f44
PE
9009 * alloc.c (gc_sweep): Don't read past end of array.
9010 In theory, the old code could also have corrupted Emacs internals,
9011 though it'd be very unlikely.
9012
bc985c87
AS
90132011-07-12 Andreas Schwab <schwab@linux-m68k.org>
9014
9015 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 9016 argument. (Bug#4026)
bc985c87 9017
0cf34688
LMI
90182011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
9019
b3dadd76
LMI
9020 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
9021 key" (bug#4257).
9022
0cf34688
LMI
9023 * window.c (Fset_window_start): Doc fix (bug#4199).
9024 (Fset_window_hscroll): Ditto.
9025
270768cd
PE
90262011-07-12 Paul Eggert <eggert@cs.ucla.edu>
9027
077e3dda 9028 Fix minor new problems caught by GCC 4.6.1.
270768cd 9029 * term.c (init_tty): Remove unused local.
490011a6 9030 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 9031 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 9032 not used otherwise.
270768cd 9033
b1f58454
CY
90342011-07-12 Chong Yidong <cyd@stupidchicken.com>
9035
9036 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
9037
22b9578d
LMI
90382011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
9039
6e70ab07
LMI
9040 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
9041 are the mini-buffer and the echo area (bug#3320).
9042
22b9578d
LMI
9043 * term.c (init_tty): Remove support for supdup, c10 and perq
9044 terminals, which are no longer supported (bug#1482).
9045
8974cc9f
JB
90462011-07-10 Johan Bockgård <bojohan@gnu.org>
9047
9048 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
9049
a560d974
JD
90502011-07-10 Jan Djärv <jan.h.d@swipnet.se>
9051
9052 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
9053 for non-popups (Bug#3642).
9054
1dae0f0a
AS
90552011-07-10 Andreas Schwab <schwab@linux-m68k.org>
9056
268c2c36 9057 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 9058 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
9059 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
9060 * cm.c (losecursor): Likewise.
1dae0f0a
AS
9061 * data.c (fmod): Likewise.
9062 * dispnew.c (swap_glyphs_in_rows): Likewise.
9063 * emacs.c (memory_warning_signal): Likewise.
9064 * floatfns.c (float_error): Likewise.
9065 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
9066 (otf_open, font_otf_capability, generate_otf_features)
9067 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
9068 Likewise.
9069 * image.c (pbm_read_file): Likewise.
9070 * indent.c (string_display_width): Likewise.
9071 * intervals.c (check_for_interval, search_for_interval)
9072 (inc_interval_count, count_intervals, root_interval)
9073 (adjust_intervals_for_insertion, make_new_interval): Likewise.
9074 * lread.c (defalias): Likewise.
268c2c36 9075 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
9076 * regex.c (set_image_of_range_1, set_image_of_range)
9077 (regex_grow_registers): Likewise.
9078 * sysdep.c (strerror): Likewise.
9079 * termcap.c (valid_filename_p, tprint, main): Likewise.
9080 * tparam.c (main): Likewise.
9081 * unexhp9k800.c (run_time_remap, save_data_space)
9082 (update_file_ptrs, read_header, write_header, calculate_checksum)
9083 (copy_file, copy_rest, display_header): Likewise.
9084 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
9085 Likewise.
9086 * xdisp.c (check_it): Likewise.
9087 * xfaces.c (register_color, unregister_color, unregister_colors):
9088 Likewise.
9089 * xfns.c (print_fontset_result): Likewise.
9090 * xrdb.c (member, fatal, main): Likewise.
9091
99033785
PE
90922011-07-10 Paul Eggert <eggert@cs.ucla.edu>
9093
9094 Fix minor problems found by static checking (Bug#9031).
9095 * chartab.c (char_table_set_range, map_sub_char_table):
9096 Remove unused locals.
9097 (uniprop_table): Now static.
9098 * composite.c (_work_char): Remove unused static var.
9099
9cb2ac56
JB
91002011-07-09 Juanma Barranquero <lekktu@gmail.com>
9101
9102 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
9103
f25661f0
JD
91042011-07-09 Jan Djärv <jan.h.d@swipnet.se>
9105
9106 * gtkutil.c (qttip_cb): Remove code without function.
9107
8278c4fe
EZ
91082011-07-09 Eli Zaretskii <eliz@gnu.org>
9109
9110 * w32.c (pthread_sigmask): New stub.
9111
1692ae2d 91122011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 9113
8a6ebd58 9114 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
9115 sigprocmask is portable only for single-threaded applications, and
9116 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
9117 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
9118 (LIBES): Use it.
9119 * callproc.c (Fcall_process):
9120 * process.c (create_process):
9121 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
9122 Use pthread_sigmask, not sigprocmask.
123403e4 9123
1b854618
JD
91242011-07-08 Jan Djärv <jan.h.d@swipnet.se>
9125
9126 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
9127 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
9128 wrong (Bug#8591).
9129
3fe4b549
JD
91302011-07-08 Jan Djärv <jan.h.d@swipnet.se>
9131
0ce7e563
JD
9132 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
9133 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
9134 (xg_hide_tooltip): Fix comment.
9135
3fe4b549
JD
9136 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
9137 in registerServicesMenuSendTypes.
9138 (validRequestorForSendType): Don't check ns_return_types.
9139
9140 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
9141 ns_return_type.
9142
5df75e47
JR
91432011-07-08 Jason Rumney <jasonr@gnu.org>
9144
22610910
JR
9145 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
9146 SH_SHOW for hidden windows (Bug#5482).
9147
5df75e47
JR
9148 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
9149 frame struct members of non-existent frames (Bug#6284).
9150
699c10bd
JD
91512011-07-08 Jan Djärv <jan.h.d@swipnet.se>
9152
4393663b
JD
9153 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
9154 variable firstTime not needed on OSX >= 10.6.
9155 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
9156 >= 10.5. Use setKnobProportion, setDoubleValue.
9157
9158 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
9159 (MAC_OS_X_VERSION_10_5): Define if not defined.
9160 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
9161 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
9162 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
9163
9164 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 9165 cString and lossyCString on OSX >= 10.4.
4393663b 9166
58179cce 9167 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
9168 sizeToFit on OSX >= 10.2.
9169
9170 * nsimage.m (allocInitFromFile): Don't use deprecated method
9171 bestRepresentationForDevice on OSX >= 10.6.
9172
9173 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
9174 to avoid warning.
9175
9176 * emacs.c: Declare unexec_init_emacs_zone.
9177
a63e0781
JD
9178 * nsgui.h: Fix compiler warning about gnulib redefining verify.
9179
699c10bd
JD
9180 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
9181
9182 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
9183 on svcsMenu (Bug#8842).
9184
9185 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
9186 ns_return_types.
9187 (Fns_list_services): Just return Qnil on 10.6, code not working there.
9188
9189 * nsterm.m (QUTF8_STRING): Declare.
9190 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
9191 (validRequestorForSendType): Return type is (id).
9192 Change indexOfObjectIdenticalTo to indexOfObject.
9193 Check if we have local selection before returning self (Bug#8842).
9194 (writeSelectionToPasteboard): Put local selection into paste board
9195 if we have a local selection (Bug#8842).
9196 (syms_of_nsterm): DEFSYM QUTF8_STRING.
9197
9198 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
9199 (ns_get_local_selection): Declare.
9200
54e10184
LMI
92012011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
9202
9888ff71
LMI
9203 * keymap.c (describe_map_tree): Don't insert a double newline at
9204 the end of the buffer (bug#1169) and return whether we inserted
9205 something.
9206
54e10184
LMI
9207 * callint.c (Fcall_interactively): Change "reading args" to
9208 "providing args" to try to clarify what it does (bug#1010).
9209
15fa4783
KH
92102011-07-07 Kenichi Handa <handa@m17n.org>
9211
9212 * composite.c (composition_compute_stop_pos): Ignore a static
9213 composition starting before CHARPOS (Bug#8915).
9214
9215 * xdisp.c (handle_composition_prop): Likewise.
9216
a8815b00
EZ
92172011-07-07 Eli Zaretskii <eliz@gnu.org>
9218
9219 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
9220 (Bug#9015)
9221
ef7b981d 92222011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
9223
9224 * character.h (unicode_category_t): New enum type.
9225
9226 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
9227 (Qchar_code_property_table): New variable.
9228 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
9229 (UNIPROP_COMPRESSED_FORM_P): New macros.
9230 (char_table_ascii): Uncompress the compressed values.
9231 (sub_char_table_ref): New arg is_uniprop. Callers changed.
9232 Uncompress the compressed values.
ac389d0c 9233 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
9234 (char_table_ref_and_range): Uncompress the compressed values.
9235 (sub_char_table_set): New arg is_uniprop. Callers changed.
9236 Uncompress the compressed values.
9237 (sub_char_table_set_range): Args changed. Callers changed.
9238 (char_table_set_range): Adjuted for the above change.
9239 (map_sub_char_table): Delete args default_val and parent. Add arg
9240 top. Give decoded values to a Lisp function.
640c8776 9241 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
9242 values to a Lisp function. Gcpro more variables.
9243 (uniprop_table_uncompress)
9244 (uniprop_decode_value_run_length): New functions.
9245 (uniprop_decoder, uniprop_decoder_count): New variables.
9246 (uniprop_get_decoder, uniprop_encode_value_character)
9247 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
9248 New functions.
9249 (uniprop_encoder, uniprop_encoder_count): New variables.
9250 (uniprop_get_encoder, uniprop_table)
9251 (Funicode_property_table_internal, Fget_unicode_property_internal)
9252 (Fput_unicode_property_internal): New functions.
9253 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
9254 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 9255 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
9256 char-code-property-alist.
9257
640c8776 9258 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
9259 Vunicode_category_table.
9260
640c8776 9261 * font.c (font_range): Adjust for the change of
c805dec0
KH
9262 Vunicode_category_table.
9263
76b397fb
DN
92642011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
9265
9266 * m/iris4d.h: Remove file, move contents ...
9267 * s/irix6-5.h: ... here.
9268
22b4128e
PE
92692011-07-06 Paul Eggert <eggert@cs.ucla.edu>
9270
9271 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
9272 * alloc.c (mark_buffer):
9273 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
9274 (clone_per_buffer_values): Don't assume that
22b4128e
PE
9275 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
9276 This isn't true in general, and it's particularly not true
9277 if Emacs is configured with --with-wide-int.
9278 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
9279 New macros, used in the buffer.c change.
9280
869795d6
JD
92812011-07-05 Jan Djärv <jan.h.d@swipnet.se>
9282
9283 * xsettings.c: Use both GConf and GSettings if both are available.
9284 (store_config_changed_event): Add comment.
9285 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
9286 (store_tool_bar_style_changed): New functions.
5e617bc2 9287 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
9288 (struct xsettings): Move font inside HAVE_XFT.
9289 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 9290 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 9291 Move inside HAVE_XFT.
640c8776 9292 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
9293 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
9294 also.
9295 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 9296 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 9297 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
9298 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
9299 (parse_settings): Move check for font inside HAVE_XFT.
9300 (read_settings, apply_xft_settings): Add comment.
9301 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
9302 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
9303 call store_font_name_changed.
9304 (xft_settings_event): Add comment.
9305 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
9306 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
9307 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
9308 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
9309 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
9310 (xsettings_get_system_font, xsettings_get_system_normal_font):
9311 Add comment.
869795d6 9312
d8ed26bd
PE
93132011-07-05 Paul Eggert <eggert@cs.ucla.edu>
9314
9315 Random fixes. E.g., (random) never returned negative values.
9316 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
9317 subseconds part to the entropy, as that's a bit more random.
9318 Prefer signed to unsigned, since the signedness doesn't matter and
9319 in general we prefer signed. When given a limit, use a
9320 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
9321 latter isn't right if USE_2_TAGS_FOR_INTS.
9322 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
9323 not 0..VALMASK. Don't discard "excess" bits that random () returns.
9324
cabf1cac
SM
93252011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
9326
9327 * textprop.c (text_property_stickiness):
9328 Obey Vtext_property_default_nonsticky.
9329 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
9330 * w32fns.c (syms_of_w32fns):
9331 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
9332
6e9b2be9
PE
93332011-07-04 Paul Eggert <eggert@cs.ucla.edu>
9334
9335 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
9336 This is more efficient than Ffile_directory_p and avoids a minor race.
9337
90186c68
LMI
93382011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
9339
7c301272
LMI
9340 * buffer.c (Foverlay_put): Say what the return value is
9341 (bug#7835).
9342
c4f2d8d4
LMI
9343 * fileio.c (barf_or_query_if_file_exists): Check first if the file
9344 is a directory before asking whether to use the file name
9345 (bug#7564).
ad637907
LMI
9346 (barf_or_query_if_file_exists): Make the "File is a directory"
9347 error be more correct.
c4f2d8d4 9348
90186c68
LMI
9349 * fns.c (Frequire): Remove the mention of the .gz files, since
9350 that's installation-specific, but keep the mention of
9351 `get-load-suffixes'.
9352
da64016e
PE
93532011-07-04 Paul Eggert <eggert@cs.ucla.edu>
9354
9355 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
9356 Report string overflow if the output is too long.
9357
7d47b580
JB
93582011-07-04 Juanma Barranquero <lekktu@gmail.com>
9359
a555cb87
JB
9360 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
9361 (syms_of_gnutls): Remove duplicate DEFSYM for
9362 Qgnutls_bootprop_verify_hostname_error, an error for
9363 Qgnutls_bootprop_verify_error (which is no longer used).
9364
7d47b580
JB
9365 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
9366 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
9367 Also (re)move comments that are misplaced or no longer relevant.
9368
1e49bfab
LMI
93692011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
9370
9371 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
9372
1485f4c0
CY
93732011-07-03 Chong Yidong <cyd@stupidchicken.com>
9374
9375 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
9376 and background color parameters if they have been changed.
9377
a9ab721e
LMI
93782011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
9379
9380 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
9381
cf7cff57
PE
93822011-07-03 Paul Eggert <eggert@cs.ucla.edu>
9383
2e13213d
PE
9384 * xsettings.c (SYSTEM_FONT): Define only when used.
9385 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
9386
cf7cff57
PE
9387 * keymap.c (access_keymap_1): Now static.
9388
7a8e04f7
CY
93892011-07-02 Chong Yidong <cyd@stupidchicken.com>
9390
9391 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
9392 leave any prefix arg for the up event (Bug#1586).
9393
61352f62
LMI
93942011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
9395
69bb1ef7
LMI
9396 * lread.c (syms_of_lread): Mention single symbols defined by
9397 `defvar' or `defconst' (bug#7154).
9398
61352f62 9399 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 9400 (Frequire): Mention get-load-suffixes.
61352f62 9401
28545e04
MR
94022011-07-02 Martin Rudalics <rudalics@gmx.at>
9403
9404 * window.h (window): Remove clone_number slot.
9405 * window.c (Fwindow_clone_number, Fset_window_clone_number):
9406 Remove.
9407 (make_parent_window, make_window, saved_window)
9408 (Fset_window_configuration, save_window_save): Don't deal with
9409 clone numbers.
9410 * buffer.c (Qclone_number): Remove declaration.
9411 (sort_overlays, overlay_strings): Don't deal with clone numbers.
9412
3349e122
SM
94132011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
9414
9415 Add multiple inheritance to keymaps.
9416 * keymap.c (Fmake_composed_keymap): New function.
9417 (Fset_keymap_parent): Simplify.
9418 (fix_submap_inheritance): Remove.
9419 (access_keymap_1): New function extracted from access_keymap to handle
9420 embedded parents and handle lists of maps.
9421 (access_keymap): Use it.
9422 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
9423 (Fcopy_keymap): Handle embedded parents.
9424 (Fcommand_remapping, define_as_prefix): Simplify.
9425 (Fkey_binding): Simplify.
9426 (syms_of_keymap): Move minibuffer-local-completion-map,
9427 minibuffer-local-filename-completion-map,
9428 minibuffer-local-must-match-map, and
9429 minibuffer-local-filename-must-match-map to Elisp.
9430 (syms_of_keymap): Defsubr make-composed-keymap.
9431 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
9432 (parse_menu_item): Trivial simplification.
9433
3279eb87
GM
94342011-07-01 Glenn Morris <rgm@gnu.org>
9435
9436 * Makefile.in (SETTINGS_LIBS): Fix typo.
9437
4550efdf
KI
94382011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
9439
9440 * coding.c (Fencode_coding_string): Record the last coding system
9441 used, as the function doc string says (bug#8738).
9442
0949d2b6
JD
94432011-07-01 Jan Djärv <jan.h.d@swipnet.se>
9444
9445 * xsettings.c (store_monospaced_changed): Take new font as arg and
9446 check for change against current_mono_font.
9447 (EMACS_TYPE_SETTINGS): Remove this and related defines.
9448 (emacs_settings_constructor, emacs_settings_get_property)
9449 (emacs_settings_set_property, emacs_settings_class_init)
9450 (emacs_settings_init, gsettings_obj): Remove.
9451 (something_changedCB): New function for HAVE_GSETTINGS.
9452 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
9453 with value as argument.
9454 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
9455 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 9456 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
9457 "changed".
9458
9459 * xgselect.c: Add defined (HAVE_GSETTINGS).
9460 (xgselect_initialize): Ditto.
9461
9462 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
9463 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
9464 xg_select.
9465
bbc6b304
PE
94662011-07-01 Paul Eggert <eggert@cs.ucla.edu>
9467
9468 * eval.c (struct backtrace): Simplify and port the data structure.
9469 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
9470 signed bit field, as this assumption is not portable and it makes
9471 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
9472 "char debug_on_exit : 1" as this is not portable either; instead,
9473 use the portable "unsigned int debug_on_exit : 1". Remove unused
9474 member evalargs. Remove obsolete comments about cc bombing out.
9475
9851bfc5
JD
94762011-06-30 Jan Djärv <jan.h.d@swipnet.se>
9477
51bb811f 9478 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
9479 Let HAVE_GSETTINGS override HAVE_GCONF.
9480 (store_monospaced_changed): New function.
9481 (EMACS_SETTINGS): A new type derived from GObject to handle
9482 GSettings notifications.
9483 (emacs_settings_constructor, emacs_settings_get_property)
9484 (emacs_settings_set_property, emacs_settings_class_init):
9485 New functions.
9486 (gsettings_client, gsettings_obj): New variables.
9487 (GSETTINGS_SCHEMA): New define.
9488 (something_changedCB): Call store_monospaced_changed.
9489 (init_gsettings): New function.
9490 (xsettings_initialize): Call init_gsettings.
9491 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
9492 to NULL.
9493
640c8776 9494 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
9495 GCONF_CFLAGS/LIBS.
9496
5386012d
MR
94972011-06-29 Martin Rudalics <rudalics@gmx.at>
9498
9499 * window.c (resize_root_window, grow_mini_window)
9500 (shrink_mini_window): Rename Qresize_root_window to
9501 Qwindow_resize_root_window and Qresize_root_window_vertically to
9502 Qwindow_resize_root_window_vertically.
9503
f13e0b08
PE
95042011-06-28 Paul Eggert <eggert@cs.ucla.edu>
9505
9506 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
9507
94515237
JB
95082011-06-27 Juanma Barranquero <lekktu@gmail.com>
9509
9510 * makefile.w32-in: Redesign dependencies so they reflect more
9511 clearly which files are directly included by each source file,
9512 and not through other includes.
9513
e43b6e43
MR
95142011-06-27 Martin Rudalics <rudalics@gmx.at>
9515
9516 * buffer.c (Qclone_number): Declare static and DEFSYM it.
9517 (sort_overlays, overlay_strings): When an overlay's clone number
9518 matches the window's clone number process the overlay even if
9519 the overlay's window property doesn't match the current window.
9520
d68443dc
MR
9521 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
9522 (Fwindow_hchild): Rename to Fwindow_left_child.
9523 (Fwindow_next): Rename to Fwindow_next_sibling.
9524 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
9525 (resize_window_check): Rename to window_resize_check.
9526 (resize_window_apply): Rename to window_resize_apply.
9527 (Fresize_window_apply): Rename to Fwindow_resize_apply.
9528 (Fdelete_other_windows_internal, resize_frame_windows)
9529 (Fsplit_window_internal, Fdelete_window_internal)
9530 (grow_mini_window, shrink_mini_window)
9531 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 9532
c7e73be5
JD
95332011-06-26 Jan Djärv <jan.h.d@swipnet.se>
9534
9535 * emacsgtkfixed.h: State that this is only used with Gtk+3.
9536 (emacs_fixed_set_min_size): Remove.
9537 (emacs_fixed_new): Take frame as argument.
9538
9539 * emacsgtkfixed.c: State that this is only used with Gtk+3.
9540 (_EmacsFixedPrivate): Remove minwidth/height.
9541 Add struct frame *f.
9542 (emacs_fixed_init): Initialize priv->f.
9543 (get_parent_class, emacs_fixed_set_min_size): Remove.
9544 (emacs_fixed_new): Set priv->f to argument.
9545 (emacs_fixed_get_preferred_width)
9546 (emacs_fixed_get_preferred_height): Use min_width/height from
9547 frames size_hint to set minimum and natural (Bug#8919).
9548 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
9549 and use min_width/height from frames size_hint to set
9550 min_width/height (Bug#8919).
9551
9552 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
9553 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
9554 Fix indentation.
c7e73be5 9555
cf99dcf8
EZ
95562011-06-26 Eli Zaretskii <eliz@gnu.org>
9557
9558 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
9559 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
9560 called at ZV.
9561
029529ac
CY
95622011-06-26 Chong Yidong <cyd@stupidchicken.com>
9563
9564 * process.c (wait_reading_process_output): Bypass select if
9565 waiting for a cell while ignoring keyboard input, and input is
9566 pending. Suggested by Jan Djärv (Bug#8869).
9567
7a7ef429
PE
95682011-06-25 Paul Eggert <eggert@cs.ucla.edu>
9569
9570 Use gnulib's dup2 module instead of rolling our own.
9571 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
9572
11fdef7d 95732011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
9574
9575 * dispnew.c (scrolling_window): Before scrolling, turn off a
9576 mouse-highlight in the window being scrolled.
9577
cd3520a4
JB
95782011-06-24 Juanma Barranquero <lekktu@gmail.com>
9579
9580 Move DEFSYM to lisp.h and use everywhere.
9581
9582 * character.h (DEFSYM): Move declaration...
9583 * lisp.h (DEFSYM): ...here.
9584
9585 * gnutls.c:
9586 * minibuf.c:
9587 * w32menu.c:
9588 * w32proc.c:
9589 * w32select.c: Don't include character.h.
9590
9591 * alloc.c (syms_of_alloc):
9592 * buffer.c (syms_of_buffer):
9593 * bytecode.c (syms_of_bytecode):
9594 * callint.c (syms_of_callint):
9595 * casefiddle.c (syms_of_casefiddle):
9596 * casetab.c (init_casetab_once):
9597 * category.c (init_category_once, syms_of_category):
9598 * ccl.c (syms_of_ccl):
9599 * cmds.c (syms_of_cmds):
9600 * composite.c (syms_of_composite):
9601 * dbusbind.c (syms_of_dbusbind):
9602 * dired.c (syms_of_dired):
9603 * dispnew.c (syms_of_display):
9604 * doc.c (syms_of_doc):
9605 * editfns.c (syms_of_editfns):
9606 * emacs.c (syms_of_emacs):
9607 * eval.c (syms_of_eval):
9608 * fileio.c (syms_of_fileio):
9609 * fns.c (syms_of_fns):
9610 * frame.c (syms_of_frame):
9611 * fringe.c (syms_of_fringe):
9612 * insdel.c (syms_of_insdel):
9613 * keymap.c (syms_of_keymap):
9614 * lread.c (init_obarray, syms_of_lread):
9615 * macros.c (syms_of_macros):
9616 * msdos.c (syms_of_msdos):
9617 * print.c (syms_of_print):
9618 * process.c (syms_of_process):
9619 * search.c (syms_of_search):
9620 * sound.c (syms_of_sound):
9621 * syntax.c (init_syntax_once, syms_of_syntax):
9622 * terminal.c (syms_of_terminal):
9623 * textprop.c (syms_of_textprop):
9624 * undo.c (syms_of_undo):
9625 * w32.c (globals_of_w32):
9626 * window.c (syms_of_window):
9627 * xdisp.c (syms_of_xdisp):
9628 * xfaces.c (syms_of_xfaces):
9629 * xfns.c (syms_of_xfns):
9630 * xmenu.c (syms_of_xmenu):
9631 * xsettings.c (syms_of_xsettings):
9632 * xterm.c (syms_of_xterm): Use DEFSYM.
9633
4228cf16
TZ
96342011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
9635
cd3520a4 9636 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 9637
7fcccf1e
PE
96382011-06-23 Paul Eggert <eggert@cs.ucla.edu>
9639
7efb4e0e
PE
9640 Integer and buffer overflow fixes (Bug#8873).
9641
ff5844ad
PE
9642 * print.c (printchar, strout): Check for string overflow.
9643 (PRINTPREPARE, printchar, strout):
9644 Don't set size unless allocation succeeds.
9645
90532f02
PE
9646 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
9647 for sizes. Check for string overflow more accurately.
9648 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
9649
6d84508d
PE
9650 * macros.c: Integer and buffer overflow fixes.
9651 * keyboard.h (struct keyboard.kbd_macro_bufsize):
9652 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
9653 Use ptrdiff_t, not int, for sizes.
9654 Don't increment bufsize until after realloc succeeds.
9655 Check for size-calculation overflow.
9656 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
9657
437b2cb4
PE
9658 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
9659
8b9ac8b4
PE
9660 * lread.c: Integer overflow fixes.
9661 (read_integer): Radix is now EMACS_INT, not int,
9662 to improve quality of diagnostics for out-of-range radices.
9663 Calculate buffer size correctly for out-of-range radices.
9664 (read1): Check for integer overflow in radices, and in
9665 read-circle numbers.
82cb60d3
PE
9666 (read_escape): Avoid int overflow.
9667 (Fload, openp, read_buffer_size, read1)
9668 (substitute_object_recurse, read_vector, read_list, map_obarray):
9669 Use ptrdiff_t, not int, for sizes.
9670 (read1): Use EMACS_INT, not int, for sizes.
20270765 9671 Check for size overflow.
8b9ac8b4 9672
7fcccf1e
PE
9673 * image.c (cache_image): Check for size arithmetic overflow.
9674
bfbbd7e7
PE
9675 * lread.c: Integer overflow issues.
9676 (saved_doc_string_size, saved_doc_string_length)
9677 (prev_saved_doc_string_size, prev_saved_doc_string_length):
9678 Now ptrdiff_t, not int.
9679 (read1): Don't assume doc string length fits in int. Check for
9680 out-of-range doc string lengths.
9681 (read_list): Don't assume file position fits in int.
39019e54 9682 (read_escape): Check for hex character overflow.
bfbbd7e7 9683
4e323265
LL
96842011-06-22 Leo Liu <sdl.web@gmail.com>
9685
9686 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
9687 Move to minibuffer.el.
9688
85fece3e
PE
96892011-06-22 Paul Eggert <eggert@cs.ucla.edu>
9690
20b84ce9 9691 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
9692 The following patches are for when GLYPH_DEBUG && !XASSERT.
9693 * dispextern.h (trace_redisplay_p, dump_glyph_string):
9694 * dispnew.c (flush_stdout):
9695 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
9696 Mark as externally visible.
9697 * dispnew.c (check_window_matrix_pointers): Now static.
9698 * dispnew.c (window_to_frame_vpos):
9699 * xfns.c (unwind_create_frame):
9700 * xterm.c (x_check_font): Remove unused local.
9701 * scroll.c (CHECK_BOUNDS):
9702 * xfaces.c (cache_fache): Rename local to avoid shadowing.
9703 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
9704 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
9705 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
9706 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
9707 Now static.
9708 (debug_method_add): Use va_list and vsprintf rather than relying
9709 on undefined behavior with wrong number of arguments.
9710 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
9711 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
9712 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
9713 since we're not interested in debugging glyphs with old libraries.
9714 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
9715 GCC 4.6.0's static checking.
9716
0766b489
PE
97172011-06-22 Paul Eggert <eggert@cs.ucla.edu>
9718
31fd4b32
PE
9719 Integer overflow and signedness fixes (Bug#8873).
9720 A few related buffer overrun fixes, too.
9721
b79e8648
PE
9722 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
9723
0766b489
PE
9724 * dispextern.h (struct face.stipple):
9725 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
9726 (x_bitmap_mask, x_allocate_bitmap_record)
9727 (x_create_bitmap_from_data, x_create_bitmap_from_file)
9728 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
9729 (x_create_bitmap_from_xpm_data):
9730 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
9731 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
9732 (.bitmaps_last):
9733 * xfaces.c (load_pixmap):
9734 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
9735 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
9736 (.bitmaps_last, struct x_output.icon_bitmap):
9737 Use ptrdiff_t, not int, for bitmap indexes.
9738 (x_allocate_bitmap_record): Check for size overflow.
9739 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
9740
b081724f
PE
9741 Use ptrdiff_t, not int, for overlay counts.
9742 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
9743 * editfns.c (overlays_around, get_pos_property):
9744 * textprop.c (get_char_property_and_overlay):
9745 * xdisp.c (next_overlay_change, note_mouse_highlight):
9746 * xfaces.c (face_at_buffer_position):
21514da7
PE
9747 * buffer.c (OVERLAY_COUNT_MAX): New macro.
9748 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
9749 (Fnext_overlay_change, Fprevious_overlay_change)
9750 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 9751 Use ptrdiff_t, not int, for sizes.
21514da7 9752 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 9753
3de73e5e
PE
9754 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
9755
2606c57b
PE
9756 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
9757 (x_session_initialize): Do not assume string length fits in int.
9758
aaafe47a
PE
9759 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
9760 This is unlikely, but can occur if DPI is outlandish.
9761
2674ddc8 9762 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
9763 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
9764
28154962
PE
9765 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
9766 * xrdb.c (magic_file_p, search_magic_path):
9767 Omit last arg SUFFIX; it was always 0. All callers changed.
9768 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
9769
7de51af5
PE
9770 * xfont.c (xfont_match): Avoid need for strlen.
9771
25ed6cc3
PE
9772 * xfns.c: Don't assume strlen fits in int.
9773 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
9774
4eab31dd
PE
9775 * xdisp.c (message_log_check_duplicate): Return intmax_t,
9776 not unsigned long, as we prefer signed integers. All callers changed.
9777 Detect integer overflow in repeat count.
9778 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 9779 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 9780
171e2a58
PE
9781 * termcap.c: Don't assume sizes fit in int and never overflow.
9782 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
9783 (gobble_line): Check for size-calculation overflow.
9784
ad39faca 9785 * minibuf.c (Fread_buffer):
6e5bb2dc 9786 * lread.c (intern, intern_c_string):
74ca2eb3
PE
9787 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
9788 Don't assume string length fits in int.
9789
52c61c22 9790 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
9791 * gtkutil.c (style_changed_cb): Avoid need for strlen.
9792
b5b8c9e5
PE
9793 * font.c: Don't assume string length fits in int.
9794 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
9795 Use ptrdiff_t, not int.
ccd6111c
PE
9796 (font_intern_prop): Don't assume string length fits in int.
9797 Don't assume integer property fits in fixnum.
9798 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 9799
882f0d81 9800 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 9801 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
9802 Reformulate so as not to need the command string.
9803 Invoke gzip -cd rather than gunzip, as it's more portable.
9804 (lock_info_type, lock_file_1, lock_file):
9805 Don't assume pid_t and time_t fit in unsigned long.
9806 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
9807 (current_lock_owner): Prefer signed type for sizes.
9808 Use memcpy, not strncpy, where memcpy is what is really wanted.
9809 Don't assume (via atoi) that time_t and pid_t fit in int.
9810 Check for time_t and/or pid_t out of range, e.g., via a network share.
9811 Don't alloca where an auto var works fine.
9812
93f4cf88
PE
9813 * fileio.c: Fix some integer overflow issues.
9814 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
9815 Don't assume string length fits in int.
9816 (directory_file_name): Don't assume string length fits in long.
9817 (make_temp_name): Don't assume pid fits in int, or that its print
9818 length is less than 20.
9819
f3e92b69
PE
9820 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
9821
1bfdaf10
PE
9822 * coding.c (make_subsidiaries): Don't assume string length fits in int.
9823
35016e9a
PE
9824 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
9825
3d1e65a1
PE
9826 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
9827 We prefer signed integers, even for size calculations.
9828
0b963a93
PE
9829 * emacs.c: Don't assume string length fits in 'int'.
9830 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
9831 (main): Don't invoke strlen when not needed.
9832
573f4b54
PE
9833 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
9834 (XD_DEBUG_MESSAGE): Don't waste a byte.
9835
989f33ba
PE
9836 * callproc.c (getenv_internal_1, getenv_internal)
9837 (Fgetenv_internal):
965d34eb
PE
9838 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
9839
e4d29b33
PE
9840 * lread.c (invalid_syntax): Omit length argument.
9841 All uses changed. This doesn't fix a bug, but it simplifies the
9842 code away from its former Hollerith-constant appearance, and it's
9843 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 9844 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 9845
eb49b136
PE
9846 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
9847 This didn't break anything, but it didn't help either.
9848 It's confusing to put a bogus integer in a place where the actual
9849 value does not matter.
9f62aeb1 9850 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 9851 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 9852
15375a22
PE
9853 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
9854 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
9855 implementation.
b61cc01c
PE
9856 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
9857 We prefer signed types, and the value cannot exceed the EMACS_INT
9858 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
9859 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
9860 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
9861 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 9862
53b2623d
PE
9863 * indent.c (sane_tab_width): New function.
9864 (current_column, scan_for_column, Findent_to, position_indentation)
9865 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 9866 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 9867
51cab52b 9868 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 9869
f2ed8a70
PE
9870 * lisp.h (lint_assume): New macro.
9871 * composite.c (composition_gstring_put_cache):
9872 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
9873
abe80cc6
PE
9874 * editfns.c, insdel.c:
9875 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 9876
b02c740e
PE
9877 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
9878
ebc96716
PE
9879 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
9880
b4e50fa0 9881 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 9882 Use much-faster test for byte-length change.
311d5d7c 9883 Don't assume string byte-length fits in 'int'.
a4cf38e4 9884 Check that character arg fits in 'int'.
85461888 9885 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 9886
c0c1ee9f
PE
9887 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
9888
a498d7f4
PE
9889 * fns.c (concat): Catch string overflow earlier.
9890 Do not rely on integer wraparound.
9891
51cab52b
PE
9892 * dispextern.h (struct it.overlay_strings_charpos)
9893 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
9894 * xdisp.c (forward_to_next_line_start)
9895 (back_to_previous_visible_line_start)
9896 (reseat_at_next_visible_line_start, next_element_from_buffer):
9897 Don't arbitrarily truncate the value of 'selective' to int.
9898
76031fad
PE
9899 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
9900
5eb55db9
PE
9901 * composite.c: Don't truncate sizes to 'int'.
9902 (composition_gstring_p, composition_reseat_it)
9903 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
9904 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
9905 not EMACS_UINT, for indexes.
5eb55db9 9906
0703a717
PE
9907 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
9908
d6202519
PE
9909 * buffer.c: Include <verify.h>.
9910 (struct sortvec.priority, struct sortstr.priority):
8961a454 9911 Now EMACS_INT, not int.
c20998a7 9912 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
9913 (struct sortstr.size, record_overlay_string)
9914 (struct sortstrlist.size, struct sortlist.used):
9915 Don't truncate size to int.
9916 (record_overlay_string): Check for size-calculation overflow.
d6202519 9917 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 9918
d5a19415
JM
99192011-06-22 Jim Meyering <meyering@redhat.com>
9920
029529ac 9921 Don't leak an XBM-image-sized buffer
d5a19415
JM
9922 * image.c (xbm_load): Free the image buffer after using it.
9923
a9041e6c
PE
99242011-06-21 Paul Eggert <eggert@cs.ucla.edu>
9925
9926 Port to Sun C.
9927 * composite.c (find_automatic_composition): Omit needless 'return 0;'
9928 that Sun C diagnosed.
9929 * fns.c (secure_hash): Fix pointer signedness issue.
9930 * intervals.c (static_offset_intervals): New function.
9931 (offset_intervals): Use it.
9932
7f3f739f
LL
99332011-06-21 Leo Liu <sdl.web@gmail.com>
9934
9935 * deps.mk (fns.o):
9936 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
9937 sha512.h.
9938
9939 * fns.c (secure_hash): Rename from crypto_hash_function and change
9940 the first arg to accept symbols.
5b66d427 9941 (Fsecure_hash): New primitive.
7f3f739f
LL
9942 (syms_of_fns): New symbols.
9943
76147d94
DD
99442011-06-20 Deniz Dogan <deniz@dogan.se>
9945
9946 * process.c (Fset_process_buffer): Clarify return value in
9947 docstring.
9948
7d7d0045
CY
99492011-06-18 Chong Yidong <cyd@stupidchicken.com>
9950
9951 * dispnew.c (add_window_display_history): Use BVAR.
9952
9953 * xdisp.c (debug_method_add): Use BVAR.
9954 (check_window_end, dump_glyph_matrix, dump_glyph)
9955 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
9956
9957 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
9958 Likewise.
9959
9960 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
9961 check till after the cache is created in init_frame_faces.
9962
ff2bc410
SM
99632011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
9964
9965 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
9966
28177add
PE
99672011-06-16 Paul Eggert <eggert@cs.ucla.edu>
9968
dd3482fe
PE
9969 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
9970 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
9971 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
9972
393d71f3 9973 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
9974 * fileio.c (Finsert_file_contents):
9975 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
9976 Remove the old (too-loose) buffer overflow checks.
9977 They weren't needed, since make_gap checks for buffer overflow.
9978 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
9979 The old code merely checked for Emacs fixnum overflow, and relied
9980 on undefined (wraparound) behavior. The new code avoids undefined
9981 behavior, and also checks for ptrdiff_t and/or size_t overflow.
9982
2e6813b0 9983 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
9984 Tune. Don't use wider integers than needed. Don't use alloca.
9985 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 9986
599a9e4f
PE
9987 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
9988
99561444
PE
9989 * insdel.c, lisp.h (buffer_overflow): New function.
9990 (insert_from_buffer_1, replace_range, replace_range_2):
9991 * insdel.c (make_gap_larger):
9992 * editfns.c (Finsert_char):
9993 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
9994
28177add
PE
9995 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
9996
e69dafad
PE
99972011-06-15 Paul Eggert <eggert@cs.ucla.edu>
9998
4baa020d 9999 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 10000
b1c46f02
PE
10001 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
10002 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
10003
e69dafad
PE
10004 * fileio.c: Don't assume EMACS_INT fits in off_t.
10005 (emacs_lseek): New static function.
10006 (Finsert_file_contents, Fwrite_region): Use it.
10007 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
10008
566684ea
PE
10009 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
10010
e6966cd6
PE
10011 * fns.c: Don't overflow int when computing a list length.
10012 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
10013 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
10014 truncation on 64-bit hosts. Check for QUIT every
10015 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
10016 faster and is responsive enough.
10017 (Flength): Report an error instead of overflowing an integer.
10018 (Fsafe_length): Return a float if the value is not representable
10019 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 10020 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 10021 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 10022
dd0b0efb
PE
10023 * alloc.c: Check that resized vectors' lengths fit in fixnums.
10024 (header_size, word_size): New constants.
10025 (allocate_vectorlike): Don't check size overflow here.
10026 (allocate_vector): Check it here instead, since this is the only
10027 caller of allocate_vectorlike that could cause overflow.
10028 Check that the new vector's length is representable as a fixnum.
10029
86fe5cfe
PE
10030 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
10031 The previous code was bogus. For example, next_almost_prime (32)
10032 returned 39, which is undesirable as it is a multiple of 3; and
10033 next_almost_prime (24) returned 25, which is a multiple of 5 so
10034 why was the code bothering to check for multiples of 7?
10035
80e88859
PE
10036 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
10037
4a2f0ad6
PE
10038 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
10039
f66c7cf8
PE
10040 Variadic C functions now count arguments with ptrdiff_t.
10041 This partly undoes my 2011-03-30 change, which replaced int with size_t.
10042 Back then I didn't know that the Emacs coding style prefers signed int.
10043 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
10044 were being counted with int, which may truncate counts on 64-bit
10045 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
10046 * lisp.h (struct Lisp_Subr.function.aMANY)
10047 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
10048 Arg counts are now ptrdiff_t, not size_t.
10049 All variadic functions and their callers changed accordingly.
10050 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
10051 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
10052 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
10053 * callint.c (Fcall_interactively): Check arg count for overflow,
10054 to avoid potential buffer overrun. Use signed char, not 'int',
10055 for 'varies' array, so that we needn't bother to check its size
10056 calculation for overflow.
10057 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
10058 * eval.c (apply_lambda):
10059 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
10060 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
10061 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
10062
a1759b76
PE
10063 * callint.c (Fcall_interactively): Don't use index var as event count.
10064
d96be9fc
PE
10065 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
10066 * mem-limits.h (SIZE): Remove; no longer used.
10067
a690a978 10068 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 10069
578c21e6
PE
10070 Remove unnecessary casts.
10071 * xterm.c (x_term_init):
10072 * xfns.c (x_set_border_pixel):
10073 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
10074 These aren't needed now that we assume ANSI C.
10075
96f53c6c
PE
10076 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
10077 It's more likely to cause problems (due to unsigned overflow)
10078 than to cure them.
10079
83c77d31
PE
10080 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
10081
ee2079f1
PE
10082 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
10083
6da65536
PE
10084 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
10085
7147c4a4
PE
10086 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
10087
193e32d9
PE
10088 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
10089
e5533da6
PE
10090 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
10091
9910e595
PE
10092 GLYPH_CODE_FACE returns EMACS_INT, not int.
10093 * dispextern.h (merge_faces):
10094 * xfaces.c (merge_faces):
01103c44
PE
10095 * xdisp.c (get_next_display_element, next_element_from_display_vector):
10096 Don't assume EMACS_INT fits in int.
9910e595 10097
2638320e
PE
10098 * character.h (CHAR_VALID_P): Remove unused parameter.
10099 * fontset.c, lisp.h, xdisp.c: All uses changed.
10100
045eb8d9
PE
10101 * editfns.c (Ftranslate_region_internal): Omit redundant test.
10102
c1f134b5
PE
10103 * fns.c (concat): Minor tuning based on overflow analysis.
10104 This doesn't fix any bugs. Use int to hold character, instead
10105 of constantly refetching from Emacs object. Use XFASTINT, not
10106 XINT, for value known to be a character. Don't bother comparing
10107 a single byte to 0400, as it's always less.
10108
395fcb93 10109 * floatfns.c (Fexpt):
327eeec8
PE
10110 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
10111
abbd3d23
PE
10112 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
10113 for characters.
10114
684a03ef
PE
10115 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
10116
0fed43f3
PE
10117 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
10118 Without this fix, on a 64-bit host (aset S 0 4294967386) would
10119 incorrectly succeed when S was a string, because 4294967386 was
10120 truncated before it was used.
10121
8fd02eb7
PE
10122 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
10123 Otherwise, an out-of-range integer could cause undefined behavior
10124 on a 64-bit host.
10125
f8c86b69
PE
10126 * composite.c: Use int, not EMACS_INT, for characters.
10127 (fill_gstring_body, composition_compute_stop_pos): Use int, not
10128 EMACS_INT, for values that are known to be in character range.
10129 This doesn't fix any bugs but is the usual style inside Emacs and
10130 may generate better code on 32-bit machines.
10131
34206dd2
PE
10132 Make sure a 64-bit char is never passed to ENCODE_CHAR.
10133 This is for reasons similar to the recent CHAR_STRING fix.
10134 * charset.c (Fencode_char): Check that character arg is actually
10135 a character. Pass an int to ENCODE_CHAR.
10136 * charset.h (ENCODE_CHAR): Verify that the character argument is no
10137 wider than 'int', as a compile-time check to prevent future regressions
10138 in this area.
10139
c5958d4c 10140 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
10141
10142 Make sure a 64-bit char is never passed to CHAR_STRING.
10143 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
10144 by silently ignoring the top 32 bits, allowing some values
10145 that were far too large to be valid characters.
10146 * character.h: Include <verify.h>.
10147 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
10148 arguments are no wider than unsigned, as a compile-time check
10149 to prevent future regressions in this area.
10150 * data.c (Faset):
01103c44 10151 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
10152 (Fsubst_char_in_region):
10153 * fns.c (concat):
10154 * xdisp.c (decode_mode_spec_coding):
10155 Adjust to CHAR_STRING's new requirement.
10156 * editfns.c (Finsert_char, Fsubst_char_in_region):
10157 * fns.c (concat): Check that character args are actually
10158 characters. Without this test, these functions did the wrong
10159 thing with wildly out-of-range values on 64-bit hosts.
10160
d37ca623
PE
10161 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
10162 These casts should not be needed on 32-bit hosts, either.
10163 * keyboard.c (read_char):
10164 * lread.c (Fload): Remove casts to unsigned.
10165
ea204efb
PE
10166 * lisp.h (UNSIGNED_CMP): New macro.
10167 This fixes comparison bugs on 64-bit hosts.
10168 (ASCII_CHAR_P): Use it.
10169 * casefiddle.c (casify_object):
01103c44 10170 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
10171 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
10172 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
10173 * dispextern.h (FACE_FROM_ID):
10174 * keyboard.c (read_char): Use UNSIGNED_CMP.
10175
41cb286c
PE
10176 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
10177 not to EMACS_INT, to avoid GCC warning.
10178
4a1b9832
PE
10179 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
10180
55daad71
PE
10181 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
10182 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
10183 isn't needed on 32-bit machines.
8f95c75c 10184
01103c44
PE
10185 * buffer.c (Fgenerate_new_buffer_name):
10186 Use EMACS_INT for count, not int.
0ceccced 10187 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
10188
10189 * data.c (Qcompiled_function): Now static.
10190
c6f072e7
PE
10191 * window.c (window_body_lines): Now static.
10192
20ce5912
PE
10193 * image.c (gif_load): Rename local to avoid shadowing.
10194
9c4c5f81
PE
10195 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
10196 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
10197 * alloc.c (make_save_value): Integer argument is now of type
10198 ptrdiff_t, not int.
10199 (mark_object): Use ptrdiff_t, not int.
10200 * lisp.h (pD): New macro.
10201 * print.c (print_object): Use it.
10202
c0c5c8ae
PE
10203 * alloc.c: Use EMACS_INT, not int, to count objects.
10204 (total_conses, total_markers, total_symbols, total_vector_size)
10205 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
10206 (total_free_floats, total_floats, total_free_intervals)
10207 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
10208 Now EMACS_INT, not int. All uses changed.
10209 (Fgarbage_collect): Compute overall total using a double, so that
10210 integer overflow is less likely to be a problem. Check for overflow
10211 when converting back to an integer.
5a25e253
PE
10212 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
10213 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
10214 These were 'int' variables that could overflow on 64-bit hosts;
10215 they were never used, so remove them instead of repairing them.
211a0b2a 10216 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
10217 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
10218 Previously, this ceilinged at INT_MAX, but that doesn't work on
10219 64-bit machines.
e46bb31a 10220 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 10221
c78baabf 10222 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 10223 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
10224 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
10225 when a (possibly-narrower) signed value would do just as well.
10226 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 10227
c9d624c6
PE
10228 * alloc.c: Catch some string size overflows that we were missing.
10229 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
10230 for convenience in STRING_BYTES_MAX.
10231 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
10232 The definition here is exact; the one in lisp.h was approximate.
10233 (allocate_string_data): Check for string overflow. This catches
10234 some instances we weren't catching before. Also, it catches
10235 size_t overflow on (unusual) hosts where SIZE_MAX <= min
10236 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
10237 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 10238
c9d624c6
PE
10239 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
10240 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 10241 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 10242
353032ce
PE
10243 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
10244
2bccce07
PE
10245 * alloc.c (Fmake_string): Check for out-of-range init.
10246
0ac30604
SM
102472011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
10248
10249 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
10250
c195f2de
JD
102512011-06-14 Jan Djärv <jan.h.d@swipnet.se>
10252
10253 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
10254 xg_get_default_scrollbar_width.
10255
10256 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
10257 (int_gtk_range_get_value): Move to the scroll bar part of the file.
10258 (style_changed_cb): Call update_theme_scrollbar_width and call
10259 x_set_scroll_bar_default_width and xg_frame_set_char_size for
10260 all frames (Bug#8505).
10261 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
10262 Call gtk_window_set_resizable if HAVE_GTK3.
10263 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
10264 and height if HAVE_GTK3 (Bug#8505).
10265 (scroll_bar_width_for_theme): New variable.
10266 (update_theme_scrollbar_width): New function.
10267 (xg_get_default_scrollbar_width): Move code to
10268 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
10269 (xg_initialize): Call update_theme_scrollbar_width.
10270
10271 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
10272
10273 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
10274
e10ac9f1
MR
102752011-06-12 Martin Rudalics <rudalics@gmx.at>
10276
10277 * frame.c (make_frame): Call other_buffer_safely instead of
10278 other_buffer.
10279
10280 * window.c (temp_output_buffer_show): Call display_buffer with
10281 second argument Vtemp_buffer_show_specifiers and reset latter
10282 immediately after the call.
10283 (Vtemp_buffer_show_specifiers): New variable.
10284 (auto_window_vscroll_p, next_screen_context_lines)
10285 (Vscroll_preserve_screen_position): Remove leading asterisks from
10286 doc-strings.
10287
2d3c217e 102882011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 10289
7b7f97e8 10290 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
10291 * buffer.c (Qclone_number): Remove for now, as it's unused.
10292 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
10293 (record_buffer): Remove unused local.
10294 * frame.c (other_visible_frames, frame_buffer_list): Now static.
10295 (set_frame_buffer_list): Remove; unused.
10296 * frame.h (other_visible_frames): Remove decl.
10297 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
10298 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
10299 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
10300 if HAVE_GPM.
10301 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
10302 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
10303 Define only if HAVE_GPM.
10304 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
10305 (update_hints_inhibit): Remove; never set. All uses removed.
10306 * widgetprv.h (emacsFrameClassRec): Remove decl.
10307 * window.c (delete_deletable_window): Now returns void, since it
10308 wasn't returning anything.
10309 (compare_window_configurations): Remove unused locals.
10310 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
10311 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
10312 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
10313 the same widths as pointers. This follows up on the 2011-05-06 patch.
10314 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
10315 * xterm.h: Likewise.
10316 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
10317
1384b89e
JB
103182011-06-12 Juanma Barranquero <lekktu@gmail.com>
10319
10320 * makefile.w32-in: Update dependencies.
10321 (LISP_H): Add lib/intprops.h.
10322
1100a63c
CY
103232011-06-11 Chong Yidong <cyd@stupidchicken.com>
10324
10325 * image.c (gif_load): Add animation frame delay to the metadata.
10326 (syms_of_image): Use DEFSYM. New symbol `delay'.
10327
6198ccd0
MR
103282011-06-11 Martin Rudalics <rudalics@gmx.at>
10329
10330 * window.c (delete_deletable_window): Re-add.
10331 (Fset_window_configuration): Rewrite to handle dead buffers and
10332 consequently deletable windows.
10333 (window_tree, Fwindow_tree): Remove. Supply functionality in
10334 window.el.
10335 (compare_window_configurations): Simplify code.
10336
b6e3633c
AS
103372011-06-11 Andreas Schwab <schwab@linux-m68k.org>
10338
1ab0dee5
AS
10339 * image.c (imagemagick_load_image): Fix type mismatch.
10340 (Fimagemagick_types): Likewise.
10341
b6e3633c
AS
10342 * window.h (replace_buffer_in_windows): Declare.
10343
9397e56f
MR
103442011-06-11 Martin Rudalics <rudalics@gmx.at>
10345
10346 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
10347 Qclone_number. Remove external declaration of Qdelete_window.
10348 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
10349 code.
640c8776
SM
10350 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
10351 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
10352 (Fother_buffer): Rewrite doc-string. Major rewrite for new
10353 buffer list implementation.
10354 (other_buffer_safely): New function.
10355 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
10356 calls to replace_buffer_in_windows and
10357 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
10358 if allowed.
10359 (record_buffer): Inhibit quitting and rewrite using quittable
10360 functions. Run Qbuffer_list_update_hook if allowed.
10361 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
10362 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
10363 Move switch-to-buffer to window.el.
9397e56f
MR
10364 (bury-buffer): Move to window.el.
10365 (Vbuffer_list_update_hook): New variable.
10366
10367 * lisp.h (other_buffer_safely): Add prototype in buffer.c
10368 section.
10369
10370 * window.h (resize_frame_windows): Move up in code.
10371 (Fwindow_frame): Remove EXFUN.
10372 (replace_buffer_in_all_windows): Remove prototype.
10373 (replace_buffer_in_windows_safely): Add prototype.
10374
10375 * window.c: Declare Qdelete_window static again. Move down
10376 declaration of select_count.
10377 (Fnext_window, Fprevious_window): Rewrite doc-strings.
10378 (Fother_window): Move to window.el.
10379 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
10380 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
10381 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
10382 window.el.
10383 (replace_buffer_in_windows): Implement by calling
10384 Qreplace_buffer_in_windows.
10385 (replace_buffer_in_all_windows): Remove with some functionality
10386 moved into replace_buffer_in_windows_safely.
10387 (replace_buffer_in_windows_safely): New function.
10388 (select_window_norecord, select_frame_norecord): Move in front
10389 of run_window_configuration_change_hook. Remove now obsolete
10390 declarations.
640c8776
SM
10391 (Fset_window_buffer): Rewrite doc-string.
10392 Call Qrecord_window_buffer.
9397e56f
MR
10393 (keys_of_window): Move binding for other-window to window.el.
10394
b50691aa
CY
103952011-06-11 Chong Yidong <cyd@stupidchicken.com>
10396
10397 * dispextern.h (struct image): Replace data member, whose int_val
10398 and ptr_val fields were not used by anything, with a single
10399 lisp_val object.
10400
10401 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
10402 (gif_clear_image, gif_load, imagemagick_load_image)
10403 (gs_clear_image, gs_load): Callers changed.
10404
3f754b86
PE
104052011-06-10 Paul Eggert <eggert@cs.ucla.edu>
10406
cca69397
PE
10407 * buffer.h: Include <time.h>, for time_t.
10408 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
10409
109e28d0
PE
10410 Fix minor problems found by static checking.
10411
60737f02
PE
10412 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
10413
4b66faf3
PE
10414 Make identifiers static if they are not used in other modules.
10415 * data.c (Qcompiled_function, Qframe, Qvector):
10416 * image.c (QimageMagick, Qsvg):
10417 * minibuf.c (Qmetadata):
10418 * window.c (resize_window_check, resize_root_window): Now static.
10419 * window.h (resize_window_check, resize_root_window): Remove decls.
10420
109e28d0
PE
10421 * window.c (window_deletion_count, delete_deletable_window):
10422 Remove; unused.
46a4ce9e
PE
10423 (window_body_lines): Now static.
10424 (Fdelete_other_windows_internal): Mark vars as initialized.
10425 Make sure 'resize_failed' is initialized.
10426 (run_window_configuration_change_hook): Rename local to avoid shadowing.
10427 (resize_window_apply): Remove unused local.
10428 * window.h (delete_deletable_window): Remove decl.
10429
109e28d0 10430 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
10431 (imagemagick_load_image): Fix pointer signedness problem by changing
10432 last arg from unsigned char * to char *. All uses changed.
10433 Also, fix a local for similar reasons.
10434 Remove unused locals. Remove locals to avoid shadowing.
10435 (fn_rsvg_handle_free): Remove; unused.
10436 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 10437 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 10438
3f754b86
PE
10439 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
10440
2547adb1
CY
104412011-06-10 Chong Yidong <cyd@stupidchicken.com>
10442
10443 * image.c (gif_load): Fix omitted cast error introduced by
10444 2011-06-06 change.
10445
2c8e37d4
MR
104462011-06-10 Martin Rudalics <rudalics@gmx.at>
10447
10448 * window.h (resize_proportionally, orig_total_lines)
10449 (orig_top_line): Remove from window structure.
10450 (set_window_height, set_window_width, change_window_heights)
10451 (Fdelete_window): Remove prototypes.
10452 (resize_frame_windows): Remove duplicate declaration.
10453
440a42e3
EZ
104542011-06-10 Eli Zaretskii <eliz@gnu.org>
10455
10456 * window.h (resize_frame_windows, resize_window_check)
10457 (delete_deletable_window, resize_root_window)
10458 (resize_frame_windows): Declare prototypes.
10459
10460 * window.c (resize_window_apply): Make definition be "static" to
10461 match the prototype.
10462
562dd5e9
MR
104632011-06-10 Martin Rudalics <rudalics@gmx.at>
10464
10465 * window.c: Remove declarations of Qwindow_size_fixed,
10466 window_min_size_1, window_min_size_2, window_min_size,
10467 size_window, window_fixed_size_p, enlarge_window, delete_window.
10468 Remove static from declaration of Qdelete_window, it's
10469 temporarily needed by Fbury_buffer.
10470 (replace_window): Don't assign orig_top_line and
10471 orig_total_lines.
10472 (Fdelete_window, delete_window): Remove. Window deletion is
10473 handled by window.el.
640c8776
SM
10474 (window_loop): Remove DELETE_OTHER_WINDOWS case.
10475 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
10476 (Fdelete_other_windows): Remove. Deleting other windows is
10477 handled by window.el.
10478 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
10479 handled in window.el.
10480 (window_min_size_2, window_min_size_1, window_min_size): Remove.
10481 Window minimum sizes are handled in window.el.
10482 (shrink_windows, size_window, set_window_height)
10483 (set_window_width, change_window_heights, window_height)
10484 (window_width, CURBEG, CURSIZE, enlarge_window)
10485 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
10486 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
10487 handled in window.el.
10488 (make_dummy_parent): Rename to make_parent_window and give it a
10489 second argument horflag.
10490 (make_window): Don't set resize_proportionally any more.
10491 (Fsplit_window): Remove. Windows are split in window.el.
10492 (save_restore_action, save_restore_orig_size)
10493 (shrink_window_lowest_first, save_restore_orig_size): Remove.
10494 Resize mini windows in window.el.
10495 (grow_mini_window, shrink_mini_window): Implement by calling
10496 Qresize_root_window_vertically, resize_window_check and
10497 resize_window_apply.
640c8776
SM
10498 (saved_window, Fset_window_configuration, save_window_save):
10499 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
10500 resize_proportionally.
10501 (window_min_height, window_min_width): Move to window.el.
10502 (keys_of_window): Move bindings for delete-other-windows,
10503 split-window, delete-window and enlarge-window to window.el.
10504
10505 * buffer.c: Temporarily extern Qdelete_window.
10506 (Fbury_buffer): Temporarily call Qdelete_window instead of
10507 Fdelete_window (Fbury_buffer will move to window.el soon).
10508
10509 * frame.c (set_menu_bar_lines_1): Remove code handling
10510 orig_top_line and orig_total_lines.
10511
10512 * dispnew.c (adjust_frame_glyphs_initially): Don't use
10513 set_window_height but set heights directly.
10514 (change_frame_size_1): Use resize_frame_windows.
10515
10516 * xdisp.c (init_xdisp): Don't use set_window_height but set
10517 heights directly.
10518
640c8776
SM
10519 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
10520 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
10521 run_window_configuration_change_hook.
10522
10523 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
10524 instead of change_window_heights and run
10525 run_window_configuration_change_hook.
10526
1a13852e
MR
105272011-06-09 Martin Rudalics <rudalics@gmx.at>
10528
10529 * window.c (replace_window): Rename second argument REPLACEMENT to
10530 NEW. New third argument SETFLAG. Rewrite.
10531 (delete_window, make_dummy_parent): Call replace_window with
10532 third argument 1.
10533 (window_list_1): Move down in code.
10534 (run_window_configuration_change_hook): Move set_buffer part
10535 before select_frame_norecord part in order to unwind correctly.
10536 Rename count1 to count.
10537 (recombine_windows, delete_deletable_window, resize_root_window)
10538 (Fdelete_other_windows_internal)
10539 (Frun_window_configuration_change_hook, make_parent_window)
10540 (resize_window_check, resize_window_apply, Fresize_window_apply)
10541 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
10542 (Fdelete_window_internal, Fresize_mini_window_internal):
10543 New functions.
1a13852e
MR
10544 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
10545
f3d1777e
MR
105462011-06-08 Martin Rudalics <rudalics@gmx.at>
10547
496e208e
MR
10548 * window.h (window): Add some new members to window structure -
10549 normal_lines, normal_cols, new_total, new_normal, clone_number,
10550 splits, nest, prev_buffers, next_buffers.
10551 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 10552 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 10553
f3d1777e
MR
10554 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
10555 Remove.
496e208e
MR
10556 (make_dummy_parent): Set new members of windows structure.
10557 (make_window): Move down in code. Handle new members of window
10558 structure.
10559 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
10560 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
10561 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
10562 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
10563 (Fset_window_next_buffers, Fset_window_clone_number):
10564 New functions.
496e208e
MR
10565 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
10566 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
10567 Doc-string fixes.
10568 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
10569 Argument WINDOW can be now internal window too.
10570 (Fwindow_use_time): Move up in code.
10571 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
10572 Rewrite doc-string.
10573 (Fset_window_configuration, saved_window)
10574 (Fcurrent_window_configuration, save_window_save): Handle new
10575 members of window structure.
b9e809c2
MR
10576 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
10577 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
10578 (syms_of_window): New Lisp objects Qrecord_window_buffer,
10579 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
10580 Qget_mru_window, Qresize_root_window,
10581 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
10582 Qauto_buffer_name; staticpro them.
f3d1777e 10583
abde8f8c
MR
105842011-06-07 Martin Rudalics <rudalics@gmx.at>
10585
10586 * window.c (Fwindow_total_size, Fwindow_left_column)
10587 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
10588 (Fwindow_list_1): New functions.
10589 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
10590 (Fwindow_width, Fscroll_left, Fscroll_right):
10591 Use window_body_cols instead of window_box_text_cols.
10592 (delete_window, Fset_window_configuration):
10593 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
10594 (delete_all_subwindows): Take a window as argument and not a
10595 structure. Rewrite.
190b47e6
MR
10596 (window_loop): Remove handling of GET_LRU_WINDOW and
10597 GET_LARGEST_WINDOW.
10598 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
10599
10600 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
10601 window_box_text_cols. delete_all_subwindows now takes a
10602 Lisp_Object as argument.
abde8f8c 10603
640c8776
SM
10604 * indent.c (compute_motion, Fcompute_motion):
10605 Use window_body_cols instead of window_box_text_cols.
abde8f8c 10606
fa8a67e6
MR
10607 * frame.c (delete_frame): Call delete_all_subwindows with root
10608 window as argument.
10609
a54e3482
DC
106102011-06-07 Daniel Colascione <dan.colascione@gmail.com>
10611
10612 * fns.c (Fputhash): Document return value.
10613
60002bf5
CY
106142011-06-06 Chong Yidong <cyd@stupidchicken.com>
10615
10616 * image.c (gif_load): Implement gif89a spec "no disposal" method.
10617
0c671da6 106182011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 10619
b862a52a 10620 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 10621
be44ca6c
PE
10622 Check for overflow when converting integer to cons and back.
10623 * charset.c (Fdefine_charset_internal, Fdecode_char):
10624 Use cons_to_unsigned to catch overflow.
10625 (Fencode_char): Use INTEGER_TO_CONS.
10626 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
10627 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
10628 * data.c (long_to_cons, cons_to_long): Remove.
10629 (cons_to_unsigned, cons_to_signed): New functions.
10630 These signal an error for invalid or out-of-range values.
10631 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
10632 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
10633 * font.c (Ffont_variation_glyphs):
10634 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
10635 * lisp.h: Include <intprops.h>.
10636 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
10637 (cons_to_signed, cons_to_unsigned): New decls.
10638 (long_to_cons, cons_to_long): Remove decls.
10639 * undo.c (record_first_change): Use INTEGER_TO_CONS.
10640 (Fprimitive_undo): Use CONS_TO_INTEGER.
10641 * xfns.c (Fx_window_property): Likewise.
10642 * xselect.c: Include <limits.h>.
10643 (x_own_selection, selection_data_to_lisp_data):
10644 Use INTEGER_TO_CONS.
10645 (x_handle_selection_request, x_handle_selection_clear)
10646 (x_get_foreign_selection, Fx_disown_selection_internal)
10647 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
10648 (lisp_data_to_selection_data): Use cons_to_unsigned.
10649 (x_fill_property_data): Use cons_to_signed.
10650 Report values out of range.
10651
d1f3d2af
PE
10652 Check for buffer and string overflow more precisely.
10653 * buffer.h (BUF_BYTES_MAX): New macro.
10654 * lisp.h (STRING_BYTES_MAX): New macro.
10655 * alloc.c (Fmake_string):
10656 * character.c (string_escape_byte8):
10657 * coding.c (coding_alloc_by_realloc):
10658 * doprnt.c (doprnt):
10659 * editfns.c (Fformat):
10660 * eval.c (verror):
10661 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
10662 since they may not be the same number.
10663 * editfns.c (Finsert_char):
10664 * fileio.c (Finsert_file_contents):
10665 Likewise for BUF_BYTES_MAX.
10666
dd52fcea
PE
10667 * image.c: Use ptrdiff_t, not int, for sizes.
10668 (slurp_file): Switch from int to ptrdiff_t.
10669 All uses changed.
10670 (slurp_file): Check that file size fits in both size_t (for
10671 malloc) and ptrdiff_t (for sanity and safety).
10672
7f9bbdbb
PE
10673 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
10674 if b->modtime has its maximal value.
10675
dfe18f82
PE
10676 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
10677
84acfcf0
PE
10678 Don't assume time_t can fit into int.
10679 * buffer.h (struct buffer.modtime): Now time_t, not int.
10680 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
10681 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
10682
ccd9a01a
PE
10683 Minor fixes for signed vs unsigned integers.
10684 * character.h (MAYBE_UNIFY_CHAR):
10685 * charset.c (maybe_unify_char):
10686 * keyboard.c (read_char, reorder_modifiers):
10687 XINT -> XFASTINT, since the integer must be nonnegative.
10688 * ftfont.c (ftfont_spec_pattern):
10689 * keymap.c (access_keymap, silly_event_symbol_error):
10690 XUINT -> XFASTINT, since the integer must be nonnegative.
10691 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
10692 since it makes no difference and we prefer signed.
10693 * keyboard.c (record_char): Use XUINT when all the neighbors do.
10694 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
10695 nonnegative.
10696
d6d100dd
SM
106972011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
10698
10699 * window.h (Fwindow_frame): Declare.
10700
2b6148e4
PE
107012011-06-06 Paul Eggert <eggert@cs.ucla.edu>
10702
10703 * alloc.c: Simplify handling of large-request failures (Bug#8800).
10704 (SPARE_MEMORY): Always define.
10705 (LARGE_REQUEST): Remove.
10706 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
10707
f230ecc9
MR
107082011-06-06 Martin Rudalics <rudalics@gmx.at>
10709
727e958e
MR
10710 * lisp.h: Move EXFUNS for Fframe_root_window,
10711 Fframe_first_window and Fset_frame_selected_window to window.h.
10712
10713 * window.h: Move EXFUNS for Fframe_root_window,
10714 Fframe_first_window and Fset_frame_selected_window here from
10715 lisp.h.
10716
10717 * frame.c (Fwindow_frame, Fframe_first_window)
10718 (Fframe_root_window, Fframe_selected_window)
10719 (Fset_frame_selected_window): Move to window.c.
10720 (Factive_minibuffer_window): Move to minibuf.c.
10721 (Fother_visible_frames_p): New function.
10722
10723 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
10724
f230ecc9
MR
10725 * window.c (decode_window, decode_any_window): Move up in code.
10726 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
10727 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
10728 (Fwindow_buffer): Move up and rewrite doc-string.
10729 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
10730 (Fwindow_prev): New functions.
727e958e
MR
10731 (Fwindow_frame): Move here from frame.c. Accept any window as
10732 argument.
10733 (Fframe_root_window, Fframe_first_window)
10734 (Fframe_selected_window): Move here from frame.c. Accept frame
10735 or arbitrary window as argument. Update doc-strings.
10736 (Fminibuffer_window): Move up in code.
10737 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
10738 (Fset_frame_selected_window): Move here from frame.c.
10739 Marginal rewrite.
727e958e
MR
10740 (Fselected_window, select_window, Fselect_window): Move up in
10741 code. Minor doc-string fixes.
f230ecc9 10742
4d09bcf6
PE
107432011-06-06 Paul Eggert <eggert@cs.ucla.edu>
10744
10745 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
10746 Do not assume that spare memory exists; that assumption is valid
10747 only if SYSTEM_MALLOC.
10748 (LARGE_REQUEST): New macro, so that the issue of large requests
10749 is separated from the issue of spare memory.
10750
810928a2
AS
107512011-06-05 Andreas Schwab <schwab@linux-m68k.org>
10752
172418ad
AS
10753 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
10754 format. (Bug#8806)
10755
43f862f7
AS
10756 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
10757
810928a2
AS
10758 * xfns.c (x_set_scroll_bar_default_width): Move declarations
10759 before statements.
10760
a059fe24
JD
107612011-06-05 Jan Djärv <jan.h.d@swipnet.se>
10762
10763 * gtkutil.c (xg_get_default_scrollbar_width): New function.
10764
10765 * gtkutil.h: Declare xg_get_default_scrollbar_width.
10766
10767 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
10768 min width by calling x_set_scroll_bar_default_width (Bug#8505).
10769
989bf368
JB
107702011-06-05 Juanma Barranquero <lekktu@gmail.com>
10771
10772 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
10773
4b80f674
CY
107742011-06-04 Chong Yidong <cyd@stupidchicken.com>
10775
10776 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
10777 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
10778 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
10779 New error handlers.
4b80f674
CY
10780 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
10781 Obey Vx_select_enable_clipboard_manager. Catch errors in
10782 x_clipboard_manager_save (Bug#8779).
10783 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 10784 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 10785
99a33b77 107862011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
10787
10788 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
10789
99a33b77 107902011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
10791
10792 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
10793 in the current matrix if keep_current_p is non-zero.
10794
8264569d
EZ
107952011-06-04 Eli Zaretskii <eliz@gnu.org>
10796
10797 * bidi.c (bidi_level_of_next_char): Fix last change.
10798
57f97249
EZ
107992011-06-03 Eli Zaretskii <eliz@gnu.org>
10800
fec2107c 10801 Support bidi reordering of text covered by display properties.
57f97249 10802
fec2107c
EZ
10803 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
10804 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
10805 (bidi_cache_search, bidi_cache_iterator_state)
10806 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
10807 (bidi_level_of_next_char, bidi_move_to_visually_next):
10808 Support character positions inside a run of characters covered by a
fec2107c
EZ
10809 display string.
10810 (bidi_paragraph_init, bidi_resolve_explicit_1)
10811 (bidi_level_of_next_char): Call bidi_fetch_char and
10812 bidi_fetch_char_advance instead of FETCH_CHAR and
10813 FETCH_CHAR_ADVANCE.
10814 (bidi_init_it): Initialize new members.
10815 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
10816 definitions.
10817 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
10818 instead of using explicit *_CHAR codes.
d6d100dd
SM
10819 (bidi_resolve_explicit, bidi_resolve_weak):
10820 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
10821 bidirectional text is supported only in multibyte buffers.
10822 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
10823 it to initialize the frame_window_p member of struct bidi_it.
10824 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
10825 (bidi_resolve_explicit, bidi_resolve_weak)
10826 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
10827 bidi_it->nchars is non-positive.
10828 (bidi_level_of_next_char): Don't try to lookup the cache for the
10829 next/previous character if nothing is cached there yet, or if we
10830 were just reseat()'ed to a new position.
c40e2fb2 10831
0e14fe90
EZ
10832 * xdisp.c (set_cursor_from_row): Set start and stop points
10833 according to the row's direction when priming the loop that looks
10834 for the glyph on which to display cursor.
10835 (single_display_spec_intangible_p): Function deleted.
10836 (display_prop_intangible_p): Reimplement to call
10837 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
10838 Accept 3 additional arguments needed by handle_display_spec.
10839 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
10840 values: lists, `(when COND...)' forms, etc.
10841 (single_display_spec_string_p): Support property values that are
10842 lists with the argument STRING its top-level element.
10843 (display_prop_string_p): Fix the condition for processing a
10844 property that is a list to be consistent with handle_display_spec.
fec2107c 10845 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
10846 last portion of handle_display_prop.
10847 (compute_display_string_pos): Accept additional argument
10848 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
10849 value of a `display' property is a "replacing spec".
10850 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
10851 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
10852 the display property, but just return a value indicating whether
10853 the display property will replace the characters it covers.
10854 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
10855 frame_window_p members of struct bidi_it.
d6d100dd
SM
10856 (compute_display_string_pos, compute_display_string_end):
10857 New functions.
fec2107c
EZ
10858 (push_it): Accept second argument POSITION, where pop_it should
10859 jump to continue iteration.
10860 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 10861
fec2107c
EZ
10862 * keyboard.c (adjust_point_for_property): Adjust the call to
10863 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
10864
10865 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
10866 (bidi_init_it): Update prototypes.
10867 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
10868 (compute_display_string_pos, compute_display_string_end):
10869 Declare prototypes.
fec2107c
EZ
10870 (struct bidi_it): New members nchars and disp_pos. ch_len is now
10871 EMACS_INT.
fc6f18ce 10872
40087514 108732011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 10874
57f53182
PE
10875 Malloc failure behavior now depends on size of allocation.
10876 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
10877 * lisp.h: Change signatures accordingly.
10878 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
10879 All callers changed. (Bug#8762)
10880
10881 * gnutls.c: Use Emacs's memory allocators.
10882 Without this change, the gnutls library would invoke malloc etc.
10883 directly, which causes problems on non-SYNC_INPUT hosts, and which
10884 runs afoul of improving memory_full behavior. (Bug#8761)
10885 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
10886 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
10887 xfree instead of the default malloc, realloc, free.
10888 (Fgnutls_boot): No need to check for memory allocation failure,
10889 since xmalloc does that for us.
10890
ac32cd99 10891 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
10892 * category.c (hash_get_category_set):
10893 * ccl.c (ccl_driver):
10894 * charset.c (Fdefine_charset_internal):
10895 * charset.h (struct charset.hash_index):
10896 * composite.c (get_composition_id, gstring_lookup_cache)
10897 (composition_gstring_put_cache):
10898 * composite.h (struct composition.hash_index):
10899 * dispextern.h (struct image.hash):
10900 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
10901 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
10902 (hashfn_equal, hashfn_user_defined, make_hash_table)
10903 (maybe_resize_hash_table, hash_lookup, hash_put)
10904 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
10905 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
10906 (Fsxhash, Fgethash, Fputhash, Fmaphash):
10907 * image.c (make_image, search_image_cache, lookup_image)
10908 (xpm_put_color_table_h):
10909 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 10910 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 10911 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 10912 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
10913 * alloc.c (allocate_vectorlike):
10914 Check for overflow in vector size calculations.
10915 * ccl.c (ccl_driver):
10916 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
10917 * fns.c, image.c: Remove unnecessary static decls that would otherwise
10918 need to be updated by these changes.
40087514
PE
10919 * fns.c (make_hash_table, maybe_resize_hash_table):
10920 Check for integer overflow with large hash tables.
0de4bb68
PE
10921 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
10922 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
10923 (SXHASH_REDUCE): New macro.
10924 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
10925 Use it instead of discarding useful hash info with large hash values.
10926 (sxhash_float): New function.
10927 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
10928 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
10929 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
10930 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
10931 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
10932 Adjust signatures to match updated version of code.
10933 (consing_since_gc): Now EMACS_INT, since a single hash table can
10934 use more than INT_MAX bytes.
10935
698d32e2
DN
109362011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
10937
10938 Make it possible to build with GCC-4.6+ -O2 -flto.
10939
10940 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
10941
fd6fa53f
SM
109422011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
10943
10944 * minibuf.c (get_minibuffer, read_minibuf_unwind):
10945 Call minibuffer-inactive-mode.
10946
864db017
JB
109472011-05-31 Juanma Barranquero <lekktu@gmail.com>
10948
10949 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
10950 Update dependencies.
10951
2ad0baf4
DN
109522011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
10953
10954 * data.c (init_data): Remove code for UTS, this system is not
10955 supported anymore.
10956
4fcc2638
DN
109572011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
10958
10959 Don't force ./temacs to start in terminal mode.
10960
10961 * frame.c (make_initial_frame): Initialize faces in all cases, not
10962 only when CANNOT_DUMP is defined.
10963 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
10964
c56e0fd5
DN
109652011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
10966
10967 * dispnew.c (add_window_display_history): Use const for the string
10968 pointer. Remove declaration, not needed.
10969
333d54da 109702011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 10971
55d4c1b2 10972 Use 'inline', not 'INLINE'.
333d54da 10973 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
10974 * alloc.c, fontset.c (INLINE): Remove.
10975 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
10976 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
10977 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
10978 * gmalloc.c (register_heapinfo): Use inline unconditionally.
10979 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
10980
738db178
DN
109812011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
10982
10983 Make it possible to run ./temacs.
10984
10985 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
10986 syms_of_callproc does the same thing. Remove test for
10987 "initialized", do it in the caller.
10988 * emacs.c (main): Avoid calling set_initial_environment when dumping.
10989
620c53a6
SM
109902011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
10991
10992 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
10993 (read_minibuf): Use get_minibuffer.
10994 (syms_of_minibuf): Use DEFSYM.
10995 (Qmetadata): New var.
10996 * data.c (Qbuffer): Don't make it static.
10997 (syms_of_data): Use DEFSYM.
10998
e003a292
PE
109992011-05-31 Paul Eggert <eggert@cs.ucla.edu>
11000
11001 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
11002 (CCL_CODE_MIN): New macro.
11003
ed008a6d
PE
110042011-05-30 Paul Eggert <eggert@cs.ucla.edu>
11005
3687c2ef
PE
11006 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
11007
ed008a6d
PE
11008 * eval.c (Qdebug): Now static.
11009 * lisp.h (Qdebug): Remove decl. This reverts a part of the
11010 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
11011 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
11012
d66c4c7c
CY
110132011-05-29 Chong Yidong <cyd@stupidchicken.com>
11014
11015 * image.c: Various fixes to ImageMagick code comments.
11016 (Fimagemagick_types): Doc fix.
11017
5fbc2025
PE
110182011-05-29 Paul Eggert <eggert@cs.ucla.edu>
11019
0196f88a
PE
11020 Minor fixes prompted by GCC 4.6.0 warnings.
11021
11022 * xselect.c (converted_selections, conversion_fail_tag): Now static.
11023
5fbc2025
PE
11024 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
11025 (x_clipboard_manager_save_all): Move extern decl to ...
11026 * xterm.h: ... here, so that it can be checked for consistency.
11027
1dd3c2d9
CY
110282011-05-29 Chong Yidong <cyd@stupidchicken.com>
11029
11030 * xselect.c (x_clipboard_manager_save_frame)
11031 (x_clipboard_manager_save_all): New functions.
11032 (Fx_clipboard_manager_save): Lisp function deleted.
11033
11034 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
11035 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
11036
11037 * xterm.h: Update prototype.
11038
5ba6571d
WX
110392011-05-28 William Xu <william.xwl@gmail.com>
11040
11041 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
11042 exiting (Bug#8239).
11043
3eaff834
JM
110442011-05-28 Jim Meyering <meyering@redhat.com>
11045
e1900994 11046 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
11047 * fns.c (to_uchar): Define.
11048 (crypto_hash_function): Use it to convert some newly-signed
11049 variables to unsigned, to avoid sign-extension bugs. For example,
11050 without this change, (md5 "truc") would evaluate to
11051 45723a2aff78ff4fff7fff1114760e62 rather than the expected
11052 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 11053 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 11054
0f6990a7
PE
110552011-05-27 Paul Eggert <eggert@cs.ucla.edu>
11056
11057 Integer overflow fixes.
c8a9ca5a 11058
08686060
PE
11059 * dbusbind.c: Serial number integer overflow fixes.
11060 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
11061 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
11062 to hold a serial number that is too large for a fixnum.
11063 (Fdbus_method_return_internal, Fdbus_method_error_internal):
11064 Check for serial numbers out of range. Decode any serial number
59568bf0 11065 that was so large that it became a float. (Bug#8722)
08686060 11066
2d1fc3c7
PE
11067 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
11068 (Fdbus_call_method, Fdbus_call_method_asynchronously):
11069 Use XFASTINT rather than XUINT when numbers are nonnegative.
11070 (xd_append_arg, Fdbus_method_return_internal):
11071 (Fdbus_method_error_internal): Likewise. Also, for unsigned
11072 arguments, check that Lisp number is nonnegative, rather than
59568bf0 11073 silently wrapping negative numbers around. (Bug#8722)
30217ff0 11074 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 11075 (Bug#8722)
2d1fc3c7 11076
c8a9ca5a
PE
11077 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
11078
519e1d69
PE
11079 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
11080
6df6ae42 11081 ccl: Add integer overflow checks.
30569699
PE
11082 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
11083 (IN_INT_RANGE): New macros.
11084 (ccl_driver): Use them to check for integer overflow when
11085 decoding a CCL program. Many of the new checks are whether XINT (x)
11086 fits in int; it doesn't always, on 64-bit hosts. The new version
11087 doesn't catch all possible integer overflows, but it's an
847044ea 11088 improvement. (Bug#8719)
30569699 11089
c11285dc
PE
11090 * alloc.c (make_event_array): Use XINT, not XUINT.
11091 There's no need for unsigned here.
11092
fdccd48e
PE
11093 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
11094 This follows up to the 2011-05-06 change that substituted uintptr_t
11095 for EMACS_INT. This case wasn't caught back then.
11096
37910ab2
PE
11097 Rework Fformat to avoid integer overflow issues.
11098 * editfns.c: Include <float.h> unconditionally, as it's everywhere
11099 now (part of C89). Include <verify.h>.
11100 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
11101 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
11102 (Fformat): Avoid the prepass trying to compute sizes; it was only
11103 approximate and thus did not catch overflow reliably. Instead, walk
11104 through the format just once, formatting and computing sizes as we go,
11105 checking for integer overflow at every step, and allocating a larger
11106 buffer as needed. Keep track separately whether the format is
11107 multibyte. Keep only the most-recently calculated precision, rather
11108 than them all. Record whether each argument has been converted to
11109 string. Use EMACS_INT, not int, for byte and char and arg counts.
11110 Support field widths and precisions larger than INT_MAX. Avoid
11111 sprintf's undefined behavior with conversion specifications such as %#d
11112 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
11113 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
11114 formatting out-of-range floating point numbers with int
9173deec 11115 formats. (Bug#8668)
37910ab2 11116
2e6578fb
PE
11117 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
11118
0ae6bdee
PE
11119 * data.c: Avoid integer truncation in expressions involving floats.
11120 * data.c: Include <intprops.h>.
11121 (arith_driver): When there's an integer overflow in an expression
11122 involving floating point, convert the integers to floating point
11123 so that the resulting value does not suffer from catastrophic
11124 integer truncation. For example, on a 64-bit host (* 4
11125 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
11126 Do not rely on undefined behavior after integer overflow.
11127
de883a70
PE
11128 merge count_size_as_multibyte, parse_str_to_multibyte
11129 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 11130 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
11131 Check for integer overflow.
11132 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
11133 since it's now a duplicate of the other. This is more of
11134 a character than a buffer op, so better that it's in character.c.
11135 * fns.c, print.c: Adjust to above changes.
11136
2ff916cb
PE
111372011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
11138
11139 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
11140
f1b54466
PE
111412011-05-27 Paul Eggert <eggert@cs.ucla.edu>
11142
fb1ac845
PE
11143 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
11144 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
11145 (x_clipboard_manager_save): Now static.
11146 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
11147
f1b54466
PE
11148 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
11149 (crypto_hash_function): Now static.
11150 Fix pointer signedness problems. Avoid unnecessary initializations.
11151
a9f737ee
CY
111522011-05-27 Chong Yidong <cyd@stupidchicken.com>
11153
11154 * termhooks.h (Vselection_alist): Make it terminal-local.
11155
11156 * terminal.c (create_terminal): Initialize it.
11157
11158 * xselect.c: Support for clipboard managers.
11159 (Vselection_alist): Move to termhooks.h as terminal-local var.
11160 (LOCAL_SELECTION): New macro.
11161 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
11162 (symbol_to_x_atom): Remove gratuitous arg.
11163 (x_handle_selection_request, lisp_data_to_selection_data)
11164 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
11165 (x_own_selection, x_get_local_selection, x_convert_selection):
11166 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
11167 (some_frame_on_display): Delete unused function.
11168 (Fx_own_selection_internal, Fx_get_selection_internal)
11169 (Fx_disown_selection_internal, Fx_selection_owner_p)
11170 (Fx_selection_exists_p): New optional frame arg.
11171 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
11172 (x_handle_selection_clear): Don't treat other terminals with the
11173 same keyboard specially. Use the terminal-local Vselection_alist.
11174 (x_clear_frame_selections): Use Frun_hook_with_args.
11175
11176 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
11177
11178 * xterm.h: Add support for those atoms.
11179
e067f0c1
CY
111802011-05-26 Chong Yidong <cyd@stupidchicken.com>
11181
11182 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
11183 (converted_selections, conversion_fail_tag): New global variables.
11184 (x_selection_request_lisp_error): Free the above.
11185 (x_get_local_selection): Remove unnecessary code.
11186 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
11187 of converted selections stored in converted_selections.
11188 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
11189 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
11190 (x_convert_selection): New function.
11191 (x_handle_selection_event): Simplify.
11192 (x_get_foreign_selection): Don't ignore incoming requests while
11193 waiting for an answer; this will fail when we implement
11194 SAVE_TARGETS, and seems unnecessary anyway.
11195 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
11196 (Vx_sent_selection_functions): Doc fix.
11197
0f4aebc0
LL
111982011-05-26 Leo Liu <sdl.web@gmail.com>
11199
11200 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
11201
e61124cd
YM
112022011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
11203
11204 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
11205
11206 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
11207 for fringe update if it has periodic bitmap.
ac389d0c 11208 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
11209 and fringe_bitmap_periodic_p.
11210
11211 * fringe.c (get_fringe_bitmap_data): New function.
11212 (draw_fringe_bitmap_1, update_window_fringes): Use it.
11213 (update_window_fringes): Record periodicity of fringe bitmap in glyph
11214 row. Mark glyph row for fringe update if periodicity changed.
11215
11216 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
11217 for fringe update unless it has periodic bitmap.
11218
f16d9837
KH
112192011-05-25 Kenichi Handa <handa@m17n.org>
11220
11221 * xdisp.c (get_next_display_element): Set correct it->face_id for
11222 a static composition.
11223
e1b90ef6
LL
112242011-05-24 Leo Liu <sdl.web@gmail.com>
11225
11226 * deps.mk (fns.o):
11227 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
11228
11229 * fns.c (crypto_hash_function, Fsha1): New function.
11230 (Fmd5): Use crypto_hash_function.
11231 (syms_of_fns): Add Ssha1.
11232
7400048f
PE
112332011-05-22 Paul Eggert <eggert@cs.ucla.edu>
11234
11235 * gnutls.c: Remove unused macros.
11236 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
11237 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
11238 Remove macros that are defined and never used.
11239 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
11240
abb71cf4
CY
112412011-05-22 Chong Yidong <cyd@stupidchicken.com>
11242
11243 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
11244 (Fx_get_selection_internal): Minor cleanup.
11245 (Fx_own_selection_internal): Rename arguments for consistency with
11246 select.el.
11247
6307db39
PE
112482011-05-22 Paul Eggert <eggert@cs.ucla.edu>
11249
11250 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
11251
f3d4e0a4
CY
112522011-05-22 Chong Yidong <cyd@stupidchicken.com>
11253
11254 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
11255
4d8ade89
YM
112562011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
11257
11258 * dispnew.c (scrolling_window): Don't exclude the case that the
11259 last enabled row in the desired matrix touches the bottom boundary.
11260
32078c8d
GM
112612011-05-21 Glenn Morris <rgm@gnu.org>
11262
11263 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
11264 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
11265 and add some more files.
32078c8d 11266
7285dc67
EZ
112672011-05-20 Eli Zaretskii <eliz@gnu.org>
11268
11269 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
11270 report_file_error introduced by the change from 2011-05-07.
11271
89d1bd22
PE
112722011-05-20 Paul Eggert <eggert@cs.ucla.edu>
11273
11274 * systime.h (Time): Define only if emacs is defined.
11275 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
11276 where the include path doesn't have X11/X.h by default. See
11277 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
11278
cd394be1 112792011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
11280
11281 * composite.c (find_automatic_composition): Fix previous change.
11282
b9704ad9
GM
112832011-05-20 Glenn Morris <rgm@gnu.org>
11284
11285 * lisp.mk: New file, split from Makefile.in.
11286 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
11287 (shortlisp): Remove.
11288 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
11289
4a720484
GM
112902011-05-19 Glenn Morris <rgm@gnu.org>
11291
11292 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
11293 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
11294 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
11295 (lisp): Set the order to that of loadup.el.
11296 (shortlisp): Make it a copy of $lisp.
11297 (SOME_MACHINE_LISP): Remove.
11298 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
11299 Use just $shortlisp, not $SOME_MACHINE_LISP too.
11300
a28d4396
KH
113012011-05-18 Kenichi Handa <handa@m17n.org>
11302
11303 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
11304 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
11305 (find_automatic_composition): Mostly rewrite for efficiency.
11306
a2b1fa8e
JB
113072011-05-18 Juanma Barranquero <lekktu@gmail.com>
11308
11309 * makefile.w32-in: Update dependencies.
11310
8e1f5610
CS
113112011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
11312
11313 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 11314 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 11315
7025ee00 113162011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 11317
cdfa6eab
PE
11318 Fix some integer overflow issues, such as string length overflow.
11319
06d6db33
PE
11320 * insdel.c (count_size_as_multibyte): Check for string overflow.
11321
2b4560a8
PE
11322 * character.c (lisp_string_width): Check for string overflow.
11323 Use EMACS_INT, not int, for string indexes and lengths; in
11324 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
11325 the resulting string length overflows an EMACS_INT; instead,
11326 report a string overflow if no precision given. When checking for
11327 precision exhaustion, use a check that cannot possibly have
11328 integer overflow. (Bug#8675)
11329 * character.h (lisp_string_width): Adjust to new signature.
11330
cb93f9be
PE
11331 * alloc.c (string_overflow): New function.
11332 (Fmake_string): Use it. This doesn't change behavior, but saves
11333 a few bytes and will simplify future changes.
11334 * character.c (string_escape_byte8): Likewise.
11335 * lisp.h (string_overflow): New decl.
11336
1a1f3366
PE
11337 Fixups, following up to the user-interface timestamp change.
11338 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
11339 for UI timestamps, instead of unsigned long.
9fbd6841
PE
11340 * msdos.c (mouse_get_pos): Likewise.
11341 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
11342 * w32gui.h (Time): Define by including "systime.h" rather than by
11343 declaring it ourselves. (Bug#8664)
11344
d4e3e4d3
PE
11345 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
11346 * image.c (clear_image_cache): Likewise.
11347
f6a24d19
PE
11348 * term.c (term_mouse_position): Don't assume time_t wraparound.
11349
08dc5ae6
PE
11350 Be more systematic about user-interface timestamps.
11351 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
11352 and sometimes 'EMACS_UINT', to represent these timestamps.
11353 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
11354 This makes the code easier to follow, and makes it easier to catch
11355 integer overflow bugs such as Bug#8664.
11356 * frame.c (Fmouse_position, Fmouse_pixel_position):
11357 Use Time, not unsigned long, for user-interface timestamps.
11358 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
11359 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
11360 * keyboard.h (last_event_timestamp): Likewise.
11361 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
11362 * menu.h (xmenu_show): Likewise.
11363 * term.c (term_mouse_position): Likewise.
11364 * termhooks.h (struct input_event.timestamp): Likewise.
11365 (struct terminal.mouse_position_hook): Likewise.
11366 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
11367 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
11368 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
11369 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
11370 what it was before.
11371 * menu.h, termhooks.h: Include "systime.h", for Time.
11372
8e55734a
PE
11373 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
11374 Don't assume that the difference between two unsigned long values
11375 can fit into an integer. At this point, we know button_down_time
11376 <= event->timestamp, so the difference must be nonnegative, so
11377 there's no need to cast the result if double-click-time is
11378 nonnegative, as it should be; check that it's nonnegative, just in
11379 case. This bug is triggered when events are more than 2**31 ms
86db42d2 11380 apart (about 25 days). (Bug#8664)
8e55734a 11381
841f1b75 11382 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 11383 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 11384
3e26f69c
PE
11385 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
11386 that always fit in int. Use a sentinel instead of a counter, to
11387 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
11388 * frame.h (struct frame): Use int for menu_bar_items_used
11389 instead of EMACS_INT, since it always fits in int.
3e26f69c 11390
5cc152c0
PE
11391 * menu.c (grow_menu_items): Check for int overflow.
11392
d89eb65e
PE
11393 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
11394
5235bd3e
PE
11395 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
11396 Before, the code was not consistent. These values cannot exceed
11397 2**31 - 1 so there's no need to make them unsigned.
11398 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
11399 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
11400 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
11401 as modifiers.
11402 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
11403
bc827e23
PE
11404 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
11405 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
11406 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
11407 presumably because the widths might not match.
11408
78eb494e
PE
11409 * window.c (size_window): Avoid needless test at loop start.
11410
04f2d78b
CB
114112011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
11412
11413 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
11414
d2fc7e3d 114152011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
11416
11417 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
11418
d2fc7e3d 114192011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
11420
11421 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
11422 `width' to `bar_area_x' and `bar_area_width', respectively.
11423 (x_scroll_run): Take account of fringe background extension.
11424
04f2d78b
CB
11425 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
11426 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
11427 `bar_area_width', respectively.
11428 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
11429 background extension.
11430
79b70037
GM
114312011-05-10 Jim Meyering <meyering@redhat.com>
11432
11433 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
11434
2f142cc5
JB
114352011-05-10 Juanma Barranquero <lekktu@gmail.com>
11436
11437 * image.c (Finit_image_library): Return t for built-in image types,
11438 like pbm and xbm. (Bug#8640)
11439
57679c86
AS
114402011-05-09 Andreas Schwab <schwab@linux-m68k.org>
11441
11442 * w32menu.c (set_frame_menubar): Fix submenu allocation.
11443
888c9e86
EZ
114442011-05-07 Eli Zaretskii <eliz@gnu.org>
11445
b0512a1d
EZ
11446 * w32console.c (Fset_screen_color): Doc fix.
11447 (Fget_screen_color): New function.
11448 (syms_of_ntterm): Defsubr it.
11449
7285dc67
EZ
11450 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
11451 unlink the temporary file if Fcall_process didn't create it in the
11452 first place.
11453 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
11454 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
11455 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
11456 cue to call_process_cleanup not to close that handle.
11457
4d3fcc8e
BK
114582011-05-07 Ben Key <bkey76@gmail.com>
11459
11460 * makefile.w32-in: The bootstrap-temacs rule now makes use of
11461 one of two shell specific rules, either bootstrap-temacs-CMD or
11462 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
11463 to the previous implementation of the bootstrap-temacs rule.
11464 The bootstrap-temacs-CMD rule is similar to the previous
11465 implementation of the bootstrap-temacs rule except that it
11466 makes use of the ESC_CFLAGS variable instead of the CFLAGS
11467 variable.
11468
11469 These changes, along with some changes to nt/configure.bat,
11470 nt/gmake.defs, and nt/nmake.defs, are required to extend my
11471 earlier fix to add support for --cflags and --ldflags options
11472 that include quotes so that it works whether make uses cmd or
11473 sh as the shell.
11474
b4289b64
MA
114752011-05-06 Michael Albinus <michael.albinus@gmx.de>
11476
11477 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
11478 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
11479 is a constant.
11480 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
11481 a string. Handle both cases.
11482 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
11483 (Fdbus_register_method): Use Qinvalid_function.
11484
af4c0e28
JB
114852011-05-06 Juanma Barranquero <lekktu@gmail.com>
11486
11487 * makefile.w32-in: Update dependencies.
11488 (LISP_H): Add inttypes.h and stdin.h.
11489 (PROCESS_H): Add unistd.h.
11490
c51453d9
EZ
114912011-05-06 Eli Zaretskii <eliz@gnu.org>
11492
11493 * lread.c: Include limits.h (fixes the MS-Windows build broken by
11494 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
11495
8ff0ac3c 114962011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 11497
4c4b566b
PE
11498 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
11499
aab2b9b5
PE
11500 * term.c (vfatal): Remove stray call to va_end.
11501 It's not needed and the C Standard doesn't allow it here anyway.
11502
c378da0b
PE
11503 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
11504 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
11505
288b08c7
PE
11506 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
11507 bytes.
11508
e3601888
PE
11509 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
11510
db6c0e74
PE
11511 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
11512
dd5963ea
PE
11513 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
11514
88c9450f
PE
11515 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
11516
2f9442b8
PE
11517 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
11518
c032b5f8
PE
11519 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
11520 * charset.c (Fdefine_charset_internal): Don't initialize
11521 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 11522 32-bit int (Bug#8600).
a108c10b
PE
11523
11524 * lread.c (read_integer): Be more consistent with string-to-number.
11525 Use string_to_number to do the actual conversion; this avoids
11526 rounding errors and fixes some other screwups. Without this fix,
11527 for example, #x1fffffffffffffff was misread as -2305843009213693952.
11528 (digit_to_number): Move earlier, for benefit of read_integer.
11529 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 11530 not a digit in any supported base. (Bug#8602)
a108c10b 11531
ad5f9eea
PE
11532 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
11533
aec1708a
PE
11534 * dispnew.c (scrolling_window): Return 1 if we scrolled,
11535 to match comment at start of function. This also removes a
11536 GCC warning about overflow in a 32+64-bit port.
11537
47be4ab5
PE
11538 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
11539
371cac43
PE
11540 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
11541 Reported by Stefan Monnier in
11542 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
11543 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
11544 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 11545
d01a7826
PE
11546 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
11547 (EMACS_UINTPTR): Likewise, with uintptr_t.
11548
7fd47d5c
PE
11549 * lisp.h: Prefer 64-bit EMACS_INT if available.
11550 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
11551 on 32-bit hosts that have 64-bit int, so that they can access
11552 large files.
122b0c86
PE
11553 However, temporarily disable this change unless the temporary
11554 symbol WIDE_EMACS_INT is defined.
7fd47d5c 11555
8727937b
PE
11556 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
11557
8ac068ac
PE
11558 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
11559 This removes an assumption that EMACS_INT and long are the same
11560 width as pointers. The assumption is true for Emacs porting targets
11561 now, but we want to make other targets possible.
11562 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
11563 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
11564 In the rest of the code, change types of integers that hold casted
11565 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
11566 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
11567 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
11568 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
11569 No need to cast type when ORing.
11570 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
11571 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
11572 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
11573 assume EMACS_INT is the same width as char *.
11574 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
11575 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
11576 Remove no-longer-needed casts.
11577 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
11578 (xg_tool_bar_help_callback, xg_make_tool_item):
11579 Use EMACS_INTPTR to hold an integer
11580 that will be cast to void *; this can avoid a GCC warning
11581 if EMACS_INT is not the same width as void *.
11582 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
11583 * xdisp.c (display_echo_area_1, resize_mini_window_1):
11584 (current_message_1, set_message_1):
11585 Use a local to convert to proper width without a cast.
11586 * xmenu.c (dialog_selection_callback): Likewise.
11587
ede49d71
PE
11588 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
11589 Also, don't assume VALBITS / RAND_BITS is less than 5,
11590 and don't rely on undefined behavior when shifting a 1 left into
11591 the sign bit.
11592 * lisp.h (get_random): Change signature to match.
11593
2f30ecd0
PE
11594 * lread.c (hash_string): Use size_t, not int, for hash computation.
11595 Normally we prefer signed values; but hashing is special, because
11596 it's better to use unsigned division on hash table sizes so that
11597 the remainder is nonnegative. Also, size_t is the natural width
11598 for hashing into memory. The previous code used 'int', which doesn't
11599 retain enough info to hash well into very large tables.
11600 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
11601
2a866e7b
PE
11602 * dbusbind.c: Don't possibly lose pointer info when converting.
11603 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
11604 Use XPNTR rather than XHASH, so that the high-order bits of
11605 the pointer aren't lost when converting through void *.
11606
51639eac
PE
11607 * eval.c (Fautoload): Don't double-shift a pointer.
11608
92394119
PE
11609 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
11610
dbdb9a7c
JB
116112011-05-06 Juanma Barranquero <lekktu@gmail.com>
11612
11613 * gnutls.c (DEF_GNUTLS_FN):
11614 * image.c (DEF_IMGLIB_FN): Make function pointers static.
11615
db7a0b4f
AS
116162011-05-05 Andreas Schwab <schwab@linux-m68k.org>
11617
11618 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
11619 marker. (Bug#8610)
11620
cd394be1 116212011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
11622
11623 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
11624 New version that can reserve upto 2GB of heap space.
11625
f7ff1b0f 116262011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
11627
11628 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
11629
639c109b
TZ
116302011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
11631
11632 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
11633 `gnutls_certificate_set_x509_key_file'.
11634
d2127135
JB
116352011-05-05 Juanma Barranquero <lekktu@gmail.com>
11636
11637 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
11638 Update dependencies.
11639
e968f4f3
JB
116402011-05-04 Juanma Barranquero <lekktu@gmail.com>
11641
11642 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
11643 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
11644 Remove unused parameter `fildes'.
11645 * process.c (read_process_output, send_process): Don't pass it.
11646
84d358f0
JB
116472011-05-04 Juanma Barranquero <lekktu@gmail.com>
11648
11649 Fix previous change: the library cache is defined in w32.c.
11650 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
11651 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
11652
0898ca10
JB
116532011-05-04 Juanma Barranquero <lekktu@gmail.com>
11654
11655 Implement dynamic loading of GnuTLS on Windows.
11656
11657 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
11658 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
11659 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
11660 Declare.
11661
11662 * gnutls.c (Qgnutls_dll): Define.
11663 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
11664 (gnutls_*): Declare function pointers.
11665 (init_gnutls_functions): New function to initialize function pointers.
11666 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
11667 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
11668 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
11669 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
11670 (emacs_gnutls_write, emacs_gnutls_read)
11671 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
11672 (Fgnutls_available_p): New function.
11673 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
11674 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
11675 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
11676
11677 * image.c: Include w32.h.
11678 (Vimage_type_cache): Delete.
11679 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
11680 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
11681 (w32_delayed_load): Move to w32.c.
11682
11683 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
11684
11685 * w32.c (QCloaded_from, Vlibrary_cache): Define.
11686 (w32_delayed_load): Move from image.c. When loading a library, record
11687 its filename in the :loaded-from property of the library id.
11688 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
11689 Initialize and staticpro them.
11690 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
11691
11692 * process.c: Include lisp.h before w32.h, not after.
11693 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
11694 instead of gnutls_record_check_pending.
11695
11696 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
11697
ff4de4aa
TZ
116982011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
11699
11700 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
11701 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
11702 as passed in.
11703
abe95abb
JD
117042011-05-03 Jan Djärv <jan.h.d@swipnet.se>
11705
11706 * xterm.c (x_set_frame_alpha): Do not set property on anything
11707 else than FRAME_X_OUTER_WINDOW (Bug#8608).
11708
e16e55d4
JB
117092011-05-02 Juanma Barranquero <lekktu@gmail.com>
11710
11711 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
11712
bafcf6a5
JB
117132011-05-02 Juanma Barranquero <lekktu@gmail.com>
11714
11715 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
11716 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
11717 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
11718 (gnutls_global_initialized, Qgnutls_bootprop_priority)
11719 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
11720 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
11721 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
11722 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
11723 (Qgnutls_bootprop_callbacks_verify): Make static.
11724
e7a6747f
AS
117252011-05-01 Andreas Schwab <schwab@linux-m68k.org>
11726
19ed11ba
AS
11727 * callproc.c: Indentation fixup.
11728
e7a6747f 11729 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
11730 (wait_for_termination, interruptible_wait_for_termination):
11731 Move after wait_for_termination_1.
e7a6747f 11732
1ef14cb4
LMI
117332011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
11734
11735 * sysdep.c (interruptible_wait_for_termination): New function
11736 which is like wait_for_termination, but allows keyboard
11737 interruptions.
11738
11739 * callproc.c (Fcall_process): Add (:file "file") as an option for
11740 the STDOUT buffer.
11741 (Fcall_process_region): Ditto.
11742
330d880c
EZ
117432011-04-30 Eli Zaretskii <eliz@gnu.org>
11744
8db90b73
EZ
11745 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
11746 rather than `XVECTOR (FOO)->size'.
11747
330d880c
EZ
11748 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
11749 inttypes.h, as a gnulib replacement is used if it not available in
11750 system headers.
11751
15cbd324
EZ
117522011-04-21 Eli Zaretskii <eliz@gnu.org>
11753
11754 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
11755 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
11756 of MOST_POSITIVE_FIXNUM. (Bug#8528)
11757
11758 * coding.c (coding_alloc_by_realloc): Error out if destination
11759 will grow beyond MOST_POSITIVE_FIXNUM.
11760 (decode_coding_emacs_mule): Abort if there isn't enough place in
11761 charbuf for the composition carryover bytes. Reserve an extra
11762 space for up to 2 characters produced in a loop.
11763 (decode_coding_iso_2022): Abort if there isn't enough place in
11764 charbuf for the composition carryover bytes.
11765
117662011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 11767
ae940cca
EZ
11768 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
11769 aborting when %lld or %lll format is passed.
11770 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
11771 %llo or %llx format is passed. (Bug#8545)
11772
03ab8921
EZ
11773 * window.c (window_scroll_line_based): Use a marker instead of
11774 simple variables to record original value of point. (Bug#7952)
11775
afda1437
EZ
11776 * doprnt.c (doprnt): Fix the case where a multibyte sequence
11777 produced by %s or %c overflows available buffer space. (Bug#8545)
11778
f76dee0c
PE
117792011-04-28 Paul Eggert <eggert@cs.ucla.edu>
11780
11781 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 11782 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 11783
fdc5744d
JB
117842011-04-28 Juanma Barranquero <lekktu@gmail.com>
11785
11786 * w32.c (init_environment): Warn about defaulting HOME to C:\.
11787
638f053a
JB
117882011-04-28 Juanma Barranquero <lekktu@gmail.com>
11789
11790 * keyboard.c (Qdelayed_warnings_hook): Define.
11791 (command_loop_1): Run `delayed-warnings-hook'
11792 if Vdelayed_warnings_list is non-nil.
11793 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
11794 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
11795
d178f871
EZ
117962011-04-28 Eli Zaretskii <eliz@gnu.org>
11797
11798 * doprnt.c (doprnt): Don't return value smaller than the buffer
11799 size if the message was truncated. (Bug#8545).
11800
b124fd93
JB
118012011-04-28 Juanma Barranquero <lekktu@gmail.com>
11802
11803 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
11804 (Fx_window_property): #if-0 the whole functions, not just the bodies.
11805
e810457d
PE
118062011-04-27 Paul Eggert <eggert@cs.ucla.edu>
11807
11808 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
11809
ea51cceb
JB
118102011-04-27 Juanma Barranquero <lekktu@gmail.com>
11811
11812 * makefile.w32-in: Update dependencies.
11813
94dcfacf
EZ
118142011-04-27 Eli Zaretskii <eliz@gnu.org>
11815
11816 Improve `doprnt' and its usage. (Bug#8545)
11817 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
11818 `format_end'. Remove support for %l as a conversion specifier.
11819 Don't use xrealloc. Improve diagnostics when the %l size modifier
11820 is used. Update the commentary.
11821
11822 * eval.c (verror): Simplify calculation of size_t.
11823
11824 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
11825 messages.
11826
f61f41d7
PE
118272011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
11828
11829 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
11830 change.
11831
96fb4434
PE
118322011-04-27 Paul Eggert <eggert@cs.ucla.edu>
11833
11834 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
11835 This makes this file independent of the recent pseudovector change.
11836
671875da 118372011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 11838
69e9b5a3
PE
11839 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
11840
b5f869a7 11841 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 11842 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 11843 Remove unused local.
c8926152 11844 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 11845
841a1577 11846 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
11847 GCC 4.6.0 optimizes based on type-based alias analysis.
11848 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
11849 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
11850 != &v->size, and therefore "v->size = 1; b->size = 2; return
11851 v->size;" must therefore return 1. This assumption is incorrect
11852 for Emacs, since it type-puns struct Lisp_Vector * with many other
11853 types. To fix this problem, this patch adds a new type struct
f904488f 11854 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
11855 and pseudovectors, and helps optimizing compilers not get fooled
11856 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
11857 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
11858 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
11859 the size member.
eab3844f
PE
11860 (XSETPVECTYPE): Rewrite in terms of new macro.
11861 (XSETPVECTYPESIZE): New macro, specifying both type and size.
11862 This is a bit clearer, and further avoids the possibility of
11863 undesirable aliasing.
11864 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 11865 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
11866 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
11867 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
11868 (ASIZE): Now uses header.size rather than size.
11869 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
11870 to avoid the hassle of writing XVECTOR (foo)->header.size.
11871 (struct vectorlike_header): New type.
eab3844f
PE
11872 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
11873 object, to help avoid aliasing.
11874 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
11875 (SUBRP): Likewise, since Lisp_Subr is a special case.
11876 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
11877 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
11878 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 11879 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
11880 changed to be "header.size" and "header.next".
11881 * buffer.h (struct buffer): Likewise.
11882 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
11883 * frame.h (struct frame): Likewise.
11884 * process.h (struct Lisp_Process): Likewise.
11885 * termhooks.h (struct terminal): Likewise.
11886 * window.c (struct save_window_data, struct saved_window): Likewise.
11887 * window.h (struct window): Likewise.
11888 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
11889 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
11890 * buffer.c (init_buffer_once): Likewise.
11891 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
11892 special case.
11893 * process.c (Fformat_network_address): Use local var for size,
11894 for brevity.
11895
0df1eac5
PE
11896 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
11897
847ab9d1 11898 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
11899 * data.c (atof): Remove decl; no longer used or needed.
11900 (digit_to_number): Move to lread.c.
11901 (Fstring_to_number): Use new string_to_number function, to be
11902 consistent with how the Lisp reader treats infinities and NaNs.
11903 Do not assume that floating-point numbers represent EMACS_INT
11904 without losing information; this is not true on most 64-bit hosts.
11905 Avoid double-rounding errors, by insisting on integers when
11906 parsing non-base-10 numbers, as the documentation specifies.
11907 * lisp.h (string_to_number): New decl, replacing ...
11908 (isfloat_string): Remove.
bc0a5c13 11909 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 11910 (read1): Do not accept +. and -. as integers; this
452f4150
PE
11911 appears to have been a coding error. Similarly, do not accept
11912 strings like +-1e0 as floating point numbers. Do not report
11913 overflow for integer overflows unless the base is not 10 which
11914 means we have no simple and reliable way to continue.
11915 Break out the floating-point parsing into a new
11916 function string_to_number, so that Fstring_to_number parses
11917 floating point numbers consistently with the Lisp reader.
04f2d78b 11918 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
11919 (E_CHAR, EXP_INT): Remove, replacing with ...
11920 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
11921 (string_to_number): New function, replacing isfloat_string.
11922 This function checks for valid syntax and produces the resulting
11923 Lisp float number too. Rework it so that string-to-number
bc0a5c13 11924 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
11925 so that overflow for non-base-10 numbers is reported only when
11926 there's no portable and simple way to convert to floating point.
452f4150 11927
67769ffc
PE
11928 * textprop.c (set_text_properties_1): Rewrite for clarity,
11929 and to avoid GCC warning about integer overflow.
11930
c20db43f
PE
11931 * intervals.h (struct interval): Use EMACS_INT for members
11932 where EMACS_UINT might cause problems. See
11933 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
11934 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
11935 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
11936 All uses changed.
37aa2f85
PE
11937 (offset_intervals): Tell GCC not to worry about length overflow
11938 when negating a negative length.
c20db43f 11939
2538aa2f
PE
11940 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
11941 (overrun_check_free): Likewise.
11942
f2d3008d
PE
11943 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
11944 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
11945 word size.
11946
ec8df744
PE
11947 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
11948 (gnutls_make_error): Rename local to avoid shadowing.
11949 (gnutls_emacs_global_deinit): ifdef out; not used.
11950 (Fgnutls_boot): Use const for pointer to readonly storage.
11951 Comment out unused local. Fix pointer signedness problems.
11952
640ee02d
PE
11953 * lread.c (openp): Don't stuff size_t into an 'int'.
11954 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
11955 about possible signed overflow.
11956
6048fb2a
PE
11957 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
11958 (GDK_KEY_g): Don't define if already defined.
11959 (xg_prepare_tooltip): Avoid pointer signedness problem.
11960 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
11961
fa3c87e1
PE
11962 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
11963 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
11964
2172544b
PE
11965 * xfns.c (Fx_window_property): Simplify a bit,
11966 to make a bit faster and to avoid GCC 4.6.0 warning.
11967 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
11968
9b821a21
PE
11969 * fns.c (internal_equal): Don't assume size_t fits in int.
11970
3c616cfa
PE
11971 * alloc.c (compact_small_strings): Tighten assertion a little.
11972
c2982e87
PE
11973 Replace pEd with more-general pI, and fix some printf arg casts.
11974 * lisp.h (pI): New macro, generalizing old pEd macro to other
11975 conversion specifiers. For example, use "...%"pI"d..." rather
11976 than "...%"pEd"...".
11977 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 11978 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
11979 * alloc.c (check_pure_size): Don't overflow by converting size to int.
11980 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
11981 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
11982 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
11983 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
11984 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
11985 64-bit hosts.
11986 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
11987 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
11988 * print.c (safe_debug_print, print_object): Likewise.
11989 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
11990 to int.
6f04d126
PE
11991 Use pI instead of if-then-else-abort. Use %p to avoid casts,
11992 avoiding the 0 flag, which is not portable.
c2982e87
PE
11993 * process.c (Fmake_network_process): Use pI to avoid cast.
11994 * region-cache.c (pp_cache): Likewise.
11995 * xdisp.c (decode_mode_spec): Likewise.
11996 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
11997 behavior on 64-bit hosts with printf arg.
6f04d126 11998 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
11999 (x_stop_queuing_selection_requests): Likewise.
12000 (x_get_window_property): Don't truncate byte count to an 'int'
12001 when tracing.
0b432f21 12002
5e073ec7
PE
12003 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
12004 here, since it parses constructs like leading '-' and spaces,
12005 which are not wanted; and it overflows with large numbers.
12006 Instead, simply match F[0-9]+, which is what is wanted anyway.
12007
36372bf9
PE
12008 * alloc.c: Remove unportable assumptions about struct layout.
12009 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
12010 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
12011 (allocate_vectorlike, make_pure_vector): Use the new macros,
12012 plus offsetof, to remove unportable assumptions about struct layout.
12013 These assumptions hold on all porting targets that I know of, but
12014 they are not guaranteed, they're easy to remove, and removing them
12015 makes further changes easier.
12016
0b432f21
PE
12017 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
12018 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
12019 (string_overrun_cookie): Now const. Use initializers that
12020 don't formally overflow signed char, to avoid warnings.
000098c1
PE
12021 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
12022 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
12023 (allocate_buffer): Don't assume sizeof (struct buffer) is a
12024 multiple of sizeof (EMACS_INT); it need not be, if
12025 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 12026 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 12027
895009e1
JB
120282011-04-26 Juanma Barranquero <lekktu@gmail.com>
12029
12030 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
12031
6a7a1b0b
TZ
120322011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
12033
12034 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 12035 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
12036 Reported by Paul Eggert <eggert@cs.ucla.edu>.
12037
841a1577 120382011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
12039
12040 * lisp.h (Qdebug): List symbol.
895009e1 12041 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
12042 * keyboard.c (debug-on-event): New variable.
12043 (handle_user_signal): Break into debugger when debug-on-event
12044 matches the current signal symbol.
12045
f2d3ba6f
DN
120462011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
12047
12048 * alloc.c (check_sblock, check_string_bytes)
12049 (check_string_free_list): Convert to standard C.
12050
42ce4c63
TZ
120512011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
12052
12053 * w32.c (emacs_gnutls_push): Fix typo.
12054
825cd63c
EZ
120552011-04-25 Eli Zaretskii <eliz@gnu.org>
12056
fb11d64d
EZ
12057 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
12058 "cast to pointer from integer of different size".
12059
825cd63c
EZ
12060 Improve doprnt and its use in verror. (Bug#8545)
12061 * doprnt.c (doprnt): Document the set of format control sequences
12062 supported by the function. Use SAFE_ALLOCA instead of always
12063 using `alloca'.
12064
12065 * eval.c (verror): Don't limit the buffer size at size_max-1, that
12066 is one byte too soon. Don't use xrealloc; instead xfree and
12067 xmalloc anew.
12068
e061a11b
TZ
120692011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
12070
12071 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
12072 callbacks stage.
12073
12074 * gnutls.c: Renamed global_initialized to
12075 gnutls_global_initialized. Added internals for the
12076 :verify-hostname-error, :verify-error, and :verify-flags
12077 parameters of `gnutls-boot' and documented those parameters in the
12078 docstring. Start callback support.
9173deec
JB
12079 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
12080 unless a fatal error occurred. Call gnutls_alert_send_appropriate
12081 on error. Return error code.
e061a11b
TZ
12082 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
12083 (emacs_gnutls_read): Likewise.
12084 (Fgnutls_boot): Return handshake error code.
12085 (emacs_gnutls_handle_error): New function.
12086 (wsaerror_to_errno): Likewise.
12087
12088 * w32.h (emacs_gnutls_pull): Add prototype.
12089 (emacs_gnutls_push): Likewise.
12090
12091 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
12092 (emacs_gnutls_push): Likewise.
12093
120942011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
12095
12096 * process.c (wait_reading_process_output): Check if GnuTLS
12097 buffered some data internally if no FDs are set for TLS
12098 connections.
12099
12100 * makefile.w32-in (OBJ2): Add gnutls.$(O).
12101 (LIBS): Link to USER_LIBS.
12102 ($(BLD)/gnutls.$(0)): New target.
12103
fa6996bc
EZ
121042011-04-24 Eli Zaretskii <eliz@gnu.org>
12105
eb35682e
EZ
12106 * xdisp.c (handle_single_display_spec): Rename the
12107 display_replaced_before_p argument into display_replaced_p, to
12108 make it consistent with the commentary. Fix typos in the
12109 commentary.
12110
e2ad650c
EZ
12111 * textprop.c (syms_of_textprop): Remove dead code.
12112 (copy_text_properties): Delete obsolete commentary about an
12113 interface that was deleted long ago. Fix typos in the description
12114 of arguments.
12115
1b2de274
EZ
12116 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
12117 to changes in oldXMenu/XMenu.h from 2011-04-16.
12118 <menu_help_message, prev_menu_help_message>: Constify.
12119 (IT_menu_make_room): menu->help_text is now `const char **';
12120 adjust.
12121
12122 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
12123 to changes in oldXMenu/XMenu.h from 2011-04-16.
12124 (struct XMenu): Declare `help_text' `const char **'.
12125
12126 * xfaces.c <Qunspecified>: Make extern again.
12127
12128 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 12129 required by POSIX.
1b2de274 12130
762b15be
EZ
12131 * doc.c (get_doc_string): Improve the format passed to `error'.
12132
12133 * doprnt.c (doprnt): Improve commentary.
12134
12135 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
12136
12137 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
12138 them with etags.
12139
f1052e5d
EZ
12140 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
12141 changes in globals.h immediately force recompilation.
762b15be
EZ
12142 (TAGS): Depend on $(CURDIR)/m/intel386.h and
12143 $(CURDIR)/s/ms-w32.h.
12144 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 12145
fa6996bc
EZ
12146 * character.c (Fchar_direction): Function deleted.
12147 (syms_of_character): Don't defsubr it.
12148 <char-direction-table>: Deleted.
12149
e6c3da20
EZ
121502011-04-23 Eli Zaretskii <eliz@gnu.org>
12151
12152 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
12153 * doprnt.c: Include limits.h.
12154 (SIZE_MAX): New macro.
04f2d78b
CB
12155 (doprnt): Return a size_t value. 2nd arg is now size_t.
12156 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
12157 Improve overflow protection. Support `l' modifier for integer
12158 conversions. Support %l conversion. Don't assume an EMACS_INT
12159 argument for integer conversions and for %c.
12160
12161 * lisp.h (doprnt): Restore prototype.
12162
12163 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
12164 $(SRC)/character.h.
12165
12166 * Makefile.in (base_obj): Add back doprnt.o.
12167
12168 * deps.mk (doprnt.o): Add back prerequisites.
12169 (callint.o): Depend on character.h.
12170
12171 * eval.c (internal_lisp_condition_case): Include the handler
12172 representation in the error message.
12173 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
12174 when breaking from the loop.
12175
12176 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
12177
12178 * callint.c (Fcall_interactively): When displaying error message
12179 about invalid control letter, pass the character's codepoint, not
12180 a pointer to its multibyte form. Improve display of the character
12181 in octal and display also its hex code.
12182
12183 * character.c (char_string): Use %x to display the (unsigned)
12184 codepoint of an invalid character, to avoid displaying a bogus
12185 negative value.
12186
12187 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
12188 `error', not SYMBOL_NAME itself.
12189
12190 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
12191 character arguments to `error'.
12192
12193 * charset.c (check_iso_charset_parameter): Fix incorrect argument
12194 to `error' in error message about FINAL_CHAR argument. Make sure
12195 FINAL_CHAR is a character, and use %c when it is passed as
12196 argument to `error'.
12197
4ffd0d6b 121982011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
12199
12200 * s/ms-w32.h (localtime): Redirect to sys_localtime.
12201
12202 * w32.c: Include <time.h>.
12203 (sys_localtime): New function.
12204
4ffd0d6b 122052011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
12206
12207 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
12208
4ffd0d6b 12209 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 12210
4ffd0d6b 122112011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 12212
4ffd0d6b
GM
12213 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
12214 zombies (Bug#8467).
aac0c6e3 12215
04c56954
EZ
122162011-04-19 Eli Zaretskii <eliz@gnu.org>
12217
12218 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
12219 gl_state.e_property when gl_state.object is Qt.
12220
12221 * insdel.c (make_gap_larger): Remove limitation of buffer size
12222 to <= INT_MAX.
12223
16a43933
CY
122242011-04-18 Chong Yidong <cyd@stupidchicken.com>
12225
12226 * xdisp.c (lookup_glyphless_char_display)
12227 (produce_glyphless_glyph): Handle cons cell entry in
12228 glyphless-char-display.
12229 (Vglyphless_char_display): Document it.
12230
12231 * term.c (produce_glyphless_glyph): Handle cons cell entry in
12232 glyphless-char-display.
12233
4581706e
CY
122342011-04-17 Chong Yidong <cyd@stupidchicken.com>
12235
12236 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
12237
12238 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
12239
12240 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
12241 definition for no-X builds.
12242
4887c6e2 122432011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 12244
fd35b6f9
PE
12245 Static checks with GCC 4.6.0 and non-default toolkits.
12246
5c1ccb01
PE
12247 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
12248
006c5daa
PE
12249 * process.c (keyboard_bit_set): Define only if SIGIO.
12250 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
12251 (send_process): Repair possible setjmp clobbering.
12252
efc736d3
PE
12253 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
12254
4e2fe2e6
PE
12255 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
12256
f97334a2
PE
12257 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
12258
4e75f29d
PE
12259 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
12260 Define only if needed.
12261
90efadd1
PE
12262 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
12263 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 12264 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 12265
3c647824
PE
12266 * dispextern.h (struct redisplay_interface): Rename param
12267 to avoid shadowing.
e264f262 12268 * termhooks.h (struct terminal): Likewise.
761383f4 12269 * xterm.c (xembed_send_message): Likewise.
3c647824 12270
b58c5c4a
PE
12271 * insdel.c (make_gap_smaller): Define only if
12272 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
12273
cad59032
PE
12274 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
12275 it.
12276
c339dc2e
PE
12277 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
12278 so that we aren't warned about unused symbols.
12279
91a3e27b
PE
12280 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
12281
399c71d3 12282 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 12283
8ffc96f5
PE
12284 * xfns.c (x_real_positions): Mark locals as initialized.
12285
eef9bc79
PE
12286 * xmenu.c (xmenu_show): Don't use uninitialized vars.
12287
098db9dd
PE
12288 * xterm.c: Fix problems found by static analysis with other toolkits.
12289 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
12290 (x_dispatch_event): Declare static if USE_GTK, and
12291 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 12292 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 12293 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
12294 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
12295 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 12296
eb18f6cc
PE
12297 * xmenu.c (menu_help_callback): Pointer type fixes.
12298 Use const pointers when pointing at readonly data. Avoid pointer
12299 signedness clashes.
12300 (FALSE): Remove unused macro.
12301 (update_frame_menubar): Remove unused decl.
12302
1fe72bf8
PE
12303 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
12304
60d9e1db
PE
12305 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
12306 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
12307 (single_menu_item): Rename local to avoid shadowing.
12308
39261c26
PE
12309 * keyboard.c (make_lispy_event): Remove unused local var.
12310
018c5e19
PE
12311 * frame.c, frame.h (x_get_resource_string): Bring this back, but
12312 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
12313
63d2b86e
PE
12314 * bitmaps: Change bitmaps from unsigned char back to the X11
12315 compatible char. Avoid the old compiler warnings about
12316 out-of-range initializers by using, for example, '\xab' rather
12317 than 0xab.
12318
aefd87e1
PE
12319 * xgselect.c (xgselect_initialize): Check vs interface
12320 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
12321
bf501fb9
PE
12322 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
12323
e9829fdf
PE
12324 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
12325 to read-only memory.
12326
1086c095
PE
12327 * fns.c (vector): Remove; this old hack is no longer needed.
12328
2baccd04 12329 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 12330 Remove unused var.
dde42981 12331 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 12332
72391843 12333 * xrdb.c (x_load_resources): Omit unused local.
3565b346 12334
436c16df 12335 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 12336 (x_window): Rename locals to avoid shadowing.
dc5ddd85 12337 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 12338
92bb796d 12339 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 12340 (x_term_init): Remove local to avoid shadowing.
92bb796d 12341
764430a3 12342 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
12343
12344 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
12345 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
12346
d1dfb56c
EZ
123472011-04-16 Eli Zaretskii <eliz@gnu.org>
12348
c4354cb4
EZ
12349 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
12350
d1dfb56c
EZ
12351 Fix regex.c, syntax.c and friends for buffers > 2GB.
12352 * syntax.h (struct gl_state_s): Declare character position members
12353 EMACS_INT.
12354
12355 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
12356
04f2d78b
CB
12357 * textprop.c (verify_interval_modification, interval_of):
12358 Declare arguments EMACS_INT.
d1dfb56c
EZ
12359
12360 * intervals.c (adjust_intervals_for_insertion): Declare arguments
12361 EMACS_INT.
12362
12363 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
12364
12365 * indent.c (Fvertical_motion): Local variable it_start is now
12366 EMACS_INT.
12367
12368 * regex.c (re_match, re_match_2, re_match_2_internal)
12369 (bcmp_translate, regcomp, regexec, print_double_string)
12370 (group_in_compile_stack, re_search, re_search_2, regex_compile)
12371 (re_compile_pattern, re_exec): Declare arguments and local
12372 variables `size_t' and `ssize_t' and return values `regoff_t', as
12373 appropriate.
12374 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
12375 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
12376 <compile_stack_type>: `size' and `avail' are now `size_t'.
12377
12378 * regex.h <regoff_t>: Use ssize_t, not int.
12379 (re_search, re_search_2, re_match, re_match_2): Arguments that
12380 specify buffer/string position and length are now ssize_t and
12381 size_t. Return type is regoff_t.
12382
613052cd
BK
123832011-04-16 Ben Key <bkey76@gmail.com>
12384
12385 * nsfont.m: Fixed bugs in ns_get_family and
12386 ns_descriptor_to_entity that were caused by using free to
12387 deallocate memory blocks that were allocated by xmalloc (via
12388 xstrdup). This caused Emacs to crash when compiled with
12389 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
12390 --enable-checking=xmallocoverrun). xfree is now used to
12391 deallocate these memory blocks.
12392
4170f62f 123932011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 12394
71b41406
PE
12395 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
12396
9587a89d
PE
12397 emacs_write: Accept and return EMACS_INT for sizes.
12398 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
12399 et seq.
12400 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
12401 Accept and return EMACS_INT.
12402 (emacs_gnutls_write): Return the number of bytes written on
12403 partial writes.
12404 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
12405 (emacs_read, emacs_write): Remove check for negative size, as the
12406 Emacs source code has been audited now.
9587a89d
PE
12407 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
12408 (emacs_read, emacs_write): Use it.
273a5f82
PE
12409 * process.c (send_process): Adjust to the new signatures of
12410 emacs_write and emacs_gnutls_write. Do not attempt to store
12411 a byte offset into an 'int'; it might overflow.
9587a89d 12412 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 12413
3e047f51
PE
12414 * sound.c: Don't assume sizes fit in 'int'.
12415 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 12416 Return EMACS_INT, not int.
3e047f51 12417 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
12418 Accept EMACS_INT, not int.
12419 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
12420 record read return values.
12421
cc39a9db
BK
124222011-04-15 Ben Key <bkey76@gmail.com>
12423
c9d0ec6d
JB
12424 * keyboard.c (Qundefined): Don't declare static since it is used
12425 in nsfns.m.
12426 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
12427 static since they are used in nsfont.m.
cc39a9db 12428
6c60eb9f
SM
124292011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
12430
12431 * process.c (Qprocessp): Don't declare static.
12432 * lisp.h (Qprocessp): Declare again.
12433
7990b61a
JB
124342011-04-15 Juanma Barranquero <lekktu@gmail.com>
12435
12436 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
12437
5d4cb038
PE
124382011-04-14 Paul Eggert <eggert@cs.ucla.edu>
12439
8bd7b830 12440 Improve C-level modularity by making more things 'static'.
cd64ea1d 12441
e3b27b31
PE
12442 Don't publish debugger-only interfaces to other modules.
12443 * lisp.h (safe_debug_print, debug_output_compilation_hack):
12444 (verify_bytepos, count_markers): Move decls to the only modules
12445 that need them.
12446 * region-cache.h (pp_cache): Likewise.
12447 * window.h (check_all_windows): Likewise.
12448 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
12449
5d4cb038
PE
12450 * sysdep.c (croak): Now static, if
12451 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
12452 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
12453
12454 * alloc.c (refill_memory_reserve): Now static if
12455 !defined REL_ALLOC || defined SYSTEM_MALLOC.
12456 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 12457
e87b6180
PE
12458 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
12459 Define only if USE_LUCID.
12460
ac64929e
PE
12461 * xrdb.c (x_customization_string, x_rm_string): Now static.
12462
6f37259d
PE
12463 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
12464 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
12465
1683e3ab
PE
12466 * xdisp.c (draw_row_with_mouse_face): Now static.
12467 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
12468
de9c2632
PE
12469 * window.h (check_all_windows): Mark externally visible.
12470
2b96acb7
PE
12471 * window.c (window_deletion_count): Now static.
12472
12473 * undo.c: Make symbols static if they're not exported.
12474 (last_undo_buffer, last_boundary_position, pending_boundary):
12475 Now static.
12476
50436f33
PE
12477 * textprop.c (interval_insert_behind_hooks): Now static.
12478 (interval_insert_in_front_hooks): Likewise.
12479
64520e5c
PE
12480 * term.c: Make symbols static if they're not exported.
12481 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
12482 (max_frame_lines, tty_set_terminal_modes):
12483 (tty_reset_terminal_modes, tty_turn_off_highlight):
12484 (get_tty_terminal): Now static.
12485 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
12486 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 12487 HAVE_WINDOW_SYSTEM.
64520e5c
PE
12488 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
12489 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
12490
1fa53021
PE
12491 * sysdep.c: Make symbols static if they're not exported.
12492 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
12493 Now static.
12494 (sigprocmask_set, full_mask): Remove; unused.
12495 (wait_debugging): Mark as visible.
12496 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
12497 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
12498
d4b43b22
PE
12499 * syntax.c (syntax_temp): Define only if !__GNUC__.
12500
b7c513d0
PE
12501 * sound.c (current_sound_device, current_sound): Now static.
12502
989b29ad
PE
12503 * search.c (searchbufs, searchbuf_head): Now static.
12504
13a55a78
PE
12505 * scroll.c (scroll_cost): Remove; unused.
12506 * dispextern.h (scroll_cost): Remove decl.
12507
de68a1fc
PE
12508 * region-cache.h (pp_cache): Mark as externally visible.
12509
40ccffa6
PE
12510 * process.c: Make symbols static if they're not exported.
12511 (process_tick, update_tick, create_process, chan_process):
12512 (Vprocess_alist, proc_buffered_char, datagram_access):
12513 (fd_callback_data, send_process_frame, process_sent_to): Now static.
12514 (deactivate_process): Mark defn as static, as well as decl.
12515 * lisp.h (create_process): Remove decl.
12516 * process.h (chan_process, Vprocess_alist): Remove decls.
12517
ad64fc97
PE
12518 * print.c: Make symbols static if they're not exported.
12519 (print_depth, new_backquote_output, being_printed, print_buffer):
12520 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
12521 (print_interval, print_number_index, initial_stderr_stream):
12522 Now static.
12523 * lisp.h (Fprinc): Remove decl.
12524 (debug_output_compilation_hack): Mark as externally visible.
12525
adddb265
PE
12526 * sysdep.c (croak): Move decl from here to syssignal.h.
12527 * syssignal.h (croak): Put it here, so the API can be checked when
12528 'croak' is called from dissociate_if_controlling_tty.
12529
1717ede2
PE
12530 * minibuf.c: Make symbols static if they're not exported.
12531 (minibuf_save_list, choose_minibuf_frame): Now static.
12532 * lisp.h (choose_minibuf_frame): Remove decl.
12533
fa5fb2bc
PE
12534 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
12535
1e3890d1
PE
12536 * lread.c: Make symbols static if they're not exported.
12537 (read_objects, initial_obarray, oblookup_last_bucket_number):
12538 Now static.
12539 (make_symbol): Remove; unused.
12540 * lisp.h (initial_obarray, make_symbol): Remove decls.
12541
8a1414fa
PE
12542 * keyboard.c: Make symbols static if they're not exported.
12543 (single_kboard, recent_keys_index, total_keys, recent_keys):
12544 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
12545 (this_single_command_key_start, echoing, last_auto_save):
12546 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
12547 (command_loop, echo_now, keyboard_init_hook, help_char_p):
12548 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
12549 (Vlispy_mouse_stem, double_click_count):
12550 Now static.
12551 (force_auto_save_soon): Define only if SIGDANGER.
12552 (ignore_mouse_drag_p): Now static if
12553 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
12554 (print_help): Remove; unused.
12555 (stop_character, last_timer_event): Mark as externally visible.
12556 * keyboard.h (ignore_mouse_drag_p): Declare only if
12557 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
12558 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
12559 * lisp.h (echoing): Remove decl.
12560 (force_auto_save_soon): Declare only if SIGDANGER.
12561 * xdisp.c (redisplay_window): Simplify code, to make it more
12562 obvious that ignore_mouse_drag_p is not accessed if !defined
12563 USE_GTK && !defined HAVE_NS.
12564
93ea6e8f
PE
12565 * intervals.c: Make symbols static if they're not exported.
12566 (merge_properties_sticky, merge_interval_right, delete_interval):
12567 Now static.
12568 * intervals.h (merge_interval_right, delete_interval): Remove decls.
12569
77382fcc
PE
12570 * insdel.c: Make symbols static if they're not exported.
12571 However, leave prepare_to_modify_buffer alone. It's never
12572 called from outside this function, but that appears to be a bug.
12573 (combine_after_change_list, combine_after_change_buffer):
4889fc82 12574 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
12575 (adjust_after_replace_noundo): Remove; unused.
12576 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 12577 (signal_before_change): Remove decls.
77382fcc 12578
9306c32e
PE
12579 * indent.c (val_compute_motion, val_vmotion): Now static.
12580
cd44d2eb
PE
12581 * image.c: Make symbols static if they're not exported.
12582 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
12583 if USE_GTK.
12584 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
12585 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
12586
ad9a7a06
PE
12587 * fringe.c (standard_bitmaps): Now static.
12588 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
12589
81626931
PE
12590 * frame.c: Make symbols static if they're not exported.
12591 (x_report_frame_params, make_terminal_frame): Now static.
12592 (get_frame_param): Now static, unless HAVE_NS.
12593 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
12594 (x_get_resource_string): Remove; not used.
12595 * frame.h (make_terminal_frame, x_report_frame_params):
12596 (x_get_resource_string); Remove decls.
12597 (x_fullscreen_adjust): Declare only if WINDOWSNT.
12598 * lisp.h (get_frame_param): Declare only if HAVE_NS.
12599
239f9db9
PE
12600 * font.c, fontset.c: Make symbols static if they're not exported.
12601 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
12602 (FACE_SUITABLE_FOR_CHAR_P): Use it.
12603 * font.c (font_close_object): Now static.
12604 * font.h (font_close_object): Remove.
12605 * fontset.c (FONTSET_OBJLIST): Remove.
12606 (free_realized_fontset) #if-0 the body, which does nothing.
12607 (face_suitable_for_char_p): #if-0, as it's never called.
12608 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
12609 * xfaces.c (face_at_string_position):
12610 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
12611 since 0 is always ASCII.
12612
dfcf3579
PE
12613 * fns.c (weak_hash_tables): Now static.
12614
5045092b
PE
12615 * fileio.c: Make symbols static if they're not exported.
12616 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
12617 (Vwrite_region_annotation_buffers): Now static.
12618
57a96f5c
PE
12619 * eval.c: Make symbols static if they're not exported.
12620 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
12621 * lisp.h (backtrace_list): Remove decl.
12622
35f08c38
PE
12623 * emacs.c: Make symbols static if they're not exported.
12624 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
12625 (fatal_error_code, fatal_error_signal_hook, standard_args):
12626 Now static.
12627 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
12628 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
12629 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
12630 * lisp.h (fatal_error_signal_hook): Remove decl.
12631 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
12632
f44bd759
PE
12633 * editfns.c: Move a (normally-unused) function to its only use.
12634 * editfns.c, lisp.h (get_operating_system_release): Remove.
12635 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
12636 worth the hassle of breaking this out.
12637
b532497d
PE
12638 * xterm.c: Make symbols static if they're not exported.
12639 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
12640 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
12641 (x_destroy_window, x_delete_display):
12642 Now static.
12643 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
12644 (x_mouse_leave): Remove; unused.
12645 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
12646 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
12647 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
12648 Remove decls.
12649 (x_mouse_leave): Declare only if WINDOWSNT.
12650 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
12651 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
12652 USE_X_TOOLKIT.
12653
1675728f
PE
12654 * ftxfont.c: Make symbols static if they're not exported.
12655 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
12656 HAVE_FREETYPE.
12657 * font.h (ftxfont_driver): Likewise.
12658
e4cebfca
PE
12659 * xfns.c: Make symbols static if they're not exported.
12660 (x_last_font_name, x_display_info_for_name):
12661 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
12662 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
12663 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
12664 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
12665 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
12666 (last_show_tip_args): Now static.
12667 (xic_defaut_fontset, xic_create_fontsetname): Define only if
12668 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
12669 (x_screen_planes): Remove; unused.
12670 * dispextern.h (x_screen_planes): Remove decl.
12671
5bf46f05
PE
12672 * dispnew.c: Make symbols static if they're not exported.
12673 * dispextern.h (redraw_garbaged_frames, scrolling):
12674 (increment_row_positions): Remove.
12675 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
12676 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
12677 Now static.
12678 (redraw_garbaged_frames): Remove; unused.
12679
435f4c28
PE
12680 * xfaces.c: Make symbols static if they're not exported.
12681 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
12682 Remove decls.
12683 * xterm.h (defined_color): Remove decls.
12684 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
12685 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
12686 (menu_face_changed_default, defined_color, free_realized_face):
12687 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
12688 (ascii_face_of_lisp_face): Remove; unused.
12689
8524aef3
PE
12690 * xdisp.c: Make symbols static if they're not exported.
12691 * dispextern.h (scratch_glyph_row, window_box_edges):
12692 (glyph_to_pixel_coords, set_cursor_from_row):
12693 (get_next_display_element, set_iterator_to_next):
12694 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
12695 (show_mouse_face): Remove decls
12696 * frame.h (message_buf_print): Likewise.
12697 * lisp.h (pop_message, set_message, check_point_in_composition):
12698 Likewise.
12699 * xterm.h (set_vertical_scroll_bar): Likewise.
12700 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
12701 (message_buf_print, scratch_glyph_row, displayed_buffer):
12702 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
12703 (get_next_display_element, show_mouse_face, window_box_edges):
12704 (frame_to_window_pixel_xy, check_point_in_composition):
12705 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
12706 (glyph_to_pixel_coords): Remove; unused.
12707
16390cd2
PE
12708 * dired.c (file_name_completion): Now static.
12709
12710 * dbusbind.c (xd_in_read_queued_messages): Now static.
12711
a25f4dfa
PE
12712 * lisp.h (circular_list_error, FOREACH): Remove; unused.
12713 * data.c (circular_list_error): Remove.
12714
14a9c8df
PE
12715 * commands.h (last_point_position, last_point_position_buffer):
12716 (last_point_position_window): Remove decls.
12717 * keyboard.c: Make these variables static.
12718
04f2d78b
CB
12719 * coding.h (coding, code_convert_region, encode_coding_gap):
12720 Remove decls.
74ab6df5
PE
12721 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
12722 (iso_code_class, detect_coding, code_convert_region): Now static.
12723 (encode_coding_gap): Remove; unused.
12724
38dfbee1
PE
12725 * chartab.c (chartab_chars, chartab_bits): Now static.
12726
a2cb4e63
PE
12727 * charset.h (charset_iso_8859_1): Remove decl.
12728 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
12729 Now static.
12730
127198fd
PE
12731 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
12732 * ccl.c (Vccl_program_table): Now static.
12733 (check_ccl_update): Remove; unused.
12734
d85b608f
PE
12735 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
12736 * category.h: ... from here.
12737 * category.c (check_category_table, set_category_set): Now static.
12738
31cd66f3
PE
12739 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
12740 * lisp.h: Remove these decls.
12741
c358e587
PE
12742 * buffer.c (buffer_count): Remove unused var.
12743
e78aecca
PE
12744 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
12745 so that it's not optimized away.
12746 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
12747 * dispextern.h (bidi_dump_cached_states): Remove, since it's
12748 exported only to the debugger.
12749
e192d7d3 12750 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 12751 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 12752
92470028
PE
12753 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
12754 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
12755 was inaccessible from Lisp.
12756 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
12757 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
12758
244ed907
PE
12759 alloc.c: Import and export fewer symbols, and remove unused items.
12760 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
12761 is defined.
12762 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
12763 it's not optimized away by whole-program optimization.
12764 (message_enable_multibyte, free_misc): Remove.
12765 (catchlist, handlerlist, mark_backtrace):
12766 Declare only if BYTE_MARK_STACK.
12767 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
12768 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
12769 (message_enable_multibyte): Remove decl.
12770 (free_misc, interval_free_list, float_block, float_block_index):
12771 (n_float_blocks, float_free_list, cons_block, cons_block_index):
12772 (cons_free_list, last_marked_index):
12773 Now static.
12774 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
12775 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
12776 (mark_backtrace): Define only if BYTE_MARK_STACK.
12777 * xdisp.c (message_enable_multibyte): Now static.
12778
61c2b50e 12779 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
12780 This makes it easier for human readers (and static analyzers)
12781 to see whether these variables are used from other modules.
12782 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
12783 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
12784 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
12785 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
12786 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
12787 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
12788 * xmenu.c, xselect.c:
12789 Declare Q* vars static if they are not used in other modules.
12790 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
12791 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
12792 Remove decls of unexported vars.
12793 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
12794
95c82688
PE
12795 * lisp.h (DEFINE_FUNC): Make sname 'static'.
12796
16a97296
PE
12797 Make Emacs functions such as Fatom 'static' by default.
12798 This makes it easier for human readers (and static analyzers)
12799 to see whether these functions can be called from other modules.
12800 DEFUN now defines a static function. To make the function external
12801 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
12802 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
12803 (Finit_image_library):
16a97296
PE
12804 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
12805 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
12806 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
12807 Remove decls, since these functions are now static.
12808 (Funintern, Fget_internal_run_time): New decls, since these functions
12809 were already external.
95c82688 12810
16a97296
PE
12811 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
12812 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
12813 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
12814 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
12815 * keyboard.c, keymap.c, lread.c:
12816 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
12817 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
12818 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
12819 Mark functions with DEFUE instead of DEFUN,
12820 if they are used in other modules.
12821 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
12822 decls for now-static functions.
12823 * buffer.h (Fdelete_overlay): Remove decl.
12824 * callproc.c (Fgetenv_internal): Mark as internal.
12825 * composite.c (Fremove_list_of_text_properties): Remove decl.
12826 (Fcomposition_get_gstring): New forward static decl.
12827 * composite.h (Fcomposite_get_gstring): Remove decl.
12828 * dired.c (Ffile_attributes): New forward static decl.
12829 * doc.c (Fdocumntation_property): New forward static decl.
12830 * eval.c (Ffetch_bytecode): New forward static decl.
12831 (Funintern): Remove extern decl; now in .h file where it belongs.
12832 * fileio.c (Fmake_symbolic_link): New forward static decl.
12833 * image.c (Finit_image_library): New forward static decl.
12834 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
12835 * intervals.h (Fprevious_property_change):
12836 (Fremove_list_of_text_properties): Remove decls.
12837 * keyboard.c (Fthis_command_keys): Remove decl.
12838 (Fcommand_execute): New forward static decl.
12839 * keymap.c (Flookup_key): New forward static decl.
12840 (Fcopy_keymap): Now static.
12841 * keymap.h (Flookup_key): Remove decl.
12842 * process.c (Fget_process): New forward static decl.
12843 (Fprocess_datagram_address): Mark as internal.
12844 * syntax.c (Fsyntax_table_p): New forward static decl.
12845 (skip_chars): Remove duplicate decl.
12846 * textprop.c (Fprevious_property_change): New forward static decl.
12847 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
12848 Now internal.
12849 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
12850 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
12851
785bbd42
PE
12852 * editfns.c (Fformat): Remove unreachable code.
12853
8b913b57
AS
128542011-04-14 Andreas Schwab <schwab@linux-m68k.org>
12855
12856 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
12857 change. (Bug#8496)
12858
a6744a35
EZ
128592011-04-13 Eli Zaretskii <eliz@gnu.org>
12860
12861 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
12862 when at ZV. (Bug#8487)
12863
e7974947
AS
128642011-04-12 Andreas Schwab <schwab@linux-m68k.org>
12865
baad03f0
AS
12866 * charset.c (Fclear_charset_maps): Use xfree instead of free.
12867 (Bug#8437)
12868 * keyboard.c (parse_tool_bar_item): Likewise.
12869 * sound.c (sound_cleanup, alsa_close): Likewise.
12870 * termcap.c (tgetent): Likewise.
12871 * xfns.c (x_default_font_parameter): Likewise.
12872 * xsettings.c (read_and_apply_settings): Likewise.
12873
e7974947
AS
12874 * alloc.c (overrun_check_malloc, overrun_check_realloc)
12875 (overrun_check_free): Protoize.
12876
28272684
PE
128772011-04-12 Paul Eggert <eggert@cs.ucla.edu>
12878
12879 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
12880 since callers should never pass a negative size.
12881 Change the signature to match that of plain 'read' and 'write'; see
12882 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
12883 * lisp.h: Update prototypes of emacs_write and emacs_read.
12884
11997c76
EZ
128852011-04-11 Eli Zaretskii <eliz@gnu.org>
12886
12887 * xdisp.c (redisplay_window): Don't try to determine the character
12888 position of the scroll margin if the window start point w->startp
e896f03c 12889 is outside the buffer's accessible region. (Bug#8468)
11997c76 12890
8a2cbd72
EZ
128912011-04-10 Eli Zaretskii <eliz@gnu.org>
12892
12893 Fix write-region and its subroutines for buffers > 2GB.
12894 * fileio.c (a_write, e_write): Modify declaration of arguments and
12895 local variables to support buffers larger than 2GB.
12896 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
12897
12898 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
12899 argument, local variables, and return value.
12900
12901 * lisp.h: Update prototypes of emacs_write and emacs_read.
12902
12903 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
12904
4073e537 129052011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 12906
1ebfdcb6
PE
12907 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
12908
b2ded58d
PE
12909 Fix more problems found by GCC 4.6.0's static checks.
12910
7d66342c
PE
12911 * xdisp.c (vmessage): Use a better test for character truncation.
12912
bbf47d44
PE
12913 * charset.c (load_charset_map): <, not <=, for optimization,
12914 and to avoid potential problems with integer overflow.
9248994d 12915 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 12916 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 12917 * editfns.c (Fformat): Likewise.
1e69125e 12918 * syntax.c (skip_chars): Likewise.
3befa583 12919
e3019616
PE
12920 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
12921 This also lets GCC 4.6.0 generate slightly better loop code.
12922
becfa255
PE
12923 * callint.c (Fcall_interactively): <, not <=, for optimization.
12924 (Fcall_interactively): Count the number of arguments produced,
12925 not the number of arguments given. This is simpler and lets GCC
12926 4.6.0 generate slightly better code.
12927
dae0cd48
PE
12928 * ftfont.c: Distingish more carefully between FcChar8 and char.
12929 The previous code passed unsigned char * to a functions like
12930 strlen and xstrcasecmp that expect char *, which does not
12931 conform to the C standard.
12932 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
12933 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
12934 char * when the C standard requires it.
12935
76032d70
PE
12936 * keyboard.c (read_char): Remove unused var.
12937
eb3f1cc8
PE
12938 * eval.c: Port to Windows vsnprintf (Bug#8435).
12939 Include <limits.h>.
12940 (SIZE_MAX): Define if the headers do not.
12941 (verror): Do not give up if vsnprintf returns a negative count.
12942 Instead, grow the buffer. This ports to Windows vsnprintf, which
12943 does not conform to C99. Problem reported by Eli Zaretskii.
12944 Also, simplify the allocation scheme, by avoiding the need for
12945 calling realloc, and removing the ALLOCATED variable.
12946
70476b54
PE
12947 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
12948
12020a9e
PE
12949 Remove invocations of doprnt, as Emacs now uses vsnprintf.
12950 But keep the doprint source code for now, as we might revamp it
12951 and use it again (Bug#8435).
ea6c7ae6
PE
12952 * lisp.h (doprnt): Remove.
12953 * Makefile.in (base_obj): Remove doprnt.o.
12954 * deps.mk (doprnt.o): Remove.
12955
5fdb398c
PE
12956 error: Print 32- and 64-bit integers portably (Bug#8435).
12957 Without this change, on typical 64-bit hosts error ("...%d...", N)
12958 was used to print both 32- and 64-bit integers N, which relied on
12959 undefined behavior.
61bdb816 12960 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
12961 * lisp.h (error, verror): Mark as printf-like functions.
12962 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
12963 Report overflow in size calculations when allocating printf buffer.
12964 Do not truncate output string at its first null byte.
12965 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
12966 Truncate the output at a character boundary, since vsnprintf does not
12967 do that.
12968 * charset.c (check_iso_charset_parameter): Convert internal
12969 character to string before calling 'error', since %c now has the
12970 printf meaning.
12971 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
12972 overflow when computing char to be passed to 'error'. Do not
12973 pass Lisp_Object to 'error'; pass the integer instead.
12974 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
12975 formatted with plain %d.
12976
b189fa66
PE
12977 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
12978
bff87ef0
PE
12979 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
12980
7e2cac20
PE
12981 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
12982
ce4d90b5
PE
12983 * xterm.c (x_catch_errors): Remove duplicate declaration.
12984
266c9547
PE
12985 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
12986
79c49ad2
PE
12987 * xdisp.c, lisp.h (message_nolog): Remove; unused.
12988
368f4090
JM
129892011-04-10 Jim Meyering <meyering@redhat.com>
12990
12991 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
12992 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
12993 return ssize_t not "int", and use size_t as the buffer length.
12994 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
12995 * gnutls.h: Update declarations.
12996 * process.c (read_process_output): Use ssize_t, to match.
12997 (send_process): Likewise.
12998
a32d4040
CY
129992011-04-09 Chong Yidong <cyd@stupidchicken.com>
13000
13001 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
13002
8546720e 130032011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 13004
04f2d78b
CB
13005 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
13006 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 13007
8546720e
GM
13008 * xterm.c (handle_one_xevent):
13009 * xmenu.c (create_and_show_popup_menu):
13010 * xselect.c (x_decline_selection_request)
13011 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 13012
0a2f5c1a 130132011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
13014
13015 Fix some uses of `int' instead of EMACS_INT.
13016 * search.c (string_match_1, fast_string_match)
13017 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
13018 (scan_buffer, find_next_newline_no_quit)
13019 (find_before_next_newline, search_command, Freplace_match)
13020 (Fmatch_data): Make some `int' variables be EMACS_INT.
13021
13022 * xdisp.c (display_count_lines): 3rd argument and return value now
13023 EMACS_INT. All callers changed.
13024 (pint2hrstr): Last argument is now EMACS_INT.
13025
13026 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
13027 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
13028 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
13029 (decode_coding_utf_16, decode_coding_emacs_mule)
13030 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
13031 (decode_coding_ccl, decode_coding_charset)
13032 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
13033 (decode_coding_iso_2022, decode_coding_emacs_mule)
13034 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
13035 <char_offset, last_offset>: Declare EMACS_INT.
13036 (encode_coding_utf_8, encode_coding_utf_16)
13037 (encode_coding_emacs_mule, encode_invocation_designation)
13038 (encode_designation_at_bol, encode_coding_iso_2022)
13039 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
13040 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
13041 Declare EMACS_INT.
13042 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
13043 (encode_invocation_designation): Last argument P_NCHARS is now
13044 EMACS_INT.
13045 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
13046 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
13047
13048 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
13049 All users changed.
13050
13051 * ccl.c (Fccl_execute_on_string): Declare some variables
13052 EMACS_INT.
13053
8546720e 130542011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
13055
13056 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
13057
4e19a977
CS
130582011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
13059
13060 * process.c (Fformat_network_address): Doc fix.
13061
87302331
R
130622011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
13063
ee7683eb 13064 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 13065
cbb59342
CY
130662011-04-08 Chong Yidong <cyd@stupidchicken.com>
13067
13068 * keyboard.c (read_char): Call Lisp function help-form-show,
13069 instead of using internal_with_output_to_temp_buffer.
13070 (Qhelp_form_show): New var.
e0d38eeb 13071 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
13072
13073 * print.c (internal_with_output_to_temp_buffer): Function deleted.
13074
13075 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
13076
e67a13ab
CY
130772011-04-06 Chong Yidong <cyd@stupidchicken.com>
13078
04f2d78b
CB
13079 * process.c (Flist_processes): Remove to Lisp.
13080 (list_processes_1): Delete.
e67a13ab 13081
973f782d
EZ
130822011-04-06 Eli Zaretskii <eliz@gnu.org>
13083
7c106b1e
EZ
13084 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
13085
973f782d
EZ
13086 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
13087
41cf7d1a 130882011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 13089
ca23cc88
PE
13090 Fix more problems found by GCC 4.6.0's static checks.
13091
f390e2d5
PE
13092 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
13093
42eea0d0
PE
13094 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
13095
b69769da 13096 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 13097
f9541e84
PE
13098 * xdisp.c (vmessage): Mark as a printf-like function.
13099
13841b55
PE
13100 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
13101
c136c10f
PE
13102 * sound.c (sound_warning): Don't crash if arg contains a printf format.
13103
5e2d4a30
PE
13104 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
13105 printf-like functions.
13106 (tiff_load): Add casts to remove these marks before passing them
13107 to system-supplied API.
13108
583f48b9
PE
13109 * eval.c (Fsignal): Remove excess argument to 'fatal'.
13110
b25d760e
PE
13111 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
13112 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
13113 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
13114 directly, rather than having caller test rule sign. This avoids
13115 some unnecessary tests.
13116 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
13117 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
13118 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 13119
bc7b6697 13120 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 13121 (xfont_open): Avoid unnecessary tests.
bc7b6697 13122
27ccc379
PE
13123 * composite.c (composition_gstring_put_cache): Use unsigned integer.
13124
dcd5c89a
PE
13125 * composite.h, composite.c (composition_gstring_put_cache):
13126 Use EMACS_INT, not int, for length.
13127
b13a45c6
PE
13128 * composite.h (COMPOSITION_DECODE_REFS): New macro,
13129 breaking out part of COMPOSITION_DECODE_RULE.
13130 (COMPOSITION_DECODE_RULE): Use it.
13131 * composite.c (get_composition_id): Remove unused local vars,
13132 by using the new macro.
13133
1e792e4d
PE
13134 * textprop.c (set_text_properties_1): Change while to do-while,
13135 since the condition is always true at first.
13136
dc6c6455 13137 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
13138 (interval_deletion_adjustment): Return unsigned value.
13139 All uses changed.
dc6c6455 13140
aba7731a
PE
13141 * process.c (list_processes_1, create_pty, read_process_output):
13142 (exec_sentinel): Remove vars that were set but not used.
afd4052b 13143 (create_pty): Remove unnecessary "volatile"s.
bc57d757 13144 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 13145 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 13146 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 13147
fdfc4bf3
PE
13148 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
13149
fca8fe46 13150 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 13151 (update_syntax_table): Use unsigned instead of int.
fca8fe46 13152
06a0259a 13153 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 13154 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 13155 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 13156
e7b9e80f
PE
13157 * print.c (print_error_message): Avoid int overflow.
13158
56201685
PE
13159 * font.c (font_list_entities): Redo for clarity,
13160 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
13161
78834453 13162 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 13163 (font_score): Avoid potential overflow in diff calculation.
78834453 13164
0bc0b309 13165 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 13166 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 13167
e610eaca
PE
13168 * eval.c (funcall_lambda): Rename local to avoid shadowing.
13169
b895abce
PE
13170 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
13171 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
13172 can always succeed if overflow has undefined behavior.
13173
1f1d9321 13174 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 13175 (wordify): Omit three unnecessary tests.
1f1d9321 13176
c59478bc
PE
13177 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
13178 All callers changed. This avoids the need for an unused var.
13179
79b73827
PE
13180 * casefiddle.c (casify_region): Remove var that is set but not used.
13181
a4db5dfe
PE
13182 * dired.c (file_name_completion): Remove var that is set but not used.
13183
43aae36e
PE
13184 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
13185
2a47c44d 13186 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 13187 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 13188
a37c69bf
PE
13189 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
13190 Check for integer overflow on size calculations.
13191
328ab8e7
PE
13192 * buffer.c (Fprevious_overlay_change): Remove var that is set
13193 but not used.
13194
e5a2a5cb
PE
13195 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
13196 Remove vars that are set but not used.
8d84a6eb 13197 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 13198 (timer_check_2): Mark vars as initialized.
e5a2a5cb 13199
a60e5f68
PE
13200 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
13201
f661cb61 13202 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 13203 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 13204
f0397f5a
PE
13205 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
13206 that are set but not used.
13207
8664db06 13208 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 13209 if XCreateBitmapFromData fails (Bug#8410).
8664db06 13210
6abdaa4a
PE
13211 * xselect.c (x_get_local_selection, x_handle_property_notify):
13212 Remove vars that are set but not used.
13213
0ce7538d 13214 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 13215 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 13216
9ae848fc
PE
13217 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
13218 Remove var that is set but not used.
0b918413
PE
13219 (scroll_bar_windows_size): Now size_t, not int.
13220 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
13221 Check for overflow.
9ae848fc 13222
a5a62657
PE
13223 * xfaces.c (realize_named_face): Remove vars that are set but not used.
13224 (map_tty_color) [!defined MSDOS]: Likewise.
13225
5c5cdd39
PE
13226 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
13227
66ebf983
PE
13228 * coding.c: Remove vars that are set but not used.
13229 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
13230 All callers changed.
13231 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
13232 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
13233 (decode_coding_charset): Remove vars that are set but not used.
13234
1be4d761
PE
13235 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
13236 that is set but not used.
13237
47553fa8
PE
13238 * print.c (print_object): Remove var that is set but not used.
13239
1f7196bf 13240 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
13241 The gnulib version avoids calling malloc in the usual case,
13242 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
13243 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
13244 * filelock.c (current_lock_owner): Likewise.
13245 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
13246 * sysdep.c: Include allocator.h, careadlinkat.h.
13247 (emacs_no_realloc_allocator): New static constant.
13248 (emacs_readlink): New function.
fdb61804
PE
13249 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
13250 ../lib/careadlinkat.h.
d1fdcab7 13251
f84c17c7
SM
132522011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
13253
13254 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
13255 first non-nil return value).
13256
ef3862ad
JD
132572011-04-03 Jan Djärv <jan.h.d@swipnet.se>
13258
13259 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
13260 if not defined (Bug#8403).
13261
376a7006
JB
132622011-04-02 Juanma Barranquero <lekktu@gmail.com>
13263
13264 * xdisp.c (display_count_lines): Remove parameter `start',
13265 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
13266 (get_char_face_and_encoding): Remove parameter `multibyte_p',
13267 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
13268 (fill_stretch_glyph_string): Remove parameters `row' and `area',
13269 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
13270 and thereabouts. All callers changed.
13271 (get_per_char_metric): Remove parameter `f', unused since
13272 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
13273
6ca3801d
JM
132742011-04-02 Jim Meyering <meyering@redhat.com>
13275
13276 do not dereference NULL upon failed strdup
13277 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
13278 (ns_get_family): Likewise.
13279
d8e2b5ba
JB
132802011-04-02 Juanma Barranquero <lekktu@gmail.com>
13281
13282 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
13283
8c74fcbd
JD
132842011-04-02 Jan Djärv <jan.h.d@swipnet.se>
13285
13286 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
13287 later (Bug#8403).
13288
7200d79c
SM
132892011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
13290
03408648 13291 Add lexical binding.
7200d79c 13292
03408648
SM
13293 * window.c (Ftemp_output_buffer_show): New fun.
13294 (Fsave_window_excursion):
13295 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
13296
13297 * lread.c (lisp_file_lexically_bound_p): New function.
13298 (Fload): Bind Qlexical_binding.
13299 (readevalloop): Remove `evalfun' arg.
13300 Bind Qinternal_interpreter_environment.
13301 (Feval_buffer): Bind Qlexical_binding.
13302 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
13303 Mark as dynamic.
13304 (syms_of_lread): Declare `lexical-binding'.
13305
13306 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
13307
13308 * keyboard.c (eval_dyn): New fun.
13309 (menu_item_eval_property): Use it.
ca105506
SM
13310
13311 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 13312
03408648
SM
13313 * fns.c (concat, mapcar1): Accept byte-code-functions.
13314
13315 * eval.c (Fsetq): Handle lexical vars.
13316 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
13317 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
13318 (FletX, Flet): Obey lexical binding.
13319 (Fcommandp): Handle closures.
13320 (Feval): New `lexical' arg.
13321 (eval_sub): New function extracted from Feval. Use it almost
13322 everywhere where Feval was used. Look up vars in lexical env.
13323 Handle closures.
13324 (Ffunctionp): Move from subr.el.
13325 (Ffuncall): Handle closures.
13326 (apply_lambda): Remove `eval_flags'.
13327 (funcall_lambda): Handle closures and new byte-code-functions.
13328 (Fspecial_variable_p): New function.
13329 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
13330 but without exporting it to Lisp.
23aba0ea 13331
23aba0ea 13332 * doc.c (Fdocumentation, store_function_docstring):
03408648 13333 * data.c (Finteractive_form): Handle closures.
23aba0ea 13334
03408648
SM
13335 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
13336 interactive spec.
ba83908c 13337
04f2d78b
CB
13338 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
13339 New byte-codes.
03408648
SM
13340 (exec_byte_code): New function extracted from Fbyte_code to handle new
13341 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 13342
03408648 13343 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 13344
03408648 13345 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 13346
e2abce01
JB
133472011-03-31 Juanma Barranquero <lekktu@gmail.com>
13348
13349 * xdisp.c (redisplay_internal): Fix prototype.
13350
63696a73 133512011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 13352
63696a73 13353 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
13354 (try_scrolling): Use it when setting scroll_limit.
13355 Limit scrolling to 100 screen lines.
63696a73
EZ
13356 (redisplay_window): Even when falling back on "recentering",
13357 position point in the window according to scroll-conservatively,
13358 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
13359
13360 (try_scrolling): When point is above the window, allow searching
13361 as far as scroll_max, or one screenful, to compute vertical
13362 distance from PT to the scroll margin position. This prevents
13363 try_scrolling from unnecessarily failing when
13364 scroll-conservatively is set to a value slightly larger than the
13365 window height. Clean up the case of PT below the margin at bottom
13366 of window: scroll_max can no longer be INT_MAX. When aggressive
13367 scrolling is in use, don't let point enter the opposite scroll
13368 margin as result of the scroll.
13369 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
13370 threshold of 100 lines for never-recentering scrolling.
13371
e4cc2dfc
JB
133722011-03-31 Juanma Barranquero <lekktu@gmail.com>
13373
13374 * dispextern.h (move_it_by_lines):
13375 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
13376 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
13377 (message_log_check_duplicate): Remove parameters `prev_bol' and
13378 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
13379 (redisplay_internal): Remove parameter `preserve_echo_area',
13380 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
13381
13382 * indent.c (Fvertical_motion):
13383 * window.c (window_scroll_pixel_based, Frecenter):
13384 Don't pass `need_y_p' to `move_it_by_lines'.
13385
1c470562
SM
133862011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
13387
44f230aa
SM
13388 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
13389 steal a few bits to be more compact.
13390 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
13391 Remove unneeded casts.
13392
1c470562
SM
13393 * bytecode.c (Fbyte_code): CAR and CDR can GC.
13394
888adce9
ZK
133952011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
13396
13397 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
13398 binding" message (bug#7967).
13399
f838ed7b
PE
134002011-03-30 Paul Eggert <eggert@cs.ucla.edu>
13401
77861b95
PE
13402 Fix more problems found by GCC 4.6.0's static checks.
13403
de6dbc14
PE
13404 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
13405 Remove unused local var.
13406
f838ed7b
PE
13407 * editfns.c (Fmessage_box): Remove unused local var.
13408
792c7b2b
PE
13409 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
13410 (note_mode_line_or_margin_highlight, note_mouse_highlight):
13411 Omit unused local vars.
c499e557 13412 * window.c (shrink_windows): Omit unused local var.
b01a1c29 13413 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
13414 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
13415 Omit unused local var.
13416
ba0165e1
PE
13417 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
13418 Don't assume string length fits in int.
32ad8845 13419 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 13420 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 13421
3c59b4c9
PE
13422 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
13423 instead of alloca (Bug#8344).
13424
a3eed478 13425 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 13426 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 13427
eb4d412d
PE
13428 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
13429
1658b401
PE
13430 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
13431 concerns.
13432
13433 * term.c (produce_glyphless_glyph): Remove unnecessary test.
13434
13435 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 13436
9a2c6e05
PE
13437 * keyboard.c (syms_of_keyboard): Use the same style as later
13438 in this function when indexing through an array. This also
13439 works around GCC bug 48267.
13440
03d0a109
PE
13441 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
13442
44f730c8
PE
13443 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
13444
fe75f926
PE
13445 * chartab.c (sub_char_table_ref_and_range): Redo for slight
13446 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
13447
ffa8c828
PE
13448 * keyboard.c, keyboard.h (num_input_events): Now size_t.
13449 This avoids undefined behavior on integer overflow, and is a bit
13450 more convenient anyway since it is compared to a size_t variable.
13451
c5101a77
PE
13452 Variadic C functions now count arguments with size_t, not int.
13453 This avoids an unnecessary limitation on 64-bit machines, which
13454 caused (substring ...) to crash on large vectors (Bug#8344).
13455 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
13456 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 13457 All variadic functions and their callers changed accordingly.
c5101a77
PE
13458 (struct gcpro.nvars): Now size_t, not int. All uses changed.
13459 * data.c (arith_driver, float_arith_driver): Likewise.
13460 * editfns.c (general_insert_function): Likewise.
13461 * eval.c (struct backtrace.nargs, interactive_p)
13462 (internal_condition_case_n, run_hook_with_args, apply_lambda)
13463 (funcall_lambda, mark_backtrace): Likewise.
13464 * fns.c (concat): Likewise.
13465 * frame.c (x_set_frame_parameters): Likewise.
13466 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
13467 0 if not found, not -1. All callers changed.
13468
dd3f25f7
PE
13469 * alloc.c (garbage_collect): Don't assume stack size fits in int.
13470 (stack_copy_size): Now size_t, not int.
13471 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
13472
461c2ab9
JB
134732011-03-28 Juanma Barranquero <lekktu@gmail.com>
13474
13475 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
13476 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
13477 All callers changed.
13478
13479 * lisp.h (multibyte_char_to_unibyte):
13480 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
13481 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
13482 * character.h (CHAR_TO_BYTE8):
13483 * cmds.c (internal_self_insert):
13484 * editfns.c (general_insert_function):
13485 * keymap.c (push_key_description):
13486 * search.c (Freplace_match):
13487 * xdisp.c (message_dolog, set_message_1): All callers changed.
13488
f6d62986
SM
134892011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
13490
13491 * keyboard.c (safe_run_hook_funcall): New function.
13492 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
13493 don't set the hook to nil, but remove the offending function instead.
13494 (Qcommand_hook_internal): Remove, unused.
13495 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
13496 Vcommand_hook_internal.
13497
13498 * eval.c (enum run_hooks_condition): Remove.
13499 (funcall_nil, funcall_not): New functions.
13500 (run_hook_with_args): Call each function through a `funcall' argument.
13501 Remove `cond' argument, now redundant.
13502 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
13503 (Frun_hook_with_args_until_failure): Adjust accordingly.
13504 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
13505
1db5b1ad
JB
135062011-03-28 Juanma Barranquero <lekktu@gmail.com>
13507
13508 * dispextern.h (string_buffer_position): Remove declaration.
13509
13510 * print.c (strout): Remove parameter `multibyte', unused since
13511 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
13512
13513 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
13514 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
13515 All callers changed.
13516
13517 * w32.c (_wsa_errlist): Use braces for struct initializers.
13518
13519 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
13520 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
13521 All callers changed.
13522 (string_buffer_position): Likewise. Also, make static (it's never
13523 used outside xdisp.c).
13524 (cursor_row_p): Remove parameter `w', unused since
13525 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
13526 (decode_mode_spec): Remove parameter `precision', introduced during
13527 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
13528 All callers changed.
13529
5ffb62aa
JD
135302011-03-27 Jan Djärv <jan.h.d@swipnet.se>
13531
13532 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
13533
461c2ab9 135342011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
13535
13536 * nsterm.m (ns_menu_bar_is_hidden): New variable.
13537 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
13538 (ns_update_auto_hide_menu_bar): New functions.
13539 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
13540 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
13541 ns_constrain_all_frames.
13542 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
13543 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
13544
5c380ffb
JD
135452011-03-27 Jan Djärv <jan.h.d@swipnet.se>
13546
13547 * nsmenu.m (runDialogAt): Remove argument to timer_check.
13548
9af30bdf
GM
135492011-03-27 Glenn Morris <rgm@gnu.org>
13550
13551 * syssignal.h: Replace RETSIGTYPE with void.
13552 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
13553 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
13554 Replace SIGTYPE with void everywhere.
13555 * s/usg5-4-common.h (SIGTYPE): Remove definition.
13556 * s/template.h (SIGTYPE): Remove commented out definition.
13557
e2abce01
JB
135582011-03-26 Eli Zaretskii <eliz@gnu.org>
13559
13560 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
13561 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
13562
f868cd8a
JB
135632011-03-26 Juanma Barranquero <lekktu@gmail.com>
13564
59eb0929
JB
13565 * w32.c (read_unc_volume): Use parameter `henum', instead of
13566 global variable `wget_enum_handle'.
13567
13568 * keymap.c (describe_vector): Remove parameters `indices' and
13569 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
13570 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
13571
f868cd8a
JB
13572 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
13573
13574 * keyboard.c (timer_check): Remove parameter `do_it_now',
13575 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
13576 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
13577 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
13578
13579 * keyboard.c (read_char):
13580 * w32menu.c (w32_menu_display_help):
13581 * xmenu.c (show_help_event, menu_help_callback):
13582 Adjust calls to `show_help_echo'.
13583
13584 * gtkutil.c (xg_maybe_add_timer):
13585 * keyboard.c (readable_events):
13586 * process.c (wait_reading_process_output):
13587 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
13588
13589 * insdel.c (adjust_markers_gap_motion):
13590 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
13591 (gap_left, gap_right): Don't call it.
13592
2ecf6fdb
CY
135932011-03-25 Chong Yidong <cyd@stupidchicken.com>
13594
13595 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
13596 incurred during fontification.
13597
6b1f9ba4
JB
135982011-03-25 Juanma Barranquero <lekktu@gmail.com>
13599
13600 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
13601 (DEFVAR_PER_BUFFER): Don't pass it.
13602
13603 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
13604 (scrolling_window): Don't pass it.
13605
0f4a96b5
JB
136062011-03-25 Juanma Barranquero <lekktu@gmail.com>
13607
13608 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
13609
13610 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
13611 and `suffix'.
13612 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
13613 of variables specific to SELinux and computation of `encoded_absname'.
13614
13615 * image.c (XPutPixel): Remove unused variable `height'.
13616
13617 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
13618
13619 * unexw32.c (get_section_info): Remove unused variable `section'.
13620
13621 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
13622 (system_process_attributes): Remove unused variable `sess'.
13623 (sys_read): Remove unused variable `err'.
13624
13625 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
13626 (w32_wnd_proc): Remove unused variable `isdead'.
13627 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
13628 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
13629 (x_create_tip_frame): Remove unused variable `tem'.
13630
13631 * w32inevt.c (w32_console_read_socket):
13632 Remove unused variable `no_events'.
13633
13634 * w32term.c (x_draw_composite_glyph_string_foreground):
13635 Remove unused variable `width'.
13636
1149507c
JB
136372011-03-24 Juanma Barranquero <lekktu@gmail.com>
13638
13639 * w32term.c (x_set_glyph_string_clipping):
13640 Don't pass uninitialized region to CombineRgn.
13641
9c88f339
JB
136422011-03-23 Juanma Barranquero <lekktu@gmail.com>
13643
13644 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
13645 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
13646 (Fx_close_connection): Remove unused variable `i'.
13647
13648 * w32font.c (w32font_draw): Return number of glyphs.
13649 (w32font_open_internal): Remove unused variable `i'.
13650 (w32font_driver): Add missing initializer.
13651
13652 * w32menu.c (utf8to16): Remove unused variable `utf16'.
13653 (fill_in_menu): Remove unused variable `items_added'.
13654
13655 * w32term.c (last_mouse_press_frame): Remove static global variable.
13656 (w32_clip_to_row): Remove unused variable `f'.
13657 (x_delete_terminal): Remove unused variable `i'.
13658
13659 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
13660 (NOTHING): Remove unused static global variable.
13661 (uniscribe_check_otf): Remove unused variable `table'.
13662 (uniscribe_font_driver): Add missing initializers.
13663
dee091a3
JD
136642011-03-23 Julien Danjou <julien@danjou.info>
13665
13666 * term.c (Fsuspend_tty, Fresume_tty):
13667 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
13668 * window.c (temp_output_buffer_show):
13669 * insdel.c (signal_before_change):
13670 * frame.c (Fhandle_switch_frame):
13671 * fileio.c (Fdo_auto_save):
13672 * emacs.c (Fkill_emacs):
13673 * editfns.c (save_excursion_restore):
13674 * cmds.c (internal_self_insert):
13675 * callint.c (Fcall_interactively):
13676 * buffer.c (Fkill_all_local_variables):
13677 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
13678 Use Frun_hooks.
0f4a96b5 13679 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 13680 unconditionally since it does the check itself.
dee091a3 13681
2c520ab5 136822011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 13683
c9c49752
PE
13684 Fix more problems found by GCC 4.5.2's static checks.
13685
8abc3f12
PE
13686 * coding.c (encode_coding_raw_text): Avoid unnecessary test
13687 the first time through the loop, since we know p0 < p1 then.
13688 This also avoids a gcc -Wstrict-overflow warning.
13689
a2d26660
PE
13690 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
13691 leading to a memory leak, possible in functions like
13692 load_charset_map_from_file that can allocate an unbounded number
b12ef411 13693 of objects (Bug#8318).
a2d26660 13694
916c72e9
PE
13695 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
13696 that could (at least in theory) be that large.
13697
19ab8a18
PE
13698 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
13699 This is less likely to overflow, and avoids undefined behavior if
13700 overflow does occur. All callers changed. Use strtoul to scan
13701 for the unsigned long integer.
b7cbbd6f
PE
13702 (pint2hrstr): Simplify and tune code slightly.
13703 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 13704
f0641eff
PE
13705 * scroll.c (do_scrolling): Work around GCC bug 48228.
13706 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
13707
7f650bb9
PE
13708 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
13709 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
13710 (validate_x_resource_name): Simplify count usage.
13711 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 13712
37dd57d1
PE
13713 * fileio.c (Fcopy_file): Report error if fchown or fchmod
13714 fail (Bug#8306).
81e56e61 13715
699979fc 13716 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 13717
401bf9b4
PE
13718 * process.c (Fmake_network_process): Use socklen_t, not int,
13719 where POSIX says socklen_t is required in portable programs.
13720 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 13721 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
13722 (Fmake_network_process, server_accept_connection):
13723 (wait_reading_process_output, read_process_output):
13724 Likewise.
13725
b93aacde
PE
13726 * process.c: Rename or move locals to avoid shadowing.
13727 (list_processes_1, Fmake_network_process):
13728 (read_process_output_error_handler, exec_sentinel_error_handler):
13729 Rename or move locals.
4dc343ee 13730 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 13731 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 13732 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 13733 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 13734 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 13735
af8a867c 13736 Make tparam.h and terminfo.c consistent.
44f230aa
SM
13737 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
13738 Include tparam.h instead, since it declares them.
af8a867c
PE
13739 * cm.h (PC): Remove extern decl; tparam.h now does this.
13740 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
13741 * terminfo.c: Include tparam.h, to check interfaces.
13742 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
13743 (tparam): Adjust signature to match interface in tparam.h;
13744 this removes some undefined behavior. Check that outstring and len
13745 are zero, which they always are with Emacs.
13746 * tparam.h (PC, BC, UP): New extern decls.
13747
0248044d 13748 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 13749 (xftfont_open): Rename locals to avoid shadowing.
0248044d 13750
8ff096c1 13751 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
13752 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
13753 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 13754 (ftfont_list): Remove unused local.
49eaafba
PE
13755 (get_adstyle_property, ftfont_pattern_entity):
13756 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
13757 Rename locals to avoid shadowing.
8ff096c1 13758
e2be39f6
PE
13759 * xfont.c (xfont_list_family): Mark var as initialized.
13760
c9735e30
PE
13761 * xml.c (make_dom): Now static.
13762
8f5201ae
PE
13763 * composite.c (composition_compute_stop_pos): Rename local to
13764 avoid shadowing.
b246f932
PE
13765 (composition_reseat_it): Remove unused locals.
13766 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 13767 (composition_update_it): Mark var as initialized.
11b61122
PE
13768 (find_automatic_composition): Mark vars as initialized,
13769 with a FIXME (Bug#8290).
8f5201ae 13770
760fbc2c
PE
13771 character.h: Rename locals to avoid shadowing.
13772 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
13773 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
13774 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
13775 (BUF_DEC_POS): Be more systematic about renaming local temporaries
13776 to avoid shadowing.
13777
ff08eb85
PE
13778 * textprop.c (property_change_between_p): Remove; unused.
13779
fc7bf025
PE
13780 * intervals.c (interval_start_pos): Now static.
13781
235d7abc
PE
13782 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
13783
44f230aa
SM
13784 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
13785 Rename locals to avoid shadowing.
3e7d6594 13786
50060332
PE
13787 * sound.c (wav_play, au_play, Fplay_sound_internal):
13788 Fix pointer signedness.
d01f234b 13789 (alsa_choose_format): Remove unused local var.
c83b8872
PE
13790 (wav_play): Initialize a variable to 0, to prevent undefined
13791 behavior (Bug#8278).
50060332 13792
c4fc4e30
PE
13793 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
13794
918436ed
PE
13795 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
13796
c939f91b
PE
13797 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
13798 clobbering (Bug#8298).
b9c7f648
PE
13799 * sysdep.c (sys_subshell): Likewise.
13800 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 13801
6bd8c144
PE
13802 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
13803 This should get cleaned up, so that child_setup has the
13804 same signature on all platforms.
13805
7710357c 13806 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 13807 (relocate_fd): Rename locals to avoid shadowing.
7710357c 13808
c59da222
CY
138092011-03-22 Chong Yidong <cyd@stupidchicken.com>
13810
13811 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
13812 not to be necessary, and produces flickering.
13813
66b87493
GM
138142011-03-20 Glenn Morris <rgm@gnu.org>
13815
13816 * config.in: Remove file.
13817
45b6f6d5
JB
138182011-03-20 Juanma Barranquero <lekktu@gmail.com>
13819
13820 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
13821 are now in src/globals.h.
13822 (syms_of_minibuf): Remove spurious & from previous change.
13823
cd394be1 138242011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
13825
13826 * minibuf.c (completing-read-function): New variable.
13827 (completing-read-default): Rename from completing-read.
13828 (completing-read): Call completing-read-function.
13829
b14e3e21
CY
138302011-03-19 Juanma Barranquero <lekktu@gmail.com>
13831
13832 * xfaces.c (Fx_load_color_file):
13833 Read color file from absolute filename (bug#8250).
13834
f2b726e6
JB
138352011-03-19 Juanma Barranquero <lekktu@gmail.com>
13836
13837 * makefile.w32-in: Update dependencies.
13838
09f6ff02
EZ
138392011-03-17 Eli Zaretskii <eliz@gnu.org>
13840
13841 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
13842
29a6015a
PE
138432011-03-17 Paul Eggert <eggert@cs.ucla.edu>
13844
a3a6c54e
PE
13845 Fix more problems found by GCC 4.5.2's static checks.
13846
b766f867
PE
13847 * process.c (make_serial_process_unwind, send_process_trap):
13848 (sigchld_handler): Now static.
13849
be02381c
PE
13850 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
13851 That way, the code declares only the vars that it needs.
13852 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
13853 * s/cygwin.h (PTY_ITERATION): Likewise.
13854 * s/darwin.h (PTY_ITERATION): Likewise.
13855 * s/gnu-linux.h (PTY_ITERATION): Likewise.
13856
57048744
PE
13857 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
13858 * process.c (allocate_pty): Don't declare stb unless it's needed.
13859
7914961c 13860 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
13861 (CONSTANTLIM): Remove; unused.
13862 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
13863 Define only if needed.
7914961c 13864
b3967b18
PE
13865 * unexelf.c (unexec): Name an expression,
13866 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
13867 Use a different way to cause a compilation error if anyone uses
13868 n rather than nn, a way that does not involve shadowing.
73366a00 13869 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 13870
29a6015a
PE
13871 * deps.mk (unexalpha.o): Remove; unused.
13872
43cfc33e 13873 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 13874 * unexec.h: New file.
ce701a33
PE
13875 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
13876 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
13877 Depend on unexec.h.
13878 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
13879 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
13880 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 13881 Change as necessary to match prototype in unexec.h.
ce701a33 13882
01f44d5a
PE
13883 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
13884 shadowing.
4f63c6bb 13885 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 13886
a6670b0b
PE
13887 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
13888 Rename locals to avoid shadowing.
13889
cef2010d 13890 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 13891 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 13892
d4d7173a
PE
13893 * print.c (Fredirect_debugging_output): Fix pointer signedess.
13894
f08b802a
PE
13895 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
13896 warning when compiling print.c.
13897
3ddb0639
PE
13898 * font.c (font_unparse_fcname): Abort in an "impossible" situation
13899 instead of using an uninitialized var.
5ad03b97 13900 (font_sort_entities): Mark var as initialized.
3ddb0639 13901
170a2692
PE
13902 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
13903
e663c700
PE
13904 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
13905 pointers to constants.
89bc529a 13906 (font_parse_fcname): Remove unused vars.
7b81e2d0 13907 (font_delete_unmatched): Now static.
ea838e10 13908 (font_get_spec): Remove; unused.
13a547c6
PE
13909 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
13910 (font_update_drivers, Ffont_get_glyphs, font_add_log):
13911 Rename or move locals to avoid shadowing.
e663c700 13912
2a80c887 13913 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 13914 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 13915
1384fa33 13916 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 13917 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 13918
8b2c52e9
PE
13919 * alloc.c (mark_backtrace): Move decl from here ...
13920 * lisp.h: ... to here, so that it can be checked.
13921
475545b5 13922 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 13923 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
13924 (lisp_indirect_variable): Name an expression,
13925 to avoid gcc -Wbad-function-cast warning.
1faed8ae 13926 (Fdefvar): Rename locals to avoid shadowing.
475545b5 13927
b1349114 13928 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 13929 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 13930 Use const pointer when appropriate.
b1349114 13931
a2928364
PE
13932 * lisp.h (get_system_name, get_operating_system_release):
13933 Move decls here, to check interfaces.
13934 * process.c (get_operating_system_release): Move decl to lisp.h.
13935 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
13936 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
13937 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
13938 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
13939 (Fformat_time_string, Fencode_time, Finsert_char):
13940 (Ftranslate_region_internal, Fformat):
13941 Rename or remove local vars to avoid shadowing.
9710023e 13942 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 13943
a415e694
PE
13944 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
13945 avoid shadowing.
13946
8ef4622d
PE
13947 * lisp.h (eassert): Check that the argument compiles, even if
13948 ENABLE_CHECKING is not defined.
13949
946f9a5b
PE
13950 * data.c (Findirect_variable): Name an expression, to avoid
13951 gcc -Wbad-function-cast warning.
112396d6 13952 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 13953 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
13954 (Fmake_variable_buffer_local, Fmake_local_variable):
13955 Mark variables as initialized.
52746918 13956 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 13957
e5aab7e7 13958 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
13959 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
13960 Rename locals to avoid shadowing.
dff45157
PE
13961 (mark_stack): Move local variables into the #ifdef region where
13962 they're used.
7bc26fdb
PE
13963 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
13964 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
13965 needed otherwise.
13966 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
13967 (GC_STRING_CHARS): Remove; not used.
d40d4be1 13968 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 13969
e5aab7e7
PE
13970 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
13971 avoids undefined behavior in theory.
13972
4da60324
PE
13973 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
13974
88043301
PE
13975 Use functions, not macros, for up- and down-casing (Bug#8254).
13976 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
13977 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
13978 to use the following functions instead of these macros.
13979 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
13980 EMACS_INT, since callers assume the returned value fits in int.
13981 (upcase1): Likewise, for UPCASE_TABLE.
13982 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 13983 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 13984 the race-condition problem in the old DOWNCASE.
88043301 13985
19ed5445
PE
13986 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
13987 Rename locals to avoid shadowing.
13988 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
13989 (regex_compile, re_search_2, re_match_2_internal):
13990 Remove unused local vars.
952db0d7
PE
13991 (FREE_VAR): Rewrite so as not to use empty "else",
13992 which gcc can warn about.
da053e48 13993 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
13994 (RETALLOC_IF): Define only if needed.
13995 (WORDCHAR_P): Likewise. This one is never needed, but is used
13996 only in a comment talking about a compiler bug, so put inside
13997 the #if 0 of that comment.
13998 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
13999 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
14000 Remove; unused.
19ed5445 14001
1f3561e4 14002 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
14003 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
14004 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 14005
ded6f8f7
PE
14006 * search.c (simple_search): Remove unused var.
14007
dbd37a95
PE
14008 * dired.c (compile_pattern): Move decl from here ...
14009 * lisp.h: ... to here, so that it can be checked.
14010 (struct re_registers): New forward decl.
14011
7e47afad
PE
14012 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
14013
85f24f61
PE
14014 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
14015 All uses changed.
14016 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
14017 Rename locals to avoid shadowing.
5671df8f 14018 (Fvertical_motion): Mark locals as initialized.
85f24f61 14019
181aa2be 14020 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 14021 (casify_region): Mark local as initialized.
181aa2be 14022
930d429c
PE
14023 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
14024
7082eac6
PE
14025 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
14026 New macros, so that the caller can use some names other than
14027 gcpro1, gcpro2, etc.
14028 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
14029 of the new macros.
14030 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
14031 argument, for consistency with GCPRO2_VAR, etc: it is now the
14032 prefix of the variable, not the variable itself. All uses
14033 changed.
38b2c076
PE
14034 * dired.c (directory_files_internal, file_name_completion):
14035 Rename locals to avoid shadowing.
14036
15206ed9
PE
14037 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
14038 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
14039 dired.c's scmp function, had undefined behavior.
14040 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
14041 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
14042 * buffer.h: ... to here, because these macros use current_buffer,
14043 and the new implementation with inline functions needs to have
14044 current_buffer in scope now, rather than later when the macros
14045 are used.
14046 (downcase, upcase1): New static inline functions.
14047 (DOWNCASE, UPCASE1): Reimplement using these functions.
14048 This avoids undefined behavior in expressions like
14049 DOWNCASE (x) == DOWNCASE (y), which previously suffered
14050 from race conditions in accessing the global variables
14051 case_temp1 and case_temp2.
14052 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
14053 * lisp.h (case_temp1, case_temp2): Remove their decls.
14054 * character.h (ASCII_CHAR_P): Move from here ...
14055 * lisp.h: ... to here, so that the inline functions mentioned
14056 above can use them.
14057
4a6bea26
PE
14058 * dired.c (directory_files_internal_unwind): Now static.
14059
f14b7e14
PE
14060 * fileio.c (file_name_as_directory, directory_file_name):
14061 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
14062 Now static.
2893f146
PE
14063 (file_name_as_directory): Use const pointers when appropriate.
14064 (Fexpand_file_name): Likewise. In particular, newdir might
14065 point at constant storage, so make it a const pointer.
fd4ead52 14066 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
14067 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
14068 signedness issues.
f839df0c
PE
14069 (Fset_file_times, Finsert_file_contents, auto_save_error):
14070 Rename locals to avoid shadowing.
f14b7e14 14071
5716756e 14072 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
14073 (Ftry_completion, Fall_completions): Rename or remove locals
14074 to avoid shadowing.
5716756e 14075
b4c3046a
PE
14076 * marker.c (bytepos_to_charpos): Remove; unused.
14077
b45db522
PE
14078 * lisp.h (verify_bytepos, count_markers): New decls,
14079 so that gcc does not warn that these functions aren't declared.
14080
85876d07
PE
14081 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
14082 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 14083 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 14084 (copy_text): Remove unused local var.
85876d07 14085
03d78a21 14086 * filelock.c (within_one_second): Now static.
b3dd38ab 14087 (lock_file_1): Rename local to avoid shadowing.
03d78a21 14088
5df8f01b
PE
14089 * buffer.c (fix_overlays_before): Mark locals as initialized.
14090 (fix_start_end_in_overlays): Likewise. This function should be
14091 simplified by using pointers-to-pointers, but that's a different
14092 matter.
b1d876f1 14093 (switch_to_buffer_1): Now static.
8f54f30a
PE
14094 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
14095 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 14096
a70072c9 14097 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 14098 Fix pointer signedness issue.
edced198
PE
14099 (sys_subshell): Mark local as volatile if checking for lint,
14100 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 14101 (MAXPATHLEN): Define only if needed.
a70072c9 14102
a0977c44
PE
14103 * process.c (serial_open, serial_configure): Move decls from here ...
14104 * systty.h: ... to here, so that they can be checked.
14105
a884fdcc
PE
14106 * fns.c (get_random, seed_random): Move extern decls from here ...
14107 * lisp.h: ... to here, so that they can be checked.
14108
604efe86 14109 * sysdep.c (reset_io): Now static.
b8950c94 14110 (wait_for_termination_signal): Remove; unused.
604efe86 14111
38fc62d9
PE
14112 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
14113 (copy_keymap_item, append_key, push_text_char_description):
14114 Now static.
1004a21a 14115 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 14116 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
14117 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
14118 (describe_map_tree):
14119 Rename locals to avoid shadowing.
38fc62d9 14120
2f2650da
PE
14121 * keyboard.c: Declare functions static if they are not used elsewhere.
14122 (echo_char, echo_dash, cmd_error, top_level_2):
14123 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
14124 (read_char, kbd_buffer_get_event, make_lispy_position):
14125 (make_lispy_event, make_lispy_movement, apply_modifiers):
14126 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
14127 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
14128 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 14129 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 14130 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 14131
a053e86c 14132 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
14133 (mark_kboards): Move decl here ...
14134 * alloc.c (mark_kboards): ... from here.
a053e86c 14135
4752793e
PE
14136 * lisp.h (force_auto_save_soon): New decl.
14137
74f10ca7 14138 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
14139 (DEFINE_DUMMY_FUNCTION): New macro.
14140 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
14141 Use it.
c03cd23f
PE
14142 (main): Add casts to avoid warnings
14143 if GCC considers string literals to be constants.
74f10ca7 14144
022e70d4
PE
14145 * lisp.h (fatal_error_signal): Add decl, since it's exported.
14146
59d6fe83
PE
14147 * dbusbind.c: Pointer signedness fixes.
14148 (xd_signature, xd_append_arg, xd_initialize):
14149 (Fdbus_call_method, Fdbus_call_method_asynchronously):
14150 (Fdbus_method_return_internal, Fdbus_method_error_internal):
14151 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
14152 (Fdbus_register_signal): Use SSDATA when the context wants char *.
14153
78320123
PE
14154 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
14155 if GCC considers string literals to be constants.
49cebcca 14156 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 14157
35ac2a97
SM
141582011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
14159
fb103ca9
SM
14160 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
14161 (print_preprocess, print_object): New macro to fix last change.
14162
35ac2a97
SM
14163 * print.c (print_preprocess): Don't forget font objects.
14164
62973b41
JB
141652011-03-16 Juanma Barranquero <lekktu@gmail.com>
14166
14167 * emacs.c (USAGE3): Doc fixes.
14168
0e48bb22
AS
141692011-03-15 Andreas Schwab <schwab@linux-m68k.org>
14170
14171 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
14172 structure.
14173
7684e57b
JB
141742011-03-14 Juanma Barranquero <lekktu@gmail.com>
14175
14176 * lisp.h (VWindow_system, Qfile_name_history):
14177 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
14178 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
14179 (w32_system_caret_x, w32_system_caret_y): Declare extern.
14180
14181 * w32select.c: Don't #include "keyboard.h".
c96bbc66 14182 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
14183
14184 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
14185 * w32console.c (detect_input_pending, read_input_pending)
14186 (encode_terminal_code):
14187 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
14188 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
14189 (w32_system_caret_y, Qfile_name_history):
14190 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
14191 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
14192 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
14193 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
14194 * w32proc.c (Qlocal, report_file_error):
14195 * w32term.c (Vwindow_system, updating_frame):
14196 * w32uniscribe.c (initialized, uniscribe_font_driver):
14197 Remove unneeded extern declarations.
14198
2aa46d6c
CY
141992011-03-14 Chong Yidong <cyd@stupidchicken.com>
14200
c96bbc66 14201 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 14202
cffc6f3b
CY
142032011-03-13 Chong Yidong <cyd@stupidchicken.com>
14204
14205 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
14206 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
14207 These macros can no longer be used for assignment.
14208
44f230aa
SM
14209 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
14210 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
14211 (record_buffer_markers, fetch_buffer_markers): New functions for
14212 recording and fetching special buffer markers.
14213 (set_buffer_internal_1, set_buffer_temp): Use them.
14214
14215 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
14216
14217 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
14218
14219 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
14220 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
14221
14222 * xdisp.c (hscroll_window_tree):
14223 (reconsider_clip_changes): Use PT instead of BUF_PT.
14224
d251f04b
EZ
142252011-03-13 Eli Zaretskii <eliz@gnu.org>
14226
14227 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
14228 $(EMACS_ROOT)/lib/intprops.h.
14229
f0c77cd1
PE
142302011-03-13 Paul Eggert <eggert@cs.ucla.edu>
14231
3eca4629
PE
14232 Fix more problems found by GCC 4.5.2's static checks.
14233
7c86ee98
PE
14234 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
14235 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
14236 (xg_free_frame_widgets): Make it clear that a local variable is
14237 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
14238 (gdk_window_get_screen): Make it clear that this macro is needed
14239 only if USE_GTK_TOOLTIP.
1e5524e7
PE
14240 (int_gtk_range_get_value): New function, which avoids a diagnostic
14241 from gcc -Wbad-function-cast.
14242 (xg_set_toolkit_scroll_bar_thumb): Use it.
14243 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
14244 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
14245 (get_utf8_string, xg_get_file_with_chooser):
14246 Rename locals to avoid shadowing.
14247 (create_dialog): Move locals to avoid shadowing.
7c86ee98 14248
41729b81
PE
14249 * xgselect.c (xg_select): Remove unused var.
14250
f0c77cd1
PE
14251 * image.c (four_corners_best): Mark locals as initialized.
14252 (gif_load): Initialize transparent_p to zero (Bug#8238).
14253 Mark another local as initialized.
ec6cf4c6 14254 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 14255
ce0ad53d 14256 * image.c (clear_image_cache): Now static.
d5d5a617 14257 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 14258 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
14259 (x_edge_detection): Remove unnecessary cast that
14260 gcc -Wbad-function-cast diagnoses.
2037898d 14261 (gif_load): Fix pointer signedness.
6ae141d6
PE
14262 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
14263 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 14264
33383987 142652011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 14266
d32df629
PE
14267 Improve quality of tests for time stamp overflow.
14268 For example, without this patch (encode-time 0 0 0 1 1
14269 1152921504606846976) returns the obviously-bogus value (-948597
14270 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
14271 reports time overflow. See
14272 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
14273 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
14274 * editfns.c: Include limits.h and intprops.h.
14275 (TIME_T_MIN, TIME_T_MAX): New macros.
14276 (time_overflow): Move earlier, to before first use.
14277 (hi_time, lo_time): New functions, for an accurate test for
14278 out-of-range times.
14279 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
14280 (Fget_internal_run_time): Don't assume time_t fits in int.
14281 (make_time): Use list2 instead of Fcons twice.
14282 (Fdecode_time): More accurate test for out-of-range times.
14283 (check_tm_member): New function.
14284 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
14285 (lisp_time_argument): Don't rely on undefined left-shift and
14286 right-shift behavior when checking for time stamp overflow.
8be6f318 14287
fe31d94c
PE
14288 * editfns.c (time_overflow): New function, refactoring common code.
14289 (Fformat_time_string, Fdecode_time, Fencode_time):
14290 (Fcurrent_time_string): Use it.
14291
8be6f318
PE
14292 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
14293 * dired.c (make_time): Move to ...
14294 * editfns.c (make_time): ... here.
14295 * systime.h: Note the move.
14296
09d9db2c 142972011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 14298
126bc0dc
YM
14299 * fringe.c (update_window_fringes): Remove unused variables.
14300
c47cbdfd
YM
14301 * unexmacosx.c (copy_data_segment): Also copy __got section.
14302 (Bug#8223)
14303
7ac80be9
EZ
143042011-03-12 Eli Zaretskii <eliz@gnu.org>
14305
c96bbc66 14306 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
14307 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
14308 Constify `char *' arguments and their references according to
14309 prototypes in tparam.h.
14310
ecb0f94d 14311 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 14312
7ac80be9
EZ
14313 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
14314 Adapt all references accordingly.
14315
14316 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
14317
ef1fd07e
TT
143182011-03-11 Tom Tromey <tromey@redhat.com>
14319
14320 * buffer.c (syms_of_buffer): Remove obsolete comment.
14321
7ef4b50c
EZ
143222011-03-11 Eli Zaretskii <eliz@gnu.org>
14323
14324 * termhooks.h (encode_terminal_code): Declare prototype.
14325
14326 * msdos.c (encode_terminal_code): Don't declare prototype.
14327
14328 * term.c (encode_terminal_code): Now external again, used by
14329 w32console.c and msdos.c.
14330
44f230aa
SM
14331 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
14332 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 14333
4b1ec863 143342011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 14335
1714f52b 14336 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 14337
4b1ec863
PE
14338 * fringe.c (update_window_fringes): Mark locals as initialized
14339 (Bug#8227).
14340 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 14341
524c7aa6
PE
14342 * alloc.c (mark_fringe_data): Move decl from here ...
14343 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
14344 to check its interface.
14345 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
14346
a5c0af81 14347 * fontset.c (free_realized_fontset): Now static.
7519b8cd 14348 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 14349 (fontset_font): Mark local as initialized.
a9a06e0b 14350 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 14351
b4716021
PE
14352 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
14353
811e9bac 14354 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 14355 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
14356 (x_own_selection, Fx_disown_selection_internal): Rename locals
14357 to avoid shadowing.
14358 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 14359
7e3ab302
PE
14360 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
14361 so that the caller can use some name other than gcpro1.
14362 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
14363 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
14364 (Fx_backspace_delete_keys_p):
14365 Use them to avoid shadowing, and rename vars to avoid shadowing.
14366 (x_decode_color, x_set_name, x_window): Now static.
6b437900 14367 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 14368 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
14369 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
14370 Remove unused locals.
7e3ab302
PE
14371 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
14372 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
14373 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
14374 macros.
f78faa98 14375
e2b13473
PE
14376 * xterm.h (x_mouse_leave): New decl.
14377
77f23912
PE
14378 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
14379 Remove unused functions.
cdf4ba58
PE
14380 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
14381 (x_calc_absolute_position): Now static.
7411c686 14382 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 14383 Don't declare local "event" unless it's used.
ed7bf3a5
PE
14384 (x_iconify_frame, x_free_frame_resources): Don't declare locals
14385 unless they are used.
38d0b34a
PE
14386 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
14387 (x_fatal_error_signal): Remove; not used.
a6067996
PE
14388 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
14389 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
14390 (x_error_catcher, x_connection_closed, x_error_handler):
14391 (x_error_quitter, xembed_send_message, x_iconify_frame):
14392 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 14393 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 14394 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 14395
44f230aa
SM
14396 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
14397 Rename or move locals to avoid shadowing.
6b463e58 14398 (tty_defined_color, merge_face_heights): Now static.
5967d051 14399 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
14400 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
14401 does not deduce is never used uninitialized.
73719eba
PE
14402 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
14403 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 14404
426994c3 14405 * terminal.c (store_terminal_param): Now static.
5489860b 14406
032f1620 14407 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 14408 (set_frame_menubar): Remove unused local.
d4323972 14409 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
14410 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
14411 since they might point to immutable storage.
281585b0
PE
14412 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
14413 since it's unused otherwise.
032f1620 14414
367c19e5 14415 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 14416 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
14417 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
14418 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 14419 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
14420 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
14421 does not deduce are never used uninitialized.
70739cbe 14422
07b48fa9
PE
14423 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
14424
8868a238 14425 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
14426 * window.c (window_loop, size_window):
14427 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 14428
7e5cf297 14429 * window.c (display_buffer): Now static.
d6550a9f
PE
14430 (size_window): Mark variables that gcc -Wuninitialized
14431 does not deduce are never used uninitialized.
a586633d
PE
14432 * window.h (check_all_windows): New decl, to forestall
14433 gcc -Wmissing-prototypes diagnostic.
5b555da1 14434 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 14435
f6095868
PE
14436 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
14437 shadowing.
14438 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
14439 Include <limits.h>.
14440 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
14441 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
14442 (load_charset_map): Mark variables that gcc -Wuninitialized
14443 does not deduce are never used uninitialized.
53df7c11 14444 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 14445
f38b440c
PE
14446 * coding.c (coding_set_source, coding_set_destination):
14447 Use "else { /* comment */ }" rather than "else /* comment */;"
14448 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
14449 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
14450 a block, when the outer 'i' will do.
14451 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
14452 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
14453 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
14454 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
14455 (Fdecode_sjis_char, Fdefine_coding_system_internal):
14456 Rename locals to avoid shadowing.
14457 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
14458 * coding.c (emacs_mule_char, encode_invocation_designation):
14459 Now static, since they're not used elsewhere.
413bb2db 14460 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 14461 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
14462 (decode_coding_emacs_mule): Mark variables that gcc
14463 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
14464 (detect_coding_iso_2022): Initialize a local variable that might
14465 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 14466 this initialization is needed. (Bug#8211)
5f58e762
PE
14467 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
14468 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
14469 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
14470 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
14471 Remove unused macros.
f38b440c 14472
232b38b9 14473 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 14474 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 14475 * character.c (string_count_byte8): Likewise.
232b38b9 14476
fb90da1b
PE
14477 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
14478 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
14479
fb93dbc2
PE
14480 * chartab.c (copy_sub_char_table): Now static, since it's not used
14481 elsewhere.
5c156ace
PE
14482 (sub_char_table_ref_and_range, char_table_ref_and_range):
14483 Rename locals to avoid shadowing.
bbcd0949 14484 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 14485
7d3b3862 14486 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 14487 (BIDI_BOB): Remove unused macro.
7d3b3862 14488
6be7d3da
PE
14489 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
14490 deduce are never used uninitialized.
c2ed9c8b 14491 * term.c (encode_terminal_code): Likewise.
6be7d3da 14492
75f8807f 14493 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 14494
50938595
PE
14495 * tparam.h: New file.
14496 * term.c, tparam.h: Include it.
14497 * deps.mk (term.o, tparam.o): Depend on tparam.h.
14498 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
14499 Move these decls to tparam.h, and make them agree with what
14500 is actually in tparam.c. The previous trick of using incompatible
14501 decls in different modules does not conform to the C standard.
14502 All callers of tparam changed to use tparam's actual API.
14503 * tparam.c (tparam1, tparam, tgoto):
14504 Use const pointers where appropriate.
14505
fbceeba2
PE
14506 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
14507 * cm.h (struct cm): Likewise.
14508 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
14509 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
14510 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
14511 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
14512 (turn_on_face, init_tty): Likewise.
14513 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 14514
7f3f1250
PE
14515 * term.c (term_mouse_position): Rename local to avoid shadowing.
14516
e6ca6543
PE
14517 * alloc.c (mark_ttys): Move decl from here ...
14518 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
14519
c40f8d15
AS
145202011-03-11 Andreas Schwab <schwab@linux-m68k.org>
14521
14522 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
14523
cfe0661d
JB
145242011-03-09 Juanma Barranquero <lekktu@gmail.com>
14525
14526 * search.c (compile_pattern_1): Remove argument regp, unused since
14527 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
14528 (compile_pattern): Don't pass it.
14529
0afb4571
J
145302011-03-08 Jan Djärv <jan.h.d@swipnet.se>
14531
14532 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
14533 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
14534 for ! HAVE_GTK3.
14535 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
14536
14537 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
14538
14539 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
14540 gdk_window_get_screen, gdk_window_get_geometry,
14541 gdk_x11_window_lookup_for_display and GDK_KEY_g.
14542 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
14543 (xg_get_pixbuf_from_pixmap): New function.
14544 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
14545 to Pixmap, take frame as parameter, remove GdkColormap parameter.
14546 Call xg_get_pixbuf_from_pixmap instead of
14547 gdk_pixbuf_get_from_drawable.
14548 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
14549 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
14550 (xg_check_special_colors): Use GtkStyleContext and its functions
14551 for HAVE_GTK3.
14552 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
14553 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
14554 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
14555 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
14556 Call gtk_widget_get_preferred_size.
0afb4571
J
14557 (xg_frame_resized): gdk_window_get_geometry only takes 5
14558 parameters.
44f230aa
SM
14559 (xg_win_to_widget, xg_event_is_for_menubar):
14560 Call gdk_x11_window_lookup_for_display.
0afb4571
J
14561 (xg_set_widget_bg): New function.
14562 (delete_cb): New function.
895009e1 14563 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 14564 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
14565 (xg_set_background_color): Call xg_set_widget_bg.
14566 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
14567 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
14568 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
14569 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
14570 if ! HAVE_GTK3.
14571 (update_frame_tool_bar): Call gtk_widget_hide.
14572 (xg_initialize): Use GDK_KEY_g.
14573
14574 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
14575 if ! HAVE_GTK3
14576 (x_session_initialize): Call gdk_x11_set_sm_client_id.
14577
14578 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
14579 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
14580 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
14581
1c2cc4ef
JB
145822011-03-08 Juanma Barranquero <lekktu@gmail.com>
14583
14584 * w32xfns.c (select_palette): Check success of RealizePalette against
14585 GDI_ERROR, not zero.
14586
33383987 14587See ChangeLog.11 for earlier changes.
aac0c6e3
MR
14588
14589;; Local Variables:
14590;; coding: utf-8
aac0c6e3
MR
14591;; End:
14592
2f097256 14593 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
14594
14595 This file is part of GNU Emacs.
14596
14597 GNU Emacs is free software: you can redistribute it and/or modify
14598 it under the terms of the GNU General Public License as published by
14599 the Free Software Foundation, either version 3 of the License, or
14600 (at your option) any later version.
14601
14602 GNU Emacs is distributed in the hope that it will be useful,
14603 but WITHOUT ANY WARRANTY; without even the implied warranty of
14604 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14605 GNU General Public License for more details.
14606
14607 You should have received a copy of the GNU General Public License
14608 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.