aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorPaul Eggert2011-09-03 16:03:38 -0700
committerPaul Eggert2011-09-03 16:03:38 -0700
commitb49e353d9d01adbe60bc5d0b1658b4ef978b0b06 (patch)
tree9f2ffa6f7a6562abf661a4951012b488ad8b1ae7 /src/ChangeLog
parent74b880cbc18bd0194c7b1fc44c4a983ee05adae2 (diff)
parentbc3200871917d5c54c8c4299a06bf8f8ba2ea02d (diff)
downloademacs-b49e353d9d01adbe60bc5d0b1658b4ef978b0b06.tar.gz
emacs-b49e353d9d01adbe60bc5d0b1658b4ef978b0b06.zip
Merge from trunk.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog1021
1 files changed, 968 insertions, 53 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9e8aedfd36b..f3953630803 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,918 @@
12011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * Require libxml/parser.h to avoid compilation warning.
4
5 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
6
7 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
8 since this reportedly can destroy thread storage.
9
102011-08-30 Chong Yidong <cyd@stupidchicken.com>
11
12 * syntax.c (find_defun_start): Update all cache variables if
13 exiting early (Bug#9401).
14
152011-08-30 Eli Zaretskii <eliz@gnu.org>
16
17 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
18
19 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
20 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
21 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
22
23 * term.c (tty_append_glyph): New function.
24 (produce_stretch_glyph): Static function and its prototype deleted.
25
26 * dispextern.h (produce_stretch_glyph, tty_append_glyph): Add
27 prototypes.
28
292011-08-29 Paul Eggert <eggert@cs.ucla.edu>
30
31 * image.c (parse_image_spec): Check for nonnegative, not for positive,
32 when checking :margin (Bug#9390).
33 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
34 Renamed from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
35 so that the name doesn't mislead. All uses changed.
36
372011-08-28 Johan Bockgård <bojohan@gnu.org>
38
39 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
40 set_tty_hooks.
41
422011-08-27 Eli Zaretskii <eliz@gnu.org>
43
44 * xdisp.c (move_it_to): Don't bail out early when reaching
45 position beyond to_charpos, if we are scanning backwards.
46 (move_it_vertically_backward): When DY == 0, make sure we get to
47 the first character in the line after the newline.
48
492011-08-27 Paul Eggert <eggert@cs.ucla.edu>
50
51 * ccl.c: Improve and simplify overflow checking (Bug#9196).
52 (ccl_driver): Do not generate an out-of-range pointer.
53 (Fccl_execute_on_string): Remove unnecessary check for
54 integer overflow, noted by Stefan Monnier in
55 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
56 Remove a FIXME that didn't need fixing.
57 Simplify the newly-introduced buffer reallocation code.
58
592011-08-27 Juanma Barranquero <lekktu@gmail.com>
60
61 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
62
632011-08-26 Paul Eggert <eggert@cs.ucla.edu>
64
65 Integer and memory overflow issues (Bug#9196).
66
67 * doc.c (get_doc_string): Rework so that
68 get_doc_string_buffer_size is the actual buffer size, rather than
69 being 1 less than the actual buffer size; this makes xpalloc more
70 convenient.
71
72 * image.c (x_allocate_bitmap_record, cache_image):
73 * xselect.c (Fx_register_dnd_atom):
74 Simplify previous changes by using xpalloc.
75
76 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
77 since either will do and ptrdiff_t is convenient with xpalloc.
78
79 * charset.c (charset_table_size)
80 (struct charset_sort_data.priority): Now ptrdiff_t.
81 (charset_compare): Don't overflow if priorities differ greatly.
82 (Fsort_charsets): Don't assume list length fits in int.
83 Check for size-calculation overflow when allocating sort data.
84 (syms_of_charset): Allocate an initial charset table that is
85 just under 64 KiB, to avoid problems with glibc malloc and mmap.
86
87 * cmds.c (internal_self_insert): Check for size-calculation overflow.
88
89 * composite.h (struct composition.glyph_len): Now int, not unsigned.
90 The actual value is always <= INT_MAX, and leaving it unsigned made
91 overflow checking harder.
92
93 * dispextern.h (struct glyph_matrix.rows_allocated)
94 (struct face_cache.size): Now ptrdiff_t, for convenience in use
95 with xpalloc. The values are still always <= INT_MAX.
96
97 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
98
99 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
100 (SAFE_NALLOCA): New macro.
101
102 * region-cache.c (struct boundary.pos, find_cache_boundary)
103 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
104 (set_cache_region, invalidate_region_cache)
105 (revalidate_region_cache, know_region_cache, region_cache_forward)
106 (region_cache_backward, pp_cache):
107 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
108 so that ptrdiff_t * can be passed to xpalloc.
109 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
110 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
111 (pp_cache): Don't assume cache_len fits in int.
112 * region-cache.h: Adjust extern decls to match.
113
114 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
115 EMACS_INT, since either will do, for xpalloc.
116
117 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
118 (xnmalloc, xnrealloc, xpalloc): New functions.
119
120 * bidi.c (bidi_shelve_header_size): New constant.
121 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
122 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
123
124 * bidi.c (bidi_cache_shrink):
125 * buffer.c (overlays_at, overlays_in, record_overlay_string)
126 (overlay_strings):
127 Don't update size of array until after memory allocation succeeds,
128 because xmalloc/xrealloc may not return.
129 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
130 now that we have proper integer overflow checking.
131 (record_overlay_string, overlay_strings): Catch overflows when
132 calculating size of overlay_str_buf.
133
134 * callproc.c (Fcall_process): Check for size overflow when
135 calculating size of args2.
136 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
137 Normally we prefer signed values, but sticking with ptrdiff_t would
138 require adding more-complicated checks.
139
140 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
141 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
142 Redo buffer-overflow calculations to avoid integer overflow.
143 Add a FIXME comment where memory seems to be over-allocated.
144
145 * character.c (Fstring): Check for size-calculation overflow.
146
147 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
148 unnecessary integer overflow. Check for size overflow.
149 (encode_coding_object): Don't update size until xmalloc succeeds.
150
151 * composite.c (get_composition_id): Check for overflow in glyph
152 length calculations.
153
154 Integer and memory overflow fixes for display code.
155 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
156 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
157 (scrolling_window): Check for overflow in size calculations.
158 (line_draw_cost, realloc_glyph_pool, add_row_entry):
159 Don't assume glyph table len fits in int.
160 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
161 (row_table_size): Now ptrdiff_t, not int.
162 (scrolling_window): Avoid overflow in size calculations.
163 Don't update size until allocation succeeds.
164 * fns.c (concat): Check for overflow in size calculations.
165 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
166 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
167 (NEXT_ALMOST_PRIME_LIMIT): New constant.
168
169 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
170 (get_doc_string): Check for size calculation overflow.
171 Don't update size until allocation succeeds.
172 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
173 EMACS_INT, where ptrdiff_t will do.
174 (Fsubstitute_command_keys): Check for string overflow.
175
176 * editfns.c (set_time_zone_rule): Don't assume environment length
177 fits in int.
178 (message_length): Now ptrdiff_t, not int.
179 (Fmessage_box): Don't update size until allocation succeeds.
180 Don't assume message length fits in int.
181 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
182
183 * emacs.c (main): Do not reallocate argv, since there is a null at
184 the end that can be overwritten, and this way there's no need to
185 worry about size-calculation overflow.
186 (sort_args): Check for size-calculation overflow.
187
188 * eval.c (init_eval_once, grow_specpdl): Don't update size until
189 alloc succeeds.
190 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
191
192 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
193 (x_set_scroll_bar_width, x_figure_window_size):
194 Check for integer overflow.
195 (x_set_alpha): Do not assume XINT fits in int.
196
197 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
198 This is for the members text_lines, text_cols, total_lines, total_cols,
199 where the system imposes an 'int' limit.
200
201 * fringe.c (Fdefine_fringe_bitmap):
202 Don't update size until alloc works.
203
204 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
205 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
206
207 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
208 Check for size-calculation overflow.
209 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
210 do, as we prefer signed integers.
211 (id_to_widget.max_size, id_to_widget.used)
212 (xg_store_widget_in_map, xg_remove_widget_from_map)
213 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
214 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
215 Use and return ptrdiff_t, not int.
216 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
217 * gtkutil.h: Change prototypes to match the above.
218
219 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
220 are duplicate now that they've been promoted to lisp.h.
221 (x_allocate_bitmap_record, x_alloc_image_color)
222 (make_image_cache, cache_image, xpm_load):
223 Don't update size until alloc is done.
224 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
225 (x_detect_edges):
226 Check for size calculation overflow.
227 (ct_colors_allocated_max): New constant.
228 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
229 overflow.
230
231 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
232 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
233 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
234 Use ptrdiff_t, not int, to count maps.
235 (read_char_minibuf_menu_prompt): Check for overflow in size
236 calculations. Don't update size until allocation succeeds. Redo
237 calculations to avoid overflow.
238 * keyboard.h: Change prototypes to match the above.
239
240 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
241 to count maps.
242 (current_minor_maps): Check for size calculation overflow.
243 * keymap.h: Change prototypes to match the above.
244
245 * lread.c (read1, init_obarray): Don't update size until alloc done.
246
247 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
248 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
249
250 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
251 Now ptrdiff_t, not int.
252 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
253 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
254
255 * process.c (Fnetwork_interface_list): Check for overflow
256 in size calculation.
257
258 * region-cache.c (move_cache_gap): Check for size calculation overflow.
259
260 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
261 overflow. Don't bother calling xmalloc when xrealloc will do.
262
263 * search.c (Freplace_match): Check for size calculation overflow.
264 (Fset_match_data): Don't assume list lengths fit in 'int'.
265
266 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
267 for command line length. Do not attempt to address one before the
268 beginning of an array, as that's not portable.
269
270 * term.c (max_frame_lines): Remove; unused.
271 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
272 not int.
273 (encode_terminal_code, calculate_costs): Check for size
274 calculation overflow.
275 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
276 table lengths and related sizes. Don't update size until alloc
277 done. Redo calculations to avoid overflow.
278 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
279
280 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
281 subtracting pointers.
282 (gobble_line): Check for overflow more carefully. Don't update size
283 until alloc done.
284
285 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
286 Don't update size until alloc done.
287 Redo size calculations to avoid overflow.
288 Check for size calculation overflow.
289 (main) [DEBUG]: Fix typo in invoking tparam1.
290
291 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
292 Use ptrdiff_t, not int, for sizes.
293 (store_mode_line_noprop_char): Don't update size until alloc done.
294
295 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
296 Use ptrdiff_t, not int, for sizes.
297 (Finternal_make_lisp_face, cache_face):
298 Check for size calculation overflow.
299 (cache_face): Treat size calculation overflows as if they were
300 memory exhaustion (the usual treatment), rather than aborting.
301
302 * xfns.c (x_encode_text, x_set_name_internal)
303 (Fx_change_window_property): Use ptrdiff_t, not int, to count
304 sizes, since they can exceed INT_MAX in size. Check for size
305 calculation overflow.
306
307 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
308 (xg_select): Check for size calculation overflow.
309 Don't update size until alloc done.
310
311 * xrdb.c (get_environ_db): Don't assume path length fits in int,
312 as sprintf is limited to int lengths.
313
314 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
315 (X_LONG_MIN): New macros.
316 Use them to make the following changes clearer.
317 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
318 This change doesn't affect the value now, but it may help remind
319 future maintainers not to raise the value too much later.
320 (SELECTION_QUANTUM): Remove, replacing with ...
321 (selection_quantum): ... new function, which avoids overflow.
322 All uses changed.
323 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
324 assumption that selection length fits in 'int'.
325 (x_reply_selection_request, x_handle_selection_request)
326 (x_get_window_property, receive_incremental_selection)
327 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
328 (lisp_data_to_selection_data, clean_local_selection_data):
329 Use ptrdiff_t, not int, to record length of selection.
330 (x_reply_selection_request, x_get_window_property)
331 (receive_incremental_selection, x_property_data_to_lisp):
332 Redo calculations to avoid overflow.
333 (x_reply_selection_request): When sending hint, ceiling it at
334 X_LONG_MAX rather than relying on wraparound overflow to send
335 something.
336 (x_get_window_property, receive_incremental_selection)
337 (lisp_data_to_selection_data, x_property_data_to_lisp):
338 Check for size-calculation overflow.
339 (x_get_window_property, receive_incremental_selection)
340 (lisp_data_to_selection_data, Fx_register_dnd_atom):
341 Don't store size until memory allocation succeeds.
342 (x_get_window_property): Plug memory leak on memory exhaustion.
343 Don't double-block input; malloc is safe here. Don't assume 2**34
344 - 4 fits in unsigned long. Add an xassert to check
345 XGetWindowProperty overflow. Be more careful about overflow
346 calculations, and distinguish size from memory overflow better.
347 (receive_incremental_selection): When tracing, don't assume
348 unsigned int is less than INT_MAX.
349 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
350 harmful) conversions of unsigned short to int.
351 (lisp_data_to_selection_data): Don't assume that integers
352 in the range -65535 through -1 fit in an X unsigned short.
353 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
354 result parameters unless successful. Rely on cons_to_unsigned
355 to report problems with elements; the old code wasn't right anyway.
356 (x_check_property_data): Check for int overflow; we cannot use
357 a wider type due to X limits.
358 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
359
360 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
361
362 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
363 (x_term_init): Check for size calculation overflow.
364 (x_color_cells): Don't store size until memory allocation succeeds.
365 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
366 Don't assume alloca size is less than MAX_ALLOCA.
367 (x_term_init): Don't assume length fits in int (sprintf is limited
368 to int size).
369
370 Use ptrdiff_t for composition IDs.
371 * character.c (lisp_string_width):
372 * composite.c (composition_table_size, n_compositions)
373 (get_composition_id, composition_gstring_from_id):
374 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
375 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
376 * window.c (Frecenter):
377 Use ptrdiff_t, not int, for composition IDs.
378 * composite.c (get_composition_id): Check for integer overflow.
379 * composite.h: Adjust prototypes to match the above changes.
380
381 Use ptrdiff_t for hash table indexes.
382 * category.c (hash_get_category_set):
383 * ccl.c (ccl_driver):
384 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
385 * coding.c (coding_system_charset_list, detect_coding_system):
386 * coding.h (struct coding_system.id):
387 * composite.c (get_composition_id, gstring_lookup_cache):
388 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
389 * image.c (xpm_get_color_table_h):
390 * lisp.h (hash_lookup, hash_put):
391 * minibuf.c (Ftest_completion):
392 Use ptrdiff_t for hash table indexes, not int (which is too
393 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
394 32-bit --with-wide-int hosts).
395
396 * charset.c (Fdefine_charset_internal): Check for integer overflow.
397 Add a FIXME comment about memory leaks.
398 (syms_of_charset): Don't assume xmalloc returns.
399
400 Don't assume that stated character widths fit in int.
401 * character.c (Fchar_width, c_string_width, lisp_string_width):
402 * character.h (CHAR_WIDTH):
403 * indent.c (MULTIBYTE_BYTES_WIDTH):
404 Use sanitize_char_width to avoid undefined and/or bad behavior
405 with outlandish widths.
406 * character.h (sanitize_tab_width): Renamed from sanitize_width,
407 now that we have two such functions. All uses changed.
408 (sanitize_char_width): New inline function.
409
410 Don't assume that tab-width fits in int.
411 * character.h (sanitize_width): New inline function.
412 (SANE_TAB_WIDTH): New macro.
413 (ASCII_CHAR_WIDTH): Use it.
414 * indent.c (sane_tab_width): Remove. All uses replaced by
415 SANE_TAB_WIDTH (current_buffer).
416 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
417
418 * fileio.c: Integer overflow issues with file modes.
419 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
420
421 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
422 Remove unreachable code.
423 (read_hex, load_charset_map_from_file): Check for integer overflow.
424
425 * xterm.c: don't go over XClientMessageEvent limit
426 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
427 (x_send_scroll_bar_event): Likewise. Check that the size does not
428 exceed limits imposed by XClientMessageEvent, as well as the usual
429 ptrdiff_t and size_t limits.
430
431 * keyboard.c: Overflow, signedness and related fixes.
432 (make_lispy_movement): Use same integer type in forward decl
433 that is used in the definition.
434 (read_key_sequence, keyremap_step):
435 Change bufsize argument back to int, undoing my 2011-03-30 change.
436 We prefer signed types, and int is wide enough here.
437 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
438 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
439 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
440 length, not size_t. Use ptrdiff_t for index, not int.
441 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
442 possibility of integer overflow.
443
444 Overflow, signedness and related fixes for images.
445
446 * dispextern.h (struct it.stack[0].u.image.image_id)
447 (struct_it.image_id, struct image.id, struct image_cache.size)
448 (struct image_cache.used, struct image_cache.ref_count):
449 * gtkutil.c (update_frame_tool_bar):
450 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
451 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
452 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
453 * nsmenu.m (update_frame_tool_bar):
454 * xdisp.c (calc_pixel_width_or_height):
455 * xfns.c (image_cache_refcount):
456 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
457 on typical 64-bit hosts.
458
459 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
460 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
461 Omit unnecessary casts to int.
462 (parse_image_spec): Check that integers fall into 'int' range
463 when the callers expect that.
464 (image_ascent): Redo ascent calculation to avoid int overflow.
465 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
466 (lookup_image): Remove unnecessary tests.
467 (xbm_image_p): Locals are now of int, not EMACS_INT,
468 since parse_image_check makes sure they fit into int.
469 (png_load, gif_load, svg_load_image):
470 Prefer int to unsigned where either will do.
471 (tiff_handler): New function, combining the cores of the
472 old tiff_error_handler and tiff_warning_handler. This
473 function is rewritten to use vsnprintf and thereby avoid
474 stack buffer overflows. It uses only the features of vsnprintf
475 that are common to both POSIX and native Microsoft.
476 (tiff_error_handler, tiff_warning_handler): Use it.
477 (tiff_load, gif_load, imagemagick_load_image):
478 Don't assume :index value fits in 'int'.
479 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
480 (imagemagick_load_image): Check that crop parameters fit into
481 the integer types that MagickCropImage accepts. Don't assume
482 Vimagemagick_render_type has a nonnegative value. Don't assume
483 size_t fits in 'long'.
484 (gs_load): Use printmax_t to print the widest integers possible.
485 Check for integer overflow when computing image height and width.
486
4872011-08-26 Eli Zaretskii <eliz@gnu.org>
488
489 * xdisp.c (redisplay_window): Don't force window start if point
490 will be invisible in the resulting window. (Bug#9324)
491
4922011-08-25 Eli Zaretskii <eliz@gnu.org>
493
494 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
495 the display spec is of the form `(space ...)'.
496 (handle_display_spec): Return the value returned by
497 handle_single_display_spec, not just 1 or zero.
498 (handle_single_display_spec): If the display spec is of the form
499 `(space ...)', and specifies display in the text area, return 2
500 rather than 1.
501 (try_cursor_movement): Check for the need to scroll more
502 accurately, and prefer exact match for point under bidi. Don't
503 advance `row' beyond the last row of the window.
504
505 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
506 into disp_prop; all users changed.
507
508 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
509 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
510 for the text covered by the display property.
511
5122011-08-25 Chong Yidong <cyd@stupidchicken.com>
513
514 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
515 Change return value to nil.
516 (Frecord_buffer): Delete unused function.
517
5182011-08-24 Eli Zaretskii <eliz@gnu.org>
519
520 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
521 buffers, return left-to-right.
522 (set_cursor_from_row): Consider candidate row a win if its glyph
523 represents a newline and point is on that newline. Fixes cursor
524 positioning on the newline at EOL of R2L text within L2R
525 paragraph, and vice versa.
526 (try_cursor_movement): Check continued rows, in addition to
527 continuation rows. Fixes unwarranted scroll when point enters a
528 continued line of R2L text within an L2R paragraph, or vice versa.
529 (cursor_row_p): Consider the case of point being equal to
530 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
531 from the end of a short line to the beginning of a continued line
532 of R2L text within L2R paragraph.
533 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
534 composed characters.
535
536 * bidi.c (bidi_check_type): Use xassert.
537 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
538 members.
539
5402011-08-23 Eli Zaretskii <eliz@gnu.org>
541
542 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
543 a character.
544
5452011-08-23 Chong Yidong <cyd@stupidchicken.com>
546
547 * nsfont.m (ns_otf_to_script): Fix typo.
548
5492011-08-22 Kenichi Handa <handa@m17n.org>
550
551 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
552 extra slot even if the purpose is char-code-property-table.
553
5542011-08-23 Eli Zaretskii <eliz@gnu.org>
555
556 * xdisp.c (redisplay_window): When computing centering_position,
557 account for the height of the header line. (Bug#8874)
558
559 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
560 instead of CHAR_TO_BYTE. Fixes a crash when a completion
561 candidate is selected by the mouse, and that candidate has a
562 composed character under the mouse.
563
564 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
565 coordinates reported by pos-visible-in-window-p for a composed
566 character in column zero.
567
5682011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
569
570 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
571
5722011-08-22 Eli Zaretskii <eliz@gnu.org>
573
574 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
575 consider it a hit if to_charpos is anywhere in the range of the
576 composed buffer positions.
577
5782011-08-22 Chong Yidong <cyd@stupidchicken.com>
579
580 * image.c (gif_load): Don't assume that each subimage has the same
581 dimensions as the base image. Handle disposal method that is
582 "undefined" by the gif spec (Bug#9335).
583
5842011-08-20 Chong Yidong <cyd@stupidchicken.com>
585
586 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
587 (Fcondition_case): Document `debug' symbol in error handler.
588
5892011-08-19 Eli Zaretskii <eliz@gnu.org>
590
591 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
592 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
593 from an Org mode buffer to a Speedbar frame.
594
595 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
596 a composition, take its buffer position from IT->cmp_it.charpos.
597 Fixes cursor positioning at the beginning of a line that begins
598 with a composed character.
599
6002011-08-18 Eli Zaretskii <eliz@gnu.org>
601
602 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
603 character bidirectional type, use STRONG_L instead. Fixes crashes
604 in a buffer produced by `describe-categories'.
605
606 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
607 members before the level stack, so they would be saved and
608 restored when copying iterator state. Fixes incorrect reordering
609 around TABs covered by display properties.
610
6112011-08-18 Andreas Schwab <schwab@linux-m68k.org>
612
613 * process.c (Fnetwork_interface_list): Correctly determine buffer
614 size.
615
6162011-08-17 Chong Yidong <cyd@stupidchicken.com>
617
618 * eval.c (internal_condition_case, internal_condition_case_1)
619 (internal_condition_case_2, internal_condition_case_n):
620 Remove unnecessary aborts (Bug#9081).
621
6222011-08-17 Eli Zaretskii <eliz@gnu.org>
623
624 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
625 has no `load' handler, try opening the file locally. (Bug#9311)
626
6272011-08-16 Ken Brown <kbrown@cornell.edu>
628
629 * gmalloc.c: Expand comment.
630
6312011-08-16 Eli Zaretskii <eliz@gnu.org>
632
633 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
634 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
635
6362011-08-16 Ken Brown <kbrown@cornell.edu>
637
638 Fix memory allocation problems in Cygwin build (Bug#9273).
639
640 * unexcw.c ( __malloc_initialized): Declare external variable.
641 (fixup_executable): Force the dumped emacs to reinitialize malloc.
642
643 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
644 New variables.
645 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
646 dumped emacs.
647 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
648 in the static heap.
649 [CYGWIN] (special_realloc): New function.
650 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
651 requests to realloc storage in the static heap.
652
6532011-08-15 Paul Eggert <eggert@cs.ucla.edu>
654
655 * bidi.c (bidi_initialize): Remove unused local.
656
6572011-08-15 Eli Zaretskii <eliz@gnu.org>
658
659 * biditype.h: File removed.
660
661 * bidimirror.h: File removed.
662
663 * deps.mk (bidi.o): Remove biditype.h and
664 bidimirror.h.
665
666 * makefile.w32-in ($(BLD)/bidi.$(O)): Remove biditype.h and
667 bidimirror.h.
668
669 * dispextern.h: Fix a typo in the comment to bidi_type_t.
670
671 * chartab.c: Improve commentary for the uniprop_table API.
672
673 * bidi.c (bidi_paragraph_init): Support zero value of
674 bidi_ignore_explicit_marks_for_paragraph_level.
675 (bidi_initialize): Use uniprop_table instead of including
676 biditype.h and bidimirror.h.
677
678 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
679 coordinates of the iterator when restoring from ppos_it.
680 (Bug#9296)
681
6822011-08-14 Kenichi Handa <handa@m17n.org>
683
684 * process.c (create_process): Call setup_process_coding_systems
685 after the pid of the process is set to -1 (Bug#8162).
686
6872011-08-14 Eli Zaretskii <eliz@gnu.org>
688
689 * xdisp.c (move_it_in_display_line_to): Don't invoke
690 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
691 ppos_it. Fixes vertical cursor motion when line beginning is
692 covered by an image. (Bug#9296)
693
6942011-08-14 Jan Djärv <jan.h.d@swipnet.se>
695
696 * nsterm.h (ns_run_ascript): Declare.
697 (NSAPP_DATA2_RUNASSCRIPT): Define.
698
699 * nsfns.m (as_script, as_result, as_status): New static variables.
700 (ns_run_ascript): New function.
701 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
702 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
703 the event loop. Get status from as_status (Bug#7276).
704
705 * nsterm.m (sendEvent): If event is NSApplicationDefined and
706 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
707 the event loop (Bug#7276).
708
7092011-08-14 Andreas Schwab <schwab@linux-m68k.org>
710
711 * gnutls.c (QCgnutls_bootprop_priority)
712 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
713 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
714 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
715 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
716 (QCgnutls_bootprop_verify_hostname_error)
717 (QCgnutls_bootprop_callbacks_verify): Rename from
718 Qgnutls_bootprop_..., all uses changed.
719
720 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
721 uses changed.
722
7232011-08-14 Paul Eggert <eggert@cs.ucla.edu>
724
725 * xfaces.c (Qframe_set_background_mode): Now static.
726 * dispextern.h (Qframe_set_background_mode): Remove decl.
727
728 * process.c (Fnetwork_interface_info): Declare local only if needed.
729
7302011-08-13 Jan Djärv <jan.h.d@swipnet.se>
731
732 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
733 (Fnetwork_interface_list): Allocate in increments of bytes instead
734 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
735 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
736 sockaddr.
737 (struct ifflag_def): notrailers is smart on OSX.
738 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
739 Get hardware address with getifaddrs if available.
740
7412011-08-12 Eli Zaretskii <eliz@gnu.org>
742
743 * xdisp.c (iterate_out_of_display_property): xassert that
744 IT->position is set to within IT->object's boundaries. Break from
745 the loop as soon as EOB is reached; avoids infloops in redisplay
746 when IT->position is set up wrongly due to some bug.
747 Set IT->current to match the bidi iterator unconditionally.
748 (push_display_prop): Allow GET_FROM_STRING as IT->method on
749 entry. Force push_it to save on the stack the current
750 buffer/string position, to be restored by pop_it. Fix flags in
751 the iterator structure wrt the object coming from a display
752 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
753 properties. (Bug#9284)
754
7552011-08-09 Andreas Schwab <schwab@linux-m68k.org>
756
757 * fontset.c (fontset_get_font_group): Add proper type checks.
758 (Bug#9172)
759
7602011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
761
762 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
763 and LC_VERSION_MIN_MACOSX.
764 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
765 (dump_it) [LC_FUNCTION_STARTS]: Use it.
766
7672011-08-08 Eli Zaretskii <eliz@gnu.org>
768
769 * xdisp.c (forward_to_next_line_start): Allow to use the
770 no-display-properties-and-no-overlays under bidi display.
771 Set disp_pos in the bidi iterator to avoid searches for display
772 properties and overlays.
773
7742011-08-08 Chong Yidong <cyd@stupidchicken.com>
775
776 * editfns.c (Fset_time_zone_rule): Document relationship with the
777 setenv function.
778
779 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
780 the font entity extracted from the cache (Bug#8109).
781
7822011-08-07 Chong Yidong <cyd@stupidchicken.com>
783
784 * composite.c (autocmp_chars): Don't reset point. That is done by
785 restore_point_unwind (Bug#5984).
786
7872011-08-07 Juri Linkov <juri@jurta.org>
788
789 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
790 to show the arg `TIME' instead of `TIMEVAL'.
791
7922011-08-06 Eli Zaretskii <eliz@gnu.org>
793
794 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
795 display property strides EOL and includes a newline, as in
796 longlines-mode. (Bug#9254)
797 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
798 word-wrap under bidirectional display. (Bug#9224)
799
800 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
801 is non-zero, even if the data buffer is NULL. Fixes a crash in
802 vertical-motion with longlines-mode. (Bug#9254)
803
8042011-08-05 Eli Zaretskii <eliz@gnu.org>
805
806 * bidi.c <bidi_cache_total_alloc>: Now static.
807 (bidi_initialize): Initialize bidi_cache_total_alloc.
808
809 * xdisp.c (display_line): Release buffer allocated for shelved bidi
810 cache. (Bug#9221)
811
812 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
813 amount allocated this far in `bidi_cache_total_alloc'.
814 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
815 non-zero, only free the data buffer without restoring the cache
816 contents. All callers changed.
817
818 * dispextern.h (bidi_unshelve_cache): Update prototype.
819
820 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
821 (move_it_in_display_line, move_it_to)
822 (move_it_vertically_backward, move_it_by_lines): Replace the call
823 to xfree to an equivalent call to bidi_unshelve_cache.
824 (move_it_in_display_line_to): Fix logic of returning
825 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
826
8272011-08-05 Eli Zaretskii <eliz@gnu.org>
828
829 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
830 came from a string character with a `cursor' property. (Bug#9229)
831
8322011-08-04 Jan Djärv <jan.h.d@swipnet.se>
833
834 * Makefile.in (LIB_PTHREAD): New variable.
835 (LIBES): Add LIB_PTHREAD (Bug#9216).
836
837 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
838 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
839
8402011-08-04 Andreas Schwab <schwab@linux-m68k.org>
841
842 * regex.c (re_iswctype): Remove some redundant boolean
843 conversions.
844
8452011-08-04 Jan Djärv <jan.h.d@swipnet.se>
846
847 * xterm.c (x_find_topmost_parent): New function.
848 (x_set_frame_alpha): Find topmost parent window with
849 x_find_topmost_parent and set the property there also (bug#9181).
850 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
851
8522011-08-04 Paul Eggert <eggert@cs.ucla.edu>
853
854 * callproc.c (Fcall_process): Avoid vfork clobbering
855 the local vars buffer, coding_systems, current_dir.
856
8572011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
858
859 * keymap.c (Fmake_composed_keymap): Move to subr.el.
860
8612011-08-03 Paul Eggert <eggert@cs.ucla.edu>
862
863 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
864 so that it is not optimized away.
865
866 * xdisp.c (compute_display_string_pos): Remove unused local.
867
8682011-08-02 Eli Zaretskii <eliz@gnu.org>
869
870 Fix slow cursor motion and scrolling in large buffers with
871 selective display, like Org Mode buffers. (Bug#9218)
872
873 * dispextern.h (struct bidi_it): New member disp_prop_p.
874
875 * xdisp.c: Remove one-slot cache of display string positions.
876 (compute_display_string_pos): Accept an additional argument
877 DISP_PROP_P; callers changed. Scan at most 5K characters forward
878 for a display string or property. If found, set DISP_PROP_P
879 non-zero.
880
881 * bidi.c (bidi_fetch_char): Accept an additional argument
882 DISP_PROP_P, and pass it to compute_display_string_pos.
883 Only handle text covered by a display string if DISP_PROP_P is returned
884 non-zero. All callers of bidi_fetch_char changed.
885
8862011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
887
888 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
889
8902010-12-03 Don March <don@ohspite.net>
891
892 * keymap.c (Fdefine_key): Fix non-prefix key error message when
893 last character M-[char] is translated to ESC [char] (bug#7541).
894
8952011-08-02 Kenichi Handa <handa@m17n.org>
896
897 * lisp.h (uniprop_table): Extern it.
898
899 * chartab.c (uniprop_table): Make it non-static.
900
9012011-08-01 Eli Zaretskii <eliz@gnu.org>
902
903 * xdisp.c (forward_to_next_line_start): Accept additional argument
904 BIDI_IT_PREV, and store into it the state of the bidi iterator had
905 on the newline.
906 (reseat_at_next_visible_line_start): Use the bidi iterator state
907 returned by forward_to_next_line_start to restore the state of
908 it->bidi_it after backing up to previous newline. (Bug#9212)
909
9102011-07-30 Andreas Schwab <schwab@linux-m68k.org>
911
912 * regex.c (re_comp): Protoize.
913 (re_exec): Fix return type.
914 (regexec): Fix type of `ret'. (Bug#9203)
915
12011-07-29 Paul Eggert <eggert@cs.ucla.edu> 9162011-07-29 Paul Eggert <eggert@cs.ucla.edu>
2 917
3 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169). 918 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
@@ -315,8 +1230,8 @@
315 1230
316 * xdisp.c (move_it_in_display_line_to): Record the best matching 1231 * xdisp.c (move_it_in_display_line_to): Record the best matching
317 position for TO_CHARPOS while scanning the line, and restore it on 1232 position for TO_CHARPOS while scanning the line, and restore it on
318 exit if none of the characters scanned was an exact match. Fixes 1233 exit if none of the characters scanned was an exact match.
319 vertical-motion and pos-visible-in-window-p under bidi redisplay 1234 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
320 when exact match is impossible due to invisible text, and the 1235 when exact match is impossible due to invisible text, and the
321 lines are truncated. 1236 lines are truncated.
322 1237
@@ -501,8 +1416,8 @@
501 (reseat_to_string): Initialize bidi_it->string.s and 1416 (reseat_to_string): Initialize bidi_it->string.s and
502 bidi_it->string.schars. 1417 bidi_it->string.schars.
503 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to 1418 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
504 NULL (avoids a crash in bidi_paragraph_init). Initialize 1419 NULL (avoids a crash in bidi_paragraph_init).
505 itb.string.lstring. 1420 Initialize itb.string.lstring.
506 (init_iterator): Call bidi_init_it only of a valid 1421 (init_iterator): Call bidi_init_it only of a valid
507 buffer position was specified. Initialize paragraph_embedding to 1422 buffer position was specified. Initialize paragraph_embedding to
508 L2R. 1423 L2R.
@@ -518,12 +1433,12 @@
518 (init_iterator, reseat_1, reseat_to_string): Initialize the 1433 (init_iterator, reseat_1, reseat_to_string): Initialize the
519 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS 1434 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
520 when iterating on a string not from display properties). 1435 when iterating on a string not from display properties).
521 (compute_display_string_pos, compute_display_string_end): Fix 1436 (compute_display_string_pos, compute_display_string_end):
522 calculation of the object to scan. Fixes an error when using 1437 Fix calculation of the object to scan. Fixes an error when using
523 arrow keys. 1438 arrow keys.
524 (next_element_from_buffer): Don't abort when IT_CHARPOS is before 1439 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
525 base_level_stop; instead, set base_level_stop to BEGV. Fixes 1440 base_level_stop; instead, set base_level_stop to BEGV.
526 crashes in vertical-motion. 1441 Fixes crashes in vertical-motion.
527 (next_element_from_buffer): Improve commentary for when 1442 (next_element_from_buffer): Improve commentary for when
528 the iterator is before prev_stop. 1443 the iterator is before prev_stop.
529 (init_iterator): Initialize bidi_p from the default value of 1444 (init_iterator): Initialize bidi_p from the default value of
@@ -536,8 +1451,8 @@
536 (next_element_from_string): Support bidi reordering of Lisp 1451 (next_element_from_string): Support bidi reordering of Lisp
537 strings. 1452 strings.
538 (handle_stop_backwards): Support Lisp strings as well. 1453 (handle_stop_backwards): Support Lisp strings as well.
539 (display_string): Support display of R2L glyph rows. Use 1454 (display_string): Support display of R2L glyph rows.
540 IT_STRING_CHARPOS when displaying from a Lisp string. 1455 Use IT_STRING_CHARPOS when displaying from a Lisp string.
541 (init_iterator): Don't initialize it->bidi_p for strings 1456 (init_iterator): Don't initialize it->bidi_p for strings
542 here. 1457 here.
543 (reseat_to_string): Initialize it->bidi_p for strings here. 1458 (reseat_to_string): Initialize it->bidi_p for strings here.
@@ -619,8 +1534,8 @@
619 displayed in margins. (Bug#8133) (Bug#8867) 1534 displayed in margins. (Bug#8133) (Bug#8867)
620 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past 1535 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
621 TO_CHARPOS. 1536 TO_CHARPOS.
622 (pos_visible_p): Support positions in bidi-reordered lines. Save 1537 (pos_visible_p): Support positions in bidi-reordered lines.
623 and restore bidi cache. 1538 Save and restore bidi cache.
624 1539
625 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int. 1540 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
626 (bidi_paragraph_info): Delete unused struct. 1541 (bidi_paragraph_info): Delete unused struct.
@@ -640,8 +1555,8 @@
640 `len' according to what STRING_CHAR_AND_LENGTH expects. 1555 `len' according to what STRING_CHAR_AND_LENGTH expects.
641 (bidi_paragraph_init, bidi_resolve_explicit_1) 1556 (bidi_paragraph_init, bidi_resolve_explicit_1)
642 (bidi_resolve_explicit, bidi_resolve_weak) 1557 (bidi_resolve_explicit, bidi_resolve_weak)
643 (bidi_level_of_next_char, bidi_move_to_visually_next): Support 1558 (bidi_level_of_next_char, bidi_move_to_visually_next):
644 iteration over a string. 1559 Support iteration over a string.
645 (bidi_set_sor_type, bidi_resolve_explicit_1) 1560 (bidi_set_sor_type, bidi_resolve_explicit_1)
646 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit 1561 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
647 can now be zero (for strings); special values 0 and -1 were 1562 can now be zero (for strings); special values 0 and -1 were
@@ -672,20 +1587,20 @@
672 (bidi_cache_fetch_state, bidi_cache_search) 1587 (bidi_cache_fetch_state, bidi_cache_search)
673 (bidi_cache_find_level_change, bidi_cache_ensure_space) 1588 (bidi_cache_find_level_change, bidi_cache_ensure_space)
674 (bidi_cache_iterator_state, bidi_cache_find) 1589 (bidi_cache_iterator_state, bidi_cache_find)
675 (bidi_find_other_level_edge, bidi_cache_start_stack): All 1590 (bidi_find_other_level_edge, bidi_cache_start_stack):
676 variables related to cache indices are now EMACS_INT. 1591 All variables related to cache indices are now EMACS_INT.
677 1592
678 * dispextern.h (struct bidi_string_data): New structure. 1593 * dispextern.h (struct bidi_string_data): New structure.
679 (struct bidi_it): New member `string'. Make flag members be 1-bit 1594 (struct bidi_it): New member `string'. Make flag members be 1-bit
680 fields, and put them last in the struct. 1595 fields, and put them last in the struct.
681 (compute_display_string_pos, compute_display_string_end): Update 1596 (compute_display_string_pos, compute_display_string_end):
682 prototypes. 1597 Update prototypes.
683 (bidi_push_it, bidi_pop_it): Add prototypes. 1598 (bidi_push_it, bidi_pop_it): Add prototypes.
684 (struct iterator_stack_entry): New members bidi_p, 1599 (struct iterator_stack_entry): New members bidi_p,
685 paragraph_embedding, and from_disp_prop_p. 1600 paragraph_embedding, and from_disp_prop_p.
686 (struct it): Member bidi_p is now a bit field 1 bit wide. 1601 (struct it): Member bidi_p is now a bit field 1 bit wide.
687 (bidi_shelve_cache, bidi_unshelve_cache): Declare 1602 (bidi_shelve_cache, bidi_unshelve_cache):
688 prototypes. 1603 Declare prototypes.
689 1604
690 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector) 1605 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
691 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors 1606 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
@@ -967,7 +1882,7 @@
967 (char_table_set_range): Adjuted for the above change. 1882 (char_table_set_range): Adjuted for the above change.
968 (map_sub_char_table): Delete args default_val and parent. Add arg 1883 (map_sub_char_table): Delete args default_val and parent. Add arg
969 top. Give decoded values to a Lisp function. 1884 top. Give decoded values to a Lisp function.
970 (map_char_table): Adjusted for the above change. Give decoded 1885 (map_char_table): Adjust for the above change. Give decoded
971 values to a Lisp function. Gcpro more variables. 1886 values to a Lisp function. Gcpro more variables.
972 (uniprop_table_uncompress) 1887 (uniprop_table_uncompress)
973 (uniprop_decode_value_run_length): New functions. 1888 (uniprop_decode_value_run_length): New functions.
@@ -984,10 +1899,10 @@
984 and Sput_unicode_property_internal. Defvar_lisp 1899 and Sput_unicode_property_internal. Defvar_lisp
985 char-code-property-alist. 1900 char-code-property-alist.
986 1901
987 * composite.c (CHAR_COMPOSABLE_P): Adjusted for the change of 1902 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
988 Vunicode_category_table. 1903 Vunicode_category_table.
989 1904
990 * font.c (font_range): Adjusted for the change of 1905 * font.c (font_range): Adjust for the change of
991 Vunicode_category_table. 1906 Vunicode_category_table.
992 1907
9932011-07-07 Dan Nicolaescu <dann@ics.uci.edu> 19082011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
@@ -1016,14 +1931,14 @@
1016 (store_monospaced_changed): Add comment. Call dpyinfo_valid. 1931 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
1017 (struct xsettings): Move font inside HAVE_XFT. 1932 (struct xsettings): Move font inside HAVE_XFT.
1018 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines. 1933 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
1019 (GSETTINGS_MONO_FONT): Renamed from SYSTEM_MONO_FONT. 1934 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
1020 Move inside HAVE_XFT. 1935 Move inside HAVE_XFT.
1021 (something_changed_gsettingsCB): Renamed from something_changedCB. 1936 (something_changed_gsettingsCB): Rename from something_changedCB.
1022 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME 1937 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
1023 also. 1938 also.
1024 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines. 1939 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
1025 (GCONF_MONO_FONT): Renamed from SYSTEM_MONO_FONT. Move inside HAVE_XFT. 1940 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
1026 (something_changed_gconfCB): Renamed from something_changedCB. 1941 (something_changed_gconfCB): Rename from something_changedCB.
1027 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also. 1942 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
1028 (parse_settings): Move check for font inside HAVE_XFT. 1943 (parse_settings): Move check for font inside HAVE_XFT.
1029 (read_settings, apply_xft_settings): Add comment. 1944 (read_settings, apply_xft_settings): Add comment.
@@ -1036,8 +1951,8 @@
1036 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE 1951 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
1037 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT. 1952 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
1038 (xsettings_initialize): Call init_gsettings last. 1953 (xsettings_initialize): Call init_gsettings last.
1039 (xsettings_get_system_font, xsettings_get_system_normal_font): Add 1954 (xsettings_get_system_font, xsettings_get_system_normal_font):
1040 comment. 1955 Add comment.
1041 1956
10422011-07-05 Paul Eggert <eggert@cs.ucla.edu> 19572011-07-05 Paul Eggert <eggert@cs.ucla.edu>
1043 1958
@@ -1220,7 +2135,7 @@
1220 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj 2135 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
1221 to NULL. 2136 to NULL.
1222 2137
1223 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Renamed from 2138 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
1224 GCONF_CFLAGS/LIBS. 2139 GCONF_CFLAGS/LIBS.
1225 2140
12262011-06-29 Martin Rudalics <rudalics@gmx.at> 21412011-06-29 Martin Rudalics <rudalics@gmx.at>
@@ -1967,7 +2882,7 @@
1967 2882
1968 * character.c, coding.c, doprnt.c, editfns.c, eval.c: 2883 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
1969 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND. 2884 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
1970 * lisp.h (STRING_BYTES_BOUND): Renamed from STRING_BYTES_MAX. 2885 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
1971 2886
1972 * character.c (string_escape_byte8): Fix nbytes/nchars typo. 2887 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
1973 2888
@@ -2076,8 +2991,8 @@
2076 Qclone_number. Remove external declaration of Qdelete_window. 2991 Qclone_number. Remove external declaration of Qdelete_window.
2077 (Fbuffer_list): Rewrite doc-string. Minor restructuring of 2992 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
2078 code. 2993 code.
2079 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer): Run 2994 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
2080 Qbuffer_list_update_hook if allowed. 2995 Run Qbuffer_list_update_hook if allowed.
2081 (Fother_buffer): Rewrite doc-string. Major rewrite for new 2996 (Fother_buffer): Rewrite doc-string. Major rewrite for new
2082 buffer list implementation. 2997 buffer list implementation.
2083 (other_buffer_safely): New function. 2998 (other_buffer_safely): New function.
@@ -2088,8 +3003,8 @@
2088 (record_buffer): Inhibit quitting and rewrite using quittable 3003 (record_buffer): Inhibit quitting and rewrite using quittable
2089 functions. Run Qbuffer_list_update_hook if allowed. 3004 functions. Run Qbuffer_list_update_hook if allowed.
2090 (Frecord_buffer, Funrecord_buffer): New functions. 3005 (Frecord_buffer, Funrecord_buffer): New functions.
2091 (switch_to_buffer_1, Fswitch_to_buffer): Remove. Move 3006 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
2092 switch-to-buffer to window.el. 3007 Move switch-to-buffer to window.el.
2093 (bury-buffer): Move to window.el. 3008 (bury-buffer): Move to window.el.
2094 (Vbuffer_list_update_hook): New variable. 3009 (Vbuffer_list_update_hook): New variable.
2095 3010
@@ -2117,8 +3032,8 @@
2117 (select_window_norecord, select_frame_norecord): Move in front 3032 (select_window_norecord, select_frame_norecord): Move in front
2118 of run_window_configuration_change_hook. Remove now obsolete 3033 of run_window_configuration_change_hook. Remove now obsolete
2119 declarations. 3034 declarations.
2120 (Fset_window_buffer): Rewrite doc-string. Call 3035 (Fset_window_buffer): Rewrite doc-string.
2121 Qrecord_window_buffer. 3036 Call Qrecord_window_buffer.
2122 (keys_of_window): Move binding for other-window to window.el. 3037 (keys_of_window): Move binding for other-window to window.el.
2123 3038
21242011-06-11 Chong Yidong <cyd@stupidchicken.com> 30392011-06-11 Chong Yidong <cyd@stupidchicken.com>
@@ -2200,8 +3115,8 @@
2200 orig_total_lines. 3115 orig_total_lines.
2201 (Fdelete_window, delete_window): Remove. Window deletion is 3116 (Fdelete_window, delete_window): Remove. Window deletion is
2202 handled by window.el. 3117 handled by window.el.
2203 (window_loop): Remove DELETE_OTHER_WINDOWS case. Replace 3118 (window_loop): Remove DELETE_OTHER_WINDOWS case.
2204 Fdelete_window calls with calls to Qdelete_window. 3119 Replace Fdelete_window calls with calls to Qdelete_window.
2205 (Fdelete_other_windows): Remove. Deleting other windows is 3120 (Fdelete_other_windows): Remove. Deleting other windows is
2206 handled by window.el. 3121 handled by window.el.
2207 (window_fixed_size_p): Remove. Fixed-sizeness of windows is 3122 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
@@ -2224,8 +3139,8 @@
2224 (grow_mini_window, shrink_mini_window): Implement by calling 3139 (grow_mini_window, shrink_mini_window): Implement by calling
2225 Qresize_root_window_vertically, resize_window_check and 3140 Qresize_root_window_vertically, resize_window_check and
2226 resize_window_apply. 3141 resize_window_apply.
2227 (saved_window, Fset_window_configuration, save_window_save): Do 3142 (saved_window, Fset_window_configuration, save_window_save):
2228 not handle orig_top_line, orig_total_lines, and 3143 Do not handle orig_top_line, orig_total_lines, and
2229 resize_proportionally. 3144 resize_proportionally.
2230 (window_min_height, window_min_width): Move to window.el. 3145 (window_min_height, window_min_width): Move to window.el.
2231 (keys_of_window): Move bindings for delete-other-windows, 3146 (keys_of_window): Move bindings for delete-other-windows,
@@ -2245,8 +3160,8 @@
2245 * xdisp.c (init_xdisp): Don't use set_window_height but set 3160 * xdisp.c (init_xdisp): Don't use set_window_height but set
2246 heights directly. 3161 heights directly.
2247 3162
2248 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): Use 3163 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
2249 resize_frame_windows instead of change_window_heights and run 3164 Use resize_frame_windows instead of change_window_heights and run
2250 run_window_configuration_change_hook. 3165 run_window_configuration_change_hook.
2251 3166
2252 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows 3167 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
@@ -2268,8 +3183,8 @@
2268 (Frun_window_configuration_change_hook, make_parent_window) 3183 (Frun_window_configuration_change_hook, make_parent_window)
2269 (resize_window_check, resize_window_apply, Fresize_window_apply) 3184 (resize_window_check, resize_window_apply, Fresize_window_apply)
2270 (resize_frame_windows, Fsplit_window_internal) 3185 (resize_frame_windows, Fsplit_window_internal)
2271 (Fdelete_window_internal, Fresize_mini_window_internal): New 3186 (Fdelete_window_internal, Fresize_mini_window_internal):
2272 functions. 3187 New functions.
2273 (syms_of_window): New variables Vwindow_splits and Vwindow_nest. 3188 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
2274 3189
22752011-06-08 Martin Rudalics <rudalics@gmx.at> 31902011-06-08 Martin Rudalics <rudalics@gmx.at>
@@ -2289,8 +3204,8 @@
2289 (Fwindow_nest, Fset_window_nest, Fwindow_new_total) 3204 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
2290 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers) 3205 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
2291 (Fset_window_prev_buffers, Fwindow_next_buffers) 3206 (Fset_window_prev_buffers, Fwindow_next_buffers)
2292 (Fset_window_next_buffers, Fset_window_clone_number): New 3207 (Fset_window_next_buffers, Fset_window_clone_number):
2293 functions. 3208 New functions.
2294 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start) 3209 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
2295 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p): 3210 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
2296 Doc-string fixes. 3211 Doc-string fixes.
@@ -2316,10 +3231,10 @@
2316 (Fwindow_top_line, window_body_lines, Fwindow_body_size) 3231 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
2317 (Fwindow_list_1): New functions. 3232 (Fwindow_list_1): New functions.
2318 (window_box_text_cols): Replace with window_body_cols. 3233 (window_box_text_cols): Replace with window_body_cols.
2319 (Fwindow_width, Fscroll_left, Fscroll_right): Use 3234 (Fwindow_width, Fscroll_left, Fscroll_right):
2320 window_body_cols instead of window_box_text_cols. 3235 Use window_body_cols instead of window_box_text_cols.
2321 (delete_window, Fset_window_configuration): Call 3236 (delete_window, Fset_window_configuration):
2322 delete_all_subwindows with window as argument. 3237 Call delete_all_subwindows with window as argument.
2323 (delete_all_subwindows): Take a window as argument and not a 3238 (delete_all_subwindows): Take a window as argument and not a
2324 structure. Rewrite. 3239 structure. Rewrite.
2325 (window_loop): Remove handling of GET_LRU_WINDOW and 3240 (window_loop): Remove handling of GET_LRU_WINDOW and
@@ -2330,8 +3245,8 @@
2330 window_box_text_cols. delete_all_subwindows now takes a 3245 window_box_text_cols. delete_all_subwindows now takes a
2331 Lisp_Object as argument. 3246 Lisp_Object as argument.
2332 3247
2333 * indent.c (compute_motion, Fcompute_motion): Use 3248 * indent.c (compute_motion, Fcompute_motion):
2334 window_body_cols instead of window_box_text_cols. 3249 Use window_body_cols instead of window_box_text_cols.
2335 3250
2336 * frame.c (delete_frame): Call delete_all_subwindows with root 3251 * frame.c (delete_frame): Call delete_all_subwindows with root
2337 window as argument. 3252 window as argument.