diff options
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 1021 |
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 @@ | |||
| 1 | 2011-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 | |||
| 10 | 2011-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 | |||
| 15 | 2011-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 | |||
| 29 | 2011-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 | |||
| 37 | 2011-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 | |||
| 42 | 2011-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 | |||
| 49 | 2011-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 | |||
| 59 | 2011-08-27 Juanma Barranquero <lekktu@gmail.com> | ||
| 60 | |||
| 61 | * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h. | ||
| 62 | |||
| 63 | 2011-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 | |||
| 487 | 2011-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 | |||
| 492 | 2011-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 | |||
| 512 | 2011-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 | |||
| 518 | 2011-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 | |||
| 540 | 2011-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 | |||
| 545 | 2011-08-23 Chong Yidong <cyd@stupidchicken.com> | ||
| 546 | |||
| 547 | * nsfont.m (ns_otf_to_script): Fix typo. | ||
| 548 | |||
| 549 | 2011-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 | |||
| 554 | 2011-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 | |||
| 568 | 2011-08-23 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 569 | |||
| 570 | * cmds.c (Fself_insert_command): Mention post-self-insert-hook. | ||
| 571 | |||
| 572 | 2011-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 | |||
| 578 | 2011-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 | |||
| 584 | 2011-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 | |||
| 589 | 2011-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 | |||
| 600 | 2011-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 | |||
| 611 | 2011-08-18 Andreas Schwab <schwab@linux-m68k.org> | ||
| 612 | |||
| 613 | * process.c (Fnetwork_interface_list): Correctly determine buffer | ||
| 614 | size. | ||
| 615 | |||
| 616 | 2011-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 | |||
| 622 | 2011-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 | |||
| 627 | 2011-08-16 Ken Brown <kbrown@cornell.edu> | ||
| 628 | |||
| 629 | * gmalloc.c: Expand comment. | ||
| 630 | |||
| 631 | 2011-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 | |||
| 636 | 2011-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 | |||
| 653 | 2011-08-15 Paul Eggert <eggert@cs.ucla.edu> | ||
| 654 | |||
| 655 | * bidi.c (bidi_initialize): Remove unused local. | ||
| 656 | |||
| 657 | 2011-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 | |||
| 682 | 2011-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 | |||
| 687 | 2011-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 | |||
| 694 | 2011-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 | |||
| 709 | 2011-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 | |||
| 723 | 2011-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 | |||
| 730 | 2011-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 | |||
| 741 | 2011-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 | |||
| 755 | 2011-08-09 Andreas Schwab <schwab@linux-m68k.org> | ||
| 756 | |||
| 757 | * fontset.c (fontset_get_font_group): Add proper type checks. | ||
| 758 | (Bug#9172) | ||
| 759 | |||
| 760 | 2011-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 | |||
| 767 | 2011-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 | |||
| 774 | 2011-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 | |||
| 782 | 2011-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 | |||
| 787 | 2011-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 | |||
| 792 | 2011-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 | |||
| 804 | 2011-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 | |||
| 827 | 2011-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 | |||
| 832 | 2011-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 | |||
| 840 | 2011-08-04 Andreas Schwab <schwab@linux-m68k.org> | ||
| 841 | |||
| 842 | * regex.c (re_iswctype): Remove some redundant boolean | ||
| 843 | conversions. | ||
| 844 | |||
| 845 | 2011-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 | |||
| 852 | 2011-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 | |||
| 857 | 2011-08-03 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 858 | |||
| 859 | * keymap.c (Fmake_composed_keymap): Move to subr.el. | ||
| 860 | |||
| 861 | 2011-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 | |||
| 868 | 2011-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 | |||
| 886 | 2011-08-02 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 887 | |||
| 888 | * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE. | ||
| 889 | |||
| 890 | 2010-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 | |||
| 895 | 2011-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 | |||
| 901 | 2011-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 | |||
| 910 | 2011-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 | |||
| 1 | 2011-07-29 Paul Eggert <eggert@cs.ucla.edu> | 916 | 2011-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 | ||
| 993 | 2011-07-07 Dan Nicolaescu <dann@ics.uci.edu> | 1908 | 2011-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 | ||
| 1042 | 2011-07-05 Paul Eggert <eggert@cs.ucla.edu> | 1957 | 2011-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 | ||
| 1226 | 2011-06-29 Martin Rudalics <rudalics@gmx.at> | 2141 | 2011-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 | ||
| 2124 | 2011-06-11 Chong Yidong <cyd@stupidchicken.com> | 3039 | 2011-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 | ||
| 2275 | 2011-06-08 Martin Rudalics <rudalics@gmx.at> | 3190 | 2011-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. |