- Timestamp:
- Apr 28, 2010, 2:27:58 PM (14 years ago)
- Branches:
- master, release-1.10, release-1.7, release-1.8, release-1.9
- Children:
- f9f88f3
- Parents:
- 1f3a423
- git-author:
- David Benjamin <davidben@mit.edu> (04/28/10 13:12:12)
- git-committer:
- David Benjamin <davidben@mit.edu> (04/28/10 14:27:58)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
global.c
r1f3a423 r285bc9a 467 467 } 468 468 469 /* 470 * Compute the size of the terminal. Try a ioctl, fallback to other stuff on 471 * fail. 472 */ 473 static void _owl_global_get_size(int *lines, int *cols) { 474 struct winsize size; 475 /* get the new size */ 476 ioctl(STDIN_FILENO, TIOCGWINSZ, &size); 477 if (size.ws_row) { 478 *lines = size.ws_row; 479 } else { 480 *lines = LINES; 481 } 482 483 if (size.ws_col) { 484 *cols = size.ws_col; 485 } else { 486 *cols = COLS; 487 } 488 } 489 469 490 void owl_global_resize(owl_global *g, int x, int y) { 470 491 /* resize the screen. If x or y is 0 use the terminal size */ 471 struct winsize size;472 473 492 if (!g->resizepending) return; 474 493 g->resizepending = 0; … … 478 497 } 479 498 480 /* get the new size */ 481 ioctl(STDIN_FILENO, TIOCGWINSZ, &size); 482 if (x==0) { 483 if (size.ws_row) { 484 g->lines=size.ws_row; 485 } else { 486 g->lines=LINES; 487 } 488 } else { 489 g->lines=x; 490 } 491 492 if (y==0) { 493 if (size.ws_col) { 494 g->cols=size.ws_col; 495 } else { 496 g->cols=COLS; 497 } 498 } else { 499 g->cols=y; 499 _owl_global_get_size(&g->lines, &g->cols); 500 if (x != 0) { 501 g->lines = x; 502 } 503 if (y != 0) { 504 g->cols = y; 500 505 } 501 506
Note: See TracChangeset
for help on using the changeset viewer.