]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/lib_cur_term.c
ncurses 5.6 - patch 20080524
[ncurses.git] / ncurses / tinfo / lib_cur_term.c
index 8fccc2f88d08bd3c2d9672e440725d886f4f631b..e1b4f942997d5274965e9be69fe83f5e5335af75 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2008 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            *
 #include <term_entry.h>                /* TTY, cur_term */
 #include <termcap.h>           /* ospeed */
 
-MODULE_ID("$Id: lib_cur_term.c,v 1.13 2003/12/27 18:21:30 tom Exp $")
+MODULE_ID("$Id: lib_cur_term.c,v 1.15 2008/05/24 23:11:18 tom Exp $")
 
+#if USE_REENTRANT
+NCURSES_EXPORT(TERMINAL *)
+NCURSES_PUBLIC_VAR(cur_term) (void)
+{
+    return (SP != 0 && SP->_term != 0) ? SP->_term : _nc_prescreen._cur_term;
+}
+#else
 NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
+#endif
 
 NCURSES_EXPORT(TERMINAL *)
 set_curterm(TERMINAL * termp)
@@ -51,10 +59,18 @@ set_curterm(TERMINAL * termp)
 
     T((T_CALLED("set_curterm(%p)"), termp));
 
-    if ((cur_term = termp) != 0) {
-       ospeed = _nc_ospeed(cur_term->_baudrate);
+    if (SP)
+       SP->_term = termp;
+#if USE_REENTRANT
+    _nc_prescreen._cur_term = termp;
+#else
+    cur_term = termp;
+#endif
+    if (termp != 0) {
+       ospeed = _nc_ospeed(termp->_baudrate);
        PC = (pad_char != NULL) ? pad_char[0] : 0;
     }
+
     T((T_RETURN("%p"), oldterm));
     return (oldterm);
 }
@@ -69,7 +85,7 @@ del_curterm(TERMINAL * termp)
        FreeIfNeeded(termp->_termname);
        free(termp);
        if (termp == cur_term)
-           cur_term = 0;
+           set_curterm(0);
        returnCode(OK);
     }
     returnCode(ERR);