close to the top or bottom of a window, split at the closest
reasonable line. Give a helpful error message if the window is
too small to be split anywhere.
(mouse-split-window-horizontally): Similar changes.
INFOPATH, not INFODIR.
(Info-find-node): Don't try to set the info buffer's directory
according to Info-directory; that variable doesn't exist any more.
Instead, let Info-insert-dir set the current directory.
(Info-insert-dir): Properly check for upper- and lower-case forms
of "dir", with and without ".info" extension. Set the buffer's
default-directory to the directory containing the first dir file
we find, and cache it in Info-dir-contents-directory.
(Info-dir-contents-directory): New variable, to cache the
directory we decided to use as the merged directory's
default-directory.
Any non-null interval means print intervals.
Get rid of var obj1; just use obj.
(print): Never declare OBJ arg as `register'.
Special handling for strings with intervals.
(print_intervals): New function.
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.