Add len>0 as condition for main loop.
Abort if reach a null interval.
(Fset_text_properties): Abort if reach a null interval.
(Ftext_properties_at, Fget_text_property):
Return nil if POS is end of OBJECT.
(add_properties): Use NILP to test result of Fequal.
No longer inline.
(remove_properties): No longer inline.
(set_properties): Total rewrite as function.
(validate_interval_range): Don't alter *begin at end of buffer.
But do search for a position just before the end.
Return null for an empty string.
(validate_interval_range): Allow 0 as position in string.
Add 1 to specified string positions.
(Fprevious_single_property_change): Subtract 1 if object is string.
(Fnext_single_property_change): Likewise.
(Fprevious_property_change, Fnext_property_change): Likewise.
(remove_properties): Call modify_buffer.
(add_properties): Likewise.
(Fadd_text_properties): Pass new arg to add_properties.
(Fremove_text_properties): Likewise.
(add_properties, remove_properties): New arg OBJECT. Record undo info.
(Fput_text_property): New function.
(set_point): Considerable rewrite. Handle intervals both
before and after the old and new point values.
Redo handling of invisible intervals, and of motion hooks.
(textget): New function.
(graft_intervals_into_buffer):
create_root_interval needs Lisp object arg.
Set tree to new root interval.
Don't test TREE_LENGTH if buffer has no intervals.
Rearrange code to copy properties so that it really
does merge the inserted ones into the inherited ones.
(traverse_intervals): Pass `arg' on recursive calls.
(split_interval_left): Use new_length as basis for length of new.
(traverse_intervals): New arg ARG.
functions to scrolbar.el.
* scrollbar.el (scroll-bar-mode, scroll-bar-mode): Here they are.
Make scroll-bar-mode set the {vertical,horizontal}-scrollbars
parameters in default-frame-alist, and modify all extant screens
using the correct parameter names.
number of arguments to unbind_to.
* lread.c (Feval_buffer): Same.
* window.c (Fscroll_other_window): Same.
* window.c (Fset_window_configuration): Pass the proper number of
arguments to Fselect_frame.
the sigchld handler clear *input_available_clear_time.
(wait_reading_process_input): Check for process activity after
setting the timeout and calling set_waiting_for_input.
(sigchld_handler): If the process which has exited is one we care
about, clear *input_available_clear_time.
* process.c (process_send_signal): Use TERMIOS functions in
preference to BSD ioctls. Some systems attempt to provide the BSD
functions for backward compatibility, and get it wrong.
HAVE_TERMIO.
* keyboard.c (echo_char): Apply XINT to c before passing it to
push_key_description.
* keyboard.c (recursive_edit_1, command_loop_1): Pass the proper
number of arguments to unbind_to.
* lread.c (Feval_buffer): Same.
* window.c (Fscroll_other_window): Same.
* keyboard.c (command_loop_1): Apply XINT to c before passing it
to internal_self_insert and direct_output_for_insert.
* keyboard.c (make_lispy_movement): Rename the variable `part'
declared in the block handling scrollbar movement to `part_sym',
to avoid potential conflicts with the argument named `part'.
Apparently the semantics of expressions like this are unclear.
* keyboard.c (Fread_key_sequence): Backslash the newlines in this
docstring.
* textprop.c (Fget_text_property): Same.
switching frames, to make sure we'll get a switch-frame event.
(Vlast_event_frame): Add external declaration for this here.
* frame.c (Fdelete_frame): If FRAME is a dead frame, return Qnil,
not nothing.
on non-USG systems, which supposedly have a logb function.
(Fround): Always implement this by calling floor, even on systems
that have rint.
* floatfns.c (IN_FLOAT): Make this work properly when SIGTYPE is void.
Vprocess_environment to its own function.
(set_process_environment): This is that.
* emacs.c (main): Call set_process_environment earlier than
init_callproc.