Why does initscr () after delwin () return undef?

Why does the delwinsecond initscrone return nothing? I thought it endwinwould reset to the state as it was before the call initscr.

use NCurses;

my $win = initscr();
addstr( 'AAA' );
nc_refresh();
sleep 2;
delwin( $win );
endwin();

...

my $new_win = initscr();
if ! $new_win.defined {
    endwin();
    dd $new_win;            # NCurses::WINDOW $new_win = NCurses::WINDOW
    die "win undefined";    # win undefined
}
addstr( 'BBB' );
nc_refresh();
sleep 2;
delwin( $new_win );
endwin;
+4
source share
1 answer

, , initscr stdscr ( ). delwin ( SCREEN, ), initscr ( newterm) NULL. , curscr newscr ( , ), Perl, , .

. Differences initscr:

X/Open , initscr         :

  • initscr , refresh (.        curs_refresh (3x)), endwin.

  • initscr endwin.

curses, BSD 4.4, ,         initscr, , .        , , initscr XSI.

+4

Source: https://habr.com/ru/post/1681099/


All Articles