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