* lisp.h (XVECTORLIKE_HEADER_SIZE): Remove. The only use is now expanded.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
eab3844f
PE
12011-04-25 Paul Eggert <eggert@cs.ucla.edu>
2
77b37c05
PE
3 * lisp.h: (XVECTOR_SIZE): Remove. All uses replaced with ASIZE.
4 (ASIZE): Now contains previous implementation of XVECTOR_SIZE
5 instead of invoking XVECTOR_SIZE.
c4cfe310 6 (XVECTORLIKE_HEADER_SIZE): Remove. The only use is now expanded.
77b37c05 7
b102ceb1
PE
8 * lisp.h: Say "vectorlike header" rather than "vector header.
9 (struct vectorlike_header): Rename from struct vector_header.
10 (XVECTORLIKE_HEADER_SIZE): Renamed from XVECTOR_HEADER_SIZE.
11 All uses changed.
12
eab3844f
PE
13 lisp.h: Fix a problem with aliasing and vector headers.
14 GCC 4.6.0 optimizes based on type-based alias analysis. For
15 example, if b is of type struct buffer * and v of type struct
16 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
17 != &v->size, and therefore "v->size = 1; b->size = 2; return
18 v->size;" must therefore return 1. This assumption is incorrect
19 for Emacs, since it type-puns struct Lisp_Vector * with many other
20 types. To fix this problem, this patch adds a new type struct
21 vector_header that documents the constraints on layout of vectors
22 and pseudovectors, and helps optimizing compilers not get fooled
23 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
24 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
25 * lisp.h (XVECTOR_SIZE): New convenience macro. All previous uses of
26 XVECTOR (foo)->size replaced to use this macro, to avoid the hassle
27 of writing XVECTOR (foo)->header.size.
28 (XVECTOR_HEADER_SIZE): New macro, for use in XSETPSEUDOVECTOR.
29 (XSETTYPED_PVECTYPE): New macro, specifying the name of the size
30 member.
31 (XSETPVECTYPE): Rewrite in terms of new macro.
32 (XSETPVECTYPESIZE): New macro, specifying both type and size.
33 This is a bit clearer, and further avoids the possibility of
34 undesirable aliasing.
35 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
36 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR
37 and XVECTOR_HEADER_SIZE.
38 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
39 since Lisp_Subr is a special case (no "next" field).
40 (ASIZE): Rewrite in terms of XVECTOR_SIZE.
41 (struct vector_header): New type.
42 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
43 object, to help avoid aliasing.
44 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
45 (SUBRP): Likewise, since Lisp_Subr is a special case.
b102ceb1 46
eab3844f
PE
47 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
48 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
49 (struct Lisp_Hash_Table): Combine first two members into a single
50 struct vector_header member. All uses of "size" and "next" members
51 changed to be "header.size" and "header.next".
52 * buffer.h (struct buffer): Likewise.
53 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
54 * frame.h (struct frame): Likewise.
55 * process.h (struct Lisp_Process): Likewise.
56 * termhooks.h (struct terminal): Likewise.
57 * window.c (struct save_window_data, struct saved_window): Likewise.
58 * window.h (struct window): Likewise.
59 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
60 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
61 * buffer.c (init_buffer_once): Likewise.
62 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
63 special case.
64 * process.c (Fformat_network_address): Use local var for size,
65 for brevity.
66
0df1eac5
PE
672011-04-24 Paul Eggert <eggert@cs.ucla.edu>
68
69 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
70
452f4150
PE
712011-04-21 Paul Eggert <eggert@cs.ucla.edu>
72
73 Make the Lisp reader and string-to-float more consistent.
74 * data.c (atof): Remove decl; no longer used or needed.
75 (digit_to_number): Move to lread.c.
76 (Fstring_to_number): Use new string_to_number function, to be
77 consistent with how the Lisp reader treats infinities and NaNs.
78 Do not assume that floating-point numbers represent EMACS_INT
79 without losing information; this is not true on most 64-bit hosts.
80 Avoid double-rounding errors, by insisting on integers when
81 parsing non-base-10 numbers, as the documentation specifies.
82 * lisp.h (string_to_number): New decl, replacing ...
83 (isfloat_string): Remove.
bc0a5c13 84 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 85 (read1): Do not accept +. and -. as integers; this
452f4150
PE
86 appears to have been a coding error. Similarly, do not accept
87 strings like +-1e0 as floating point numbers. Do not report
88 overflow for integer overflows unless the base is not 10 which
89 means we have no simple and reliable way to continue.
90 Break out the floating-point parsing into a new
91 function string_to_number, so that Fstring_to_number parses
92 floating point numbers consistently with the Lisp reader.
93 (digit_to_number): Moved here from data.c. Make it static inline.
94 (E_CHAR, EXP_INT): Remove, replacing with ...
95 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
96 (string_to_number): New function, replacing isfloat_string.
97 This function checks for valid syntax and produces the resulting
98 Lisp float number too. Rework it so that string-to-number
bc0a5c13 99 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
100 so that overflow for non-base-10 numbers is reported only when
101 there's no portable and simple way to convert to floating point.
452f4150 102
8b9587d7
PE
1032011-04-20 Paul Eggert <eggert@cs.ucla.edu>
104
67769ffc
PE
105 * textprop.c (set_text_properties_1): Rewrite for clarity,
106 and to avoid GCC warning about integer overflow.
107
c20db43f
PE
108 * intervals.h (struct interval): Use EMACS_INT for members
109 where EMACS_UINT might cause problems. See
110 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
111 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
112 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
113 All uses changed.
37aa2f85
PE
114 (offset_intervals): Tell GCC not to worry about length overflow
115 when negating a negative length.
c20db43f 116
2538aa2f
PE
117 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
118 (overrun_check_free): Likewise.
119
f2d3008d
PE
120 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
121 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
122 word size.
123
ec8df744
PE
124 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
125 (gnutls_make_error): Rename local to avoid shadowing.
126 (gnutls_emacs_global_deinit): ifdef out; not used.
127 (Fgnutls_boot): Use const for pointer to readonly storage.
128 Comment out unused local. Fix pointer signedness problems.
129
640ee02d
PE
130 * lread.c (openp): Don't stuff size_t into an 'int'.
131 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
132 about possible signed overflow.
133
6048fb2a
PE
134 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
135 (GDK_KEY_g): Don't define if already defined.
136 (xg_prepare_tooltip): Avoid pointer signedness problem.
137 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
138
fa3c87e1
PE
139 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
140 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
141
2172544b
PE
142 * xfns.c (Fx_window_property): Simplify a bit,
143 to make a bit faster and to avoid GCC 4.6.0 warning.
144 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
145
9b821a21
PE
146 * fns.c (internal_equal): Don't assume size_t fits in int.
147
3c616cfa
PE
148 * alloc.c (compact_small_strings): Tighten assertion a little.
149
c2982e87
PE
150 Replace pEd with more-general pI, and fix some printf arg casts.
151 * lisp.h (pI): New macro, generalizing old pEd macro to other
152 conversion specifiers. For example, use "...%"pI"d..." rather
153 than "...%"pEd"...".
154 (pEd): Remove. All uses replaced with similar uses of pI.
155 * src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h: Likewise.
156 * alloc.c (check_pure_size): Don't overflow by converting size to int.
157 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
158 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
159 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
160 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
161 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
162 64-bit hosts.
163 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
164 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
165 * print.c (safe_debug_print, print_object): Likewise.
166 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
167 to int.
6f04d126
PE
168 Use pI instead of if-then-else-abort. Use %p to avoid casts,
169 avoiding the 0 flag, which is not portable.
c2982e87
PE
170 * process.c (Fmake_network_process): Use pI to avoid cast.
171 * region-cache.c (pp_cache): Likewise.
172 * xdisp.c (decode_mode_spec): Likewise.
173 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
174 behavior on 64-bit hosts with printf arg.
6f04d126 175 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
176 (x_stop_queuing_selection_requests): Likewise.
177 (x_get_window_property): Don't truncate byte count to an 'int'
178 when tracing.
0b432f21 179
5e073ec7
PE
180 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
181 here, since it parses constructs like leading '-' and spaces,
182 which are not wanted; and it overflows with large numbers.
183 Instead, simply match F[0-9]+, which is what is wanted anyway.
184
36372bf9
PE
185 * alloc.c: Remove unportable assumptions about struct layout.
186 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
187 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
188 (allocate_vectorlike, make_pure_vector): Use the new macros,
189 plus offsetof, to remove unportable assumptions about struct layout.
190 These assumptions hold on all porting targets that I know of, but
191 they are not guaranteed, they're easy to remove, and removing them
192 makes further changes easier.
193
0b432f21
PE
194 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
195 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
196 (string_overrun_cookie): Now const. Use initializers that
197 don't formally overflow signed char, to avoid warnings.
000098c1
PE
198 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
199 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
200 (allocate_buffer): Don't assume sizeof (struct buffer) is a
201 multiple of sizeof (EMACS_INT); it need not be, if
202 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 203 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 204
04c56954
EZ
2052011-04-19 Eli Zaretskii <eliz@gnu.org>
206
207 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
208 gl_state.e_property when gl_state.object is Qt.
209
210 * insdel.c (make_gap_larger): Remove limitation of buffer size
211 to <= INT_MAX.
212
16a43933
CY
2132011-04-18 Chong Yidong <cyd@stupidchicken.com>
214
215 * xdisp.c (lookup_glyphless_char_display)
216 (produce_glyphless_glyph): Handle cons cell entry in
217 glyphless-char-display.
218 (Vglyphless_char_display): Document it.
219
220 * term.c (produce_glyphless_glyph): Handle cons cell entry in
221 glyphless-char-display.
222
4581706e
CY
2232011-04-17 Chong Yidong <cyd@stupidchicken.com>
224
225 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
226
227 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
228
229 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
230 definition for no-X builds.
231
4887c6e2 2322011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 233
fd35b6f9
PE
234 Static checks with GCC 4.6.0 and non-default toolkits.
235
5c1ccb01
PE
236 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
237
006c5daa
PE
238 * process.c (keyboard_bit_set): Define only if SIGIO.
239 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
240 (send_process): Repair possible setjmp clobbering.
241
efc736d3
PE
242 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
243
4e2fe2e6
PE
244 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
245
f97334a2
PE
246 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
247
4e75f29d
PE
248 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
249 Define only if needed.
250
90efadd1
PE
251 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
252 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 253 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 254
3c647824
PE
255 * dispextern.h (struct redisplay_interface): Rename param
256 to avoid shadowing.
e264f262 257 * termhooks.h (struct terminal): Likewise.
761383f4 258 * xterm.c (xembed_send_message): Likewise.
3c647824 259
b58c5c4a
PE
260 * insdel.c (make_gap_smaller): Define only if
261 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
262
cad59032
PE
263 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
264 it.
265
c339dc2e
PE
266 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
267 so that we aren't warned about unused symbols.
268
91a3e27b
PE
269 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
270
399c71d3 271 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 272
8ffc96f5
PE
273 * xfns.c (x_real_positions): Mark locals as initialized.
274
eef9bc79
PE
275 * xmenu.c (xmenu_show): Don't use uninitialized vars.
276
098db9dd
PE
277 * xterm.c: Fix problems found by static analysis with other toolkits.
278 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
279 (x_dispatch_event): Declare static if USE_GTK, and
280 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 281 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 282 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
098db9dd
PE
283 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only if
284 defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
285
eb18f6cc
PE
286 * xmenu.c (menu_help_callback): Pointer type fixes.
287 Use const pointers when pointing at readonly data. Avoid pointer
288 signedness clashes.
289 (FALSE): Remove unused macro.
290 (update_frame_menubar): Remove unused decl.
291
1fe72bf8
PE
292 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
293
60d9e1db
PE
294 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
295 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
296 (single_menu_item): Rename local to avoid shadowing.
297
39261c26
PE
298 * keyboard.c (make_lispy_event): Remove unused local var.
299
018c5e19
PE
300 * frame.c, frame.h (x_get_resource_string): Bring this back, but
301 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
302
63d2b86e
PE
303 * bitmaps: Change bitmaps from unsigned char back to the X11
304 compatible char. Avoid the old compiler warnings about
305 out-of-range initializers by using, for example, '\xab' rather
306 than 0xab.
307
aefd87e1
PE
308 * xgselect.c (xgselect_initialize): Check vs interface
309 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
310
bf501fb9
PE
311 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
312
e9829fdf
PE
313 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
314 to read-only memory.
315
1086c095
PE
316 * fns.c (vector): Remove; this old hack is no longer needed.
317
2baccd04 318 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 319 Remove unused var.
dde42981 320 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 321
72391843 322 * xrdb.c (x_load_resources): Omit unused local.
3565b346 323
436c16df 324 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 325 (x_window): Rename locals to avoid shadowing.
dc5ddd85 326 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 327
92bb796d 328 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 329 (x_term_init): Remove local to avoid shadowing.
92bb796d 330
764430a3 331 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
332
333 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
334 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
335
d1dfb56c
EZ
3362011-04-16 Eli Zaretskii <eliz@gnu.org>
337
c4354cb4
EZ
338 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
339
d1dfb56c
EZ
340 Fix regex.c, syntax.c and friends for buffers > 2GB.
341 * syntax.h (struct gl_state_s): Declare character position members
342 EMACS_INT.
343
344 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
345
346 * textprop.c (verify_interval_modification, interval_of): Declare
347 arguments EMACS_INT.
348
349 * intervals.c (adjust_intervals_for_insertion): Declare arguments
350 EMACS_INT.
351
352 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
353
354 * indent.c (Fvertical_motion): Local variable it_start is now
355 EMACS_INT.
356
357 * regex.c (re_match, re_match_2, re_match_2_internal)
358 (bcmp_translate, regcomp, regexec, print_double_string)
359 (group_in_compile_stack, re_search, re_search_2, regex_compile)
360 (re_compile_pattern, re_exec): Declare arguments and local
361 variables `size_t' and `ssize_t' and return values `regoff_t', as
362 appropriate.
363 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
364 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
365 <compile_stack_type>: `size' and `avail' are now `size_t'.
366
367 * regex.h <regoff_t>: Use ssize_t, not int.
368 (re_search, re_search_2, re_match, re_match_2): Arguments that
369 specify buffer/string position and length are now ssize_t and
370 size_t. Return type is regoff_t.
371
613052cd
BK
3722011-04-16 Ben Key <bkey76@gmail.com>
373
374 * nsfont.m: Fixed bugs in ns_get_family and
375 ns_descriptor_to_entity that were caused by using free to
376 deallocate memory blocks that were allocated by xmalloc (via
377 xstrdup). This caused Emacs to crash when compiled with
378 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
379 --enable-checking=xmallocoverrun). xfree is now used to
380 deallocate these memory blocks.
381
4170f62f 3822011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 383
71b41406
PE
384 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
385
9587a89d
PE
386 emacs_write: Accept and return EMACS_INT for sizes.
387 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
388 et seq.
389 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
390 Accept and return EMACS_INT.
391 (emacs_gnutls_write): Return the number of bytes written on
392 partial writes.
393 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
394 (emacs_read, emacs_write): Remove check for negative size, as the
395 Emacs source code has been audited now.
9587a89d
PE
396 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
397 (emacs_read, emacs_write): Use it.
273a5f82
PE
398 * process.c (send_process): Adjust to the new signatures of
399 emacs_write and emacs_gnutls_write. Do not attempt to store
400 a byte offset into an 'int'; it might overflow.
9587a89d 401 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 402
3e047f51
PE
403 * sound.c: Don't assume sizes fit in 'int'.
404 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 405 Return EMACS_INT, not int.
3e047f51 406 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
407 Accept EMACS_INT, not int.
408 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
409 record read return values.
410
cc39a9db
BK
4112011-04-15 Ben Key <bkey76@gmail.com>
412
c9d0ec6d
JB
413 * keyboard.c (Qundefined): Don't declare static since it is used
414 in nsfns.m.
415 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
416 static since they are used in nsfont.m.
cc39a9db 417
6c60eb9f
SM
4182011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
419
420 * process.c (Qprocessp): Don't declare static.
421 * lisp.h (Qprocessp): Declare again.
422
7990b61a
JB
4232011-04-15 Juanma Barranquero <lekktu@gmail.com>
424
425 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
426
5d4cb038
PE
4272011-04-14 Paul Eggert <eggert@cs.ucla.edu>
428
8bd7b830 429 Improve C-level modularity by making more things 'static'.
cd64ea1d 430
e3b27b31
PE
431 Don't publish debugger-only interfaces to other modules.
432 * lisp.h (safe_debug_print, debug_output_compilation_hack):
433 (verify_bytepos, count_markers): Move decls to the only modules
434 that need them.
435 * region-cache.h (pp_cache): Likewise.
436 * window.h (check_all_windows): Likewise.
437 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
438
5d4cb038
PE
439 * sysdep.c (croak): Now static, if
440 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
441 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
442
443 * alloc.c (refill_memory_reserve): Now static if
444 !defined REL_ALLOC || defined SYSTEM_MALLOC.
445 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 446
e87b6180
PE
447 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
448 Define only if USE_LUCID.
449
ac64929e
PE
450 * xrdb.c (x_customization_string, x_rm_string): Now static.
451
6f37259d
PE
452 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
453 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
454
1683e3ab
PE
455 * xdisp.c (draw_row_with_mouse_face): Now static.
456 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
457
de9c2632
PE
458 * window.h (check_all_windows): Mark externally visible.
459
2b96acb7
PE
460 * window.c (window_deletion_count): Now static.
461
462 * undo.c: Make symbols static if they're not exported.
463 (last_undo_buffer, last_boundary_position, pending_boundary):
464 Now static.
465
50436f33
PE
466 * textprop.c (interval_insert_behind_hooks): Now static.
467 (interval_insert_in_front_hooks): Likewise.
468
64520e5c
PE
469 * term.c: Make symbols static if they're not exported.
470 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
471 (max_frame_lines, tty_set_terminal_modes):
472 (tty_reset_terminal_modes, tty_turn_off_highlight):
473 (get_tty_terminal): Now static.
474 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
475 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 476 HAVE_WINDOW_SYSTEM.
64520e5c
PE
477 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
478 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
479
1fa53021
PE
480 * sysdep.c: Make symbols static if they're not exported.
481 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
482 Now static.
483 (sigprocmask_set, full_mask): Remove; unused.
484 (wait_debugging): Mark as visible.
485 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
486 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
487
d4b43b22
PE
488 * syntax.c (syntax_temp): Define only if !__GNUC__.
489
b7c513d0
PE
490 * sound.c (current_sound_device, current_sound): Now static.
491
989b29ad
PE
492 * search.c (searchbufs, searchbuf_head): Now static.
493
13a55a78
PE
494 * scroll.c (scroll_cost): Remove; unused.
495 * dispextern.h (scroll_cost): Remove decl.
496
de68a1fc
PE
497 * region-cache.h (pp_cache): Mark as externally visible.
498
40ccffa6
PE
499 * process.c: Make symbols static if they're not exported.
500 (process_tick, update_tick, create_process, chan_process):
501 (Vprocess_alist, proc_buffered_char, datagram_access):
502 (fd_callback_data, send_process_frame, process_sent_to): Now static.
503 (deactivate_process): Mark defn as static, as well as decl.
504 * lisp.h (create_process): Remove decl.
505 * process.h (chan_process, Vprocess_alist): Remove decls.
506
ad64fc97
PE
507 * print.c: Make symbols static if they're not exported.
508 (print_depth, new_backquote_output, being_printed, print_buffer):
509 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
510 (print_interval, print_number_index, initial_stderr_stream):
511 Now static.
512 * lisp.h (Fprinc): Remove decl.
513 (debug_output_compilation_hack): Mark as externally visible.
514
adddb265
PE
515 * sysdep.c (croak): Move decl from here to syssignal.h.
516 * syssignal.h (croak): Put it here, so the API can be checked when
517 'croak' is called from dissociate_if_controlling_tty.
518
1717ede2
PE
519 * minibuf.c: Make symbols static if they're not exported.
520 (minibuf_save_list, choose_minibuf_frame): Now static.
521 * lisp.h (choose_minibuf_frame): Remove decl.
522
fa5fb2bc
PE
523 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
524
1e3890d1
PE
525 * lread.c: Make symbols static if they're not exported.
526 (read_objects, initial_obarray, oblookup_last_bucket_number):
527 Now static.
528 (make_symbol): Remove; unused.
529 * lisp.h (initial_obarray, make_symbol): Remove decls.
530
8a1414fa
PE
531 * keyboard.c: Make symbols static if they're not exported.
532 (single_kboard, recent_keys_index, total_keys, recent_keys):
533 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
534 (this_single_command_key_start, echoing, last_auto_save):
535 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
536 (command_loop, echo_now, keyboard_init_hook, help_char_p):
537 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
538 (Vlispy_mouse_stem, double_click_count):
539 Now static.
540 (force_auto_save_soon): Define only if SIGDANGER.
541 (ignore_mouse_drag_p): Now static if
542 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
543 (print_help): Remove; unused.
544 (stop_character, last_timer_event): Mark as externally visible.
545 * keyboard.h (ignore_mouse_drag_p): Declare only if
546 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
547 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
548 * lisp.h (echoing): Remove decl.
549 (force_auto_save_soon): Declare only if SIGDANGER.
550 * xdisp.c (redisplay_window): Simplify code, to make it more
551 obvious that ignore_mouse_drag_p is not accessed if !defined
552 USE_GTK && !defined HAVE_NS.
553
93ea6e8f
PE
554 * intervals.c: Make symbols static if they're not exported.
555 (merge_properties_sticky, merge_interval_right, delete_interval):
556 Now static.
557 * intervals.h (merge_interval_right, delete_interval): Remove decls.
558
77382fcc
PE
559 * insdel.c: Make symbols static if they're not exported.
560 However, leave prepare_to_modify_buffer alone. It's never
561 called from outside this function, but that appears to be a bug.
562 (combine_after_change_list, combine_after_change_buffer):
4889fc82 563 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
564 (adjust_after_replace_noundo): Remove; unused.
565 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 566 (signal_before_change): Remove decls.
77382fcc 567
9306c32e
PE
568 * indent.c (val_compute_motion, val_vmotion): Now static.
569
cd44d2eb
PE
570 * image.c: Make symbols static if they're not exported.
571 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
572 if USE_GTK.
573 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
574 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
575
ad9a7a06
PE
576 * fringe.c (standard_bitmaps): Now static.
577 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
578
81626931
PE
579 * frame.c: Make symbols static if they're not exported.
580 (x_report_frame_params, make_terminal_frame): Now static.
581 (get_frame_param): Now static, unless HAVE_NS.
582 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
583 (x_get_resource_string): Remove; not used.
584 * frame.h (make_terminal_frame, x_report_frame_params):
585 (x_get_resource_string); Remove decls.
586 (x_fullscreen_adjust): Declare only if WINDOWSNT.
587 * lisp.h (get_frame_param): Declare only if HAVE_NS.
588
239f9db9
PE
589 * font.c, fontset.c: Make symbols static if they're not exported.
590 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
591 (FACE_SUITABLE_FOR_CHAR_P): Use it.
592 * font.c (font_close_object): Now static.
593 * font.h (font_close_object): Remove.
594 * fontset.c (FONTSET_OBJLIST): Remove.
595 (free_realized_fontset) #if-0 the body, which does nothing.
596 (face_suitable_for_char_p): #if-0, as it's never called.
597 * fontset.h (face_suitable_for_char_p): Remove decl.
598 * xfaces.c (face_at_string_position): Use
599 FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
600 since 0 is always ASCII.
601
dfcf3579
PE
602 * fns.c (weak_hash_tables): Now static.
603
5045092b
PE
604 * fileio.c: Make symbols static if they're not exported.
605 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
606 (Vwrite_region_annotation_buffers): Now static.
607
57a96f5c
PE
608 * eval.c: Make symbols static if they're not exported.
609 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
610 * lisp.h (backtrace_list): Remove decl.
611
35f08c38
PE
612 * emacs.c: Make symbols static if they're not exported.
613 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
614 (fatal_error_code, fatal_error_signal_hook, standard_args):
615 Now static.
616 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
617 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
618 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
619 * lisp.h (fatal_error_signal_hook): Remove decl.
620 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
621
f44bd759
PE
622 * editfns.c: Move a (normally-unused) function to its only use.
623 * editfns.c, lisp.h (get_operating_system_release): Remove.
624 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
625 worth the hassle of breaking this out.
626
b532497d
PE
627 * xterm.c: Make symbols static if they're not exported.
628 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
629 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
630 (x_destroy_window, x_delete_display):
631 Now static.
632 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
633 (x_mouse_leave): Remove; unused.
634 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
635 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
636 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
637 Remove decls.
638 (x_mouse_leave): Declare only if WINDOWSNT.
639 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
640 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
641 USE_X_TOOLKIT.
642
1675728f
PE
643 * ftxfont.c: Make symbols static if they're not exported.
644 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
645 HAVE_FREETYPE.
646 * font.h (ftxfont_driver): Likewise.
647
e4cebfca
PE
648 * xfns.c: Make symbols static if they're not exported.
649 (x_last_font_name, x_display_info_for_name):
650 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
651 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
652 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
653 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
654 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
655 (last_show_tip_args): Now static.
656 (xic_defaut_fontset, xic_create_fontsetname): Define only if
657 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
658 (x_screen_planes): Remove; unused.
659 * dispextern.h (x_screen_planes): Remove decl.
660
5bf46f05
PE
661 * dispnew.c: Make symbols static if they're not exported.
662 * dispextern.h (redraw_garbaged_frames, scrolling):
663 (increment_row_positions): Remove.
664 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
665 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
666 Now static.
667 (redraw_garbaged_frames): Remove; unused.
668
435f4c28
PE
669 * xfaces.c: Make symbols static if they're not exported.
670 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
671 Remove decls.
672 * xterm.h (defined_color): Remove decls.
673 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
674 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
675 (menu_face_changed_default, defined_color, free_realized_face):
676 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
677 (ascii_face_of_lisp_face): Remove; unused.
678
8524aef3
PE
679 * xdisp.c: Make symbols static if they're not exported.
680 * dispextern.h (scratch_glyph_row, window_box_edges):
681 (glyph_to_pixel_coords, set_cursor_from_row):
682 (get_next_display_element, set_iterator_to_next):
683 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
684 (show_mouse_face): Remove decls
685 * frame.h (message_buf_print): Likewise.
686 * lisp.h (pop_message, set_message, check_point_in_composition):
687 Likewise.
688 * xterm.h (set_vertical_scroll_bar): Likewise.
689 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
690 (message_buf_print, scratch_glyph_row, displayed_buffer):
691 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
692 (get_next_display_element, show_mouse_face, window_box_edges):
693 (frame_to_window_pixel_xy, check_point_in_composition):
694 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
695 (glyph_to_pixel_coords): Remove; unused.
696
16390cd2
PE
697 * dired.c (file_name_completion): Now static.
698
699 * dbusbind.c (xd_in_read_queued_messages): Now static.
700
a25f4dfa
PE
701 * lisp.h (circular_list_error, FOREACH): Remove; unused.
702 * data.c (circular_list_error): Remove.
703
14a9c8df
PE
704 * commands.h (last_point_position, last_point_position_buffer):
705 (last_point_position_window): Remove decls.
706 * keyboard.c: Make these variables static.
707
74ab6df5
PE
708 * coding.h (coding, code_convert_region, encode_coding_gap): Remove
709 decls.
710 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
711 (iso_code_class, detect_coding, code_convert_region): Now static.
712 (encode_coding_gap): Remove; unused.
713
38dfbee1
PE
714 * chartab.c (chartab_chars, chartab_bits): Now static.
715
a2cb4e63
PE
716 * charset.h (charset_iso_8859_1): Remove decl.
717 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
718 Now static.
719
127198fd
PE
720 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
721 * ccl.c (Vccl_program_table): Now static.
722 (check_ccl_update): Remove; unused.
723
d85b608f
PE
724 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
725 * category.h: ... from here.
726 * category.c (check_category_table, set_category_set): Now static.
727
31cd66f3
PE
728 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
729 * lisp.h: Remove these decls.
730
c358e587
PE
731 * buffer.c (buffer_count): Remove unused var.
732
e78aecca
PE
733 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
734 so that it's not optimized away.
735 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
736 * dispextern.h (bidi_dump_cached_states): Remove, since it's
737 exported only to the debugger.
738
e192d7d3
PE
739 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
740 * atimer.h (run_all_atimers): Removed; not exported.
741
92470028
PE
742 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
743 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
744 was inaccessible from Lisp.
745 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
746 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
747
244ed907
PE
748 alloc.c: Import and export fewer symbols, and remove unused items.
749 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
750 is defined.
751 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
752 it's not optimized away by whole-program optimization.
753 (message_enable_multibyte, free_misc): Remove.
754 (catchlist, handlerlist, mark_backtrace):
755 Declare only if BYTE_MARK_STACK.
756 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
757 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
758 (message_enable_multibyte): Remove decl.
759 (free_misc, interval_free_list, float_block, float_block_index):
760 (n_float_blocks, float_free_list, cons_block, cons_block_index):
761 (cons_free_list, last_marked_index):
762 Now static.
763 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
764 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
765 (mark_backtrace): Define only if BYTE_MARK_STACK.
766 * xdisp.c (message_enable_multibyte): Now static.
767
61c2b50e 768 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
769 This makes it easier for human readers (and static analyzers)
770 to see whether these variables are used from other modules.
771 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
772 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
773 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
774 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
775 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
776 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
777 * xmenu.c, xselect.c:
778 Declare Q* vars static if they are not used in other modules.
779 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
780 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
781 Remove decls of unexported vars.
782 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
783
95c82688
PE
784 * lisp.h (DEFINE_FUNC): Make sname 'static'.
785
16a97296
PE
786 Make Emacs functions such as Fatom 'static' by default.
787 This makes it easier for human readers (and static analyzers)
788 to see whether these functions can be called from other modules.
789 DEFUN now defines a static function. To make the function external
790 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
791 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
792 (Finit_image_library):
16a97296
PE
793 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
794 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
795 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
796 Remove decls, since these functions are now static.
797 (Funintern, Fget_internal_run_time): New decls, since these functions
798 were already external.
95c82688 799
16a97296
PE
800 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
801 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
802 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
803 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
804 * keyboard.c, keymap.c, lread.c:
805 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
806 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
807 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
808 Mark functions with DEFUE instead of DEFUN,
809 if they are used in other modules.
810 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
811 decls for now-static functions.
812 * buffer.h (Fdelete_overlay): Remove decl.
813 * callproc.c (Fgetenv_internal): Mark as internal.
814 * composite.c (Fremove_list_of_text_properties): Remove decl.
815 (Fcomposition_get_gstring): New forward static decl.
816 * composite.h (Fcomposite_get_gstring): Remove decl.
817 * dired.c (Ffile_attributes): New forward static decl.
818 * doc.c (Fdocumntation_property): New forward static decl.
819 * eval.c (Ffetch_bytecode): New forward static decl.
820 (Funintern): Remove extern decl; now in .h file where it belongs.
821 * fileio.c (Fmake_symbolic_link): New forward static decl.
822 * image.c (Finit_image_library): New forward static decl.
823 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
824 * intervals.h (Fprevious_property_change):
825 (Fremove_list_of_text_properties): Remove decls.
826 * keyboard.c (Fthis_command_keys): Remove decl.
827 (Fcommand_execute): New forward static decl.
828 * keymap.c (Flookup_key): New forward static decl.
829 (Fcopy_keymap): Now static.
830 * keymap.h (Flookup_key): Remove decl.
831 * process.c (Fget_process): New forward static decl.
832 (Fprocess_datagram_address): Mark as internal.
833 * syntax.c (Fsyntax_table_p): New forward static decl.
834 (skip_chars): Remove duplicate decl.
835 * textprop.c (Fprevious_property_change): New forward static decl.
836 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
837 Now internal.
838 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
839 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
840
785bbd42
PE
841 * editfns.c (Fformat): Remove unreachable code.
842
8b913b57
AS
8432011-04-14 Andreas Schwab <schwab@linux-m68k.org>
844
845 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
846 change. (Bug#8496)
847
a6744a35
EZ
8482011-04-13 Eli Zaretskii <eliz@gnu.org>
849
850 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
851 when at ZV. (Bug#8487)
852
e7974947
AS
8532011-04-12 Andreas Schwab <schwab@linux-m68k.org>
854
baad03f0
AS
855 * charset.c (Fclear_charset_maps): Use xfree instead of free.
856 (Bug#8437)
857 * keyboard.c (parse_tool_bar_item): Likewise.
858 * sound.c (sound_cleanup, alsa_close): Likewise.
859 * termcap.c (tgetent): Likewise.
860 * xfns.c (x_default_font_parameter): Likewise.
861 * xsettings.c (read_and_apply_settings): Likewise.
862
e7974947
AS
863 * alloc.c (overrun_check_malloc, overrun_check_realloc)
864 (overrun_check_free): Protoize.
865
28272684
PE
8662011-04-12 Paul Eggert <eggert@cs.ucla.edu>
867
868 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
869 since callers should never pass a negative size.
870 Change the signature to match that of plain 'read' and 'write'; see
871 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
872 * lisp.h: Update prototypes of emacs_write and emacs_read.
873
11997c76
EZ
8742011-04-11 Eli Zaretskii <eliz@gnu.org>
875
876 * xdisp.c (redisplay_window): Don't try to determine the character
877 position of the scroll margin if the window start point w->startp
e896f03c 878 is outside the buffer's accessible region. (Bug#8468)
11997c76 879
8a2cbd72
EZ
8802011-04-10 Eli Zaretskii <eliz@gnu.org>
881
882 Fix write-region and its subroutines for buffers > 2GB.
883 * fileio.c (a_write, e_write): Modify declaration of arguments and
884 local variables to support buffers larger than 2GB.
885 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
886
887 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
888 argument, local variables, and return value.
889
890 * lisp.h: Update prototypes of emacs_write and emacs_read.
891
892 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
893
4073e537 8942011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 895
1ebfdcb6
PE
896 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
897
b2ded58d
PE
898 Fix more problems found by GCC 4.6.0's static checks.
899
7d66342c
PE
900 * xdisp.c (vmessage): Use a better test for character truncation.
901
bbf47d44
PE
902 * charset.c (load_charset_map): <, not <=, for optimization,
903 and to avoid potential problems with integer overflow.
9248994d 904 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 905 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 906 * editfns.c (Fformat): Likewise.
1e69125e 907 * syntax.c (skip_chars): Likewise.
3befa583 908
e3019616
PE
909 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
910 This also lets GCC 4.6.0 generate slightly better loop code.
911
becfa255
PE
912 * callint.c (Fcall_interactively): <, not <=, for optimization.
913 (Fcall_interactively): Count the number of arguments produced,
914 not the number of arguments given. This is simpler and lets GCC
915 4.6.0 generate slightly better code.
916
dae0cd48
PE
917 * ftfont.c: Distingish more carefully between FcChar8 and char.
918 The previous code passed unsigned char * to a functions like
919 strlen and xstrcasecmp that expect char *, which does not
920 conform to the C standard.
921 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
922 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
923 char * when the C standard requires it.
924
76032d70
PE
925 * keyboard.c (read_char): Remove unused var.
926
eb3f1cc8
PE
927 * eval.c: Port to Windows vsnprintf (Bug#8435).
928 Include <limits.h>.
929 (SIZE_MAX): Define if the headers do not.
930 (verror): Do not give up if vsnprintf returns a negative count.
931 Instead, grow the buffer. This ports to Windows vsnprintf, which
932 does not conform to C99. Problem reported by Eli Zaretskii.
933 Also, simplify the allocation scheme, by avoiding the need for
934 calling realloc, and removing the ALLOCATED variable.
935
70476b54
PE
936 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
937
12020a9e
PE
938 Remove invocations of doprnt, as Emacs now uses vsnprintf.
939 But keep the doprint source code for now, as we might revamp it
940 and use it again (Bug#8435).
ea6c7ae6
PE
941 * lisp.h (doprnt): Remove.
942 * Makefile.in (base_obj): Remove doprnt.o.
943 * deps.mk (doprnt.o): Remove.
944
5fdb398c
PE
945 error: Print 32- and 64-bit integers portably (Bug#8435).
946 Without this change, on typical 64-bit hosts error ("...%d...", N)
947 was used to print both 32- and 64-bit integers N, which relied on
948 undefined behavior.
949 * lisp.h, src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h (pEd):
950 New macro.
951 * lisp.h (error, verror): Mark as printf-like functions.
952 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
953 Report overflow in size calculations when allocating printf buffer.
954 Do not truncate output string at its first null byte.
955 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
956 Truncate the output at a character boundary, since vsnprintf does not
957 do that.
958 * charset.c (check_iso_charset_parameter): Convert internal
959 character to string before calling 'error', since %c now has the
960 printf meaning.
961 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
962 overflow when computing char to be passed to 'error'. Do not
963 pass Lisp_Object to 'error'; pass the integer instead.
964 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
965 formatted with plain %d.
966
b189fa66
PE
967 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
968
bff87ef0
PE
969 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
970
7e2cac20
PE
971 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
972
ce4d90b5
PE
973 * xterm.c (x_catch_errors): Remove duplicate declaration.
974
266c9547
PE
975 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
976
79c49ad2
PE
977 * xdisp.c, lisp.h (message_nolog): Remove; unused.
978
368f4090
JM
9792011-04-10 Jim Meyering <meyering@redhat.com>
980
981 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
982 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
983 return ssize_t not "int", and use size_t as the buffer length.
984 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
985 * gnutls.h: Update declarations.
986 * process.c (read_process_output): Use ssize_t, to match.
987 (send_process): Likewise.
988
a32d4040
CY
9892011-04-09 Chong Yidong <cyd@stupidchicken.com>
990
991 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
992
8546720e 9932011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 994
8546720e
GM
995 * ftfont.c (get_adstyle_property, ftfont_pattern_entity): Use
996 unsigned char, to match FcChar8 type definition.
aac0c6e3 997
8546720e
GM
998 * xterm.c (handle_one_xevent):
999 * xmenu.c (create_and_show_popup_menu):
1000 * xselect.c (x_decline_selection_request)
1001 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 1002
0a2f5c1a 10032011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
1004
1005 Fix some uses of `int' instead of EMACS_INT.
1006 * search.c (string_match_1, fast_string_match)
1007 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
1008 (scan_buffer, find_next_newline_no_quit)
1009 (find_before_next_newline, search_command, Freplace_match)
1010 (Fmatch_data): Make some `int' variables be EMACS_INT.
1011
1012 * xdisp.c (display_count_lines): 3rd argument and return value now
1013 EMACS_INT. All callers changed.
1014 (pint2hrstr): Last argument is now EMACS_INT.
1015
1016 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
1017 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
1018 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
1019 (decode_coding_utf_16, decode_coding_emacs_mule)
1020 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
1021 (decode_coding_ccl, decode_coding_charset)
1022 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
1023 (decode_coding_iso_2022, decode_coding_emacs_mule)
1024 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
1025 <char_offset, last_offset>: Declare EMACS_INT.
1026 (encode_coding_utf_8, encode_coding_utf_16)
1027 (encode_coding_emacs_mule, encode_invocation_designation)
1028 (encode_designation_at_bol, encode_coding_iso_2022)
1029 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
1030 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
1031 Declare EMACS_INT.
1032 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
1033 (encode_invocation_designation): Last argument P_NCHARS is now
1034 EMACS_INT.
1035 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
1036 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
1037
1038 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
1039 All users changed.
1040
1041 * ccl.c (Fccl_execute_on_string): Declare some variables
1042 EMACS_INT.
1043
8546720e 10442011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
1045
1046 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
1047
4e19a977
CS
10482011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
1049
1050 * process.c (Fformat_network_address): Doc fix.
1051
87302331
R
10522011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
1053
1054 * xml.c (parse_region): Avoid creating spurious whiespace nodes.
1055
cbb59342
CY
10562011-04-08 Chong Yidong <cyd@stupidchicken.com>
1057
1058 * keyboard.c (read_char): Call Lisp function help-form-show,
1059 instead of using internal_with_output_to_temp_buffer.
1060 (Qhelp_form_show): New var.
e0d38eeb 1061 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
1062
1063 * print.c (internal_with_output_to_temp_buffer): Function deleted.
1064
1065 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
1066
e67a13ab
CY
10672011-04-06 Chong Yidong <cyd@stupidchicken.com>
1068
1069 * process.c (Flist_processes): Removed to Lisp.
1070 (list_processes_1): Deleted.
1071
973f782d
EZ
10722011-04-06 Eli Zaretskii <eliz@gnu.org>
1073
7c106b1e
EZ
1074 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
1075
973f782d
EZ
1076 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
1077
41cf7d1a 10782011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 1079
ca23cc88
PE
1080 Fix more problems found by GCC 4.6.0's static checks.
1081
f390e2d5
PE
1082 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
1083
42eea0d0
PE
1084 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
1085
b69769da 1086 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 1087
f9541e84
PE
1088 * xdisp.c (vmessage): Mark as a printf-like function.
1089
13841b55
PE
1090 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
1091
c136c10f
PE
1092 * sound.c (sound_warning): Don't crash if arg contains a printf format.
1093
5e2d4a30
PE
1094 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
1095 printf-like functions.
1096 (tiff_load): Add casts to remove these marks before passing them
1097 to system-supplied API.
1098
583f48b9
PE
1099 * eval.c (Fsignal): Remove excess argument to 'fatal'.
1100
b25d760e
PE
1101 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
1102 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
1103 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
1104 directly, rather than having caller test rule sign. This avoids
1105 some unnecessary tests.
1106 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
1107 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
1108 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 1109
bc7b6697 1110 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 1111 (xfont_open): Avoid unnecessary tests.
bc7b6697 1112
27ccc379
PE
1113 * composite.c (composition_gstring_put_cache): Use unsigned integer.
1114
dcd5c89a
PE
1115 * composite.h, composite.c (composition_gstring_put_cache):
1116 Use EMACS_INT, not int, for length.
1117
b13a45c6
PE
1118 * composite.h (COMPOSITION_DECODE_REFS): New macro,
1119 breaking out part of COMPOSITION_DECODE_RULE.
1120 (COMPOSITION_DECODE_RULE): Use it.
1121 * composite.c (get_composition_id): Remove unused local vars,
1122 by using the new macro.
1123
1e792e4d
PE
1124 * textprop.c (set_text_properties_1): Change while to do-while,
1125 since the condition is always true at first.
1126
dc6c6455 1127 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
1128 (interval_deletion_adjustment): Return unsigned value.
1129 All uses changed.
dc6c6455 1130
aba7731a
PE
1131 * process.c (list_processes_1, create_pty, read_process_output):
1132 (exec_sentinel): Remove vars that were set but not used.
afd4052b 1133 (create_pty): Remove unnecessary "volatile"s.
bc57d757 1134 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 1135 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 1136 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 1137
fdfc4bf3
PE
1138 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
1139
fca8fe46 1140 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 1141 (update_syntax_table): Use unsigned instead of int.
fca8fe46 1142
06a0259a 1143 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 1144 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 1145 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 1146
e7b9e80f
PE
1147 * print.c (print_error_message): Avoid int overflow.
1148
56201685
PE
1149 * font.c (font_list_entities): Redo for clarity,
1150 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
1151
78834453 1152 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 1153 (font_score): Avoid potential overflow in diff calculation.
78834453 1154
0bc0b309 1155 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 1156 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 1157
e610eaca
PE
1158 * eval.c (funcall_lambda): Rename local to avoid shadowing.
1159
b895abce
PE
1160 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
1161 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
1162 can always succeed if overflow has undefined behavior.
1163
1f1d9321 1164 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 1165 (wordify): Omit three unnecessary tests.
1f1d9321 1166
c59478bc
PE
1167 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
1168 All callers changed. This avoids the need for an unused var.
1169
79b73827
PE
1170 * casefiddle.c (casify_region): Remove var that is set but not used.
1171
a4db5dfe
PE
1172 * dired.c (file_name_completion): Remove var that is set but not used.
1173
43aae36e
PE
1174 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
1175
2a47c44d 1176 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 1177 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 1178
a37c69bf
PE
1179 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
1180 Check for integer overflow on size calculations.
1181
328ab8e7
PE
1182 * buffer.c (Fprevious_overlay_change): Remove var that is set
1183 but not used.
1184
e5a2a5cb
PE
1185 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
1186 Remove vars that are set but not used.
8d84a6eb 1187 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 1188 (timer_check_2): Mark vars as initialized.
e5a2a5cb 1189
a60e5f68
PE
1190 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
1191
f661cb61 1192 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 1193 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 1194
f0397f5a
PE
1195 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
1196 that are set but not used.
1197
8664db06 1198 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 1199 if XCreateBitmapFromData fails (Bug#8410).
8664db06 1200
6abdaa4a
PE
1201 * xselect.c (x_get_local_selection, x_handle_property_notify):
1202 Remove vars that are set but not used.
1203
0ce7538d 1204 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 1205 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 1206
9ae848fc
PE
1207 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
1208 Remove var that is set but not used.
0b918413
PE
1209 (scroll_bar_windows_size): Now size_t, not int.
1210 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
1211 Check for overflow.
9ae848fc 1212
a5a62657
PE
1213 * xfaces.c (realize_named_face): Remove vars that are set but not used.
1214 (map_tty_color) [!defined MSDOS]: Likewise.
1215
5c5cdd39
PE
1216 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
1217
66ebf983
PE
1218 * coding.c: Remove vars that are set but not used.
1219 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
1220 All callers changed.
1221 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
1222 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
1223 (decode_coding_charset): Remove vars that are set but not used.
1224
1be4d761
PE
1225 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
1226 that is set but not used.
1227
47553fa8
PE
1228 * print.c (print_object): Remove var that is set but not used.
1229
1f7196bf 1230 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
1231 The gnulib version avoids calling malloc in the usual case,
1232 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
1233 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
1234 * filelock.c (current_lock_owner): Likewise.
1235 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
1236 * sysdep.c: Include allocator.h, careadlinkat.h.
1237 (emacs_no_realloc_allocator): New static constant.
1238 (emacs_readlink): New function.
fdb61804
PE
1239 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
1240 ../lib/careadlinkat.h.
d1fdcab7 1241
f84c17c7
SM
12422011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
1243
1244 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
1245 first non-nil return value).
1246
ef3862ad
JD
12472011-04-03 Jan Djärv <jan.h.d@swipnet.se>
1248
1249 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
1250 if not defined (Bug#8403).
1251
376a7006
JB
12522011-04-02 Juanma Barranquero <lekktu@gmail.com>
1253
1254 * xdisp.c (display_count_lines): Remove parameter `start',
1255 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
1256 (get_char_face_and_encoding): Remove parameter `multibyte_p',
1257 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
1258 (fill_stretch_glyph_string): Remove parameters `row' and `area',
1259 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
1260 and thereabouts. All callers changed.
1261 (get_per_char_metric): Remove parameter `f', unused since
1262 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
1263
6ca3801d
JM
12642011-04-02 Jim Meyering <meyering@redhat.com>
1265
1266 do not dereference NULL upon failed strdup
1267 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
1268 (ns_get_family): Likewise.
1269
d8e2b5ba
JB
12702011-04-02 Juanma Barranquero <lekktu@gmail.com>
1271
1272 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
1273
8c74fcbd
JD
12742011-04-02 Jan Djärv <jan.h.d@swipnet.se>
1275
1276 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
1277 later (Bug#8403).
1278
7200d79c
SM
12792011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
1280
03408648 1281 Add lexical binding.
7200d79c 1282
03408648
SM
1283 * window.c (Ftemp_output_buffer_show): New fun.
1284 (Fsave_window_excursion):
1285 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
1286
1287 * lread.c (lisp_file_lexically_bound_p): New function.
1288 (Fload): Bind Qlexical_binding.
1289 (readevalloop): Remove `evalfun' arg.
1290 Bind Qinternal_interpreter_environment.
1291 (Feval_buffer): Bind Qlexical_binding.
1292 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
1293 Mark as dynamic.
1294 (syms_of_lread): Declare `lexical-binding'.
1295
1296 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
1297
1298 * keyboard.c (eval_dyn): New fun.
1299 (menu_item_eval_property): Use it.
ca105506
SM
1300
1301 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 1302
03408648
SM
1303 * fns.c (concat, mapcar1): Accept byte-code-functions.
1304
1305 * eval.c (Fsetq): Handle lexical vars.
1306 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
1307 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
1308 (FletX, Flet): Obey lexical binding.
1309 (Fcommandp): Handle closures.
1310 (Feval): New `lexical' arg.
1311 (eval_sub): New function extracted from Feval. Use it almost
1312 everywhere where Feval was used. Look up vars in lexical env.
1313 Handle closures.
1314 (Ffunctionp): Move from subr.el.
1315 (Ffuncall): Handle closures.
1316 (apply_lambda): Remove `eval_flags'.
1317 (funcall_lambda): Handle closures and new byte-code-functions.
1318 (Fspecial_variable_p): New function.
1319 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
1320 but without exporting it to Lisp.
23aba0ea 1321
23aba0ea 1322 * doc.c (Fdocumentation, store_function_docstring):
03408648 1323 * data.c (Finteractive_form): Handle closures.
23aba0ea 1324
03408648
SM
1325 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
1326 interactive spec.
ba83908c 1327
03408648
SM
1328 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): New
1329 byte-codes.
1330 (exec_byte_code): New function extracted from Fbyte_code to handle new
1331 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 1332
03408648 1333 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 1334
03408648 1335 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 1336
e2abce01
JB
13372011-03-31 Juanma Barranquero <lekktu@gmail.com>
1338
1339 * xdisp.c (redisplay_internal): Fix prototype.
1340
63696a73 13412011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 1342
63696a73
EZ
1343 * xdisp.c (SCROLL_LIMIT): New macro.
1344 (try_scrolling): Use it when setting scroll_limit. Limit
1345 scrolling to 100 screen lines.
1346 (redisplay_window): Even when falling back on "recentering",
1347 position point in the window according to scroll-conservatively,
1348 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
1349
1350 (try_scrolling): When point is above the window, allow searching
1351 as far as scroll_max, or one screenful, to compute vertical
1352 distance from PT to the scroll margin position. This prevents
1353 try_scrolling from unnecessarily failing when
1354 scroll-conservatively is set to a value slightly larger than the
1355 window height. Clean up the case of PT below the margin at bottom
1356 of window: scroll_max can no longer be INT_MAX. When aggressive
1357 scrolling is in use, don't let point enter the opposite scroll
1358 margin as result of the scroll.
1359 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
1360 threshold of 100 lines for never-recentering scrolling.
1361
e4cc2dfc
JB
13622011-03-31 Juanma Barranquero <lekktu@gmail.com>
1363
1364 * dispextern.h (move_it_by_lines):
1365 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
1366 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
1367 (message_log_check_duplicate): Remove parameters `prev_bol' and
1368 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
1369 (redisplay_internal): Remove parameter `preserve_echo_area',
1370 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
1371
1372 * indent.c (Fvertical_motion):
1373 * window.c (window_scroll_pixel_based, Frecenter):
1374 Don't pass `need_y_p' to `move_it_by_lines'.
1375
1c470562
SM
13762011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
1377
44f230aa
SM
1378 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
1379 steal a few bits to be more compact.
1380 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
1381 Remove unneeded casts.
1382
1c470562
SM
1383 * bytecode.c (Fbyte_code): CAR and CDR can GC.
1384
888adce9
ZK
13852011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
1386
1387 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
1388 binding" message (bug#7967).
1389
f838ed7b
PE
13902011-03-30 Paul Eggert <eggert@cs.ucla.edu>
1391
77861b95
PE
1392 Fix more problems found by GCC 4.6.0's static checks.
1393
de6dbc14
PE
1394 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
1395 Remove unused local var.
1396
f838ed7b
PE
1397 * editfns.c (Fmessage_box): Remove unused local var.
1398
792c7b2b
PE
1399 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
1400 (note_mode_line_or_margin_highlight, note_mouse_highlight):
1401 Omit unused local vars.
c499e557 1402 * window.c (shrink_windows): Omit unused local var.
b01a1c29 1403 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
1404 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
1405 Omit unused local var.
1406
ba0165e1
PE
1407 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
1408 Don't assume string length fits in int.
32ad8845 1409 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 1410 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 1411
3c59b4c9
PE
1412 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
1413 instead of alloca (Bug#8344).
1414
a3eed478 1415 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 1416 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 1417
eb4d412d
PE
1418 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
1419
1658b401
PE
1420 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
1421 concerns.
1422
1423 * term.c (produce_glyphless_glyph): Remove unnecessary test.
1424
1425 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 1426
9a2c6e05
PE
1427 * keyboard.c (syms_of_keyboard): Use the same style as later
1428 in this function when indexing through an array. This also
1429 works around GCC bug 48267.
1430
03d0a109
PE
1431 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
1432
44f730c8
PE
1433 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
1434
fe75f926
PE
1435 * chartab.c (sub_char_table_ref_and_range): Redo for slight
1436 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
1437
ffa8c828
PE
1438 * keyboard.c, keyboard.h (num_input_events): Now size_t.
1439 This avoids undefined behavior on integer overflow, and is a bit
1440 more convenient anyway since it is compared to a size_t variable.
1441
c5101a77
PE
1442 Variadic C functions now count arguments with size_t, not int.
1443 This avoids an unnecessary limitation on 64-bit machines, which
1444 caused (substring ...) to crash on large vectors (Bug#8344).
1445 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
1446 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 1447 All variadic functions and their callers changed accordingly.
c5101a77
PE
1448 (struct gcpro.nvars): Now size_t, not int. All uses changed.
1449 * data.c (arith_driver, float_arith_driver): Likewise.
1450 * editfns.c (general_insert_function): Likewise.
1451 * eval.c (struct backtrace.nargs, interactive_p)
1452 (internal_condition_case_n, run_hook_with_args, apply_lambda)
1453 (funcall_lambda, mark_backtrace): Likewise.
1454 * fns.c (concat): Likewise.
1455 * frame.c (x_set_frame_parameters): Likewise.
1456 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
1457 0 if not found, not -1. All callers changed.
1458
dd3f25f7
PE
1459 * alloc.c (garbage_collect): Don't assume stack size fits in int.
1460 (stack_copy_size): Now size_t, not int.
1461 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
1462
461c2ab9
JB
14632011-03-28 Juanma Barranquero <lekktu@gmail.com>
1464
1465 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
1466 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
1467 All callers changed.
1468
1469 * lisp.h (multibyte_char_to_unibyte):
1470 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
1471 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
1472 * character.h (CHAR_TO_BYTE8):
1473 * cmds.c (internal_self_insert):
1474 * editfns.c (general_insert_function):
1475 * keymap.c (push_key_description):
1476 * search.c (Freplace_match):
1477 * xdisp.c (message_dolog, set_message_1): All callers changed.
1478
f6d62986
SM
14792011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
1480
1481 * keyboard.c (safe_run_hook_funcall): New function.
1482 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
1483 don't set the hook to nil, but remove the offending function instead.
1484 (Qcommand_hook_internal): Remove, unused.
1485 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
1486 Vcommand_hook_internal.
1487
1488 * eval.c (enum run_hooks_condition): Remove.
1489 (funcall_nil, funcall_not): New functions.
1490 (run_hook_with_args): Call each function through a `funcall' argument.
1491 Remove `cond' argument, now redundant.
1492 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
1493 (Frun_hook_with_args_until_failure): Adjust accordingly.
1494 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
1495
1db5b1ad
JB
14962011-03-28 Juanma Barranquero <lekktu@gmail.com>
1497
1498 * dispextern.h (string_buffer_position): Remove declaration.
1499
1500 * print.c (strout): Remove parameter `multibyte', unused since
1501 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
1502
1503 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
1504 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
1505 All callers changed.
1506
1507 * w32.c (_wsa_errlist): Use braces for struct initializers.
1508
1509 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
1510 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
1511 All callers changed.
1512 (string_buffer_position): Likewise. Also, make static (it's never
1513 used outside xdisp.c).
1514 (cursor_row_p): Remove parameter `w', unused since
1515 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
1516 (decode_mode_spec): Remove parameter `precision', introduced during
1517 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
1518 All callers changed.
1519
5ffb62aa
JD
15202011-03-27 Jan Djärv <jan.h.d@swipnet.se>
1521
1522 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
1523
461c2ab9 15242011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
1525
1526 * nsterm.m (ns_menu_bar_is_hidden): New variable.
1527 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
1528 (ns_update_auto_hide_menu_bar): New functions.
1529 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
1530 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
1531 ns_constrain_all_frames.
1532 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
1533 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
1534
5c380ffb
JD
15352011-03-27 Jan Djärv <jan.h.d@swipnet.se>
1536
1537 * nsmenu.m (runDialogAt): Remove argument to timer_check.
1538
9af30bdf
GM
15392011-03-27 Glenn Morris <rgm@gnu.org>
1540
1541 * syssignal.h: Replace RETSIGTYPE with void.
1542 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
1543 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
1544 Replace SIGTYPE with void everywhere.
1545 * s/usg5-4-common.h (SIGTYPE): Remove definition.
1546 * s/template.h (SIGTYPE): Remove commented out definition.
1547
e2abce01
JB
15482011-03-26 Eli Zaretskii <eliz@gnu.org>
1549
1550 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
1551 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
1552
f868cd8a
JB
15532011-03-26 Juanma Barranquero <lekktu@gmail.com>
1554
59eb0929
JB
1555 * w32.c (read_unc_volume): Use parameter `henum', instead of
1556 global variable `wget_enum_handle'.
1557
1558 * keymap.c (describe_vector): Remove parameters `indices' and
1559 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
1560 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
1561
f868cd8a
JB
1562 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
1563
1564 * keyboard.c (timer_check): Remove parameter `do_it_now',
1565 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
1566 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
1567 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
1568
1569 * keyboard.c (read_char):
1570 * w32menu.c (w32_menu_display_help):
1571 * xmenu.c (show_help_event, menu_help_callback):
1572 Adjust calls to `show_help_echo'.
1573
1574 * gtkutil.c (xg_maybe_add_timer):
1575 * keyboard.c (readable_events):
1576 * process.c (wait_reading_process_output):
1577 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
1578
1579 * insdel.c (adjust_markers_gap_motion):
1580 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
1581 (gap_left, gap_right): Don't call it.
1582
2ecf6fdb
CY
15832011-03-25 Chong Yidong <cyd@stupidchicken.com>
1584
1585 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
1586 incurred during fontification.
1587
6b1f9ba4
JB
15882011-03-25 Juanma Barranquero <lekktu@gmail.com>
1589
1590 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
1591 (DEFVAR_PER_BUFFER): Don't pass it.
1592
1593 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
1594 (scrolling_window): Don't pass it.
1595
0f4a96b5
JB
15962011-03-25 Juanma Barranquero <lekktu@gmail.com>
1597
1598 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
1599
1600 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
1601 and `suffix'.
1602 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
1603 of variables specific to SELinux and computation of `encoded_absname'.
1604
1605 * image.c (XPutPixel): Remove unused variable `height'.
1606
1607 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
1608
1609 * unexw32.c (get_section_info): Remove unused variable `section'.
1610
1611 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
1612 (system_process_attributes): Remove unused variable `sess'.
1613 (sys_read): Remove unused variable `err'.
1614
1615 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
1616 (w32_wnd_proc): Remove unused variable `isdead'.
1617 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
1618 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
1619 (x_create_tip_frame): Remove unused variable `tem'.
1620
1621 * w32inevt.c (w32_console_read_socket):
1622 Remove unused variable `no_events'.
1623
1624 * w32term.c (x_draw_composite_glyph_string_foreground):
1625 Remove unused variable `width'.
1626
1149507c
JB
16272011-03-24 Juanma Barranquero <lekktu@gmail.com>
1628
1629 * w32term.c (x_set_glyph_string_clipping):
1630 Don't pass uninitialized region to CombineRgn.
1631
9c88f339
JB
16322011-03-23 Juanma Barranquero <lekktu@gmail.com>
1633
1634 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
1635 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
1636 (Fx_close_connection): Remove unused variable `i'.
1637
1638 * w32font.c (w32font_draw): Return number of glyphs.
1639 (w32font_open_internal): Remove unused variable `i'.
1640 (w32font_driver): Add missing initializer.
1641
1642 * w32menu.c (utf8to16): Remove unused variable `utf16'.
1643 (fill_in_menu): Remove unused variable `items_added'.
1644
1645 * w32term.c (last_mouse_press_frame): Remove static global variable.
1646 (w32_clip_to_row): Remove unused variable `f'.
1647 (x_delete_terminal): Remove unused variable `i'.
1648
1649 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
1650 (NOTHING): Remove unused static global variable.
1651 (uniscribe_check_otf): Remove unused variable `table'.
1652 (uniscribe_font_driver): Add missing initializers.
1653
dee091a3
JD
16542011-03-23 Julien Danjou <julien@danjou.info>
1655
1656 * term.c (Fsuspend_tty, Fresume_tty):
1657 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
1658 * window.c (temp_output_buffer_show):
1659 * insdel.c (signal_before_change):
1660 * frame.c (Fhandle_switch_frame):
1661 * fileio.c (Fdo_auto_save):
1662 * emacs.c (Fkill_emacs):
1663 * editfns.c (save_excursion_restore):
1664 * cmds.c (internal_self_insert):
1665 * callint.c (Fcall_interactively):
1666 * buffer.c (Fkill_all_local_variables):
1667 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
1668 Use Frun_hooks.
0f4a96b5 1669 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
dee091a3
JD
1670 unconditionnaly since it does the check itself.
1671
2c520ab5 16722011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 1673
c9c49752
PE
1674 Fix more problems found by GCC 4.5.2's static checks.
1675
8abc3f12
PE
1676 * coding.c (encode_coding_raw_text): Avoid unnecessary test
1677 the first time through the loop, since we know p0 < p1 then.
1678 This also avoids a gcc -Wstrict-overflow warning.
1679
a2d26660
PE
1680 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
1681 leading to a memory leak, possible in functions like
1682 load_charset_map_from_file that can allocate an unbounded number
b12ef411 1683 of objects (Bug#8318).
a2d26660 1684
916c72e9
PE
1685 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
1686 that could (at least in theory) be that large.
1687
19ab8a18
PE
1688 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
1689 This is less likely to overflow, and avoids undefined behavior if
1690 overflow does occur. All callers changed. Use strtoul to scan
1691 for the unsigned long integer.
b7cbbd6f
PE
1692 (pint2hrstr): Simplify and tune code slightly.
1693 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 1694
f0641eff
PE
1695 * scroll.c (do_scrolling): Work around GCC bug 48228.
1696 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
1697
7f650bb9
PE
1698 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
1699 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
1700 (validate_x_resource_name): Simplify count usage.
1701 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 1702
37dd57d1
PE
1703 * fileio.c (Fcopy_file): Report error if fchown or fchmod
1704 fail (Bug#8306).
81e56e61 1705
699979fc 1706 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 1707
401bf9b4
PE
1708 * process.c (Fmake_network_process): Use socklen_t, not int,
1709 where POSIX says socklen_t is required in portable programs.
1710 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 1711 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
1712 (Fmake_network_process, server_accept_connection):
1713 (wait_reading_process_output, read_process_output):
1714 Likewise.
1715
b93aacde
PE
1716 * process.c: Rename or move locals to avoid shadowing.
1717 (list_processes_1, Fmake_network_process):
1718 (read_process_output_error_handler, exec_sentinel_error_handler):
1719 Rename or move locals.
4dc343ee 1720 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 1721 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 1722 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 1723 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 1724 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 1725
af8a867c 1726 Make tparam.h and terminfo.c consistent.
44f230aa
SM
1727 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
1728 Include tparam.h instead, since it declares them.
af8a867c
PE
1729 * cm.h (PC): Remove extern decl; tparam.h now does this.
1730 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
1731 * terminfo.c: Include tparam.h, to check interfaces.
1732 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
1733 (tparam): Adjust signature to match interface in tparam.h;
1734 this removes some undefined behavior. Check that outstring and len
1735 are zero, which they always are with Emacs.
1736 * tparam.h (PC, BC, UP): New extern decls.
1737
0248044d 1738 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 1739 (xftfont_open): Rename locals to avoid shadowing.
0248044d 1740
8ff096c1 1741 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
1742 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
1743 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 1744 (ftfont_list): Remove unused local.
49eaafba
PE
1745 (get_adstyle_property, ftfont_pattern_entity):
1746 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
1747 Rename locals to avoid shadowing.
8ff096c1 1748
e2be39f6
PE
1749 * xfont.c (xfont_list_family): Mark var as initialized.
1750
c9735e30
PE
1751 * xml.c (make_dom): Now static.
1752
8f5201ae
PE
1753 * composite.c (composition_compute_stop_pos): Rename local to
1754 avoid shadowing.
b246f932
PE
1755 (composition_reseat_it): Remove unused locals.
1756 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 1757 (composition_update_it): Mark var as initialized.
11b61122
PE
1758 (find_automatic_composition): Mark vars as initialized,
1759 with a FIXME (Bug#8290).
8f5201ae 1760
760fbc2c
PE
1761 character.h: Rename locals to avoid shadowing.
1762 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
1763 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
1764 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
1765 (BUF_DEC_POS): Be more systematic about renaming local temporaries
1766 to avoid shadowing.
1767
ff08eb85
PE
1768 * textprop.c (property_change_between_p): Remove; unused.
1769
fc7bf025
PE
1770 * intervals.c (interval_start_pos): Now static.
1771
235d7abc
PE
1772 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
1773
44f230aa
SM
1774 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
1775 Rename locals to avoid shadowing.
3e7d6594 1776
50060332
PE
1777 * sound.c (wav_play, au_play, Fplay_sound_internal):
1778 Fix pointer signedness.
d01f234b 1779 (alsa_choose_format): Remove unused local var.
c83b8872
PE
1780 (wav_play): Initialize a variable to 0, to prevent undefined
1781 behavior (Bug#8278).
50060332 1782
c4fc4e30
PE
1783 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
1784
918436ed
PE
1785 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
1786
c939f91b
PE
1787 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
1788 clobbering (Bug#8298).
b9c7f648
PE
1789 * sysdep.c (sys_subshell): Likewise.
1790 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 1791
6bd8c144
PE
1792 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
1793 This should get cleaned up, so that child_setup has the
1794 same signature on all platforms.
1795
7710357c 1796 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 1797 (relocate_fd): Rename locals to avoid shadowing.
7710357c 1798
c59da222
CY
17992011-03-22 Chong Yidong <cyd@stupidchicken.com>
1800
1801 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
1802 not to be necessary, and produces flickering.
1803
66b87493
GM
18042011-03-20 Glenn Morris <rgm@gnu.org>
1805
1806 * config.in: Remove file.
1807
45b6f6d5
JB
18082011-03-20 Juanma Barranquero <lekktu@gmail.com>
1809
1810 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
1811 are now in src/globals.h.
1812 (syms_of_minibuf): Remove spurious & from previous change.
1813
3ec03f7e
LL
18142011-03-20 Leo <sdl.web@gmail.com>
1815
1816 * minibuf.c (completing-read-function): New variable.
1817 (completing-read-default): Rename from completing-read.
1818 (completing-read): Call completing-read-function.
1819
b14e3e21
CY
18202011-03-19 Juanma Barranquero <lekktu@gmail.com>
1821
1822 * xfaces.c (Fx_load_color_file):
1823 Read color file from absolute filename (bug#8250).
1824
f2b726e6
JB
18252011-03-19 Juanma Barranquero <lekktu@gmail.com>
1826
1827 * makefile.w32-in: Update dependencies.
1828
09f6ff02
EZ
18292011-03-17 Eli Zaretskii <eliz@gnu.org>
1830
1831 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
1832
29a6015a
PE
18332011-03-17 Paul Eggert <eggert@cs.ucla.edu>
1834
a3a6c54e
PE
1835 Fix more problems found by GCC 4.5.2's static checks.
1836
b766f867
PE
1837 * process.c (make_serial_process_unwind, send_process_trap):
1838 (sigchld_handler): Now static.
1839
be02381c
PE
1840 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
1841 That way, the code declares only the vars that it needs.
1842 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
1843 * s/cygwin.h (PTY_ITERATION): Likewise.
1844 * s/darwin.h (PTY_ITERATION): Likewise.
1845 * s/gnu-linux.h (PTY_ITERATION): Likewise.
1846
57048744
PE
1847 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
1848 * process.c (allocate_pty): Don't declare stb unless it's needed.
1849
7914961c 1850 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
1851 (CONSTANTLIM): Remove; unused.
1852 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
1853 Define only if needed.
7914961c 1854
b3967b18
PE
1855 * unexelf.c (unexec): Name an expression,
1856 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
1857 Use a different way to cause a compilation error if anyone uses
1858 n rather than nn, a way that does not involve shadowing.
73366a00 1859 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 1860
29a6015a
PE
1861 * deps.mk (unexalpha.o): Remove; unused.
1862
43cfc33e 1863 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 1864 * unexec.h: New file.
ce701a33
PE
1865 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
1866 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
1867 Depend on unexec.h.
1868 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
1869 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
1870 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 1871 Change as necessary to match prototype in unexec.h.
ce701a33 1872
01f44d5a
PE
1873 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
1874 shadowing.
4f63c6bb 1875 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 1876
a6670b0b
PE
1877 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
1878 Rename locals to avoid shadowing.
1879
cef2010d 1880 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 1881 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 1882
d4d7173a
PE
1883 * print.c (Fredirect_debugging_output): Fix pointer signedess.
1884
f08b802a
PE
1885 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
1886 warning when compiling print.c.
1887
3ddb0639
PE
1888 * font.c (font_unparse_fcname): Abort in an "impossible" situation
1889 instead of using an uninitialized var.
5ad03b97 1890 (font_sort_entities): Mark var as initialized.
3ddb0639 1891
170a2692
PE
1892 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
1893
e663c700
PE
1894 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
1895 pointers to constants.
89bc529a 1896 (font_parse_fcname): Remove unused vars.
7b81e2d0 1897 (font_delete_unmatched): Now static.
ea838e10 1898 (font_get_spec): Remove; unused.
13a547c6
PE
1899 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
1900 (font_update_drivers, Ffont_get_glyphs, font_add_log):
1901 Rename or move locals to avoid shadowing.
e663c700 1902
2a80c887 1903 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 1904 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 1905
1384fa33 1906 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 1907 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 1908
8b2c52e9
PE
1909 * alloc.c (mark_backtrace): Move decl from here ...
1910 * lisp.h: ... to here, so that it can be checked.
1911
475545b5 1912 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 1913 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
1914 (lisp_indirect_variable): Name an expression,
1915 to avoid gcc -Wbad-function-cast warning.
1faed8ae 1916 (Fdefvar): Rename locals to avoid shadowing.
475545b5 1917
b1349114 1918 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 1919 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 1920 Use const pointer when appropriate.
b1349114 1921
a2928364
PE
1922 * lisp.h (get_system_name, get_operating_system_release):
1923 Move decls here, to check interfaces.
1924 * process.c (get_operating_system_release): Move decl to lisp.h.
1925 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
1926 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
1927 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
1928 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
1929 (Fformat_time_string, Fencode_time, Finsert_char):
1930 (Ftranslate_region_internal, Fformat):
1931 Rename or remove local vars to avoid shadowing.
9710023e 1932 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 1933
a415e694
PE
1934 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
1935 avoid shadowing.
1936
8ef4622d
PE
1937 * lisp.h (eassert): Check that the argument compiles, even if
1938 ENABLE_CHECKING is not defined.
1939
946f9a5b
PE
1940 * data.c (Findirect_variable): Name an expression, to avoid
1941 gcc -Wbad-function-cast warning.
112396d6 1942 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 1943 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
1944 (Fmake_variable_buffer_local, Fmake_local_variable):
1945 Mark variables as initialized.
52746918 1946 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 1947
e5aab7e7 1948 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
1949 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
1950 Rename locals to avoid shadowing.
dff45157
PE
1951 (mark_stack): Move local variables into the #ifdef region where
1952 they're used.
7bc26fdb
PE
1953 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
1954 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
1955 needed otherwise.
1956 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
1957 (GC_STRING_CHARS): Remove; not used.
d40d4be1 1958 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 1959
e5aab7e7
PE
1960 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
1961 avoids undefined behavior in theory.
1962
4da60324
PE
1963 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
1964
88043301
PE
1965 Use functions, not macros, for up- and down-casing (Bug#8254).
1966 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
1967 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
1968 to use the following functions instead of these macros.
1969 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
1970 EMACS_INT, since callers assume the returned value fits in int.
1971 (upcase1): Likewise, for UPCASE_TABLE.
1972 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 1973 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 1974 the race-condition problem in the old DOWNCASE.
88043301 1975
19ed5445
PE
1976 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
1977 Rename locals to avoid shadowing.
1978 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
1979 (regex_compile, re_search_2, re_match_2_internal):
1980 Remove unused local vars.
952db0d7
PE
1981 (FREE_VAR): Rewrite so as not to use empty "else",
1982 which gcc can warn about.
da053e48 1983 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
1984 (RETALLOC_IF): Define only if needed.
1985 (WORDCHAR_P): Likewise. This one is never needed, but is used
1986 only in a comment talking about a compiler bug, so put inside
1987 the #if 0 of that comment.
1988 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
1989 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
1990 Remove; unused.
19ed5445 1991
1f3561e4 1992 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
1993 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
1994 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 1995
ded6f8f7
PE
1996 * search.c (simple_search): Remove unused var.
1997
dbd37a95
PE
1998 * dired.c (compile_pattern): Move decl from here ...
1999 * lisp.h: ... to here, so that it can be checked.
2000 (struct re_registers): New forward decl.
2001
7e47afad
PE
2002 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
2003
85f24f61
PE
2004 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
2005 All uses changed.
2006 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
2007 Rename locals to avoid shadowing.
5671df8f 2008 (Fvertical_motion): Mark locals as initialized.
85f24f61 2009
181aa2be 2010 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 2011 (casify_region): Mark local as initialized.
181aa2be 2012
930d429c
PE
2013 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
2014
7082eac6
PE
2015 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
2016 New macros, so that the caller can use some names other than
2017 gcpro1, gcpro2, etc.
2018 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
2019 of the new macros.
2020 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
2021 argument, for consistency with GCPRO2_VAR, etc: it is now the
2022 prefix of the variable, not the variable itself. All uses
2023 changed.
38b2c076
PE
2024 * dired.c (directory_files_internal, file_name_completion):
2025 Rename locals to avoid shadowing.
2026
15206ed9
PE
2027 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
2028 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
2029 dired.c's scmp function, had undefined behavior.
2030 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
2031 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
2032 * buffer.h: ... to here, because these macros use current_buffer,
2033 and the new implementation with inline functions needs to have
2034 current_buffer in scope now, rather than later when the macros
2035 are used.
2036 (downcase, upcase1): New static inline functions.
2037 (DOWNCASE, UPCASE1): Reimplement using these functions.
2038 This avoids undefined behavior in expressions like
2039 DOWNCASE (x) == DOWNCASE (y), which previously suffered
2040 from race conditions in accessing the global variables
2041 case_temp1 and case_temp2.
2042 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
2043 * lisp.h (case_temp1, case_temp2): Remove their decls.
2044 * character.h (ASCII_CHAR_P): Move from here ...
2045 * lisp.h: ... to here, so that the inline functions mentioned
2046 above can use them.
2047
4a6bea26
PE
2048 * dired.c (directory_files_internal_unwind): Now static.
2049
f14b7e14
PE
2050 * fileio.c (file_name_as_directory, directory_file_name):
2051 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
2052 Now static.
2893f146
PE
2053 (file_name_as_directory): Use const pointers when appropriate.
2054 (Fexpand_file_name): Likewise. In particular, newdir might
2055 point at constant storage, so make it a const pointer.
fd4ead52 2056 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
2057 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
2058 signedness issues.
f839df0c
PE
2059 (Fset_file_times, Finsert_file_contents, auto_save_error):
2060 Rename locals to avoid shadowing.
f14b7e14 2061
5716756e 2062 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
2063 (Ftry_completion, Fall_completions): Rename or remove locals
2064 to avoid shadowing.
5716756e 2065
b4c3046a
PE
2066 * marker.c (bytepos_to_charpos): Remove; unused.
2067
b45db522
PE
2068 * lisp.h (verify_bytepos, count_markers): New decls,
2069 so that gcc does not warn that these functions aren't declared.
2070
85876d07
PE
2071 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
2072 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 2073 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 2074 (copy_text): Remove unused local var.
85876d07 2075
03d78a21 2076 * filelock.c (within_one_second): Now static.
b3dd38ab 2077 (lock_file_1): Rename local to avoid shadowing.
03d78a21 2078
5df8f01b
PE
2079 * buffer.c (fix_overlays_before): Mark locals as initialized.
2080 (fix_start_end_in_overlays): Likewise. This function should be
2081 simplified by using pointers-to-pointers, but that's a different
2082 matter.
b1d876f1 2083 (switch_to_buffer_1): Now static.
8f54f30a
PE
2084 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
2085 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 2086
a70072c9 2087 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 2088 Fix pointer signedness issue.
edced198
PE
2089 (sys_subshell): Mark local as volatile if checking for lint,
2090 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 2091 (MAXPATHLEN): Define only if needed.
a70072c9 2092
a0977c44
PE
2093 * process.c (serial_open, serial_configure): Move decls from here ...
2094 * systty.h: ... to here, so that they can be checked.
2095
a884fdcc
PE
2096 * fns.c (get_random, seed_random): Move extern decls from here ...
2097 * lisp.h: ... to here, so that they can be checked.
2098
604efe86 2099 * sysdep.c (reset_io): Now static.
b8950c94 2100 (wait_for_termination_signal): Remove; unused.
604efe86 2101
38fc62d9
PE
2102 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
2103 (copy_keymap_item, append_key, push_text_char_description):
2104 Now static.
1004a21a 2105 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 2106 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
2107 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
2108 (describe_map_tree):
2109 Rename locals to avoid shadowing.
38fc62d9 2110
2f2650da
PE
2111 * keyboard.c: Declare functions static if they are not used elsewhere.
2112 (echo_char, echo_dash, cmd_error, top_level_2):
2113 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
2114 (read_char, kbd_buffer_get_event, make_lispy_position):
2115 (make_lispy_event, make_lispy_movement, apply_modifiers):
2116 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
2117 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
2118 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 2119 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 2120 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 2121
a053e86c 2122 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
2123 (mark_kboards): Move decl here ...
2124 * alloc.c (mark_kboards): ... from here.
a053e86c 2125
4752793e
PE
2126 * lisp.h (force_auto_save_soon): New decl.
2127
74f10ca7 2128 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
2129 (DEFINE_DUMMY_FUNCTION): New macro.
2130 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
2131 Use it.
c03cd23f
PE
2132 (main): Add casts to avoid warnings
2133 if GCC considers string literals to be constants.
74f10ca7 2134
022e70d4
PE
2135 * lisp.h (fatal_error_signal): Add decl, since it's exported.
2136
59d6fe83
PE
2137 * dbusbind.c: Pointer signedness fixes.
2138 (xd_signature, xd_append_arg, xd_initialize):
2139 (Fdbus_call_method, Fdbus_call_method_asynchronously):
2140 (Fdbus_method_return_internal, Fdbus_method_error_internal):
2141 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
2142 (Fdbus_register_signal): Use SSDATA when the context wants char *.
2143
78320123
PE
2144 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
2145 if GCC considers string literals to be constants.
49cebcca 2146 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 2147
35ac2a97
SM
21482011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
2149
fb103ca9
SM
2150 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
2151 (print_preprocess, print_object): New macro to fix last change.
2152
35ac2a97
SM
2153 * print.c (print_preprocess): Don't forget font objects.
2154
62973b41
JB
21552011-03-16 Juanma Barranquero <lekktu@gmail.com>
2156
2157 * emacs.c (USAGE3): Doc fixes.
2158
0e48bb22
AS
21592011-03-15 Andreas Schwab <schwab@linux-m68k.org>
2160
2161 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
2162 structure.
2163
7684e57b
JB
21642011-03-14 Juanma Barranquero <lekktu@gmail.com>
2165
2166 * lisp.h (VWindow_system, Qfile_name_history):
2167 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
2168 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
2169 (w32_system_caret_x, w32_system_caret_y): Declare extern.
2170
2171 * w32select.c: Don't #include "keyboard.h".
c96bbc66 2172 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
2173
2174 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
2175 * w32console.c (detect_input_pending, read_input_pending)
2176 (encode_terminal_code):
2177 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
2178 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
2179 (w32_system_caret_y, Qfile_name_history):
2180 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
2181 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
2182 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
2183 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
2184 * w32proc.c (Qlocal, report_file_error):
2185 * w32term.c (Vwindow_system, updating_frame):
2186 * w32uniscribe.c (initialized, uniscribe_font_driver):
2187 Remove unneeded extern declarations.
2188
2aa46d6c
CY
21892011-03-14 Chong Yidong <cyd@stupidchicken.com>
2190
c96bbc66 2191 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 2192
cffc6f3b
CY
21932011-03-13 Chong Yidong <cyd@stupidchicken.com>
2194
2195 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
2196 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
2197 These macros can no longer be used for assignment.
2198
44f230aa
SM
2199 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
2200 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
2201 (record_buffer_markers, fetch_buffer_markers): New functions for
2202 recording and fetching special buffer markers.
2203 (set_buffer_internal_1, set_buffer_temp): Use them.
2204
2205 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
2206
2207 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
2208
2209 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
2210 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
2211
2212 * xdisp.c (hscroll_window_tree):
2213 (reconsider_clip_changes): Use PT instead of BUF_PT.
2214
d251f04b
EZ
22152011-03-13 Eli Zaretskii <eliz@gnu.org>
2216
2217 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
2218 $(EMACS_ROOT)/lib/intprops.h.
2219
f0c77cd1
PE
22202011-03-13 Paul Eggert <eggert@cs.ucla.edu>
2221
3eca4629
PE
2222 Fix more problems found by GCC 4.5.2's static checks.
2223
7c86ee98
PE
2224 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
2225 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
2226 (xg_free_frame_widgets): Make it clear that a local variable is
2227 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
2228 (gdk_window_get_screen): Make it clear that this macro is needed
2229 only if USE_GTK_TOOLTIP.
1e5524e7
PE
2230 (int_gtk_range_get_value): New function, which avoids a diagnostic
2231 from gcc -Wbad-function-cast.
2232 (xg_set_toolkit_scroll_bar_thumb): Use it.
2233 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
2234 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
2235 (get_utf8_string, xg_get_file_with_chooser):
2236 Rename locals to avoid shadowing.
2237 (create_dialog): Move locals to avoid shadowing.
7c86ee98 2238
41729b81
PE
2239 * xgselect.c (xg_select): Remove unused var.
2240
f0c77cd1
PE
2241 * image.c (four_corners_best): Mark locals as initialized.
2242 (gif_load): Initialize transparent_p to zero (Bug#8238).
2243 Mark another local as initialized.
ec6cf4c6 2244 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 2245
ce0ad53d 2246 * image.c (clear_image_cache): Now static.
d5d5a617 2247 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 2248 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
2249 (x_edge_detection): Remove unnecessary cast that
2250 gcc -Wbad-function-cast diagnoses.
2037898d 2251 (gif_load): Fix pointer signedness.
6ae141d6
PE
2252 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
2253 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 2254
33383987 22552011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 2256
d32df629
PE
2257 Improve quality of tests for time stamp overflow.
2258 For example, without this patch (encode-time 0 0 0 1 1
2259 1152921504606846976) returns the obviously-bogus value (-948597
2260 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
2261 reports time overflow. See
2262 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
2263 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
2264 * editfns.c: Include limits.h and intprops.h.
2265 (TIME_T_MIN, TIME_T_MAX): New macros.
2266 (time_overflow): Move earlier, to before first use.
2267 (hi_time, lo_time): New functions, for an accurate test for
2268 out-of-range times.
2269 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
2270 (Fget_internal_run_time): Don't assume time_t fits in int.
2271 (make_time): Use list2 instead of Fcons twice.
2272 (Fdecode_time): More accurate test for out-of-range times.
2273 (check_tm_member): New function.
2274 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
2275 (lisp_time_argument): Don't rely on undefined left-shift and
2276 right-shift behavior when checking for time stamp overflow.
8be6f318 2277
fe31d94c
PE
2278 * editfns.c (time_overflow): New function, refactoring common code.
2279 (Fformat_time_string, Fdecode_time, Fencode_time):
2280 (Fcurrent_time_string): Use it.
2281
8be6f318
PE
2282 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
2283 * dired.c (make_time): Move to ...
2284 * editfns.c (make_time): ... here.
2285 * systime.h: Note the move.
2286
09d9db2c 22872011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 2288
126bc0dc
YM
2289 * fringe.c (update_window_fringes): Remove unused variables.
2290
c47cbdfd
YM
2291 * unexmacosx.c (copy_data_segment): Also copy __got section.
2292 (Bug#8223)
2293
7ac80be9
EZ
22942011-03-12 Eli Zaretskii <eliz@gnu.org>
2295
c96bbc66 2296 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
2297 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
2298 Constify `char *' arguments and their references according to
2299 prototypes in tparam.h.
2300
ecb0f94d 2301 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 2302
7ac80be9
EZ
2303 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
2304 Adapt all references accordingly.
2305
2306 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
2307
ef1fd07e
TT
23082011-03-11 Tom Tromey <tromey@redhat.com>
2309
2310 * buffer.c (syms_of_buffer): Remove obsolete comment.
2311
7ef4b50c
EZ
23122011-03-11 Eli Zaretskii <eliz@gnu.org>
2313
2314 * termhooks.h (encode_terminal_code): Declare prototype.
2315
2316 * msdos.c (encode_terminal_code): Don't declare prototype.
2317
2318 * term.c (encode_terminal_code): Now external again, used by
2319 w32console.c and msdos.c.
2320
44f230aa
SM
2321 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
2322 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 2323
4b1ec863 23242011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 2325
1714f52b 2326 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 2327
4b1ec863
PE
2328 * fringe.c (update_window_fringes): Mark locals as initialized
2329 (Bug#8227).
2330 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 2331
524c7aa6
PE
2332 * alloc.c (mark_fringe_data): Move decl from here ...
2333 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
2334 to check its interface.
2335 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
2336
a5c0af81 2337 * fontset.c (free_realized_fontset): Now static.
7519b8cd 2338 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 2339 (fontset_font): Mark local as initialized.
a9a06e0b 2340 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 2341
b4716021
PE
2342 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
2343
811e9bac 2344 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 2345 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
2346 (x_own_selection, Fx_disown_selection_internal): Rename locals
2347 to avoid shadowing.
2348 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 2349
7e3ab302
PE
2350 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
2351 so that the caller can use some name other than gcpro1.
2352 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
2353 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
2354 (Fx_backspace_delete_keys_p):
2355 Use them to avoid shadowing, and rename vars to avoid shadowing.
2356 (x_decode_color, x_set_name, x_window): Now static.
6b437900 2357 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 2358 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
2359 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
2360 Remove unused locals.
7e3ab302
PE
2361 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
2362 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
2363 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
2364 macros.
f78faa98 2365
e2b13473
PE
2366 * xterm.h (x_mouse_leave): New decl.
2367
77f23912
PE
2368 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
2369 Remove unused functions.
cdf4ba58
PE
2370 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
2371 (x_calc_absolute_position): Now static.
7411c686 2372 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 2373 Don't declare local "event" unless it's used.
ed7bf3a5
PE
2374 (x_iconify_frame, x_free_frame_resources): Don't declare locals
2375 unless they are used.
38d0b34a
PE
2376 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
2377 (x_fatal_error_signal): Remove; not used.
a6067996
PE
2378 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
2379 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
2380 (x_error_catcher, x_connection_closed, x_error_handler):
2381 (x_error_quitter, xembed_send_message, x_iconify_frame):
2382 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 2383 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 2384 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 2385
44f230aa
SM
2386 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
2387 Rename or move locals to avoid shadowing.
6b463e58 2388 (tty_defined_color, merge_face_heights): Now static.
5967d051 2389 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
2390 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
2391 does not deduce is never used uninitialized.
73719eba
PE
2392 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
2393 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 2394
426994c3 2395 * terminal.c (store_terminal_param): Now static.
5489860b 2396
032f1620 2397 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 2398 (set_frame_menubar): Remove unused local.
d4323972 2399 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
2400 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
2401 since they might point to immutable storage.
281585b0
PE
2402 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
2403 since it's unused otherwise.
032f1620 2404
367c19e5 2405 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 2406 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
2407 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
2408 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 2409 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
2410 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
2411 does not deduce are never used uninitialized.
70739cbe 2412
07b48fa9
PE
2413 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
2414
8868a238 2415 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
2416 * window.c (window_loop, size_window):
2417 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 2418
7e5cf297 2419 * window.c (display_buffer): Now static.
d6550a9f
PE
2420 (size_window): Mark variables that gcc -Wuninitialized
2421 does not deduce are never used uninitialized.
a586633d
PE
2422 * window.h (check_all_windows): New decl, to forestall
2423 gcc -Wmissing-prototypes diagnostic.
5b555da1 2424 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 2425
f6095868
PE
2426 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
2427 shadowing.
2428 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
2429 Include <limits.h>.
2430 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
2431 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
2432 (load_charset_map): Mark variables that gcc -Wuninitialized
2433 does not deduce are never used uninitialized.
53df7c11 2434 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 2435
f38b440c
PE
2436 * coding.c (coding_set_source, coding_set_destination):
2437 Use "else { /* comment */ }" rather than "else /* comment */;"
2438 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
2439 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
2440 a block, when the outer 'i' will do.
2441 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
2442 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
2443 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
2444 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
2445 (Fdecode_sjis_char, Fdefine_coding_system_internal):
2446 Rename locals to avoid shadowing.
2447 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
2448 * coding.c (emacs_mule_char, encode_invocation_designation):
2449 Now static, since they're not used elsewhere.
413bb2db 2450 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 2451 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
2452 (decode_coding_emacs_mule): Mark variables that gcc
2453 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
2454 (detect_coding_iso_2022): Initialize a local variable that might
2455 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 2456 this initialization is needed. (Bug#8211)
5f58e762
PE
2457 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
2458 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
2459 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
2460 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
2461 Remove unused macros.
f38b440c 2462
232b38b9 2463 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 2464 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 2465 * character.c (string_count_byte8): Likewise.
232b38b9 2466
fb90da1b
PE
2467 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
2468 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
2469
fb93dbc2
PE
2470 * chartab.c (copy_sub_char_table): Now static, since it's not used
2471 elsewhere.
5c156ace
PE
2472 (sub_char_table_ref_and_range, char_table_ref_and_range):
2473 Rename locals to avoid shadowing.
bbcd0949 2474 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 2475
7d3b3862 2476 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 2477 (BIDI_BOB): Remove unused macro.
7d3b3862 2478
6be7d3da
PE
2479 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
2480 deduce are never used uninitialized.
c2ed9c8b 2481 * term.c (encode_terminal_code): Likewise.
6be7d3da 2482
75f8807f 2483 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 2484
50938595
PE
2485 * tparam.h: New file.
2486 * term.c, tparam.h: Include it.
2487 * deps.mk (term.o, tparam.o): Depend on tparam.h.
2488 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
2489 Move these decls to tparam.h, and make them agree with what
2490 is actually in tparam.c. The previous trick of using incompatible
2491 decls in different modules does not conform to the C standard.
2492 All callers of tparam changed to use tparam's actual API.
2493 * tparam.c (tparam1, tparam, tgoto):
2494 Use const pointers where appropriate.
2495
fbceeba2
PE
2496 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
2497 * cm.h (struct cm): Likewise.
2498 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
2499 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
2500 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
2501 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
2502 (turn_on_face, init_tty): Likewise.
2503 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 2504
7f3f1250
PE
2505 * term.c (term_mouse_position): Rename local to avoid shadowing.
2506
e6ca6543
PE
2507 * alloc.c (mark_ttys): Move decl from here ...
2508 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
2509
c40f8d15
AS
25102011-03-11 Andreas Schwab <schwab@linux-m68k.org>
2511
2512 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
2513
cfe0661d
JB
25142011-03-09 Juanma Barranquero <lekktu@gmail.com>
2515
2516 * search.c (compile_pattern_1): Remove argument regp, unused since
2517 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
2518 (compile_pattern): Don't pass it.
2519
0afb4571
J
25202011-03-08 Jan Djärv <jan.h.d@swipnet.se>
2521
2522 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
2523 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
2524 for ! HAVE_GTK3.
2525 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
2526
2527 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
2528
2529 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
2530 gdk_window_get_screen, gdk_window_get_geometry,
2531 gdk_x11_window_lookup_for_display and GDK_KEY_g.
2532 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
2533 (xg_get_pixbuf_from_pixmap): New function.
2534 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
2535 to Pixmap, take frame as parameter, remove GdkColormap parameter.
2536 Call xg_get_pixbuf_from_pixmap instead of
2537 gdk_pixbuf_get_from_drawable.
2538 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
2539 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
2540 (xg_check_special_colors): Use GtkStyleContext and its functions
2541 for HAVE_GTK3.
2542 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
2543 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
2544 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
2545 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
2546 Call gtk_widget_get_preferred_size.
0afb4571
J
2547 (xg_frame_resized): gdk_window_get_geometry only takes 5
2548 parameters.
44f230aa
SM
2549 (xg_win_to_widget, xg_event_is_for_menubar):
2550 Call gdk_x11_window_lookup_for_display.
0afb4571
J
2551 (xg_set_widget_bg): New function.
2552 (delete_cb): New function.
2553 (xg_create_frame_widgets): connect delete-event to delete_cb.
2554 Call xg_set_widget_bg. Only set backgrund pixmap for ! HAVE_GTK3
2555 (xg_set_background_color): Call xg_set_widget_bg.
2556 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
2557 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
2558 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
2559 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
2560 if ! HAVE_GTK3.
2561 (update_frame_tool_bar): Call gtk_widget_hide.
2562 (xg_initialize): Use GDK_KEY_g.
2563
2564 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
2565 if ! HAVE_GTK3
2566 (x_session_initialize): Call gdk_x11_set_sm_client_id.
2567
2568 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
2569 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
2570 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
2571
1c2cc4ef
JB
25722011-03-08 Juanma Barranquero <lekktu@gmail.com>
2573
2574 * w32xfns.c (select_palette): Check success of RealizePalette against
2575 GDI_ERROR, not zero.
2576
33383987 2577See ChangeLog.11 for earlier changes.
aac0c6e3
MR
2578
2579;; Local Variables:
2580;; coding: utf-8
aac0c6e3
MR
2581;; End:
2582
33383987 2583 Copyright (C) 2011 Free Software Foundation, Inc.
aac0c6e3
MR
2584
2585 This file is part of GNU Emacs.
2586
2587 GNU Emacs is free software: you can redistribute it and/or modify
2588 it under the terms of the GNU General Public License as published by
2589 the Free Software Foundation, either version 3 of the License, or
2590 (at your option) any later version.
2591
2592 GNU Emacs is distributed in the hope that it will be useful,
2593 but WITHOUT ANY WARRANTY; without even the implied warranty of
2594 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2595 GNU General Public License for more details.
2596
2597 You should have received a copy of the GNU General Public License
2598 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.