- if (lines > 0) {
- if (scroll_size)
- memmove (scroll_top, scroll_top + size, scroll_size*TSIZE);
- for (i = 0; i < size; i++)
- scroll_top[i+scroll_size] = erase_char;
- if (selstart > scroll_top &&
- selstart < scroll_top + size + scroll_size) {
- selstart -= size;
- if (selstart < scroll_top)
- selstart = scroll_top;
- }
- if (selend > scroll_top &&
- selend < scroll_top + size + scroll_size) {
- selend -= size;
- if (selend < scroll_top)
- selend = scroll_top;
- }
- if (scrtop_is_disptop)
- disptop = scrtop;
- else
- if (disptop > scroll_top &&
- disptop < scroll_top + size + scroll_size) {
- disptop -= size;
- if (disptop < scroll_top)
- disptop = scroll_top;
- }
- } else {
- if (scroll_size)
- memmove (scroll_top + size, scroll_top, scroll_size*TSIZE);
- for (i = 0; i < size; i++)
- scroll_top[i] = erase_char;
- if (selstart > scroll_top &&
- selstart < scroll_top + size + scroll_size) {
- selstart += size;
- if (selstart > scroll_top + size + scroll_size)
- selstart = scroll_top + size + scroll_size;
- }
- if (selend > scroll_top &&
- selend < scroll_top + size + scroll_size) {
- selend += size;
- if (selend > scroll_top + size + scroll_size)
- selend = scroll_top + size + scroll_size;
- }
- if (scrtop_is_disptop)
- disptop = scrtop;
- else if (disptop > scroll_top &&
- disptop < scroll_top + size + scroll_size) {
- disptop += size;
- if (disptop > scroll_top + size + scroll_size)
- disptop = scroll_top + size + scroll_size;