Lines Matching +full:row +full:- +full:delay
159 #define cm__ 10 /* screen rel cursor motion, row, column */
166 #define nd__ 17 /* non-destructive space (cursor right) */
509 int value; /* CURSES value of key (9-bit) */
565 { 3, "\033[q", 0534 }, /* ka1 upper-left of keypad */
566 { 3, "\033[s", 0535 }, /* ka3 upper-right of keypad */
568 { 3, "\033[p", 0537 }, /* kc1 lower-left of keypad */
569 { 3, "\033[n", 0540 }, /* kc3 lower-right of keypad */
611 { 3, "\033Oq", 0534 }, /* ka1 upper-left of keypad */
612 { 3, "\033Os", 0535 }, /* ka3 upper-right of keypad */
614 { 3, "\033Op", 0537 }, /* kc1 lower-left of keypad */
615 { 3, "\033On", 0540 }, /* kc3 lower-right of keypad */
706 int row, column; local
709 orig = origin->first_line;
710 dest = destination->first_line;
712 for (row = 0;
713 row < (min(origin->Num_lines, destination->Num_lines));
714 row++)
717 column < (min(origin->Num_cols, destination->Num_cols));
720 dest->row[column] = orig->row[column];
721 dest->attributes[column] = orig->attributes[column];
723 dest->changed = orig->changed;
724 dest->scroll = orig->scroll;
725 dest->last_char = min(orig->last_char, destination->Num_cols);
726 orig = orig->next_screen;
727 dest = dest->next_screen;
729 destination->LX = min((destination->Num_cols - 1), origin->LX);
730 destination->LY = min((destination->Num_lines - 1), origin->LY);
731 destination->Attrib = origin->Attrib;
732 destination->scroll_up = origin->scroll_up;
733 destination->scroll_down = origin->scroll_down;
734 destination->SCROLL_CLEAR = origin->SCROLL_CLEAR;
904 Fildes = -1; in initscr()
912 if (Fildes == -1) in initscr()
919 while ((Fildes == -1) && (terminfo_path[counter] != NULL)) in initscr()
926 if (Fildes == -1) in initscr()
933 if (Fildes == -1) in initscr()
1041 Get_int() /* get a two-byte integer from the terminfo file */ in Get_int()
1056 return (-1); in Get_int()
1088 TERM_data_ptr--; in INFO_PARSE()
1089 TERM_data_ptr--; in INFO_PARSE()
1106 Num_names--; in INFO_PARSE()
1111 Num_bools--; in INFO_PARSE()
1119 Num_ints--; in INFO_PARSE()
1128 Num_strings--; in INFO_PARSE()
1129 if ((offset=Get_int()) != -1) in INFO_PARSE()
1152 Temp = (Temp * 10) + (*TERM_data_ptr - '0'); in AtoI()
1186 while (Spoint->next != NULL) in Key_Get()
1187 Spoint = Spoint->next; in Key_Get()
1188 Spoint->next = (struct KEY_STACK *) malloc(sizeof(struct KEY_STACK)); in Key_Get()
1189 Spoint = Spoint->next; in Key_Get()
1191 Spoint->next = NULL; in Key_Get()
1192 Spoint->element = (struct KEYS *) malloc(sizeof(struct KEYS)); in Key_Get()
1193 Spoint->element->string = String_table[key_def]; in Key_Get()
1194 Spoint->element->length = strlen(String_table[key_def]); in Key_Get()
1195 Spoint->element->value = Key_vals[Counter]; in Key_Get()
1196 Klen = strlen(Spoint->element->string); in Key_Get()
1206 if ((Spoint->element->length > 1) && in Key_Get()
1210 Spoint->next = (struct KEY_STACK *) malloc(sizeof(struct KEY_STACK)); in Key_Get()
1211 Spoint = Spoint->next; in Key_Get()
1212 Spoint->next = NULL; in Key_Get()
1213 Spoint->element = (struct KEYS *) malloc(sizeof(struct KEYS)); in Key_Get()
1214 Spoint->element->length = strlen(String_table[key_def]); in Key_Get()
1215 Spoint->element->string = malloc(Spoint->element->length + 1); in Key_Get()
1216 strcpy(Spoint->element->string, String_table[key_def]); in Key_Get()
1217 Spoint->element->value = Key_vals[Counter]; in Key_Get()
1218 Klen = strlen(Spoint->element->string); in Key_Get()
1223 Spoint->element->string[1] = 'O'; in Key_Get()
1225 Spoint->element->string[1] = '['; in Key_Get()
1245 while (Spoint->next != NULL) in keys_vt100()
1246 Spoint = Spoint->next; in keys_vt100()
1249 Spoint->next = (struct KEY_STACK *) malloc(sizeof(struct KEY_STACK)); in keys_vt100()
1250 Spoint = Spoint->next; in keys_vt100()
1251 Spoint->next = NULL; in keys_vt100()
1252 Spoint->element = &vt100[counter]; in keys_vt100()
1253 Klen = strlen(Spoint->element->string); in keys_vt100()
1308 Counter = (8 * Counter) + (*TERM_data_ptr - '0');
1312 TERM_data_ptr--;
1321 *Temp = *TERM_data_ptr - '@';
1470 tmp->row = malloc(columns + 1);
1471 tmp->attributes = malloc(columns + 1);
1472 tmp->prev_screen = NULL;
1473 tmp->next_screen = NULL;
1476 tmp->row[i] = ' ';
1477 tmp->attributes[i] = '\0';
1479 tmp->scroll = tmp->changed = FALSE;
1480 tmp->row[0] = '\0';
1481 tmp->attributes[0] = '\0';
1482 tmp->row[columns] = '\0';
1483 tmp->attributes[columns] = '\0';
1484 tmp->last_char = 0;
1497 Ntemp->SR = start_l;
1498 Ntemp->SC = start_c;
1499 Ntemp->Num_lines = lines;
1500 Ntemp->Num_cols = cols;
1501 Ntemp->LX = 0;
1502 Ntemp->LY = 0;
1503 Ntemp->scroll_down = Ntemp->scroll_up = 0;
1504 Ntemp->SCROLL_CLEAR = FALSE;
1505 Ntemp->Attrib = FALSE;
1506 Ntemp->first_line = temp_screen = Screenalloc(cols);
1507 Ntemp->first_line->number = 0;
1508 Ntemp->line_array = (struct _line **) malloc(LINES * sizeof(struct _line *));
1510 Ntemp->line_array[0] = Ntemp->first_line;
1514 temp_screen->next_screen = Screenalloc(cols);
1515 temp_screen->next_screen->number = i;
1516 temp_screen->next_screen->prev_screen = temp_screen;
1517 temp_screen = temp_screen->next_screen;
1518 Ntemp->line_array[i] = temp_screen;
1520 Ntemp->first_line->prev_screen = NULL;
1521 temp_screen->next_screen = NULL;
1533 int delay; local
1542 p1 = p_list[--place];
1543 p2 = p_list[--place];
1545 delay = 0;
1549 delay = atoi(Otemp);
1615 p1 = (p1 - 2 * (p1 % 16));
1616 p2 = (p2 - 2 * (p2 % 16));
1623 if (delay != 0)
1625 chars = delay * chars_per_millisecond;
1626 delay = chars;
1627 if ((chars - delay) > 0.0)
1628 delay++;
1629 for (; delay > 0; delay--)
1652 temp = Temp_Stack[--place];
1657 temp = Temp_Stack[--place];
1664 temp = Temp_Stack[--place];
1671 temp = Temp_Stack[--place];
1679 temp = Temp_Stack[--place];
1688 temp = Temp_Stack[--place];
1689 temp += Temp_Stack[--place];
1692 else if (*Otemp == '-')
1695 temp = Temp_Stack[--place];
1696 temp -= Temp_Stack[--place];
1702 temp = Temp_Stack[--place];
1703 temp *= Temp_Stack[--place];
1709 temp = Temp_Stack[--place];
1710 temp /= Temp_Stack[--place];
1716 temp = Temp_Stack[--place];
1717 temp %= Temp_Stack[--place];
1723 temp = Temp_Stack[--place];
1724 temp &= Temp_Stack[--place];
1730 temp = Temp_Stack[--place];
1731 temp |= Temp_Stack[--place];
1737 temp = Temp_Stack[--place];
1738 temp ^= Temp_Stack[--place];
1744 temp = Temp_Stack[--place];
1745 temp = (temp == Temp_Stack[--place]);
1751 temp = Temp_Stack[--place];
1752 temp = temp > Temp_Stack[--place];
1758 temp = Temp_Stack[--place];
1759 temp = temp < Temp_Stack[--place];
1765 putchar(Temp_Stack[--place]);
1780 temp = ! Temp_Stack[--place];
1786 temp = ~Temp_Stack[--place];
1793 Temp_Stack[place++] = p[*Otemp - '0'];
1799 Temp_Stack[place++] = variable[*Otemp - 'a'];
1805 variable[*Otemp - 'a'] = Temp_Stack[--place];
1834 int delay; local
1863 p[temp] = p_list[--place];
1866 delay = 0;
1898 if ((Cond_place > 0) && (Cond_Stack[Cond_place-1]))
1997 delay = atoi(Otemp);
2001 chars = delay * chars_per_millisecond;
2002 delay = chars;
2003 if ((chars - delay) > 0.0)
2004 delay++;
2009 for (; delay > 0; delay--)
2023 wmove(window, row, column) /* move cursor to indicated position in window */ in wmove() argument
2025 int row, column;
2027 if ((row < window->Num_lines) && (column < window->Num_cols))
2029 window->LX = column;
2030 window->LY = row;
2042 if (column > line->last_char)
2044 for (j = line->last_char; j < column; j++)
2046 line->row[j] = ' ';
2047 line->attributes[j] = '\0';
2050 line->last_char = column;
2051 line->row[column] = '\0';
2052 line->attributes[column] = '\0';
2053 line->changed = TRUE;
2063 window->SCROLL_CLEAR = CLEAR;
2064 window->scroll_up = window->scroll_down = 0;
2065 for (i = 0, tmp = window->first_line; i < window->Num_lines; i++, tmp = tmp->next_screen)
2066 clear_line(tmp, 0, window->Num_cols);
2073 int column, row; local
2076 window->SCROLL_CLEAR = CHANGE;
2077 column = window->LX;
2078 row = window->LY;
2079 for (row = 0, tmp = window->first_line; row < window->LY; row++)
2080 tmp = tmp->next_screen;
2081 clear_line(tmp, column, window->Num_cols);
2093 …derr, "columns=%d, lines=%d, SC=%d, SR=%d\n",window->Num_cols, window->Num_lines, window->SC, wind…
2094 …for (value = 0, temp = window->first_line; value < window->Num_lines; value++, temp = temp->next_s…
2096 if (temp->number == -1)
2098 if (temp->scroll)
2100 fprintf(stderr, "lc%d=%s|\n", temp->last_char, temp->row);
2102 …fprintf(stderr, "+-------------------- virtual screen ----------------------------------------+\n"…
2103 fprintf(stderr, "columns=%d, lines=%d \n",virtual_scr->Num_cols, virtual_scr->Num_lines);
2104 …for (value = 0, temp = virtual_scr->first_line; value < virtual_scr->Num_lines; value++, temp = te…
2106 if (temp->number == -1)
2108 if (temp->scroll)
2110 fprintf(stderr, "lc%d=%s|\n", temp->last_char, temp->row);
2112 fprintf(stderr, "columns=%d, lines=%d \n",curscr->Num_cols, curscr->Num_lines);
2113 …for (value = 0, temp = curscr->first_line; value < curscr->Num_lines; value++, temp = temp->next_s…
2114 fprintf(stderr, "line=%s|\n", temp->row);
2118 virtual_scr->SCROLL_CLEAR = FALSE;
2119 virtual_scr->scroll_down = virtual_scr->scroll_up = 0;
2130 for (line_counter = 0, user_line = window->first_line;
2131 line_counter < window->Num_lines; line_counter++)
2133 user_line->changed = TRUE;
2135 window->SCROLL_CLEAR = TRUE;
2148 if (window->SR >= virtual_scr->Num_lines)
2150 user_line = window->first_line;
2151 virtual_line = virtual_scr->first_line;
2152 virtual_scr->SCROLL_CLEAR = window->SCROLL_CLEAR;
2153 virtual_scr->LX = window->LX + window->SC;
2154 virtual_scr->LY = window->LY + window->SR;
2155 virtual_scr->scroll_up = window->scroll_up;
2156 virtual_scr->scroll_down = window->scroll_down;
2157 if ((last_window_refreshed == window) && (!window->SCROLL_CLEAR))
2159 for (line_counter = 0; line_counter < window->SR; line_counter++)
2161 virtual_line = virtual_line->next_screen;
2163 for (line_counter = 0; (line_counter < window->Num_lines)
2164 && ((line_counter + window->SR) < virtual_scr->Num_lines);
2167 …if ((last_window_refreshed != window) || (user_line->changed) || ((SCROLL | CLEAR) & window->SCROL…
2169 for (user_col = 0, virt_col = window->SC;
2170 (virt_col < virtual_scr->Num_cols)
2171 && (user_col < user_line->last_char);
2174 virtual_line->row[virt_col] = user_line->row[user_col];
2175 virtual_line->attributes[virt_col] = user_line->attributes[user_col];
2177 for (user_col = user_line->last_char,
2178 virt_col = window->SC + user_line->last_char;
2179 (virt_col < virtual_scr->Num_cols)
2180 && (user_col < window->Num_cols);
2183 virtual_line->row[virt_col] = ' ';
2184 virtual_line->attributes[virt_col] = '\0';
2187 if (virtual_scr->Num_cols != window->Num_cols)
2189 if (virtual_line->last_char < (user_line->last_char + window->SC))
2191 if (virtual_line->row[virtual_line->last_char] == '\0')
2192 virtual_line->row[virtual_line->last_char] = ' ';
2193 virtual_line->last_char =
2194 min(virtual_scr->Num_cols,
2195 (user_line->last_char + window->SC));
2199 virtual_line->last_char = user_line->last_char;
2200 virtual_line->row[virtual_line->last_char] = '\0';
2201 virtual_line->changed = user_line->changed;
2202 virtual_line = virtual_line->next_screen;
2203 user_line = user_line->next_screen;
2205 window->SCROLL_CLEAR = FALSE;
2206 window->scroll_up = window->scroll_down = 0;
2249 return(-1); in timed_getchar()
2252 return(read(0, &temp, 1)? temp : -1); in timed_getchar()
2268 in_value = ((bufp > 0) ? in_buff[--bufp] : timed_getchar());
2270 in_value = ((bufp > 0) ? in_buff[--bufp] : read(0, &temp, 1)? temp : -1);
2273 in_value = ((bufp > 0) ? in_buff[--bufp] :
2274 (read(0, &temp, 1)> 0) ? temp : -1);
2282 in_value = ((bufp > 0) ? in_buff[--bufp] : read(0, &temp, 1)? temp : -1);
2287 in_value = -1;
2292 if (in_value != -1)
2366 if (in_char != -1)
2373 if (!strcmp(string, St_point->element->string))
2376 St_point = St_point->next;
2393 return(St_point->element->value);
2399 if ((string[--Count] != -1) &&
2424 column = window->LX;
2431 shift = 9 - shift;
2434 shift--;
2438 else if ((column < window->Num_cols) && (window->LY < window->Num_lines))
2445 tmpline = window->line_array[window->LY];
2446 tmpline->row[column] = c;
2447 tmpline->attributes[column] = window->Attrib;
2448 tmpline->changed = TRUE;
2449 if (column >= tmpline->last_char)
2451 if (column > tmpline->last_char)
2452 for (j = tmpline->last_char; j < column; j++)
2454 tmpline->row[j] = ' ';
2455 tmpline->attributes[j] = '\0';
2457 tmpline->row[column + 1] = '\0';
2458 tmpline->attributes[column + 1] = '\0';
2459 tmpline->last_char = column + 1;
2465 window->LX = window->Num_cols;
2468 window->LX = 0;
2470 window->LX--;
2472 window->LX++;
2474 if (window->LX >= window->Num_cols)
2476 window->LX = 0;
2477 window->LY++;
2478 if (window->LY >= window->Num_lines)
2480 window->LY = window->Num_lines - 1;
2481 /* window->LY = row;
2484 wmove(window, row, 0);*/
2487 window->SCROLL_CLEAR = CHANGE;
2494 int row, column; local
2498 window->scroll_down += 1;
2499 window->SCROLL_CLEAR = SCROLL;
2500 column = window->LX;
2501 row = window->LY;
2502 …for (row = 0, tmp = window->first_line; (row < window->Num_lines) && (tmp->next_screen != NULL); r…
2503 tmp = tmp->next_screen;
2504 if (tmp->prev_screen != NULL)
2505 tmp->prev_screen->next_screen = NULL;
2507 clear_line(tmp1, 0, window->Num_cols);
2508 tmp1->number = -1;
2509 for (row = 0, tmp = window->first_line; (row < window->LY) && (tmp->next_screen != NULL); row++)
2510 tmp = tmp->next_screen;
2511 if ((window->LY == (window->Num_lines - 1)) && (window->Num_lines > 1))
2513 tmp1->next_screen = tmp->next_screen;
2514 tmp->next_screen = tmp1;
2515 tmp->changed = TRUE;
2516 tmp->next_screen->prev_screen = tmp;
2518 else if (window->Num_lines > 1)
2520 if (tmp->prev_screen != NULL)
2521 tmp->prev_screen->next_screen = tmp1;
2522 tmp1->prev_screen = tmp->prev_screen;
2523 tmp->prev_screen = tmp1;
2524 tmp1->next_screen = tmp;
2525 tmp->changed = TRUE;
2526 tmp->scroll = DOWN;
2528 if (window->LY == 0)
2529 window->first_line = tmp1;
2531 for (row = 0, tmp1 = window->first_line;
2532 row < window->Num_lines; row++)
2534 window->line_array[row] = tmp1;
2535 tmp1 = tmp1->next_screen;
2543 int row, column; local
2547 if (window->Num_lines > 1)
2549 window->scroll_up += 1;
2550 window->SCROLL_CLEAR = SCROLL;
2551 column = window->LX;
2552 row = window->LY;
2553 for (row = 0, tmp = window->first_line; row < window->LY; row++)
2554 tmp = tmp->next_screen;
2555 if (window->LY == 0)
2556 window->first_line = tmp->next_screen;
2557 if (tmp->prev_screen != NULL)
2558 tmp->prev_screen->next_screen = tmp->next_screen;
2559 if (tmp->next_screen != NULL)
2561 tmp->next_screen->changed = TRUE;
2562 tmp->next_screen->scroll = UP;
2563 tmp->next_screen->prev_screen = tmp->prev_screen;
2566 clear_line(tmpline, 0, window->Num_cols);
2567 tmpline->number = -1;
2568 for (row = 0, tmp = window->first_line; tmp->next_screen != NULL; row++)
2569 tmp = tmp->next_screen;
2572 tmp->next_screen = tmpline;
2573 tmp->next_screen->prev_screen = tmp;
2574 tmp->changed = TRUE;
2575 tmp = tmp->next_screen;
2579 tmp->next_screen = NULL;
2581 for (row = 0, tmp = window->first_line; row < window->Num_lines; row++)
2583 window->line_array[row] = tmp;
2584 tmp = tmp->next_screen;
2589 clear_line(window->first_line, 0, window->Num_cols);
2597 int row, column; local
2600 window->SCROLL_CLEAR |= CLEAR;
2601 column = window->LX;
2602 row = window->LY;
2603 for (row = 0, tmp = window->first_line; row < window->LY; row++)
2604 tmp = tmp->next_screen;
2605 clear_line(tmp, column, window->Num_cols);
2606 for (row = (window->LY + 1); row < window->Num_lines; row++)
2608 tmp = tmp->next_screen;
2609 clear_line(tmp, 0, window->Num_cols);
2611 wmove(window, row, column);
2619 window->Attrib |= A_STANDOUT;
2626 window->Attrib &= ~A_STANDOUT;
2731 Terminal.c_iflag |= ICRNL; /* enable carriage-return to line-feed mapping */ in nl()
2742 Terminal.c_iflag &= ~ICRNL; /* disable carriage-return to line-feed mapping */ in nonl()
2743 Terminal.c_iflag &= ~IGNCR; /* do not ignore carriage-return */ in nonl()
2835 for (i = 1; (i < window->Num_lines) && (window->first_line->next_screen != NULL); i++)
2837 window->first_line = window->first_line->next_screen;
2838 free(window->first_line->prev_screen->row);
2839 free(window->first_line->prev_screen->attributes);
2840 free(window->first_line->prev_screen);
2844 if (window->first_line != NULL)
2846 free(window->first_line->row);
2847 free(window->first_line->attributes);
2848 free(window->first_line);
2914 value = (value * 8) + (*fpoint - '0'); in wprintw()
2951 if (line1->last_char != line2->last_char)
2954 c1 = line1->row;
2955 c2 = line2->row;
2956 att1 = line1->attributes;
2957 att2 = line2->attributes;
2965 count1 = -1; /* equal */
2972 Insert_line(row, end_row, window) /* insert line into screen */ in Insert_line() argument
2973 int row; in Insert_line()
2981 for (i = 0, tmp = curscr->first_line; i < window->SR; i++)
2982 tmp = tmp->next_screen;
2983 if ((end_row + window->SR) == 0)
2984 curscr->first_line = curscr->first_line->next_screen;
2989 for (i = 0, tmp = top_of_win; (tmp->next_screen != NULL) && (i < end_row); i++)
2990 tmp = tmp->next_screen;
2991 if (tmp->prev_screen != NULL)
2992 tmp->prev_screen->next_screen = tmp->next_screen;
2993 if (tmp->next_screen != NULL)
2994 tmp->next_screen->prev_screen = tmp->prev_screen;
2999 clear_line(tmp, 0, window->Num_cols);
3000 tmp1->number = -1;
3001 for (i = 0, tmp = curscr->first_line; (tmp->next_screen != NULL) && (i < window->SR); i++)
3002 tmp = tmp->next_screen;
3004 for (i = 0, tmp = top_of_win; i < row; i++)
3005 tmp = tmp->next_screen;
3006 if ((tmp->prev_screen != NULL) && (window->Num_lines > 0))
3007 tmp->prev_screen->next_screen = tmp1;
3008 tmp1->prev_screen = tmp->prev_screen;
3009 tmp->prev_screen = tmp1;
3010 tmp1->next_screen = tmp;
3011 if ((row + window->SR) == 0)
3012 curscr->first_line = tmp1;
3013 if (tmp1->next_screen != NULL)
3014 tmp1 = tmp1->next_screen;
3016 if ((!String_table[cs__]) && (end_row < window->Num_lines))
3018 Position(window, (window->SR + end_row), 0);
3021 Position(window, (window->SR + row), 0);
3027 …for (i = 0, top_of_win = curscr->first_line; (top_of_win->next_screen != NULL) && (i < window->SR)…
3028 top_of_win = top_of_win->next_screen;
3034 Delete_line(row, end_row, window) /* delete a line on screen */ in Delete_line() argument
3035 int row; in Delete_line()
3045 tmp = curscr->first_line;
3046 while (i < window->SR)
3049 tmp = tmp->next_screen;
3055 if ((row + window->SR) == 0)
3056 curscr->first_line = top_of_win->next_screen;
3057 for (i = 0, tmp = top_of_win; i < row; i++)
3058 tmp = tmp->next_screen;
3059 if (tmp->prev_screen != NULL)
3060 tmp->prev_screen->next_screen = tmp->next_screen;
3061 if (tmp->next_screen != NULL)
3062 tmp->next_screen->prev_screen = tmp->prev_screen;
3063 tmp2 = tmp->next_screen;
3068 clear_line(tmp1, 0, window->Num_cols);
3069 tmp1->number = -1;
3073 for (i = 0, tmp = curscr->first_line; (tmp->next_screen != NULL) && (i < window->SR); i++)
3074 tmp = tmp->next_screen;
3076 for (i = 0, tmp = top_of_win; (i < end_row) && (tmp->next_screen != NULL); i++)
3077 tmp = tmp->next_screen;
3078 tmp1->next_screen = tmp;
3079 tmp1->prev_screen = tmp->prev_screen;
3080 if (tmp1->prev_screen != NULL)
3081 tmp1->prev_screen->next_screen = tmp1;
3082 tmp->prev_screen = tmp1;
3084 Position(window, (window->SR + row), 0);
3086 if ((!String_table[cs__]) && (end_row < window->Num_lines))
3088 Position(window, (window->SR + end_row), 0);
3093 Position(window, (window->SR + end_row), 0);
3097 if (row == (window->Num_lines-1))
3099 if ((row + window->SR) == 0)
3100 curscr->first_line = top_of_win = tmp2;
3105 CLEAR_TO_EOL(window, row, column) in CLEAR_TO_EOL() argument
3107 int row, column;
3112 for (y = 0, tmp1 = curscr->first_line; (y < (window->SR+row)) && (tmp1->next_screen != NULL); y++)
3113 tmp1 = tmp1->next_screen;
3114 for (x = column; x<window->Num_cols; x++)
3116 tmp1->row[x] = ' ';
3117 tmp1->attributes[x] = '\0';
3119 tmp1->row[column] = '\0';
3120 tmp1->last_char = column;
3126 Position(window, row, column);
3133 for (x = column; x < window->Num_cols; x++)
3156 new_lin = pointer_new->row;
3157 new_att = pointer_new->attributes;
3158 old_lin = pointer_old->row;
3159 old_att = pointer_old->attributes;
3177 Char_del(old_lin, old_att, offset, window->Num_cols);
3180 pointer_old->last_char = offset;
3210 new_lin = pointer_new->row;
3211 new_att = pointer_new->attributes;
3212 old_lin = pointer_old->row;
3213 old_att = pointer_old->attributes;
3245 Char_ins(old_lin, old_att, new_lin[k], new_att[k], k, window->Num_cols);
3251 pointer_old->last_char = offset;
3311 for (j = 0; j < window->Num_cols; j++) in doupdate()
3317 …for (from_top = 0, curr = curscr->first_line; from_top < curscr->Num_lines; from_top++, curr = cur… in doupdate()
3320 for (j = 0; (curr->row[j] != '\0') && (j < curscr->Num_cols); j++) in doupdate()
3322 Char_out(curr->row[j], curr->attributes[j], curr->row, curr->attributes, j); in doupdate()
3336 top_of_win = curscr->first_line; in doupdate()
3338 for (from_top = 0, curr = top_of_win, virt = window->first_line; in doupdate()
3339 from_top < window->Num_lines; from_top++) in doupdate()
3347 curr = curr->next_screen; in doupdate()
3348 virt = virt->next_screen; in doupdate()
3352 virt = window->first_line; in doupdate()
3360 last_same = -1; in doupdate()
3362 for (first_same = window->Num_lines; in doupdate()
3363 (first_same > from_top) && (virtual_lines[first_same - 1]); in doupdate()
3364 first_same--) in doupdate()
3367 (last_same < window->Num_lines) && (virtual_lines[last_same]== FALSE); in doupdate()
3377 (last_same < window->Num_lines) && in doupdate()
3388 for (tmp_ft = from_top+1, old = curr->next_screen; in doupdate()
3389 ((window->scroll_up) && (diff) && in doupdate()
3394 if ((Comp_line(old, virt) == -1) && (!virtual_lines[from_top])) in doupdate()
3403 (bottom < window->Num_lines) && in doupdate()
3405 bottom++, old1 = old1->next_screen, in doupdate()
3406 new1 = new1->next_screen, in doupdate()
3414 list[0] = min((bottom - 1), (window->Num_lines - 1)); in doupdate()
3416 Curr_y = Curr_x = -1; in doupdate()
3419 for (offset = (tmp_ft - from_top); (offset > 0); offset--) in doupdate()
3421 old = Delete_line(from_top, min((bottom - 1), (window->Num_lines - 1)), window); in doupdate()
3428 list[0] = LINES - 1; in doupdate()
3430 Curr_y = Curr_x = -1; in doupdate()
3433 top_of_win = curscr->first_line; in doupdate()
3436 curr = curr->next_screen; in doupdate()
3438 offset < window->Num_lines; in doupdate()
3439 old=old->next_screen, new=new->next_screen, in doupdate()
3448 old = old->next_screen; in doupdate()
3453 for (tmp_ft = from_top-1, old = curr->prev_screen; in doupdate()
3454 ((window->scroll_down) && (tmp_ft >= 0) && in doupdate()
3457 tmp_ft--) in doupdate()
3459 if (Comp_line(old, virt) == -1) in doupdate()
3468 (bottom < window->Num_lines) && in doupdate()
3470 bottom++, old1 = old1->next_screen, in doupdate()
3471 new1 = new1->next_screen, in doupdate()
3479 list[0] = min((bottom - 1), (window->Num_lines - 1)); in doupdate()
3481 Curr_y = Curr_x = -1; in doupdate()
3484 for (offset = (from_top - tmp_ft); (offset > 0); offset--) in doupdate()
3486 old = Insert_line(tmp_ft, min((bottom - 1), (window->Num_lines -1)), window); in doupdate()
3493 list[0] = LINES - 1; in doupdate()
3495 Curr_y = Curr_x = -1; in doupdate()
3498 top_of_win = curscr->first_line; in doupdate()
3501 curr = curr->next_screen; in doupdate()
3503 offset < window->Num_lines; in doupdate()
3504 old=old->next_screen, new=new->next_screen, in doupdate()
3513 old = old->prev_screen; in doupdate()
3517 curr = curr->next_screen; in doupdate()
3518 virt = virt->next_screen; in doupdate()
3528 for (from_top = 0, curr = curscr->first_line; from_top < window->SR; from_top++) in doupdate()
3529 curr = curr->next_screen; in doupdate()
3531 …r = top_of_win, virt = window->first_line; from_top < window->Num_lines; from_top++, curr = curr->… in doupdate()
3542 (String_table[dc__]) && (curr->row[0] != '\0') && in doupdate()
3547 vrt_lin = virt->row; in doupdate()
3548 vrt_att = virt->attributes; in doupdate()
3549 cur_lin = curr->row; in doupdate()
3550 cur_att = curr->attributes; in doupdate()
3551 while ((vrt_lin[j] != '\0') && (j < window->Num_cols)) in doupdate()
3583 if ((first_time) && (virt->changed)) in doupdate()
3585 if (curr->last_char <= virt->last_char) in doupdate()
3590 virt->changed = FALSE; in doupdate()
3593 …if (((!changed) || (cur_lin[j] != vrt_lin[j]) || (cur_att[j] != vrt_att[j])) && (j < window->Num_c… in doupdate()
3619 else /*if ((similar != -1) && (similar != 0))*/ in doupdate()
3622 c1 = curr->row; in doupdate()
3623 att1 = curr->attributes; in doupdate()
3624 c2 = virt->row; in doupdate()
3625 att2 = virt->attributes; in doupdate()
3626 while ((j < window->Num_cols) && (c2[j] != '\0')) in doupdate()
3628 while ((c1[j] == c2[j]) && (att1[j] == att2[j]) && (j < window->Num_cols) && (c2[j] != '\0')) in doupdate()
3636 if ((NC_chinese) && (highbitset(c1[j - 1]))) in doupdate()
3637 j--; in doupdate()
3640 if ((j < window->Num_cols) && (c2[j] != '\0')) in doupdate()
3645 for (j = begin_old; (c2[j] != '\0') && (j < window->Num_cols); j++) in doupdate()
3661 virt->number = from_top; in doupdate()
3663 Position(window, window->LY, window->LX); in doupdate()
3667 Position(window, row, col) /* position the cursor for output on the screen */ in Position() argument
3669 int row;
3678 pos_row = row + window->SR;
3679 pos_column = col + window->SC;
3682 if (String_table[cm__] != NULL) /* && (row < window->Num_lines) && (column < window->Num_cols))*/
3725 while ((line[one] != '\0') && (one < (maxlen - 2)))
3727 for (two = one + 1; (two > offset); one--, two--)
3789 if (!((Curr_y >= (LINES - 1)) && (Curr_x >= (COLS - 1))))
3802 | bit set as the first of two bytes of a multi-byte string.