Function: split-window-internal

Split window OLD.
Second argument TOTAL-SIZE specifies the number of lines or columns of the
new window. In any case TOTAL-SIZE must be a positive integer.

Third argument SIDE nil (or `below') specifies that the new window shall
be located below WINDOW. SIDE `above' means the new window shall be
located above WINDOW. In both cases TOTAL-SIZE specifies the number of
lines of the new window including space reserved for the mode and/or
header line.

SIDE t (or `right') specifies that the new window shall be located on
the right side of WINDOW. SIDE `left' means the new window shall be
located on the left of WINDOW. In both cases TOTAL-SIZE specifies the
number of columns of the new window including space reserved for fringes
and the scrollbar or a divider column.

Fourth argument NORMAL-SIZE specifies the normal size of the new window
according to the SIDE argument.

The new total and normal sizes of all involved windows must have been
set correctly. See the code of `split-window' for how this is done. (fn OLD TOTAL-SIZE SIDE NORMAL-SIZE)