X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Fresizeterm.c;h=0f3ea72b7fb9cbc0c28fa8d80b21fa2f36c30943;hp=eb2dd737f94c883b1995e4705eaff3e176c8eeb2;hb=37babca07fea18b480155ef60ef302ca09fca152;hpb=c4d90db4f4e50bb8a971955ce4812262da4a50bc diff --git a/ncurses/base/resizeterm.c b/ncurses/base/resizeterm.c index eb2dd737..0f3ea72b 100644 --- a/ncurses/base/resizeterm.c +++ b/ncurses/base/resizeterm.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * + * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -41,7 +41,7 @@ #include #include -MODULE_ID("$Id: resizeterm.c,v 1.30 2008/01/12 22:26:56 tom Exp $") +MODULE_ID("$Id: resizeterm.c,v 1.35 2009/04/18 20:32:33 tom Exp $") #define stolen_lines (screen_lines - SP->_lines_avail) @@ -66,10 +66,10 @@ show_window_sizes(const char *name) { WINDOWLIST *wp; - _nc_lock_global(windowlist); + _nc_lock_global(curses); _tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS, - screen_lines, screen_columns); - for (wp = _nc_windows; wp != 0; wp = wp->next) { + screen_lines(CURRENT_SCREEN), screen_columns(CURRENT_SCREEN)); + for (each_window(wp)) { _tracef(" window %p is %2ld x %2ld at %2ld,%2ld", &(wp->win), (long) wp->win._maxy + 1, @@ -77,7 +77,7 @@ show_window_sizes(const char *name) (long) wp->win._begy, (long) wp->win._begx); } - _nc_unlock_global(windowlist); + _nc_unlock_global(curses); } #endif @@ -91,8 +91,8 @@ is_term_resized(int ToLines, int ToCols) T((T_CALLED("is_term_resized(%d, %d)"), ToLines, ToCols)); returnCode(ToLines > 0 && ToCols > 0 - && (ToLines != screen_lines - || ToCols != screen_columns)); + && (ToLines != screen_lines(CURRENT_SCREEN) + || ToCols != screen_columns(CURRENT_SCREEN))); } /* @@ -104,7 +104,7 @@ ripped_window(WINDOW *win) ripoff_t *rop; if (win != 0) { - for (rop = ripoff_stack; (rop - ripoff_stack) < N_RIPS; rop++) { + for (each_ripoff(rop)) { if (rop->win == win && rop->line != 0) { result = rop; break; @@ -125,7 +125,7 @@ ripped_bottom(WINDOW *win) ripoff_t *rop; if (win != 0) { - for (rop = ripoff_stack; (rop - ripoff_stack) < N_RIPS; rop++) { + for (each_ripoff(rop)) { if (rop->line < 0) { result -= rop->line; if (rop->win == win) { @@ -148,7 +148,7 @@ child_depth(WINDOW *cmp) if (cmp != 0) { WINDOWLIST *wp; - for (wp = _nc_windows; wp != 0; wp = wp->next) { + for (each_window(wp)) { WINDOW *tst = &(wp->win); if (tst->_parent == cmp) { depth = 1 + child_depth(tst); @@ -251,7 +251,7 @@ decrease_size(int ToLines, int ToCols, int stolen EXTRA_DCLS) found = FALSE; TR(TRACE_UPDATE, ("decreasing size of windows to %dx%d, depth=%d", ToLines, ToCols, depth)); - for (wp = _nc_windows; wp != 0; wp = wp->next) { + for (each_window(wp)) { WINDOW *win = &(wp->win); if (!(win->_flags & _ISPAD)) { @@ -285,7 +285,7 @@ increase_size(int ToLines, int ToCols, int stolen EXTRA_DCLS) found = FALSE; TR(TRACE_UPDATE, ("increasing size of windows to %dx%d, depth=%d", ToLines, ToCols, depth)); - for (wp = _nc_windows; wp != 0; wp = wp->next) { + for (each_window(wp)) { WINDOW *win = &(wp->win); if (!(win->_flags & _ISPAD)) { @@ -314,18 +314,18 @@ resize_term(int ToLines, int ToCols) T((T_CALLED("resize_term(%d,%d) old(%d,%d)"), ToLines, ToCols, - screen_lines, screen_columns)); + screen_lines(CURRENT_SCREEN), screen_columns(CURRENT_SCREEN))); if (SP == 0) { returnCode(ERR); } - _nc_lock_global(windowlist); + _nc_lock_global(curses); - was_stolen = (screen_lines - SP->_lines_avail); + was_stolen = (screen_lines(CURRENT_SCREEN) - SP->_lines_avail); if (is_term_resized(ToLines, ToCols)) { - int myLines = CurLines = screen_lines; - int myCols = CurCols = screen_columns; + int myLines = CurLines = screen_lines(CURRENT_SCREEN); + int myCols = CurCols = screen_columns(CURRENT_SCREEN); #ifdef TRACE if (USE_TRACEF(TRACE_UPDATE)) { @@ -333,13 +333,13 @@ resize_term(int ToLines, int ToCols) _nc_unlock_global(tracef); } #endif - if (ToLines > screen_lines) { + if (ToLines > screen_lines(CURRENT_SCREEN)) { increase_size(myLines = ToLines, myCols, was_stolen EXTRA_ARGS); CurLines = myLines; CurCols = myCols; } - if (ToCols > screen_columns) { + if (ToCols > screen_columns(CURRENT_SCREEN)) { increase_size(myLines, myCols = ToCols, was_stolen EXTRA_ARGS); CurLines = myLines; CurCols = myCols; @@ -350,8 +350,8 @@ resize_term(int ToLines, int ToCols) decrease_size(ToLines, ToCols, was_stolen EXTRA_ARGS); } - screen_lines = lines = ToLines; - screen_columns = columns = ToCols; + screen_lines(CURRENT_SCREEN) = lines = ToLines; + screen_columns(CURRENT_SCREEN) = columns = ToCols; SP->_lines_avail = lines - was_stolen; @@ -378,7 +378,7 @@ resize_term(int ToLines, int ToCols) SET_LINES(ToLines - was_stolen); SET_COLS(ToCols); - _nc_unlock_global(windowlist); + _nc_unlock_global(curses); returnCode(result); } @@ -398,7 +398,7 @@ resizeterm(int ToLines, int ToCols) T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"), ToLines, ToCols, - screen_lines, screen_columns)); + screen_lines(CURRENT_SCREEN), screen_columns(CURRENT_SCREEN))); if (SP != 0) { result = OK; @@ -418,7 +418,7 @@ resizeterm(int ToLines, int ToCols) result = resize_term(ToLines, ToCols); #if USE_SIGWINCH - ungetch(KEY_RESIZE); /* so application can know this */ + safe_ungetch(SP, KEY_RESIZE); /* so application can know this */ clearok(curscr, TRUE); /* screen contents are unknown */ /* ripped-off lines are a special case: if we did not lengthen @@ -428,7 +428,7 @@ resizeterm(int ToLines, int ToCols) * decide which to repaint, since without panels, ncurses does * not know which are really on top. */ - for (rop = ripoff_stack; (rop - ripoff_stack) < N_RIPS; rop++) { + for (each_ripoff(rop)) { if (rop->win != stdscr && rop->win != 0 && rop->line < 0) {