]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/base/lib_restart.c
ncurses 6.4 - patch 20240420
[ncurses.git] / ncurses / base / lib_restart.c
index c45023d3d24f54812165cbabdf9d396d78b53190..0c61cb7ea6671634032380ec71f7de1de6e48b54 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc.              *
+ * Copyright 2020,2023 Thomas E. Dickey                                     *
+ * Copyright 1998-2012,2015 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 +42,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_restart.c,v 1.14 2011/04/16 16:42:10 tom Exp $")
+MODULE_ID("$Id: lib_restart.c,v 1.18 2023/04/29 19:01:25 tom Exp $")
 
 NCURSES_EXPORT(int)
 NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
@@ -51,9 +52,10 @@ NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
 {
     int result;
 #ifdef USE_TERM_DRIVER
-    TERMINAL *new_term;
+    TERMINAL *new_term = 0;
 #endif
 
+    START_TRACE();
     T((T_CALLED("restartterm(%p,%s,%d,%p)"),
        (void *) SP_PARM,
        termp,
@@ -63,31 +65,28 @@ NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
     if (TINFO_SETUP_TERM(&new_term, termp, filenum, errret, FALSE) != OK) {
        result = ERR;
     } else if (SP_PARM != 0) {
-       int saveecho = SP_PARM->_echo;
-       int savecbreak = SP_PARM->_cbreak;
-       int saveraw = SP_PARM->_raw;
-       int savenl = SP_PARM->_nl;
+       TTY_FLAGS save_flags = SP_PARM->_tty_flags;
 
 #ifdef USE_TERM_DRIVER
        SP_PARM->_term = new_term;
 #endif
-       if (saveecho) {
+       if (save_flags._echo) {
            NCURSES_SP_NAME(echo) (NCURSES_SP_ARG);
        } else {
            NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG);
        }
 
-       if (savecbreak) {
+       if (save_flags._cbreak) {
            NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
            NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
-       } else if (saveraw) {
+       } else if (save_flags._raw) {
            NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG);
            NCURSES_SP_NAME(raw) (NCURSES_SP_ARG);
        } else {
            NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG);
            NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
        }
-       if (savenl) {
+       if (save_flags._nl) {
            NCURSES_SP_NAME(nl) (NCURSES_SP_ARG);
        } else {
            NCURSES_SP_NAME(nonl) (NCURSES_SP_ARG);
@@ -110,6 +109,7 @@ NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
 NCURSES_EXPORT(int)
 restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
 {
+    START_TRACE();
     return NCURSES_SP_NAME(restartterm) (CURRENT_SCREEN, termp, filenum, errret);
 }
 #endif